| GL Studio C++ Runtime API

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

The glTriMesh class. Implements Triangle Meshes. More...

`#include <gltrimesh.h>`

Inheritance diagram for GLTriMesh:

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

## Public Member Functions
int | TextureIndex () override
void | TextureIndex (int index) override
void | MaterialIndices (DynamicArray< int > index) override
DynamicArray< int > & | MaterialIndices () override
void | MaterialIndex (unsigned int index)
int | MaterialIndex () override
GLMeshFace * | Faces ()
virtual void | CopyGeometry (DisplayObject *src) override
virtual DisplayObject * | CloneObject (bool generateNames=false) override
virtual void | CopyProperties (DisplayObject *src) override
virtual void | SetValue (int spec, va_list &args) override
void | AssignPropertiesFromGroup (DisplayObject *src)
void | NumberOfFaces (unsigned int n)
unsigned int | NumberOfFaces ()
void | ReplaceMaterial (unsigned int oldIndex, unsigned int newIndex)
void | SetFace (unsigned int face, int a, int b, int c, int tindex, unsigned int materialIndex=0)
void | VaSetFaces (unsigned int numFaces,...)
void | SetFaces (unsigned int nFaces, GLMeshFace *faces)
void | SetVerticesAndFaces (unsigned int nVertices, const GLMeshVertex *vertices, unsigned int nFaces, const GLMeshFace *faces)
| GLTriMesh (unsigned int nVertices, Vertex *vertices)
| GLTriMesh (unsigned int nVertices, Vertex *vertices, Vertex &location)
| GLTriMesh ()
| GLTriMesh (const GLTriMesh &that, const bool generateNames)
virtual | ~GLTriMesh ()
virtual void | SetAvailableAttributes (unsigned int value) override
virtual void | PreDraw (const OpenGLMatrices &current, Culler &culler) override
virtual void | Draw () override
virtual bool | Hit (float x, float y, float z, float scale, const Vector &directionVector, Vector *collisionPoint) override
void | InvalidateGeometry ()
Public Member Functions inherited from GLPolygon
| GLPolygon (unsigned int nPoints, const Vertex *vertices)
| GLPolygon (unsigned int nPoints, const Vertex *vertices, const Vertex &location)
| GLPolygon ()
| GLPolygon (const GLPolygon &polygon, const bool generateNames)
virtual | ~GLPolygon ()
void | ConfigureMetaData ()
virtual DisplayObject * | CloneObject (bool generateNames=false)
virtual void | PreDraw (const OpenGLMatrices &current, Culler &culler) override
virtual void | Draw () override
virtual void | CalculateTextureCoordinates ()
virtual void | CalcNormals (int windingOrder=1)
virtual void | SetFillColor (unsigned char r, unsigned char g, unsigned char b, unsigned char a)
virtual void | SetFillColor (const GlsColor &color)
virtual void | DeleteVertexAt (unsigned int index)
virtual DisplayObject * | Pick3D (const Vector &winLoc, const Vector &logicalCoords, float scale, const Vector &directionVector, Vector &collisionWinLoc, const OpenGLMatrices &drawnMatrices) override
Public Member Functions inherited from DisplayObject
| DisplayObject (float x, float y, float z)
| DisplayObject (const DisplayObject &object, const bool generateNames)
virtual | ~DisplayObject ()
void | Destroy ()
virtual void | SetAvailableAttributes (unsigned int value)
virtual void | AlphaMode (int mode)
virtual int | AlphaMode ()
virtual bool | AntiAlias ()
virtual void | AntiAlias (bool alias)
void | ApplyTextureSettings (int textureIndex=-1)
DistiAttribDict & | Attributes ()
const DistiAttribDict & | Attributes () const
virtual void | SetBlendColor (const GlsColor &color)
void | GetBlendColor (unsigned char color[])
void | GetBlendColor (unsigned char &r, unsigned char &g, unsigned char &b, unsigned char &a)
virtual GlsColor | GetBlendColor ()
void | SetBlendColor (unsigned char color[])
void | SetBlendColor (unsigned char r, unsigned char g, unsigned char b, unsigned char a)
virtual bool | BlinkedOff ()
virtual bool | Blinking ()
virtual void | Blinking (const bool blink)
virtual float | BlinkRate ()
virtual void | BlinkRate (const float rate)
const Vector & | BoundingVolumeCenter () const
void | BoundingVolumeCenter (const Vector &center)
bool | BoundingVolumeHit (const Vector &start, const Vector &direction)
float | BoundingVolumeRadius () const
void | BoundingVolumeRadius (float radius)
virtual void | Calculate (double time)
void | CalculateCollisionPoint (const Vector &pickLoc, const Vector &directionVector, Vector *collisionPoint)
virtual void | CalculateParentBoundingBox ()
virtual void | CalculateTextureCoordinates ()
bool | GetTexturePointTransformationMatrix (GlsMatrixType &world2tex)
CallbackMethodCallerBase * | CallbackCaller () const
void | CallbackCaller (CallbackMethodCallerBase *cb)
virtual void | GetCenter (Vector &center)
virtual DisplayObject * | CloneObject (bool generateNames=false)=0
virtual GlsColor | GetColor ()
void | GetColor (unsigned char c4[])
void | GetColor (unsigned char &r, unsigned char &g, unsigned char &b, unsigned char &a)
virtual void | SetColor (const GlsColor &color)
void | SetColor (unsigned char c4[])
void | SetColor (unsigned char r, unsigned char g, unsigned char b, unsigned char a)
virtual void | CopyGeometry (DisplayObject *src)
virtual void | CopyHierarchyProperties (DisplayObject *src, bool copyName)
virtual void | CopyProperties (DisplayObject *src)
virtual void | CullBackFace (const bool val)
virtual bool | CullBackFace ()
bool | Culled () const
void | Culled (bool val)
bool | CullTest (const GlsMatrixType *matrix, const Culler &culler)
GlsMatrixType & | DcsMatrix ()
GlsMatrixType | DcsMatrix () const
void | DcsMatrix (const GlsMatrixType &matrix)
virtual void | DeleteVertexAt (unsigned int index)
virtual void | DeleteVertex (unsigned int indexAfter) final
virtual int | DepthTest ()
virtual void | DepthTest (unsigned char zbuf)
virtual void | Draw ()=0
const GlsMatrixType * | DrawMatrix ()
bool | NeedCalcDrawMatrix ()
void | DynamicRotate (float angle, int axis)
void | DynamicRotate (const Vector &v)
void | DynamicRotate (float angle[])
virtual void | DynamicRotate (float x, float y, float z)
virtual void | DynamicRotateRelative (float angle, int axis)
virtual float | DynamicRotation (int axis)
virtual Vector | DynamicRotation ()
virtual Vector | DynamicScale ()
virtual void | DynamicScale (float x, float y, float z)
void | DynamicScale (const Vector &scale)
virtual void | DynamicTranslate (float x, float y, float z, bool relative=false)
void | DynamicTranslate (const Vertex &amount, bool relative)
void | DynamicTranslate (const Vector &amount)
virtual void | DynamicTranslateAxis (float amount, int axis, bool relative)
virtual float | DynamicTranslation (int axis)
virtual Vector | DynamicTranslation ()
DisplayObjectEditor * | Editor ()
const DisplayObjectEditor * | Editor () const
void | Editor (DisplayObjectEditor *editor)
virtual void | GetExtents (float &x, float &y, float &z, float &x1, float &y1, float &z1)
void | GetExtentsDCS (Vector &min, Vector &max)
void | GetFillColor (unsigned char &r, unsigned char &g, unsigned char &b, unsigned char &a)
void | GetFillColor (unsigned char c4[])
virtual GlsColor | GetFillColor ()
void | SetFillColor (unsigned char r, unsigned char g, unsigned char b, unsigned char a)
void | SetFillColor (unsigned char c4[])
virtual void | SetFillColor (const GlsColor &color)
virtual void | FinishObject ()
virtual void | GenerateInstanceName ()
virtual DisplayObject * | handle (DisplayEvent *ev)
virtual bool | Hit (float x, float y, float z, float scale, const Vector &directionVector, Vector *collisionPoint)
virtual bool | HitUtil (float x, float y, float z, float scale, Vertex *vertices, unsigned int vertex_cnt, const Vector &directionVector, Vector *collisionPoint)
virtual void | InsertVertexAt (unsigned int index)
virtual void | InsertVertex (unsigned int indexAfter) final
char * | InstanceName ()
const char * | InstanceName () const
void | InstanceName (const char *name)
virtual bool | LightingEnabled ()
virtual void | LightingEnabled (bool lighting)
virtual int | LineStippleMultiplier ()
virtual void | LineStippleMultiplier (int mult)
virtual int | LineStipplePattern ()
virtual void | LineStipplePattern (int pattern)
virtual float | LineWidth ()
virtual void | LineWidth (float width)
virtual const Vertex & | Location () const
virtual void | Location (const Vertex &v)
virtual void | Location (float x, float y, float z)
virtual void | GetLocation (Vertex &v)
virtual void | GetLocation (float &x, float &y, float &z)
float | X () const
float | Y () const
float | Z () const
void | X (const float x)
void | Y (const float y)
void | Z (const float z)
virtual int | MaterialIndex ()
virtual void | MaterialIndex (int index)
virtual DynamicArray< int > & | MaterialIndices ()
virtual void | MaterialIndices (DynamicArray< int > indices)
GlsMatrixType * | ModelMatrix ()
bool | NeedCalculate ()
Vector * | Normals ()
virtual void | SetNormals (unsigned int nPoints, Vector *vertices)
void | VaSetNormals (unsigned int nPoints,...)
unsigned int | NumberOfVertices () const
virtual float | ObjectDepth ()
virtual float | ObjectHeight ()
virtual float | ObjectWidth ()
virtual void | SetOrigin (const Vertex &vert)
virtual void | Parent (DisplayFrame *par)
DisplayFrame * | Parent () const
virtual void | ParentGroup (Group *group)
Group * | ParentGroup () const
virtual DisplayObject * | Pick3D (const Vector &winLoc, const Vector &logicalCoords, float scale, const Vector &directionVector, Vector &collisionWinLoc, const OpenGLMatrices &drawnMatrices)
unsigned char | Pickable ()
virtual void | Pickable (unsigned char pick)
virtual int | PolygonEnd ()
virtual void | PolygonEnd (const int end)
virtual int | PolygonMode ()
virtual void | PolygonMode (int mode)
virtual void | PreDraw (const OpenGLMatrices &current, Culler &culler)
GlsMatrixType * | ProjMatrix ()
virtual void | ReallocateVertices (unsigned int numVertices, bool initializeNew, bool copyOld)
virtual float | RelativeAngle (const float x, const float y)
virtual DistiAttributeBase & | Resource (const char *name)
virtual void | GetResources (std::ostream &outstr, GlsResourceFilter *filter=NULL)
const Vertex & | RotationPoint () const
virtual void | RotationPoint (const Vertex &v)
virtual void | RotationPoint (float x, float y, float z)
virtual void | GetRotationPoint (Vertex &v)
virtual void | Rotate (float angle, int axis=Z_AXIS)
virtual void | Rotate (const Vector &origin, float angle, int axis=Z_AXIS)
virtual void | Rotate (const Vector &orig, float angle, const Vector &axis)
void | SaveMatrices ()
virtual void | Scale (float px, float py, float pz, Vertex *anchor, int handleBar=0)
void | Set (int spec,...)
bool | SetupAlpha ()
void | SetupDepthTest ()
void | SetupLighting ()
bool | SetupLineStyle ()
bool | SetupTexture ()
virtual int | Shading ()
virtual void | Shading (const int shading)
virtual void | GetTransformedExtents (Vector &min, Vector &max, const GlsMatrixType &matrix, bool resetMinMax=true)
virtual void | SetTexCoords (unsigned int nPoints, Vector *new_tex_coord, bool isVectorArray=true)
void | SetTexCoords (unsigned int nPoints, Vertex *new_tex_coord)
void | VaSetTexCoords (unsigned int nPoints,...)
Vector * | TextureCoordinates ()
Vector * | GetTextureCoordinates ()
virtual int | TextureIndex ()
virtual void | TextureIndex (int textureIndex)
virtual Vector * | GetTexturePoints ()
virtual bool | TextureRepeat ()
virtual void | TextureRepeat (const int rep)
virtual int | TextureMappingTechnique ()
virtual void | TextureMappingTechnique (const int map)
virtual int | TextureMagnificationFilter ()
virtual void | TextureMagnificationFilter (const int filter)
virtual int | TextureMinificationFilter ()
virtual void | TextureMinificationFilter (const int filter)
virtual void | Translate (float tr[])
virtual void | Translate (float x, float y, float z)
virtual void | TranslateVertices (float x, float y, float z)
virtual void | UpdateBoundingVolume ()
void * | UserData () const
void | UserData (void *data)
virtual void | SetVertexColor (unsigned int vertex, unsigned char CurrentFillColor[])
virtual Vertex * | Vertices ()
virtual void | SetVertices (unsigned int nPoints, Vertex *vertices)
void | VaSetVertices (unsigned int nPoints,...)
int * | ViewMatrix ()
bool | Visible () const
bool | Visibility () const
virtual void | Visibility (const bool vis)
virtual Vector | WorldRotationPoint ()
virtual void | WorldRotationPoint (const Vector &vert)
virtual Vertex | WorldVertex (unsigned int i)
virtual void | WorldVertex (unsigned int i, const Vertex &vert)
bool | LogicalToWindow (const Vector &logical, Vector &winLoc, const OpenGLMatrices &alternateMatrices=OpenGLMatrices())
bool | WindowToLogical (const Vector &winLoc, Vector &logical, Vector *directionVector=NULL, const OpenGLMatrices &alternateMatrices=OpenGLMatrices())
void | LogicalToDCS (Vector logicalPoint, Vector &objectLocal, const Vector *directionVector, const Vector &planeNormal=Vector(0, 0, 1), const Vector &planePoint=Vector(), const GlsMatrixType *dcsMatrix=NULL)
void | DCSToLogical (Vector dcsPoint, Vector &logicalPoint, const GlsMatrixType *dcsMatrix=NULL)
bool | Create (GlsGloFile &dataStream, Group *parent)
void | GeometryRefresh ()
| Invalidates the painter and refreshes the geometry on the next paint cycle.
virtual bool | GetPlaneVectorPoints (Vertex &p1, Vertex &p2, Vertex &p3, Vertex &planeVector)
void | NotifyAttributeChanged (const AttributeName &name) override
virtual void | SetPainter (GlsPainter *painter)
virtual GlsPainter * | GetPainter ()
void | InvalidatePainter ()
virtual bool | IsVisibleInScene (const DisplayObject *obj=NULL) const
Public Member Functions inherited from AttributeChangedNotifier
virtual void | NotifyAttributeChanged (const AttributeName &name)=0
virtual | ~AttributeChangedNotifier ()
Public Member Functions inherited from WeakReferenceableMixin
void | AddWeakReference (WeakReference *weakRef) override
void | NotifyWeakReferenceDestroyed (WeakReference *ref) override
virtual void | AddWeakReference (WeakReference *weakRef)=0
virtual void | NotifyWeakReferenceDestroyed (WeakReference *weakReference)=0

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

