GL Studio C++ Runtime API
GLTriMesh Class Reference

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

#include <gltrimesh.h>

Inheritance diagram for GLTriMesh:
GLPolygon DisplayObject AttributeChangedNotifier WeakReferenceableMixin WeakReferenceable

Public Member Functions

int TextureIndex (void)
 
void TextureIndex (int index)
 
void MaterialIndices (DynamicArray< int > index)
 
DynamicArray< int > & MaterialIndices ()
 
int MaterialIndex ()
 
GLMeshFaceFaces (void)
 
virtual void CopyGeometry (DisplayObject *src)
 
virtual DisplayObjectCloneObject (bool generateNames=false)
 
virtual void CopyProperties (DisplayObject *src)
 
virtual void SetValue (int spec, va_list &args)
 
void NumberOfFaces (unsigned int n)
 
unsigned int NumberOfFaces (void)
 
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 (void)
 
virtual ~GLTriMesh (void)
 
virtual void SetAvailableAttributes (unsigned int value)
 
virtual void Draw (void)
 
virtual bool Hit (float x, float y, float z, float scale, const Vector &directionVector, Vector *collisionPoint)
 
virtual InterfaceListTypeGetCppInterfaceDescription (InterfaceListType *addToThisList=NULL)
 
virtual void GetCppInterfaceDescriptionFree (InterfaceListType *array)
 
void InvalidateGeometry (void)
 
- Public Member Functions inherited from GLPolygon
 GLPolygon (unsigned int nPoints, Vertex *vertices)
 
 GLPolygon (unsigned int nPoints, Vertex *vertices, Vertex &location)
 
 GLPolygon (void)
 
 GLPolygon (const GLPolygon &polygon, const bool generateNames)
 
virtual ~GLPolygon (void)
 
void ConfigureMetaData (void)
 
virtual void CalculateTextureCoordinates (void)
 
virtual void CalcNormals (int windingOrder=1)
 
virtual void DeleteVertex (unsigned int index)
 
virtual DisplayObjectPick3D (const Vector &winLoc, const Vector &logicalCoords, float scale, const Vector &directionVector, Vector &collisionWinLoc, const OpenGLMatrices &parentDrawn)
 
- Public Member Functions inherited from DisplayObject
 DisplayObject (float x, float y, float z)
 
 DisplayObject (const DisplayObject &object, const bool generateNames)
 
virtual ~DisplayObject (void)
 
void Destroy ()
 
virtual void AlphaMode (int mode)
 
virtual int AlphaMode (void)
 
virtual bool AntiAlias (void)
 
virtual void AntiAlias (bool alias)
 
void ApplyTextureSettings (int textureIndex=-1)
 
DistiAttribDictAttributes ()
 
virtual void SetBlendColor (const GlsColor &color)
 
void GetBlendColor (unsigned char color[])
 
void GetBlendColor (unsigned char &r, unsigned char &g, unsigned char &b, unsigned char &a)
 
virtual GlsColor GetBlendColor ()
 
void SetBlendColor (unsigned char color[])
 
void SetBlendColor (unsigned char r, unsigned char g, unsigned char b, unsigned char a)
 
bool BlinkedOff (void)
 
virtual bool Blinking (void)
 
virtual void Blinking (const bool blink)
 
virtual float BlinkRate (void)
 
virtual void BlinkRate (const float rate)
 
const VectorBoundingVolumeCenter () const
 
void BoundingVolumeCenter (const Vector &center)
 
bool BoundingVolumeHit (const Vector &start, const Vector &direction)
 
float BoundingVolumeRadius () const
 
void BoundingVolumeRadius (float radius)
 
virtual void Calculate (double time)
 
void CalculateCollisionPoint (const Vector &pickLoc, const Vector &directionVector, Vector *collisionPoint)
 
virtual void CalculateParentBoundingBox (void)
 
bool GetTexturePointTransformationMatrix (GlsMatrixType &world2tex)
 
CallbackMethodCallerBaseCallbackCaller () const
 
void CallbackCaller (CallbackMethodCallerBase *cb)
 
virtual void GetCenter (Vector &center)
 
virtual GlsColor GetColor ()
 
void GetColor (unsigned char c4[])
 
void GetColor (unsigned char &r, unsigned char &g, unsigned char &b, unsigned char &a)
 
virtual void SetColor (const GlsColor &color)
 
void SetColor (unsigned char c4[])
 
void SetColor (unsigned char r, unsigned char g, unsigned char b, unsigned char a)
 
virtual void CopyHierarchyProperties (DisplayObject *src, bool copyName)
 
virtual void CullBackFace (const bool val)
 
virtual bool CullBackFace (void)
 
bool Culled () const
 
