Implements a native ROOT-GL representation of an arbitrary set of polygons.
Definition at line 22 of file TGLFaceSet.h.
Public Member Functions | |
TGLFaceSet (const TBuffer3D &buffer) | |
constructor | |
void | CalculateNormals () |
CalculateNormals. | |
void | DirectDraw (TGLRnrCtx &rnrCtx) const override |
Debug tracing. | |
void | EnforceTriangles () |
Use GLU tesselator to replace all polygons with N > 3 with triangles. | |
UInt_t | GetNbPols () |
std::vector< Double_t > & | GetNormals () |
std::vector< Int_t > & | GetPolyDesc () |
std::vector< Double_t > & | GetVertices () |
TClass * | IsA () const override |
void | SetFromMesh (const RootCsg::TBaseMesh *m) |
Should only be done on an empty faceset object. | |
void | Streamer (TBuffer &) override |
void | StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b) |
Public Member Functions inherited from TGLLogicalShape | |
TGLLogicalShape () | |
global flag for usage of display-lists in shapes that use vertex arrays | |
TGLLogicalShape (const TBuffer3D &buffer) | |
Constructor from TBuffer3D. | |
TGLLogicalShape (TObject *obj) | |
Constructor with external object. | |
virtual | ~TGLLogicalShape () |
Destroy logical shape. | |
void | AddRef (TGLPhysicalShape *phys) const |
Add reference to given physical shape. | |
virtual Bool_t | AlwaysSecondarySelect () const |
const TGLBoundingBox & | BoundingBox () const |
void | DestroyPhysicals () |
Destroy all physicals attached to this logical. | |
virtual void | DLCacheClear () |
Clear all entries for all LODs for this drawable from the display list cache but keeping the reserved ids from GL context. | |
virtual void | DLCacheDrop () |
Drop all entries for all LODs for this drawable from the display list cache, WITHOUT returning the reserved ids to GL context. | |
virtual void | DLCachePurge () |
Purge all entries for all LODs for this drawable from the display list cache, returning the reserved ids to GL context. | |
virtual UInt_t | DLOffset (Short_t) const |
virtual void | Draw (TGLRnrCtx &rnrCtx) const |
Draw the GL drawable, using draw flags. | |
virtual void | DrawHighlight (TGLRnrCtx &rnrCtx, const TGLPhysicalShape *pshp, Int_t lvl=-1) const |
Draw the logical shape in highlight mode. | |
TObject * | GetExternal () const |
const TGLPhysicalShape * | GetFirstPhysical () const |
TGLScene * | GetScene () const |
TObject * | ID () const |
virtual Bool_t | IgnoreSizeForOfInterest () const |
Return true if size of this shape should be ignored when determining if the object should be drawn. | |
void | InvokeContextMenu (TContextMenu &menu, UInt_t x, UInt_t y) const |
Invoke popup menu or our bound external TObject (if any), using passed 'menu' object, at location 'x' 'y'. | |
virtual Bool_t | KeepDuringSmartRefresh () const |
virtual void | ProcessSelection (TGLRnrCtx &rnrCtx, TGLSelectRecord &rec) |
Virtual method called-back after a secondary selection hit is recorded (see TGLViewer::HandleButton(), Ctrl-Button1). | |
virtual Short_t | QuantizeShapeLOD (Short_t shapeLOD, Short_t combiLOD) const |
Logical shapes usually support only discreet LOD values, especially in view of display-list caching. | |
UInt_t | Ref () const |
Bool_t | SetDLCache (Bool_t cached) |
Modify capture of draws into display list cache kTRUE - capture, kFALSE direct draw. | |
virtual Bool_t | ShouldDLCache (const TGLRnrCtx &rnrCtx) const |
Returns kTRUE if draws should be display list cached kFALSE otherwise. | |
void | StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b) |
void | StrongRef (Bool_t strong) const |
void | SubRef (TGLPhysicalShape *phys) const |
Remove reference to given physical shape, potentially deleting this object when hitting zero ref-count (if fRefStrong is true). | |
virtual ELODAxes | SupportedLODAxes () const |
virtual Bool_t | SupportsSecondarySelect () const |
UInt_t | UnrefFirstPhysical () |
Unreferenced first physical in the list, returning its id and making it fit for destruction somewhere else. | |
virtual void | UpdateBoundingBox () |
void | UpdateBoundingBoxesOfPhysicals () |
Update bounding-boxed of all dependent physicals. | |
Static Public Member Functions | |
static TClass * | Class () |
static const char * | Class_Name () |
static constexpr Version_t | Class_Version () |
static const char * | DeclFileName () |
static Bool_t | GetEnforceTriangles () |
Get current state of static flag EnforceTriangles. | |
static void | SetEnforceTriangles (Bool_t e) |
Set state of static flag EnforceTriangles. | |
Static Public Member Functions inherited from TGLLogicalShape | |
static TClass * | Class () |
static const char * | Class_Name () |
static constexpr Version_t | Class_Version () |
static const char * | DeclFileName () |
static Bool_t | GetIgnoreSizeForCameraInterest () |
Get state of static fgIgnoreSizeForCameraInterest flag. | |
static void | SetEnvDefaults () |
static void | SetIgnoreSizeForCameraInterest (Bool_t isfci) |
Set state of static fgIgnoreSizeForCameraInterest flag. | |
Private Member Functions | |
Int_t | CheckPoints (const Int_t *source, Int_t *dest) const |
CheckPoints. | |
void | GLDrawPolys () const |
Static Private Member Functions | |
static Bool_t | Eq (const Double_t *p1, const Double_t *p2) |
test equality | |
Private Attributes | |
UInt_t | fNbPols |
std::vector< Double_t > | fNormals |
std::vector< Int_t > | fPolyDesc |
std::vector< Double_t > | fVertices |
Static Private Attributes | |
static Bool_t | fgEnforceTriangles = kFALSE |
Additional Inherited Members | |
Public Types inherited from TGLLogicalShape | |
enum | ELODAxes { kLODAxesNone = 0 , kLODAxesX = 1 << 0 , kLODAxesY = 1 << 1 , kLODAxesZ = 1 << 2 , kLODAxesAll = kLODAxesX | kLODAxesY | kLODAxesZ } |
Protected Member Functions inherited from TGLLogicalShape | |
void | PurgeDLRange (UInt_t base, Int_t size) const |
External object is a fake. | |
Protected Attributes inherited from TGLLogicalShape | |
TGLBoundingBox | fBoundingBox |
Also plays the role of ID. | |
UInt_t | fDLBase |
scene where object is stored (can be zero!) | |
Bool_t | fDLCache |
display-list validity bit-field | |
Int_t | fDLSize |
display-list id base | |
UShort_t | fDLValid |
display-list size for different LODs | |
TObject * | fExternalObj |
first replica | |
TGLPhysicalShape * | fFirstPhysical |
physical instance ref counting | |
Bool_t | fOwnExtObj |
Strong ref (delete on 0 ref); not in scene. | |
UInt_t | fRef |
Bool_t | fRefStrong |
use display list caching | |
TGLScene * | fScene |
Shape's bounding box. | |
Static Protected Attributes inherited from TGLLogicalShape | |
static Bool_t | fgIgnoreSizeForCameraInterest = kFALSE |
static Bool_t | fgUseDLs = kTRUE |
static Bool_t | fgUseDLsForVertArrs = kTRUE |
global flag for usage of display-lists | |
#include <TGLFaceSet.h>
TGLFaceSet::TGLFaceSet | ( | const TBuffer3D & | buffer | ) |
constructor
Definition at line 58 of file TGLFaceSet.cxx.
void TGLFaceSet::CalculateNormals | ( | ) |
CalculateNormals.
Definition at line 396 of file TGLFaceSet.cxx.
CheckPoints.
Definition at line 352 of file TGLFaceSet.cxx.
|
static |
|
inlinestaticconstexpr |
Definition at line 55 of file TGLFaceSet.h.
|
inlinestatic |
Definition at line 55 of file TGLFaceSet.h.
|
overridevirtual |
void TGLFaceSet::EnforceTriangles | ( | ) |
Use GLU tesselator to replace all polygons with N > 3 with triangles.
After this call polygon descriptions are changed. New vertices are not expected – exception is thrown if this is requested by the triangulator. Support for adding of new vertices can be provided.
Definition at line 176 of file TGLFaceSet.cxx.
test equality
Definition at line 385 of file TGLFaceSet.cxx.
|
static |
Get current state of static flag EnforceTriangles.
Definition at line 430 of file TGLFaceSet.cxx.
|
inline |
Definition at line 44 of file TGLFaceSet.h.
|
inline |
Definition at line 42 of file TGLFaceSet.h.
|
inline |
Definition at line 43 of file TGLFaceSet.h.
|
inline |
Definition at line 41 of file TGLFaceSet.h.
|
private |
|
inlineoverridevirtual |
Reimplemented from TGLLogicalShape.
Definition at line 55 of file TGLFaceSet.h.
|
static |
Set state of static flag EnforceTriangles.
When this is set, all tesselations will be automatically converted into triangle-only meshes. This is needed to export TGeo shapes and CSG meshes to external triangle-mesh libraries that can not handle arbitrary polygons.
Definition at line 442 of file TGLFaceSet.cxx.
void TGLFaceSet::SetFromMesh | ( | const RootCsg::TBaseMesh * | m | ) |
Should only be done on an empty faceset object.
Definition at line 134 of file TGLFaceSet.cxx.
|
overridevirtual |
Reimplemented from TGLLogicalShape.
|
inline |
Definition at line 55 of file TGLFaceSet.h.
Definition at line 30 of file TGLFaceSet.h.
|
private |
Definition at line 28 of file TGLFaceSet.h.
|
private |
Definition at line 26 of file TGLFaceSet.h.
|
private |
Definition at line 27 of file TGLFaceSet.h.
|
private |
Definition at line 25 of file TGLFaceSet.h.