Home Hierarchy Members Alphabetical Related Pages

anchor.h

Go to the documentation of this file.
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 doxygen version 1.5.1. Valid HTML 4.0! Valid CSS!