Home Hierarchy Members Alphabetical Related Pages

touchsensor.h

Go to the documentation of this file.
00001 #ifndef XDKWRL_TOUCHSENSOR_H
00002 #define XDKWRL_TOUCHSENSOR_H
00003 
00004 #include <xdkwrl/config.h>
00005 #include <xdkwrl/node.h>
00006 #include <xdkwrl/fieldtypes/sfbool.h>
00007 #include <xdkwrl/fieldtypes/sftime.h>
00008 #include <xdkwrl/fieldtypes/sfvec2f.h>
00009 #include <xdkwrl/fieldtypes/sfvec3f.h>
00010 
00011 namespace wrl
00012 {
00013   //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
00014   // Interface of TouchSensor
00015   //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
00016   class XDKWRL_EXPORT TouchSensor : public Node
00017   {
00018    public:
00019      TouchSensor(const char* name="");
00020      virtual ~TouchSensor();
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 
00044        \code
00045        enabled = true;
00046        \endcode
00047        */
00048        SFBool     enabled;
00049      //!@}
00050      /*!@name Fields
00051       * A property or attribute of a node. Each node type has a fixed set
00052       * of fields. Fields may contain various kinds of data and one or many
00053       * values. Each field has a default value.
00054       */
00055       //!@{
00056      //!@}
00057      /*!@name Events In
00058       * 
00059       */
00060       //!@{
00061       /*!
00062        * Set event associated to exposedField enabled
00063        */
00064        EventIn<SFBool>     set_enabled;
00065   //!@}
00066      /*!@name Events Out
00067       * 
00068       */
00069       //!@{
00070       /*!
00071        * See <a href="#_details" class="md">Detailed Description</a>
00072        * for meaning of this event.
00073        */
00074        EventOut<SFVec3f>    hitNormal_changed;
00075       /*!
00076        * See <a href="#_details" class="md">Detailed Description</a>
00077        * for meaning of this event.
00078        */
00079        EventOut<SFVec3f>    hitPoint_changed;
00080       /*!
00081        * See <a href="#_details" class="md">Detailed Description</a>
00082        * for meaning of this event.
00083        */
00084        EventOut<SFVec2f>    hitTexCoord_changed;
00085       /*!
00086        * See <a href="#_details" class="md">Detailed Description</a>
00087        * for meaning of this event.
00088        */
00089        EventOut<SFBool>     isActive;
00090       /*!
00091        * See <a href="#_details" class="md">Detailed Description</a>
00092        * for meaning of this event.
00093        */
00094        EventOut<SFBool>     isOver;
00095       /*!
00096        * See <a href="#_details" class="md">Detailed Description</a>
00097        * for meaning of this event.
00098        */
00099        EventOut<SFTime>     touchTime;
00100       /*!
00101        * Changed event associated to exposedField enabled
00102        */
00103        EventOut<SFBool>     enabled_changed;
00104   //!@}
00105   };
00106 };
00107 //************************************************************
00108 // Implementation of TouchSensor
00109 //************************************************************
00110 /*!
00111  * Returns <code>"TouchSensor"</code>. Useful for printing.
00112  */
00113 inline const char*
00114 wrl::TouchSensor::typeName() const
00115 {
00116   return "TouchSensor";
00117 }
00118 /*!
00119  * Returns the number of fields (exposed or not) for this node type.
00120  */
00121 inline unsigned int
00122 wrl::TouchSensor::nbFields() const
00123 {
00124    return 1;
00125 }
00126 /*!
00127  * Returns the number of events in for this node type.
00128  */
00129 inline unsigned int
00130 wrl::TouchSensor::nbEventsIn() const
00131 {
00132    return 0;
00133 }
00134 /*!
00135  * Returns the number of events out for this node type.
00136  */
00137 inline unsigned int
00138 wrl::TouchSensor::nbEventsOut() const
00139 {
00140    return 6;
00141 }
00142 #endif // XDKWRL_TOUCHSENSOR_H
00143 
00144 // Local variables section.
00145 // This is only used by emacs!
00146 // Local Variables:
00147 // ff-search-directories: ("../../" "../../../src/xdkwrl/nodes")
00148 // End:

Generated on 5 Jan 2007 with doxygen version 1.5.1. Valid HTML 4.0! Valid CSS!