| GL Studio C++ Runtime API

Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes | Friends | List of all members
GlsMimicGroup Class Reference

`#include <gls_mimic_group.h>`

Inheritance diagram for GlsMimicGroup:

## Public Types
typedef Group | _BaseClass
| Deprecated typedef for the base class.
typedef Group | BaseClass
| Typedef for the base class.
Public Types inherited from Group
typedef DisplayObject | _BaseClass
| Deprecated typedef for the base class.
typedef DisplayObject | BaseClass
| Typedef for the base class.
Public Types inherited from DisplayObject
enum | AvailableAttributesEnum { GLS_ATTRIBUTES_BASIC = 1 , GLS_ATTRIBUTES_DYNAMIC = 2 , GLS_ATTRIBUTES_APPEARANCE = 4 , GLS_ATTRIBUTES_GEOMETRY = 8 , GLS_ATTRIBUTES_SPECIALIZED = 16 , GLS_ATTRIBUTES_ALL = ~0 , GLS_ATTRIBUTES_NONE = 0 }

## Public Member Functions
| GlsMimicGroup (bool generateInstance=false)
| GlsMimicGroup (const GlsMimicGroup &that, const bool generateNames)
virtual | ~GlsMimicGroup ()
virtual void | SetAvailableAttributes (unsigned int value) DISTI_METHOD_OVERRIDE
virtual DisplayObject * | CloneObject (bool generateNames=false) DISTI_METHOD_OVERRIDE
virtual void | CopyProperties (DisplayObject *src) DISTI_METHOD_OVERRIDE
virtual void | Draw () DISTI_METHOD_OVERRIDE
virtual void | SetValue (int spec, va_list &args) DISTI_METHOD_OVERRIDE
virtual unsigned int | TextureWidth () const
virtual void | TextureWidth (unsigned int textureWidth)
virtual unsigned int | TextureHeight () const
virtual void | TextureHeight (unsigned int textureHeight)
virtual bool | HasDepthBuffer () const
virtual void | HasDepthBuffer (bool hasDepthBuffer)
virtual bool | GenerateMipMaps () const
virtual void | GenerateMipMaps (bool generate)
virtual bool | DrawMimicGroupPolygon () const
virtual void | DrawMimicGroupPolygon (bool draw)
virtual unsigned char | MimicGroupDepthTest () const
virtual void | MimicGroupDepthTest (unsigned char depthSettings)
virtual bool | AutoRedraw () const
virtual void | AutoRedraw (bool autoRedrawSetting)
virtual GlsColor | ClearColor () const
virtual void | ClearColor (const GlsColor &color)
virtual int | AttachedTextureIndex () const
virtual void | AttachedTextureIndex (int textureIndex)
bool | MimicGroupActive ()
void | MimicGroupActive (bool activate)
void | BottomLeftCorner (const Vector &bottomLeftCorner)
Vector | BottomLeftCorner ()
void | TopRightCorner (const Vector &topRightCorner)
Vector | TopRightCorner () const
bool | ShowOutline () const
void | ShowOutline (bool showOutline)
bool | Redraw () const
void | Redraw (bool redraw)
bool | UseOpaqueTexture () const
void | UseOpaqueTexture (bool opaque)
void | SetPainter (GlsPainter *painter) DISTI_METHOD_OVERRIDE
virtual void | InsertObject (DisplayObject *obj, bool reparent=true, bool recalculateBoundingbox=true, int loc=-1) DISTI_METHOD_OVERRIDE
virtual void | PushObject (DisplayObject *obj) DISTI_METHOD_OVERRIDE
void | Invalidate () DISTI_METHOD_OVERRIDE
| Notify the painter that the scene needs to be redrawn. More...
bool | IsInvalidated () const DISTI_METHOD_OVERRIDE
Public Member Functions inherited from Group
DisplayObject * | FindByName (const char *name)
virtual DisplayObject * | FindByNameSameFrame (const char *name)
DisplayObject * | FindByName (DisplayObject *obj)
DisplayObject * | FindByQualifiedName (const char *name)
DisplayObject * | FindNonRecursive (DisplayObject *obj)
DisplayObjectArray & | Objects ()
const DisplayObjectArray & | Objects () const
DisplayObject * | Item (unsigned int index)
bool | PerformGroupCullCheck () const
void | PerformGroupCullCheck (bool mode)
bool | CullTestChildren () const
void | CullTestChildren (bool mode)
unsigned int | Count () const
DisplayObjectPtr | operator[] (unsigned int index)
const DisplayObject * | operator[] (unsigned int index) const
DisplayObject * | FirstObject ()
DisplayObject * | LastObject ()
bool | IsEmpty () const
int | Position (const DisplayObject *obj) const
| Group (int generateInstance=0)
| Group (const Group &group, bool generateNames)
void | InitialGroupCount (unsigned int cnt)
virtual | ~Group ()
virtual void | DeleteAllChildren ()
virtual void | SetAvailableAttributes (unsigned int value) override
virtual DisplayObject * | CloneObject (bool generateNames=false) override
virtual void | CopyGeometry (DisplayObject *src) override
virtual void | CopyProperties (DisplayObject *src) override
virtual void | Draw () override
virtual void | PreDraw (const OpenGLMatrices &current, Culler &culler) override
virtual bool | Hit (float x, float y, float z, float scale, const Vector &directionVector, Vector *collisionPoint) override
virtual DisplayObject * | Pick3D (const Vector &winLoc, const Vector &logicalCoords, float scale, const Vector &directionVector, Vector &collisionWinLoc, const OpenGLMatrices &drawnMatrices) override
virtual void | Parent (DisplayFrame *par) override
void | SetPainter (GlsPainter *painter) override
virtual void | CalculateBoundingBox ()
virtual void | Location (const Vertex &v) override
virtual void | Location (float x, float y, float z) override
virtual void | Translate (float x, float y, float z) override
virtual void | Translate (float transAmount[]) override
virtual void | TranslateVertices (float x, float y, float z) override
virtual void | TranslateVertices (float transAmount[])
virtual void | GetExtents (float &x, float &y, float &z, float &x1, float &y1, float &z1) override
virtual void | GetTransformedExtents (Vector &min, Vector &max, const GlsMatrixType &matrix, bool resetMinMax=true) override
virtual void | Rotate (const Vector &orig, float angle, const Vector &axis) override
virtual void | Scale (float scale_x, float scale_y)
void | Scale (float scale_x, float scale_y, float scale_z, Vertex *anchor=NULL, int handle=0) override
virtual void | InsertObject (DisplayObject *obj, bool reparent=true, bool recalculateBoundingbox=true, int loc=-1)
virtual bool | DeleteObject (DisplayObject *obj, bool recalculateBoundingbox=true)
virtual void | ReorderObject (unsigned int oldIndex, unsigned int newIndex)
virtual void | PushObject (DisplayObject *obj)
void | DeleteVertexAt (unsigned) override
void | InsertVertexAt (unsigned) override
virtual void | SetGroupLocation (const Vertex &v)
virtual void | GetResources (std::ostream &outstr, GlsResourceFilter *filter=NULL) override
virtual void | CalculateTextureCoordinates () override
virtual void | LineWidth (float width) override
virtual float | LineWidth () override
virtual void | LineStipplePattern (int pattern) override
virtual int | LineStipplePattern () override
virtual void | LineStippleMultiplier (int mult) override
virtual int | LineStippleMultiplier () override
virtual int | PolygonMode () override
virtual void | PolygonMode (int mode) override
virtual void | PolygonEnd (const int mode) override
virtual int | PolygonEnd () override
virtual void | Shading (const int mode) override
virtual int | Shading () override
virtual void | DepthTest (unsigned char mode) override
virtual int | DepthTest () override
virtual void | AntiAlias (bool mode) override
virtual bool | AntiAlias () override
virtual void | AlphaMode (int mode) override
virtual int | AlphaMode () override
virtual void | CullBackFace (const bool mode) override
virtual bool | CullBackFace () override
virtual bool | LightingEnabled () override
virtual void | LightingEnabled (bool lighting) override
virtual void | SetBlendColor (const GlsColor &color) override
virtual GlsColor | GetBlendColor () override
virtual void | SetColor (const GlsColor &color) override
virtual GlsColor | GetColor () override
virtual void | SetFillColor (const GlsColor &color) override
virtual GlsColor | GetFillColor () override
virtual void | TextureRepeat (const int rep) override
virtual void | TextureMappingTechnique (const int map) override
virtual int | TextureMappingTechnique () override
virtual void | TextureMinificationFilter (const int filter) override
virtual int | TextureMinificationFilter () override
virtual void | TextureMagnificationFilter (const int filter) override
virtual int | TextureMagnificationFilter () override
virtual void | Calculate (double time) override
CompatabilityListItem * | First ()
CompatabilityListItem * | Last ()
virtual void | Parent (DisplayFrame *par)
DisplayFrame * | Parent () const
virtual const Vertex & | Location () const
virtual void | Location (const Vertex &v)
virtual void | Location (float x, float y, float z)
virtual void | Rotate (float angle, int axis=Z_AXIS)
virtual void | Rotate (const Vector &origin, float angle, int axis=Z_AXIS)
virtual void | Rotate (const Vector &orig, float angle, const Vector &axis)
virtual void | SetBlendColor (const GlsColor &color)
void | SetBlendColor (unsigned char color[])
void | SetBlendColor (unsigned char r, unsigned char g, unsigned char b, unsigned char a)
void | GetBlendColor (unsigned char color[])
void | GetBlendColor (unsigned char &r, unsigned char &g, unsigned char &b, unsigned char &a)
virtual GlsColor | GetBlendColor ()
virtual void | SetColor (const GlsColor &color)
void | SetColor (unsigned char c4[])
void | SetColor (unsigned char r, unsigned char g, unsigned char b, unsigned char a)
virtual GlsColor | GetColor ()
void | GetColor (unsigned char c4[])
void | GetColor (unsigned char &r, unsigned char &g, unsigned char &b, unsigned char &a)
void | SetFillColor (unsigned char r, unsigned char g, unsigned char b, unsigned char a)
void | SetFillColor (unsigned char c4[])
virtual void | SetFillColor (const GlsColor &color)
void | GetFillColor (unsigned char &r, unsigned char &g, unsigned char &b, unsigned char &a)
void | GetFillColor (unsigned char c4[])
virtual GlsColor | GetFillColor ()
virtual bool | TextureRepeat ()
virtual void | TextureRepeat (const int rep)
Public Member Functions inherited from DisplayObject
| DisplayObject (float x, float y, float z)
| DisplayObject (const DisplayObject &object, const bool generateNames)
virtual | ~DisplayObject ()
void | Destroy ()
virtual void | SetAvailableAttributes (unsigned int value)
virtual void | AlphaMode (int mode)
virtual int | AlphaMode ()
virtual bool | AntiAlias ()
virtual void | AntiAlias (bool alias)
void | ApplyTextureSettings (int textureIndex=-1)
DistiAttribDict & | Attributes ()
const DistiAttribDict & | Attributes () const
virtual void | SetBlendColor (const GlsColor &color)
void | GetBlendColor (unsigned char color[])
void | GetBlendColor (unsigned char &r, unsigned char &g, unsigned char &b, unsigned char &a)
virtual GlsColor | GetBlendColor ()
void | SetBlendColor (unsigned char color[])
void | SetBlendColor (unsigned char r, unsigned char g, unsigned char b, unsigned char a)
virtual bool | BlinkedOff ()
virtual bool | Blinking ()
virtual void | Blinking (const bool blink)
virtual float | BlinkRate ()
virtual void | BlinkRate (const float rate)
const Vector & | BoundingVolumeCenter () const
void | BoundingVolumeCenter (const Vector &center)
bool | BoundingVolumeHit (const Vector &start, const Vector &direction)
float | BoundingVolumeRadius () const
void | BoundingVolumeRadius (float radius)
virtual void | Calculate (double time)
void | CalculateCollisionPoint (const Vector &pickLoc, const Vector &directionVector, Vector *collisionPoint)
virtual void | CalculateParentBoundingBox ()
virtual void | CalculateTextureCoordinates ()
bool | GetTexturePointTransformationMatrix (GlsMatrixType &world2tex)
CallbackMethodCallerBase * | CallbackCaller () const
void | CallbackCaller (CallbackMethodCallerBase *cb)
virtual void | GetCenter (Vector &center)
virtual DisplayObject * | CloneObject (bool generateNames=false)=0
virtual GlsColor | GetColor ()
void | GetColor (unsigned char c4[])
void | GetColor (unsigned char &r, unsigned char &g, unsigned char &b, unsigned char &a)
virtual void | SetColor (const GlsColor &color)
void | SetColor (unsigned char c4[])
void | SetColor (unsigned char r, unsigned char g, unsigned char b, unsigned char a)
virtual void | CopyGeometry (DisplayObject *src)
virtual void | CopyHierarchyProperties (DisplayObject *src, bool copyName)
virtual void | CopyProperties (DisplayObject *src)
virtual void | CullBackFace (const bool val)
virtual bool | CullBackFace ()
bool | Culled () const
void | Culled (bool val)
bool | CullTest (const GlsMatrixType *matrix, const Culler &culler)
GlsMatrixType & | DcsMatrix ()
GlsMatrixType | DcsMatrix () const
void | DcsMatrix (const GlsMatrixType &matrix)
virtual void | DeleteVertexAt (unsigned int index)
virtual void | DeleteVertex (unsigned int indexAfter) final
virtual int | DepthTest ()
virtual void | DepthTest (unsigned char zbuf)
virtual void | Draw ()=0
const GlsMatrixType * | DrawMatrix ()
bool | NeedCalcDrawMatrix ()
void | DynamicRotate (float angle, int axis)
void | DynamicRotate (const Vector &v)
void | DynamicRotate (float angle[])
virtual void | DynamicRotate (float x, float y, float z)
virtual void | DynamicRotateRelative (float angle, int axis)
virtual float | DynamicRotation (int axis)
virtual Vector | DynamicRotation ()
virtual Vector | DynamicScale ()
virtual void | DynamicScale (float x, float y, float z)
void | DynamicScale (const Vector &scale)
virtual void | DynamicTranslate (float x, float y, float z, bool relative=false)
void | DynamicTranslate (const Vertex &amount, bool relative)
void | DynamicTranslate (const Vector &amount)
virtual void | DynamicTranslateAxis (float amount, int axis, bool relative)
virtual float | DynamicTranslation (int axis)
virtual Vector | DynamicTranslation ()
DisplayObjectEditor * | Editor ()
const DisplayObjectEditor * | Editor () const
void | Editor (DisplayObjectEditor *editor)
virtual void | GetExtents (float &x, float &y, float &z, float &x1, float &y1, float &z1)
void | GetExtentsDCS (Vector &min, Vector &max)
void | GetFillColor (unsigned char &r, unsigned char &g, unsigned char &b, unsigned char &a)
void | GetFillColor (unsigned char c4[])
virtual GlsColor | GetFillColor ()
void | SetFillColor (unsigned char r, unsigned char g, unsigned char b, unsigned char a)
void | SetFillColor (unsigned char c4[])
virtual void | SetFillColor (const GlsColor &color)
virtual void | FinishObject ()
virtual void | GenerateInstanceName ()
virtual DisplayObject * | handle (DisplayEvent *ev)
virtual bool | Hit (float x, float y, float z, float scale, const Vector &directionVector, Vector *collisionPoint)
virtual bool | HitUtil (float x, float y, float z, float scale, Vertex *vertices, unsigned int vertex_cnt, const Vector &directionVector, Vector *collisionPoint)
virtual void | InsertVertexAt (unsigned int index)
virtual void | InsertVertex (unsigned int indexAfter) final
char * | InstanceName ()
const char * | InstanceName () const
void | InstanceName (const char *name)
virtual bool | LightingEnabled ()
virtual void | LightingEnabled (bool lighting)
virtual int | LineStippleMultiplier ()
virtual void | LineStippleMultiplier (int mult)
virtual int | LineStipplePattern ()
virtual void | LineStipplePattern (int pattern)
virtual float | LineWidth ()
virtual void | LineWidth (float width)
virtual const Vertex & | Location () const
virtual void | Location (const Vertex &v)
virtual void | Location (float x, float y, float z)
virtual void | GetLocation (Vertex &v)
virtual void | GetLocation (float &x, float &y, float &z)
float | X () const
float | Y () const
float | Z () const
void | X (const float x)
void | Y (const float y)
void | Z (const float z)
virtual int | MaterialIndex ()
virtual void | MaterialIndex (int index)
virtual DynamicArray< int > & | MaterialIndices ()
virtual void | MaterialIndices (DynamicArray< int > indices)
GlsMatrixType * | ModelMatrix ()
bool | NeedCalculate ()
Vector * | Normals ()
virtual void | SetNormals (unsigned int nPoints, Vector *vertices)
void | VaSetNormals (unsigned int nPoints,...)
unsigned int | NumberOfVertices () const
virtual float | ObjectDepth ()
virtual float | ObjectHeight ()
virtual float | ObjectWidth ()
virtual void | SetOrigin (const Vertex &vert)
virtual void | Parent (DisplayFrame *par)
DisplayFrame * | Parent () const
virtual void | ParentGroup (Group *group)
Group * | ParentGroup () const
virtual DisplayObject * | Pick3D (const Vector &winLoc, const Vector &logicalCoords, float scale, const Vector &directionVector, Vector &collisionWinLoc, const OpenGLMatrices &drawnMatrices)
unsigned char | Pickable ()
virtual void | Pickable (unsigned char pick)
virtual int | PolygonEnd ()
virtual void | PolygonEnd (const int end)
virtual int | PolygonMode ()
virtual void | PolygonMode (int mode)
virtual void | PreDraw (const OpenGLMatrices &current, Culler &culler)
GlsMatrixType * | ProjMatrix ()
virtual void | ReallocateVertices (unsigned int numVertices, bool initializeNew, bool copyOld)
virtual float | RelativeAngle (const float x, const float y)
virtual DistiAttributeBase & | Resource (const char *name)
virtual void | GetResources (std::ostream &outstr, GlsResourceFilter *filter=NULL)
const Vertex & | RotationPoint () const
virtual void | RotationPoint (const Vertex &v)
virtual void | RotationPoint (float x, float y, float z)
virtual void | GetRotationPoint (Vertex &v)
virtual void | Rotate (float angle, int axis=Z_AXIS)
virtual void | Rotate (const Vector &origin, float angle, int axis=Z_AXIS)
virtual void | Rotate (const Vector &orig, float angle, const Vector &axis)
void | SaveMatrices ()
virtual void | Scale (float px, float py, float pz, Vertex *anchor, int handleBar=0)
void | Set (int spec,...)
bool | SetupAlpha ()
void | SetupDepthTest ()
void | SetupLighting ()
bool | SetupLineStyle ()
bool | SetupTexture ()
virtual int | Shading ()
virtual void | Shading (const int shading)
virtual void | GetTransformedExtents (Vector &min, Vector &max, const GlsMatrixType &matrix, bool resetMinMax=true)
virtual void | SetTexCoords (unsigned int nPoints, Vector *new_tex_coord, bool isVectorArray=true)
void | SetTexCoords (unsigned int nPoints, Vertex *new_tex_coord)
void | VaSetTexCoords (unsigned int nPoints,...)
Vector * | TextureCoordinates ()
Vector * | GetTextureCoordinates ()
virtual int | TextureIndex ()
virtual void | TextureIndex (int textureIndex)
virtual Vector * | GetTexturePoints ()
virtual bool | TextureRepeat ()
virtual void | TextureRepeat (const int rep)
virtual int | TextureMappingTechnique ()
virtual void | TextureMappingTechnique (const int map)
virtual int | TextureMagnificationFilter ()
virtual void | TextureMagnificationFilter (const int filter)
virtual int | TextureMinificationFilter ()
virtual void | TextureMinificationFilter (const int filter)
virtual void | Translate (float tr[])
virtual void | Translate (float x, float y, float z)
virtual void | TranslateVertices (float x, float y, float z)
virtual void | UpdateBoundingVolume ()
void * | UserData () const
void | UserData (void *data)
virtual void | SetVertexColor (unsigned int vertex, unsigned char CurrentFillColor[])
virtual Vertex * | Vertices ()
virtual void | SetVertices (unsigned int nPoints, Vertex *vertices)
void | VaSetVertices (unsigned int nPoints,...)
int * | ViewMatrix ()
bool | Visible () const
bool | Visibility () const
virtual void | Visibility (const bool vis)
virtual Vector | WorldRotationPoint ()
virtual void | WorldRotationPoint (const Vector &vert)
virtual Vertex | WorldVertex (unsigned int i)
virtual void | WorldVertex (unsigned int i, const Vertex &vert)
bool | LogicalToWindow (const Vector &logical, Vector &winLoc, const OpenGLMatrices &alternateMatrices=OpenGLMatrices())
bool | WindowToLogical (const Vector &winLoc, Vector &logical, Vector *directionVector=NULL, const OpenGLMatrices &alternateMatrices=OpenGLMatrices())
void | LogicalToDCS (Vector logicalPoint, Vector &objectLocal, const Vector *directionVector, const Vector &planeNormal=Vector(0, 0, 1), const Vector &planePoint=Vector(), const GlsMatrixType *dcsMatrix=NULL)
void | DCSToLogical (Vector dcsPoint, Vector &logicalPoint, const GlsMatrixType *dcsMatrix=NULL)
bool | Create (GlsGloFile &dataStream, Group *parent)
void | GeometryRefresh ()
| Invalidates the painter and refreshes the geometry on the next paint cycle.
virtual bool | GetPlaneVectorPoints (Vertex &p1, Vertex &p2, Vertex &p3, Vertex &planeVector)
void | NotifyAttributeChanged (const AttributeName &name) override
virtual void | SetPainter (GlsPainter *painter)
virtual GlsPainter * | GetPainter ()
void | InvalidatePainter ()
virtual bool | IsVisibleInScene (const DisplayObject *obj=NULL) const
Public Member Functions inherited from AttributeChangedNotifier
virtual void | NotifyAttributeChanged (const AttributeName &name)=0
virtual | ~AttributeChangedNotifier ()
Public Member Functions inherited from WeakReferenceableMixin
void | AddWeakReference (WeakReference *weakRef) override
void | NotifyWeakReferenceDestroyed (WeakReference *ref) override
virtual void | AddWeakReference (WeakReference *weakRef)=0
virtual void | NotifyWeakReferenceDestroyed (WeakReference *weakReference)=0
virtual void | Invalidate ()=0
| Notify the painter that the scene needs to be redrawn. More...
virtual bool | IsInvalidated () const =0

