Home Hierarchy Members Alphabetical Related Pages

collision.h

Go to the documentation of this file.
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(const unsigned int i);
00024      virtual bool isSetToDefaultValue(const unsigned int i) const;
00025      virtual inline unsigned int nbEventsIn() const;
00026      virtual EventInHandle eventIn(const std::string& n);
00027      virtual EventInHandle eventIn(const unsigned int i);
00028      virtual inline unsigned int nbEventsOut() const;
00029      virtual EventOutHandle eventOut(const std::string& n);
00030      virtual EventOutHandle eventOut(const 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 24 Feb 2005 with doxygen version 1.3.9.1. Valid HTML 4.0! Valid CSS!