#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 void AddProjected(TEveProjected* p)    { fProjectedList.push_back(p); }
   virtual void RemoveProjected(TEveProjected* p) { fProjectedList.remove(p); }
   virtual void AddProjectedsToSet(std::set<TEveElement*>& set);
   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: Tue May 13 17:09:31 2008
Last generated: 2008-05-13 17:09
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.