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