Open CASCADE Technology  7.1.0.beta
Public Member Functions | Data Fields | Protected Types | Protected Member Functions

OpenGl_Workspace Class Reference

Rendering workspace. Provides methods to render primitives and maintain GL state. More...

#include <OpenGl_Workspace.hxx>

Inheritance diagram for OpenGl_Workspace:
Inheritance graph
[legend]

Public Member Functions

 OpenGl_Workspace (OpenGl_View *theView, const Handle< OpenGl_Window > &theWindow)
 Constructor of rendering workspace. More...
 
virtual ~OpenGl_Workspace ()
 Destructor. More...
 
Standard_Boolean Activate ()
 Activate rendering context. More...
 
OpenGl_ViewView () const
 
const Handle< OpenGl_Context > & GetGlContext ()
 
Handle< OpenGl_FrameBufferFBOCreate (const Standard_Integer theWidth, const Standard_Integer theHeight)
 
void FBORelease (Handle< OpenGl_FrameBuffer > &theFbo)
 
Standard_Boolean BufferDump (const Handle< OpenGl_FrameBuffer > &theFbo, Image_PixMap &theImage, const Graphic3d_BufferType &theBufferType)
 
Standard_Integer Width () const
 
Standard_Integer Height () const
 
Standard_Boolean SetUseZBuffer (const Standard_Boolean theToUse)
 Setup Z-buffer usage flag (without affecting GL state!). Returns previously set flag. More...
 
Standard_BooleanUseZBuffer ()
 
Standard_BooleanUseDepthWrite ()
 
Standard_Boolean IsCullingEnabled () const
 
bool ToAllowFaceCulling () const
 Return true if active group might activate face culling (e.g. primitives are closed). More...
 
void SetAllowFaceCulling (bool theToAllow)
 Allow or disallow face culling. This call does NOT affect current state of back face culling; ApplyAspectFace() should be called to update state. More...
 
bool ToHighlight () const
 Return true if following structures should apply highlight color. More...
 
void SetHighlight (bool theToHighlight)
 Set highlight. More...
 
const OpenGl_Vec4LineColor () const
 Return line color taking into account highlight flag. More...
 
const OpenGl_Vec4EdgeColor () const
 Return edge color taking into account highlight flag. More...
 
const OpenGl_Vec4MarkerColor () const
 Return marker color taking into account highlight flag. More...
 
const OpenGl_Vec4InteriorColor () const
 Return Interior color taking into account highlight flag. More...
 
const OpenGl_Vec4TextColor () const
 Return text color taking into account highlight flag. More...
 
const OpenGl_Vec4TextSubtitleColor () const
 Return text Subtitle color taking into account highlight flag. More...
 
const OpenGl_AspectLineAspectLine () const
 Currently set line aspect (can differ from applied). More...
 
const OpenGl_AspectFaceAspectFace () const
 Currently set face aspect (can differ from applied). More...
 
const OpenGl_AspectMarkerAspectMarker () const
 Currently set marker aspect (can differ from applied). More...
 
const OpenGl_AspectTextAspectText () const
 Currently set text aspect (can differ from applied). More...
 
const OpenGl_AspectLineSetAspectLine (const OpenGl_AspectLine *theAspect)
 Assign new line aspect (will be applied within ApplyAspectLine()). More...
 
const OpenGl_AspectFaceSetAspectFace (const OpenGl_AspectFace *theAspect)
 Assign new face aspect (will be applied within ApplyAspectFace()). More...
 
const OpenGl_AspectMarkerSetAspectMarker (const OpenGl_AspectMarker *theAspect)
 Assign new marker aspect (will be applied within ApplyAspectMarker()). More...
 
const OpenGl_AspectTextSetAspectText (const OpenGl_AspectText *theAspect)
 Assign new text aspect (will be applied within ApplyAspectText()). More...
 
const OpenGl_AspectLineApplyAspectLine ()
 Apply line aspect. More...
 
const OpenGl_AspectFaceApplyAspectFace ()
 Apply face aspect. More...
 
const OpenGl_AspectMarkerApplyAspectMarker ()
 Apply marker aspect. More...
 
const OpenGl_AspectTextApplyAspectText ()
 Apply text aspect. More...
 
void ResetAppliedAspect ()
 Clear the applied aspect state to default values. More...
 
