Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

MESH_X3DData.h

Go to the documentation of this file.
00001 
00002 //                            X3DData.h                                       //
00004 
00005 #ifndef X3DDATA_H
00006 #define X3DDATA_H
00007 
00008 #include "X3DTypes.h"
00009 #include "MESH_SceneGraphTypes.h"
00010 
00011 #include <iostream>
00012 #include <map>
00013 #include <list>
00014 
00015 namespace X3DTK {
00016 namespace MESH {
00017 
00018 class VertexData;
00019 class EdgeData;
00020 class FaceData;
00021 
00023 
00024 class VertexData
00025 {
00026 public:
00028   VertexData();
00030   ~VertexData();
00031   
00033   void setPoint(const SFPoint3f &point);
00035   void setNormalOfFace(const SFVec3f &normal, SFTemplateFace<FaceData, VertexData, EdgeData> *face);
00037   void setColorOfFace(const SFColorRGBA &color, SFTemplateFace<FaceData, VertexData, EdgeData> *face);
00039   void setTexCoordOfFace(const SFVec2f &texCoord, SFTemplateFace<FaceData, VertexData, EdgeData> *face);
00040     
00042   inline const SFPoint3f &getPoint() const {return _point;};
00044   const SFVec3f &getNormalOfFace(SFTemplateFace<FaceData, VertexData, EdgeData> *face) const;
00046   const SFColorRGBA &getColorOfFace(SFTemplateFace<FaceData, VertexData, EdgeData> *face) const;
00048   const SFVec2f &getTexCoordOfFace(SFTemplateFace<FaceData, VertexData, EdgeData> *face) const;
00049 
00051   inline const MFVec3f &getNormalArray() const {return _normalArray;};
00053   inline const MFColorRGBA &getColorArray() const {return _colorArray;};
00055   inline const MFVec2f &getTexCoordArray() const {return _texCoordArray;};
00056   
00058   inline std::map<SFTemplateFace<FaceData, VertexData, EdgeData> *, unsigned short> &getNormalMap() {return _normalMap;};
00060   inline std::map<SFTemplateFace<FaceData, VertexData, EdgeData> *, unsigned short> &getColorMap() {return _colorMap;};
00062   inline std::map<SFTemplateFace<FaceData, VertexData, EdgeData> *, unsigned short> &getTexCoordMap() {return _texCoordMap;};
00063     
00064 private:
00065   SFPoint3f _point;
00066   MFVec3f _normalArray;
00067   std::map<SFTemplateFace<FaceData, VertexData, EdgeData> *, unsigned short> _normalMap;
00068 
00069   MFColorRGBA _colorArray;
00070   std::map<SFTemplateFace<FaceData, VertexData, EdgeData> *, unsigned short> _colorMap;
00071 
00072   MFVec2f _texCoordArray;
00073   std::map<SFTemplateFace<FaceData, VertexData, EdgeData> *, unsigned short> _texCoordMap;
00074 };
00075 
00077 
00078 class EdgeData
00079 {
00080 public:
00082   EdgeData();
00083 };
00084 
00086 
00087 class FaceData
00088 {
00089 public:
00091   FaceData();
00092   
00094   void setNormal(const SFVec3f &normal);
00096   void setColor(const SFColorRGBA &color);
00097   
00099   inline const SFVec3f &getNormal() const {return _normal;};
00101   inline const SFColorRGBA &getColor() const {return _color;};
00102   
00103 private:
00104   SFVec3f _normal;
00105   SFColorRGBA _color;
00106 };
00107 
00109 
00110 class MeshData
00111 {
00112 public:
00114   MeshData();
00115   
00117   void setNormal(bool value);
00119   void setColor(bool value);
00121   void setTexCoord(bool value);
00123   void setNormalPerVertex(bool value);
00125   void setColorPerVertex(bool value);
00126   
00128   inline bool hasNormal() const {return _normal;};
00130   inline bool hasColor() const {return _color;};
00132   inline bool hasTexCoord() const {return _texCoord;};
00134   inline bool getNormalPerVertex() const {return _normalPerVertex;};
00136   inline bool getColorPerVertex() const {return _colorPerVertex;};
00137   
00138 private:
00139   bool _normal; 
00140   bool _color; 
00141   bool _texCoord;
00142   bool _normalPerVertex;
00143   bool _colorPerVertex;
00144 };
00145 
00146 }
00147 }
00148 
00149 #endif

Generated on Thu Dec 4 13:25:47 2003 for X3DToolKit by doxygen1.2.18