## Public Attributes
GlsIndexArray | _indices
| The index array for this mesh.

## Protected Member Functions
void | DrawSolidMesh (unsigned int faceOffset, unsigned int faceCount, bool textureObject, bool gouraudShading, bool perVertexLighting)
void | DrawOutlineMesh ()
virtual bool | SetupTexture (const int textureIndex)
virtual void | SetFromGloData (GlsGloFileAttribute &data) override
Protected Member Functions inherited from GLPolygon
void | DrawSolidGeometry (bool textureObject, bool gouraudShading, bool normal)
void | DrawOutlineGeometry ()
| Draws lines that form this polygon's outline.
void | DrawPoints ()
| Draws a point for each vertex of this polygon.
void | BakeVBO (bool hasT, bool hasC, bool hasN)
Protected Member Functions inherited from DisplayObject
virtual void | VaListSetVertices (unsigned int nPoints, va_list args)
virtual void | VaListSetNormals (unsigned int nPoints, va_list args)
virtual void | VaListSetTexCoords (unsigned int nPoints, va_list args)
void | ApplyTextureMinMagSettings ()
| Updates the state manager's texture minification and magnification filter based on this display's configuration.
void | ApplyTextureEnvModeSettings ()
| Updates the state manager's texture environment based on this object configuration.
bool | SetupTextureIsNeeded ()
virtual int | ColorMaterialMode ()
void | AllocateModelMatrix ()
bool | ApplyDynamicRotation ()
virtual void | CalcDrawMatrix ()
void | CalcDrawMatrixIfExists ()
virtual void | CalculateMatrices (const OpenGLMatrices &newMatrices)
bool | InsideVertexExtents (float x, float y, unsigned int nVerts, Vertex *verts, float tolerance)
void | LastDrawMatrixLocation (const Vertex &loc)
const Vertex & | LastDrawMatrixLocation ()
void | NeedCalculate (bool val)
void | PickSetup (float x, float y, float z, Vertex *vertices, unsigned int vertex_cnt, const Vector &directionVector)
void | PickCleanup (Vertex *vertices, unsigned int vertex_cnt)
virtual void | SetFromGloData (GlsGloFileAttribute &data)
virtual void | SetValue (int spec, va_list &args)
int | GetApplicableTextureIndex ()
int | GetApplicableTextureRepeat ()
Protected Member Functions inherited from WeakReferenceableMixin
| WeakReferenceableMixin ()
virtual | ~WeakReferenceableMixin ()

