GL Studio C++ Runtime API
DisplayObject Class Referenceabstract

#include <display.h>

Inheritance diagram for DisplayObject:
AttributeChangedNotifier WeakReferenceableMixin WeakReferenceable GLPolygon GLPolygonGlyph GlsCylinder GlsDynamicPath GlsEyePoint GlsGeometryResourceMesh GlsLightSource GlsLinearFloatController GlsNurbCurve GlsPathManager GlsSphere Group

Public Types

enum  AvailableAttributesEnum
 

Public Member Functions

 DisplayObject (float x, float y, float z)
 
 DisplayObject (const DisplayObject &object, const bool generateNames)
 
virtual ~DisplayObject (void)
 
void Destroy ()
 
virtual void SetAvailableAttributes (unsigned int value)
 
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)
 
virtual void Calculate (double time)
 
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 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 (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)
 
virtual void Draw (void)=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 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 void GenerateInstanceName (void)
 
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)
 
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)
 
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 void UseManualBlinkElapsedTime (bool useManualTime)
 
static void SetManualBlinkElapsedTime (double elapsedTime)
 

Protected Member Functions

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

Protected Attributes

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
 

Detailed Description

Base Class for all graphical objects. It is an abstract class. Each object drawn in the editor will have a corresponding object. All drawn objects are derived from this class.

Member Enumeration Documentation

Sets and retrieves the current setting used for determining what attributes get created for each object.

Constructor & Destructor Documentation

DisplayObject ( float  x,
float  y,
float  z 
)

The default constructor for display objects. Generally invoked by constructors of derived classes.

Parameters
xX coordinate of object location
yY coordinate of object location
zZ coordinate of object location
DisplayObject ( const DisplayObject object,
const bool  generateNames 
)

The copy constructor for display objects

Parameters
objectThe display object that is being copied
generateNamesWhether or not to generate a new instance name
virtual ~DisplayObject ( void  )
virtual

Virtual destructor for display object

Member Function Documentation

void AllocateModelMatrix ( )
protected

Allocate the model matrix, if needed

virtual void AlphaMode ( int  mode)
virtual

Set the alpha mode state for this object

Parameters
modewhich alpha mode to use when drawing
See also
AlphaMode_e

Reimplemented in Group, Gls3DCable, and GlsRSOWrapper.

virtual int AlphaMode ( void  )
virtual

Get the alpha mode for this object

Returns
Whether or not alpha testing or blending is enabled when drawing
See also
AlphaMode_e

Reimplemented in Group, Gls3DCable, and GlsRSOWrapper.

virtual bool AntiAlias ( void  )
virtual

Get the anti aliasing state this object

Returns
Whether or not this object will be drawn antialiased

Reimplemented in Group, Gls3DCable, and GlsRSOWrapper.

virtual void AntiAlias ( bool  alias)
virtual

Set the anti aliasing state for this object

Parameters
aliasWhether or not to perform anti aliasing

Reimplemented in Group, Gls3DCable, GlsAngularScale, and GlsRSOWrapper.

bool ApplyDynamicRotation ( void  )
protected

Applies dynamic rotation to object, saving the matrix stack so that dynamic picking can occur

Returns
True if a rotation was performed. False otherwise. If this method returns true, then the caller needs to do a glPopMatrix to restore the stack after drawing
void ApplyTextureSettings ( int  textureIndex = -1)

Second half of texture setup. Applies texture modes like modulate, decal, etc.

Parameters
textureIndexIndex of the texture to apply
DistiAttribDict& Attributes ( )
inline

Gets the full list of attributes for this object

Returns
A reference to the attribute dictionary in this object
bool BlinkedOff ( void  )

Determines if the object is blinked on or off

virtual bool Blinking ( void  )
virtual

Get the blinking state this object

Returns
Whether or not this object is blinking
virtual void Blinking ( const bool  blink)
virtual

Set the blinking state for this object

Parameters
blinkWhether or not to blink this object
virtual float BlinkRate ( void  )
virtual

Get the blinking rate this object

Returns
The rate at which this object is blinking
virtual void BlinkRate ( const float  rate)
virtual

Set the blinking rate for this object

Parameters
rateNumber of times per second to blink this object
const Vector& BoundingVolumeCenter ( ) const
inline

Get the current bounding volume center

Returns
The current bounding volume center
void BoundingVolumeCenter ( const Vector center)

Set the current bounding volume center

Parameters
centerThe new center
bool BoundingVolumeHit ( const Vector start,
const Vector direction 
)

Determines if the given ray hits this bounding volume

Parameters
startStarting point of the ray
directionDirection vector of the ray
Returns
True if this bounding volume hit by the ray
float BoundingVolumeRadius ( ) const
inline

Get the bounding sphere radius

Returns
The bounding sphere radius
void BoundingVolumeRadius ( float  radius)

Set the bounding sphere radius

Parameters
radiusThe bounding sphere radius
virtual void CalcDrawMatrix ( )
protectedvirtual

Creates and recalculates the _drawMatrix If _rotation, _dynamicScale, or _dynamicTranslate change you must call CalcDrawMatrix() If _dcsMatrix, _location, or _rotationPoint change you need to call CalcDrawMatrixIfExists() These are normally called automatically for you by the API Methods that affect those values. Sub-classes may override CalcDrawMatrix() to include additional transformations in the _drawMatrix.

Reimplemented in ComponentBase.

void CalcDrawMatrixIfExists ( )
inlineprotected

Recalculates the _drawMatrix if it exists. See CalcDrawMatrix() for more info.

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 in Group, Gls3DCable, GlsTextGrid, GlsRSOWrapper, GlsSchematicTeeInterconnect, GlsMovingEye, GlsTextBox, GlsNinePatch, GlsSchematicPolyLineInterconnect, GlsMovieTexture, GlsMutexGroup, and SplashDisplay.

void CalculateCollisionPoint ( const Vector pickLoc,
const Vector directionVector,
Vector collisionPoint 
)

Calculates where the pick vector hit this object

Parameters
pickLocStart of the pick vector
directionVectorDirection of the pick vector
collisionPointReturns the collision point
virtual void CalculateMatrices ( const OpenGLMatrices newMatrices)
protectedvirtual

Applies the _drawMatrix to the modelMatrix. If necessary derived classes can save other matrices.

Parameters
newMatricesA set of matrices passed down to this object from its parent.

Reimplemented in ComponentBase.

virtual void CalculateParentBoundingBox ( void  )
virtual

Calculates the bounding box of the parent group object.

virtual void CalculateTextureCoordinates ( void  )
virtual

Recalculates the texture coordinates for the object based on the TexturePoints.

Reimplemented in Group, Gls3DCable, GlsSphere, GlsCylinder, GlsNurbCurve, GlsSchematicTeeInterconnect, GlsSchematicPolyLineInterconnect, GlsEllipse, and GLPolygon.

CallbackMethodCallerBase* CallbackCaller ( ) const
inline
Returns
The current callback method for this object
void CallbackCaller ( CallbackMethodCallerBase cb)

Sets the callback method for this object. cb MUST be dynamically allocated since memory management will be passed to this display object. cb will be deleted when a new callback is registered via this method or when the display object is destructed.

Parameters
cbThe new callback method for this object
virtual DisplayObject* CloneObject ( bool  generateNames = false)
pure 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

Implemented in GlsTextGrid, Gls3DCable, GlsCTLTextBox, GlsCylinder, GlsSphere, Group, GlsAngularScale, GlsLinearScale, GlsRSOWrapper, GlsEyePoint, GlsMovingEye, GlsMimicGroup, GlsSchematicTeeInterconnect, GlsNurbCurve, GlsTextBox, ComponentBase, GLTriMesh, GlsKnob, GlsSwitch, GlsAdvancedMesh, GlsNinePatch, GlsSchematicPolyLineInterconnect, GlsPolyLine, GlsPushButton, GlsDynamicPath, GlsLinearFloatController, GlsMovieTexture, SplashDisplay, GlsMutexGroup, GlsVideoToTexture, GlsLightSource, GlsThumbWheel, GlsEllipse, GlsClippingGroup, GlsSerialMorphMesh, GLPolygon, GlsOdometer, GlsMultiView, GLPolygonGlyph, and GlsPathManager.