Handle< OpenGl_TextureDisableTexture ()
 
Handle< OpenGl_TextureEnableTexture (const Handle< OpenGl_Texture > &theTexture, const Handle< Graphic3d_TextureParams > &theParams=NULL)
 
const Handle< OpenGl_Texture > & ActiveTexture () const
 
void SetRenderFilter (const Handle< OpenGl_RenderFilter > &theFilter)
 Set filter for restricting rendering of particular elements. Filter can be applied for rendering passes used by recursive rendering algorithms for rendering elements of groups. More...
 
const Handle< OpenGl_RenderFilter > & GetRenderFilter () const
 Get rendering filter. More...
 
const OpenGl_MatrixViewMatrix () const
 
const OpenGl_MatrixModelMatrix () const
 
void SetPolygonOffset (const Graphic3d_PolygonOffset &theParams)
 Sets and applies current polygon offset. More...
 
const Graphic3d_PolygonOffsetAppliedPolygonOffset ()
 Returns currently applied polygon offset parameters. More...
 
const Handle< OpenGl_CappingAlgoFilter > & DefaultCappingAlgoFilter () const
 Returns capping algorithm rendering filter. More...
 
const OpenGl_AspectFaceNoneCulling () const
 Returns face aspect for none culling mode. More...
 
const OpenGl_AspectFaceFrontCulling () const
 Returns face aspect for front face culling mode. More...
 
void SetEnvironmentTexture (const Handle< OpenGl_Texture > &theTexture)
 Sets a new environment texture. More...
 
const Handle< OpenGl_Texture > & EnvironmentTexture () const
 Returns environment texture. 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...
 

Data Fields

Standard_Integer NamedStatus
 
const OpenGl_Vec4HighlightColor
 

Protected Types

enum  { TEL_FRONT_MATERIAL = 1, TEL_BACK_MATERIAL = 2 }
 

Protected Member Functions

void updateMaterial (const int theFlag)
 
void setTextureParams (Handle< OpenGl_Texture > &theTexture, const Handle< Graphic3d_TextureParams > &theParams)
 

Protected Attributes

protected fields
OpenGl_ViewmyView
 
Handle< OpenGl_WindowmyWindow
 
Handle< OpenGl_ContextmyGlContext
 
Standard_Boolean myUseZBuffer
 
Standard_Boolean myUseDepthWrite
 
Handle< OpenGl_CappingAlgoFiltermyDefaultCappingAlgoFilter
 
OpenGl_AspectFace myNoneCulling
 
OpenGl_AspectFace myFrontCulling
 
fields related to status
Handle< OpenGl_RenderFiltermyRenderFilter
 currently bound texture (managed by OpenGl_AspectFace and OpenGl_View environment texture) More...
 
Handle< OpenGl_TexturemyTextureBound
 currently bound texture (managed by OpenGl_AspectFace and OpenGl_View environment texture) More...
 
const OpenGl_AspectLinemyAspectLineSet
 currently bound texture (managed by OpenGl_AspectFace and OpenGl_View environment texture) More...
 
const OpenGl_AspectFacemyAspectFaceSet
 currently bound texture (managed by OpenGl_AspectFace and OpenGl_View environment texture) More...
 
Handle< Graphic3d_AspectFillArea3dmyAspectFaceApplied
 currently bound texture (managed by OpenGl_AspectFace and OpenGl_View environment texture) More...
 
const OpenGl_AspectMarkermyAspectMarkerSet
 currently bound texture (managed by OpenGl_AspectFace and OpenGl_View environment texture) More...
 
Handle< Graphic3d_AspectMarker3dmyAspectMarkerApplied
 currently bound texture (managed by OpenGl_AspectFace and OpenGl_View environment texture) More...
 
const OpenGl_AspectTextmyAspectTextSet
 currently bound texture (managed by OpenGl_AspectFace and OpenGl_View environment texture) More...
 
bool myAspectFaceAppliedWithHL
 currently bound texture (managed by OpenGl_AspectFace and OpenGl_View environment texture) More...
 
const OpenGl_MatrixViewMatrix_applied
 currently bound texture (managed by OpenGl_AspectFace and OpenGl_View environment texture) More...
 