## Static Public Member Functions
static DisplayObject * | CreateInstance ()
Static Public Member Functions inherited from Group
static DisplayObject * | CreateInstance ()
Static Public Member Functions inherited from DisplayObject
static void | UseManualBlinkElapsedTime (bool useManualTime)
static void | SetManualBlinkElapsedTime (double elapsedTime)

## Protected Member Functions
virtual void | SetMatrices ()
virtual void | PreDrawMimicGroupChildren (const OpenGLMatrices &parentMatrices, Culler &culler)
void | SetupMimicGroupDepthTest ()
void | GetRegionCorners (Vector &topLeftCorner, Vector &topRightCorner, Vector &bottomRightCorner, Vector &bottomLeftCorner)
void | ApplyMimicGroupTextureSettings ()
void | CreateDiffuseTexture ()
void | CreateDepthTexture ()
void | CreateMimicGroupQuad ()
| Allocate and create the mimic quad.
void | UpdateMimicGroupQuad ()
| Update the vertices of the mimic quad.
void | DeleteMimicGroupQuad ()
| Delete the mimic quad (if it has been allocated).
void | CreateFrameBuffer ()
void | DeleteFrameBuffer ()
void | RedrawScene ()
void | DrawPolygon ()
void | RegenerateMipMaps ()
DisplayObject * | handle (DisplayEvent *displayEvent) DISTI_METHOD_OVERRIDE
bool | RequiredGlFeaturesSupported ()
void | LogUnsupportedFeatures ()
bool | VertexBuffersAreSupported ()
void | DrawMimicGroup ()
virtual void | SetFromGloData (GlsGloFileAttribute &data) DISTI_METHOD_OVERRIDE
Protected Member Functions inherited from Group
virtual void | AddAvailableAttributes (unsigned int availableAttributes)
virtual void | GrowBoundingBox (DisplayObject *obj)
Protected Member Functions inherited from DisplayObject
virtual void | VaListSetVertices (unsigned int nPoints, va_list args)
virtual void | VaListSetNormals (unsigned int nPoints, va_list args)
virtual void | VaListSetTexCoords (unsigned int nPoints, va_list args)
void | ApplyTextureMinMagSettings ()
| Updates the state manager's texture minification and magnification filter based on this display's configuration.
void | ApplyTextureEnvModeSettings ()
| Updates the state manager's texture environment based on this object configuration.
bool | SetupTextureIsNeeded ()
virtual int | ColorMaterialMode ()
void | AllocateModelMatrix ()
bool | ApplyDynamicRotation ()
virtual void | CalcDrawMatrix ()
void | CalcDrawMatrixIfExists ()
virtual void | CalculateMatrices (const OpenGLMatrices &newMatrices)
bool | InsideVertexExtents (float x, float y, unsigned int nVerts, Vertex *verts, float tolerance)
void | LastDrawMatrixLocation (const Vertex &loc)
const Vertex & | LastDrawMatrixLocation ()
void | NeedCalculate (bool val)
void | PickSetup (float x, float y, float z, Vertex *vertices, unsigned int vertex_cnt, const Vector &directionVector)
void | PickCleanup (Vertex *vertices, unsigned int vertex_cnt)
virtual void | SetFromGloData (GlsGloFileAttribute &data)
virtual void | SetValue (int spec, va_list &args)
int | GetApplicableTextureIndex ()
int | GetApplicableTextureRepeat ()
Protected Member Functions inherited from WeakReferenceableMixin
| WeakReferenceableMixin ()
virtual | ~WeakReferenceableMixin ()

