XdkWrl: switch.h Source File

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(unsigned int i);
    00021      virtual bool isSetToDefaultValue(unsigned int i) const;
    00022      virtual inline unsigned int nbEventsIn() const;
    00023      virtual EventInHandle eventIn(const std::string& n);
    00024      virtual EventInHandle eventIn(unsigned int i);
    00025      virtual inline unsigned int nbEventsOut() const;
    00026      virtual EventOutHandle eventOut(const std::string& n);
    00027      virtual EventOutHandle eventOut(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 28 Jun 2006 with version 1.4.4. |