GL Studio C++ Runtime API
GlsPathManager Class Reference

#include <gls_path_manager.h>

Inheritance diagram for GlsPathManager:
DisplayObject AttributeChangedNotifier WeakReferenceableMixin WeakReferenceable


class  PathObjectPair

Public Types

typedef DisplayObject _BaseClass
 Deprecated typedef for the base class.
typedef DisplayObject BaseClass
 Typedef for the base class.
typedef DynamicArray< PathObjectPairPathObjectPairArrayType
 Shorthand typedef for a list of path pairs.
- Public Types inherited from DisplayObject
enum  AvailableAttributesEnum {

Public Member Functions

 GlsPathManager (bool generateInstanceName=false)
 GlsPathManager (const GlsPathManager &that, const bool generateNames)
virtual ~GlsPathManager ()
virtual void SetAvailableAttributes (unsigned int value) DISTI_METHOD_OVERRIDE
virtual DisplayObjectCloneObject (bool generateNames=false) DISTI_METHOD_OVERRIDE
virtual void CopyProperties (DisplayObject *src) DISTI_METHOD_OVERRIDE
virtual InterfaceListTypeGetCppInterfaceDescription (InterfaceListType *addToThisList=NULL) DISTI_METHOD_OVERRIDE
virtual void GetCppInterfaceDescriptionFree (InterfaceListType *array) DISTI_METHOD_OVERRIDE
virtual void Draw () DISTI_METHOD_OVERRIDE
virtual bool Hit (float x, float y, float z, float scale, const Vector &directionVector, Vector *collisionPoint) DISTI_METHOD_OVERRIDE
virtual void SetValue (int spec, va_list &args) DISTI_METHOD_OVERRIDE
virtual DistiAttributeBaseResource (const char *name) DISTI_METHOD_OVERRIDE
virtual void GetResources (std::ostream &outstr, GlsResourceFilter *filter) DISTI_METHOD_OVERRIDE
PathObjectPairArrayTypePathObjectPairArray ()
const PathObjectPairArrayTypePathObjectPairArray () const
void AnimationPct (double pct)
void SetAnimationValue (float value)
void CurrentTimeValue (float value)
void RecalcMinMaxValue ()
float MinAnimationValue ()
float MinTimeValue ()
float MaxAnimationValue ()
float MaxTimeValue ()
- 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)
DistiAttribDictAttributes ()
const DistiAttribDictAttributes () 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 VectorBoundingVolumeCenter () 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)
CallbackMethodCallerBaseCallbackCaller () const
void CallbackCaller (CallbackMethodCallerBase *cb)
virtual void GetCenter (Vector &center)
virtual DisplayObjectCloneObject (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 InterfaceListTypeGetCppInterfaceDescription (InterfaceListType *addToThisList=NULL)
virtual void GetCppInterfaceDescriptionFree (InterfaceListType *array)
virtual void CullBackFace (const bool val)
virtual bool CullBackFace ()
bool Culled () const
void Culled (bool val)
bool CullTest (const GlsMatrixType *matrix, const Culler &culler)
GlsMatrixTypeDcsMatrix ()
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 GlsMatrixTypeDrawMatrix ()
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 DynamicTranslate (float amount, int axis, bool relative=false)
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 DisplayObjecthandle (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 VertexLocation () 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)
GlsMatrixTypeModelMatrix ()
bool NeedCalculate ()
VectorNormals ()
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)
DisplayFrameParent () const
virtual void ParentGroup (Group *group)
GroupParentGroup () const
virtual DisplayObjectPick3D (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)
GlsMatrixTypeProjMatrix ()
virtual void ReallocateVertices (unsigned int numVertices, bool initializeNew, bool copyOld)
virtual float RelativeAngle (const float x, const float y)
virtual DistiAttributeBaseResource (const char *name)
virtual void GetResources (std::ostream &outstr, GlsResourceFilter *filter=NULL)
void RestoreAlpha ()
void RestoreAntiAlias ()
void RestoreLighting ()
void RestoreLineStyle ()
const VertexRotationPoint () 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 ()
bool SetupAntiAlias ()
void SetupDepthTest ()
void SetupLighting ()
bool SetupLineStyle ()
void SetupPolyDrawStyle ()
void SetupShading ()
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,...)
VectorTextureCoordinates ()
VectorGetTextureCoordinates ()
virtual int TextureIndex ()
virtual void TextureIndex (int textureIndex)
virtual VectorGetTexturePoints ()
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 VertexVertices ()
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)
virtual bool GetPlaneVectorPoints (Vertex &p1, Vertex &p2, Vertex &p3, Vertex &planeVector)
void NotifyAttributeChanged (const AttributeName &name) override
virtual void SetPainter (GlsPainter *painter)
virtual GlsPainterGetPainter ()
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

