Home | Hierarchy | Members | Alphabetical | Related Pages |
00001 #ifndef XDKWRL_BILLBOARD_H 00002 #define XDKWRL_BILLBOARD_H 00003 00004 #include <xdkwrl/node.h> 00005 #include <xdkwrl/fieldtypes/mfnode.h> 00006 #include <xdkwrl/fieldtypes/sfvec3f.h> 00007 00008 namespace wrl 00009 { 00010 //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 00011 // Interface of Billboard 00012 //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 00013 class Billboard : public Node 00014 { 00015 public: 00016 Billboard(const char* name=""); 00017 virtual ~Billboard(); 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 00041 \code 00042 axisOfRotation.setXYZ(0,1,0); 00043 \endcode 00044 */ 00045 SFVec3f axisOfRotation; 00046 /*! 00047 * See <a href="#_details" class="md">Detailed Description</a> 00048 * for meaning of this field. 00049 * Default value is set to MFNode default value 00050 */ 00051 MFNode children; 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 * See <a href="#_details" class="md">Detailed Description</a> 00061 * for meaning of this field. 00062 * Default value is set to 00063 \code 00064 bboxCenter.setXYZ(0,0,0); 00065 \endcode 00066 */ 00067 SFVec3f bboxCenter; 00068 /*! 00069 * See <a href="#_details" class="md">Detailed Description</a> 00070 * for meaning of this field. 00071 * Default value is set to 00072 \code 00073 bboxSize.setXYZ(-1,-1,-1); 00074 \endcode 00075 */ 00076 SFVec3f bboxSize; 00077 //!@} 00078 /*!@name Events In 00079 * 00080 */ 00081 //!@{ 00082 /*! 00083 * See <a href="#_details" class="md">Detailed Description</a> 00084 * for meaning of this event. 00085 */ 00086 EventIn<MFNode> addChildren; 00087 /*! 00088 * See <a href="#_details" class="md">Detailed Description</a> 00089 * for meaning of this event. 00090 */ 00091 EventIn<MFNode> removeChildren; 00092 /*! 00093 * Set event associated to exposedField axisOfRotation 00094 */ 00095 EventIn<SFVec3f> set_axisOfRotation; 00096 /*! 00097 * Set event associated to exposedField children 00098 */ 00099 EventIn<MFNode> set_children; 00100 //!@} 00101 /*!@name Events Out 00102 * 00103 */ 00104 //!@{ 00105 /*! 00106 * Changed event associated to exposedField axisOfRotation 00107 */ 00108 EventOut<SFVec3f> axisOfRotation_changed; 00109 /*! 00110 * Changed event associated to exposedField children 00111 */ 00112 EventOut<MFNode> children_changed; 00113 //!@} 00114 }; 00115 }; 00116 //************************************************************ 00117 // Implementation of Billboard 00118 //************************************************************ 00119 /*! 00120 * Returns <code>"Billboard"</code>. Useful for printing. 00121 */ 00122 inline const char* 00123 wrl::Billboard::typeName() const 00124 { 00125 return "Billboard"; 00126 } 00127 /*! 00128 * Returns the number of fields (exposed or not) for this node type. 00129 */ 00130 inline unsigned int 00131 wrl::Billboard::nbFields() const 00132 { 00133 return 4; 00134 } 00135 /*! 00136 * Returns the number of events in for this node type. 00137 */ 00138 inline unsigned int 00139 wrl::Billboard::nbEventsIn() const 00140 { 00141 return 2; 00142 } 00143 /*! 00144 * Returns the number of events out for this node type. 00145 */ 00146 inline unsigned int 00147 wrl::Billboard::nbEventsOut() const 00148 { 00149 return 0; 00150 } 00151 #endif // XDKWRL_BILLBOARD_H 00152 00153 // Local variables section. 00154 // This is only used by emacs! 00155 // Local Variables: 00156 // ff-search-directories: ("../../" "../../../src/xdkwrl/nodes") 00157 // End:
Generated on 28 Jun 2006 with
![]() |
|