41 #ifndef _GL_TRI_MESH_H 
   42 #define _GL_TRI_MESH_H 
   59 class GlsGloFileAttribute;
 
   64     GLS_TRIMESH_FIRST_VALUE = GLS_LAST_INITIALIZER + 1,
 
   65     GLS_TRIMESH_USE_DISPLAY_LIST, 
 
   84     unsigned char color[ 4 ];    
 
   95     void DrawSolidMesh( 
unsigned int faceOffset, 
unsigned int faceCount, 
bool textureObject, 
bool gouraudShading, 
bool perVertexLighting );
 
   96     void DrawOutlineMesh();
 
  100     DISTI_DEPRECATED( 
"This identifier is forbidden by the C++ standard. Use BaseClass instead." )
 
  103     friend class GLTriMeshEditor;
 
  113     GLS_EXPORT 
int TextureIndex( 
void ) DISTI_METHOD_OVERRIDE;
 
  116     GLS_EXPORT 
void TextureIndex( 
int index ) DISTI_METHOD_OVERRIDE;
 
  143     virtual GLS_EXPORT 
void SetValue( 
int spec, va_list& args ) DISTI_METHOD_OVERRIDE;
 
  148     GLS_EXPORT 
void AssignPropertiesFromGroup( 
DisplayObject* src );
 
  163     GLS_EXPORT 
void ReplaceMaterial( 
unsigned int oldIndex, 
unsigned int newIndex );
 
  173     GLS_EXPORT 
void SetFace( 
unsigned int face, 
int a, 
int b, 
int c, 
int tindex, 
unsigned int materialIndex = 0 );
 
  179     GLS_EXPORT 
void VaSetFaces( 
unsigned int numFaces, ... );
 
  226     virtual GLS_EXPORT 
void Draw( 
void ) DISTI_METHOD_OVERRIDE;
 
  229     virtual GLS_EXPORT 
bool Hit( 
float x, 
float y, 
float z, 
float scale, const 
Vector& directionVector, 
Vector* collisionPoint ) DISTI_METHOD_OVERRIDE;
 
  238     virtual GLS_EXPORT 
void UseDisplayList( const 
bool& flag );
 
  239     virtual GLS_EXPORT 
bool UseDisplayList( 
void );
 
  251     GLS_EXPORT 
void DirtyTextureData( 
void );
 
  260     virtual GLS_EXPORT 
bool SetupTexture( 
const int textureIndex );
 
  270     unsigned int _nFaces; 
 
  281     bool                       _textureChangesDirty; 
 
  287     void RecalculateTextureChanges();
 
  297     bool FirstHit( 
const Vector& point, 
const Vector& directionVector, 
Vector* collisionPoint );
 
  306     bool BestHit( 
const Vector& point, 
const Vector& directionVector, 
Vector* collisionPoint );
 
  315     void CopyGeometryInternal( 
GLTriMesh* src );
 
  316     void CopyPropertiesInternal( 
GLTriMesh* src );
 
  324     unsigned int* _numFaces;
 
  330     virtual GLS_EXPORT ~DistiAttributeMeshFaceArray();
 
  332     virtual GLS_EXPORT 
bool OkToWrite() 
const;
 
  334     virtual GLS_EXPORT std::ostream& WriteValue( std::ostream& );
 
  335     virtual GLS_EXPORT std::istream& ReadValue( std::istream& );
 
#define DISTI_DEPRECATED(msg)
Defines whether this compiler supports the C++14 deprecated attribute. 
Definition: gls_cpp_lang_support.h:436
int MaterialIndex() override
void Invalidate(void)
Definition: gls_display_list.h:82
Definition: dynamic_array.h:66
The disti::DynamicArray class. A templated array of objects capable of dynamically growing...
Class to contain current OpenGL view, projection and draw matrices. 
Definition: util.h:471
virtual void PreDraw(const OpenGLMatrices ¤t, Culler &culler)
void ReplaceMaterial(unsigned int oldIndex, unsigned int newIndex)
virtual void CopyGeometry(DisplayObject *src) override
virtual void SetAvailableAttributes(unsigned int value) override
The Polygon class. Implements Polygons. 
Definition: glpolygon.h:55
virtual void Draw(void) override
The disti::GLPolygon class. Implements Polygons. 
int texture
Definition: gltrimesh.h:75
void SetFaces(unsigned int nFaces, GLMeshFace *faces)
unsigned int NumberOfFaces(void)
Definition: gltrimesh.h:156
Definition: gls_display_list.h:50
void SetFace(unsigned int face, int a, int b, int c, int tindex, unsigned int materialIndex=0)
Definition: gls_glo_file.h:988
The disti::DisplayObject class and global enumerations. 
void VaSetFaces(unsigned int numFaces,...)
unsigned int material
Definition: gltrimesh.h:76
virtual void SetValue(int spec, va_list &args) override
The glTriMesh class. Implements Triangle Meshes. 
Definition: gltrimesh.h:92
virtual DisplayObject * CloneObject(bool generateNames=false) override
virtual void CopyProperties(DisplayObject *src) override
int TextureIndex(void) override
Definition: disti_metadata.h:186
void InvalidateGeometry(void)
Definition: gltrimesh.h:243
Definition: gltrimesh.h:81
virtual void GetCppInterfaceDescriptionFree(InterfaceListType *array) override
Structure for holding mesh vertex indices. 
Definition: gltrimesh.h:72
GlsDisplayList _displayList
Definition: gltrimesh.h:109
Definition: callback_caller_base.h:55
virtual bool Hit(float x, float y, float z, float scale, const Vector &directionVector, Vector *collisionPoint) override
Definition: gltrimesh.h:321
void SetVerticesAndFaces(unsigned int nVertices, const GLMeshVertex *vertices, unsigned int nFaces, const GLMeshFace *faces)
virtual InterfaceListType * GetCppInterfaceDescription(InterfaceListType *addToThisList=NULL) override
Definition: gls_index_array.h:52
Macros and helper code to determine what subset of C++11/14/17 is available. 
The disti::GlsIndexArray class, for managing index buffers. 
Definition: disti_metadata.h:85
Definition: bmpimage.h:46
GLMeshFace * Faces(void)
Definition: gltrimesh.h:131
virtual void DrawGeometry(void)
The disti::GlsDisplayList class. 
DynamicArray< int > & MaterialIndices() override