00001 #ifndef __domMesh_h__ 00002 #define __domMesh_h__ 00003 00004 #include <dae/daeDocument.h> 00005 #include <dom/domTypes.h> 00006 #include <dom/domElements.h> 00007 00008 #include <dom/domSource.h> 00009 #include <dom/domVertices.h> 00010 #include <dom/domLines.h> 00011 #include <dom/domLinestrips.h> 00012 #include <dom/domPolygons.h> 00013 #include <dom/domPolylist.h> 00014 #include <dom/domTriangles.h> 00015 #include <dom/domTrifans.h> 00016 #include <dom/domTristrips.h> 00017 #include <dom/domExtra.h> 00018 class DAE; 00019 00024 class domMesh : public daeElement 00025 { 00026 public: 00027 virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::MESH; } 00028 static daeInt ID() { return 336; } 00029 virtual daeInt typeID() const { return ID(); } 00030 00031 protected: // Elements 00035 domSource_Array elemSource_array; 00039 domVerticesRef elemVertices; 00043 domLines_Array elemLines_array; 00047 domLinestrips_Array elemLinestrips_array; 00051 domPolygons_Array elemPolygons_array; 00055 domPolylist_Array elemPolylist_array; 00059 domTriangles_Array elemTriangles_array; 00063 domTrifans_Array elemTrifans_array; 00067 domTristrips_Array elemTristrips_array; 00071 domExtra_Array elemExtra_array; 00075 daeElementRefArray _contents; 00079 daeUIntArray _contentsOrder; 00080 00084 daeTArray< daeCharArray * > _CMData; 00085 00086 00087 public: //Accessors and Mutators 00092 domSource_Array &getSource_array() { return elemSource_array; } 00097 const domSource_Array &getSource_array() const { return elemSource_array; } 00102 const domVerticesRef getVertices() const { return elemVertices; } 00107 domLines_Array &getLines_array() { return elemLines_array; } 00112 const domLines_Array &getLines_array() const { return elemLines_array; } 00117 domLinestrips_Array &getLinestrips_array() { return elemLinestrips_array; } 00122 const domLinestrips_Array &getLinestrips_array() const { return elemLinestrips_array; } 00127 domPolygons_Array &getPolygons_array() { return elemPolygons_array; } 00132 const domPolygons_Array &getPolygons_array() const { return elemPolygons_array; } 00137 domPolylist_Array &getPolylist_array() { return elemPolylist_array; } 00142 const domPolylist_Array &getPolylist_array() const { return elemPolylist_array; } 00147 domTriangles_Array &getTriangles_array() { return elemTriangles_array; } 00152 const domTriangles_Array &getTriangles_array() const { return elemTriangles_array; } 00157 domTrifans_Array &getTrifans_array() { return elemTrifans_array; } 00162 const domTrifans_Array &getTrifans_array() const { return elemTrifans_array; } 00167 domTristrips_Array &getTristrips_array() { return elemTristrips_array; } 00172 const domTristrips_Array &getTristrips_array() const { return elemTristrips_array; } 00177 domExtra_Array &getExtra_array() { return elemExtra_array; } 00182 const domExtra_Array &getExtra_array() const { return elemExtra_array; } 00187 daeElementRefArray &getContents() { return _contents; } 00192 const daeElementRefArray &getContents() const { return _contents; } 00193 00194 protected: 00198 domMesh(DAE& dae) : daeElement(dae), elemSource_array(), elemVertices(), elemLines_array(), elemLinestrips_array(), elemPolygons_array(), elemPolylist_array(), elemTriangles_array(), elemTrifans_array(), elemTristrips_array(), elemExtra_array() {} 00202 virtual ~domMesh() { daeElement::deleteCMDataArray(_CMData); } 00206 virtual domMesh &operator=( const domMesh &cpy ) { (void)cpy; return *this; } 00207 00208 public: // STATIC METHODS 00213 static DLLSPEC daeElementRef create(DAE& dae); 00219 static DLLSPEC daeMetaElement* registerElement(DAE& dae); 00220 }; 00221 00222 00223 #endif