const OpenGl_MatrixStructureMatrix_applied
 currently bound texture (managed by OpenGl_AspectFace and OpenGl_View environment texture) More...
 
OpenGl_Material myMatFront
 current front material state (cached to reduce GL context updates) More...
 
OpenGl_Material myMatBack
 current back material state More...
 
OpenGl_Material myMatTmp
 temporary variable More...
 
bool myToAllowFaceCulling
 allow back face culling More...
 
bool myToHighlight
 flag indicating highlighting mode More...
 
OpenGl_Matrix myModelViewMatrix
 Model matrix with applied structure transformations. More...
 
Graphic3d_PolygonOffset myPolygonOffsetApplied
 currently applied polygon offset More...
 
OpenGl_AspectFace myAspectFaceHl
 Hiddenline aspect. More...
 
Handle< OpenGl_TexturemyEnvironmentTexture
 currently bound texture (managed by OpenGl_AspectFace and OpenGl_View environment texture) More...
 

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...
 

Detailed Description

Rendering workspace. Provides methods to render primitives and maintain GL state.

Member Enumeration Documentation

anonymous enum
protected
Enumerator
TEL_FRONT_MATERIAL 
TEL_BACK_MATERIAL 

Constructor & Destructor Documentation

OpenGl_Workspace::OpenGl_Workspace ( OpenGl_View theView,
const Handle< OpenGl_Window > &  theWindow 
)

Constructor of rendering workspace.

virtual OpenGl_Workspace::~OpenGl_Workspace ( )
inlinevirtual

Destructor.

Member Function Documentation

Standard_Boolean OpenGl_Workspace::Activate ( )

Activate rendering context.

const Handle< OpenGl_Texture >& OpenGl_Workspace::ActiveTexture ( ) const
inline
const Graphic3d_PolygonOffset& OpenGl_Workspace::AppliedPolygonOffset ( )
inline

Returns currently applied polygon offset parameters.

const OpenGl_AspectFace* OpenGl_Workspace::ApplyAspectFace ( )

Apply face aspect.

Returns
aspect set by SetAspectFace()
const OpenGl_AspectLine* OpenGl_Workspace::ApplyAspectLine ( )
inline

Apply line aspect.

Returns
aspect set by SetAspectLine()
const OpenGl_AspectMarker* OpenGl_Workspace::ApplyAspectMarker ( )

Apply marker aspect.

Returns
aspect set by SetAspectMarker()
const OpenGl_AspectText* OpenGl_Workspace::ApplyAspectText ( )
inline

Apply text aspect.

Returns
aspect set by SetAspectText()
const OpenGl_AspectFace* OpenGl_Workspace::AspectFace ( ) const
inline

Currently set face aspect (can differ from applied).

const OpenGl_AspectLine* OpenGl_Workspace::AspectLine ( ) const
inline

Currently set line aspect (can differ from applied).

const OpenGl_AspectMarker* OpenGl_Workspace::AspectMarker ( ) const
inline

Currently set marker aspect (can differ from applied).

const OpenGl_AspectText* OpenGl_Workspace::AspectText ( ) const
inline

Currently set text aspect (can differ from applied).

Standard_Boolean OpenGl_Workspace::BufferDump ( const Handle< OpenGl_FrameBuffer > &  theFbo,
Image_PixMap theImage,
const Graphic3d_BufferType theBufferType 
)
const Handle< OpenGl_CappingAlgoFilter >& OpenGl_Workspace::DefaultCappingAlgoFilter ( ) const
inline

Returns capping algorithm rendering filter.

Handle< OpenGl_Texture > OpenGl_Workspace::DisableTexture ( )
const OpenGl_Vec4& OpenGl_Workspace::EdgeColor ( ) const
inline

Return edge color taking into account highlight flag.

Handle< OpenGl_Texture > OpenGl_Workspace::EnableTexture ( const Handle< OpenGl_Texture > &  theTexture,
const Handle< Graphic3d_TextureParams > &  theParams = NULL 
)
const Handle< OpenGl_Texture >& OpenGl_Workspace::EnvironmentTexture ( ) const
inline

Returns environment texture.

Handle< OpenGl_FrameBuffer > OpenGl_Workspace::FBOCreate ( const Standard_Integer  theWidth,
const Standard_Integer  theHeight 
)
void OpenGl_Workspace::FBORelease ( Handle< OpenGl_FrameBuffer > &  theFbo)
const OpenGl_AspectFace& OpenGl_Workspace::FrontCulling ( ) const
inline

