GL Studio C++ Runtime API
GlsMovingEye Class Reference

#include <gls_moving_eye.h>

Inheritance diagram for GlsMovingEye:
GlsEyePoint DisplayObject AttributeChangedNotifier WeakReferenceableMixin WeakReferenceable

Classes

struct  EyeState_t
 Type to store eyepoint state information. More...
 
struct  MoveParms_t
 Type to store eyepoint movement parameters. More...
 

Public Types

enum  Movement_t
 This specifies the type of route taken from one eyepoint to another.
 
enum  Route_t
 This specifies the type of route taken from one eyepoint to another.
 
- Public Types inherited from DisplayObject
enum  AvailableAttributesEnum
 

Public Member Functions

 GlsMovingEye ()
 
virtual ~GlsMovingEye ()
 
bool AtStartOfHistory () const
 
bool AtEndOfHistory () const
 
void AbortMove ()
 
virtual void SetAvailableAttributes (unsigned int value) DISTI_METHOD_OVERRIDE
 
virtual void Calculate (double time) DISTI_METHOD_OVERRIDE
 
virtual DisplayObjectCloneObject (bool generateNames=false) DISTI_METHOD_OVERRIDE
 
virtual void CopyProperties (DisplayObject *src) DISTI_METHOD_OVERRIDE
 
virtual void Draw () DISTI_METHOD_OVERRIDE
 
bool EmitEvent () const
 
void EmitEvent (bool emitEvent)
 
bool DisableMoveHistory () const
 
void DisableMoveHistory (bool his)
 
virtual void GenerateInstanceName () DISTI_METHOD_OVERRIDE
 
virtual InterfaceListTypeGetCppInterfaceDescription (InterfaceListType *addToThisList=0) DISTI_METHOD_OVERRIDE
 
virtual void GetCppInterfaceDescriptionFree (InterfaceListType *array) DISTI_METHOD_OVERRIDE
 
const std::string & LookAtObject () const
 
void LookAtObject (const std::string &name)
 
float MaxSpeed () const
 
void MaxSpeed (float speed)
 
Movement_t Movement () const
 
void Movement (Movement_t movementType)
 
void MoveBack ()
 
void MoveForward ()
 
void MoveToEye (GlsEyePoint *eye, float moveTime=2.0f)
 
void MoveToEye (Group *eyeGroup, float moveTime=2.0f)
 
void MoveToEyeAdd (GlsEyePoint *eye, float moveTime=2.0f)
 
void MoveToEyeAdd (Group *eyeGroup, float moveTime=2.0f)
 
void MoveToLocation (const Vector &location, float moveTime=2.0f)
 
void MoveRelative (const Vector &moveAmount, const Vector &rotation)
 
Route_t Route () const
 
void Route (Route_t routeType)
 
virtual void SetValue (int spec, va_list &args) DISTI_METHOD_OVERRIDE
 
- Public Member Functions inherited from GlsEyePoint
 GlsEyePoint ()
 
 GlsEyePoint (const GlsEyePoint &that, const bool generateNames)
 
virtual ~GlsEyePoint (void)
 
virtual void DrawFrustum (bool selected, bool orthographic, bool fovIsHorizontal, double orthoSize, double otherOrthoSize, double fov, double otherFov, FovConstraintType horizontalConstraint, FovConstraintType verticalConstraint, double farClip, double nearClip)
 
virtual void CopyGeometry (DisplayObject *src) override
 
virtual void Rotate (const Vector &orig, float angle, const Vector &axis) override
 
void FOV (double fovDeg)
 
void OtherFOV (double fovDeg)
 
void FovIsHorizontal (bool val)
 
void Orthographic (bool val)
 
void OrthoSize (double val)
 
void OtherOrthoSize (double val)
 
void NearClip (double val)
 
void FarClip (double val)
 
void HorizontalConstraint (FovConstraintType val)
 
void VerticalConstraint (FovConstraintType val)
 
void SetViewVectors (const Vector &x, const Vector &y, const Vector &z)
 
double FOV (void)
 
double OtherFOV (void)
 
bool FovIsHorizontal (void)
 
bool Orthographic (void)
 
double OrthoSize (void)
 
double OtherOrthoSize (void)
 
double NearClip (void)
 
