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