## Friends
class | GLTriMeshEditor

## Additional Inherited Members
Protected Attributes inherited from GLPolygon
GlsVertexArray | _vertArray
| A vertex array that makes up this mesh. Each vertex contains data such as position, normal, texture coordinates, and color.
bool | _pendingFillColor
| If true and gouraudShading is true during a paint cycle, then it'll bake the VBO.
Protected Attributes inherited from DisplayObject
bool | _geometryRefresh
| Whether or not the geometry (VBOs etc.) needs to be updated on the GPU.
int | _alphaMode
bool | _antiAlias
bool | _attributesAdded
bool | _blinking
float | _blinkRate
bool | _isBlinkedOff
| Stores whether the object is presently blinked on or off.
GlsColor | _color
bool | _cullBackFace
GlsMatrixType | _dcsMatrix
unsigned char | _depthTest
GlsMatrixType * | _drawMatrix
bool | _needCalcDrawMatrix
| True if CalcDrawMatrix() needs to be called on this object.
unsigned char | _lineStippleMultiplier
unsigned short | _lineStipplePattern
float | _lineWidth
Vertex | _location
DynamicArray< int > | _materialIndices
| List of materials associated with this object.
GlsMatrixType * | _modelMatrix
Vector * | _normals
unsigned int | _nTex_vertices
unsigned int | _nVertices
unsigned char | _polygonEnd
unsigned char | _polygonMode
GlsMatrixType * | _projMatrix
unsigned char | _shading
Vector * | _texCoord
GlsColor | _textureBlendColor
int | _textureIndex
unsigned char | _textureMagFilter
unsigned char | _textureMinFilter
unsigned char | _textureMap
Vector | _texturePoints [4]
unsigned char | _textureRepeat
void * | _userData
Vertex * | _vertices
int * | _viewMatrix
bool | _visible
IGlsStateManager * | _stateManager
| The state manager that interfaces with OpenGL and maintains its render state.
Protected Attributes inherited from WeakReferenceableMixin
DynamicArray< WeakReference * > * | _weakRefs

