GL Studio Safety Critical Embedded C++ Runtime Library
All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros
GlsClippingGroup Class Reference

#include <gls_clipping_group.h>

+ Inheritance diagram for GlsClippingGroup:

Classes

struct  InitParameters
 

Public Member Functions

 GlsClippingGroup (InitParameters &initParameters, GlsEventDispatcher *const eventDispatcher)
 
virtual void Draw (GlsStateManager &gl, const GlsFloat64 time)
 
virtual GlsDisplayObjectPickTest (const GlsVector2D &windowCoord, GlsInputManager &inputManager, const GlsMatrixAffineD::GLMatrixAffineF &parentDrawMatrix)
 
GlsBool GetClippingActive ()
 
void SetClippingActive (const GlsBool value)
 
GlsVector3D GetBlc ()
 
void SetBlc (const GlsVector3D &value)
 
GlsVector3D GetTrc ()
 
void SetTrc (const GlsVector3D &value)
 
- Public Member Functions inherited from GlsGroup
 GlsGroup (InitParameters &initParameters, GlsEventDispatcher *const eventDispatcher)
 
virtual void Draw (GlsStateManager &gl, const GlsFloat64 time)
 
virtual void Calculate (const GlsFloat64 time)
 
virtual GlsDisplayObjectPickTest (const GlsVector2D &windowCoord, GlsInputManager &inputManager, const GlsMatrixAffineD::GLMatrixAffineF &parentDrawMatrix)
 
virtual void SetChildrenAlphaMode (const GlsAlphaMode alphaMode)
 
virtual void SetChildrenFillColor (const GlsColor &fillColor)
 
virtual void SetChildrenLineColor (const GlsColor &lineColor)
 
virtual void SetChildrenLineWidth (const GlsFloat32 lineWidth)
 
virtual void SetChildrenPolygonMode (const GlsPolygonMode polygonMode)
 
virtual void SetChildrenAlphaMode (const GlsAlphaMode alphaMode)=0
 
virtual void SetChildrenFillColor (const GlsColor &fillColor)=0
 
virtual void SetChildrenLineColor (const GlsColor &lineColor)=0
 
virtual void SetChildrenLineWidth (const GlsFloat32 lineWidth)=0
 
virtual void SetChildrenPolygonMode (const GlsPolygonMode polygonMode)=0
 
- Public Member Functions inherited from GlsDisplayObject
virtual void Draw (GlsStateManager &gl, const GlsFloat64 time)=0
 
virtual void Calculate (const GlsFloat64 time)
 
virtual GlsDisplayObjectPickTest (const GlsVector2D &windowCoord, GlsInputManager &inputManager, const GlsMatrixAffineD::GLMatrixAffineF &parentDrawMatrix)
 
GlsDisplayObjectHandleEvent (GlsEvent &event)
 
ObjectType GetObjectType (void) const
 
void SetBlinking (const GlsBool blinking)
 
void SetBlinkRate (const GlsFloat32 blinkRate)
 
void SetDynamicRotation (const GlsVector3D &dynamicRotation)
 
void SetDynamicScale (const GlsVector3D &dynamicScale)
 
void SetDynamicTranslation (const GlsVector3D &dynamicTranslation)
 
void SetVisibility (const GlsBool visible)
 
void SetParent (GlsDisplayObject *const parent)
 
void SetPickMode (const PickMode pickMode)
 
GlsBool NeedCalculate (void) const
 
void InvalidatePickCache (void)
 

Protected Member Functions

virtual ~GlsClippingGroup ()
 
virtual void CalcWindowPickRegion (GlsInputManager &inputManager, const GlsMatrixAffineD::GLMatrixAffineF &parentDrawMatrix)
 
void DrawClippingPolygon (GlsStateManager &gl)
 
- Protected Member Functions inherited from GlsGroup
virtual ~GlsGroup ()
 
- Protected Member Functions inherited from GlsCompositeObject
 GlsCompositeObject (const InitParameters &initParameters, GlsEventDispatcher *const eventDispatcher)
 
virtual ~GlsCompositeObject ()
 
- Protected Member Functions inherited from GlsDisplayObject
 GlsDisplayObject (const InitParameters &initParameters, const ObjectType objectType, GlsEventDispatcher *const eventDispatcher)
 
virtual ~GlsDisplayObject ()
 
GlsBool CalcDrawMatrix (const GlsMatrixAffineD *const additionalTransform, const GlsBool includeLocation)
 
virtual void CalcWindowPickRegion (GlsInputManager &inputManager, const GlsMatrixAffineD::GLMatrixAffineF &parentDrawMatrix)
 
GlsBool IsBlinkedOff (const GlsFloat64 time) const
 

Protected Attributes

GlsBool _clippingActive
 
GlsVector3D _blc
 
GlsVector3D _trc
 
- Protected Attributes inherited from GlsGroup
GlsDisplayObjectArray _objects
 
- Protected Attributes inherited from GlsDisplayObject
const GlsMatrixAffineD _dcsMatrix
 
const GlsMatrixAffineD _dcsMatrixInverse
 
const GlsBool _dcsMatrixIsIdentity
 
const GlsVector3D _location
 
const GlsBool _needCalculate
 
const ObjectType _objectType
 
const PickRegion _pickRegion
 
GlsEventDispatcher *const _eventDispatcher
 
const GlsVector3D _rotationPoint
 
GlsBool _blinking
 
GlsFloat32 _blinkRate
 
GlsMatrixAffineD::GLMatrixAffineF _drawMatrix
 
GlsVector3D _dynamicRotation
 
GlsVector3D _dynamicScale
 
