1 /* 2 * Copyright (C) 2005-2007 MakeHuman Project 3 * 4 * This program is free software; you can redistribute it and/or 5 * modify it under the terms of the GNU General Public License as 6 * published by the Free Software Foundation; either version 3 of 7 * the License, or (at your option) any later version. 8 * 9 * This program is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 * General Public License for more details. 13 * 14 * You should have received a copy of the GNU General Public License 15 * along with this program; if not, write to the Free Software Foun- 16 * dation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 17 * USA 18 * 19 * File: RawMesh.h 20 * Project: MakeHuman <info@makehuman.org>, http://www.makehuman.org/ 21 * Library: ANIMORPH 22 * 23 * For individual developers look into the AUTHORS file. 24 * 25 */ 26 27 #ifndef RAWMESH_H 28 #define RAWMESH_H 1 29 30 #ifdef HAVE_CONFIG_H 31 #include <config.h> 32 #endif 33 34 #include "FaceGroup.h" 35 #include "VertexVector.h" 36 37 namespace Animorph { 38 39 /*! \brief A Mesh that is not poseable or morphable anymore 40 */ 41 class RawMesh 42 { 43 private: 44 FaceVector facevector; 45 VertexVector vertexvector; 46 FaceGroup bodyfaces; 47 FaceGroup clothesgroup; 48 //FaceGroup facegroup; 49 50 string name; 51 52 public: 53 RawMesh(); 54 ~RawMesh(); 55 56 public: 57 /**** get Pointer API ****/ 58 /*************************/ 59 60 /*! 61 * \return a pointer to the morphed VertexVector of this Mesh 62 */ getVertexVectorPtr()63 VertexVector *getVertexVectorPtr () {return &vertexvector;} 64 65 /*! 66 * \return a pointer to the FaceVector of this Mesh 67 */ getFaceVectorPtr()68 FaceVector *getFaceVectorPtr () {return &facevector;} 69 70 /**** get Reference API ****/ 71 /***************************/ 72 73 /*! 74 * \return a reference to the morphed VertexVector of this Mesh 75 */ getVertexVectorRef()76 VertexVector &getVertexVectorRef () {return vertexvector;} 77 78 /*! 79 * \return a reference to the FaceVector of this Mesh 80 */ getFaceVectorRef()81 FaceVector &getFaceVectorRef () {return facevector;} 82 83 /*! 84 * \return a reference to the BodyFaces of the Mesh 85 */ getBodyFacesRef()86 FaceGroup &getBodyFacesRef () {return bodyfaces;} 87 88 /*! 89 * \return a reference to the FaceGroup of the Mesh 90 */ 91 //FaceGroup &getFaceGroupRef () {return facegroup;} 92 93 /*! 94 * \return a reference to the ClothesGroup of the Mesh 95 */ getClothesGroupRef()96 FaceGroup &getClothesGroupRef () {return clothesgroup;} 97 98 /**** set Reference API ****/ 99 /***************************/ 100 setVertexVector(const VertexVector & inVertexVector)101 void setVertexVector(const VertexVector& inVertexVector) {vertexvector = inVertexVector;} 102 setFaceVector(const FaceVector & inFaceVector)103 void setFaceVector(const FaceVector& inFaceVector) {facevector = inFaceVector;} 104 setBodyFaces(const FaceGroup & inBodyFaces)105 void setBodyFaces(const FaceGroup& inBodyFaces) {bodyfaces = inBodyFaces;} 106 107 //void setFaceGroup(const FaceGroup& inFaceGroup) {facegroup = inFaceGroup;} 108 setClothesGroup(const FaceGroup & inClothesGroup)109 void setClothesGroup(const FaceGroup& inClothesGroup) {clothesgroup = inClothesGroup;} 110 setName(const string & inName)111 void setName(const string &inName) {name = inName;} getName()112 const string& getName() {return name;} 113 114 }; 115 116 } 117 118 #endif // RAWMESH_H 119