Returns face aspect for front face culling mode.

const Handle< OpenGl_Context >& OpenGl_Workspace::GetGlContext ( )
inline
const Handle< OpenGl_RenderFilter >& OpenGl_Workspace::GetRenderFilter ( ) const
inline

Get rendering filter.

Returns
filter instance.
Standard_Integer OpenGl_Workspace::Height ( ) const
const OpenGl_Vec4& OpenGl_Workspace::InteriorColor ( ) const
inline

Return Interior color taking into account highlight flag.

Standard_Boolean OpenGl_Workspace::IsCullingEnabled ( ) const
Returns
true if clipping algorithm enabled
const OpenGl_Vec4& OpenGl_Workspace::LineColor ( ) const
inline

Return line color taking into account highlight flag.

const OpenGl_Vec4& OpenGl_Workspace::MarkerColor ( ) const
inline

Return marker color taking into account highlight flag.

const OpenGl_Matrix* OpenGl_Workspace::ModelMatrix ( ) const
inline
Returns
applied model structure matrix.
const OpenGl_AspectFace& OpenGl_Workspace::NoneCulling ( ) const
inline

Returns face aspect for none culling mode.

void OpenGl_Workspace::ResetAppliedAspect ( )

Clear the applied aspect state to default values.

void OpenGl_Workspace::SetAllowFaceCulling ( bool  theToAllow)
inline

Allow or disallow face culling. This call does NOT affect current state of back face culling; ApplyAspectFace() should be called to update state.

const OpenGl_AspectFace* OpenGl_Workspace::SetAspectFace ( const OpenGl_AspectFace theAspect)

Assign new face aspect (will be applied within ApplyAspectFace()).

const OpenGl_AspectLine* OpenGl_Workspace::SetAspectLine ( const OpenGl_AspectLine theAspect)

Assign new line aspect (will be applied within ApplyAspectLine()).

const OpenGl_AspectMarker* OpenGl_Workspace::SetAspectMarker ( const OpenGl_AspectMarker theAspect)

Assign new marker aspect (will be applied within ApplyAspectMarker()).

const OpenGl_AspectText* OpenGl_Workspace::SetAspectText ( const OpenGl_AspectText theAspect)

Assign new text aspect (will be applied within ApplyAspectText()).

void OpenGl_Workspace::SetEnvironmentTexture ( const Handle< OpenGl_Texture > &  theTexture)
inline

Sets a new environment texture.

void OpenGl_Workspace::SetHighlight ( bool  theToHighlight)
inline

Set highlight.

void OpenGl_Workspace::SetPolygonOffset ( const Graphic3d_PolygonOffset theParams)

Sets and applies current polygon offset.

void OpenGl_Workspace::SetRenderFilter ( const Handle< OpenGl_RenderFilter > &  theFilter)
inline

Set filter for restricting rendering of particular elements. Filter can be applied for rendering passes used by recursive rendering algorithms for rendering elements of groups.

Parameters
theFilter[in] the filter instance.
void OpenGl_Workspace::setTextureParams ( Handle< OpenGl_Texture > &  theTexture,
const Handle< Graphic3d_TextureParams > &  theParams 
)
protected
Standard_Boolean OpenGl_Workspace::SetUseZBuffer ( const Standard_Boolean  theToUse)
inline

Setup Z-buffer usage flag (without affecting GL state!). Returns previously set flag.

const OpenGl_Vec4& OpenGl_Workspace::TextColor ( ) const
inline

Return text color taking into account highlight flag.

const OpenGl_Vec4& OpenGl_Workspace::TextSubtitleColor ( ) const
inline

Return text Subtitle color taking into account highlight flag.

bool OpenGl_Workspace::ToAllowFaceCulling ( ) const
inline

Return true if active group might activate face culling (e.g. primitives are closed).

bool OpenGl_Workspace::ToHighlight ( ) const
inline

Return true if following structures should apply highlight color.

