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...
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.
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'...
TGLVector3 GetTranslation() const
Return the translation component of matrix.
UInt_t fID
pointer to first reference
16 component (4x4) transform matrix - column MAJOR as per GL.
virtual ~TGLPhysicalShape()
Destroy the physical shape.
const TGLBoundingBox & BoundingBox() const
Bool_t fModified
face winding TODO: can get directly from fTransform?
UChar_t fSelected
permitted manipulation bitflags - see EManip
TGLVertex3 Center() const
const TGLPhysicalShape * GetNextPhysical() const
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...
Bool_t fInvertedWind
selected state
const TGLLogicalShape * fLogicalShape
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...
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.
virtual void Draw(TGLRnrCtx &rnrCtx) const
Draw physical shape, using LOD flags, potential from display list cache.
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'...
3 component (x/y/z) vertex class.
void Rotate(const TGLVertex3 &pivot, const TGLVector3 &axis, Double_t angle)
TGLVertex3 GetTranslation() const
const TGLLogicalShape * GetLogical() const
3 component (x/y/z) vector class.
virtual void QuantizeShapeLOD(Short_t shapeLOD, Short_t combiLOD, Short_t &quantLOD) const
Factor in scene/vierer LOD and Quantize ...
void SetManip(EManip manip)
TGLVector3 GetScale() 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...
Bool_t IsTransparent() const
Abstract logical shape - a GL 'drawable' - base for all shapes - faceset sphere etc.
Bool_t fIsScaleForRnr
has been modified - retain across scene rebuilds
UChar_t GetSelected() const
void Scale(const TGLVector3 &scale)
const Float_t * Color() const
void AddReference(TGLPShapeRef *ref)
Add reference ref.
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)
Bool_t IsInvisible() const
TGLMatrix fTransform
unique physical ID within containing scene
Bool_t IsModified() const
Concrete class describing an orientated (free) or axis aligned box of 8 vertices. ...
TGLVector3 GetScale() const
Get local axis scaling factors.
void RemoveReference(TGLPShapeRef *ref)
Remove reference ref.
void Scale(const TGLVector3 &scale)
Set matrix axis scales to 'scale'.
void SetupGLColors(TGLRnrCtx &rnrCtx, const Float_t *color=0) const
Setup colors - avoid setting things not required for current draw flags.
void SetTranslation(const TGLVertex3 &translation)
TGLPShapeRef * fFirstPSRef
pointer to next replica
void SetDiffuseColor(const Float_t rgba[4])
Set color from ROOT color index and transparency [0,100].
Bool_t IsSelected() const