virtual void CopyGeometry ( DisplayObject src)
virtual

Copies the geometry information from one object to another. Used by the undo mechanism to allow user to undo a geometry change.

Parameters
srcThe object to copy geometry from

Reimplemented in GlsText, GlsTextGrid, GlsCTLTextBox, Group, GlsCylinder, GlsSphere, GlsAngularScale, GlsLinearScale, GlsEyePoint, GlsRSOWrapper, GlsTextBox, GlsNurbCurve, ComponentBase, GLTriMesh, GlsAdvancedMesh, GlsNinePatch, GlsPolyLine, GlsSchematicPolyLineInterconnect, GlsGeometryResourceMesh, GlsEllipse, and GlsSerialMorphMesh.

virtual void CopyHierarchyProperties ( DisplayObject src,
bool  copyName 
)
virtual

Copies the hierarchy information from one object to another

Parameters
srcThe object to copy from
copyNameWhether or not to copy the object name
virtual void CullBackFace ( const bool  val)
virtual

Sets if back faces should be removed

Parameters
valTrue if back faces should be removed

Reimplemented in Group, Gls3DCable, and GlsRSOWrapper.

virtual bool CullBackFace ( void  )
virtual

Returns if back faces should be removed

Returns
True if backfaces are removed

Reimplemented in Group, Gls3DCable, and GlsRSOWrapper.

bool Culled ( ) const
inline

Whether or not this object is currently culled

bool CullTest ( const GlsMatrixType matrix,
const Culler culler 
)
inline

This is the cull test normally performed within PreDraw()

Parameters
matrixtransformation from vertices to the frustrums coordinate system
cullerCuller to perform the test
GlsMatrixType& DcsMatrix ( )
inline

Gets the objects Dynamic Coordinate System (DCS) Matrix

Returns
A reference to the Dcs Matrix stored in the object
void DcsMatrix ( const GlsMatrixType matrix)

Sets the dcs matrix

Parameters
matrixthe dcs matrix
void DCSToLogical ( Vector  dcsPoint,
Vector logicalPoint,
const GlsMatrixType dcsMatrix = NULL 
)

Transform a point from the object's DCS coordinate system to the logical coordinate system.

Parameters
dcsPointThe original point in dcs coordinates
logicalPointThe returned point in the objects DCS coordinate system on the XY plane.
dcsMatrixAn alternate DCS matrix to convert from.
virtual void DeleteVertex ( unsigned int  indexAfter)
inlinefinalvirtual

Remove the Vertex at (indexAfter - 1).

Parameters
indexAfterOne past the index to delete. If it is beyond the number of vertices or is 0, the vertices will be unchanged.
Deprecated:
User code should use DeleteVertexAt() instead.
Note
This virtual function is kept for backwards compatibility only. It is marked 'final' (where supported). Subclasses should override DeleteVertexAt() instead.
virtual void DeleteVertexAt ( unsigned int  index)
virtual

Remove the Vertex at index.

Reimplemented in GlsPolyLine, GlsNurbCurve, GlsSchematicPolyLineInterconnect, and GLPolygon.

virtual int DepthTest ( void  )
virtual

Get the z buffering state for this object

Returns
Whether or not this object will be draw Z buffered

Reimplemented in Group, Gls3DCable, and GlsRSOWrapper.

virtual void DepthTest ( unsigned char  zbuf)
virtual

Set the z buffering state for this object

Parameters
zbufWhether or not to perform z buffering

Reimplemented in Group, and Gls3DCable.

void Destroy ( )

Call this to delete objects, as it handles special cases like cleanup of LiveComponents.

const GlsMatrixType* DrawMatrix ( )
inline
Returns
This object's _drawMatrix (it's contribution to the ModelMatrix) or NULL if the object does not have a _drawMatrix.
void DynamicRotate ( float  angle,
int  axis 
)

Sets the dynamic rotation to the specified value for the specified axis (in degrees)

Parameters
angleThe new dynamic rotation angle for the object
axisThe axis to change NOTE: Not virtual
void DynamicRotate ( const Vector v)

Sets the dynamic rotation to the specified value for all axes (in degrees)

Parameters
vVector containing the new dynamic rotation angles for each axis
void DynamicRotate ( float  angle[])

Sets the dynamic rotation to the specified value for all axes (in degrees)

Parameters
angleArray of three floats containing the new dynamic rotation angles for each axis
virtual void DynamicRotate ( float  x,
float  y,
float  z 
)
virtual

Sets the dynamic rotation to the specified value for all axes (in degrees)

Parameters
xThe new dynamic rotation angle for the X axis
yThe new dynamic rotation angle for the Y axis
zThe new dynamic rotation angle for the Z axis NOTE: Is virtual. If needed overload this method.
virtual void DynamicRotateRelative ( float  angle,
int  axis 
)
virtual

Changes the dynamic rotation by the specified value for the specified axis (in degrees)

Parameters
angleThe change in dynamic rotation angle for the object
axisThe axis to change
virtual float DynamicRotation ( int  axis)
virtual

Gets the dynamic rotation to the specified value for the specified axis.

Parameters
axisThe axis to get the rotation from
Returns
The dynamic rotation angle for the axis (in degrees)
virtual Vector DynamicScale ( )
virtual

Returns the dynamic scale values in a Vertex

Returns
The dynamic scale values NOTE: Not virtual
virtual void DynamicScale ( float  x,
float  y,
float  z 
)
virtual

Sets the dynamic scale values for an object.

Parameters
xX scale
yY scale
zZ scale
void DynamicScale ( const Vector scale)

Sets the dynamic scale values for an object.

Parameters
scaleThe new dynamic scale for the object
virtual void DynamicTranslate ( float  x,
float  y,
float  z,
bool  relative = false 
)
virtual

Sets the dynamic translation to the specified value for all axes (in logical units)

Note
Make sure to pass float values for x,y,z here, or the compiler may choose an unexpected method signature.
See also
DynamicTranslate(float, int, bool)
Parameters
xThe new dynamic translation for the X axis
yThe new dynamic translation for the Y axis
zThe new dynamic translation for the Z axis
relativeIf true will add to existing dynamic translation
void DynamicTranslate ( const Vertex amount,
bool  relative 
)

Sets the dynamic translation to the specified value for all axes (in logical units)

Parameters
amountThe new dynamic translation for the X, Y, and Z axes
relativeIf true will add to existing dynamic translation NOTE: Not virtual
void DynamicTranslate ( const Vector amount)

Sets the dynamic translation to the specified value for all axes (in logical units). Equivalent to DynamicTranslate( amount, false );

Parameters
amountThe new dynamic translation for the X, Y, and Z axes NOTE: Not virtual
virtual void DynamicTranslate ( float  amount,
int  axis,
bool  relative = false 
)
virtual

Sets the dynamic translation to the specified value for the specified axis

Parameters
amountThe new dynamic translation for the axis
axisZ_AXIS, Y_AXIS, or X_AXIS
relativeIf true will add to existing dynamic translation
virtual float DynamicTranslation ( int  axis)
virtual

Returns the current dynamic translation for the specified axis

Parameters
axisZ_AXIS, Y_AXIS, or X_AXIS
Returns
the translation
virtual Vector DynamicTranslation ( )
virtual

Returns the current dynamic translation for all axes

Returns
the translation
DisplayObjectEditor* Editor ( )

Used in the editor to access editor functionality. Gets the editor object pointer. USER CODE SHOULD NOT USE THIS METHOD!

Returns
Pointer to editor object.
const DisplayObjectEditor* Editor ( ) const

Used in the editor to access editor functionality. Gets the editor object pointer. USER CODE SHOULD NOT USE THIS METHOD!

Returns
Pointer to editor object.
void Editor ( DisplayObjectEditor *  editor)

Used in the editor to access editor functionality. Sets the editor object pointer. USER CODE SHOULD NOT USE THIS METHOD!

