3 #ifndef REVE_NLTBases_H
4 #define REVE_NLTBases_H
17 ////////////////////////////////////////////////////////////////
21 // Abstract base class for non-linear projectable objects. //
23 ////////////////////////////////////////////////////////////////
28 NLTProjectable(const NLTProjectable&); // Not implemented
29 NLTProjectable& operator=(const NLTProjectable&); // Not implemented
32 std::list<NLTProjected*> fProjectedList; // references to projected instances.
36 virtual ~NLTProjectable();
38 virtual TClass* ProjectedClass() const = 0;
40 virtual void AddProjected(NLTProjected* p) { fProjectedList.push_back(p); }
41 virtual void RemoveProjected(NLTProjected* p) { fProjectedList.remove(p); }
43 ClassDef(NLTProjectable, 0); // Abstract base class for non-linear projectable objects.
44 }; // endclass NLTProjectable
46 ////////////////////////////////////////////////////////////////
50 // Abstract base class for non-linear projected objects. //
52 ////////////////////////////////////////////////////////////////
57 NLTProjected(const NLTProjected&); // Not implemented
58 NLTProjected& operator=(const NLTProjected&); // Not implemented
61 NLTProjector *fProjector; // manager
62 NLTProjectable *fProjectable; // link to original object
63 Float_t fDepth; // z coordinate
67 virtual ~NLTProjected();
69 virtual void SetProjection(NLTProjector* proj, NLTProjectable* model);
70 virtual void UnRefProjectable(NLTProjectable* assumed_parent);
72 virtual void SetDepth(Float_t d) { fDepth = d; }
74 virtual void UpdateProjection() = 0;
76 ClassDef(NLTProjected, 0); // Abstract base class for non-linear projected object.
77 }; // endclass NLTProjected