Home | Hierarchy | Members | Alphabetical | Related Pages |
00001 #ifndef XDKWRL_PROXIMITYSENSOR_H 00002 #define XDKWRL_PROXIMITYSENSOR_H 00003 00004 #include <xdkwrl/node.h> 00005 #include <xdkwrl/fieldtypes/sfbool.h> 00006 #include <xdkwrl/fieldtypes/sfrotation.h> 00007 #include <xdkwrl/fieldtypes/sftime.h> 00008 #include <xdkwrl/fieldtypes/sfvec3f.h> 00009 00010 namespace wrl 00011 { 00012 //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 00013 // Interface of ProximitySensor 00014 //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 00015 class ProximitySensor : public Node 00016 { 00017 public: 00018 ProximitySensor(const char* name=""); 00019 virtual ~ProximitySensor(); 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 center.setXYZ(0,0,0); 00045 \endcode 00046 */ 00047 SFVec3f center; 00048 /*! 00049 * See <a href="#_details" class="md">Detailed Description</a> 00050 * for meaning of this field. 00051 * Default value is set to 00052 \code 00053 size.setXYZ(0,0,0); 00054 \endcode 00055 */ 00056 SFVec3f size; 00057 /*! 00058 * See <a href="#_details" class="md">Detailed Description</a> 00059 * for meaning of this field. 00060 * Default value is set to 00061 \code 00062 enabled = true; 00063 \endcode 00064 */ 00065 SFBool enabled; 00066 //!@} 00067 /*!@name Fields 00068 * A property or attribute of a node. Each node type has a fixed set 00069 * of fields. Fields may contain various kinds of data and one or many 00070 * values. Each field has a default value. 00071 */ 00072 //!@{ 00073 //!@} 00074 /*!@name Events In 00075 * 00076 */ 00077 //!@{ 00078 /*! 00079 * Set event associated to exposedField center 00080 */ 00081 EventIn<SFVec3f> set_center; 00082 /*! 00083 * Set event associated to exposedField size 00084 */ 00085 EventIn<SFVec3f> set_size; 00086 /*! 00087 * Set event associated to exposedField enabled 00088 */ 00089 EventIn<SFBool> set_enabled; 00090 //!@} 00091 /*!@name Events Out 00092 * 00093 */ 00094 //!@{ 00095 /*! 00096 * See <a href="#_details" class="md">Detailed Description</a> 00097 * for meaning of this event. 00098 */ 00099 EventOut<SFBool> isActive; 00100 /*! 00101 * See <a href="#_details" class="md">Detailed Description</a> 00102 * for meaning of this event. 00103 */ 00104 EventOut<SFVec3f> position_changed; 00105 /*! 00106 * See <a href="#_details" class="md">Detailed Description</a> 00107 * for meaning of this event. 00108 */ 00109 EventOut<SFRotation> orientation_changed; 00110 /*! 00111 * See <a href="#_details" class="md">Detailed Description</a> 00112 * for meaning of this event. 00113 */ 00114 EventOut<SFTime> enterTime; 00115 /*! 00116 * See <a href="#_details" class="md">Detailed Description</a> 00117 * for meaning of this event. 00118 */ 00119 EventOut<SFTime> exitTime; 00120 /*! 00121 * Changed event associated to exposedField center 00122 */ 00123 EventOut<SFVec3f> center_changed; 00124 /*! 00125 * Changed event associated to exposedField size 00126 */ 00127 EventOut<SFVec3f> size_changed; 00128 /*! 00129 * Changed event associated to exposedField enabled 00130 */ 00131 EventOut<SFBool> enabled_changed; 00132 //!@} 00133 }; 00134 }; 00135 //************************************************************ 00136 // Implementation of ProximitySensor 00137 //************************************************************ 00138 /*! 00139 * Returns <code>"ProximitySensor"</code>. Useful for printing. 00140 */ 00141 inline const char* 00142 wrl::ProximitySensor::typeName() const 00143 { 00144 return "ProximitySensor"; 00145 } 00146 /*! 00147 * Returns the number of fields (exposed or not) for this node type. 00148 */ 00149 inline unsigned int 00150 wrl::ProximitySensor::nbFields() const 00151 { 00152 return 3; 00153 } 00154 /*! 00155 * Returns the number of events in for this node type. 00156 */ 00157 inline unsigned int 00158 wrl::ProximitySensor::nbEventsIn() const 00159 { 00160 return 0; 00161 } 00162 /*! 00163 * Returns the number of events out for this node type. 00164 */ 00165 inline unsigned int 00166 wrl::ProximitySensor::nbEventsOut() const 00167 { 00168 return 5; 00169 } 00170 #endif // XDKWRL_PROXIMITYSENSOR_H 00171 00172 // Local variables section. 00173 // This is only used by emacs! 00174 // Local Variables: 00175 // ff-search-directories: ("../../" "../../../src/xdkwrl/nodes") 00176 // End:
Generated on 24 Feb 2005 with version 1.3.9.1. |