Home Hierarchy Members Alphabetical Related Pages

geopositioninterpolator.h

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

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