Open CASCADE Technology  6.9.1
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 () Standard_OVERRIDE
 Setup structure graphic state. More...
 
virtual void Clear ()
 Clear graphic data. More...
 
virtual void Connect (Graphic3d_CStructure &theStructure)
 Connect other structure to this one. More...
 
virtual void Disconnect (Graphic3d_CStructure &theStructure)
 Disconnect other structure to this one. More...
 
virtual void UpdateAspects ()
 Synchronize structure aspects. More...
 
virtual void UpdateTransformation ()
 Synchronize structure transformation. More...
 
virtual void HighlightWithColor (const Graphic3d_Vec3 &theColor, const Standard_Boolean theToCreate)
 Highlight entire structure with color. More...
 
virtual void HighlightWithBndBox (const Handle< Graphic3d_Structure > &theStruct, const Standard_Boolean theToCreate)
 Highlight structure using boundary box. More...
 
virtual Handle< Graphic3d_CStructureShadowLink (const Handle< Graphic3d_StructureManager > &theManager) const
 Create shadow link to this structure. More...
 
virtual Handle< Graphic3d_GroupNewGroup (const Handle< Graphic3d_Structure > &theStruct)
 Create new group within this structure. More...
 
virtual void RemoveGroup (const Handle< Graphic3d_Group > &theGroup)
 Remove group from this structure. More...
 
virtual const Graphic3d_SequenceOfGroupDrawGroups () const
 
OpenGl_GraphicDriverGlDriver () const
 Access graphic driver. More...
 
void SetTransformPersistence (const CALL_DEF_TRANSFORM_PERSISTENCE &ATransPers)
 
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) const
 Renders groups of structure 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...
 
const 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...
 
const OpenGl_MatrixTransformation () const
 Returns OpenGL transformation matrix. More...
 
const TEL_TRANSFORM_PERSISTENCEPersistentTranslation () const
 Returns OpenGL persistent translation. 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 Handle_Standard_Type & DynamicType () const
 Returns a type information object about this object. More...
 
Standard_Boolean IsInstance (const 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 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...
 
virtual Handle_Standard_Transient This () const
 Returns a Handle which references this object. Must never be called to objects created in stack. More...
 
Standard_Integer GetRefCount () const
 Get the reference counter of this object. 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_MatrixmyTransformation
 
TEL_TRANSFORM_PERSISTENCEmyTransPers
 
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

- 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
 
float Transformation [4][4]
 
Graphic3d_TypeOfComposition Composition
 
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
 
CALL_DEF_TRANSFORM_PERSISTENCE 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 ( )
virtual

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)
virtual

Connect other structure to this one.

Implements Graphic3d_CStructure.

virtual void OpenGl_Structure::Disconnect ( Graphic3d_CStructure theStructure)
virtual

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 
)
virtual

Highlight structure using boundary box.

Implements Graphic3d_CStructure.

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

Highlight entire structure with color.

Implements Graphic3d_CStructure.

const OpenGl_Structure* OpenGl_Structure::InstancedStructure ( ) const
inline

Returns instanced OpenGL structure.

const 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)
virtual

Create new group within this structure.

Implements Graphic3d_CStructure.

virtual void OpenGl_Structure::OnVisibilityChanged ( )
virtual

Setup structure graphic state.

Implements Graphic3d_CStructure.

const TEL_TRANSFORM_PERSISTENCE* OpenGl_Structure::PersistentTranslation ( ) const
inline

Returns OpenGL persistent translation.

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)
virtual

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::RenderGeometry ( const Handle< OpenGl_Workspace > &  theWorkspace) const
virtual

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

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 
)
void OpenGl_Structure::SetTransformPersistence ( const CALL_DEF_TRANSFORM_PERSISTENCE ATransPers)
virtual Handle< Graphic3d_CStructure > OpenGl_Structure::ShadowLink ( const Handle< Graphic3d_StructureManager > &  theManager) const
virtual

Create shadow link to this structure.

Implements Graphic3d_CStructure.

const OpenGl_Matrix* OpenGl_Structure::Transformation ( ) const
inline

Returns OpenGL transformation matrix.

virtual void OpenGl_Structure::UpdateAspects ( )
virtual

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 ( )
virtual

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
OpenGl_Matrix* OpenGl_Structure::myTransformation
protected
TEL_TRANSFORM_PERSISTENCE* OpenGl_Structure::myTransPers
protected

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