00001 #ifndef X3DTK_X3D_INDEXEDFACESET_H 00002 #define X3DTK_X3D_INDEXEDFACESET_H 00003 00004 #include "X3DTypes.h" 00005 #include "X3D_X3DComposedGeometryNode.h" 00006 00007 namespace X3DTK { 00008 namespace X3D { 00009 00018 class IndexedFaceSet : public X3DComposedGeometryNode 00019 { 00020 public: 00022 IndexedFaceSet(); 00024 IndexedFaceSet(X3DColorNode *color, 00025 X3DCoordinateNode *coord, 00026 X3DNormalNode *normal, 00027 X3DTextureCoordinateNode *texCoord, 00028 const SFBool &ccw, 00029 const MFInt32 &colorIndex, 00030 const SFBool &colorPerVertex, 00031 const SFBool &convex, 00032 const MFInt32 &coordIndex, 00033 const SFFloat &creaseAngle, 00034 const MFInt32 &normalIndex, 00035 const SFBool &normalPerVertex, 00036 const SFBool &solid, 00037 const MFInt32 &texCoordIndex); 00039 virtual SFAbstractNode clone() const; 00041 virtual ~IndexedFaceSet(); 00042 00044 void setColorIndex(const MFInt32 &colorIndex); 00046 void setConvex(const SFBool &convex); 00048 void setCoordIndex(const MFInt32 &coordIndex); 00050 void setCreaseAngle(const SFFloat &creaseAngle); 00052 void setNormalIndex(const MFInt32 &normalIndex); 00054 void setTexCoordIndex(const MFInt32 &texCoordIndex); 00055 00057 inline const MFInt32 &getColorIndex() const {return _colorIndex;}; 00059 inline const SFBool &getConvex() const {return _convex;}; 00061 inline const MFInt32 &getCoordIndex() const {return _coordIndex;}; 00063 inline const SFFloat &getCreaseAngle() const {return _creaseAngle;}; 00065 inline const MFInt32 &getNormalIndex() const {return _normalIndex;}; 00067 inline const MFInt32 &getTexCoordIndex() const {return _texCoordIndex;}; 00068 00070 virtual void load(const X3DFileElement *element); 00072 virtual SFString &write(SFString &output) const; 00073 00074 protected: 00076 IndexedFaceSet(const IndexedFaceSet &G); 00077 00078 private: 00080 MFInt32 _colorIndex; 00082 SFBool _convex; 00084 MFInt32 _coordIndex; 00086 SFFloat _creaseAngle; 00088 MFInt32 _normalIndex; 00090 MFInt32 _texCoordIndex; 00091 }; 00092 00093 } 00094 } 00095 00096 #endif