double FarClip (void)
 
FovConstraintType HorizontalConstraint (void)
 
FovConstraintType VerticalConstraint (void)
 
void GetViewVectors (Vector &x, Vector &y, Vector &z)
 
void Orientation (const Vector &direction, float roll, const Vector &upVector=Vector(0, 1, 0))
 
Vector Direction (void)
 
float Roll (const Vector upVector=Vector(0, 1, 0))
 
virtual void CalcOrthographicView (int viewWidth, int viewHeight, GlsEyePoint *thisEye, double &fovY, double &aspect)
 
virtual void CalcPerspectiveView (int viewWidth, int viewHeight, GlsEyePoint *thisEye, double &fovY, double &aspect)
 
virtual void ApplyViewMatrices (void)
 
virtual void GetModelViewMatrix (GlsMatrixType &modelview, bool includeEyeToWorld=true)
 
virtual void GetProjectionMatrix (GlsMatrixType &proj, int viewW, int viewH)
 
- Public Member Functions inherited from DisplayObject
 DisplayObject (float x, float y, float z)
 
 DisplayObject (const DisplayObject &object, const bool generateNames)
 
virtual ~DisplayObject (void)
 
void Destroy ()
 
virtual void AlphaMode (int mode)
 
virtual int AlphaMode (void)
 
virtual bool AntiAlias (void)
 
virtual void AntiAlias (bool alias)
 
void ApplyTextureSettings (int textureIndex=-1)
 
DistiAttribDictAttributes ()
 
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)
 
bool BlinkedOff (void)
 
virtual bool Blinking (void)
 
virtual void Blinking (const bool blink)
 
virtual float BlinkRate (void)
 
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)
 
void CalculateCollisionPoint (const Vector &pickLoc, const Vector &directionVector, Vector *collisionPoint)
 
virtual void CalculateParentBoundingBox (void)
 
virtual void CalculateTextureCoordinates (void)
 
bool GetTexturePointTransformationMatrix (GlsMatrixType &world2tex)
 
CallbackMethodCallerBaseCallbackCaller () const
 
void CallbackCaller (CallbackMethodCallerBase *cb)
 
virtual void GetCenter (Vector &center)
 
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 CopyHierarchyProperties (DisplayObject *src, bool copyName)
 
virtual void CullBackFace (const bool val)
 
virtual bool CullBackFace (void)
 
bool Culled () const
 
bool CullTest (const GlsMatrixType *matrix, const Culler &culler)
 
GlsMatrixTypeDcsMatrix ()
 
void DcsMatrix (const GlsMatrixType &matrix)
 
virtual void DeleteVertexAt (unsigned int index)
 
virtual void DeleteVertex (unsigned int indexAfter) final
 
virtual int DepthTest (void)
 
virtual void DepthTest (unsigned char zbuf)
 
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 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)
 
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 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 (void)
 
void InstanceName (const char *name)
 
virtual bool LightingEnabled ()
 
virtual void LightingEnabled (bool lighting)
 
virtual int LineStippleMultiplier (void)
 
virtual void LineStippleMultiplier (int mult)
 
virtual int LineStipplePattern (void)
 
virtual void LineStipplePattern (int pattern)
 
virtual float LineWidth (void)
 
virtual void LineWidth (float width)
 
virtual const VertexLocation (void) 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 (void) const
 
float Y (void) const
 
float Z (void) 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 (void)
 
virtual float ObjectHeight (void)
 
virtual float ObjectWidth (void)
 
virtual void SetOrigin (const Vertex &vert)
 
virtual void Parent (DisplayFrame *par)
 
DisplayFrameParent (void) const
 
virtual void ParentGroup (Group *group)
 
GroupParentGroup (void) 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 (void)
 
virtual void PolygonEnd (const int end)
 
virtual int PolygonMode (void)
 
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)
 
void RestoreAntiAlias (void)
 
void RestoreLighting (void)
 
void RestoreLineStyle (void)
 
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)
 
void SaveMatrices ()
 
virtual void Scale (float px, float py, float pz, Vertex *anchor, int handleBar=0)
 
void Set (int spec,...)
 
bool SetupAlpha (void)
 
bool SetupAntiAlias (void)
 
void SetupDepthTest (void)
 
