137 throw eH +
"projection type not valid.";
144 throw eH +
"switching between 2D and 3D projections not implemented.";
174 if (
el->IsA()->InheritsFrom(TClass::GetClass<REveProjectable>()))
176 for (
auto &
c:
el->RefChildren())
205 static const REveException eh(
"REveProjectionManager::ImportElementsRecurse ");
225 new_el->SetTitle(
Form(
"Projected replica.\n%s",
el->GetCTitle()));
226 new_el->SetRnrSelf (
el->GetRnrSelf());
227 new_el->SetRnrChildren (
el->GetRnrChildren());
228 new_el->SetPickable (
el->IsPickable());
234 for (
auto &
c:
el->RefChildren()) {
320 for (
auto &
c:
el->RefChildren()) {
349 pted->UpdateProjection();
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t type
char * Form(const char *fmt,...)
Formats a string in a circular formatting buffer.
REveElement::List_t fNieces
bool HasNieces() const override
virtual void AddNiece(REveElement *el)
virtual void AddElement(REveElement *el)
Add el to the list of children.
Bool_t HasChildren() 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.
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.
virtual void UpdateDependentElements(REveElement *root)
Update dependent elements' bounding boxes.
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.
~REveProjectionManager() override
Destructor.
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.
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.
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.
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)