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