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