|
ROOT
Reference Guide |
|
Go to the documentation of this file.
72 fChildClass (
e.fChildClass),
74 fDestroyOnZeroRefCnt (
e.fDestroyOnZeroRefCnt),
75 fRnrSelf (
e.fRnrSelf),
76 fRnrChildren (
e.fRnrChildren),
77 fCanEditMainColor (
e.fCanEditMainColor),
78 fCanEditMainTransparency(
e.fCanEditMainTransparency),
79 fCanEditMainTrans (
e.fCanEditMainTrans),
80 fMainTransparency (
e.fMainTransparency),
81 fPickable (
e.fPickable),
89 fMainTrans = std::make_unique<REveTrans>(*
e.fMainTrans.get());
115 au->RemoveNieceInternal(
this);
136 c->assign_element_id_recurisvely();
153 assert(
fScene ==
nullptr);
164 c->assign_scene_recursively(
s);
213 dest->AddElement(
c->CloneElementRecurse(level));
319 Warning(
"REveElement::ApplyVizTag",
"entry for tag '%s' not found in VizDB.", tag.
Data());
354 c->CopyVizParams(el);
385 Warning(
"REveElement::CopyVizParamsFromDB",
"VizModel has not been set.");
405 TString intro =
" TAG='" + tag +
"', CLASS='" + cls +
"'";
406 out <<
" //" << intro <<
"\n";
407 out <<
" //" <<
TString(
'-', intro.Length()) <<
"\n";
408 out << t << cls <<
"* " << var <<
" = new " << cls <<
";\n";
412 out << t <<
"REX::gEve->InsertVizDBEntry(\"" << tag <<
"\", "<< var <<
");\n";
427 out << t <<
"SetElementName(\"" <<
fName <<
"\");\n";
428 out << t <<
"SetElementTitle(\"" <<
fTitle <<
"\");\n";
476 Error(
"VizDB_UpdateModel",
"update from vizdb -> elements not implemented.");
483 Warning(
"VizDB_UpdateModel",
"VizModel has not been set.");
499 Error(
"VizDB_Insert",
"Creation of replica failed.");
516 assert(au !=
nullptr);
528 assert(au !=
nullptr);
547 Info(
"REveElement::CheckReferenceCount",
"(called from %s) auto-destructing '%s' on zero reference count.",
741 if (t > 100) t = 100;
754 if (alpha < 0) alpha = 0;
755 if (alpha > 1) alpha = 1;
857 if (!el)
throw eh +
"called with nullptr argument.";
859 if (el->
fElementId)
throw eh +
"element already has an id.";
861 if (el->
fMother)
throw eh +
"element already has a Mother.";
888 static const REveException eh(
"REveElement::RemoveElement ");
890 if (!el)
throw eh +
"called with nullptr argument.";
891 if (el->
fMother !=
this)
throw eh +
"this element is not mother of el.";
935 c->fScene->SceneElementRemoved(
c->fElementId);
936 c->fMother =
nullptr;
939 c->CheckReferenceCount();
986 auto pmgr = pp->GetManager();
987 Float_t cd = pmgr->GetCurrentDepth();
988 if (same_depth) pmgr->SetCurrentDepth(pp->GetDepth());
990 pmgr->SubImportElements(el, pp->GetProjectedAsElement());
992 if (same_depth) pmgr->SetCurrentDepth(cd);
1045 if (
name.CompareTo(
c->GetCName()) == 0)
1047 if (!cls ||
c->IsA()->InheritsFrom(cls))
1064 if (regexp.
MatchB(
c->GetName()))
1066 if (!cls ||
c->IsA()->InheritsFrom(cls))
1085 if (
name.CompareTo(
c->GetCName()) == 0)
1087 if (!cls ||
c->IsA()->InheritsFrom(cls))
1089 matches.push_back(
c);
1109 if (regexp.
MatchB(
c->GetCName()))
1111 if (!cls ||
c->IsA()->InheritsFrom(cls))
1113 matches.push_back(
c);
1144 c->SetRnrSelfChildren(rnr_self, rnr_children);
1157 c->SetRnrSelfChildren(rnr_self, rnr_children);
1173 c->AnnihilateRecursively();
1239 throw eh +
TString::Format(
"element '%s' (%s*) %p is protected against destruction.",
1258 ::Warning(
"REveElement::DestroyOrWarn",
"Error while destroy element %p : %s",
this, exc.
what());
1270 if (
c->fDenyDestroy <= 0)
1276 ::Warning(
"REveElement::DestroyElements",
"element destruction failed: '%s'.", exc.
what());
1283 ::Info(
"REveElement::DestroyElements",
"element '%s' is protected against destruction, removing locally.",
c->GetCName());
1346 c->SetPickableRecursively(p);
1460 static const std::string true_str (
"kTRUE");
1461 static const std::string false_str(
"kFALSE");
1463 return b ? true_str : false_str;
1490 if (rnr_offset >= 0) {
1494 nlohmann::json rd = {};
1496 rd[
"rnr_offset"] = rnr_offset;
1503 j[
"render_data"] = rd;
void SetVizTag(const TString &tag)
void SaveVizParams(std::ostream &out, const TString &tag, const TString &var)
Save visualization parameters for this element with given tag.
virtual void CheckReferenceCount(const std::string &from="<unknown>")
Check external references to this and eventually auto-destruct the render-element.
static const std::string & ToString(Bool_t b)
Convert Bool_t to string - kTRUE or kFALSE.
void VizDB_Insert(const std::string &tag, Bool_t replace=kTRUE, Bool_t update=kTRUE)
Create a replica of element and insert it into VizDB with given tag.
virtual Bool_t SetRnrChildren(Bool_t rnr)
Set render state of this element's children, i.e.
void RecheckImpliedSelections()
Call this if it is possible that implied-selection or highlight has changed for this element or for i...
void SetDestroyOnZeroRefCnt(Bool_t d)
Sets the state of flag determining if the element will be destroyed when reference count reaches zero...
virtual void DestroyMainTrans()
Destroy the main transformation matrix, it will always be taken as identity.
void Warning(const char *location, const char *msgfmt,...)
Use this function in warning situations.
virtual void ProjectChild(REveElement *el, Bool_t same_depth=kTRUE)
If this is a projectable, loop over all projected replicas and add the projected image of child 'el' ...
virtual void RemoveElements()
Remove all elements.
#define dest(otri, vertexptr)
virtual std::string GetHighlightTooltip(const std::set< int > &) const
void DecDenyDestroy()
Decreases the deny-destroy count of the element.
void assign_element_id_recurisvely()
ElementId_t get_mother_id() const
virtual Bool_t SetRnrSelf(Bool_t rnr)
Set render state of this element, i.e.
const char * Data() const
char * Form(const char *fmt,...)
virtual void PropagateMainColor(Color_t color, Color_t old_color)
Set main color of projecteds if their color is the same as old_color.
void VizDB_UpdateModel(Bool_t update=kTRUE)
Copy visual parameters from this element to viz-db model.
virtual void CloneChildrenRecurse(REveElement *dest, Int_t level=0) const
Clone children and attach them to the dest element.
virtual void PropagateRenderState(Bool_t rnr_self, Bool_t rnr_children)
Set render state of projecteds.
void VizDB_Apply(const std::string &tag)
Set visual parameters for this object for given tag.
Bool_t TestCSCBits(UChar_t f) const
virtual REveTrans & RefMainTrans()
Return reference to main transformation.
void SetPickableRecursively(Bool_t p)
Set pickable state on the element and all its children.
virtual REveTrans * PtrMainTrans(Bool_t create=kTRUE)
Return pointer to main transformation.
virtual Bool_t GetRnrChildren() const
virtual void AnnihilateProjecteds()
Optimized destroy of projected elements with condition there is only one parent for projected element...
virtual void NameTitleChanged()
Virtual function called when a name or title of the element has been changed.
static constexpr double s
void VizDB_Reapply()
Reset visual parameters for this object from VizDB.
virtual ~REveElement()
Destructor.
virtual REveElement * CloneElementRecurse(Int_t level=0) const
Clone elements and recurse 'level' deep over children.
virtual void ProjectAllChildren(Bool_t same_depth=kTRUE)
If this is a projectable, loop over all projected replicas and add the projected image of all childre...
virtual void PropagateVizParamsToChildren(REveElement *el=nullptr)
Propagate visualization parameters from element el (defaulting to this) to all children.
virtual void InitMainTrans(Bool_t can_edit=kTRUE)
Initialize the main transformation to identity matrix.
Bool_t GetDestroyOnZeroRefCnt() const
Returns state of flag determining if the element will be destroyed when reference count reaches zero.
TClass * IsA() const
Return class for this element.
virtual void PropagateVizParams(REveElement *el=nullptr)
Set visualization parameters of projecteds.
void EnableListElements(Bool_t rnr_self=kTRUE, Bool_t rnr_children=kTRUE)
Enable rendering of children and their list contents.
static TString Format(const char *fmt,...)
Static method which formats a string using a printf style format descriptor and return a TString.
virtual Char_t GetMainTransparency() const
virtual Bool_t AcceptElement(REveElement *el)
Check if el can be added to this element.
void SetTitle(const std::string &title)
Set title of an element.
R__EXTERN TEveManager * gEve
Int_t FindChildren(List_t &matches, const TString &name, const TClass *cls=nullptr)
Find all children with given name and append them to matches list.
virtual void SetTransMatrix(Double_t *carr)
Set transformation matrix from column-major array.
void SceneElementChanged(REveElement *element)
virtual Color_t GetMainColor() const
std::unique_ptr< REveTrans > fMainTrans
virtual void AddAunt(REveAunt *au)
Add el into the list aunts.
virtual Bool_t SetRnrSelfChildren(Bool_t rnr_self, Bool_t rnr_children)
Set state for rendering of this element and its children.
REveElement * FindChild(const TString &name, const TClass *cls=nullptr)
Find the first child with given name.
REveElement * FirstChild() const
Returns the first child element or 0 if the list is empty.
REveElement * LastChild() const
Returns the last child element or 0 if the list is empty.
virtual Int_t WriteCoreJson(nlohmann::json &cj, Int_t rnr_offset)
Write core json.
Bool_t fCanEditMainTransparency
static void update(gsl_integration_workspace *workspace, double a1, double b1, double area1, double error1, double a2, double b2, double area2, double error2)
Bool_t HasChild(REveElement *el)
Check if element el is a child of this element.
virtual void PropagateVizParamsToProjecteds()
Propagate visualization parameters to dependent elements.
Bool_t MatchB(const TString &s, const TString &mods="", Int_t start=0, Int_t nMaxMatch=10)
virtual void ExportToCINT(const char *var_name)
Export render-element to CINT with variable name var_name.
virtual void Annihilate()
Optimized destruction without check of reference-count.
Bool_t InsertVizDBEntry(const TString &tag, TEveElement *model, Bool_t replace, Bool_t update)
Insert a new visualization-parameter database entry.
void SceneElementRemoved(ElementId_t id)
virtual Bool_t SetRnrState(Bool_t rnr)
Set render state of this element and of its children to the same value.
ElementId_t get_scene_id() const
Bool_t InheritsFrom(const char *cl) const
Return kTRUE if this class inherits from a class with name "classname".
virtual void FillImpliedSelectedSet(Set_t &impSelSet)
Populate set impSelSet with derived / dependant elements.
virtual REveElement * CloneElement() const
Clone the element via copy constructor.
void SetMainColorPixel(Pixel_t pixel)
Convert pixel to Color_t and call SetMainColor().
void assign_scene_recursively(REveScene *s)
std::list< REveElement * > List_t
virtual void AnnihilateElements()
Annihilate elements.
const char * GetCName() const
std::unique_ptr< REveRenderData > fRenderData
Externally assigned and controlled user data.
virtual void CopyVizParamsFromDB()
Copy visualization parameters from the model-element fVizModel.
void * New(ENewType defConstructor=kClassNew, Bool_t quiet=kFALSE) const
Return a pointer to a newly allocated object of this class.
virtual void AnnihilateRecursively()
Protected member function called from REveElement::Annihilate().
virtual void CopyVizParams(const REveElement *el)
Copy visualization parameters from element el.
REveException Exception-type thrown by Eve classes.
Bool_t HasChildren() const
void SetFrom(Double_t *carr)
virtual void DestroyOrWarn()
Destroy this element. Prints a warning if deny-destroy is in force.
Bool_t SetVizModelByTag()
Find model element in VizDB that corresponds to previously assigned fVizTag and set fVizModel accordi...
void StampColorSelection()
void SetupDefaultColorAndTransparency(Color_t col, Bool_t can_edit_color, Bool_t can_edit_transparency)
Set up element to use built-in main color and set flags allowing editing of main color and transparen...
void SetMainColorRGB(UChar_t r, UChar_t g, UChar_t b)
Convert RGB values to Color_t and call SetMainColor.
virtual Bool_t GetRnrSelf() const
void DisableListElements(Bool_t rnr_self=kFALSE, Bool_t rnr_children=kFALSE)
Disable rendering of children and their list contents.
void SetMainAlpha(Float_t alpha)
Set main-transparency via float alpha variable.
const char * what() const noexcept override
static TClass * GetClass(const char *name, Bool_t load=kTRUE, Bool_t silent=kFALSE)
Static method returning pointer to TClass of the specified class name.
virtual void AddProjectedsToSet(std::set< REveElement * > &set)
Add the projected elements to the set, dyn-casting them to REveElement.
virtual Bool_t SingleRnrState() const
Bool_t IsAcceptingChanges() const
static Int_t GetColor(const char *hexcolor)
Static method returning color number for color specified by hex color string of form: "#rrggbb",...
void SetVizModel(REveElement *model)
Set visualization-parameter model element.
virtual void RemoveElementLocal(REveElement *el)
Perform additional local removal of el.
std::set< REveElement * > Set_t
virtual void PropagateMainTransparency(Char_t t, Char_t old_t)
Set main transparency of projecteds if their transparency is the same as the old one.
void PreDeleteElement(TEveElement *element)
Called from TEveElement prior to its destruction so the framework components (like object editor) can...
ElementId_t GetElementId() const
Float_t GetCurrentDepth() const
REveElement(const std::string &name="", const std::string &title="")
Default constructor.
@ kCSCBTakeMotherAsMaster
Int_t GetDenyDestroy() const
Returns the number of times deny-destroy has been requested on the element.
virtual void PropagateRnrStateToProjecteds()
Propagate render state to the projected replicas of this element.
virtual void AddStamp(UChar_t bits)
Add (bitwise or) given stamps to fChangeBits.
REveProjectable * GetProjectable() const
void SetNameTitle(const std::string &name, const std::string &title)
Set name and title of an element.
virtual void RemoveElement(REveElement *el)
Remove el from the list of children.
Bool_t fDestroyOnZeroRefCnt
Deny-destroy count.
void SetName(const std::string &name)
Set name of an element.
virtual void AddElement(REveElement *el)
Add el to the list of children.
Geometrical transformation package.
Bool_t ApplyVizTag(const TString &tag, const TString &fallback_tag="")
Set the VizTag, find model-element from the VizDB and copy visualization-parameters from it.
virtual void ClearProjectedList()
virtual REveElement * GetSelectionMaster()
Returns the master element - that is:
void Info(const char *location, const char *msgfmt,...)
Use this function for informational messages.
TClass instances represent classes, structs and namespaces in the ROOT type system.
const std::string & GetName() const
TEveElement * FindVizDBEntry(const TString &tag)
Find a visualization-parameter database entry corresponding to tag.
void Redraw3D(Bool_t resetCameras=kFALSE, Bool_t dropLogicals=kFALSE)
ProjList_t & RefProjecteds()
virtual void PreDeleteElement()
Vertex / normal / triangle index information for rendering.
virtual void Destroy()
Destroy this element.
virtual void RemoveElementsLocal()
Perform additional local removal of all elements.
REveElement * fSelectionMaster
void IncDenyDestroy()
Increases the deny-destroy count of the element.
virtual Bool_t HasProjecteds() const
void SetCurrentDepth(Float_t d)
virtual void BuildRenderData()
Write transformation Matrix to render data.
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 PropagateMainColorToProjecteds(Color_t color, Color_t old_color)
Propagate color to projected elements.
virtual void RemoveAunt(REveAunt *au)
Remove el from the list of aunts.
virtual const char * GetName() const
Returns name of object.
TString fVizTag
Element used as model from VizDB.
REveProjectionManager Manager class for steering of projections and managing projected objects.
virtual void WriteVizParams(std::ostream &out, const TString &var)
Write-out visual parameters for this object.
virtual void PropagateMainTransparencyToProjecteds(Char_t t, Char_t old_t)
Propagate transparency to projected elements.
virtual void SetMainColor(Color_t color)
Set main color of the element.
virtual void SetMainTransparency(Char_t t)
Set main-transparency.
void Error(const char *location, const char *msgfmt,...)
Use this function in case an error occurred.
virtual void RemoveElementsInternal()
Remove all elements.
virtual void DestroyElements()
Destroy all children of this element.