00001 00002 00003 00005 00006 00011 00016 00022 00024 00025 00030 00035 00040 // X3DComposedGeometryNode.h // 00042 00043 #ifndef X3DCOMPOSEDGEOMETRYNODE_H 00044 #define X3DCOMPOSEDGEOMETRYNODE_H 00045 00046 #include "X3DTypes.h" 00047 #include "X3DGeometry3DNode.h" 00048 00049 namespace X3DTK { 00050 namespace X3D { 00051 00052 class X3DColorNode; 00053 class X3DCoordinateNode; 00054 class X3DNormalNode; 00055 class X3DTextureCoordinateNode; 00056 00061 00062 class X3DComposedGeometryNode : public X3DGeometry3DNode 00063 { 00064 public: 00066 X3DComposedGeometryNode(); 00068 X3DComposedGeometryNode(const X3DColorNode *color, 00069 const X3DCoordinateNode *coord, 00070 const X3DNormalNode *normal, 00071 const X3DTextureCoordinateNode *texCoord, 00072 SFBool ccw, 00073 SFBool colorPerVertex, 00074 SFBool normalPerVertex, 00075 SFBool solid); 00077 virtual SFNode clone() const; 00079 virtual ~X3DComposedGeometryNode(); 00080 00082 void setColor(const X3DColorNode *color); 00084 void setCoord(const X3DCoordinateNode *coord); 00086 void setNormal(const X3DNormalNode *normal); 00088 void setTexCoord(const X3DTextureCoordinateNode *texCoord); 00090 void setCcw(SFBool ccw); 00092 void setColorPerVertex(SFBool colorPerVertex); 00094 void setNormalPerVertex(SFBool normalPerVertex); 00096 void setSolid(SFBool solid); 00097 00099 inline SFNode getColor() const {return _color;}; 00101 inline SFNode getCoord() const {return _coord;}; 00103 inline SFNode getNormal() const {return _normal;}; 00105 inline SFNode getTexCoord() const {return _texCoord;}; 00107 inline SFBool getCcw() const {return _ccw;}; 00109 inline SFBool getColorPerVertex() const {return _colorPerVertex;}; 00111 inline SFBool getNormalPerVertex() const {return _normalPerVertex;}; 00113 inline SFBool getSolid() const {return _solid;}; 00114 00117 virtual bool addChild(const SFAbstractNode &N); 00120 virtual bool setChild(const SFAbstractNode &N); 00122 virtual bool removeChild(const SFAbstractNode &N); 00123 00125 virtual void load(const X3DFileElement *element); 00127 virtual SFString write() const; 00128 00129 protected: 00131 X3DComposedGeometryNode(const X3DComposedGeometryNode &N); 00132 00133 private: 00135 SFNode _color; 00137 SFNode _coord; 00139 SFNode _normal; 00141 SFNode _texCoord; 00143 SFBool _ccw; 00145 SFBool _colorPerVertex; 00147 SFBool _normalPerVertex; 00149 SFBool _solid; 00150 }; 00151 00152 } 00153 } 00154 00155 #endif