## Detailed Description

The glTriMesh class. Implements Triangle Meshes.

## Constructor & Destructor Documentation

## ◆ GLTriMesh() [1/4]

GLTriMesh | ( | unsigned int | nVertices,
|  | Vertex * | vertices
| ) |  |

Creates a GLTriMesh with the vertices specified

Parameters

  nVertices | The number of vertices in the new polygon
  vertices | The array of vertices for the polygon

## ◆ GLTriMesh() [2/4]

GLTriMesh | ( | unsigned int | nVertices,
|  | Vertex * | vertices,
|  | Vertex & | location
| ) |  |

Creates a GLTriMesh with the vertices specified.

Parameters

  nVertices | The number of vertices in the new polygon.
  vertices | The array of vertices for the polygon.
  location | The location point of the object.

## ◆ GLTriMesh() [3/4]

GLTriMesh | ( |  | ) |

Allocate a (blank) GLTriMesh object

## ◆ GLTriMesh() [4/4]

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

Copy constructor

Parameters

  that | The object to copy from.
  generateNames | Whether or not an instance name should be generated for this object.

## ◆ ~GLTriMesh()

virtual ~GLTriMesh | ( |  | ) |
| virtual

Destroy a GLTriMesh object

## Member Function Documentation

## ◆ AssignPropertiesFromGroup()

