ROOT logo
ROOT » GRAF3D » GL » TGLFaceSet

class TGLFaceSet: public TGLLogicalShape


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

Function Members (Methods)

public:
TGLFaceSet(const TBuffer3D& buffer)
~TGLFaceSet()
voidTGLLogicalShape::AddRef(TGLPhysicalShape* phys) const
virtual Bool_tTGLLogicalShape::AlwaysSecondarySelect() const
const TGLBoundingBox&TGLLogicalShape::BoundingBox() const
voidCalculateNormals()
static TClass*Class()
voidTGLLogicalShape::DestroyPhysicals()
virtual voidDirectDraw(TGLRnrCtx& rnrCtx) const
virtual voidTGLLogicalShape::DLCacheClear()
virtual voidTGLLogicalShape::DLCacheDrop()
virtual voidTGLLogicalShape::DLCachePurge()
virtual UInt_tTGLLogicalShape::DLOffset(Short_t) const
virtual voidTGLLogicalShape::Draw(TGLRnrCtx& rnrCtx) const
virtual voidTGLLogicalShape::DrawHighlight(TGLRnrCtx& rnrCtx, const TGLPhysicalShape* pshp, Int_t lvl = -1) const
voidEnforceTriangles()
static Bool_tGetEnforceTriangles()
TObject*TGLLogicalShape::GetExternal() const
const TGLPhysicalShape*TGLLogicalShape::GetFirstPhysical() const
UInt_tGetNbPols()
vector<Double_t>&GetNormals()
vector<Int_t>&GetPolyDesc()
TGLScene*TGLLogicalShape::GetScene() const
vector<Double_t>&GetVertices()
TObject*TGLLogicalShape::ID() const
virtual Bool_tTGLLogicalShape::IgnoreSizeForOfInterest() const
voidTGLLogicalShape::InvokeContextMenu(TContextMenu& menu, UInt_t x, UInt_t y) const
virtual TClass*IsA() const
virtual Bool_tTGLLogicalShape::KeepDuringSmartRefresh() const
virtual voidTGLLogicalShape::ProcessSelection(TGLRnrCtx& rnrCtx, TGLSelectRecord& rec)
virtual Short_tTGLLogicalShape::QuantizeShapeLOD(Short_t shapeLOD, Short_t combiLOD) const
UInt_tTGLLogicalShape::Ref() const
Bool_tTGLLogicalShape::SetDLCache(Bool_t cached)
static voidSetEnforceTriangles(Bool_t e)
voidSetFromMesh(const RootCsg::TBaseMesh* m)
virtual Bool_tTGLLogicalShape::ShouldDLCache(const TGLRnrCtx& rnrCtx) const
virtual voidShowMembers(TMemberInspector& insp)
virtual voidStreamer(TBuffer& b)
voidStreamerNVirtual(TBuffer& b)
voidTGLLogicalShape::StrongRef(Bool_t strong) const
voidTGLLogicalShape::SubRef(TGLPhysicalShape* phys) const
virtual TGLLogicalShape::ELODAxesTGLLogicalShape::SupportedLODAxes() const
virtual Bool_tTGLLogicalShape::SupportsSecondarySelect() const
UInt_tTGLLogicalShape::UnrefFirstPhysical()
virtual voidTGLLogicalShape::UpdateBoundingBox()
voidTGLLogicalShape::UpdateBoundingBoxesOfPhysicals()
protected:
voidTGLLogicalShape::PurgeDLRange(UInt_t base, Int_t size) const
private:
Int_tCheckPoints(const Int_t* source, Int_t* dest) const
static Bool_tEq(const Double_t* p1, const Double_t* p2)
voidGLDrawPolys() const

Data Members

public:
enum TGLLogicalShape::ELODAxes { kLODAxesNone
kLODAxesX
kLODAxesY
kLODAxesZ
kLODAxesAll
};
protected:
TGLBoundingBoxTGLLogicalShape::fBoundingBox! Shape's bounding box.
UInt_tTGLLogicalShape::fDLBase! display-list id base
Bool_tTGLLogicalShape::fDLCache! use display list caching
Int_tTGLLogicalShape::fDLSize! display-list size for different LODs
UShort_tTGLLogicalShape::fDLValid! display-list validity bit-field
TObject*TGLLogicalShape::fExternalObj! Also plays the role of ID.
TGLPhysicalShape*TGLLogicalShape::fFirstPhysical! first replica
Bool_tTGLLogicalShape::fOwnExtObj! External object is a fake
UInt_tTGLLogicalShape::fRef! physical instance ref counting
Bool_tTGLLogicalShape::fRefStrong! Strong ref (delete on 0 ref); not in scene
TGLScene*TGLLogicalShape::fScene! scene where object is stored (can be zero!)
private:
UInt_tfNbPols
vector<Double_t>fNormals
vector<Int_t>fPolyDesc
vector<Double_t>fVertices
static Bool_tfgEnforceTriangles

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

TGLFaceSet(const TBuffer3D& buffer)
 constructor
void SetFromMesh(const RootCsg::TBaseMesh* m)
 Should only be done on an empty faceset object
void 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.
void DirectDraw(TGLRnrCtx& rnrCtx) const
 Debug tracing
Int_t CheckPoints(const Int_t* source, Int_t* dest) const
Bool_t Eq(const Double_t* p1, const Double_t* p2)
 test equality
void CalculateNormals()
Bool_t GetEnforceTriangles()
 Get current state of static flag EnforceTriangles.
void SetEnforceTriangles(Bool_t e)
 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.
std::vector<Double_t>& GetVertices()
{ return fVertices; }
std::vector<Double_t>& GetNormals()
{ return fNormals; }
std::vector<Int_t>& GetPolyDesc()
{ return fPolyDesc; }
UInt_t GetNbPols()
{ return fNbPols; }
void GLDrawPolys() const