void SetupLighting (void)
 
bool SetupLineStyle (void)
 
void SetupPolyDrawStyle (void)
 
void SetupShading (void)
 
bool SetupTexture (void)
 
virtual int Shading (void)
 
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 (void)
 
VectorGetTextureCoordinates (void)
 
virtual int TextureIndex (void)
 
virtual void TextureIndex (int textureIndex)
 
virtual VectorGetTexturePoints (void)
 
virtual bool TextureRepeat (void)
 
virtual void TextureRepeat (const int rep)
 
virtual int TextureMappingTechnique (void)
 
virtual void TextureMappingTechnique (const int map)
 
virtual int TextureMagnificationFilter (void)
 
virtual void TextureMagnificationFilter (const int filter)
 
virtual int TextureMinificationFilter (void)
 
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)
 
void * UserData (void) 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 (void) const
 
bool Visibility (void) const
 
virtual void Visibility (const bool vis)
 
virtual Vector WorldRotationPoint (void)
 
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 ~AttributeChangedNotifier ()
 
- Public Member Functions inherited from WeakReferenceableMixin
void AddWeakReference (WeakReference *weakRef) override
 
void NotifyWeakReferenceDestroyed (WeakReference *ref) override
 

Static Public Member Functions

static DisplayObjectCreateInstance ()
 
- Static Public Member Functions inherited from GlsEyePoint
static void DrawDebugGeometry (bool draw)
 
- Static Public Member Functions inherited from DisplayObject
static void UseManualBlinkElapsedTime (bool useManualTime)
 
static void SetManualBlinkElapsedTime (double elapsedTime)
 

Protected Member Functions

Vector DirectionToObj (const std::string &qualifiedObjName) const
 
void ExtractEyepoints (Group *group, std::vector< GlsEyePoint * > &eyes)
 
void FinishMoving ()
 
void Initialize ()
 
float MoveTime (float distance, float desiredTime) const
 
float RouteDistance (std::vector< GlsEyePoint * > &eyes) const
 
void StartMoving (const MoveParms_t &moveParms)
 
- 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 AllocateModelMatrix ()
 
bool ApplyDynamicRotation (void)
 
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 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)
 
int GetApplicableTextureIndex ()
 
int GetApplicableTextureRepeat ()
 
- Protected Member Functions inherited from WeakReferenceableMixin
 WeakReferenceableMixin (void)
 
virtual ~WeakReferenceableMixin ()
 

Protected Attributes

bool _emitEvent
 Whether or not to emit an event when the move has completed.
 
bool _firstSegment
 
std::size_t _historyPos
 Current position into the history list.
 
bool _initialized
 Flag to keep track of when the object gets initialized.
 
std::string _lookAtObject
 
Vector _lookAtReferenceUpVector
 
Vector _lookAtCalculatedUpVector
 The last up vector calculated by the lookAt algorithm.
 
std::vector< MoveParms_t_moveHistory
 Stores a history of visited eyepoints for moving back and forth.
 
float _maxSpeed
 
Movement_t _movement
 Type of movement algorithm to use when moving to another eyepoint.
 
std::queue< MoveParms_t_moveQ
 
Route_t _route
 Type of route to take when moving to another eyepoint.
 
EyeState_t _start
 
double _simTime
 Latest known simulation time.
 
double _startTime
 Simulation time that a move starts.
 
Vector _upVector
 
float _bufferAngle
 
- Protected Attributes inherited from GlsEyePoint
double _fov
 
double _otherFov
 
bool _orthographic
 
double _orthoSize
 
double _otherOrthoSize
 
bool _fovIsHorizontal
 
FovConstraintType _horizontalConstraint
 
FovConstraintType _verticalConstraint
 
double _nearClip
 
double _farClip
 
Vector _viewVectors [3]
 
EyePointCalcViewCallbackBase_alternateCalcOrthographicView
 
EyePointCalcViewCallbackBase_alternateCalcPerspectiveView
 
- Protected Attributes inherited from DisplayObject
int _alphaMode
 
bool _antiAlias
 
bool _attributesAdded
 
bool _blinking
 
float _blinkRate
 
GlsColor _color
 
bool _cullBackFace
 
GlsMatrixType _dcsMatrix
 
unsigned char _depthTest
 
