// // Vrml 97 library // Copyright (C) 1998 Chris Morley // // %W% %G% // VrmlNodeSwitch.h #ifndef _VRMLNODESWITCH_ #define _VRMLNODESWITCH_ #include "VrmlMFNode.h" #include "VrmlSFInt.h" #include "VrmlNodeChild.h" class VrmlNodeSwitch : public VrmlNodeChild { public: // Define the fields of all built in switch nodes static VrmlNodeType *defineType(VrmlNodeType *t = 0); virtual VrmlNodeType *nodeType() const; VrmlNodeSwitch(VrmlScene *); virtual ~VrmlNodeSwitch(); virtual VrmlNode *cloneMe() const; void cloneChildren(VrmlNamespace *); virtual VrmlNodeSwitch* toSwitch() const; //LarryD virtual bool isModified() const; virtual void clearFlags(); 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); VrmlMFNode *getChoiceNodes() { return &d_choice;} virtual int getWhichChoice() { return d_whichChoice.get(); } protected: VrmlMFNode d_choice; VrmlSFInt d_whichChoice; }; #endif // _VRMLNODESWITCH_