// // Vrml 97 library // Copyright (C) 1998 Chris Morley // // %W% %G% // VrmlNodeGroup.h #ifndef _VRMLNODEGROUP_ #define _VRMLNODEGROUP_ #include "VrmlMFNode.h" #include "VrmlSFString.h" #include "VrmlSFVec3f.h" #include "VrmlNodeChild.h" #include "Viewer.h" class VrmlNodeGroup : public VrmlNodeChild { public: // Define the fields of all built in group nodes static VrmlNodeType *defineType(VrmlNodeType *t = 0); virtual VrmlNodeType *nodeType() const; VrmlNodeGroup(VrmlScene *s = 0); virtual ~VrmlNodeGroup(); virtual VrmlNode *cloneMe() const; virtual void cloneChildren(VrmlNamespace *); virtual VrmlNodeGroup* toGroup() const; virtual bool isModified() const; virtual void clearFlags(); virtual void addToScene( VrmlScene *s, const char *relativeUrl ); virtual void copyRoutes(VrmlNamespace *ns) const; virtual ostream& printFields(ostream& os, int indent); virtual void render(Viewer *); virtual void accumulateTransform(VrmlNode*); void activate( double timeStamp, bool isOver, bool isActive, double *p ); void addChildren( const VrmlMFNode &children ); void removeChildren( const VrmlMFNode &children ); void removeChildren(); virtual void eventIn(double timeStamp, const char *eventName, const VrmlField *fieldValue); virtual void setField(const char *fieldName, const VrmlField &fieldValue); int size(); VrmlNode *child(int index); virtual VrmlNode* getParentTransform(); // LarryD Feb 11/99 VrmlMFNode *getNodes() { return &d_children;} protected: VrmlSFVec3f d_bboxCenter; VrmlSFVec3f d_bboxSize; VrmlMFNode d_children; VrmlSFString d_relative; VrmlNode *d_parentTransform; Viewer::Object d_viewerObject; }; #endif // _VRMLNODEGROUP_