GlsMatrixType_drawMatrix
 
unsigned char _lineStippleMultiplier
 
unsigned short _lineStipplePattern
 
float _lineWidth
 
Vertex _location
 
GlsMatrixType_modelMatrix
 
Vector_normals
 
unsigned int _nTex_vertices
 
unsigned int _nVertices
 
unsigned char _polygonEnd
 
unsigned char _polygonMode
 
int _polygonOffset
 
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
 
- Protected Attributes inherited from WeakReferenceableMixin
DynamicArray< WeakReference * > * _weakRefs
 

Friends

class GlsMovingEyeEditor
 The editor class needs to access this class' privates. :)
 

Detailed Description

Runtime implementation of a GlsMovingEye

Constructor & Destructor Documentation

Create a new GlsMovingEye.

virtual ~GlsMovingEye ( )
virtual

GlsMovingEyeEditor destructor

Member Function Documentation

void AbortMove ( )

Aborts any move currently in progress.

bool AtEndOfHistory ( ) const
inline

Returns true if the we're at the end of the history of movements.

bool AtStartOfHistory ( ) const
inline

Returns true if the we're at the beginning of the history of movements.

virtual void Calculate ( double  time)
virtual

Provides a mechanism for performing regular calculations, seperate from drawing. In a standalone applicaton Calculate is recursively called by the main loop before the objects are drawn.

Parameters
timeThe elaspsed time in seconds since program start

Reimplemented from DisplayObject.

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
generateNamesWhether or not to generate new names for cloned objects
Returns
A new object, identical to the original, except for the instance name

Reimplemented from GlsEyePoint.

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
srcThe object to copy properties from

Reimplemented from GlsEyePoint.

static DisplayObject* CreateInstance ( )
static

Creates a new, blank GlsMovingEye object.

Returns
DisplayObject type pointer to the new GlsMovingEye.
Vector DirectionToObj ( const std::string &  qualifiedObjName) const
protected

Calculates the direction to the named object.

bool DisableMoveHistory ( ) const
inline

Returns whether or not an the move history is disabled.

void DisableMoveHistory ( bool  his)

Sets whether or not the move history is disabled.

virtual void Draw ( )
virtual

Draws does nothing because this object is not a visible object, unless DrawDebugGeometry() is true, then it draws the view frustum.

Reimplemented from GlsEyePoint.

bool EmitEvent ( ) const
inline

Returns whether or not an event is emitted upon completion of a commanded movement.

void EmitEvent ( bool  emitEvent)

Sets whether or not an event is emitted upon completion of a commanded movement.

void ExtractEyepoints ( Group group,
std::vector< GlsEyePoint * > &  eyes 
)
protected

Extracts all eyepoint objects from the group hierarchy. The group can contain other groups and object types.

void FinishMoving ( )
protected

Called when the destination eyepoint is reached to perform actions necessary to complete the movement.

virtual void GenerateInstanceName ( )
virtual

Dynamically generate a name for the object, based on the current time

Reimplemented from DisplayObject.

virtual InterfaceListType* GetCppInterfaceDescription ( InterfaceListType addToThisList = 0)
virtual

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

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

Reimplemented from GlsEyePoint.

virtual void GetCppInterfaceDescriptionFree ( InterfaceListType array)
virtual

Frees the memory allocated by a previous call to GetCppInterfaceDescription

Parameters
arrayMemory allocated by a previous call to GetCppInterfaceDescription

Reimplemented from GlsEyePoint.

void Initialize ( )
protected

Initializes the movement history with the initial state of the eyepoint.

const std::string& LookAtObject ( ) const
inline
Returns
The name of the object that the eyepoint should be always looking at. Lifetime is guaranteed to coincide with the GlsMovingEye's lifetime or until LookAtObject is changed.
void LookAtObject ( const std::string &  name)

Sets the name of the object that the eyepoint should be always looking at.

float MaxSpeed ( ) const
inline

Returns the maximum speed in logical units/second which will be used to achive the transition between eyepoints.

void MaxSpeed ( float  speed)

Sets the maximum speed in logical units/second which will be used to achive the transition between eyepoints.

void MoveBack ( )

Moves this eyepoint to the previously set eyepoint. If a move is already in progress, it will be immediately stopped, and this move will start.