## Protected Attributes
bool | _mimicGroupActive
| Whether or not the mimic is active. If not active, mimic group behaves as a normal group.
bool | _autoRedraw
| Whether or not the mimic group should automatically update via conditional rendering.
bool | _redraw
| Whether or not the mimic scene needs to redraw.
bool | _hasDepthBuffer
| Whether or not the mimic will render a depth buffer.
bool | _generateMipMaps
| Whether or not the mimic will generate mip maps.
bool | _showOutline
| Outline is only visible in editor.
bool | _drawMimicGroupPolygon
| Whether or not a mimic polygon will be drawn.
unsigned char | _mimicGroupDepthTest
| Mimic depth test settings (affects whether or not the mimic polygon is depth tested).
bool | _textureIndexChanged
| Unused, kept for backward compatibility.
GlsColor | _clearColor
| RGBA color to clear mimic scene background with.
Vector | _bottomLeftCorner
| Bottom Left Corner of the mimic scene region.
Vector | _topRightCorner
| Top Right Corner of the mimic scene region.
int | _attachedTextureIndex
| GL Studio texture index to generate mimic into. If -1, then mimic will generate its own texture.
unsigned int | _textureWidth
| Width of the mimic texture in pixels.
unsigned int | _textureHeight
| Height of the mimic texture in pixels.
unsigned int | _frameBufferHandle
| Handle for frame buffer object.
unsigned int | _depthBufferHandle
| Handle for depth buffer object.
Image * | _mimicGroupTexture
| Image object for texture.
unsigned int | _vertexBufferHandle
| Vertex buffer handle for mimic quad.
bool | _frameBuffersEnabledAndAttached
| True when frame buffer support is detected and frame buffers were attached successfully.
bool | _useOpaqueTexture
| True if the atached frame buffer texture should be crated as GL_RGB, False will create the texture as GL_RGBA.
Protected Attributes inherited from Group
DisplayObjectArray | _objects
| The objects contained in this group.
Protected Attributes inherited from DisplayObject
bool | _geometryRefresh
| Whether or not the geometry (VBOs etc.) needs to be updated on the GPU.
int | _alphaMode
bool | _antiAlias
bool | _attributesAdded
bool | _blinking
float | _blinkRate
bool | _isBlinkedOff
| Stores whether the object is presently blinked on or off.
GlsColor | _color
bool | _cullBackFace
GlsMatrixType | _dcsMatrix
unsigned char | _depthTest
GlsMatrixType * | _drawMatrix
bool | _needCalcDrawMatrix
| True if CalcDrawMatrix() needs to be called on this object.
unsigned char | _lineStippleMultiplier
unsigned short | _lineStipplePattern
float | _lineWidth
Vertex | _location
DynamicArray< int > | _materialIndices
| List of materials associated with this object.
GlsMatrixType * | _modelMatrix
Vector * | _normals
unsigned int | _nTex_vertices
unsigned int | _nVertices
unsigned char | _polygonEnd
unsigned char | _polygonMode
GlsMatrixType * | _projMatrix
unsigned char | _shading
Vector * | _texCoord
GlsColor | _textureBlendColor
int | _textureIndex
unsigned char | _textureMagFilter
unsigned char | _textureMinFilter
unsigned char | _textureMap
Vector | _texturePoints [4]
unsigned char | _textureRepeat
void * | _userData
Vertex * | _vertices
int * | _viewMatrix
bool | _visible
IGlsStateManager * | _stateManager
| The state manager that interfaces with OpenGL and maintains its render state.
Protected Attributes inherited from WeakReferenceableMixin
DynamicArray< WeakReference * > * | _weakRefs

