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