]>
Commit | Line | Data |
---|---|---|
32e219c2 | 1 | // $Header$ |
2 | ||
3 | #include "NLTBases.h" | |
4 | #include "Reve/NLTPolygonSet.h" | |
5 | ||
6 | using namespace Reve; | |
7 | ||
8ef50b67 | 8 | //______________________________________________________________________________ |
32e219c2 | 9 | // NLTProjectable |
10 | // | |
11 | ||
12 | ClassImp(NLTProjectable) | |
13 | ||
8ef50b67 | 14 | //______________________________________________________________________________ |
32e219c2 | 15 | NLTProjectable::NLTProjectable() |
8ef50b67 | 16 | { |
17 | // Default constructor. | |
18 | } | |
32e219c2 | 19 | |
8ef50b67 | 20 | //______________________________________________________________________________ |
32e219c2 | 21 | NLTProjectable::~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 | ||
37 | ClassImp(NLTProjected) | |
38 | ||
8ef50b67 | 39 | //______________________________________________________________________________ |
32e219c2 | 40 | NLTProjected::NLTProjected() : |
41 | fProjector (0), | |
42 | fProjectable (0), | |
43 | fDepth (0) | |
8ef50b67 | 44 | { |
45 | // Default constructor. | |
46 | } | |
32e219c2 | 47 | |
8ef50b67 | 48 | //______________________________________________________________________________ |
32e219c2 | 49 | NLTProjected::~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 | 59 | void 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 | 68 | void 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 | } |