#ifndef ROOT_TEveProjectionBases
#define ROOT_TEveProjectionBases
#include "TEveUtil.h"
#include <list>
class TBuffer3D;
class TEveElement;
class TEveProjected;
class TEveProjectionManager;
class TEveProjectable
{
private:
TEveProjectable(const TEveProjectable&);
TEveProjectable& operator=(const TEveProjectable&);
protected:
typedef std::list<TEveProjected*> ProjList_t;
typedef std::list<TEveProjected*>::iterator ProjList_i;
ProjList_t fProjectedList;
public:
TEveProjectable();
virtual ~TEveProjectable();
virtual TClass* ProjectedClass() const = 0;
virtual Bool_t HasProjecteds() const { return ! fProjectedList.empty(); }
virtual void AddProjected(TEveProjected* p) { fProjectedList.push_back(p); }
virtual void RemoveProjected(TEveProjected* p) { fProjectedList.remove(p); }
virtual void AddProjectedsToSet(std::set<TEveElement*>& set);
virtual void PropagateVizParams(TEveElement* el=0);
virtual void PropagateRenderState(Bool_t rnr_self, Bool_t rnr_children);
virtual void PropagateMainColor(Color_t color, Color_t old_color);
ClassDef(TEveProjectable, 0);
};
class TEveProjected
{
private:
TEveProjected(const TEveProjected&);
TEveProjected& operator=(const TEveProjected&);
protected:
TEveProjectionManager *fManager;
TEveProjectable *fProjectable;
Float_t fDepth;
public:
TEveProjected();
virtual ~TEveProjected();
TEveProjectable* GetProjectable() const { return fProjectable; }
virtual void SetProjection(TEveProjectionManager* mng, TEveProjectable* model);
virtual void UnRefProjectable(TEveProjectable* assumed_parent);
virtual void SetDepth(Float_t d) = 0;
virtual void UpdateProjection() = 0;
void SetDepthCommon(Float_t d, TEveElement* el, Float_t* bbox);
ClassDef(TEveProjected, 0);
};
#endif
Last change: Wed Jun 25 08:37:44 2008
Last generated: 2008-06-25 08:37
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.