00001 #ifndef __domSkin_h__ 00002 #define __domSkin_h__ 00003 00004 #include <dae/daeDocument.h> 00005 #include <dom/domTypes.h> 00006 #include <dom/domElements.h> 00007 00008 #include <dom/domSource.h> 00009 #include <dom/domInput_local.h> 00010 #include <dom/domExtra.h> 00011 #include <dom/domInput_local_offset.h> 00012 class DAE; 00013 00018 class domSkin : public daeElement 00019 { 00020 public: 00021 virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::SKIN; } 00022 static daeInt ID() { return 329; } 00023 virtual daeInt typeID() const { return ID(); } 00024 public: 00025 class domBind_shape_matrix; 00026 00027 typedef daeSmartRef<domBind_shape_matrix> domBind_shape_matrixRef; 00028 typedef daeTArray<domBind_shape_matrixRef> domBind_shape_matrix_Array; 00029 00036 class domBind_shape_matrix : public daeElement 00037 { 00038 public: 00039 virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BIND_SHAPE_MATRIX; } 00040 static daeInt ID() { return 330; } 00041 virtual daeInt typeID() const { return ID(); } 00042 00043 00044 public: //Accessors and Mutators 00049 domFloat4x4& getValue() { return _value; } 00054 void setValue( const domFloat4x4& val ) { _value = val; } 00055 00056 protected: // Value 00060 domFloat4x4 _value; 00061 protected: 00065 domBind_shape_matrix(DAE& dae) : daeElement(dae), _value() {} 00069 virtual ~domBind_shape_matrix() {} 00073 virtual domBind_shape_matrix &operator=( const domBind_shape_matrix &cpy ) { (void)cpy; return *this; } 00074 00075 public: // STATIC METHODS 00080 static DLLSPEC daeElementRef create(DAE& dae); 00086 static DLLSPEC daeMetaElement* registerElement(DAE& dae); 00087 }; 00088 00089 class domJoints; 00090 00091 typedef daeSmartRef<domJoints> domJointsRef; 00092 typedef daeTArray<domJointsRef> domJoints_Array; 00093 00099 class domJoints : public daeElement 00100 { 00101 public: 00102 virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::JOINTS; } 00103 static daeInt ID() { return 331; } 00104 virtual daeInt typeID() const { return ID(); } 00105 00106 protected: // Elements 00111 domInput_local_Array elemInput_array; 00115 domExtra_Array elemExtra_array; 00116 00117 public: //Accessors and Mutators 00122 domInput_local_Array &getInput_array() { return elemInput_array; } 00127 const domInput_local_Array &getInput_array() const { return elemInput_array; } 00132 domExtra_Array &getExtra_array() { return elemExtra_array; } 00137 const domExtra_Array &getExtra_array() const { return elemExtra_array; } 00138 protected: 00142 domJoints(DAE& dae) : daeElement(dae), elemInput_array(), elemExtra_array() {} 00146 virtual ~domJoints() {} 00150 virtual domJoints &operator=( const domJoints &cpy ) { (void)cpy; return *this; } 00151 00152 public: // STATIC METHODS 00157 static DLLSPEC daeElementRef create(DAE& dae); 00163 static DLLSPEC daeMetaElement* registerElement(DAE& dae); 00164 }; 00165 00166 class domVertex_weights; 00167 00168 typedef daeSmartRef<domVertex_weights> domVertex_weightsRef; 00169 typedef daeTArray<domVertex_weightsRef> domVertex_weights_Array; 00170 00175 class domVertex_weights : public daeElement 00176 { 00177 public: 00178 virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::VERTEX_WEIGHTS; } 00179 static daeInt ID() { return 332; } 00180 virtual daeInt typeID() const { return ID(); } 00181 public: 00182 class domVcount; 00183 00184 typedef daeSmartRef<domVcount> domVcountRef; 00185 typedef daeTArray<domVcountRef> domVcount_Array; 00186 00191 class domVcount : public daeElement 00192 { 00193 public: 00194 virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::VCOUNT; } 00195 static daeInt ID() { return 333; } 00196 virtual daeInt typeID() const { return ID(); } 00197 00198 00199 public: //Accessors and Mutators 00204 domList_of_uints& getValue() { return _value; } 00209 void setValue( const domList_of_uints& val ) { _value = val; } 00210 00211 protected: // Value 00215 domList_of_uints _value; 00216 protected: 00220 domVcount(DAE& dae) : daeElement(dae), _value() {} 00224 virtual ~domVcount() {} 00228 virtual domVcount &operator=( const domVcount &cpy ) { (void)cpy; return *this; } 00229 00230 public: // STATIC METHODS 00235 static DLLSPEC daeElementRef create(DAE& dae); 00241 static DLLSPEC daeMetaElement* registerElement(DAE& dae); 00242 }; 00243 00244 class domV; 00245 00246 typedef daeSmartRef<domV> domVRef; 00247 typedef daeTArray<domVRef> domV_Array; 00248 00255 class domV : public daeElement 00256 { 00257 public: 00258 virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::V; } 00259 static daeInt ID() { return 334; } 00260 virtual daeInt typeID() const { return ID(); } 00261 00262 00263 public: //Accessors and Mutators 00268 domList_of_ints& getValue() { return _value; } 00273 void setValue( const domList_of_ints& val ) { _value = val; } 00274 00275 protected: // Value 00279 domList_of_ints _value; 00280 protected: 00284 domV(DAE& dae) : daeElement(dae), _value() {} 00288 virtual ~domV() {} 00292 virtual domV &operator=( const domV &cpy ) { (void)cpy; return *this; } 00293 00294 public: // STATIC METHODS 00299 static DLLSPEC daeElementRef create(DAE& dae); 00305 static DLLSPEC daeMetaElement* registerElement(DAE& dae); 00306 }; 00307 00308 00309 protected: // Attribute 00314 domUint attrCount; 00315 00316 protected: // Elements 00320 domInput_local_offset_Array elemInput_array; 00325 domVcountRef elemVcount; 00332 domVRef elemV; 00336 domExtra_Array elemExtra_array; 00337 00338 public: //Accessors and Mutators 00343 domUint getCount() const { return attrCount; } 00348 void setCount( domUint atCount ) { attrCount = atCount; _validAttributeArray[0] = true; } 00349 00354 domInput_local_offset_Array &getInput_array() { return elemInput_array; } 00359 const domInput_local_offset_Array &getInput_array() const { return elemInput_array; } 00364 const domVcountRef getVcount() const { return elemVcount; } 00369 const domVRef getV() const { return elemV; } 00374 domExtra_Array &getExtra_array() { return elemExtra_array; } 00379 const domExtra_Array &getExtra_array() const { return elemExtra_array; } 00380 protected: 00384 domVertex_weights(DAE& dae) : daeElement(dae), attrCount(), elemInput_array(), elemVcount(), elemV(), elemExtra_array() {} 00388 virtual ~domVertex_weights() {} 00392 virtual domVertex_weights &operator=( const domVertex_weights &cpy ) { (void)cpy; return *this; } 00393 00394 public: // STATIC METHODS 00399 static DLLSPEC daeElementRef create(DAE& dae); 00405 static DLLSPEC daeMetaElement* registerElement(DAE& dae); 00406 }; 00407 00408 00409 protected: // Attribute 00415 xsAnyURI attrSource; 00416 00417 protected: // Elements 00424 domBind_shape_matrixRef elemBind_shape_matrix; 00428 domSource_Array elemSource_array; 00434 domJointsRef elemJoints; 00439 domVertex_weightsRef elemVertex_weights; 00443 domExtra_Array elemExtra_array; 00444 00445 public: //Accessors and Mutators 00450 xsAnyURI &getSource() { return attrSource; } 00455 const xsAnyURI &getSource() const { return attrSource; } 00460 void setSource( const xsAnyURI &atSource ) { attrSource = atSource; } 00465 void setSource( xsString atSource ) { attrSource = atSource; } 00466 00471 const domBind_shape_matrixRef getBind_shape_matrix() const { return elemBind_shape_matrix; } 00476 domSource_Array &getSource_array() { return elemSource_array; } 00481 const domSource_Array &getSource_array() const { return elemSource_array; } 00486 const domJointsRef getJoints() const { return elemJoints; } 00491 const domVertex_weightsRef getVertex_weights() const { return elemVertex_weights; } 00496 domExtra_Array &getExtra_array() { return elemExtra_array; } 00501 const domExtra_Array &getExtra_array() const { return elemExtra_array; } 00502 protected: 00506 domSkin(DAE& dae) : daeElement(dae), attrSource(dae, *this), elemBind_shape_matrix(), elemSource_array(), elemJoints(), elemVertex_weights(), elemExtra_array() {} 00510 virtual ~domSkin() {} 00514 virtual domSkin &operator=( const domSkin &cpy ) { (void)cpy; return *this; } 00515 00516 public: // STATIC METHODS 00521 static DLLSPEC daeElementRef create(DAE& dae); 00527 static DLLSPEC daeMetaElement* registerElement(DAE& dae); 00528 }; 00529 00530 00531 #endif