Static Public Member Functions

static DisplayObjectCreateInstance ()
- Static Public Member Functions inherited from DisplayObject
static InterfaceListTypeStaticGetCppInterfaceDescription (InterfaceListType *addToThisList=NULL)
static void UseManualBlinkElapsedTime (bool useManualTime)
static void SetManualBlinkElapsedTime (double elapsedTime)

Protected Member Functions

void CalculateMinMaxValue ()
- 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)
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 VertexLastDrawMatrixLocation ()
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 SetValue (int spec, va_list &args)
int GetApplicableTextureIndex ()
int GetApplicableTextureRepeat ()
- Protected Member Functions inherited from WeakReferenceableMixin
 WeakReferenceableMixin ()
virtual ~WeakReferenceableMixin ()

Protected Attributes

PathObjectPairArrayType _pathObjectPairArray
 List of animation pairs to manage.
float _minValue
 The minimum animation key value.
float _maxValue
 The maximum animation key value.
bool _recalcValueBounds
 If true, _minValue and _maxValue will be recalculated.
- Protected Attributes inherited from DisplayObject
int _alphaMode
bool _antiAlias
bool _attributesAdded
bool _blinking
float _blinkRate
GlsColor _color
bool _cullBackFace
GlsMatrixType _dcsMatrix
unsigned char _depthTest
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.
unsigned int _nTex_vertices
unsigned int _nVertices
unsigned char _polygonEnd
unsigned char _polygonMode
unsigned char _shading
GlsColor _textureBlendColor
int _textureIndex
unsigned char _textureMagFilter
unsigned char _textureMinFilter
unsigned char _textureMap
Vector _texturePoints [4]
unsigned char _textureRepeat
void * _userData
int * _viewMatrix
bool _visible
- Protected Attributes inherited from WeakReferenceableMixin
DynamicArray< WeakReference * > * _weakRefs


class GlsPathManagerEditor

Detailed Description

Runtime implementation of a GlsPathManager

Constructor & Destructor Documentation

◆ GlsPathManager() [1/2]

GlsPathManager ( bool  generateInstanceName = false)


generateInstanceNameWhether or not to generate an instance name for this object.

◆ GlsPathManager() [2/2]

