Open CASCADE Technology
7.2.0
|
Implementation of low-level graphic structure. More...
#include <OpenGl_Structure.hxx>
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 | SetTransformation (const Handle< Geom_Transformation > &theTrsf) override |
Synchronize structure transformation. More... | |
virtual void | SetTransformPersistence (const Handle< Graphic3d_TransformPers > &theTrsfPers) override |
Set transformation persistence. More... | |
virtual void | SetZLayer (const Graphic3d_ZLayerId theLayerIndex) override |
Set z layer ID to display the structure in specified layer. More... | |
virtual void | GraphicHighlight (const Handle< Graphic3d_PresentationAttributes > &theStyle, const Handle< Graphic3d_Structure > &theStruct) override |
Highlights structure according to the given style and updates corresponding class fields (highlight status and style) More... | |
virtual void | GraphicUnhighlight () override |
Unighlights structure and updates corresponding class fields (highlight status and style) More... | |
virtual Handle< Graphic3d_CStructure > | ShadowLink (const Handle< Graphic3d_StructureManager > &theManager) const override |
Create shadow link to this structure. More... | |
virtual Handle< Graphic3d_Group > | NewGroup (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... | |
OpenGl_GraphicDriver * | GlDriver () const |
Access graphic driver. More... | |
void | Clear (const Handle< OpenGl_Context > &theGlCtx) |
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_Structure * | InstancedStructure () const |
Returns instanced OpenGL structure. 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... | |
void | updateLayerTransformation () |
Update render transformation matrix. More... | |
Public Member Functions inherited from Graphic3d_CStructure | |
const Handle< Graphic3d_GraphicDriver > & | GraphicDriver () const |
const Graphic3d_SequenceOfGroup & | Groups () const |
const Handle< Geom_Transformation > & | Transformation () const |
Return transformation. More... | |
const Handle< Graphic3d_TransformPers > & | TransformPersistence () const |
Return transformation persistence. More... | |
const Handle< Graphic3d_SequenceOfHClipPlane > & | ClipPlanes () const |
void | SetClipPlanes (const Handle< Graphic3d_SequenceOfHClipPlane > &thePlanes) |
Pass clip planes to the associated graphic driver structure. More... | |
const Graphic3d_BndBox3d & | BoundingBox () const |
Graphic3d_BndBox3d & | ChangeBoundingBox () |
bool | IsVisible () const |
Return structure visibility flag. More... | |
bool | IsVisible (const Standard_Integer theViewId) const |
Return structure visibility considering both View Affinity and global visibility state. More... | |
Graphic3d_ZLayerId | ZLayer () const |
Get z layer ID. More... | |
const Handle< Graphic3d_PresentationAttributes > & | HighlightStyle () const |
Returns valid handle to highlight style of the structure in case if highlight flag is set to true. More... | |
Public Member Functions inherited from Standard_Transient | |
Standard_Transient () | |
Empty constructor. More... | |
Standard_Transient (const Standard_Transient &) | |
Copy constructor – does nothing. More... | |
Standard_Transient & | operator= (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_Transient * | This () 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... | |
void | renderGeometry (const Handle< OpenGl_Workspace > &theWorkspace, bool &theHasClosed) const |
Renders groups of structure without applying any attributes (i.e. transform, material etc). More... | |
void | highlightWithBndBox (const Handle< Graphic3d_Structure > &theStruct) |
Highlight structure using boundary box. More... | |
void | clearHighlightBox (const Handle< OpenGl_Context > &theGlCtx) |
Invalidates highlight box and releases graphic resources it uses. More... | |
Protected Member Functions inherited from Graphic3d_CStructure | |
Graphic3d_CStructure (const Handle< Graphic3d_StructureManager > &theManager) | |
Create empty structure. More... | |
Protected Attributes | |
Handle< OpenGl_Group > | myHighlightBox |
OpenGl_Structure * | myInstancedStructure |
Graphic3d_Mat4 | myRenderTrsf |
transformation, actually used for rendering (includes Local Origin shift) More... | |
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_GraphicDriver > | myGraphicDriver |
Graphic3d_SequenceOfGroup | myGroups |
Graphic3d_BndBox3d | myBndBox |
Handle< Geom_Transformation > | myTrsf |
Handle< Graphic3d_TransformPers > | myTrsfPers |
Handle< Graphic3d_SequenceOfHClipPlane > | myClipPlanes |
Handle< Graphic3d_PresentationAttributes > | myHighlightStyle |
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 |
int | ContainsFacet |
Handle< Graphic3d_ViewAffinity > | ViewAffinity |
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 |
Implementation of low-level graphic structure.
OpenGl_Structure::OpenGl_Structure | ( | const Handle< Graphic3d_StructureManager > & | theManager | ) |
Create empty structure.
|
protectedvirtual |
|
overridevirtual |
Clear graphic data.
Implements Graphic3d_CStructure.
void OpenGl_Structure::Clear | ( | const Handle< OpenGl_Context > & | theGlCtx | ) |
|
protected |
Invalidates highlight box and releases graphic resources it uses.
|
overridevirtual |
Connect other structure to this one.
Implements Graphic3d_CStructure.
Reimplemented in OpenGl_StructureShadow.
|
overridevirtual |
Disconnect other structure to this one.
Implements Graphic3d_CStructure.
Reimplemented in OpenGl_StructureShadow.
|
inline |
Access graphic driver.
|
overridevirtual |
Highlights structure according to the given style and updates corresponding class fields (highlight status and style)
Implements Graphic3d_CStructure.
|
overridevirtual |
Unighlights structure and updates corresponding class fields (highlight status and style)
Implements Graphic3d_CStructure.
|
protected |
Highlight structure using boundary box.
|
inline |
Returns instanced OpenGL structure.
|
inline |
Checks if the structure should be included into BVH tree or not.
|
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)?
|
inline |
Marks structure as overlapping the current view volume one. The method is called during traverse of BVH tree.
|
inline |
Returns structure modification state (for ray-tracing).
|
overridevirtual |
Create new group within this structure.
Implements Graphic3d_CStructure.
|
overridevirtual |
Setup structure graphic state.
Implements Graphic3d_CStructure.
|
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.
|
overridevirtual |
Remove group from this structure.
Implements Graphic3d_CStructure.
|
virtual |
Renders the structure.
|
protected |
Renders groups of structure without applying any attributes (i.e. transform, material etc).
theWorkspace | current workspace |
theHasClosed | flag will be set to TRUE if structure contains at least one group of closed primitives |
|
inline |
Marks structure as not overlapping view volume (as it is by default).
|
inline |
Resets structure modification state (for ray-tracing).
|
overridevirtual |
Synchronize structure transformation.
Reimplemented from Graphic3d_CStructure.
|
overridevirtual |
Set transformation persistence.
Reimplemented from Graphic3d_CStructure.
|
overridevirtual |
Set z layer ID to display the structure in specified layer.
Reimplemented from Graphic3d_CStructure.
|
overridevirtual |
Create shadow link to this structure.
Implements Graphic3d_CStructure.
void OpenGl_Structure::updateLayerTransformation | ( | ) |
Update render transformation matrix.
|
protected |
Updates ray-tracable status for structure and its parents.
|
protected |
|
protected |
|
mutableprotected |
A status specifying is structure needs to be rendered after BVH tree traverse.
|
protected |
Used to tell OpenGl to interpret polygons in clockwise order.
|
mutableprotected |
|
mutableprotected |
|
protected |
transformation, actually used for rendering (includes Local Origin shift)