Parameters
editorPointer to editor object.
virtual void FinishObject ( )
inlinevirtual

Allows the object the opportunity to configure itself after having all its children initialized and properties set by the code generator. By default, users do not need to call this function, it is called by the generated code in CreateObjects() if the object is a user defined class. User defined classes can override this, calling BaseClass::FinishObject(), before supplying class specific initialization code as needed. User code should only conisder itself and its children as the hierarchy above will not have been set up yet. User code should not call FinishObject on its children, since it will have already been called when those children were created. This method will be called by generated code once this object and its children have been fully instantiated.

virtual void GenerateInstanceName ( void  )
virtual

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

Reimplemented in GlsMovingEye.

int GetApplicableTextureIndex ( )
protected

Returns the local setting for _textureIndex if not -1, otherwise returns the group texture index.

int GetApplicableTextureRepeat ( )
protected

Returns the local setting for _textureRepeat if _textureIndex is not -1, otherwise returns the group texture repeat setting.

void GetBlendColor ( unsigned char  color[])

Gets the texture blend color for the object

Parameters
colorFilled in with RGBA (0-255 range) NOTE: Not Virtual. Simply calls void GetBlendColor(const GlsColor& color);
void GetBlendColor ( unsigned char &  r,
unsigned char &  g,
unsigned char &  b,
unsigned char &  a 
)

Gets the texture blend color for the object

Parameters
rReturns red color component (0-255 range)
gReturns Green color component (0-255 range)
bReturns Blue color component (0-255 range)
aReturns Alpha color component (0-255 range) NOTE: Not Virtual. Simply calls void GetBlendColor(const GlsColor& color);
virtual GlsColor GetBlendColor ( )
virtual

Gets the texture blend color for the object

Returns
Returns the current texture blend color.

Reimplemented in Group, Gls3DCable, and GlsRSOWrapper.

virtual void GetCenter ( Vector center)
virtual

Gets the location of the center of the object in logical units. Value is based on the extents of the object and does not take into consideration dynamic rotation

Parameters
centerWill contain the center coordinate on return
virtual GlsColor GetColor ( )
virtual

Gets the color for the object outline

Returns
The outline color

Reimplemented in Group, Gls3DCable, and GlsRSOWrapper.

void GetColor ( unsigned char  c4[])

Gets the RGBA color for the object outline

Parameters
c4Gets the RGBA line color (0-255 range) for the object NOTE: Not Virtual. Simply calls void GetColor(const GlsColor& color)
void GetColor ( unsigned char &  r,
unsigned char &  g,
unsigned char &  b,
unsigned char &  a 
)

Gets the RGBA color for the object outline

Parameters
rGets the red component (0-255 range) of the line color for the object
gGets the blue component (0-255 range) of the line color for the object
bGets the green component (0-255 range) of the line color for the object
aGets the alpha component (0-255 range) of the line color for the object NOTE: Not Virtual. Simply calls void GetColor(const GlsColor& color)
virtual InterfaceListType* GetCppInterfaceDescription ( InterfaceListType addToThisList = NULL)
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 in GlsText, GlsTextGrid, GlsCylinder, GlsSphere, GlsCTLTextBox, Gls3DCable, GlsLightSource, GLTriMesh, GlsAngularScale, GlsLinearScale, GlsMovingEye, GlsEyePoint, GlsRSOWrapper, GlsMimicGroup, GlsPushButton, GlsTextBox, ComponentBase, GlsSchematicTeeInterconnect, GlsNurbCurve, GlsKnob, GlsSwitch, GlsAdvancedMesh, GlsNinePatch, GlsPolyLine, GlsSchematicPolyLineInterconnect, SplashDisplay, GlsDynamicPath, GlsLinearFloatController, GlsGeometryResourceMesh, GlsMovieTexture, GlsMutexGroup, GlsVideoToTexture, GlsThumbWheel, GlsEllipse, GlsClippingGroup, GlsSerialMorphMesh, GlsOdometer, GlsMultiView, Group, and GlsPathManager.

virtual void GetExtents ( float &  x,
float &  y,
float &  z,
float &  x1,
float &  y1,
float &  z1 
)
virtual

Figure out the static extents for the object. Used by the editor as part of the pick operation and for figuring out the size of groups.

Parameters
xGets the minimum x extent
yGets the minimum y extent
zGets the minimum z extent
x1Gets the maximum x extent
y1Gets the maximum y extent
z1Gets the maximum z extent

Reimplemented in Group, GlsAngularScale, GlsSphere, GlsCylinder, ComponentBase, GlsRSOWrapper, GlsNurbCurve, GlsSchematicPolyLineInterconnect, GlsGeometryResourceMesh, GlsEllipse, GlsPolyLine, and GlsNinePatch.

void GetExtentsDCS ( Vector min,
Vector max 
)

Determines the static extents of geometry projected to the XY plane of the object's DCS.

Parameters
minReturns the minimum values found in the traversal
maxReturns the maximum values found in the traversal
void GetFillColor ( unsigned char &  r,
unsigned char &  g,
unsigned char &  b,
unsigned char &  a 
)

Gets the RGBA color for filling the object

Parameters
rGets the red component (0-255 range) of the fill color for the object
gGets the blue component (0-255 range) of the fill color for the object
bGets the green component (0-255 range) of the fill color for the object
aGets the alpha component (0-255 range) of the fill color for the object NOTE: NOT Virtual Simply calls GlsColor GetFillColor()
void GetFillColor ( unsigned char  c4[])

Gets the RGBA color for filling the object

Parameters
c4Gets the RGBA fill color (0-255 range) for the object NOTE: NOT Virtual. Simply calls GlsColor GetFillColor()
virtual GlsColor GetFillColor ( void  )
virtual

Gets the fill color of the object

Returns
The fill color

Reimplemented in Group, Gls3DCable, GlsCylinder, GlsSphere, GlsEllipse, and GlsNinePatch.

virtual void GetLocation ( Vertex v)
virtual

Gets the location of the origin of the object

Parameters
vWill be filled in with the current location
virtual void GetLocation ( float &  x,
float &  y,
float &  z 
)
virtual

Gets the location of the origin of the object

Parameters
xWill be filled in with the x coordinate
yWill be filled in with the y coordinate
zWill be filled in with the z coordinate
virtual GlsPainter* GetPainter ( )
virtual

Returns the painter for this object, or NULL of none. The return value is an observer pointer and should not be deleted

virtual bool GetPlaneVectorPoints ( Vertex p1,
Vertex p2,
Vertex p3,
Vertex planeVector 
)
virtual

Finds three coplanar points and the surface normal, if possible. This calculation is performed using the Vertices() of this object. Used in the editor to determine how to map a texture onto an object.

Parameters
p1Returns a point on the plane
p2Returns a point on the plane
p3Returns a point on the plane
planeVectorReturns the surface normal of the plane
Returns
True if 3 coplanar points were found

Reimplemented in GlsSphere, and GlsCylinder.

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

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
GlsResourceFilter
DistiAttributeProperty
Parameters
outstrThe stream to write to
filterThe filter to determine what to write

Reimplemented in Group, ComponentBase, Gls3DCable, GlsRSOWrapper, GlsDynamicPath, GlsMultiView, and GlsPathManager.

virtual void GetRotationPoint ( Vertex v)
virtual

Gets the location of the rotation point for the object.

Parameters
vWill be filled in with the current rotation point
Vector* GetTextureCoordinates ( void  )
inline

Gets the object's texture coordinates

Returns
Pointer to the object's texture coordinate array. NULL if the object is not textured.
See also
TextureCoordinates()
GetTexturePoints()
virtual Vector* GetTexturePoints ( void  )
virtual

Gets the object's texture points

Returns
Pointer to the object's texture point array.
Note
For most DisplayObjects, the Texture Points are used to compute the texture coordinates. The TexturePoints are four vertices that describe where the "corners" of the texture is in Vertex Coordinates (i.e., the object's parent's logical coordinate space translated to the object location). The DisplayObject then uses a projection to compute the texture coordinates from these points. The most common is a Planar mapping, but a few objects use other mappings (e.g. Spherical or Cylindrical).
See also
TextureCoordinates()
GetTextureCoordinates()
bool GetTexturePointTransformationMatrix ( GlsMatrixType world2tex)