## Static Protected Attributes
static bool | _unsupportedLogged
| True if a warning has been logged to users that the mimic group feature is not supported. This keeps us from spamming the user about not being supported.

## Friends
class | GlsMimicGroupEditor

## Additional Inherited Members
Public Attributes inherited from Group
DynamicArray< CompatabilityListItem > | _compatList
| Used for GL Studio 2.1 compatibility only.

## Detailed Description

The GlsMimicGroup class provides a way to group objects that change infrequently into a single textured polygon such that performance is increased due to not having to render the objects every frame. Instead, since all of the objects in the group are replaced with a single texture, performance is saved by updating the texture ONLY through handling a display event of name "MimicGroupUpdate". Whenever an object placed in this group is modified, you must write code to emit a "MimicGroupUpdate" ObjectEvent so that any changes made to its appearance will be reflected in the rendered texture.

For example: EmitObjectEvent( objectThatChanged, "MimicGroupUpdate" );

Picking and event handling for objects within the GlsMimicGroup work the same as for a regular Group, so it can contain interactive objects such as buttons, switches, etc. The GlsMimicGroup will only redraw the texture when it receives a "MimicGroupUpdate" ObjectEvent so you must write code to emit these events whenever a press, toggle, etc. affect the appearance of the object.

The GlsMimicGroup can contain 2D or 3D objects. All of these objects will be replaced with a 2D texture polygon so the GlsMimicGroup is best suited for use with panels that are mostly 2D. The GlsMimicGroup can also be useful with a collection of 3D objects as long as the GlsMimicGroup remains screen-aligned.

