Open CASCADE Technology  7.0.0
Data Structures | Public Member Functions | Protected Member Functions | Protected Attributes

OpenGl_Structure Class Reference

Implementation of low-level graphic structure. More...

#include <OpenGl_Structure.hxx>

Inheritance diagram for OpenGl_Structure:
Inheritance graph
[legend]

Data Structures

class  GroupIterator
 Auxiliary wrapper to iterate OpenGl_Group sequence. More...
 

Public Member Functions

 OpenGl_Structure (const Handle< Graphic3d_StructureManager > &theManager)
 Create empty structure. More...
 
virtual void OnVisibilityChanged () override
 Setup structure graphic state. More...
 
virtual void Clear () override
 Clear graphic data. More...
 
virtual void Connect (Graphic3d_CStructure &theStructure) override
 Connect other structure to this one. More...
 
virtual void Disconnect (Graphic3d_CStructure &theStructure) override
 Disconnect other structure to this one. More...
 
virtual void UpdateAspects () override
 Synchronize structure aspects. More...
 
virtual void UpdateTransformation () override
 Synchronize structure transformation. More...
 
virtual void HighlightWithColor (const Graphic3d_Vec3 &theColor, const Standard_Boolean theToCreate) override
 Highlight entire structure with color. More...
 
virtual void HighlightWithBndBox (const Handle< Graphic3d_Structure > &theStruct, const Standard_Boolean theToCreate) override
 Highlight structure using boundary box. More...
 
virtual Handle< Graphic3d_CStructureShadowLink (const Handle< Graphic3d_StructureManager > &theManager) const override
 Create shadow link to this structure. More...
 
virtual Handle< Graphic3d_GroupNewGroup (const Handle< Graphic3d_Structure > &theStruct) override
 Create new group within this structure. More...
 
virtual void RemoveGroup (const Handle< Graphic3d_Group > &theGroup) override
 Remove group from this structure. More...
 
virtual const Graphic3d_SequenceOfGroupDrawGroups () const
 
OpenGl_GraphicDriverGlDriver () const
 Access graphic driver. More...
 
void SetAspectLine (const CALL_DEF_CONTEXTLINE &theAspect)
 
void SetAspectFace (const CALL_DEF_CONTEXTFILLAREA &theAspect)
 
void SetAspectMarker (const CALL_DEF_CONTEXTMARKER &theAspect)
 
void SetAspectText (const CALL_DEF_CONTEXTTEXT &theAspect)
 
void clearHighlightBox (const Handle< OpenGl_Context > &theGlCtx)
 
void setHighlightColor (const Handle< OpenGl_Context > &theGlCtx, const Graphic3d_Vec3 &theColor)
 
void clearHighlightColor (const Handle< OpenGl_Context > &theGlCtx)
 
void Clear (const Handle< OpenGl_Context > &theGlCtx)
 
virtual void renderGeometry (const Handle< OpenGl_Workspace > &theWorkspace, bool &theHasClosed) const
 Renders groups of structure without applying any attributes (i.e. transform, material etc). More...
 
virtual void renderClosedGeometry (const Handle< OpenGl_Workspace > &theWorkspace) const
 Renders groups of closed primitives without applying any attributes (i.e. transform, material etc). More...
 
virtual void Render (const Handle< OpenGl_Workspace > &theWorkspace) const
 Renders the structure. More...
 
virtual void Release (const Handle< OpenGl_Context > &theGlCtx)
 Releases structure resources. More...
 
void ResetCullingStatus () const
 Marks structure as not overlapping view volume (as it is by default). More...
 
void MarkAsNotCulled () const
 Marks structure as overlapping the current view volume one. The method is called during traverse of BVH tree. More...
 
Standard_Boolean IsCulled () const
 Returns Standard_False if the structure hits the current view volume, otherwise returns Standard_True. The default value for all structures before each traverse of BVH tree is Standard_True. More...
 
Standard_Boolean IsAlwaysRendered () const
 Checks if the structure should be included into BVH tree or not. More...
 
void ReleaseGlResources (const Handle< OpenGl_Context > &theGlCtx)
 This method releases GL resources without actual elements destruction. As result structure could be correctly destroyed layer without GL context (after last window was closed for example). More...
 
const OpenGl_StructureInstancedStructure () const
 Returns instanced OpenGL structure. More...
 
const OpenGl_AspectFaceAspectFace () const
 Returns OpenGL face aspect. More...
 
Standard_Size ModificationState () const
 Returns structure modification state (for ray-tracing). More...
 