Converts the object's texture points into a transformation matrix for use in calculating the object's texture coordinates

virtual void GetTransformedExtents ( Vector min,
Vector max,
const GlsMatrixType matrix,
bool  resetMinMax = true 
)
virtual

Determines the static extents of the geometry projected to the XY plane of an arbirary coordinate system.

Parameters
minReturns the minimum values found in the traversal
maxReturns the maximum values found in the traversal
matrixTransformation matrix from logical coordinates to the coordinate system to determine the extents in.
resetMinMaxNormally not specified by user. Should be true for the initial call.

Reimplemented in Group, GlsAngularScale, ComponentBase, GlsRSOWrapper, GlsEllipse, GlsGeometryResourceMesh, and GlsNinePatch.

virtual DisplayObject* handle ( DisplayEvent ev)
virtual

Handles an event that is sent to the object.

Parameters
evThe event to send to the object
Returns
Which object handled the event

Reimplemented in GlsMimicGroup, Gls3DCable, GlsAngularScale, GlsRSOWrapper, GlsPushButton, GlsSchematicTeeInterconnect, GlsKnob, GlsSwitch, GlsEllipse, GlsSchematicPolyLineInterconnect, GlsDynamicPath, GlsLinearFloatController, GlsThumbWheel, GlsMultiView, and GlsOdometer.

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

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.

Parameters
xX coordinate of pick ray start in logical coordinates.
yY 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.
Returns
boolean indicating if the object was hit by the pick ray.

Reimplemented in Gls3DCable, Group, GlsAngularScale, GlsLightSource, GlsLinearScale, GLTriMesh, GlsSphere, GlsCylinder, GlsNurbCurve, GlsSchematicTeeInterconnect, GlsPolyLine, GlsSchematicPolyLineInterconnect, GlsGeometryResourceMesh, GlsDynamicPath, GlsLinearFloatController, GlsEllipse, GlsNinePatch, and GlsPathManager.

virtual bool HitUtil ( float  x,
float  y,
float  z,
float  scale,
Vertex vertices,
unsigned int  vertex_cnt,
const Vector directionVector,
Vector collisionPoint 
)
virtual

Determines if the object is hit by a pick ray starting at (x,y,z) and pointing towards directionVector in the 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.

Parameters
xX coordinate of pick ray start in logical coordinates.
yY 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.
verticesAn array of vertices describing the Object.
vertex_cntSize of the vertices array.
directionVectorThe direction of the pick vector.
collisionPointIf this method returns true, this Vector will contain the location that was hit in logical coordinates.
Returns
True if click is inside, false otherwise.

Comment: The hit determination algorithm is based on the principle that a point is inside a polygon if a line drawn through the point intersects an even number of edges.

virtual void InsertVertex ( unsigned int  indexAfter)
inlinefinalvirtual

Insert a new vertex into the vertex array, duplicating the vertex at (indexAfter - 1).

Parameters
indexAfterOne past the index to insert. The vertex before this (or the last vertex, if more than the number of vertices) will be duplicated. If 0, the 0th vertex will be duplicated.
Deprecated:
New code should use InsertVertexAt().
Note
This virtual function is kept for backwards compatibility only. It is marked 'final' (where supported). Subclasses should override InsertVertexAt() instead.
virtual void InsertVertexAt ( unsigned int  index)
virtual

Insert a vertex at index. Duplicate the vertex pointed to by index, so that there are two vertices that are exactly the same. If index is greater than the number of vertices, then the last vertex is duplicated.

Reimplemented in GlsSchematicPolyLineInterconnect.

bool InsideVertexExtents ( float  x,
float  y,
unsigned int  nVerts,
Vertex verts,
float  tolerance 
)
protected

Returns true if the point is inside the 2D extents of the given vertices

Parameters
xX coordinate of pick point
yY coordinate of pick point
nVertsNumber of vertices to try
vertsVertex array to try
tolerancePicking tolerance
char* InstanceName ( void  )

Gets the name for the object.

Returns
The name of the object
void InstanceName ( const char *  name)

Sets the name for the object. This name corresponds to the name that is generated in the source code.

Parameters
nameThe new name for the object
void InvalidatePainter ( )

Invalidates the painter set on this object if that painter exists. Typically called by user code when it modifies an object in such a way where the painter invalidation system wouldn't work automatically (for example, directly modifying vertex data).

virtual bool IsVisibleInScene ( const DisplayObject obj = NULL) const
virtual

Traverses upward in the hierarchy to determine if this object is visible in the scene. Overloaded for classes that handle child visibility without using the Visibility flag such as GlsMutexGroup.

Reimplemented in GlsPushButton, GlsSwitch, and GlsMutexGroup.

virtual bool LightingEnabled ( )
virtual

Gets the lighting state

Reimplemented in Group, Gls3DCable, and GlsRSOWrapper.

virtual void LightingEnabled ( bool  lighting)
virtual

Sets the lighting state

Reimplemented in Group, Gls3DCable, and GlsRSOWrapper.

virtual int LineStippleMultiplier ( void  )
virtual

Get the line stipple multiplier for this object

Returns
The line stipple multiplier for this object

Reimplemented in Group, Gls3DCable, and GlsRSOWrapper.

virtual void LineStippleMultiplier ( int  mult)
virtual

Set the line stipple multiplier for this object

Parameters
multThe new line stipple pattern

Reimplemented in Group, Gls3DCable, and GlsRSOWrapper.

virtual int LineStipplePattern ( void  )
virtual

Get the line stipple pattern for this object

Returns
The line stipple pattern for this object

Reimplemented in Group, Gls3DCable, and GlsRSOWrapper.

virtual void LineStipplePattern ( int  pattern)
virtual

Set the line stipple pattern for this object

Parameters
patternThe new line stipple pattern

Reimplemented in Group, Gls3DCable, and GlsRSOWrapper.

virtual float LineWidth ( void  )
virtual

Gets the width of lines in the object.

Returns
The line width of the object in logical units

Reimplemented in Group, Gls3DCable, and GlsRSOWrapper.

virtual void LineWidth ( float  width)
virtual

Sets the width of lines in the object.

Parameters
widthThe new line width of the object in logical units

Reimplemented in Group, Gls3DCable, and GlsRSOWrapper.

virtual const Vertex& Location ( void  ) const
virtual
Returns
The location of the origin of the object Lifetime is guaranteed to coincide with the DisplayObject's lifetime.

Reimplemented in ComponentBase.

virtual void Location ( const Vertex v)
virtual

Sets the location of the origin of the object

Parameters
vThe new location

Reimplemented in Group, and ComponentBase.

virtual void Location ( float  x,
float  y,
float  z 
)
virtual

Sets the location of the origin of the object

Parameters
xX Coordinate of the new location
yY Coordinate of the new location
zZ Coordinate of the new location

Reimplemented in Group, and ComponentBase.

void LogicalToDCS ( Vector  logicalPoint,
Vector objectLocal,
const Vector directionVector,
const Vector planeNormal = Vector(0, 0, 1),
const Vector planePoint = Vector(),
const GlsMatrixType dcsMatrix = NULL 
)

PROJECT a point from logical coordinates to the object's DCS's XY plane

Parameters
logicalPointThe original point in logical coordinates
objectLocalThe returned point in the objects DCS coordinate system on the XY plane.
directionVectorThe direction vector to use when projecting the point. If NULL, the point will be converted but not projected.
planeNormal
planePoint
dcsMatrixAn alternate DCS matrix to convert to.
bool LogicalToWindow ( const Vector logical,
Vector winLoc,
const OpenGLMatrices alternateMatrices = OpenGLMatrices() 
)

Convert a point from logical coordinates to window coordinates

