00001 #ifndef __domSwept_surface_h__ 00002 #define __domSwept_surface_h__ 00003 00004 #include <dae/daeDocument.h> 00005 #include <dom/domTypes.h> 00006 #include <dom/domElements.h> 00007 00008 #include <dom/domCurve.h> 00009 #include <dom/domExtra.h> 00010 class DAE; 00011 00027 class domSwept_surface : public daeElement 00028 { 00029 public: 00030 virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::SWEPT_SURFACE; } 00031 static daeInt ID() { return 352; } 00032 virtual daeInt typeID() const { return ID(); } 00033 public: 00034 class domDirection; 00035 00036 typedef daeSmartRef<domDirection> domDirectionRef; 00037 typedef daeTArray<domDirectionRef> domDirection_Array; 00038 00039 class domDirection : public daeElement 00040 { 00041 public: 00042 virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::DIRECTION; } 00043 static daeInt ID() { return 353; } 00044 virtual daeInt typeID() const { return ID(); } 00045 00046 00047 public: //Accessors and Mutators 00052 domFloat3& getValue() { return _value; } 00057 void setValue( const domFloat3& val ) { _value = val; } 00058 00059 protected: // Value 00063 domFloat3 _value; 00064 protected: 00068 domDirection(DAE& dae) : daeElement(dae), _value() {} 00072 virtual ~domDirection() {} 00076 virtual domDirection &operator=( const domDirection &cpy ) { (void)cpy; return *this; } 00077 00078 public: // STATIC METHODS 00083 static DLLSPEC daeElementRef create(DAE& dae); 00089 static DLLSPEC daeMetaElement* registerElement(DAE& dae); 00090 }; 00091 00092 class domOrigin; 00093 00094 typedef daeSmartRef<domOrigin> domOriginRef; 00095 typedef daeTArray<domOriginRef> domOrigin_Array; 00096 00097 class domOrigin : public daeElement 00098 { 00099 public: 00100 virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::ORIGIN; } 00101 static daeInt ID() { return 354; } 00102 virtual daeInt typeID() const { return ID(); } 00103 00104 00105 public: //Accessors and Mutators 00110 domFloat3& getValue() { return _value; } 00115 void setValue( const domFloat3& val ) { _value = val; } 00116 00117 protected: // Value 00121 domFloat3 _value; 00122 protected: 00126 domOrigin(DAE& dae) : daeElement(dae), _value() {} 00130 virtual ~domOrigin() {} 00134 virtual domOrigin &operator=( const domOrigin &cpy ) { (void)cpy; return *this; } 00135 00136 public: // STATIC METHODS 00141 static DLLSPEC daeElementRef create(DAE& dae); 00147 static DLLSPEC daeMetaElement* registerElement(DAE& dae); 00148 }; 00149 00150 class domAxis; 00151 00152 typedef daeSmartRef<domAxis> domAxisRef; 00153 typedef daeTArray<domAxisRef> domAxis_Array; 00154 00155 class domAxis : public daeElement 00156 { 00157 public: 00158 virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::AXIS; } 00159 static daeInt ID() { return 355; } 00160 virtual daeInt typeID() const { return ID(); } 00161 00162 00163 public: //Accessors and Mutators 00168 domFloat3& getValue() { return _value; } 00173 void setValue( const domFloat3& val ) { _value = val; } 00174 00175 protected: // Value 00179 domFloat3 _value; 00180 protected: 00184 domAxis(DAE& dae) : daeElement(dae), _value() {} 00188 virtual ~domAxis() {} 00192 virtual domAxis &operator=( const domAxis &cpy ) { (void)cpy; return *this; } 00193 00194 public: // STATIC METHODS 00199 static DLLSPEC daeElementRef create(DAE& dae); 00205 static DLLSPEC daeMetaElement* registerElement(DAE& dae); 00206 }; 00207 00208 00209 00210 protected: // Elements 00211 domCurveRef elemCurve; 00212 domDirectionRef elemDirection; 00213 domOriginRef elemOrigin; 00214 domAxisRef elemAxis; 00215 domExtra_Array elemExtra_array; 00219 daeElementRefArray _contents; 00223 daeUIntArray _contentsOrder; 00224 00228 daeTArray< daeCharArray * > _CMData; 00229 00230 00231 public: //Accessors and Mutators 00236 const domCurveRef getCurve() const { return elemCurve; } 00241 const domDirectionRef getDirection() const { return elemDirection; } 00246 const domOriginRef getOrigin() const { return elemOrigin; } 00251 const domAxisRef getAxis() const { return elemAxis; } 00256 domExtra_Array &getExtra_array() { return elemExtra_array; } 00261 const domExtra_Array &getExtra_array() const { return elemExtra_array; } 00266 daeElementRefArray &getContents() { return _contents; } 00271 const daeElementRefArray &getContents() const { return _contents; } 00272 00273 protected: 00277 domSwept_surface(DAE& dae) : daeElement(dae), elemCurve(), elemDirection(), elemOrigin(), elemAxis(), elemExtra_array() {} 00281 virtual ~domSwept_surface() { daeElement::deleteCMDataArray(_CMData); } 00285 virtual domSwept_surface &operator=( const domSwept_surface &cpy ) { (void)cpy; return *this; } 00286 00287 public: // STATIC METHODS 00292 static DLLSPEC daeElementRef create(DAE& dae); 00298 static DLLSPEC daeMetaElement* registerElement(DAE& dae); 00299 }; 00300 00301 00302 #endif