00001 #ifndef X3DTK_X3D_X3DCOMPOSEDGEOMETRYNODE_H 00002 #define X3DTK_X3D_X3DCOMPOSEDGEOMETRYNODE_H 00003 00004 #include "X3DTypes.h" 00005 #include "X3D_X3DGeometry3DNode.h" 00006 00007 namespace X3DTK { 00008 namespace X3D { 00009 00010 class X3DColorNode; 00011 class X3DCoordinateNode; 00012 class X3DNormalNode; 00013 class X3DTextureCoordinateNode; 00014 00023 class X3DComposedGeometryNode : public X3DGeometry3DNode 00024 { 00025 public: 00027 X3DComposedGeometryNode(); 00029 X3DComposedGeometryNode(X3DColorNode *color, 00030 X3DCoordinateNode *coord, 00031 X3DNormalNode *normal, 00032 X3DTextureCoordinateNode *texCoord, 00033 const SFBool &ccw, 00034 const SFBool &colorPerVertex, 00035 const SFBool &normalPerVertex, 00036 const SFBool &solid); 00038 virtual ~X3DComposedGeometryNode(); 00039 00041 void setColor(X3DColorNode *color); 00043 void setCoord(X3DCoordinateNode *coord); 00045 void setNormal(X3DNormalNode *normal); 00047 void setTexCoord(X3DTextureCoordinateNode *texCoord); 00049 void setCcw(const SFBool &ccw); 00051 void setColorPerVertex(const SFBool &colorPerVertex); 00053 void setNormalPerVertex(const SFBool &normalPerVertex); 00055 void setSolid(const SFBool &solid); 00056 00058 inline SFNode getColor() const {return _color;}; 00060 inline SFNode getCoord() const {return _coord;}; 00062 inline SFNode getNormal() const {return _normal;}; 00064 inline SFNode getTexCoord() const {return _texCoord;}; 00066 inline const SFBool &getCcw() const {return _ccw;}; 00068 inline const SFBool &getColorPerVertex() const {return _colorPerVertex;}; 00070 inline const SFBool &getNormalPerVertex() const {return _normalPerVertex;}; 00072 inline const SFBool &getSolid() const {return _solid;}; 00073 00075 virtual MFAbstractNode getChildList() const; 00076 00079 virtual bool addChild(const SFAbstractNode &N); 00082 virtual bool setChild(const SFAbstractNode &N); 00084 virtual bool removeChild(const SFAbstractNode &N); 00085 00087 virtual void load(const X3DFileElement *element); 00089 virtual SFString &write(SFString &output) const; 00090 00091 protected: 00093 X3DComposedGeometryNode(const X3DComposedGeometryNode &N); 00094 00095 private: 00097 SFNode _color; 00099 SFNode _coord; 00101 SFNode _normal; 00103 SFNode _texCoord; 00105 SFBool _ccw; 00107 SFBool _colorPerVertex; 00109 SFBool _normalPerVertex; 00111 SFBool _solid; 00112 }; 00113 00114 } 00115 } 00116 00117 #endif