00001
00002
00003
00005
00006
00011
00016
00021
00023
00024 #ifndef INDEXEDFACESET_H
00025 #define INDEXEDFACESET_H
00026
00027 #include "X3DTypes.h"
00028 #include "X3DComposedGeometryNode.h"
00029
00030 namespace X3DTK {
00031 namespace X3D {
00032
00037
00038 class IndexedFaceSet : public X3DComposedGeometryNode
00039 {
00040 public:
00042 IndexedFaceSet();
00044 IndexedFaceSet(const X3DColorNode *color,
00045 const X3DCoordinateNode *coord,
00046 const X3DNormalNode *normal,
00047 const X3DTextureCoordinateNode *texCoord,
00048 SFBool ccw,
00049 const MFInt32 &colorIndex,
00050 SFBool colorPerVertex,
00051 SFBool convex,
00052 const MFInt32 &coordIndex,
00053 SFFloat creaseAngle,
00054 const MFInt32 &normalIndex,
00055 SFBool normalPerVertex,
00056 SFBool solid,
00057 const MFInt32 &texCoordIndex);
00059 virtual SFNode clone() const;
00061 virtual ~IndexedFaceSet();
00062
00064 void setColorIndex(const MFInt32 &colorIndex);
00066 void setConvex(SFBool convex);
00068 void setCoordIndex(const MFInt32 &coordIndex);
00070 void setCreaseAngle(SFFloat creaseAngle);
00072 void setNormalIndex(const MFInt32 &normalIndex);
00074 void setTexCoordIndex(const MFInt32 &texCoordIndex);
00075
00077 inline const MFInt32 &getColorIndex() const {return _colorIndex;};
00079 inline SFBool getConvex() const {return _convex;};
00081 inline const MFInt32 &getCoordIndex() const {return _coordIndex;};
00083 inline SFFloat getCreaseAngle() const {return _creaseAngle;};
00085 inline const MFInt32 &getNormalIndex() const {return _normalIndex;};
00087 inline const MFInt32 &getTexCoordIndex() const {return _texCoordIndex;};
00088
00090 virtual void load(const X3DFileElement *element);
00092 virtual SFString write() const;
00093
00094 protected:
00096 IndexedFaceSet(const IndexedFaceSet &G);
00097
00098 private:
00100 MFInt32 _colorIndex;
00102 SFBool _convex;
00104 MFInt32 _coordIndex;
00106 SFFloat _creaseAngle;
00108 MFInt32 _normalIndex;
00110 MFInt32 _texCoordIndex;
00111 };
00112
00113 }
00114 }
00115
00116 #endif