On older hardware that does not support the render-to-texture capabilities required by the GlsMimicGroup, the GlsMimicGroup will fall-back to rendering like a regular Group.

## Constructor & Destructor Documentation

## ◆ GlsMimicGroup() [1/2]

GlsMimicGroup | ( | bool | generateInstance = `false` | ) |

Constructor

Parameters

  generateInstance | Whether or not to generate an instance name for this mimic group.

## ◆ GlsMimicGroup() [2/2]

GlsMimicGroup | ( | const GlsMimicGroup & | that,
|  | const bool | generateNames
| ) |  |

Copy constructor

Parameters

  that | The object to copy from.
  generateNames | Whether or not to generate an instance name for this mimic group.

## ◆ ~GlsMimicGroup()

virtual ~GlsMimicGroup | ( |  | ) |
| virtual

Destructs a GlsMimicGroup object

## Member Function Documentation

## ◆ ApplyMimicGroupTextureSettings()

void ApplyMimicGroupTextureSettings | ( |  | ) |
| protected

Apply texture settings for mimic polygon

## ◆ AttachedTextureIndex() [1/2]

virtual int AttachedTextureIndex | ( |  | ) | const
| inline virtual

Accessor for the GL Studio texture index the mimic will generate into.

Returns
  the GL Studio texture index the mimic will generate into. If -1, then mimic will generate its own texture.