void ResetModificationState () const
 Resets structure modification state (for ray-tracing). More...
 
Standard_Boolean IsRaytracable () const
 Is the structure ray-tracable (contains ray-tracable elements)? More...
 
- Public Member Functions inherited from Graphic3d_CStructure
const Handle< Graphic3d_GraphicDriver > & GraphicDriver () const
 
const Graphic3d_SequenceOfGroupGroups () const
 
const Graphic3d_SequenceOfHClipPlaneClipPlanes () const
 
void SetClipPlanes (const Graphic3d_SequenceOfHClipPlane &thePlanes)
 Pass clip planes to the associated graphic driver structure. More...
 
const Graphic3d_BndBox4fBoundingBox () const
 
Graphic3d_BndBox4fChangeBoundingBox ()
 
bool IsVisible () const
 Return structure visibility flag. More...
 
void SetZLayer (const Graphic3d_ZLayerId theLayerIndex)
 Set z layer ID to display the structure in specified layer. More...
 
Graphic3d_ZLayerId ZLayer () const
 Get z layer ID. More...
 
- Public Member Functions inherited from Standard_Transient
 Standard_Transient ()
 Empty constructor. More...
 
 Standard_Transient (const Standard_Transient &)
 Copy constructor – does nothing. More...
 
Standard_Transientoperator= (const Standard_Transient &)
 Assignment operator, needed to avoid copying reference counter. More...
 
virtual ~Standard_Transient ()
 Destructor must be virtual. More...
 
virtual void Delete () const
 Memory deallocator for transient classes. More...
 
virtual const opencascade::handle< Standard_Type > & DynamicType () const
 Returns a type descriptor about this object. More...
 
Standard_Boolean IsInstance (const opencascade::handle< Standard_Type > &theType) const
 Returns a true value if this is an instance of Type. More...
 
Standard_Boolean IsInstance (const Standard_CString theTypeName) const
 Returns a true value if this is an instance of TypeName. More...
 
Standard_Boolean IsKind (const opencascade::handle< Standard_Type > &theType) const
 Returns true if this is an instance of Type or an instance of any class that inherits from Type. Note that multiple inheritance is not supported by OCCT RTTI mechanism. More...
 
Standard_Boolean IsKind (const Standard_CString theTypeName) const
 Returns true if this is an instance of TypeName or an instance of any class that inherits from TypeName. Note that multiple inheritance is not supported by OCCT RTTI mechanism. More...
 
Standard_TransientThis () const
 Returns non-const pointer to this object (like const_cast). For protection against creating handle to objects allocated in stack or call from constructor, it will raise exception Standard_ProgramError if reference counter is zero. More...
 
Standard_Integer GetRefCount () const
 Get the reference counter of this object. More...
 
void IncrementRefCounter () const
 Increments the reference counter of this object. More...
 
Standard_Integer DecrementRefCounter () const
 Decrements the reference counter of this object; returns the decremented value. More...
 

Protected Member Functions

virtual ~OpenGl_Structure ()
 
void UpdateStateIfRaytracable (const Standard_Boolean toCheck=Standard_True) const
 Updates ray-tracable status for structure and its parents. More...
 
- Protected Member Functions inherited from Graphic3d_CStructure
 Graphic3d_CStructure (const Handle< Graphic3d_StructureManager > &theManager)
 Create empty structure. More...
 

Protected Attributes

OpenGl_AspectLinemyAspectLine
 
OpenGl_AspectFacemyAspectFace
 
OpenGl_AspectMarkermyAspectMarker
 
OpenGl_AspectTextmyAspectText
 
Handle< OpenGl_GroupmyHighlightBox
 
TEL_COLOURmyHighlightColor
 
OpenGl_StructuremyInstancedStructure
 
Standard_Boolean myIsRaytracable
 
Standard_Size myModificationState
 
Standard_Boolean myIsCulled
 A status specifying is structure needs to be rendered after BVH tree traverse. More...
 
Standard_Boolean myIsMirrored
 Used to tell OpenGl to interpret polygons in clockwise order. More...
 
- Protected Attributes inherited from Graphic3d_CStructure
Handle< Graphic3d_GraphicDrivermyGraphicDriver
 
Graphic3d_SequenceOfGroup myGroups
 
Graphic3d_BndBox4f myBndBox
 
Graphic3d_SequenceOfHClipPlane myClipPlanes
 

Additional Inherited Members

- Public Types inherited from Standard_Transient
typedef void base_type
 Returns a type descriptor about this object. More...
 
