Home | Hierarchy | Members | Alphabetical | Related Pages |
00001 #ifndef XDKWRL_GROUP_H 00002 #define XDKWRL_GROUP_H 00003 00004 #include <xdkwrl/node.h> 00005 #include <xdkwrl/fieldtypes/mfnode.h> 00006 #include <xdkwrl/fieldtypes/sfvec3f.h> 00007 00008 namespace wrl 00009 { 00010 //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 00011 // Interface of Group 00012 //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 00013 class Group : public Node 00014 { 00015 public: 00016 Group(const char* name=""); 00017 virtual ~Group(); 00018 virtual inline unsigned int nbFields() const; 00019 virtual FieldHandle field(const std::string& n); 00020 virtual FieldHandle field(unsigned int i); 00021 virtual bool isSetToDefaultValue(unsigned int i) const; 00022 virtual inline unsigned int nbEventsIn() const; 00023 virtual EventInHandle eventIn(const std::string& n); 00024 virtual EventInHandle eventIn(unsigned int i); 00025 virtual inline unsigned int nbEventsOut() const; 00026 virtual EventOutHandle eventOut(const std::string& n); 00027 virtual EventOutHandle eventOut(unsigned int i); 00028 inline const char* typeName() const; 00029 virtual Node* duplicate() const; 00030 virtual Node* duplicate(std::map<const Node*,Node*>&) const; 00031 /*!@name Exposed Fields 00032 * A field that is capable of receiving events via an eventIn to 00033 * change its value(s), and generating events via an eventOut 00034 * when its value(s) change. 00035 */ 00036 //!@{ 00037 /*! 00038 * See <a href="#_details" class="md">Detailed Description</a> 00039 * for meaning of this field. 00040 * Default value is set to MFNode default value 00041 */ 00042 MFNode children; 00043 //!@} 00044 /*!@name Fields 00045 * A property or attribute of a node. Each node type has a fixed set 00046 * of fields. Fields may contain various kinds of data and one or many 00047 * values. Each field has a default value. 00048 */ 00049 //!@{ 00050 /*! 00051 * See <a href="#_details" class="md">Detailed Description</a> 00052 * for meaning of this field. 00053 * Default value is set to 00054 \code 00055 bboxCenter.setXYZ(0,0,0); 00056 \endcode 00057 */ 00058 SFVec3f bboxCenter; 00059 /*! 00060 * See <a href="#_details" class="md">Detailed Description</a> 00061 * for meaning of this field. 00062 * Default value is set to 00063 \code 00064 bboxSize.setXYZ(-1,-1,-1); 00065 \endcode 00066 */ 00067 SFVec3f bboxSize; 00068 //!@} 00069 /*!@name Events In 00070 * 00071 */ 00072 //!@{ 00073 /*! 00074 * See <a href="#_details" class="md">Detailed Description</a> 00075 * for meaning of this event. 00076 */ 00077 EventIn<MFNode> addChildren; 00078 /*! 00079 * See <a href="#_details" class="md">Detailed Description</a> 00080 * for meaning of this event. 00081 */ 00082 EventIn<MFNode> removeChildren; 00083 /*! 00084 * Set event associated to exposedField children 00085 */ 00086 EventIn<MFNode> set_children; 00087 //!@} 00088 /*!@name Events Out 00089 * 00090 */ 00091 //!@{ 00092 /*! 00093 * Changed event associated to exposedField children 00094 */ 00095 EventOut<MFNode> children_changed; 00096 //!@} 00097 }; 00098 }; 00099 //************************************************************ 00100 // Implementation of Group 00101 //************************************************************ 00102 /*! 00103 * Returns <code>"Group"</code>. Useful for printing. 00104 */ 00105 inline const char* 00106 wrl::Group::typeName() const 00107 { 00108 return "Group"; 00109 } 00110 /*! 00111 * Returns the number of fields (exposed or not) for this node type. 00112 */ 00113 inline unsigned int 00114 wrl::Group::nbFields() const 00115 { 00116 return 3; 00117 } 00118 /*! 00119 * Returns the number of events in for this node type. 00120 */ 00121 inline unsigned int 00122 wrl::Group::nbEventsIn() const 00123 { 00124 return 2; 00125 } 00126 /*! 00127 * Returns the number of events out for this node type. 00128 */ 00129 inline unsigned int 00130 wrl::Group::nbEventsOut() const 00131 { 00132 return 0; 00133 } 00134 #endif // XDKWRL_GROUP_H 00135 00136 // Local variables section. 00137 // This is only used by emacs! 00138 // Local Variables: 00139 // ff-search-directories: ("../../" "../../../src/xdkwrl/nodes") 00140 // End:
Generated on 28 Jun 2006 with
![]() |
|