void AssignPropertiesFromGroup | ( | DisplayObject * | src | ) |

Copies the attributes from an object (possibly a group) to this one. Used by the mesh creator to copy properties from the objectrs that were converted into this mesh.

Parameters

  src | The object to copy properties from.

## ◆ CloneObject()

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

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

Parameters

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

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

Reimplemented from GLPolygon.

## ◆ CopyGeometry()

virtual void CopyGeometry | ( | DisplayObject * | src | ) |
| override virtual

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

Parameters

  src | The object to copy geometry from

Reimplemented from DisplayObject.

## ◆ CopyProperties()

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

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

Parameters

  src | The object to copy properties from

Reimplemented from DisplayObject.

## ◆ CreateInstance()

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

Returns
  A pointer to a new GLTriMesh object.

## ◆ Draw()

virtual void Draw | ( |  | ) |
| override virtual

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

Reimplemented from GLPolygon.

## ◆ DrawOutlineMesh()

void DrawOutlineMesh | ( |  | ) |
| protected

Helper function for underlying outline mesh drawing.

Note
  Not normally called by users.

## ◆ DrawSolidMesh()

void DrawSolidMesh | ( | unsigned int | faceOffset,
|  | unsigned int | faceCount,
|  | bool | textureObject,
|  | bool | gouraudShading,
|  | bool | perVertexLighting
| ) |  |
| protected