bool CullTest (const GlsMatrixType *matrix, const Culler &culler)
 
GlsMatrixTypeDcsMatrix ()
 
void DcsMatrix (const GlsMatrixType &matrix)
 
virtual int DepthTest (void)
 
virtual void DepthTest (unsigned char zbuf)
 
const GlsMatrixTypeDrawMatrix ()
 
bool NeedCalcDrawMatrix ()
 
void DynamicRotate (float angle, int axis)
 
void DynamicRotate (const Vector &v)
 
void DynamicRotate (float angle[])
 
virtual void DynamicRotate (float x, float y, float z)
 
virtual void DynamicRotateRelative (float angle, int axis)
 
virtual float DynamicRotation (int axis)
 
virtual Vector DynamicScale ()
 
virtual void DynamicScale (float x, float y, float z)
 
void DynamicScale (const Vector &scale)
 
virtual void DynamicTranslate (float x, float y, float z, bool relative=false)
 
void DynamicTranslate (const Vertex &amount, bool relative)
 
void DynamicTranslate (const Vector &amount)
 
virtual void DynamicTranslate (float amount, int axis, bool relative=false)
 
virtual float DynamicTranslation (int axis)
 
virtual Vector DynamicTranslation ()
 
DisplayObjectEditor * Editor ()
 
const DisplayObjectEditor * Editor () const
 
void Editor (DisplayObjectEditor *editor)
 
virtual void GetExtents (float &x, float &y, float &z, float &x1, float &y1, float &z1)
 
void GetExtentsDCS (Vector &min, Vector &max)
 
void GetFillColor (unsigned char &r, unsigned char &g, unsigned char &b, unsigned char &a)
 
void GetFillColor (unsigned char c4[])
 
virtual GlsColor GetFillColor (void)
 
void SetFillColor (unsigned char r, unsigned char g, unsigned char b, unsigned char a)
 
void SetFillColor (unsigned char c4[])
 
virtual void SetFillColor (const GlsColor &color)
 
virtual DisplayObjecthandle (DisplayEvent *ev)
 
virtual bool HitUtil (float x, float y, float z, float scale, Vertex *vertices, unsigned int vertex_cnt, const Vector &directionVector, Vector *collisionPoint)
 
virtual void InsertVertex (unsigned int index)
 
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 void MaterialIndex (int index)
 
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
 
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 ()
 
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 ()
 
void Scale (int handleBar, float px, float py, Vertex *anchor=NULL)
 
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 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)
 
- Public Member Functions inherited from AttributeChangedNotifier
virtual ~AttributeChangedNotifier ()
 
- Public Member Functions inherited from WeakReferenceableMixin
void AddWeakReference (WeakReference *weakRef)
 
void NotifyWeakReferenceDestroyed (WeakReference *ref)
 

Public Attributes

GlsDisplayList _displayList
 

Protected Member Functions

virtual void DrawGeometry (void)
 
- Protected Member Functions inherited from DisplayObject
virtual void VaListSetVertices (unsigned int nPoints, va_list args)
 
virtual void VaListSetNormals (unsigned int nPoints, va_list args)
 
virtual void VaListSetTexCoords (unsigned int nPoints, va_list args)
 
void AllocateModelMatrix ()
 
bool ApplyDynamicRotation (void)
 
virtual void CalcDrawMatrix ()
 
void CalcDrawMatrixIfExists ()
 
virtual void CalculateMatrices (const OpenGLMatrices &newMatrices)
 
bool InsideVertexExtents (float x, float y, unsigned int nVerts, Vertex *verts, float tolerance)
 
void NeedCalculate (bool val)
 
void PickSetup (float x, float y, float z, Vertex *vertices, unsigned int vertex_cnt, const Vector &directionVector)
 
void PickCleanup (Vertex *vertices, unsigned int vertex_cnt)
 
int GetApplicableTextureIndex ()
 
int GetApplicableTextureRepeat ()
 
- Protected Member Functions inherited from WeakReferenceableMixin
 WeakReferenceableMixin (void)
 
virtual ~WeakReferenceableMixin ()
 

Additional Inherited Members

- Public Types inherited from DisplayObject
enum  AvailableAttributesEnum
 
- Static Public Member Functions inherited from DisplayObject
static void UseManualBlinkElapsedTime (bool useManualTime)
 
static void SetManualBlinkElapsedTime (double elapsedTime)
 
- Protected Attributes inherited from DisplayObject
int _alphaMode
 
bool _antiAlias
 
bool _attributesAdded
 
bool _blinking
 
float _blinkRate
 
GlsColor _color
 
bool _cullBackFace
 
GlsMatrixType _dcsMatrix
 
unsigned char _depthTest
 