Parameters
logicalThe point in logical coordinates
winLocThe returned value in window coordinates. Z Ranges from 0.0 to 1.0. 0.0 is near clip, 1.0 is far clip.
alternateMatricesWhen supplied it is used instead of self determined matrices.
virtual int MaterialIndex ( )
virtual

Gets material index. Returns -1 if multiple are applied.

Reimplemented in GlsGeometryResourceMesh, GlsRSOWrapper, and GLTriMesh.

virtual void MaterialIndex ( int  index)
virtual

Sets the material index.

virtual DynamicArray<int>& MaterialIndices ( )
virtual

Gets a vector of material indices.

Reimplemented in GlsGeometryResourceMesh, and GLTriMesh.

virtual void MaterialIndices ( DynamicArray< int >  indices)
virtual

Sets the vector of material indices.

Reimplemented in GlsGeometryResourceMesh, and GLTriMesh.

GlsMatrixType* ModelMatrix ( )
Returns
The saved Model matrix, if any. Normally not used by the user.
bool NeedCalcDrawMatrix ( )
inline
Returns
True if the draw matrix needs to be calculated
bool NeedCalculate ( )
inline
Returns
true if Calculate() needs to be called on this object
void NeedCalculate ( bool  val)
inlineprotected

Set the value of _needCalculate

Vector* Normals ( )
inline

Gets the object's normals.

Returns
Pointer to the object's normal vertex array
void NotifyAttributeChanged ( const AttributeName name)
overridevirtual

Implements AttributeChangedNotifier::NotifyAttributeChanged. Notify the class that the attribute has changed. Observers of the attribute will have their callbacks called

Parameters
namethe name of the attribute

Implements AttributeChangedNotifier.

unsigned int NumberOfVertices ( ) const
inline

Gets the object's number of vertices.

Returns
The integer number of vertices in the object
virtual float ObjectDepth ( void  )
virtual

Get the depth (in the Z Dimension) of the object in logical units. Value is based on the extents of the object and does not take into consideration dynamic rotation

Returns
The depth in logical units (based on extents in the Z Dimension)
virtual float ObjectHeight ( void  )
virtual

Get the height (in the Y Dimension) of the object in logical units. Value is based on the extents of the object and does not take into consideration dynamic rotation

Returns
The height in logical units (based on extents in the Y Dimension)
virtual float ObjectWidth ( void  )
virtual

Get the width (in the X Dimension) of the object in logical units. Value is based on the extents of the object and does not take into consideration dynamic rotation

Returns
The width in logical units (based on extents in the X Dimension)
virtual void Parent ( DisplayFrame par)
virtual

Sets the parent display frame pointer for this object to the indicated display frame

Parameters
parThe new display frame to be the parent object

Reimplemented in Group, and ComponentBase.

DisplayFrame* Parent ( void  ) const
inline

Gets the parent display frame pointer for this object

Returns
The parent display frame of this object
virtual void ParentGroup ( Group group)
virtual

Sets the parentGroup pointer for this object

Parameters
groupThe group to which this object belongs

Reimplemented in GlsSchematicTeeInterconnect.

Group* ParentGroup ( void  ) const
inline

Gets the parentGroup pointer for this object

Returns
The group to which this object belongs
virtual DisplayObject* Pick3D ( const Vector winLoc,
const Vector logicalCoords,
float  scale,
const Vector directionVector,
Vector collisionWinLoc,
const OpenGLMatrices drawnMatrices 
)
virtual

Attempts to pick an object in 3D and accounting for dynamic rotations and translations of this object or parent objects. It also looks at the pickable status and attempts to return the "Best" pick if that is what is desired.

Note: This method will pick objects in the scene based on a pick ray starting at winLoc and pointing into the screen. It will not pick objects behind the depth specified by winLoc.z. Typically winLoc.z should be set to 0 to ensure that the pick ray starts at near clip plane.

Parameters
winLocDevice coordinates for the mouse click. Z value should be set to 0 to ensure pick ray starts at near clip plane.
logicalCoordsThe start of the pick ray in logical coordinates. Should be calculated from the winLoc using this->WindowToLogical(winLoc, logicalCoords, &directionVector).
scaleCurrent window scale. Affects picking radius of outlines. Initial value should typically be 1.0.
directionVectorThe direction of the pick ray in logical coordinates. Should be calculated from the winLoc using this->WindowToLogical(winLoc, logicalCoords, &directionVector).
collisionWinLocReturns where the pick vector intersects the object that is hit in device coordinates.
drawnMatricesThe matrices used to draw the object, including matrices set by parents that may have dynamically rotated, translated or scaled this object. Initial value should typically be a default OpenGLMatrices() object.
Returns
The object that was hit, or NULL if no object hit

Reimplemented in Gls3DCable, ComponentBase, Group, GlsRSOWrapper, GlsThumbWheel, GlsPushButton, GLPolygon, GlsGeometryResourceMesh, GlsMutexGroup, GlsClippingGroup, and GlsMultiView.

unsigned char Pickable ( )
inline

Get the pickable state for this object

Returns
The pick mode
See also
PickableType_e
virtual void Pickable ( unsigned char  pick)
virtual

Set the pickable state for this object

Parameters
pickThe pick mode
See also
PickableType_e
void PickCleanup ( Vertex vertices,
unsigned int  vertex_cnt 
)
protected

Restores the temporarily rotated vertices

Parameters
verticesVertex array to restore
vertex_cntNumber of vertices to restore
void PickSetup ( float  x,
float  y,
float  z,
Vertex vertices,
unsigned int  vertex_cnt,
const Vector directionVector 
)
protected

Sets up the object for picking by dynamically rotating vertices

Parameters
xX coordinate of pick point
yY coordinate of pick point
zZ coordinate of pick point
verticesVertex array to setup
vertex_cntNumber of vertices to setup
directionVectordynamic rotation vector
virtual int PolygonEnd ( void  )
virtual

Gets the polygon end mode (Open or Closed) for the polygon

Returns
Enumeration indicating open or closed mode
See also
PolygonClose_e

Reimplemented in Group, Gls3DCable, and GlsRSOWrapper.

virtual void PolygonEnd ( const int  end)
virtual

Sets the polygon end mode (Open or Closed) for the polygon

Parameters
endEnumeration indicating open or closed mode
See also
PolygonClose_e

Reimplemented in Group, Gls3DCable, GlsPolyLine, and GlsRSOWrapper.

virtual int PolygonMode ( void  )
virtual

Gets the polygon drawing mode for this object

Returns
The polygon drawing mode for this object
See also
PolygonMode_e

Reimplemented in Group, Gls3DCable, GlsRSOWrapper, and GlsNinePatch.

virtual void PolygonMode ( int  mode)
virtual

Sets the polygon drawing mode for this object

Parameters
modeThe new polygon drawing mode for this object
See also
PolygonMode_e

Reimplemented in Group, Gls3DCable, GlsNinePatch, and GlsRSOWrapper.

virtual void PreDraw ( const OpenGLMatrices current,
Culler culler 
)
virtual

Traverses the hierarchy calculating the _modelMatrix, _projMatrix, _viewMatrix as needed.

Parameters
currentCurrent matrices inherited from parent
cullerObject that possibly marks this object for culling

Reimplemented in ComponentBase, Gls3DCable, GlsCTLTextBox, Group, GlsAngularScale, GlsLinearScale, GlsRSOWrapper, GlsSchematicTeeInterconnect, GlsNurbCurve, GlsAdvancedMesh, GlsKnob, GlsSwitch, GlsPolyLine, GlsSchematicPolyLineInterconnect, GlsLightSource, GlsDynamicPath, GlsLinearFloatController, GlsMutexGroup, GlsGeometryResourceMesh, GlsMovieTexture, GlsLodGroup, GlsVideoToTexture, GlsThumbWheel, GlsPushButton, GlsEllipse, GlsSerialMorphMesh, GlsOdometer, Statistics, and GlsMultiView.

GlsMatrixType* ProjMatrix ( )
Returns
The saved Projection matrix, if any. Normally not used by the user.
virtual void ReallocateVertices ( unsigned int  numVertices,
bool  initializeNew,
bool  copyOld 
)
virtual

