35 TMap TGLObject::fgGLClassMap;
41 Bool_t TGLObject::ShouldDLCache(
const TGLRnrCtx& rnrCtx)
const
45 (rnrCtx.SecSelection() && SupportsSecondarySelect()) ||
46 (fMultiColor && (rnrCtx.Highlight() || rnrCtx.IsDrawPassOutlineLine())) ||
47 (AlwaysSecondarySelect() && rnrCtx.Highlight()))
60 void TGLObject::UpdateBoundingBox()
63 UpdateBoundingBoxesOfPhysicals();
71 Bool_t TGLObject::SetModelCheckClass(TObject* obj, TClass* cls)
73 if(obj->InheritsFrom(cls) == kFALSE) {
74 Warning(
"TGLObject::SetModelCheckClass",
"object of wrong class passed.");
86 void TGLObject::SetAxisAlignedBBox(Float_t xmin, Float_t xmax,
87 Float_t ymin, Float_t ymax,
88 Float_t zmin, Float_t zmax)
90 fBoundingBox.SetAligned(TGLVertex3(xmin, ymin, zmin),
91 TGLVertex3(xmax, ymax, zmax));
98 void TGLObject::SetAxisAlignedBBox(
const Float_t* p)
100 SetAxisAlignedBBox(p[0], p[1], p[2], p[3], p[4], p[5]);
108 TClass* TGLObject::SearchGLRenderer(TClass* cls)
110 TString rnr( cls->GetName() );
112 TClass* c = TClass::GetClass(rnr);
116 TList* bases = cls->GetListOfBases();
117 if (bases == 0 || bases->IsEmpty())
120 TIter next_base(bases);
122 while ((bc = (TBaseClass*) next_base()) != 0) {
123 cls = bc->GetClassPointer();
124 if ((c = SearchGLRenderer(cls)) != 0) {
135 TClass* TGLObject::GetGLRenderer(TClass* isa)
137 TPair* p = (TPair*) fgGLClassMap.FindObject(isa);
140 cls = (TClass*) p->Value();
142 cls = SearchGLRenderer(isa);
143 fgGLClassMap.Add(isa, cls);