GlsMatrixType_drawMatrix
 
unsigned char _lineStippleMultiplier
 
unsigned short _lineStipplePattern
 
float _lineWidth
 
Vertex _location
 
GlsMatrixType_modelMatrix
 
Vector_normals
 
unsigned int _nTex_vertices
 
unsigned int _nVertices
 
unsigned char _polygonEnd
 
unsigned char _polygonMode
 
int _polygonOffset
 
GlsMatrixType_projMatrix
 
unsigned char _shading
 
Vector_texCoord
 
GlsColor _textureBlendColor
 
int _textureIndex
 
unsigned char _textureMagFilter
 
unsigned char _textureMinFilter
 
unsigned char _textureMap
 
Vector _texturePoints [4]
 
unsigned char _textureRepeat
 
void * _userData
 
Vertex_vertices
 
int * _viewMatrix
 
bool _visible
 
- Protected Attributes inherited from WeakReferenceableMixin
DynamicArray< WeakReference * > * _weakRefs
 

Detailed Description

The glTriMesh class. Implements Triangle Meshes.

Constructor & Destructor Documentation

GLTriMesh ( unsigned int  nVertices,
Vertex vertices 
)

Creates a GLTriMesh with the vertices specified

Parameters
nVerticesThe number of vertices in the new polygon
verticesThe array of vertices for the polygon
GLTriMesh ( unsigned int  nVertices,
Vertex vertices,
Vertex location 
)

Creates a GLTriMesh with the vertices specified

Parameters
nVerticesThe number of vertices in the new polygon
verticesThe array of vertices for the polygon
locationThe location point of the object
GLTriMesh ( void  )

Allocate a (blank) GLTriMesh object

virtual ~GLTriMesh ( void  )
virtual

Destroy a GLTriMesh object

Member Function Documentation

virtual DisplayObject* CloneObject ( bool  generateNames = false)
virtual

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

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

Reimplemented from GLPolygon.

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 from DisplayObject.

virtual void CopyProperties ( DisplayObject src)
virtual

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

Parameters
srcThe object to copy properties from

Reimplemented from DisplayObject.

virtual void Draw ( void  )
virtual

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

Reimplemented from GLPolygon.

virtual void DrawGeometry ( void  )
protectedvirtual

Contains the actual OpenGL drawing commands to draw the object

GLMeshFace* Faces ( void  )
inline

Provides access to the faces stored in this mesh

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 from DisplayObject.

virtual void GetCppInterfaceDescriptionFree ( InterfaceListType array)
virtual

Frees the memory allocated by a previous call to GetCppInterfaceDescription

Parameters
arrayMemory allocated by a previous call to GetCppInterfaceDescription

Reimplemented from DisplayObject.

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 from DisplayObject.

void InvalidateGeometry ( void  )
inline

Causes the display list for this object to be recomputed

int MaterialIndex ( )
virtual

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

Reimplemented from DisplayObject.

void MaterialIndices ( DynamicArray< int >  indices)
virtual

Sets the vector of material indices.

Reimplemented from DisplayObject.

DynamicArray<int>& MaterialIndices ( )
virtual

Gets a vector of material indices.

Reimplemented from DisplayObject.

void NumberOfFaces ( unsigned int  n)

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

Parameters
nThe new number of faces for the mesh
unsigned int NumberOfFaces ( void  )
inline
Returns
The number of faces in this mesh
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
oldIndexOld material index
newIndexNew material index
virtual void SetAvailableAttributes ( unsigned int  value)
virtual

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

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

Reimplemented from DisplayObject.

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
aThe vertex index for the first vertex of the triangle
bThe vertex index for the second vertex of the triangle
cThe vertex index for the third vertex of the triangle
tindexThe texture index for triangle
materialIndexThe material index for triangle
void SetFaces ( unsigned int  nFaces,
GLMeshFace faces 
)

Sets all the faces of the mesh. Used in parser

Parameters
nFacesThe number of faces that will be set
facesAn array of GLMeshFaces with nFaces elements
virtual void SetValue ( int  spec,
va_list &  args 
)
virtual

Sets an attribute of this object using variable arguments

Parameters
specA GLS_Initializer tag
argsA variable argument list

Reimplemented from DisplayObject.

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
nVerticesNumber of vertices
verticesArray of initialized vertices
nFacesNumber of faces
facesArray of initialized faces
int TextureIndex ( void  )
virtual

Get the texture index for this object

Returns
The texture index for this object

Reimplemented from DisplayObject.

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 from DisplayObject.

void VaSetFaces ( unsigned int  numFaces,
  ... 
)

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

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

Member Data Documentation

GlsDisplayList _displayList

Stores object in display list for faster drawing


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