- Static Public Member Functions inherited from Standard_Transient
static const char * get_type_name ()
 Returns a type descriptor about this object. More...
 
static const opencascade::handle< Standard_Type > & get_type_descriptor ()
 Returns type descriptor of Standard_Transient class. More...
 
- Data Fields inherited from Graphic3d_CStructure
int Id
 
Graphic3d_ZLayerId myZLayer
 
int Priority
 
int PreviousPriority
 
CALL_DEF_CONTEXTLINE ContextLine
 
CALL_DEF_CONTEXTFILLAREA ContextFillArea
 
CALL_DEF_CONTEXTMARKER ContextMarker
 
CALL_DEF_CONTEXTTEXT ContextText
 
CALL_DEF_COLOR HighlightColor
 
Graphic3d_Mat4 Transformation
 
int ContainsFacet
 
Handle< Graphic3d_ViewAffinityViewAffinity
 view affinity mask More...
 
unsigned IsInfinite: 1
 
unsigned stick: 1
 displaying state - should be set when structure has been added to scene graph (but can be in hidden state) More...
 
unsigned highlight: 1
 
unsigned visible: 1
 visibility flag - can be used to suppress structure while leaving it in the scene graph More...
 
unsigned HLRValidation: 1
 
unsigned IsForHighlight: 1
 
unsigned IsMutable: 1
 
unsigned Is2dText: 1
 
Graphic3d_TransformPers TransformPersistence
 

Detailed Description

Implementation of low-level graphic structure.

Constructor & Destructor Documentation

OpenGl_Structure::OpenGl_Structure ( const Handle< Graphic3d_StructureManager > &  theManager)

Create empty structure.

virtual OpenGl_Structure::~OpenGl_Structure ( )
protectedvirtual

Member Function Documentation

const OpenGl_AspectFace* OpenGl_Structure::AspectFace ( ) const
inline

Returns OpenGL face aspect.

virtual void OpenGl_Structure::Clear ( )
overridevirtual

Clear graphic data.

Implements Graphic3d_CStructure.

void OpenGl_Structure::Clear ( const Handle< OpenGl_Context > &  theGlCtx)
void OpenGl_Structure::clearHighlightBox ( const Handle< OpenGl_Context > &  theGlCtx)
void OpenGl_Structure::clearHighlightColor ( const Handle< OpenGl_Context > &  theGlCtx)
virtual void OpenGl_Structure::Connect ( Graphic3d_CStructure theStructure)
overridevirtual

Connect other structure to this one.

Implements Graphic3d_CStructure.

virtual void OpenGl_Structure::Disconnect ( Graphic3d_CStructure theStructure)
overridevirtual

Disconnect other structure to this one.

Implements Graphic3d_CStructure.

virtual const Graphic3d_SequenceOfGroup& OpenGl_Structure::DrawGroups ( ) const
inlinevirtual
Returns
graphic groups

Reimplemented in OpenGl_StructureShadow.

OpenGl_GraphicDriver* OpenGl_Structure::GlDriver ( ) const
inline

Access graphic driver.

virtual void OpenGl_Structure::HighlightWithBndBox ( const Handle< Graphic3d_Structure > &  theStruct,
const Standard_Boolean  theToCreate 
)
overridevirtual

Highlight structure using boundary box.

Implements Graphic3d_CStructure.

virtual void OpenGl_Structure::HighlightWithColor ( const Graphic3d_Vec3 theColor,
const Standard_Boolean  theToCreate 
)
overridevirtual

Highlight entire structure with color.

Implements Graphic3d_CStructure.

const OpenGl_Structure* OpenGl_Structure::InstancedStructure ( ) const
inline

Returns instanced OpenGL structure.

Standard_Boolean OpenGl_Structure::IsAlwaysRendered ( ) const
inline

Checks if the structure should be included into BVH tree or not.

Standard_Boolean OpenGl_Structure::IsCulled ( ) const
inline

Returns Standard_False if the structure hits the current view volume, otherwise returns Standard_True. The default value for all structures before each traverse of BVH tree is Standard_True.

Standard_Boolean OpenGl_Structure::IsRaytracable ( ) const

Is the structure ray-tracable (contains ray-tracable elements)?

void OpenGl_Structure::MarkAsNotCulled ( ) const
inline

Marks structure as overlapping the current view volume one. The method is called during traverse of BVH tree.

Standard_Size OpenGl_Structure::ModificationState ( ) const
inline

Returns structure modification state (for ray-tracing).

