// // Vrml 97 library // Copyright (C) 1998 Chris Morley // // %W% %G% // VrmlNodeShape.h #ifndef _VRMLNODESHAPE_ #define _VRMLNODESHAPE_ #include "VrmlNodeChild.h" #include "VrmlSFNode.h" #include "Viewer.h" class VrmlNodeShape : public VrmlNodeChild { public: // Define the fields of Shape nodes static VrmlNodeType *defineType(VrmlNodeType *t = 0); virtual VrmlNodeType *nodeType() const; VrmlNodeShape(VrmlScene *); virtual ~VrmlNodeShape(); virtual VrmlNode *cloneMe() const; virtual void cloneChildren(VrmlNamespace*); virtual bool isModified() const; virtual void clearFlags(); virtual VrmlNodeShape* toShape() const; virtual void addToScene( VrmlScene *s, const char *relUrl ); virtual void copyRoutes(VrmlNamespace *ns) const; virtual ostream& printFields(ostream& os, int indent); virtual void render(Viewer *); virtual void setField(const char *fieldName, const VrmlField &fieldValue); virtual VrmlNode* getAppearance() { return d_appearance.get(); } virtual VrmlNode* getGeometry() { return d_geometry.get(); } private: VrmlSFNode d_appearance; VrmlSFNode d_geometry; Viewer::Object d_viewerObject; // move to VrmlNode.h ? ... }; #endif // _VRMLNODESHAPE_