00001 #ifndef __domLink_h__ 00002 #define __domLink_h__ 00003 00004 #include <dae/daeDocument.h> 00005 #include <dom/domTypes.h> 00006 #include <dom/domElements.h> 00007 00008 #include <dom/domRotate.h> 00009 #include <dom/domTranslate.h> 00010 #include <dom/domLink.h> 00011 class DAE; 00012 00013 class domLink : public daeElement 00014 { 00015 public: 00016 virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::LINK; } 00017 static daeInt ID() { return 370; } 00018 virtual daeInt typeID() const { return ID(); } 00019 public: 00020 class domAttachment_full; 00021 00022 typedef daeSmartRef<domAttachment_full> domAttachment_fullRef; 00023 typedef daeTArray<domAttachment_fullRef> domAttachment_full_Array; 00024 00025 class domAttachment_full : public daeElement 00026 { 00027 public: 00028 virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::ATTACHMENT_FULL; } 00029 static daeInt ID() { return 371; } 00030 virtual daeInt typeID() const { return ID(); } 00031 protected: // Attribute 00032 xsToken attrJoint; 00033 00034 protected: // Elements 00035 domRotate_Array elemRotate_array; 00036 domTranslate_Array elemTranslate_array; 00037 domLinkRef elemLink; 00041 daeElementRefArray _contents; 00045 daeUIntArray _contentsOrder; 00046 00050 daeTArray< daeCharArray * > _CMData; 00051 00052 00053 public: //Accessors and Mutators 00058 xsToken getJoint() const { return attrJoint; } 00063 void setJoint( xsToken atJoint ) { *(daeStringRef*)&attrJoint = atJoint; _validAttributeArray[0] = true; } 00064 00069 domRotate_Array &getRotate_array() { return elemRotate_array; } 00074 const domRotate_Array &getRotate_array() const { return elemRotate_array; } 00079 domTranslate_Array &getTranslate_array() { return elemTranslate_array; } 00084 const domTranslate_Array &getTranslate_array() const { return elemTranslate_array; } 00089 const domLinkRef getLink() const { return elemLink; } 00094 daeElementRefArray &getContents() { return _contents; } 00099 const daeElementRefArray &getContents() const { return _contents; } 00100 00101 protected: 00105 domAttachment_full(DAE& dae) : daeElement(dae), attrJoint(), elemRotate_array(), elemTranslate_array(), elemLink() {} 00109 virtual ~domAttachment_full() { daeElement::deleteCMDataArray(_CMData); } 00113 virtual domAttachment_full &operator=( const domAttachment_full &cpy ) { (void)cpy; return *this; } 00114 00115 public: // STATIC METHODS 00120 static DLLSPEC daeElementRef create(DAE& dae); 00126 static DLLSPEC daeMetaElement* registerElement(DAE& dae); 00127 }; 00128 00129 class domAttachment_start; 00130 00131 typedef daeSmartRef<domAttachment_start> domAttachment_startRef; 00132 typedef daeTArray<domAttachment_startRef> domAttachment_start_Array; 00133 00134 class domAttachment_start : public daeElement 00135 { 00136 public: 00137 virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::ATTACHMENT_START; } 00138 static daeInt ID() { return 372; } 00139 virtual daeInt typeID() const { return ID(); } 00140 protected: // Attribute 00141 xsToken attrJoint; 00142 00143 protected: // Elements 00144 domRotate_Array elemRotate_array; 00145 domTranslate_Array elemTranslate_array; 00149 daeElementRefArray _contents; 00153 daeUIntArray _contentsOrder; 00154 00158 daeTArray< daeCharArray * > _CMData; 00159 00160 00161 public: //Accessors and Mutators 00166 xsToken getJoint() const { return attrJoint; } 00171 void setJoint( xsToken atJoint ) { *(daeStringRef*)&attrJoint = atJoint; _validAttributeArray[0] = true; } 00172 00177 domRotate_Array &getRotate_array() { return elemRotate_array; } 00182 const domRotate_Array &getRotate_array() const { return elemRotate_array; } 00187 domTranslate_Array &getTranslate_array() { return elemTranslate_array; } 00192 const domTranslate_Array &getTranslate_array() const { return elemTranslate_array; } 00197 daeElementRefArray &getContents() { return _contents; } 00202 const daeElementRefArray &getContents() const { return _contents; } 00203 00204 protected: 00208 domAttachment_start(DAE& dae) : daeElement(dae), attrJoint(), elemRotate_array(), elemTranslate_array() {} 00212 virtual ~domAttachment_start() { daeElement::deleteCMDataArray(_CMData); } 00216 virtual domAttachment_start &operator=( const domAttachment_start &cpy ) { (void)cpy; return *this; } 00217 00218 public: // STATIC METHODS 00223 static DLLSPEC daeElementRef create(DAE& dae); 00229 static DLLSPEC daeMetaElement* registerElement(DAE& dae); 00230 }; 00231 00232 class domAttachment_end; 00233 00234 typedef daeSmartRef<domAttachment_end> domAttachment_endRef; 00235 typedef daeTArray<domAttachment_endRef> domAttachment_end_Array; 00236 00237 class domAttachment_end : public daeElement 00238 { 00239 public: 00240 virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::ATTACHMENT_END; } 00241 static daeInt ID() { return 373; } 00242 virtual daeInt typeID() const { return ID(); } 00243 protected: // Attribute 00244 xsToken attrJoint; 00245 00246 protected: // Elements 00247 domRotate_Array elemRotate_array; 00248 domTranslate_Array elemTranslate_array; 00252 daeElementRefArray _contents; 00256 daeUIntArray _contentsOrder; 00257 00261 daeTArray< daeCharArray * > _CMData; 00262 00263 00264 public: //Accessors and Mutators 00269 xsToken getJoint() const { return attrJoint; } 00274 void setJoint( xsToken atJoint ) { *(daeStringRef*)&attrJoint = atJoint; _validAttributeArray[0] = true; } 00275 00280 domRotate_Array &getRotate_array() { return elemRotate_array; } 00285 const domRotate_Array &getRotate_array() const { return elemRotate_array; } 00290 domTranslate_Array &getTranslate_array() { return elemTranslate_array; } 00295 const domTranslate_Array &getTranslate_array() const { return elemTranslate_array; } 00300 daeElementRefArray &getContents() { return _contents; } 00305 const daeElementRefArray &getContents() const { return _contents; } 00306 00307 protected: 00311 domAttachment_end(DAE& dae) : daeElement(dae), attrJoint(), elemRotate_array(), elemTranslate_array() {} 00315 virtual ~domAttachment_end() { daeElement::deleteCMDataArray(_CMData); } 00319 virtual domAttachment_end &operator=( const domAttachment_end &cpy ) { (void)cpy; return *this; } 00320 00321 public: // STATIC METHODS 00326 static DLLSPEC daeElementRef create(DAE& dae); 00332 static DLLSPEC daeMetaElement* registerElement(DAE& dae); 00333 }; 00334 00335 00336 protected: // Attributes 00337 domSid attrSid; 00338 xsToken attrName; 00339 00340 protected: // Elements 00341 domRotate_Array elemRotate_array; 00342 domTranslate_Array elemTranslate_array; 00343 domAttachment_full_Array elemAttachment_full_array; 00344 domAttachment_start_Array elemAttachment_start_array; 00345 domAttachment_end_Array elemAttachment_end_array; 00349 daeElementRefArray _contents; 00353 daeUIntArray _contentsOrder; 00354 00358 daeTArray< daeCharArray * > _CMData; 00359 00360 00361 public: //Accessors and Mutators 00366 domSid getSid() const { return attrSid; } 00371 void setSid( domSid atSid ) { *(daeStringRef*)&attrSid = atSid;} 00372 00377 xsToken getName() const { return attrName; } 00382 void setName( xsToken atName ) { *(daeStringRef*)&attrName = atName;} 00383 00388 domRotate_Array &getRotate_array() { return elemRotate_array; } 00393 const domRotate_Array &getRotate_array() const { return elemRotate_array; } 00398 domTranslate_Array &getTranslate_array() { return elemTranslate_array; } 00403 const domTranslate_Array &getTranslate_array() const { return elemTranslate_array; } 00408 domAttachment_full_Array &getAttachment_full_array() { return elemAttachment_full_array; } 00413 const domAttachment_full_Array &getAttachment_full_array() const { return elemAttachment_full_array; } 00418 domAttachment_start_Array &getAttachment_start_array() { return elemAttachment_start_array; } 00423 const domAttachment_start_Array &getAttachment_start_array() const { return elemAttachment_start_array; } 00428 domAttachment_end_Array &getAttachment_end_array() { return elemAttachment_end_array; } 00433 const domAttachment_end_Array &getAttachment_end_array() const { return elemAttachment_end_array; } 00438 daeElementRefArray &getContents() { return _contents; } 00443 const daeElementRefArray &getContents() const { return _contents; } 00444 00445 protected: 00449 domLink(DAE& dae) : daeElement(dae), attrSid(), attrName(), elemRotate_array(), elemTranslate_array(), elemAttachment_full_array(), elemAttachment_start_array(), elemAttachment_end_array() {} 00453 virtual ~domLink() { daeElement::deleteCMDataArray(_CMData); } 00457 virtual domLink &operator=( const domLink &cpy ) { (void)cpy; return *this; } 00458 00459 public: // STATIC METHODS 00464 static DLLSPEC daeElementRef create(DAE& dae); 00470 static DLLSPEC daeMetaElement* registerElement(DAE& dae); 00471 }; 00472 00473 00474 #endif