void MoveForward ( )

Moves this eyepoint to the eyepoint which was last achieved from a MoveBack(). If a move is already in progress, it will be immediately stopped, and this move will start.

Movement_t Movement ( ) const
inline

Returns the type of movement algorithm to use when moving to another eyepoint.

void Movement ( Movement_t  movementType)

Sets the type of movement algorithm to use when moving to another eyepoint.

void MoveRelative ( const Vector moveAmount,
const Vector rotation 
)

Moves the eyepoint in view-relative coordinates by the specified amount, over the specified time. The units are in relative screen coordinates: X and Y are pixels, Z is 0->1. See WindowToLogical() or LogicalToWindow().

float MoveTime ( float  distance,
float  desiredTime 
) const
protected

Returns an adjusted move time based on the maximum speed setting. If the speed of moving over distance in desiredTime is greater than the maximum speed setting, the move time will be lengthened.

Parameters
distancedistance in logical units that will be moved.
desiredTimetime in which we wish to cover the specified distance.
void MoveToEye ( GlsEyePoint eye,
float  moveTime = 2.0f 
)

Causes this eye to move from its current state to the state specified by the targetEye. It will take moveTime to get there. If a move is already in progress, it will be immediately stopped, and this move will start.

void MoveToEye ( Group eyeGroup,
float  moveTime = 2.0f 
)

Causes the eye to move from its current state to each eyepoint in the specified group ending with the last eye in the group. If a move is already in progress, it will be immediately stopped, and this move will start.

void MoveToEyeAdd ( GlsEyePoint eye,
float  moveTime = 2.0f 
)

Causes the specified eye to be added to the end of the list of eyes which should be moved through.

void MoveToEyeAdd ( Group eyeGroup,
float  moveTime = 2.0f 
)

Causes the specified eyes to be added to the end of the list of eyes which should be moved through.

void MoveToLocation ( const Vector location,
float  moveTime = 2.0f 
)

Causes this eye to move to the specified location in the scene without modifying the view direction or any other eye specific information.

Route_t Route ( ) const
inline

Returns the type of route to use when moving to another eyepoint.

void Route ( Route_t  routeType)

Sets the type of route to use when moving to another eyepoint.

float RouteDistance ( std::vector< GlsEyePoint * > &  eyes) const
protected

Calculates the distance over the entire route if moving between all eyepoints in the list.

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
valueA bitfield specifying which types of attributes to make available.
See also
AvailableAttributesEnum

Reimplemented from GlsEyePoint.

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

Sets an attribute of this object using variable arguments

Parameters
specA GLS_Initializer tag
argsA variable argument list

Reimplemented from GlsEyePoint.

void StartMoving ( const MoveParms_t moveParms)
protected

Queues the move using the passed in movement parameters and sets up the start time and starting state of the move.

Member Data Documentation

float _bufferAngle
protected

This specifies a buffer area around _upVector and -_upVector which the moving eye will try to avoid. Setting this to non-zero avoids flipping problems when orientation passes through _upVector or -_upVector during moves.

bool _firstSegment
protected

This is true when a move is occurring and the route segment being moved along is the very first one in the queue. This is used during sinusoidal movement to smoothly speed up when starting.

std::string _lookAtObject
protected

Automatically adjust the view direction to point at the specified targetObject. This is inactivated when the string is blank. While this is active, the move methods will not control the view direction. They can still control the position and other eye information.

Vector _lookAtReferenceUpVector
protected

The last up vector provided by the user or the move code. Used by the 'look at' algorithm to orient the eyepoint

float _maxSpeed
protected

This specifies the maximum speed in logical units / second which will be used to achive the transition. If the requested transition cannot occur within the requested move time without exceeding the max speed, the move time will be longer than requested. In other words, this limit has priority over any requested moveTime. A MaxSpeed value of < 0.0 means the speed limit is disabled.

std::queue<MoveParms_t> _moveQ
protected

Contains movement parameters for each move that should be performed. The last one contains the final eyepoint to stop at.

EyeState_t _start
protected

Stores this eyepoint's current state at the start of a move and is used in calculating movement during each execution frame.

Vector _upVector
protected

This specifies the up direction and is used when interpolating movement to keep the view oriented 'correctly'.


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