Helper function for underlying solid mesh drawing.

Note
  Not normally called by users.

Parameters

  faceOffset | Index offset into the face array.
  faceCount | The number of faces to draw.
  textureObject | If true, draw with texture.
  gouraudShading | If true, draw with smooth shading.
  perVertexLighting | If true, use per vertex lighting.

## ◆ Faces()

GLMeshFace * Faces | ( |  | ) |
| inline

Returns
  Access to the faces stored in this mesh.

## ◆ Hit()

virtual bool Hit | ( | float | x,
|  | float | y,
|  | float | z,
|  | float | scale,
|  | const Vector & | directionVector,
|  | Vector * | collisionPoint
| ) |  |
| override 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

  x | X coordinate of pick ray start in logical coordinates.
  y | Y coordinate of pick ray start in logical coordinates.
  z | Z coordinate of pick ray start in logical coordinates.
  scale | The scale factor of the window. Affects picking of outlines. Standard value is 1.0.
  directionVector | The direction of the pick ray.
  collisionPoint | If 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 from DisplayObject.

## ◆ InvalidateGeometry()

void InvalidateGeometry | ( |  | ) |
| inline

Causes the display list for this object to be recomputed

## ◆ MaterialIndex() [1/2]

int MaterialIndex | ( |  | ) |
| override virtual

Returns
  The current material index. Returns -1 if multiple are applied.

Reimplemented from DisplayObject.

## ◆ MaterialIndex() [2/2]

void MaterialIndex | ( | unsigned int | index | ) |

Override base class since a mesh can have multiple materials.

Note
  This is technically not an override, GLS-11064.

Parameters

  index | The new material index to set on all faces.

## ◆ MaterialIndices() [1/2]

DynamicArray< int > & MaterialIndices | ( |  | ) |
| override virtual

Returns
  A list of material indices.

Reimplemented from DisplayObject.

