00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00013
00017
00019
00020
00021
00023
00024 #ifndef _MESH_H
00025 #define _MESH_H
00026
00027 #include <eclipseray/eclipse.h>
00028 #include <eclipseray/yrtypes.h>
00029 #include <eclipseray/ecscene.h>
00030
00031 class Buffer;
00032 class Material;
00033 class Matrix;
00034
00036
00041
00048
00050 class Mesh : public EclipseObject
00051 {
00052 DECLARE_PYTHON_HEADER;
00053
00054 public:
00055
00074 Mesh( const char* a_sID,
00075 Buffer* a_pVertexBuffer, unsigned int a_nVertexOffset, unsigned int a_nVertexCount,
00076 Buffer* a_pUVBuffer, unsigned int a_nUVOffset, unsigned int a_nUVCount,
00077 Buffer* a_pIndexBuffer, unsigned int a_nIndexOffset, unsigned int a_nTriangleCount,
00078 Scene* a_pScene, Material* a_pMaterial, Matrix* a_pMatrix = NULL );
00079
00080
00081
00082
00083
00087 inline YRTriangleObject* GetYRTrimesh(){
00088 return m_pScene->GetScenePtr()->getMesh( m_nMeshID );
00089 };
00090
00091
00092
00093
00094
00095
00096
00102 static bool PyTypeCheck( PYOBJECT a_pObject );
00103
00109 virtual PYOBJECT PyAsString();
00110
00111 protected:
00112
00114 ~Mesh();
00115
00116
00117 bool CreateMesh( const char* a_sID, Scene* a_pScene,
00118 Buffer* a_pVertices, unsigned int a_nVertexOffset, unsigned int a_nVertexCount,
00119 Buffer* a_pUVs, unsigned int a_nUVOffset, unsigned int a_nUVCount,
00120 Buffer* a_pIndices, unsigned int a_nIndexOffset, unsigned int a_nTriangleCount,
00121 const Matrix& a_matrix );
00122
00128 virtual void DeleteObject();
00129
00130 private:
00131
00132 Material* m_pMaterial;
00133 Scene* m_pScene;
00134 YRObjectID m_nMeshID;
00135 };
00136
00137 #endif