Home | Hierarchy | Members | Alphabetical | Related Pages |
00001 #ifndef XDKWRL_VIEWPOINT_H 00002 #define XDKWRL_VIEWPOINT_H 00003 00004 #include <xdkwrl/node.h> 00005 #include <xdkwrl/fieldtypes/sfbool.h> 00006 #include <xdkwrl/fieldtypes/sffloat.h> 00007 #include <xdkwrl/fieldtypes/sfrotation.h> 00008 #include <xdkwrl/fieldtypes/sfstring.h> 00009 #include <xdkwrl/fieldtypes/sftime.h> 00010 #include <xdkwrl/fieldtypes/sfvec3f.h> 00011 00012 namespace wrl 00013 { 00014 //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 00015 // Interface of Viewpoint 00016 //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 00017 class Viewpoint : public Node 00018 { 00019 public: 00020 Viewpoint(const char* name=""); 00021 virtual ~Viewpoint(); 00022 virtual inline unsigned int nbFields() const; 00023 virtual FieldHandle field(const std::string& n); 00024 virtual FieldHandle field(const unsigned int i); 00025 virtual bool isSetToDefaultValue(const unsigned int i) const; 00026 virtual inline unsigned int nbEventsIn() const; 00027 virtual EventInHandle eventIn(const std::string& n); 00028 virtual EventInHandle eventIn(const unsigned int i); 00029 virtual inline unsigned int nbEventsOut() const; 00030 virtual EventOutHandle eventOut(const std::string& n); 00031 virtual EventOutHandle eventOut(const unsigned int i); 00032 inline const char* typeName() const; 00033 virtual Node* duplicate() const; 00034 virtual Node* duplicate(std::map<const Node*,Node*>&) const; 00035 /*!@name Exposed Fields 00036 * A field that is capable of receiving events via an eventIn to 00037 * change its value(s), and generating events via an eventOut 00038 * when its value(s) change. 00039 */ 00040 //!@{ 00041 /*! 00042 * See <a href="#_details" class="md">Detailed Description</a> 00043 * for meaning of this field. 00044 * Default value is set to 00045 \code 00046 fieldOfView = 0.785398; 00047 \endcode 00048 */ 00049 SFFloat fieldOfView; 00050 /*! 00051 * See <a href="#_details" class="md">Detailed Description</a> 00052 * for meaning of this field. 00053 * Default value is set to 00054 \code 00055 jump = true; 00056 \endcode 00057 */ 00058 SFBool jump; 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 orientation.setAxisAndAngle(0,0,1,0); 00065 \endcode 00066 */ 00067 SFRotation orientation; 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 position.setXYZ(0,0,10); 00074 \endcode 00075 */ 00076 SFVec3f position; 00077 //!@} 00078 /*!@name Fields 00079 * A property or attribute of a node. Each node type has a fixed set 00080 * of fields. Fields may contain various kinds of data and one or many 00081 * values. Each field has a default value. 00082 */ 00083 //!@{ 00084 /*! 00085 * See <a href="#_details" class="md">Detailed Description</a> 00086 * for meaning of this field. 00087 * Default value is set to 00088 \code 00089 description = string(""); 00090 \endcode 00091 */ 00092 SFString description; 00093 //!@} 00094 /*!@name Events In 00095 * 00096 */ 00097 //!@{ 00098 /*! 00099 * See <a href="#_details" class="md">Detailed Description</a> 00100 * for meaning of this event. 00101 */ 00102 EventIn<SFBool> set_bind; 00103 /*! 00104 * Set event associated to exposedField fieldOfView 00105 */ 00106 EventIn<SFFloat> set_fieldOfView; 00107 /*! 00108 * Set event associated to exposedField jump 00109 */ 00110 EventIn<SFBool> set_jump; 00111 /*! 00112 * Set event associated to exposedField orientation 00113 */ 00114 EventIn<SFRotation> set_orientation; 00115 /*! 00116 * Set event associated to exposedField position 00117 */ 00118 EventIn<SFVec3f> set_position; 00119 //!@} 00120 /*!@name Events Out 00121 * 00122 */ 00123 //!@{ 00124 /*! 00125 * See <a href="#_details" class="md">Detailed Description</a> 00126 * for meaning of this event. 00127 */ 00128 EventOut<SFTime> bindTime; 00129 /*! 00130 * See <a href="#_details" class="md">Detailed Description</a> 00131 * for meaning of this event. 00132 */ 00133 EventOut<SFBool> isBound; 00134 /*! 00135 * Changed event associated to exposedField fieldOfView 00136 */ 00137 EventOut<SFFloat> fieldOfView_changed; 00138 /*! 00139 * Changed event associated to exposedField jump 00140 */ 00141 EventOut<SFBool> jump_changed; 00142 /*! 00143 * Changed event associated to exposedField orientation 00144 */ 00145 EventOut<SFRotation> orientation_changed; 00146 /*! 00147 * Changed event associated to exposedField position 00148 */ 00149 EventOut<SFVec3f> position_changed; 00150 //!@} 00151 }; 00152 }; 00153 //************************************************************ 00154 // Implementation of Viewpoint 00155 //************************************************************ 00156 /*! 00157 * Returns <code>"Viewpoint"</code>. Useful for printing. 00158 */ 00159 inline const char* 00160 wrl::Viewpoint::typeName() const 00161 { 00162 return "Viewpoint"; 00163 } 00164 /*! 00165 * Returns the number of fields (exposed or not) for this node type. 00166 */ 00167 inline unsigned int 00168 wrl::Viewpoint::nbFields() const 00169 { 00170 return 5; 00171 } 00172 /*! 00173 * Returns the number of events in for this node type. 00174 */ 00175 inline unsigned int 00176 wrl::Viewpoint::nbEventsIn() const 00177 { 00178 return 1; 00179 } 00180 /*! 00181 * Returns the number of events out for this node type. 00182 */ 00183 inline unsigned int 00184 wrl::Viewpoint::nbEventsOut() const 00185 { 00186 return 2; 00187 } 00188 #endif // XDKWRL_VIEWPOINT_H 00189 00190 // Local variables section. 00191 // This is only used by emacs! 00192 // Local Variables: 00193 // ff-search-directories: ("../../" "../../../src/xdkwrl/nodes") 00194 // End:
Generated on 24 Feb 2005 with
![]() |
|