13 #ifndef ROOT_TGLPhysicalShape 14 #define ROOT_TGLPhysicalShape 19 #ifndef ROOT_TGLBoundingBox 82 const double * transform,
Bool_t invertedWind,
207 #endif // ROOT_TGLPhysicalShape
The TGLRnrCtx class aggregates data for a given redering context as needed by various parts of the RO...
TGLVertex3 Center() const
void InvokeContextMenu(TContextMenu &menu, UInt_t x, UInt_t y) const
Request creation of context menu on shape, attached to 'menu' at screen position 'x' 'y'...
void Translate(const TGLVector3 &vect)
void SetTranslation(Double_t x, Double_t y, Double_t z)
Set matrix translation components x,y,z.
void SetColorOnFamily(const Float_t rgba[17])
Set full color attributes to all physicals sharing the same logical with this object.
UInt_t fID
pointer to first reference
16 component (4x4) transform matrix - column MAJOR as per GL.
virtual ~TGLPhysicalShape()
Destroy the physical shape.
void SetupGLColors(TGLRnrCtx &rnrCtx, const Float_t *color=0) const
Setup colors - avoid setting things not required for current draw flags.
Bool_t fModified
face winding TODO: can get directly from fTransform?
UChar_t fSelected
permitted manipulation bitflags - see EManip
void UpdateBoundingBox()
cache
EManip fManip
GL color array.
void Modified()
Call this after modifying the physical so that the information can be propagated to the object refere...
const TGLPhysicalShape * GetNextPhysical() const
UChar_t GetSelected() const
Bool_t fInvertedWind
selected state
const TGLLogicalShape * fLogicalShape
virtual void QuantizeShapeLOD(Short_t shapeLOD, Short_t combiLOD, Short_t &quantLOD) const
Factor in scene/vierer LOD and Quantize ...
Concrete physical shape - a GL drawable.
void InitColor(const Float_t rgba[4])
Initialise the colors, using basic RGBA diffuse material color supplied.
TGLBoundingBox fBoundingBox
transform (placement) of physical instance
void Translate(const TGLVector3 &vect)
Shift matrix translation components by 'vect' in parent frame.
#define ClassDef(name, id)
void SetColor(const Float_t rgba[17])
Set full color attributes - see OpenGL material documentation for full description.
void Set(const TGLVertex3 &origin, const TGLVector3 &zAxis, const TGLVector3 &xAxis=0)
Set matrix which when applied puts local origin at 'origin' and the local Z axis in direction 'z'...
Bool_t IsSelected() const
3 component (x/y/z) vertex class.
void Rotate(const TGLVertex3 &pivot, const TGLVector3 &axis, Double_t angle)
const TGLBoundingBox & BoundingBox() const
Bool_t IsTransparent() const
TGLVector3 GetScale() const
3 component (x/y/z) vector class.
const Float_t * Color() const
TGLVector3 GetTranslation() const
Return the translation component of matrix.
void SetManip(EManip manip)
Bool_t IsInvisible() const
TGLPhysicalShape & operator=(const TGLPhysicalShape &)
TGLPhysicalShape * fNextPhysical
the associated logical shape
void Select(UChar_t select)
Base class for references to TGLPysicalShape that need to be notified when the shape is destroyed...
Abstract logical shape - a GL 'drawable' - base for all shapes - faceset sphere etc.
TGLVertex3 GetTranslation() const
virtual void Draw(TGLRnrCtx &rnrCtx) const
Draw physical shape, using LOD flags, potential from display list cache.
Bool_t fIsScaleForRnr
has been modified - retain across scene rebuilds
void Scale(const TGLVector3 &scale)
void AddReference(TGLPShapeRef *ref)
Add reference ref.
Bool_t IsModified() const
TGLPhysicalShape(const TGLPhysicalShape &)
void Rotate(const TGLVertex3 &pivot, const TGLVector3 &axis, Double_t angle)
Update matrix so resulting transform has been rotated about 'pivot' (in parent frame), round vector 'axis', through 'angle' (radians) Equivalent to glRotate function, but with addition of translation and compounded on top of existing.
void SetTransform(const TGLMatrix &transform)
Float_t fColor[17]
bounding box of the physical (transformed)
TGLMatrix fTransform
unique physical ID within containing scene
Concrete class describing an orientated (free) or axis aligned box of 8 vertices. ...
void RemoveReference(TGLPShapeRef *ref)
Remove reference ref.
void Scale(const TGLVector3 &scale)
Set matrix axis scales to 'scale'.
void SetTranslation(const TGLVertex3 &translation)
virtual void CalculateShapeLOD(TGLRnrCtx &rnrCtx, Float_t &pixSize, Short_t &shapeLOD) const
Calculate shape-lod, suitable for use under projection defined by 'rnrCtx', taking account of which l...
TGLPShapeRef * fFirstPSRef
pointer to next replica
TGLVector3 GetScale() const
Get local axis scaling factors.
const TGLLogicalShape * GetLogical() const
void SetDiffuseColor(const Float_t rgba[4])
Set color from ROOT color index and transparency [0,100].