Home Hierarchy Members Alphabetical Related Pages

navigationinfo.h

Go to the documentation of this file.
00001 #ifndef XDKWRL_NAVIGATIONINFO_H
00002 #define XDKWRL_NAVIGATIONINFO_H
00003 
00004 #include <xdkwrl/node.h>
00005 #include <xdkwrl/fieldtypes/mffloat.h>
00006 #include <xdkwrl/fieldtypes/mfstring.h>
00007 #include <xdkwrl/fieldtypes/sfbool.h>
00008 #include <xdkwrl/fieldtypes/sffloat.h>
00009 
00010 namespace wrl
00011 {
00012   //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
00013   // Interface of NavigationInfo
00014   //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
00015   class NavigationInfo : public Node
00016   {
00017    public:
00018      NavigationInfo(const char* name="");
00019      virtual ~NavigationInfo();
00020      virtual inline unsigned int nbFields() const;
00021      virtual FieldHandle field(const std::string& n);
00022      virtual FieldHandle field(const unsigned int i);
00023      virtual bool isSetToDefaultValue(const unsigned int i) const;
00024      virtual inline unsigned int nbEventsIn() const;
00025      virtual EventInHandle eventIn(const std::string& n);
00026      virtual EventInHandle eventIn(const unsigned int i);
00027      virtual inline unsigned int nbEventsOut() const;
00028      virtual EventOutHandle eventOut(const std::string& n);
00029      virtual EventOutHandle eventOut(const unsigned int i);
00030      inline const char* typeName() const;
00031      virtual Node* duplicate() const;
00032      virtual Node* duplicate(std::map<const Node*,Node*>&) const;
00033      /*!@name Exposed Fields
00034       * A field that is capable of receiving events via an eventIn to 
00035       * change its value(s), and generating events via an eventOut 
00036       * when its value(s) change.
00037       */
00038       //!@{
00039       /*!
00040        * See <a href="#_details" class="md">Detailed Description</a>
00041        * for meaning of this field.
00042        * Default value is set to 
00043        \code
00044            avatarSize.push_back(SFFloat(0.25));
00045     avatarSize.push_back(SFFloat(1.6));
00046     avatarSize.push_back(SFFloat(0.75));
00047        \endcode
00048        */
00049        MFFloat    avatarSize;
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        headlight = true;
00056        \endcode
00057        */
00058        SFBool     headlight;
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        speed = 1;
00065        \endcode
00066        */
00067        SFFloat    speed;
00068       /*!
00069        * See <a href="#_details" class="md">Detailed Description</a>
00070        * for meaning of this field.
00071        * Default value is set to 
00072        \code
00073        
00074        \endcode
00075        */
00076        MFString   type;
00077       /*!
00078        * See <a href="#_details" class="md">Detailed Description</a>
00079        * for meaning of this field.
00080        * Default value is set to 
00081        \code
00082        visibilityLimit = 0;
00083        \endcode
00084        */
00085        SFFloat    visibilityLimit;
00086      //!@}
00087      /*!@name Fields
00088       * A property or attribute of a node. Each node type has a fixed set
00089       * of fields. Fields may contain various kinds of data and one or many
00090       * values. Each field has a default value.
00091       */
00092       //!@{
00093      //!@}
00094      /*!@name Events In
00095       * 
00096       */
00097       //!@{
00098       /*!
00099        * See <a href="#_details" class="md">Detailed Description</a>
00100        * for meaning of this event.
00101        */
00102        EventIn<SFBool>     set_bind;
00103       /*!
00104        * Set event associated to exposedField avatarSize
00105        */
00106        EventIn<MFFloat>    set_avatarSize;
00107       /*!
00108        * Set event associated to exposedField headlight
00109        */
00110        EventIn<SFBool>     set_headlight;
00111       /*!
00112        * Set event associated to exposedField speed
00113        */
00114        EventIn<SFFloat>    set_speed;
00115       /*!
00116        * Set event associated to exposedField type
00117        */
00118        EventIn<MFString>   set_type;
00119       /*!
00120        * Set event associated to exposedField visibilityLimit
00121        */
00122        EventIn<SFFloat>    set_visibilityLimit;
00123   //!@}
00124      /*!@name Events Out
00125       * 
00126       */
00127       //!@{
00128       /*!
00129        * See <a href="#_details" class="md">Detailed Description</a>
00130        * for meaning of this event.
00131        */
00132        EventOut<SFBool>     isBound;
00133       /*!
00134        * Changed event associated to exposedField avatarSize
00135        */
00136        EventOut<MFFloat>    avatarSize_changed;
00137       /*!
00138        * Changed event associated to exposedField headlight
00139        */
00140        EventOut<SFBool>     headlight_changed;
00141       /*!
00142        * Changed event associated to exposedField speed
00143        */
00144        EventOut<SFFloat>    speed_changed;
00145       /*!
00146        * Changed event associated to exposedField type
00147        */
00148        EventOut<MFString>   type_changed;
00149       /*!
00150        * Changed event associated to exposedField visibilityLimit
00151        */
00152        EventOut<SFFloat>    visibilityLimit_changed;
00153   //!@}
00154   };
00155 };
00156 //************************************************************
00157 // Implementation of NavigationInfo
00158 //************************************************************
00159 /*!
00160  * Returns <code>"NavigationInfo"</code>. Useful for printing.
00161  */
00162 inline const char*
00163 wrl::NavigationInfo::typeName() const
00164 {
00165   return "NavigationInfo";
00166 }
00167 /*!
00168  * Returns the number of fields (exposed or not) for this node type.
00169  */
00170 inline unsigned int
00171 wrl::NavigationInfo::nbFields() const
00172 {
00173    return 5;
00174 }
00175 /*!
00176  * Returns the number of events in for this node type.
00177  */
00178 inline unsigned int
00179 wrl::NavigationInfo::nbEventsIn() const
00180 {
00181    return 1;
00182 }
00183 /*!
00184  * Returns the number of events out for this node type.
00185  */
00186 inline unsigned int
00187 wrl::NavigationInfo::nbEventsOut() const
00188 {
00189    return 1;
00190 }
00191 #endif // XDKWRL_NAVIGATIONINFO_H
00192 
00193 // Local variables section.
00194 // This is only used by emacs!
00195 // Local Variables:
00196 // ff-search-directories: ("../../" "../../../src/xdkwrl/nodes")
00197 // End:

Generated on 24 Feb 2005 with doxygen version 1.3.9.1. Valid HTML 4.0! Valid CSS!