virtual Handle< Graphic3d_Group > OpenGl_Structure::NewGroup ( const Handle< Graphic3d_Structure > &  theStruct)
overridevirtual

Create new group within this structure.

Implements Graphic3d_CStructure.

virtual void OpenGl_Structure::OnVisibilityChanged ( )
overridevirtual

Setup structure graphic state.

Implements Graphic3d_CStructure.

virtual void OpenGl_Structure::Release ( const Handle< OpenGl_Context > &  theGlCtx)
virtual

Releases structure resources.

void OpenGl_Structure::ReleaseGlResources ( const Handle< OpenGl_Context > &  theGlCtx)

This method releases GL resources without actual elements destruction. As result structure could be correctly destroyed layer without GL context (after last window was closed for example).

Notice however that reusage of this structure after calling this method is incorrect and will lead to broken visualization due to loosed data.

virtual void OpenGl_Structure::RemoveGroup ( const Handle< Graphic3d_Group > &  theGroup)
overridevirtual

Remove group from this structure.

Implements Graphic3d_CStructure.

virtual void OpenGl_Structure::Render ( const Handle< OpenGl_Workspace > &  theWorkspace) const
virtual

Renders the structure.

virtual void OpenGl_Structure::renderClosedGeometry ( const Handle< OpenGl_Workspace > &  theWorkspace) const
virtual

Renders groups of closed primitives without applying any attributes (i.e. transform, material etc).

Reimplemented in OpenGl_StructureShadow.

virtual void OpenGl_Structure::renderGeometry ( const Handle< OpenGl_Workspace > &  theWorkspace,
bool &  theHasClosed 
) const
virtual

Renders groups of structure without applying any attributes (i.e. transform, material etc).

Parameters
theWorkspacecurrent workspace
theHasClosedflag will be set to TRUE if structure contains at least one group of closed primitives

Reimplemented in OpenGl_StructureShadow.

void OpenGl_Structure::ResetCullingStatus ( ) const
inline

Marks structure as not overlapping view volume (as it is by default).

void OpenGl_Structure::ResetModificationState ( ) const
inline

Resets structure modification state (for ray-tracing).

void OpenGl_Structure::SetAspectFace ( const CALL_DEF_CONTEXTFILLAREA theAspect)
void OpenGl_Structure::SetAspectLine ( const CALL_DEF_CONTEXTLINE theAspect)
void OpenGl_Structure::SetAspectMarker ( const CALL_DEF_CONTEXTMARKER theAspect)
void OpenGl_Structure::SetAspectText ( const CALL_DEF_CONTEXTTEXT theAspect)
void OpenGl_Structure::setHighlightColor ( const Handle< OpenGl_Context > &  theGlCtx,
const Graphic3d_Vec3 theColor 
)
virtual Handle< Graphic3d_CStructure > OpenGl_Structure::ShadowLink ( const Handle< Graphic3d_StructureManager > &  theManager) const
overridevirtual

Create shadow link to this structure.

Implements Graphic3d_CStructure.

virtual void OpenGl_Structure::UpdateAspects ( )
overridevirtual

Synchronize structure aspects.

Implements Graphic3d_CStructure.

void OpenGl_Structure::UpdateStateIfRaytracable ( const Standard_Boolean  toCheck = Standard_True) const
protected

Updates ray-tracable status for structure and its parents.

virtual void OpenGl_Structure::UpdateTransformation ( )
overridevirtual

Synchronize structure transformation.

Implements Graphic3d_CStructure.

Field Documentation

OpenGl_AspectFace* OpenGl_Structure::myAspectFace
protected
OpenGl_AspectLine* OpenGl_Structure::myAspectLine
protected
OpenGl_AspectMarker* OpenGl_Structure::myAspectMarker
protected
OpenGl_AspectText* OpenGl_Structure::myAspectText
protected
Handle< OpenGl_Group > OpenGl_Structure::myHighlightBox
protected
TEL_COLOUR* OpenGl_Structure::myHighlightColor
protected
OpenGl_Structure* OpenGl_Structure::myInstancedStructure
protected
Standard_Boolean OpenGl_Structure::myIsCulled
mutableprotected

A status specifying is structure needs to be rendered after BVH tree traverse.

Standard_Boolean OpenGl_Structure::myIsMirrored
protected

Used to tell OpenGl to interpret polygons in clockwise order.

Standard_Boolean OpenGl_Structure::myIsRaytracable
mutableprotected
Standard_Size OpenGl_Structure::myModificationState
mutableprotected

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