## ◆ AttachedTextureIndex() [2/2]

virtual void AttachedTextureIndex | ( | int | textureIndex | ) |
| virtual

Set the GL Studio texture index the mimic will generate into.

Parameters

  textureIndex | the GL Studio texture index to generate mimic into. If -1, then mimic will generate its own texture.

## ◆ AutoRedraw() [1/2]

virtual bool AutoRedraw | ( |  | ) | const
| inline virtual

Accessor for the mimic auto-redraw for conditional rendering settings.

Returns
  the depth settings

## ◆ AutoRedraw() [2/2]

virtual void AutoRedraw | ( | bool | autoRedrawSetting | ) |
| virtual

Set the mimic auto-redraw for conditional rendering.

Parameters

  autoRedrawSetting | the enable to automatically update.

## ◆ BottomLeftCorner() [1/2]

Vector BottomLeftCorner | ( |  | ) |
| inline

Accessor for the bottom left corner coordinate of the mimic scene region.

Returns
  the bottom left corner of mimic scene region (in object coordinates)

## ◆ BottomLeftCorner() [2/2]

void BottomLeftCorner | ( | const Vector & | bottomLeftCorner | ) |

Set the bottom left corner of mimic scene region

Parameters

  bottomLeftCorner | (in object coordinates)

## ◆ ClearColor() [1/2]

virtual GlsColor ClearColor | ( |  | ) | const
| inline virtual

Accessor for the mimic scene background clear color.

Returns
  the RGBA color that the mimic will use to clear mimic scene background with

## ◆ ClearColor() [2/2]

virtual void ClearColor | ( | const GlsColor & | color | ) |
| virtual

Set the mimic scene background clear color.

Parameters

  color | the RGBA color that the mimic will use to clear mimic scene background with

## ◆ CloneObject()

virtual DisplayObject * CloneObject | ( | bool | generateNames = `false` | ) |
| virtual

Copy+Create operation in one method. In derived classes, this method will create a new instance of the derived class and then copy the object into the new instance. The cut,copy,paste and undo operations use this method.

Parameters

  generateNames | Whether or not to generate new names for cloned objects