Reallocates the vertex and texture coordinate and normal arrays. Existing vertices are copied . If the new size is less than the old size, the first numVertices vertices are copied. If the new size is larger, all vertices are copied and the new vertices are initialized to zero.

Parameters
numVerticesThe new number of vertices for the object
initializeNewWhether or not to initialize the new vertices
copyOldWhether or not to copy the old data
virtual float RelativeAngle ( const float  x,
const float  y 
)
virtual

Return the relative angle of an line constructed from the given point to the _location of the object, (in the xy plane)

Parameters
xX coordinate of endpoint
yY coordinate of endpoint
Returns
Relative angle in degrees
virtual DistiAttributeBase& Resource ( const char *  name)
virtual

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");

Reimplemented in ComponentBase, Gls3DCable, GlsRSOWrapper, GlsDynamicPath, GlsMultiView, and GlsPathManager.

void RestoreAlpha ( void  )

Restores the alpha test/blend settings if they were changed from default

See also
SetupAlpha
void RestoreAntiAlias ( void  )

Restores the antialias settings if they were changed from default

See also
SetupAntiAlias
void RestoreLighting ( void  )

Restores the lighting state

See also
SetupLighting
void RestoreLineStyle ( void  )

Sets the line style settings to their defaults

See also
SetupLineStyle
virtual void Rotate ( float  angle,
int  axis = Z_AXIS 
)
virtual

Rotates the object (around the specified axis) by the angle indicated, at the object's rotation point. Recalculates the vertex data.

Parameters
angleThe angle to rotate by, in degrees
axisThe axis to rotate the object around.
virtual void Rotate ( const Vector origin,
float  angle,
int  axis = Z_AXIS 
)
virtual

Rotates the object (around the specified axis) by the angle indicated, at the point specified. Recalculates the vertex data.

Parameters
originThe point to rotate around
angleThe angle to rotate by, in degrees
axisThe axis to rotate the object around
virtual void Rotate ( const Vector orig,
float  angle,
const Vector axis 
)
virtual

Rotates the object (around the specified axis) by the angle indicated, at the point specified. Recalculates the vertex data.

Parameters
origThe point to rotate around
angleThe angle to rotate by, in degrees
axisThe arbitrary axis to rotate the object around

Reimplemented in GlsText, Group, ComponentBase, GlsCylinder, GlsAngularScale, GlsSphere, GlsLinearScale, GlsEyePoint, GlsNurbCurve, GlsSchematicTeeInterconnect, GlsSchematicPolyLineInterconnect, GlsPolyLine, GlsGeometryResourceMesh, GlsEllipse, and GlsNinePatch.

const Vertex& RotationPoint ( ) const
inline
Returns
The rotation point for the object. Lifetime is guaranteed to coincide with the DisplayObject's lifetime.
virtual void RotationPoint ( const Vertex v)
virtual

Sets the location of the rotation point for the object. Dynamic rotation of the object will cause the object to be rotated around this point.

Parameters
vThe new rotation point
virtual void RotationPoint ( float  x,
float  y,
float  z 
)
virtual

Sets the location of the rotation point for the object. Dynamic rotation of the object will cause the object to be rotated around this point.

Parameters
xX Coordinate of the new rotation point
yY Coordinate of the new rotation point
zZ Coordinate of the new rotation point
void SaveMatrices ( )

Causes the Projection, Model and View matrix for this object to be saved. Used by the 3D picking algorithm. Normally not used by the user.

virtual void Scale ( float  px,
float  py,
float  pz,
Vertex anchor,
int  handleBar = 0 
)
virtual

Scales the object, either the handleBar, or the Anchor is used to translate the object, not both. Anchor takes presidence, if it is set HandleBar is ignored. The footprint is different from the 2D scale so the compiler can destinguish the two.

Parameters
pxValue of the percentage of scale in x-axis
pyValue of the percentage of scale in y-axis
pzValue of the percentage of scale in z-axis
anchorAnchor from which to scale object relative to
handleBarVertex that is being dragged

Reimplemented in GlsTextGrid, Group, ComponentBase, GlsCTLTextBox, GlsAngularScale, GlsLinearScale, GlsSphere, GlsCylinder, GlsTextBox, GlsSchematicTeeInterconnect, GlsNurbCurve, GlsSchematicPolyLineInterconnect, GlsPolyLine, GlsGeometryResourceMesh, GlsEllipse, and GlsNinePatch.

void Set ( int  spec,
  ... 
)

Set attributes of the object using VarArgs style interface Object attributes are defined with an enumeration. This routine is designed to make generated code very clean and readable.

See also
GLS_Initializers
virtual void SetAvailableAttributes ( unsigned int  value)
virtual
virtual void SetBlendColor ( const GlsColor color)
virtual

Sets the texture blend color for the object

Parameters
colorA GlsColor

Reimplemented in Group, Gls3DCable, and GlsRSOWrapper.

void SetBlendColor ( unsigned char  color[])

Sets the texture blend color for the object

Parameters
colorRGBA color (0-255 range) NOTE: Not Virtual. Simply calls void SetBlendColor(const GlsColor& color);
void SetBlendColor ( unsigned char  r,
unsigned char  g,
unsigned char  b,
unsigned char  a 
)

Sets the texture blend color for the object

Parameters
rRed color component (0-255 range)
gGreen color component (0-255 range)
bBlue color component (0-255 range)
aAlpha color component (0-255 range) NOTE: Not Virtual. Simply calls void SetBlendColor(const GlsColor& color);
virtual void SetColor ( const GlsColor color)
virtual

Sets the RGBA color for the object outline

Parameters
colorThe new color

Reimplemented in Group, Gls3DCable, GlsAngularScale, GlsLinearScale, GlsRSOWrapper, and GlsPolyLine.

void SetColor ( unsigned char  c4[])
inline

Sets the RGBA color for the object outline

Parameters
c4The new RGBA (0-255 range) line color for the object NOTE: Not Virtual. Simply calls void SetColor(const GlsColor& color)
void SetColor ( unsigned char  r,
unsigned char  g,
unsigned char  b,
unsigned char  a 
)
inline

Sets the RGBA color for the object outline

Parameters
rThe new red component (0-255 range) of the line color for the object
gThe new blue component (0-255 range) of the line color for the object
bThe new green component (0-255 range) of the line color for the object
aThe new alpha component (0-255 range) of the line color for the object NOTE: Not Virtual. Simply calls void SetColor(const GlsColor& color)
void SetFillColor ( unsigned char  r,
unsigned char  g,
unsigned char  b,
unsigned char  a 
)
inline

Sets the RGBA color for filling the object

Parameters
rThe new red component (0-255 range) of the fill color for the object
gThe new blue component (0-255 range) of the fill color for the object
bThe new green component (0-255 range) of the fill color for the object
aThe new alpha component (0-255 range) of the fill color for the object NOTE: Not Virtual. Simply calls void SetFillColor(const GlsColor& color)
void SetFillColor ( unsigned char  c4[])
inline

Sets the RGBA color for filling the object

Parameters
c4The new RGBA fill color (0-255 range) for the object NOTE: Not Virtual. Simply calls void SetFillColor(const GlsColor& color)
virtual void SetFillColor ( const GlsColor color)
virtual

Sets the RGBA color for filling the object

Parameters
colorThe new RGBA fill color (0-255 range) for the object

Reimplemented in Group, Gls3DCable, GlsCylinder, GlsSphere, GlsNurbCurve, GlsNinePatch, GlsEllipse, and GlsPolyLine.

static void SetManualBlinkElapsedTime ( double  elapsedTime)
static

Sets the time the application will use to determine the blink state of objects. Has no effect if UseManualBlinkElapsedTime was not set to true.

virtual void SetNormals ( unsigned int  nPoints,
Vector vertices 
)
virtual

Sets the vertex normal data for this object

Parameters
nPointsThe number of vertices in the object
verticesThe vertex normals for the object
virtual void SetOrigin ( const Vertex vert)
virtual