GlsBool _dynamicScaleIsUnity
 
GlsVector3D _dynamicTranslation
 
GlsBool _needCalcDrawMatrix
 
GlsBool _visible
 
PickMode _pickMode
 
GlsBool _windowPickRegionValid
 
GlsVector2D _windowPickLowerLeft
 
GlsVector2D _windowPickUpperRight
 
GlsVector2D _windowPickUpperLeft
 
GlsVector2D _windowPickLowerRight
 
GlsMatrixAffineD::GLMatrixAffineF _pickMatrix
 
GlsDisplayObject_parent
 

Additional Inherited Members

- Public Types inherited from GlsDisplayObject
enum  ObjectType { OBJECT_TYPE_COMPOSITE , OBJECT_TYPE_RENDERABLE }
 
enum  PickMode { PICK_MODE_NEVER , PICK_MODE_FIRST , PICK_MODE_ALWAYS }
 

Detailed Description

This class facilitates regions that clip geometry within a given boundary

Invariant
base class invariant holds

Constructor & Destructor Documentation

◆ GlsClippingGroup()

GlsClippingGroup::GlsClippingGroup ( InitParameters initParameters,
GlsEventDispatcher *const  eventDispatcher 
)

Constructor - create an instance

Parameters
initParametersinitialization parameters
eventDispatcherevent dispatcher for this object else GLS_NULL
Precondition
initParameters.IsValid()
Postcondition
instance created

◆ ~GlsClippingGroup()

virtual GlsClippingGroup::~GlsClippingGroup ( )
protectedvirtual

Destructor - shall never be called

Precondition
none
Postcondition
none

Member Function Documentation

◆ CalcWindowPickRegion()

virtual void GlsClippingGroup::CalcWindowPickRegion ( GlsInputManager inputManager,
const GlsMatrixAffineD::GLMatrixAffineF parentDrawMatrix 
)
protectedvirtual

Recalculates the window picking region if needed

Parameters
inputManagerinput manager managing input for this object
parentDrawMatrixdraw matrix used when rendering parent object
Precondition
_needCalcDrawMatrix == GLS_FALSE (_drawMatrix is up to date)
Postcondition
_windowPickLowerLeft, _windowPickUpperRight, _windowPickUpperLeft, _windowPickLowerRight and _pickMatrix are recalculated if _windowPickRegionValid == GLS_FALSE,

Reimplemented from GlsDisplayObject.

◆ Draw()

virtual void GlsClippingGroup::Draw ( GlsStateManager gl,
const GlsFloat64  time 
)
virtual

Draws the objects in the clipping group.

Parameters
glGL State manager for OpenGL into which object is drawn
timethe elaspsed time in seconds since program start
Precondition
time >= 0.0
Postcondition
contained objects are drawn to OpenGL if visible and not blinked off

Reimplemented from GlsGroup.

◆ DrawClippingPolygon()

void GlsClippingGroup::DrawClippingPolygon ( GlsStateManager gl)
protected

Draws the clipping polygon to the stencil buffer.

Parameters
glGL State manager for OpenGL into which object is drawn
Precondition
class invariant
Postcondition
clipping polygon is drawn to OpenGL

◆ GetBlc()

GlsVector3D GlsClippingGroup::GetBlc ( )

Get the bottom left corner of the clipping region

Returns
GlsVector3D current bottom left corner location
Precondition
class invariant
Postcondition
none

◆ GetClippingActive()

GlsBool GlsClippingGroup::GetClippingActive ( )

Get the current active state for the clipping region

Returns
GlsBool current active state
Precondition
class invariant
Postcondition
none

◆ GetTrc()

GlsVector3D GlsClippingGroup::GetTrc ( )

Get the top right corner of the clipping region

Returns
GlsVector3D current top right corner location
Precondition
class invariant
Postcondition
none

◆ PickTest()

virtual GlsDisplayObject * GlsClippingGroup::PickTest ( const GlsVector2D windowCoord,
GlsInputManager inputManager,
const GlsMatrixAffineD::GLMatrixAffineF parentDrawMatrix 
)
virtual

Perform a pick test of the given point in window coordinates against this object

Parameters
windowCoordpoint in question
inputManagerinput manager managing input for this object
parentDrawMatrixdraw matrix used when rendering parent object
Returns
object that is picked by given window coordinate else GLS_NULL
Precondition
windowCoord.IsValid(), GLMatrixAffineFIsValid( parentDrawMatrix )
Postcondition
none

Reimplemented from GlsGroup.

◆ SetBlc()

void GlsClippingGroup::SetBlc ( const GlsVector3D value)

Set the bottom left corner of the clipping region

Parameters
valueGlsVector3D new bottom left corner to set
Precondition
class invariant
Postcondition
none

◆ SetClippingActive()

void GlsClippingGroup::SetClippingActive ( const GlsBool  value)

Set the current active state for the clipping region

Parameters
valueGlsBool new active state to set
Precondition
class invariant
Postcondition
active state set to incoming value

◆ SetTrc()

void GlsClippingGroup::SetTrc ( const GlsVector3D value)

Set the top right corner of the clipping region

Parameters
valueGlsVector3D new top right corner to set
Precondition
class invariant
Postcondition
none

Member Data Documentation

◆ _blc

GlsVector3D GlsClippingGroup::_blc
protected

bottom left corner of the clip region in logical units

◆ _clippingActive

GlsBool GlsClippingGroup::_clippingActive
protected

determines if geometry will be clipped between blc and trc

◆ _trc

GlsVector3D GlsClippingGroup::_trc
protected

top right corner of the clip region in logical units