Returns
  A new object, identical to the original, except for the instance name

Reimplemented from Group.

## ◆ CopyProperties()

virtual void CopyProperties | ( | DisplayObject * | src | ) |
| virtual

Copies the attributes except for geometry attributes from one object to another. Used by the undo mechanism to undo most attribute change operations.

Parameters

  src | The object to copy properties from

Reimplemented from Group.

## ◆ CreateDepthTexture()

void CreateDepthTexture | ( |  | ) |
| protected

Allocate and create the depth texture map

## ◆ CreateDiffuseTexture()

void CreateDiffuseTexture | ( |  | ) |
| protected

Allocate and create the diffuse texture map

## ◆ CreateFrameBuffer()

void CreateFrameBuffer | ( |  | ) |
| protected

Allocate and create the frame buffer

## ◆ CreateInstance()

static DisplayObject * CreateInstance | ( |  | ) |
| static

Returns
  A pointer to a new GlsMimicGroup object.

## ◆ DeleteFrameBuffer()

void DeleteFrameBuffer | ( |  | ) |
| protected

Delete the frame buffer (if it has been bound)

## ◆ Draw()

virtual void Draw | ( |  | ) |
| virtual

Draws this object on the current display frame (_parent member). Pure virtual method

Reimplemented from Group.

## ◆ DrawMimicGroup()

void DrawMimicGroup | ( |  | ) |
| protected

Draw the mimic group. Care should be taken to call this method only when it is safe to draw the mimic group. The Draw() has the conditional structure necessary to make this decision.

## ◆ DrawMimicGroupPolygon() [1/2]

virtual bool DrawMimicGroupPolygon | ( |  | ) | const
| inline virtual

Whether or not a mimic polygon will be drawn.

Returns
  true if a mimic polygon will be drawn.

## ◆ DrawMimicGroupPolygon() [2/2]

virtual void DrawMimicGroupPolygon | ( | bool | draw | ) |
| virtual

Set whether or not a mimic polygon will be drawn.

Parameters

  draw | true if a mimic polygon will be drawn.

## ◆ DrawPolygon()

void DrawPolygon | ( |  | ) |
| protected

Draw the polygon for the mimic

## ◆ GenerateMipMaps() [1/2]

virtual bool GenerateMipMaps | ( |  | ) | const
| inline virtual

Whether or not the mimic will generate mip maps.

Returns
  true if the mimic will generate mip maps.

## ◆ GenerateMipMaps() [2/2]

virtual void GenerateMipMaps | ( | bool | generate | ) |
| virtual

Set whether or not the mimic will generate mip maps.

Parameters

  generate | true if the mimic will generate mip maps.

## ◆ GetRegionCorners()

void GetRegionCorners | ( | Vector & | topLeftCorner,
|  | Vector & | topRightCorner,
|  | Vector & | bottomRightCorner,
|  | Vector & | bottomLeftCorner
| ) |  |
| protected

Get the four corners of the region transformed by the current DCS and offset by the group's location

Parameters

  topLeftCorner | [out] receives top left corner
  topRightCorner | [out] receives top right corner
  bottomRightCorner | [out] receives bottom right corner
  bottomLeftCorner | [out] receives bottom left corner

## ◆ handle()

DisplayObject * handle | ( | DisplayEvent * | ev | ) |
| protected virtual

Handles an event that is sent to the object.

Parameters

  ev | The event to send to the object

Returns
  Which object handled the event

Reimplemented from DisplayObject.

## ◆ HasDepthBuffer() [1/2]

virtual bool HasDepthBuffer | ( |  | ) | const
| inline virtual

Whether or not the mimic will render a depth buffer.

Returns
  true if the mimic will render a depth buffer.

## ◆ HasDepthBuffer() [2/2]

virtual void HasDepthBuffer | ( | bool | hasDepthBuffer | ) |
| virtual

Set whether or not the mimic will render a depth buffer.

Parameters

  hasDepthBuffer | true if the mimic will render a depth buffer.

## ◆ InsertObject()

virtual void InsertObject | ( | DisplayObject * | obj,
|  | bool | reparent = `true`,
|  | bool | recalculateBoundingbox = `true`,
|  | int | loc = `-1`
| ) |  |
| virtual

Adds the specified object into the group, at the end of the list

Parameters

  obj | A pointer to the object to add
  reparent | Whether or not the object parent should be set to this group
  recalculateBoundingbox | Whether or not to recalculate the bounding box
  loc | Where to insert it (defaults to -1 which means at the end of the list)

Reimplemented from Group.

## ◆ Invalidate()

void Invalidate | ( |  | ) |
| virtual

Notify the painter that the scene needs to be redrawn.

Implements GlsPainter.

## ◆ IsInvalidated()

bool IsInvalidated | ( |  | ) | const
| virtual

Returns
  Whether or not the painter has already been invalidated.

Implements GlsPainter.

## ◆ LogUnsupportedFeatures()

void LogUnsupportedFeatures | ( |  | ) |
| protected

Logs the unsupported features that the GlsMimicGroup class requires to function properly.

## ◆ MimicGroupActive() [1/2]

bool MimicGroupActive | ( |  | ) |
| inline

Whether or not the mimic is active for this group. If not active, mimic group behaves as a normal group

Returns
  true if mimic is active for this group

## ◆ MimicGroupActive() [2/2]

void MimicGroupActive | ( | bool | activate | ) |

Sets if mimic is active for this group If not active, mimic group behaves as a normal group

Parameters

  activate | whether or not to activate the mimic

## ◆ MimicGroupDepthTest() [1/2]

virtual unsigned char MimicGroupDepthTest | ( |  | ) | const
| inline virtual

Accessor for the mimic depth test settings.

Returns
  the depth settings

## ◆ MimicGroupDepthTest() [2/2]

virtual void MimicGroupDepthTest | ( | unsigned char | depthSettings | ) |
| virtual