Redefines the frame of reference for the object. Since the vertices in the object are specified relative to the _location member, this routine allows you to specify the absolute coordinate for _location and then recalculates the vertices to be relative to that new location

Parameters
vertThe new origin point for the object
virtual 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
painterthe painter that is drawing this class.

Reimplemented in GlsMimicGroup, Group, GlsRSOWrapper, and GlsSchematicTeeInterconnect.

virtual void SetTexCoords ( unsigned int  nPoints,
Vector new_tex_coord,
bool  isVectorArray = true 
)
virtual

Sets the texture coordinate data for this object

Parameters
nPointsThe number of texture vertices in the object
new_tex_coordThe texture coordinates for the object
isVectorArraytrue if array points to a Vector array, false if it points to a Vertex array
See also
TextureCoordinates()
VaSetTexCoords()
SetTexCoords()
void SetTexCoords ( unsigned int  nPoints,
Vertex new_tex_coord 
)
inline

Vertex version of SetTexCoords

See also
VaSetTexCoords()
TextureCoordinates()
bool SetupAlpha ( void  )

Sets the alpha test/blend settings based on object settings

See also
RestoreAlpha
bool SetupAntiAlias ( void  )

Sets the antialias settings based on object settings

See also
RestoreAntiAlias
void SetupDepthTest ( void  )

Sets the depth test settings based on object settings

void SetupLighting ( void  )

Sets the lighting state

See also
RestoreLighting
bool SetupLineStyle ( void  )

Sets the line style settings based on object settings

Returns
True if the line style was set. If this method returns true then the object must call RestoreLineStyle to cleanup
See also
RestoreLineStyle
void SetupPolyDrawStyle ( void  )

Sets the polygon draw style based on object settings

void SetupShading ( void  )

Sets the shading settings based on object settings

bool SetupTexture ( void  )

First half of texture setup for the object.

Returns
True if the object will be textured False otherwise. If this method returns true, then the caller needs to do a glDisable(GL_TEXTURE_2D) afterwards to cleanup
virtual void SetValue ( int  spec,
va_list &  args 
)
protectedvirtual
virtual void SetVertexColor ( unsigned int  vertex,
unsigned char  CurrentFillColor[] 
)
virtual

Changes the color of a vertex

Parameters
vertex1 based index of the vertex to the change color for
CurrentFillColorThe new RGBA (0-255 range) color for the vertex

Reimplemented in GlsNurbCurve.

virtual void SetVertices ( unsigned int  nPoints,
Vertex vertices 
)
virtual

Sets the vertex data for this polygon You should call UpdateBoundingVolume after changing an object's extents.

See also
UpdateBoundingVolume
Parameters
nPointsThe number of vertices in the object
verticesThe vertex data for the object

Reimplemented in GlsCTLTextBox, GlsPolyLine, GlsSchematicTeeInterconnect, GlsTextBox, GlsNurbCurve, and GlsSchematicPolyLineInterconnect.

virtual int Shading ( void  )
virtual

Gets the polygon shading mode (Flat or gouraud) for the polygon

Returns
Enumeration indicating shading mode
See also
ShadingType_e

Reimplemented in Group, Gls3DCable, and GlsRSOWrapper.

virtual void Shading ( const int  shading)
virtual

Sets the polygon shading mode (Flat or gouraud) for the polygon

Parameters
shadingEnumeration indicating shading mode
See also
ShadingType_e

Reimplemented in Group, Gls3DCable, and GlsRSOWrapper.

Vector* TextureCoordinates ( void  )
inline

Gets the object's texture coordinates

Note
Texture Coordinates are vertex attributes. They can be two-dimensional (UV-coordinates) or three-dimensional (UVW-coordinates). The texture coordinates at each vertex are interpolated across the triangle generated from those vertices to determine where to sample the texture applied to the object.
Some shaders use UVW coordinates as an input, but use them for some other purpose than texturing.
Returns
Pointer to the object's texture coordinate array. NULL if the object is not textured.
See also
GetTextureCoordinates()
VaSetTexCoords()
SetTexCoords()
GetTexturePoints()
virtual int TextureIndex ( void  )
virtual

Get the texture index for this object

Returns
The texture index for this object

Reimplemented in ComponentBase, GlsRSOWrapper, GlsGeometryResourceMesh, and GLTriMesh.

virtual void TextureIndex ( int  textureIndex)
virtual

Sets the texture index to be used when drawing the object.

Parameters
textureIndexThe texture index to use. -1 indicates that no texture will be drawn.

Reimplemented in ComponentBase, GlsCylinder, GlsSphere, GlsRSOWrapper, GlsGeometryResourceMesh, and GLTriMesh.

virtual int TextureMagnificationFilter ( void  )
virtual

Gets the texture magnification filter for this object

Returns
The texture magnification filter for this object
See also
TextureFilter_e

Reimplemented in Group, Gls3DCable, and GlsRSOWrapper.

virtual void TextureMagnificationFilter ( const int  filter)
virtual

Sets the texture magnification filter for this object

Parameters
filterThe new texture magnification filter for this object
See also
TextureFilter_e

Reimplemented in Group, Gls3DCable, and GlsRSOWrapper.

virtual int TextureMappingTechnique ( void  )
virtual

Gets the texturing mapping mode for this object

Returns
The texture mapping mode for this object
See also
TextureMap_e

Reimplemented in Group, Gls3DCable, and GlsRSOWrapper.

virtual void TextureMappingTechnique ( const int  map)
virtual

Sets the texturing mapping mode for this object

Parameters
mapThe new texture mapping mode for this object
See also
TextureMap_e

Reimplemented in Group, Gls3DCable, and GlsRSOWrapper.

virtual int TextureMinificationFilter ( void  )
virtual

Gets the texture minification filter for this object

Returns
The texture minification filter for this object
See also
TextureFilter_e

Reimplemented in Group, Gls3DCable, and GlsRSOWrapper.

virtual void TextureMinificationFilter ( const int  filter)
virtual

Sets the texture minification filter for this object

Parameters
filterThe new texture minification filter for this object
See also
TextureFilter_e

Reimplemented in Group, Gls3DCable, and GlsRSOWrapper.

virtual bool TextureRepeat ( void  )
virtual

Gets the texturing repeat mode for this object

Returns
The texture repeat mode for this object

Reimplemented in Gls3DCable, and GlsRSOWrapper.

virtual void TextureRepeat ( const int  rep)
virtual

Sets the texturing repeat mode for this object

Parameters
repThe new texture repeat mode for this object (boolean)

Reimplemented in Group, Gls3DCable, and GlsRSOWrapper.

virtual void Translate ( float  tr[])
virtual

Moves the object by the amount indicated.

Parameters
trFloat[3] array containing the x,y,z amounts to translate by

Reimplemented in ComponentBase, and Group.

virtual void Translate ( float  x,
float  y,
float  z 
)
virtual

Moves the object by the amount indicated.

Parameters
xX amount to translate by
yY amount to translate by
zZ amount to translate by

Reimplemented in ComponentBase, and Group.

virtual void TranslateVertices ( float  x,
float  y,
float  z 
)
virtual

Moves the object's vertices by the amount indicated. Does not change _location.

Parameters
xX amount to translate by
yY amount to translate by
zZ amount to translate by

Reimplemented in Group, and GlsGeometryResourceMesh.

virtual void UpdateBoundingVolume ( void  )
virtual

Updates the bounding volume of this object This method should be called if the vertices change for picking and culling to work correctly. This will only update this object. If PerformGroupCullCheck is enabled for one of the objects parents, you may also need to call CalculateParentBoundingBox() to update all of the objects parents.

Reimplemented in GlsAngularScale, GlsRSOWrapper, GlsEllipse, GlsNinePatch, and GlsGeometryResourceMesh.

static void UseManualBlinkElapsedTime ( bool  useManualTime)
static

Sets whether the application should use the system time or a manual time for calculating the blink state of objects

void* UserData ( void  ) const
inline

Gets the current UserData pointer. UserData is a pointer the user can use to attach user defined data to a GL Studio object.

