XdkWrl: touchsensor.h Source File

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 version 1.5.1. |