Set the mimic depth test settings.

Parameters

  depthSettings | the depth settings

## ◆ PreDrawMimicGroupChildren()

virtual void PreDrawMimicGroupChildren | ( | const OpenGLMatrices & | parentMatrices,
|  | Culler & | culler
| ) |  |
| protected virtual

Predraw case for when the mimic scene redraws.

Note
  Not normally called by users.

Parameters

  parentMatrices | The parent draw matrices for this object (as passed into PreDraw).
  culler | The culler state for this object (as passed into PreDraw).

## ◆ PushObject()

virtual void PushObject | ( | DisplayObject * | obj | ) |
| virtual

Adds the specified object into the group, at the head of the list Treats the list like a stack, hence the name Push

Parameters

  obj | A pointer to the object to add

Reimplemented from Group.

## ◆ Redraw() [1/2]

bool Redraw | ( |  | ) | const
| inline

Whether or not the mimic group needs to redraw.

Returns
  true if the mimic group needs to redraw.

## ◆ Redraw() [2/2]

void Redraw | ( | bool | redraw | ) |

Set whether or not the mimic group needs to redraw

Parameters

  redraw | the new redraw value

## ◆ RedrawScene()

void RedrawScene | ( |  | ) |
| protected

Redraw the scene

## ◆ RegenerateMipMaps()

void RegenerateMipMaps | ( |  | ) |
| protected

Regenerate the mip maps

## ◆ RequiredGlFeaturesSupported()

bool RequiredGlFeaturesSupported | ( |  | ) |
| protected

The GlsMimicGroup requres specific extensions of OpenGL which are not required elsewhere in GL Studio. This method will check that those features are supported.

Returns
  True if the required features are supported.

## ◆ SetAvailableAttributes()

virtual void SetAvailableAttributes | ( | unsigned int | value | ) |
| virtual

Specifies which attributes are available for the object. Currently the available attributes cannot be changed after they have been set. (Only the first call has an effect.)

Parameters

  value | A bitfield specifying which types of attributes to make available.

See also
  AvailableAttributesEnum

Reimplemented from Group.

## ◆ SetFromGloData()

virtual void SetFromGloData | ( | GlsGloFileAttribute & | data | ) |
| protected virtual

Set a single attribute from the GLO file.

Parameters

  data | The attribute to set and its associated data.

Reimplemented from DisplayObject.

## ◆ SetMatrices()

virtual void SetMatrices | ( |  | ) |
| protected virtual

Set up the matrices for the root of the mimic scene. The mimic scene is drawn without regard to any parent matrices of the mimic group.

## ◆ SetPainter()

void SetPainter | ( | GlsPainter * | painter | ) |
| virtual

Sets the painter for this object. Can be NULL. If the painter is set, this object will call Invalidate() on the painter anytime it changes in a way that affects its rendering.

Note
  This object only observers the painter, and does not delete it.

Parameters

  painter | the painter that is drawing this class.

Reimplemented from Group.

## ◆ SetupMimicGroupDepthTest()

void SetupMimicGroupDepthTest | ( |  | ) |
| protected

Set depth buffer settings when rendering the mimic polygon

## ◆ SetValue()

virtual void SetValue | ( | int | spec,
|  | va_list & | args
| ) |  |
| virtual

Sets an attribute of this object using variable arguments

Parameters

  spec | A GLS_Initializer tag
  args | A variable argument list

Reimplemented from DisplayObject.

## ◆ ShowOutline() [1/2]

bool ShowOutline | ( |  | ) | const
| inline

Whether or not the outline of the mimic polygon region should be shown in the editor.

Returns
  true if region should always be drawn in the editor

## ◆ ShowOutline() [2/2]

void ShowOutline | ( | bool | showOutline | ) |

Set whether or not the mimic polygon region should always be drawn in the editor.

Parameters

  showOutline | true if outline should always be drawn in editor

## ◆ TextureHeight() [1/2]

virtual unsigned int TextureHeight | ( |  | ) | const
| inline virtual

Accessor for the mimic texture height.

Returns
  the height, in pixels, of the mimic texture.

## ◆ TextureHeight() [2/2]

virtual void TextureHeight | ( | unsigned int | textureHeight | ) |
| virtual

Set the mimic texture height.

Parameters

  textureHeight | the height, in pixels, of the mimic texture.

## ◆ TextureWidth() [1/2]

virtual unsigned int TextureWidth | ( |  | ) | const
| inline virtual

Accessor for the mimic texture width.

Returns
  the width, in pixels, of the mimic texture.

## ◆ TextureWidth() [2/2]

virtual void TextureWidth | ( | unsigned int | textureWidth | ) |
| virtual

Set the mimic texture width.

Parameters

  textureWidth | the width, in pixels, of the mimic texture.

## ◆ TopRightCorner() [1/2]

Vector TopRightCorner | ( |  | ) | const
| inline

Accessor for the top right corner coordinate of the mimic scene region.

Returns
  the top right corner of mimic scene region (in object coordinates)

## ◆ TopRightCorner() [2/2]

void TopRightCorner | ( | const Vector & | topRightCorner | ) |

Set the top right corner of mimic scene region

Parameters

  topRightCorner | (in object coordinates)

## ◆ UseOpaqueTexture() [1/2]

bool UseOpaqueTexture | ( |  | ) | const
| inline

Whether or not the mimic group texture is RGB.

Returns
  true if the mimic group texture is RGB.

## ◆ UseOpaqueTexture() [2/2]

void UseOpaqueTexture | ( | bool | opaque | ) |

Set whether the mimic group texture is RGB or RGBA

Parameters

  opaque | true for RGB, false for RGBA

## ◆ VertexBuffersAreSupported()

bool VertexBuffersAreSupported | ( |  | ) |
| protected

Determines if vertex buffer objects are supported on this platform.

Returns
  True if vertex buffer objects are supported on this platform.

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

- gls_mimic_group.h