12#ifndef ROOT_TGLScenePad
13#define ROOT_TGLScenePad
48 typedef std::pair<UInt_t, RootCsg::TBaseMesh*>
CSPart_t;
#define ClassDef(name, id)
winID h TVirtualViewer3D TVirtualGLPainter p
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.
Implements VirtualViewer3D interface and fills the base-class visualization structures from pad conte...
TGLLogicalShape * CreateNewLogical(const TBuffer3D &buffer) const
Create and return a new TGLLogicalShape from the supplied buffer.
std::vector< CSPart_t > fCSTokens
virtual void CloseComposite()
Close composite container TVirtualViewer3D interface overload - see base/src/TVirtualViewer3D....
RootCsg::TBaseMesh * BuildComposite()
Build and return composite shape mesh.
Bool_t GetSmartRefresh() const
virtual Bool_t PreferLocalFrame() const
virtual Bool_t CanLoopOnPrimitives() const
virtual void AddCompositeOp(UInt_t operation)
Add composite operation used to combine objects added via AddObject TVirtualViewer3D interface overlo...
virtual void ExecuteEvent(Int_t, Int_t, Int_t)
Execute action corresponding to an event at (px,py).
TGLScenePad & operator=(const TGLScenePad &)=delete
virtual Int_t DistancetoPrimitive(Int_t, Int_t)
Computes distance from point (px,py) to the object.
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...
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
next internal physical ID (from 1 - 0 reserved)
Int_t ValidateObjectBuffer(const TBuffer3D &buffer, Bool_t includeRaw) const
Validate if the passed 'buffer' contains all sections we require to add object.
Int_t fAcceptedPhysicals
last physical ID that was processed in AddObject()
virtual void PadPaint(TVirtualPad *pad)
Entry point for updating scene contents via VirtualViewer3D interface.
void SetSmartRefresh(Bool_t smart_ref)
void ComposePolymarker(const TList *padPrimitives)
virtual void ObjectPaint(TObject *obj, Option_t *opt="")
Override of virtual TVirtualViewer3D::ObjectPaint().
TVirtualPad * GetPad() const
virtual Bool_t OpenComposite(const TBuffer3D &buffer, Bool_t *addChildren=nullptr)
Open new composite container.
UInt_t fCSLevel
Paritally created composite.
virtual Bool_t BuildingScene() const
virtual void BeginScene()
Start building of the scene.
void AddHistoPhysical(TGLLogicalShape *log, const Float_t *histColor=nullptr)
Scale and rotate a histo object to mimic placement in canvas.
virtual void EndScene()
End building of the scene.
virtual Int_t AddObject(const TBuffer3D &buffer, Bool_t *addChildren=nullptr)
Add an object to the viewer, using internal physical IDs TVirtualViewer3D interface overload - see ba...
void SetPad(TVirtualPad *p)
TGLScenePad(const TGLScenePad &)=delete
std::pair< UInt_t, RootCsg::TBaseMesh * > CSPart_t
UInt_t fNextInternalPID
using internal physical IDs
TGLScene provides management and rendering of ROOT's default 3D /object representation as logical and...
Base GL viewer object - used by both standalone and embedded (in pad) GL.
Mother of all ROOT objects.
TVirtualPad is an abstract base class for the Pad and Canvas classes.
Abstract 3D shapes viewer.
RVec< PromoteType< T > > log(const RVec< T > &v)