void OpenGl_Workspace::updateMaterial ( const int  theFlag)
protected
Standard_Boolean& OpenGl_Workspace::UseDepthWrite ( )
inline
Returns
true if depth writing is enabled.
Standard_Boolean& OpenGl_Workspace::UseZBuffer ( )
inline
Returns
true if usage of Z buffer is enabled.
OpenGl_View* OpenGl_Workspace::View ( ) const
inline
const OpenGl_Matrix* OpenGl_Workspace::ViewMatrix ( ) const
inline
Returns
applied view matrix.
Standard_Integer OpenGl_Workspace::Width ( ) const

Field Documentation

const OpenGl_Vec4* OpenGl_Workspace::HighlightColor
Handle< Graphic3d_AspectFillArea3d > OpenGl_Workspace::myAspectFaceApplied
protected

currently bound texture (managed by OpenGl_AspectFace and OpenGl_View environment texture)

bool OpenGl_Workspace::myAspectFaceAppliedWithHL
protected

currently bound texture (managed by OpenGl_AspectFace and OpenGl_View environment texture)

OpenGl_AspectFace OpenGl_Workspace::myAspectFaceHl
protected

Hiddenline aspect.

const OpenGl_AspectFace* OpenGl_Workspace::myAspectFaceSet
protected

currently bound texture (managed by OpenGl_AspectFace and OpenGl_View environment texture)

const OpenGl_AspectLine* OpenGl_Workspace::myAspectLineSet
protected

currently bound texture (managed by OpenGl_AspectFace and OpenGl_View environment texture)

Handle< Graphic3d_AspectMarker3d > OpenGl_Workspace::myAspectMarkerApplied
protected

currently bound texture (managed by OpenGl_AspectFace and OpenGl_View environment texture)

const OpenGl_AspectMarker* OpenGl_Workspace::myAspectMarkerSet
protected

currently bound texture (managed by OpenGl_AspectFace and OpenGl_View environment texture)

const OpenGl_AspectText* OpenGl_Workspace::myAspectTextSet
protected

currently bound texture (managed by OpenGl_AspectFace and OpenGl_View environment texture)

Handle< OpenGl_CappingAlgoFilter > OpenGl_Workspace::myDefaultCappingAlgoFilter
protected
Handle< OpenGl_Texture > OpenGl_Workspace::myEnvironmentTexture
protected

currently bound texture (managed by OpenGl_AspectFace and OpenGl_View environment texture)

OpenGl_AspectFace OpenGl_Workspace::myFrontCulling
protected
Handle< OpenGl_Context > OpenGl_Workspace::myGlContext
protected
OpenGl_Material OpenGl_Workspace::myMatBack
protected

current back material state

OpenGl_Material OpenGl_Workspace::myMatFront
protected

current front material state (cached to reduce GL context updates)

OpenGl_Material OpenGl_Workspace::myMatTmp
protected

temporary variable

OpenGl_Matrix OpenGl_Workspace::myModelViewMatrix
protected

Model matrix with applied structure transformations.

OpenGl_AspectFace OpenGl_Workspace::myNoneCulling
protected
Graphic3d_PolygonOffset OpenGl_Workspace::myPolygonOffsetApplied
protected

currently applied polygon offset

Handle< OpenGl_RenderFilter > OpenGl_Workspace::myRenderFilter
protected

currently bound texture (managed by OpenGl_AspectFace and OpenGl_View environment texture)

Handle< OpenGl_Texture > OpenGl_Workspace::myTextureBound
protected

currently bound texture (managed by OpenGl_AspectFace and OpenGl_View environment texture)

bool OpenGl_Workspace::myToAllowFaceCulling
protected

allow back face culling

bool OpenGl_Workspace::myToHighlight
protected

flag indicating highlighting mode

Standard_Boolean OpenGl_Workspace::myUseDepthWrite
protected
Standard_Boolean OpenGl_Workspace::myUseZBuffer
protected
OpenGl_View* OpenGl_Workspace::myView
protected
Handle< OpenGl_Window > OpenGl_Workspace::myWindow
protected
Standard_Integer OpenGl_Workspace::NamedStatus
const OpenGl_Matrix* OpenGl_Workspace::StructureMatrix_applied
protected

currently bound texture (managed by OpenGl_AspectFace and OpenGl_View environment texture)

const OpenGl_Matrix* OpenGl_Workspace::ViewMatrix_applied
protected

currently bound texture (managed by OpenGl_AspectFace and OpenGl_View environment texture)


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