Returns
The current UserData pointer
void UserData ( void *  data)
inline

Sets the current UserData pointer

Parameters
dataThe new UserData pointer
virtual void VaListSetNormals ( unsigned int  nPoints,
va_list  args 
)
protectedvirtual

Sets the normal data for this object This function is called as part of VaSetNormals( unsigned int, ... )

Parameters
nPointsThe number of normals in the object
argsva_list in the form x,y,z for each normal
virtual void VaListSetTexCoords ( unsigned int  nPoints,
va_list  args 
)
protectedvirtual

Sets the texture coordinate data for this object This function is called as part of VaTexCoords( unsigned int, ... )

Parameters
nPointsThe number of texture coordinates in the object
argsva_list in the form x,y,z for each texture coordinate
virtual void VaListSetVertices ( unsigned int  nPoints,
va_list  args 
)
protectedvirtual

Sets the vertex data for this object You should call UpdateBoundingVolume after changing an object's extents.

See also
UpdateBoundingVolume
Parameters
nPointsThe number of vertices in the object
argsva_list in the form r,g,b,a,x,y,z for each vertex

Reimplemented in GlsNurbCurve.

void VaSetNormals ( unsigned int  nPoints,
  ... 
)

Sets the vertex normal data for this object

Parameters
nPointsThe number of vertices in the object
...X,Y,Z for each vertex normal
void VaSetTexCoords ( unsigned int  nPoints,
  ... 
)

Sets the texture coordinate data for this object

Parameters
nPointsThe number of texture vertices in the object
...X,Y,Z for each vertex
See also
TextureCoordinates()
GetTextureCoordinates()
void VaSetVertices ( unsigned int  nPoints,
  ... 
)

Sets the vertex data for this object You should call UpdateBoundingVolume after changing an object's extents.

See also
UpdateBoundingVolume
Parameters
nPointsThe number of vertices in the object
...r,g,b,a,x,y,z for each vertex
virtual Vertex* Vertices ( )
inlinevirtual

Gets the object's vertices. You should call UpdateBoundingVolume after changing an object's extents.

See also
UpdateBoundingVolume
Returns
Pointer to the object's vertex array

Reimplemented in GlsAngularScale, GlsEllipse, and GlsNinePatch.

int* ViewMatrix ( )
Returns
The saved View matrix, if any. Normally not used by the user.
bool Visibility ( void  ) const
inline

Get the visibility state this object

Returns
Whether or not this object is enabled for drawing
virtual void Visibility ( const bool  vis)
virtual

Set the visiblity state for this object

Parameters
visWhether or not enable this object for drawing
bool Visible ( void  ) const
inline

Get the visibility state this object

Returns
Whether or not this object is enabled for drawing
bool WindowToLogical ( const Vector winLoc,
Vector logical,
Vector directionVector = NULL,
const OpenGLMatrices alternateMatrices = OpenGLMatrices() 
)

Convert a point in window coordinates to logical coordinates

Parameters
winLocCoordinate in window coordinates. X and Y are in pixels. Z Ranges from 0.0 to 1.0. 0.0 is near clip, 1.0 is far clip.
logicalCoordinate in logical coordinates (returned)
directionVectornormal into the screen at the point (returned)
alternateMatricesA Set of matrices that if supplied, will alter the point
virtual Vector WorldRotationPoint ( void  )
virtual

Gets the rotation point for the object in world coordinates

Returns
The rotation point for the object in world coordinates
virtual void WorldRotationPoint ( const Vector vert)
virtual

Sets the rotation point for the object in world coordinates

Parameters
vertThe rotation point for the object in world coordinates
virtual Vertex WorldVertex ( unsigned int  i)
virtual

Gets a vertex from the object, in World coordinates (i.e. not relative to the location as is the case with the Vertices() API call).

Parameters
iIndex of the vertex to get
Returns
The vertex

Reimplemented in GlsSchematicPolyLineInterconnect.

virtual void WorldVertex ( unsigned int  i,
const Vertex vert 
)
virtual

Sets a vertex of the object, in World coordinates (i.e. not relative to the location as is the case with the Vertices() API call. )

Parameters
iThe 0 based index of the vertex to get
vertThe new vertex value
float X ( void  ) const
inline
Returns
X component of location
void X ( const float  x)
inline

Sets x component of location

float Y ( void  ) const
inline
Returns
Y component of location
void Y ( const float  y)
inline

Sets y component of location

float Z ( void  ) const
inline
Returns
Z component of location
void Z ( const float  z)
inline

Sets z component of location

Member Data Documentation

int _alphaMode
protected

Whether or not to perform alpha testing while drawing.

bool _antiAlias
protected

Whether or not to perform anti-aliasing while drawing.

bool _attributesAdded
protected

True if SetAvailableAttributes has been called. Users should not change this.

bool _blinking
protected

Whether or not the blinking mode is turned on

float _blinkRate
protected

Number of times per second the object will blink

GlsColor _color
protected

The RGBA color for drawing the outline of the object.

bool _cullBackFace
protected

Whether or not to remove backfaces

GlsMatrixType _dcsMatrix
protected

The dynamic coordinate system. The Dynamic changes to rotation, scale, and translate will be modified by this and applied to the _drawMatrix.

unsigned char _depthTest
protected

What kind of depth testing while drawing. See DepthBuffer_e

GlsMatrixType* _drawMatrix
protected

The objects current contribution to the draw matrix. This will be multiplied by the current matrix at draw time. If NULL, this object has no contribution (it is not dynamic) See CalcDrawMatrix() for more

unsigned char _lineStippleMultiplier
protected

True if CalcDrawMatrix() needs to be called on this object The multiplier used when applying a line stipple pattern to a line.

unsigned short _lineStipplePattern
protected

A bit pattern indicating which pixels in a line should be drawn and which pixels should not.

float _lineWidth
protected

The current width of lines rendered in the object, in logical units

Vertex _location
protected

The location of the origin point for this object, in the world coordinate system.

GlsMatrixType* _modelMatrix
protected

Stores the Model matrix for this object, if needed. Used by Draw() and 3D picking.

Vector* _normals
protected

The array of vertex normals for this object. The size of this array is based on _nVertices

unsigned int _nTex_vertices
protected

The number of Texture Coordinate Vertices in this object

unsigned int _nVertices
protected

The number of vertices in this object

unsigned char _polygonEnd
protected

Whether or not this is a CLOSED or OPEN polygon

unsigned char _polygonMode
protected

The mode for drawing the object.

int _polygonOffset
protected

The depth buffer offset for this object

GlsMatrixType* _projMatrix
protected

Stores the Projection matrix for this object, if needed. Used by Draw() and 3D picking.

unsigned char _shading
protected

The shading mode for this object

Vector* _texCoord
protected

The array of texture coordinates for this object. If an object is untextured, this value is NULL. The size of this array is based on _nTex_vertices

GlsColor _textureBlendColor
protected

The current texture blend color (used if TextureMapMode is TEXTURE_MAP_BLEND mode only)

int _textureIndex
protected

The index into the texture palette array of the texture used to to texture this object. A texture index of -1 indicates that no texture is assigned to the object.

unsigned char _textureMagFilter
protected

The current texturing magnification filter mode for the object

unsigned char _textureMap
protected

The current texturing map mode for the object.

unsigned char _textureMinFilter
protected

The current texturing minification filter mode for the object

Vector _texturePoints[ 4 ]
protected

Used to store the relative placement and rotation of a texture on the object. Texture coordinates are calculated from the texture points. The _texturePoints are relative to the _location, which makes them in the objects coordinate system.

unsigned char _textureRepeat
protected

The current texturing repeat mode for the object.

void* _userData
protected

Data pointer for the user to assign as needed

Vertex* _vertices
protected

The array of vertices for this object. The vertices are in the object's coordinate system. That is, they are relative to the _location field. This array always has a size based on _nVertices

int* _viewMatrix
protected

Stores the View matrix for this object, if needed. Used by Draw() and 3D picking.

bool _visible
protected

Whether or not the object is enabled for drawing


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