## ◆ MaterialIndices() [2/2]

void MaterialIndices | ( | DynamicArray< int > | indices | ) |
| override virtual

Sets the list of material indices.

Parameters

  indices | The new material list to set.

Reimplemented from DisplayObject.

## ◆ NumberOfFaces() [1/2]

unsigned int NumberOfFaces | ( |  | ) |
| inline

Returns
  The number of faces in this mesh

## ◆ NumberOfFaces() [2/2]

void NumberOfFaces | ( | unsigned int | n | ) |

Sets the number of faces in the mesh and allocates the face array

Parameters

  n | The new number of faces for the mesh

## ◆ PreDraw()

virtual void PreDraw | ( | const OpenGLMatrices & | current,
|  | Culler & | culler
| ) |  |
| override virtual

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

Parameters

  current | Current matrices inherited from parent
  culler | Object that possibly marks this object for culling

Reimplemented from GLPolygon.

## ◆ ReplaceMaterial()

void ReplaceMaterial | ( | unsigned int | oldIndex,
|  | unsigned int | newIndex
| ) |  |

For all faces of the mesh that have the old material, replace that material with the new material.

Parameters

  oldIndex | Old material index
  newIndex | New material index

## ◆ SetAvailableAttributes()

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

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

Parameters

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

See also
  AvailableAttributesEnum

Reimplemented from DisplayObject.

## ◆ SetFace()

void SetFace | ( | unsigned int | face,
|  | int | a,
|  | int | b,
|  | int | c,
|  | int | tindex,
|  | unsigned int | materialIndex = `0`
| ) |  |

Sets the vertices and texture index of a specific face

Parameters

  face |
  a | The vertex index for the first vertex of the triangle
  b | The vertex index for the second vertex of the triangle
  c | The vertex index for the third vertex of the triangle
  tindex | The texture index for triangle
  materialIndex | The material index for triangle

## ◆ SetFaces()

void SetFaces | ( | unsigned int | nFaces,
|  | GLMeshFace * | faces
| ) |  |

Sets all the faces of the mesh. Used in parser

Parameters

  nFaces | The number of faces that will be set
  faces | An array of GLMeshFaces with nFaces elements

## ◆ SetFromGloData()

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

Set a single attribute from the GLO file.

Parameters

  data | The attribute to set and its associated data.

Reimplemented from DisplayObject.

## ◆ SetupTexture()

virtual bool SetupTexture | ( | const int | textureIndex | ) |
| protected virtual

Set up the OpenGL state for texturing.

Note
  A mesh can have multiple textures.

Parameters

  textureIndex | The first texture to use.

Returns
  Whether or not the OpenGL state was changed.

## ◆ SetValue()

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

Sets an attribute of this object using variable arguments

Parameters

  spec | A GLS_Initializer tag
  args | A variable argument list

Reimplemented from DisplayObject.

## ◆ SetVerticesAndFaces()

void SetVerticesAndFaces | ( | unsigned int | nVertices,
|  | const GLMeshVertex * | vertices,
|  | unsigned int | nFaces,
|  | const GLMeshFace * | faces
| ) |  |

Sets all the faces and vertices of the mesh. Used in generated code

Parameters

  nVertices | Number of vertices
  vertices | Array of initialized vertices
  nFaces | Number of faces
  faces | Array of initialized faces

## ◆ TextureIndex() [1/2]

int TextureIndex | ( |  | ) |
| override virtual

Get the texture index for this object

Returns
  The texture index for this object

Reimplemented from DisplayObject.

## ◆ TextureIndex() [2/2]

void TextureIndex | ( | int | textureIndex | ) |
| override virtual

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

Parameters

  textureIndex | The texture index to use. -1 indicates that no texture will be drawn.

Reimplemented from DisplayObject.

## ◆ VaSetFaces()

void VaSetFaces | ( | unsigned int | numFaces,
|  |  | ...
| ) |  |

Sets all the faces of the mesh. Used in runtime.

Parameters

  numFaces | The number of faces that will be passed in
  ... | A variable argument field which will be numFaces instances of a,b,c,tindex,materialIndex

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

- gltrimesh.h