ROOT  6.06/09
Reference Guide
Public Member Functions | Static Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | Static Private Attributes | List of all members
TGLFaceSet Class Reference

Implements a native ROOT-GL representation of an arbitrary set of polygons.

Definition at line 25 of file TGLFaceSet.h.

Public Member Functions

 TGLFaceSet (const TBuffer3D &buffer)
 constructor More...
 
virtual void DirectDraw (TGLRnrCtx &rnrCtx) const
 Debug tracing. More...
 
void SetFromMesh (const RootCsg::TBaseMesh *m)
 Should only be done on an empty faceset object. More...
 
void CalculateNormals ()
 CalculateNormals. More...
 
void EnforceTriangles ()
 Use GLU tesselator to replace all polygons with N > 3 with triangles. More...
 
std::vector< Double_t > & GetVertices ()
 
std::vector< Double_t > & GetNormals ()
 
std::vector< Int_t > & GetPolyDesc ()
 
UInt_t GetNbPols ()
 
- Public Member Functions inherited from TGLLogicalShape
 TGLLogicalShape ()
 Constructor. More...
 
 TGLLogicalShape (TObject *obj)
 Constructor with external object. More...
 
 TGLLogicalShape (const TBuffer3D &buffer)
 Constructor from TBuffer3D. More...
 
virtual ~TGLLogicalShape ()
 Destroy logical shape. More...
 
UInt_t Ref () const
 
void AddRef (TGLPhysicalShape *phys) const
 Add reference to given physical shape. More...
 
void SubRef (TGLPhysicalShape *phys) const
 Remove reference to given physical shape, potentially deleting this object when hitting zero ref-count (if fRefStrong is true). More...
 
void StrongRef (Bool_t strong) const
 
void DestroyPhysicals ()
 Destroy all physicals attached to this logical. More...
 
UInt_t UnrefFirstPhysical ()
 Unreferenced first physical in the list, returning its id and making it fit for destruction somewhere else. More...
 
const TGLPhysicalShapeGetFirstPhysical () const
 
TObjectID () const
 
TObjectGetExternal () const
 
TGLSceneGetScene () const
 
const TGLBoundingBoxBoundingBox () const
 
virtual void UpdateBoundingBox ()
 
void UpdateBoundingBoxesOfPhysicals ()
 Update bounding-boxed of all dependent physicals. More...
 
Bool_t SetDLCache (Bool_t cached)
 Modify capture of draws into display list cache kTRUE - capture, kFALSE direct draw. More...
 
virtual Bool_t ShouldDLCache (const TGLRnrCtx &rnrCtx) const
 Returns kTRUE if draws should be display list cached kFALSE otherwise. More...
 
virtual UInt_t DLOffset (Short_t) const
 
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. More...
 
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. More...
 
virtual void DLCachePurge ()
 Purge all entries for all LODs for this drawable from the display list cache, returning the reserved ids to GL context. More...
 
virtual ELODAxes SupportedLODAxes () const
 
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. More...
 
virtual void Draw (TGLRnrCtx &rnrCtx) const
 Draw the GL drawable, using draw flags. More...
 
virtual void DrawHighlight (TGLRnrCtx &rnrCtx, const TGLPhysicalShape *pshp, Int_t lvl=-1) const
 Draw the logical shape in highlight mode. More...
 
virtual Bool_t IgnoreSizeForOfInterest () const
 Return true if size of this shape should be ignored when determining if the object should be drawn. More...
 
virtual Bool_t KeepDuringSmartRefresh () const
 
virtual Bool_t SupportsSecondarySelect () const
 
virtual Bool_t AlwaysSecondarySelect () const
 
virtual void ProcessSelection (TGLRnrCtx &rnrCtx, TGLSelectRecord &rec)
 Virtual method called-back after a secondary selection hit is recorded (see TGLViewer::HandleButton(), Ctrl-Button1). More...
 
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'. More...
 

Static Public Member Functions

static Bool_t GetEnforceTriangles ()
 Get current state of static flag EnforceTriangles. More...
 
static void SetEnforceTriangles (Bool_t e)
 Set state of static flag EnforceTriangles. More...
 
- Static Public Member Functions inherited from TGLLogicalShape
static Bool_t GetIgnoreSizeForCameraInterest ()
 Get state of static fgIgnoreSizeForCameraInterest flag. More...
 
static void SetIgnoreSizeForCameraInterest (Bool_t isfci)
 Set state of static fgIgnoreSizeForCameraInterest flag. More...
 

Private Member Functions

