Home Hierarchy Members Alphabetical Related Pages

switch.h

Go to the documentation of this file.
00001 #ifndef XDKWRL_SWITCH_H
00002 #define XDKWRL_SWITCH_H
00003 
00004 #include <xdkwrl/node.h>
00005 #include <xdkwrl/fieldtypes/mfnode.h>
00006 #include <xdkwrl/fieldtypes/sfint32.h>
00007 
00008 namespace wrl
00009 {
00010   //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
00011   // Interface of Switch
00012   //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
00013   class Switch : public Node
00014   {
00015    public:
00016      Switch(const char* name="");
00017      virtual ~Switch();
00018      virtual inline unsigned int nbFields() const;
00019      virtual FieldHandle field(const std::string& n);
00020      virtual FieldHandle field(const unsigned int i);
00021      virtual bool isSetToDefaultValue(const unsigned int i) const;
00022      virtual inline unsigned int nbEventsIn() const;
00023      virtual EventInHandle eventIn(const std::string& n);
00024      virtual EventInHandle eventIn(const unsigned int i);
00025      virtual inline unsigned int nbEventsOut() const;
00026      virtual EventOutHandle eventOut(const std::string& n);
00027      virtual EventOutHandle eventOut(const unsigned int i);
00028      inline const char* typeName() const;
00029      virtual Node* duplicate() const;
00030      virtual Node* duplicate(std::map<const Node*,Node*>&) const;
00031      /*!@name Exposed Fields
00032       * A field that is capable of receiving events via an eventIn to 
00033       * change its value(s), and generating events via an eventOut 
00034       * when its value(s) change.
00035       */
00036       //!@{
00037       /*!
00038        * See <a href="#_details" class="md">Detailed Description</a>
00039        * for meaning of this field.
00040        * Default value is set to MFNode default value
00041        */
00042        MFNode     choice;
00043       /*!
00044        * See <a href="#_details" class="md">Detailed Description</a>
00045        * for meaning of this field.
00046        * Default value is set to 
00047        \code
00048        whichChoice = -1;
00049        \endcode
00050        */
00051        SFInt32    whichChoice;
00052      //!@}
00053      /*!@name Fields
00054       * A property or attribute of a node. Each node type has a fixed set
00055       * of fields. Fields may contain various kinds of data and one or many
00056       * values. Each field has a default value.
00057       */
00058       //!@{
00059      //!@}
00060      /*!@name Events In
00061       * 
00062       */
00063       //!@{
00064       /*!
00065        * Set event associated to exposedField choice
00066        */
00067        EventIn<MFNode>     set_choice;
00068       /*!
00069        * Set event associated to exposedField whichChoice
00070        */
00071        EventIn<SFInt32>    set_whichChoice;
00072   //!@}
00073      /*!@name Events Out
00074       * 
00075       */
00076       //!@{
00077       /*!
00078        * Changed event associated to exposedField choice
00079        */
00080        EventOut<MFNode>     choice_changed;
00081       /*!
00082        * Changed event associated to exposedField whichChoice
00083        */
00084        EventOut<SFInt32>    whichChoice_changed;
00085   //!@}
00086   };
00087 };
00088 //************************************************************
00089 // Implementation of Switch
00090 //************************************************************
00091 /*!
00092  * Returns <code>"Switch"</code>. Useful for printing.
00093  */
00094 inline const char*
00095 wrl::Switch::typeName() const
00096 {
00097   return "Switch";
00098 }
00099 /*!
00100  * Returns the number of fields (exposed or not) for this node type.
00101  */
00102 inline unsigned int
00103 wrl::Switch::nbFields() const
00104 {
00105    return 2;
00106 }
00107 /*!
00108  * Returns the number of events in for this node type.
00109  */
00110 inline unsigned int
00111 wrl::Switch::nbEventsIn() const
00112 {
00113    return 0;
00114 }
00115 /*!
00116  * Returns the number of events out for this node type.
00117  */
00118 inline unsigned int
00119 wrl::Switch::nbEventsOut() const
00120 {
00121    return 0;
00122 }
00123 #endif // XDKWRL_SWITCH_H
00124 
00125 // Local variables section.
00126 // This is only used by emacs!
00127 // Local Variables:
00128 // ff-search-directories: ("../../" "../../../src/xdkwrl/nodes")
00129 // End:

Generated on 24 Feb 2005 with doxygen version 1.3.9.1. Valid HTML 4.0! Valid CSS!