]> git.uio.no Git - u/mrichter/AliRoot.git/blame - EVE/Reve/NLTBases.cxx
Record changes.
[u/mrichter/AliRoot.git] / EVE / Reve / NLTBases.cxx
CommitLineData
32e219c2 1// $Header$
2
3#include "NLTBases.h"
4#include "Reve/NLTPolygonSet.h"
5
6using namespace Reve;
7
8ef50b67 8//______________________________________________________________________________
32e219c2 9// NLTProjectable
10//
11
12ClassImp(NLTProjectable)
13
8ef50b67 14//______________________________________________________________________________
32e219c2 15NLTProjectable::NLTProjectable()
8ef50b67 16{
17 // Default constructor.
18}
32e219c2 19
8ef50b67 20//______________________________________________________________________________
32e219c2 21NLTProjectable::~NLTProjectable()
22{
8ef50b67 23 // Destructor.
24 // Force projected replicas to unreference *this.
25
32e219c2 26 while ( ! fProjectedList.empty())
27 {
28 fProjectedList.front()->UnRefProjectable(this);
29 }
30}
31
8ef50b67 32
33//______________________________________________________________________________
32e219c2 34// NLTProjected
35//
36
37ClassImp(NLTProjected)
38
8ef50b67 39//______________________________________________________________________________
32e219c2 40NLTProjected::NLTProjected() :
41 fProjector (0),
42 fProjectable (0),
43 fDepth (0)
8ef50b67 44{
45 // Default constructor.
46}
32e219c2 47
8ef50b67 48//______________________________________________________________________________
32e219c2 49NLTProjected::~NLTProjected()
50{
8ef50b67 51 // Destructor.
52 // If fProjectable is non-null, *this is removed from its list of
53 // projected replicas.
54
32e219c2 55 if (fProjectable) fProjectable->RemoveProjected(this);
56}
57
8ef50b67 58//______________________________________________________________________________
32e219c2 59void NLTProjected::SetProjection(NLTProjector* proj, NLTProjectable* model)
60{
61 fProjector = proj;
62 if (fProjectable) fProjectable->RemoveProjected(this);
63 fProjectable = model;
8ef50b67 64 if (fProjectable) fProjectable->AddProjected(this);
32e219c2 65}
66
8ef50b67 67//______________________________________________________________________________
32e219c2 68void NLTProjected::UnRefProjectable(NLTProjectable* assumed_parent)
69{
70 static const Exc_t eH("NLTProjected::UnRefProjectable ");
71
72 if (fProjectable != assumed_parent) {
73 Warning(eH, "mismatch between assumed and real model. This is a bug.");
74 assumed_parent->RemoveProjected(this);
75 return;
76 }
77
78 if (fProjectable) {
79 fProjectable->RemoveProjected(this);
80 fProjectable = 0;
712d9715 81 }
32e219c2 82}