12#ifndef ROOT_TGLScenePad
13#define ROOT_TGLScenePad
48 typedef std::pair<UInt_t, RootCsg::TBaseMesh*>
CSPart_t;
int Int_t
Signed integer 4 bytes (int).
unsigned int UInt_t
Unsigned integer 4 bytes (unsigned int).
bool Bool_t
Boolean (0=false, 1=true) (bool).
float Float_t
Float 4 bytes (float).
const char Option_t
Option string (const char).
#define ClassDefOverride(name, id)
Generic 3D primitive description class.
Implements a native ROOT-GL representation of an arbitrary set of polygons.
ELock CurrentLock() const
Abstract logical shape - a GL 'drawable' - base for all shapes - faceset sphere etc.
Concrete physical shape - a GL drawable.
TGLLogicalShape * CreateNewLogical(const TBuffer3D &buffer) const
Create and return a new TGLLogicalShape from the supplied buffer.
Bool_t fSmartRefresh
! cache logicals during scene rebuilds
std::vector< CSPart_t > fCSTokens
RootCsg::TBaseMesh * BuildComposite()
Build and return composite shape mesh.
void EndScene() override
End building of the scene.
Bool_t PreferLocalFrame() const override
Bool_t GetSmartRefresh() const
void ExecuteEvent(Int_t, Int_t, Int_t) override
Execute action corresponding to an event at (px,py).
void CloseComposite() override
Close composite container TVirtualViewer3D interface overload - see base/src/TVirtualViewer3D....
Bool_t OpenComposite(const TBuffer3D &buffer, Bool_t *addChildren=nullptr) override
Open new composite container.
Int_t AddObject(const TBuffer3D &buffer, Bool_t *addChildren=nullptr) override
Add an object to the viewer, using internal physical IDs TVirtualViewer3D interface overload - see ba...
void PadPaint(TVirtualPad *pad) override
Entry point for updating scene contents via VirtualViewer3D interface.
TGLScenePad & operator=(const TGLScenePad &)=delete
Bool_t fInternalPIDs
! using internal physical IDs
TGLPhysicalShape * CreateNewPhysical(UInt_t physicalID, const TBuffer3D &buffer, const TGLLogicalShape &logical) const
Create and return a new TGLPhysicalShape with id 'ID', using 'buffer' placement information (translat...
void BeginScene() override
Start building of the scene.
TGLLogicalShape * AttemptDirectRenderer(TObject *id)
Try to construct an appropriate logical-shape sub-class based on id'class, following convention that ...
virtual void PadPaintFromViewer(TGLViewer *viewer)
Entry point for requesting update of scene's contents from gl-viewer.
void SubPadPaint(TVirtualPad *pad)
Iterate over pad-primitives and import them.
UInt_t fLastPID
! last physical ID that was processed in AddObject()
Int_t ValidateObjectBuffer(const TBuffer3D &buffer, Bool_t includeRaw) const
Validate if the passed 'buffer' contains all sections we require to add object.
void SetSmartRefresh(Bool_t smart_ref)
void ComposePolymarker(const TList *padPrimitives)
void ObjectPaint(TObject *obj, Option_t *opt="") override
Override of virtual TVirtualViewer3D::ObjectPaint().
Bool_t CanLoopOnPrimitives() const override
void AddCompositeOp(UInt_t operation) override
Add composite operation used to combine objects added via AddObject TVirtualViewer3D interface overlo...
TVirtualPad * GetPad() const
Bool_t BuildingScene() const override
TGLFaceSet * fComposite
! Paritally created composite
Int_t DistancetoPrimitive(Int_t, Int_t) override
Computes distance from point (px,py) to the object.
void AddHistoPhysical(TGLLogicalShape *log, const Float_t *histColor=nullptr)
Scale and rotate a histo object to mimic placement in canvas.
void SetPad(TVirtualPad *p)
TGLScenePad(const TGLScenePad &)=delete
std::pair< UInt_t, RootCsg::TBaseMesh * > CSPart_t
UInt_t fNextInternalPID
! next internal physical ID (from 1 - 0 reserved)
TGLScene(const TGLScene &)=delete
Base GL viewer object - used by both standalone and embedded (in pad) GL.
Mother of all ROOT objects.
TObject()
TObject constructor.
TVirtualPad is an abstract base class for the Pad and Canvas classes.
Abstract 3D shapes viewer.