GlsPathManager ( const GlsPathManager that,
const bool  generateNames 

Copy constructor

thatThe object to copy from.
generateNamesWhether or not to generate an instance name for this object.

◆ ~GlsPathManager()

virtual ~GlsPathManager ( )

Destructs a GlsPathManager object

Member Function Documentation

◆ AnimationPct()

void AnimationPct ( double  pct)

Sets the animation value as a ratio of MinAnimationValue, MaxAnimationValue.

pctpercent of animation (0.0 -> 1.0).

◆ CalculateMinMaxValue()

void CalculateMinMaxValue ( )

Calculate the min and max value based on the animation pairs.

Not normally called by users.

◆ CloneObject()

virtual DisplayObject * CloneObject ( bool  generateNames = false)

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.

generateNamesWhether or not to generate new names for cloned objects
A new object, identical to the original, except for the instance name

Implements DisplayObject.

◆ CopyProperties()

virtual void CopyProperties ( DisplayObject src)

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

srcThe object to copy properties from

Reimplemented from DisplayObject.

◆ CreateInstance()

static DisplayObject * CreateInstance ( )
A pointer to a new GlsPathManager object.

◆ CurrentTimeValue()

void CurrentTimeValue ( float  value)

Backwards compatibility method.

See also
valueThe animation value to set.

◆ Draw()

virtual void Draw ( )

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

Implements DisplayObject.

◆ GetCppInterfaceDescription()

virtual InterfaceListType * GetCppInterfaceDescription ( InterfaceListType addToThisList = NULL)

Get the details of the Cpp Interface The actual interface is exposed in compiled code.

addToThisListIf not NULL this list will be added to then returned. If NULL a new list will be created.
A templated list.
The caller must call the corresponding free method to safely free the memory.

Reimplemented from DisplayObject.

◆ GetCppInterfaceDescriptionFree()

virtual void GetCppInterfaceDescriptionFree ( InterfaceListType array)

Frees the memory allocated by a previous call to GetCppInterfaceDescription

arrayMemory allocated by a previous call to GetCppInterfaceDescription

Reimplemented from DisplayObject.

◆ GetResources()

virtual void GetResources ( std::ostream &  outstr,
GlsResourceFilter filter 

Writes the resources (attributes) of this object to the specified stream. The output of this method can be controlled by the GlsResourceFilter. Note that if filter->NamesOnly() is false (the default), then only resources that can return a value will appear in the list.

See also
outstrThe stream to write to
filterThe filter to determine what to write

Reimplemented from DisplayObject.

◆ Hit()

virtual bool Hit ( float  x,
float  y,
float  z,
float  scale,
const Vector directionVector,
Vector collisionPoint 

Determines if the object is hit by a pick ray starting at (x,y,z) and pointing towards directionVector in object logical coordinate system. If Pickable() == PICK_BEST it will return the closest point that was hit, otherwise it returns the first point that was hit. This method should not pick points behind the viewer.

xX coordinate of pick ray start in logical coordinates.
yY coordinate of pick ray start in logical coordinates.
zZ coordinate of pick ray start in logical coordinates.
scaleThe scale factor of the window. Affects picking of outlines. Standard value is 1.0.
directionVectorThe direction of the pick ray.
collisionPointIf this method returns true, this Vector will contain the location that was hit in logical coordinates.
boolean indicating if the object was hit by the pick ray.

Reimplemented from DisplayObject.

◆ MaxAnimationValue()

float MaxAnimationValue ( )

Returns the stored maximum animation value from the PathObjectPairArray.

See also
The maximum animation value

◆ MaxTimeValue()

float MaxTimeValue ( )

Backwards compatibility method.

See also
The maximum animation value.

◆ MinAnimationValue()

float MinAnimationValue ( )

Returns the stored minimum animation value from the PathObjectPairArray.

See also
The minimum animation value

◆ MinTimeValue()

float MinTimeValue ( )

Backwards compatibility method.

See also
The minimum animation value.

◆ PathObjectPairArray() [1/2]

PathObjectPairArrayType & PathObjectPairArray ( )

Use this array to set which path goes with what object.

A modifiable reference to the PathObjectPairArray associated with this object.

◆ PathObjectPairArray() [2/2]

const PathObjectPairArrayType & PathObjectPairArray ( ) const
A const reference to the PathObjectPairArray associated with this object.

◆ RecalcMinMaxValue()

void RecalcMinMaxValue ( )

Causes the MinAnimationValue and MaxAnimationValue to be recalculated using the paths in the PathObjectPairArray.

◆ Resource()

virtual DistiAttributeBase & Resource ( const char *  name)

Gets a reference to the specified attribute for reading and writing. This reference can be streamed into and out of variables. For Example: someObject->Resource("Visible") >> someBool; someBool << someObject->Resource("Visible");

nameThe name of the attribute to be returned.
A reference to the attribute if it is present, or DistiEmptyAttribute if not.

Reimplemented from DisplayObject.

◆ SetAnimationValue()

void SetAnimationValue ( float  value)

Move all of the objects in the PathObjectPairArray to the given value on the associated path.

valueThe value used to position the object on the path (see GlsDynamicPath::MoveObject).

◆ SetAvailableAttributes()

virtual void SetAvailableAttributes ( unsigned int  value)

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

valueA bitfield specifying which types of attributes to make available.
See also

Reimplemented from DisplayObject.

◆ SetValue()

virtual void SetValue ( int  spec,
va_list &  args 

Sets an attribute of this object using variable arguments

specA GLS_Initializer tag
argsA variable argument list

Reimplemented from DisplayObject.

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