95 static const REveException eH(
"REveProjectionManager::SetProjection ");
117 throw eH +
"projection type not valid.";
124 throw eH +
"switching between 2D and 3D projections not implemented.";
174 static int warn_count = 0;
175 if (++warn_count <= 5)
176 Warning(
"REveProjectionManager::UpdateDependentElsAndScenes",
177 "Figure out if scene stamping is still needed.");
200 static const REveException eh(
"REveProjectionManager::ImportElementsRecurse ");
231 if (cmpnd &&
c->GetCompound() == cmpnd)
318 new_els.push_back(new_el);
321 if (!new_els.empty())
324 for (
auto &nel: new_els)
331 return (
Int_t) new_els.size();
385 static const REveException eH(
"REveProjectionManager::ComputeBBox ");
void Warning(const char *location, const char *msgfmt,...)
char * Form(const char *fmt,...)
REveElement::List_t fNieces
bool HasNieces() const override
virtual void AddNiece(REveElement *el)
TClass * IsA() const
Return class for this element.
const char * GetCTitle() const
void SetCompound(REveCompound *c)
void SetPickable(Bool_t p)
const char * GetCName() const
virtual void AddElement(REveElement *el)
Add el to the list of children.
virtual Bool_t GetRnrSelf() const
virtual Bool_t SetRnrChildren(Bool_t rnr)
Set render state of this element's children, i.e.
void SetTitle(const std::string &title)
Set title of an element.
Bool_t HasChildren() const
virtual Bool_t SetRnrSelf(Bool_t rnr)
Set render state of this element, i.e.
virtual Bool_t GetRnrChildren() const
Bool_t IsPickable() const
std::list< REveElement * > List_t
REveElement(const std::string &name="", const std::string &title="")
Default constructor.
void SetName(const std::string &name)
Set name of an element.
REveException Exception-type thrown by Eve classes.
virtual TClass * ProjectedClass(const REveProjection *p) const =0
virtual void SetProjection(REveProjectionManager *mng, REveProjectable *model)
Sets projection manager and reference in the projectable object.
virtual void UpdateProjection()=0
virtual void SetDepth(Float_t d)
Set depth coordinate for the element.
REveProjection * fProjections[REveProjection::kPT_End]
void AddDependent(REveElement *el)
Add el as dependent element.
virtual REveElement * ImportElements(REveElement *el, REveElement *ext_list=nullptr)
Recursively import elements and apply projection to the newly imported objects.
void SetProjection(REveProjection::EPType_e type)
Set projection type and distortion.
virtual REveElement * ImportElementsRecurse(REveElement *el, REveElement *parent)
If el is REveProjectable add projected instance else add plain REveElementList to parent.
void ComputeBBox() override
Virtual from TAttBBox; fill bounding-box information.
REveProjection * fProjection
virtual REveElement * SubImportElements(REveElement *el, REveElement *proj_parent)
Recursively import elements and apply projection to the newly imported objects.
REveProjectionManager(const REveProjectionManager &)
virtual void UpdateName()
Updates name to have consistent information with projection.
void RemoveDependent(REveElement *el)
Remove el as dependent element.
virtual void ProjectChildren()
Project all children recursively, update bounding-box and notify EveManger about the scenes that have...
virtual void ProjectChildrenRecurse(REveElement *el)
Project el (via REveProjected::UpdateProjection()) and recurse through el's children.
virtual ~REveProjectionManager()
Destructor.
virtual void UpdateDependentElsAndScenes(REveElement *root)
Update dependent elements' bounding box and mark scenes containing element root or its children as re...
void SetCenter(Float_t x, Float_t y, Float_t z)
Set projection center and rebuild projected scene.
virtual Bool_t ShouldImport(REveElement *el)
Returns true if element el should be imported.
virtual Int_t SubImportChildren(REveElement *el, REveElement *proj_parent)
Recursively import children elements of el and apply projection to the newly imported objects.
virtual void SetCenter(REveVector &v)
virtual Bool_t Is2D() const =0
const char * GetName() const
Float_t GetDistortion() const
void Set(const Float_t *v)
Helper for management of bounding-box information.
virtual void ComputeBBox()=0
void BBoxCheckPoint(Float_t x, Float_t y, Float_t z)
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).
void AssertBBoxExtents(Float_t epsilon=0.005)
Assert extents of all sides of the bounding-box are at least epsilon.
void BBoxInit(Float_t infinity=1e6)
Dynamic Float_t[6] X(min,max), Y(min,max), Z(min,max)
void * New(ENewType defConstructor=kClassNew, Bool_t quiet=kFALSE) const
Return a pointer to a newly allocated object of this class.
Bool_t InheritsFrom(const char *cl) const
Return kTRUE if this class inherits from a class with name "classname".