void GLDrawPolys () const
 
Int_t CheckPoints (const Int_t *source, Int_t *dest) const
 CheckPoints. More...
 

Static Private Member Functions

static Bool_t Eq (const Double_t *p1, const Double_t *p2)
 test equality More...
 

Private Attributes

std::vector< Double_tfVertices
 
std::vector< Double_tfNormals
 
std::vector< Int_tfPolyDesc
 
UInt_t fNbPols
 

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. More...
 
- Protected Attributes inherited from TGLLogicalShape
UInt_t fRef
 
TGLPhysicalShapefFirstPhysical
 physical instance ref counting More...
 
TObjectfExternalObj
 first replica More...
 
TGLBoundingBox fBoundingBox
 Also plays the role of ID. More...
 
TGLScenefScene
 Shape's bounding box. More...
 
UInt_t fDLBase
 scene where object is stored (can be zero!) More...
 
Int_t fDLSize
 display-list id base More...
 
UShort_t fDLValid
 display-list size for different LODs More...
 
Bool_t fDLCache
 display-list validity bit-field More...
 
Bool_t fRefStrong
 use display list caching More...
 
Bool_t fOwnExtObj
 Strong ref (delete on 0 ref); not in scene. More...
 
- Static Protected Attributes inherited from TGLLogicalShape
static Bool_t fgIgnoreSizeForCameraInterest = kFALSE
 

#include <TGLFaceSet.h>

+ Inheritance diagram for TGLFaceSet:
+ Collaboration diagram for TGLFaceSet:

Constructor & Destructor Documentation

TGLFaceSet::TGLFaceSet ( const TBuffer3D buffer)

constructor

Definition at line 58 of file TGLFaceSet.cxx.

Member Function Documentation

void TGLFaceSet::CalculateNormals ( )

CalculateNormals.

Definition at line 396 of file TGLFaceSet.cxx.

Referenced by SetFromMesh(), and TGLFaceSet().

Int_t TGLFaceSet::CheckPoints ( const Int_t source,
Int_t dest 
) const
private

CheckPoints.

Definition at line 352 of file TGLFaceSet.cxx.

Referenced by CalculateNormals().

void TGLFaceSet::DirectDraw ( TGLRnrCtx rnrCtx) const
virtual

Debug tracing.

Implements TGLLogicalShape.

Definition at line 312 of file TGLFaceSet.cxx.

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.

Referenced by SetFromMesh(), and TGLFaceSet().

Bool_t TGLFaceSet::Eq ( const Double_t p1,
const Double_t p2 
)
staticprivate

test equality

Definition at line 385 of file TGLFaceSet.cxx.

Referenced by CheckPoints().

Bool_t TGLFaceSet::GetEnforceTriangles ( )
static

Get current state of static flag EnforceTriangles.

Definition at line 430 of file TGLFaceSet.cxx.

UInt_t TGLFaceSet::GetNbPols ( )
inline

Definition at line 47 of file TGLFaceSet.h.

Referenced by TEveGeoPolyShape::SetFromFaceSet().

std::vector<Double_t>& TGLFaceSet::GetNormals ( )
inline

Definition at line 45 of file TGLFaceSet.h.

std::vector<Int_t>& TGLFaceSet::GetPolyDesc ( )
inline

Definition at line 46 of file TGLFaceSet.h.

Referenced by TEveGeoPolyShape::SetFromFaceSet().

std::vector<Double_t>& TGLFaceSet::GetVertices ( )
inline

Definition at line 44 of file TGLFaceSet.h.

Referenced by TEveGeoPolyShape::SetFromFaceSet().

void TGLFaceSet::GLDrawPolys ( ) const
private
void TGLFaceSet::SetEnforceTriangles ( Bool_t  e)
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.

Referenced by TGLScenePad::CloseComposite().

Member Data Documentation

Bool_t TGLFaceSet::fgEnforceTriangles = kFALSE
staticprivate

Definition at line 33 of file TGLFaceSet.h.

Referenced by GetEnforceTriangles(), SetEnforceTriangles(), SetFromMesh(), and TGLFaceSet().

UInt_t TGLFaceSet::fNbPols
private
std::vector<Double_t> TGLFaceSet::fNormals
private

Definition at line 29 of file TGLFaceSet.h.

Referenced by CalculateNormals(), DirectDraw(), and GetNormals().

std::vector<Int_t> TGLFaceSet::fPolyDesc
private
std::vector<Double_t> TGLFaceSet::fVertices
private

The documentation for this class was generated from the following files: