00001 00002 // X3DShapeNode.h // 00004 00005 #ifndef X3DSHAPENODE_H 00006 #define X3DSHAPENODE_H 00007 00008 #include "X3DTypes.h" 00009 #include "X3DChildNode.h" 00010 00011 namespace X3DTK { 00012 00013 class X3DGeometryNode; 00014 class X3DAppearanceNode; 00015 00020 00021 class X3DShapeNode : public X3DChildNode 00022 { 00023 public: 00025 X3DShapeNode(); 00027 X3DShapeNode(const X3DGeometryNode *geometry, 00028 const X3DAppearanceNode *appearance); 00030 virtual SFNode clone() const; 00032 virtual ~X3DShapeNode(); 00033 00035 void setGeometry(const X3DGeometryNode *geometry); 00037 void setAppearance(const X3DAppearanceNode *appearance); 00038 00040 inline SFNode getGeometry() const {return geometry_;}; 00042 inline SFNode getAppearance() const {return appearance_;}; 00043 00046 bool addChild(const SFNode &N); 00049 bool setChild(const SFNode &N); 00051 bool removeChild(const SFNode &N); 00052 00053 protected: 00055 X3DShapeNode(const X3DShapeNode &N); 00056 00058 virtual void removeScenesToChildren(const MFScene &sceneList); 00060 virtual void addScenesToChildren(const MFScene &sceneList); 00061 00062 SFNode geometry_; 00063 SFNode appearance_; 00064 }; 00065 00066 } 00067 00068 #endif