102 static const TEveException eH(
"TEveProjectionManager::SetProjection ");
124 throw eH +
"projection type not valid.";
131 throw eH +
"switching between 2D and 3D projections not implemented.";
155 List_t::size_type n_children =
fChildren.size();
209 static const TEveException eh(
"TEveProjectionManager::ImportElementsRecurse ");
328 new_els.push_back(new_el);
331 if ( ! new_els.empty())
334 for (
List_i i = new_els.begin(); i != new_els.end(); ++i)
343 return (
Int_t) new_els.size();
395 static const TEveException eH(
"TEveProjectionManager::ComputeBBox ");
Abstract base class for classes that hold results of a non-linear projection transformation.
virtual void SetElementName(const char *name)
Virtual function for setting of name of an element.
virtual const char * GetElementTitle() const
Virtual function for retrieving title of the render-element.
virtual void CollectSceneParentsFromChildren(List_t &scenes, TEveElement *parent)
Collect scene-parents from all children.
void Set(const Float_t *v)
Bool_t IsPickable() const
virtual ~TEveProjectionManager()
Destructor.
void SetCenter(Float_t x, Float_t y, Float_t z)
Set projection center and rebuild projected scene.
virtual void SetName(const char *name)
Change (i.e.
virtual Int_t SubImportChildren(TEveElement *el, TEveElement *proj_parent)
Recursively import children elements of el and apply projection to the newly imported objects...
virtual TEveElement * ImportElementsRecurse(TEveElement *el, TEveElement *parent)
If el is TEveProjectable add projected instance else add plain TEveElementList to parent...
void SetPickable(Bool_t p)
virtual Bool_t Is2D() const =0
void RemoveDependent(TEveElement *el)
Remove el as dependent element.
virtual void ProjectChildren()
Project all children recursively, update bounding-box and notify TEveManger about the scenes that hav...
virtual void SetProjection(TEveProjectionManager *mng, TEveProjectable *model)
Sets projection manager and reference in the projectable object.
virtual Bool_t HandleElementPaste(TEveElement *el)
React to element being pasted or dnd-ed.
virtual const char * GetElementName() const
Virtual function for retrieving name of the element.
TEveElementList(const char *n="TEveElementList", const char *t="", Bool_t doColor=kFALSE, Bool_t doTransparency=kFALSE)
Constructor.
TEveProjection * fProjections[TEveProjection::kPT_End]
Description of TEveCompound.
void BBoxCheckPoint(Float_t x, Float_t y, Float_t z)
void AddDependent(TEveElement *el)
Add el as dependent element.
virtual void ElementChanged(Bool_t update_scenes=kTRUE, Bool_t redraw=kFALSE)
Call this after an element has been changed so that the state can be propagated around the framework...
virtual TEveElement * ImportElements(TEveElement *el, TEveElement *ext_list=0)
Recursively import elements and apply projection to the newly imported objects.
void * New(ENewType defConstructor=kClassNew, Bool_t quiet=kFALSE) const
Return a pointer to a newly allocated object of this class.
XY projection with distortion around given center.
virtual Bool_t GetRnrChildren() const
void SetCompound(TEveCompound *c)
virtual void SetElementTitle(const char *title)
Virtual function for setting of title of an element.
virtual Bool_t GetRnrSelf() const
Manager class for steering of projections and managing projected objects.
virtual Bool_t ShouldImport(TEveElement *el)
Returns true if element el should be imported.
virtual void SetDepth(Float_t d)
Set depth coordinate for the element.
void ScenesChanged(TEveElement::List_t &scenes)
Mark all scenes from the given list as changed.
virtual void ComputeBBox()=0
Abstract base-class for non-linear projectable objects.
virtual TClass * ProjectedClass(const TEveProjection *p) const =0
R__EXTERN TEveManager * gEve
TEveProjectionManager(const TEveProjectionManager &)
char * Form(const char *fmt,...)
void BBoxZero(Float_t epsilon=0, Float_t x=0, Float_t y=0, Float_t z=0)
Create cube of volume (2*epsilon)^3 at (x,y,z).
virtual Bool_t SetRnrSelf(Bool_t rnr)
Set render state of this element, i.e.
virtual void AddElement(TEveElement *el)
Add el to the list of children.
const Char_t * GetName() const
TEveProjection * fProjection
std::list< TEveElement * > List_t
virtual void SetCenter(TEveVector &v)
virtual void UpdateProjection()=0
virtual Bool_t SetRnrChildren(Bool_t rnr)
Set render state of this element's children, i.e.
virtual void UpdateDependentElsAndScenes(TEveElement *root)
Update dependent elements' bounding box and mark scenes containing element root or its children as re...
Float_t GetDistortion() const
void SetProjection(TEveProjection::EPType_e type)
Set projection type and distortion.
ClassImp(TEveProjectionManager)
virtual void ProjectChildrenRecurse(TEveElement *el)
Project el (via TEveProjected::UpdateProjection()) and recurse through el's children.
Bool_t HasChildren() const
Helper for management of bounding-box information.
Exception class thrown by TEve classes and macros.
virtual void ComputeBBox()
Virtual from TAttBBox; fill bounding-box information.
virtual void UpdateName()
Updates name to have consistent information with projection.
TEveCompound * GetCompound()
virtual TEveElement * SubImportElements(TEveElement *el, TEveElement *proj_parent)
Recursively import elements and apply projection to the newly imported objects.
Base class for TEveUtil visualization elements, providing hierarchy management, rendering control and...
void BBoxInit(Float_t infinity=1e6)
Dynamic Float_t[6] X(min,max), Y(min,max), Z(min,max)
void AssertBBoxExtents(Float_t epsilon=0.005)
Assert extents of all sides of the bounding-box are at least epsilon.
Transformation from 3D to 2D.