1 /* 2 * Copyright 2006 Sony Computer Entertainment Inc. 3 * 4 * Licensed under the MIT Open Source License, for details please see license.txt or the website 5 * http://www.opensource.org/licenses/mit-license.php 6 * 7 */ 8 9 #ifndef __domProfile_COMMON_h__ 10 #define __domProfile_COMMON_h__ 11 12 #include <dae/daeDocument.h> 13 #include <dom/domTypes.h> 14 #include <dom/domElements.h> 15 16 #include <dom/domFx_profile_abstract.h> 17 #include <dom/domAsset.h> 18 #include <dom/domImage.h> 19 #include <dom/domExtra.h> 20 #include <dom/domCommon_newparam_type.h> 21 #include <dom/domCommon_color_or_texture_type.h> 22 #include <dom/domCommon_float_or_param_type.h> 23 #include <dom/domCommon_transparent_type.h> 24 class DAE; 25 26 /** 27 * Opens a block of COMMON platform-specific data types and technique declarations. 28 */ 29 class domProfile_COMMON : public domFx_profile_abstract 30 { 31 public: 32 virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::PROFILE_COMMON; } 33 static daeInt ID() { return 740; } 34 virtual daeInt typeID() const { return ID(); } 35 public: 36 class domTechnique; 37 38 typedef daeSmartRef<domTechnique> domTechniqueRef; 39 typedef daeTArray<domTechniqueRef> domTechnique_Array; 40 41 /** 42 * Holds a description of the textures, samplers, shaders, parameters, and 43 * passes necessary for rendering this effect using one method. 44 */ 45 class domTechnique : public daeElement 46 { 47 public: 48 virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::TECHNIQUE; } 49 static daeInt ID() { return 741; } 50 virtual daeInt typeID() const { return ID(); } 51 public: 52 class domConstant; 53 54 typedef daeSmartRef<domConstant> domConstantRef; 55 typedef daeTArray<domConstantRef> domConstant_Array; 56 57 class domConstant : public daeElement 58 { 59 public: 60 virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::CONSTANT; } 61 static daeInt ID() { return 742; } 62 virtual daeInt typeID() const { return ID(); } 63 64 protected: // Elements 65 domCommon_color_or_texture_typeRef elemEmission; 66 domCommon_color_or_texture_typeRef elemReflective; 67 domCommon_float_or_param_typeRef elemReflectivity; 68 domCommon_transparent_typeRef elemTransparent; 69 domCommon_float_or_param_typeRef elemTransparency; 70 domCommon_float_or_param_typeRef elemIndex_of_refraction; 71 72 public: //Accessors and Mutators 73 /** 74 * Gets the emission element. 75 * @return a daeSmartRef to the emission element. 76 */ 77 const domCommon_color_or_texture_typeRef getEmission() const { return elemEmission; } 78 /** 79 * Gets the reflective element. 80 * @return a daeSmartRef to the reflective element. 81 */ 82 const domCommon_color_or_texture_typeRef getReflective() const { return elemReflective; } 83 /** 84 * Gets the reflectivity element. 85 * @return a daeSmartRef to the reflectivity element. 86 */ 87 const domCommon_float_or_param_typeRef getReflectivity() const { return elemReflectivity; } 88 /** 89 * Gets the transparent element. 90 * @return a daeSmartRef to the transparent element. 91 */ 92 const domCommon_transparent_typeRef getTransparent() const { return elemTransparent; } 93 /** 94 * Gets the transparency element. 95 * @return a daeSmartRef to the transparency element. 96 */ 97 const domCommon_float_or_param_typeRef getTransparency() const { return elemTransparency; } 98 /** 99 * Gets the index_of_refraction element. 100 * @return a daeSmartRef to the index_of_refraction element. 101 */ 102 const domCommon_float_or_param_typeRef getIndex_of_refraction() const { return elemIndex_of_refraction; } 103 protected: 104 /** 105 * Constructor 106 */ 107 domConstant(DAE& dae) : daeElement(dae), elemEmission(), elemReflective(), elemReflectivity(), elemTransparent(), elemTransparency(), elemIndex_of_refraction() {} 108 /** 109 * Destructor 110 */ 111 virtual ~domConstant() {} 112 /** 113 * Overloaded assignment operator 114 */ 115 virtual domConstant &operator=( const domConstant &cpy ) { (void)cpy; return *this; } 116 117 public: // STATIC METHODS 118 /** 119 * Creates an instance of this class and returns a daeElementRef referencing it. 120 * @return a daeElementRef referencing an instance of this object. 121 */ 122 static DLLSPEC daeElementRef create(DAE& dae); 123 /** 124 * Creates a daeMetaElement object that describes this element in the meta object reflection framework. 125 * If a daeMetaElement already exists it will return that instead of creating a new one. 126 * @return A daeMetaElement describing this COLLADA element. 127 */ 128 static DLLSPEC daeMetaElement* registerElement(DAE& dae); 129 }; 130 131 class domLambert; 132 133 typedef daeSmartRef<domLambert> domLambertRef; 134 typedef daeTArray<domLambertRef> domLambert_Array; 135 136 class domLambert : public daeElement 137 { 138 public: 139 virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::LAMBERT; } 140 static daeInt ID() { return 743; } 141 virtual daeInt typeID() const { return ID(); } 142 143 protected: // Elements 144 domCommon_color_or_texture_typeRef elemEmission; 145 domCommon_color_or_texture_typeRef elemAmbient; 146 domCommon_color_or_texture_typeRef elemDiffuse; 147 domCommon_color_or_texture_typeRef elemReflective; 148 domCommon_float_or_param_typeRef elemReflectivity; 149 domCommon_transparent_typeRef elemTransparent; 150 domCommon_float_or_param_typeRef elemTransparency; 151 domCommon_float_or_param_typeRef elemIndex_of_refraction; 152 153 public: //Accessors and Mutators 154 /** 155 * Gets the emission element. 156 * @return a daeSmartRef to the emission element. 157 */ 158 const domCommon_color_or_texture_typeRef getEmission() const { return elemEmission; } 159 /** 160 * Gets the ambient element. 161 * @return a daeSmartRef to the ambient element. 162 */ 163 const domCommon_color_or_texture_typeRef getAmbient() const { return elemAmbient; } 164 /** 165 * Gets the diffuse element. 166 * @return a daeSmartRef to the diffuse element. 167 */ 168 const domCommon_color_or_texture_typeRef getDiffuse() const { return elemDiffuse; } 169 /** 170 * Gets the reflective element. 171 * @return a daeSmartRef to the reflective element. 172 */ 173 const domCommon_color_or_texture_typeRef getReflective() const { return elemReflective; } 174 /** 175 * Gets the reflectivity element. 176 * @return a daeSmartRef to the reflectivity element. 177 */ 178 const domCommon_float_or_param_typeRef getReflectivity() const { return elemReflectivity; } 179 /** 180 * Gets the transparent element. 181 * @return a daeSmartRef to the transparent element. 182 */ 183 const domCommon_transparent_typeRef getTransparent() const { return elemTransparent; } 184 /** 185 * Gets the transparency element. 186 * @return a daeSmartRef to the transparency element. 187 */ 188 const domCommon_float_or_param_typeRef getTransparency() const { return elemTransparency; } 189 /** 190 * Gets the index_of_refraction element. 191 * @return a daeSmartRef to the index_of_refraction element. 192 */ 193 const domCommon_float_or_param_typeRef getIndex_of_refraction() const { return elemIndex_of_refraction; } 194 protected: 195 /** 196 * Constructor 197 */ 198 domLambert(DAE& dae) : daeElement(dae), elemEmission(), elemAmbient(), elemDiffuse(), elemReflective(), elemReflectivity(), elemTransparent(), elemTransparency(), elemIndex_of_refraction() {} 199 /** 200 * Destructor 201 */ 202 virtual ~domLambert() {} 203 /** 204 * Overloaded assignment operator 205 */ 206 virtual domLambert &operator=( const domLambert &cpy ) { (void)cpy; return *this; } 207 208 public: // STATIC METHODS 209 /** 210 * Creates an instance of this class and returns a daeElementRef referencing it. 211 * @return a daeElementRef referencing an instance of this object. 212 */ 213 static DLLSPEC daeElementRef create(DAE& dae); 214 /** 215 * Creates a daeMetaElement object that describes this element in the meta object reflection framework. 216 * If a daeMetaElement already exists it will return that instead of creating a new one. 217 * @return A daeMetaElement describing this COLLADA element. 218 */ 219 static DLLSPEC daeMetaElement* registerElement(DAE& dae); 220 }; 221 222 class domPhong; 223 224 typedef daeSmartRef<domPhong> domPhongRef; 225 typedef daeTArray<domPhongRef> domPhong_Array; 226 227 class domPhong : public daeElement 228 { 229 public: 230 virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::PHONG; } 231 static daeInt ID() { return 744; } 232 virtual daeInt typeID() const { return ID(); } 233 234 protected: // Elements 235 domCommon_color_or_texture_typeRef elemEmission; 236 domCommon_color_or_texture_typeRef elemAmbient; 237 domCommon_color_or_texture_typeRef elemDiffuse; 238 domCommon_color_or_texture_typeRef elemSpecular; 239 domCommon_float_or_param_typeRef elemShininess; 240 domCommon_color_or_texture_typeRef elemReflective; 241 domCommon_float_or_param_typeRef elemReflectivity; 242 domCommon_transparent_typeRef elemTransparent; 243 domCommon_float_or_param_typeRef elemTransparency; 244 domCommon_float_or_param_typeRef elemIndex_of_refraction; 245 246 public: //Accessors and Mutators 247 /** 248 * Gets the emission element. 249 * @return a daeSmartRef to the emission element. 250 */ 251 const domCommon_color_or_texture_typeRef getEmission() const { return elemEmission; } 252 /** 253 * Gets the ambient element. 254 * @return a daeSmartRef to the ambient element. 255 */ 256 const domCommon_color_or_texture_typeRef getAmbient() const { return elemAmbient; } 257 /** 258 * Gets the diffuse element. 259 * @return a daeSmartRef to the diffuse element. 260 */ 261 const domCommon_color_or_texture_typeRef getDiffuse() const { return elemDiffuse; } 262 /** 263 * Gets the specular element. 264 * @return a daeSmartRef to the specular element. 265 */ 266 const domCommon_color_or_texture_typeRef getSpecular() const { return elemSpecular; } 267 /** 268 * Gets the shininess element. 269 * @return a daeSmartRef to the shininess element. 270 */ 271 const domCommon_float_or_param_typeRef getShininess() const { return elemShininess; } 272 /** 273 * Gets the reflective element. 274 * @return a daeSmartRef to the reflective element. 275 */ 276 const domCommon_color_or_texture_typeRef getReflective() const { return elemReflective; } 277 /** 278 * Gets the reflectivity element. 279 * @return a daeSmartRef to the reflectivity element. 280 */ 281 const domCommon_float_or_param_typeRef getReflectivity() const { return elemReflectivity; } 282 /** 283 * Gets the transparent element. 284 * @return a daeSmartRef to the transparent element. 285 */ 286 const domCommon_transparent_typeRef getTransparent() const { return elemTransparent; } 287 /** 288 * Gets the transparency element. 289 * @return a daeSmartRef to the transparency element. 290 */ 291 const domCommon_float_or_param_typeRef getTransparency() const { return elemTransparency; } 292 /** 293 * Gets the index_of_refraction element. 294 * @return a daeSmartRef to the index_of_refraction element. 295 */ 296 const domCommon_float_or_param_typeRef getIndex_of_refraction() const { return elemIndex_of_refraction; } 297 protected: 298 /** 299 * Constructor 300 */ 301 domPhong(DAE& dae) : daeElement(dae), elemEmission(), elemAmbient(), elemDiffuse(), elemSpecular(), elemShininess(), elemReflective(), elemReflectivity(), elemTransparent(), elemTransparency(), elemIndex_of_refraction() {} 302 /** 303 * Destructor 304 */ 305 virtual ~domPhong() {} 306 /** 307 * Overloaded assignment operator 308 */ 309 virtual domPhong &operator=( const domPhong &cpy ) { (void)cpy; return *this; } 310 311 public: // STATIC METHODS 312 /** 313 * Creates an instance of this class and returns a daeElementRef referencing it. 314 * @return a daeElementRef referencing an instance of this object. 315 */ 316 static DLLSPEC daeElementRef create(DAE& dae); 317 /** 318 * Creates a daeMetaElement object that describes this element in the meta object reflection framework. 319 * If a daeMetaElement already exists it will return that instead of creating a new one. 320 * @return A daeMetaElement describing this COLLADA element. 321 */ 322 static DLLSPEC daeMetaElement* registerElement(DAE& dae); 323 }; 324 325 class domBlinn; 326 327 typedef daeSmartRef<domBlinn> domBlinnRef; 328 typedef daeTArray<domBlinnRef> domBlinn_Array; 329 330 class domBlinn : public daeElement 331 { 332 public: 333 virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BLINN; } 334 static daeInt ID() { return 745; } 335 virtual daeInt typeID() const { return ID(); } 336 337 protected: // Elements 338 domCommon_color_or_texture_typeRef elemEmission; 339 domCommon_color_or_texture_typeRef elemAmbient; 340 domCommon_color_or_texture_typeRef elemDiffuse; 341 domCommon_color_or_texture_typeRef elemSpecular; 342 domCommon_float_or_param_typeRef elemShininess; 343 domCommon_color_or_texture_typeRef elemReflective; 344 domCommon_float_or_param_typeRef elemReflectivity; 345 domCommon_transparent_typeRef elemTransparent; 346 domCommon_float_or_param_typeRef elemTransparency; 347 domCommon_float_or_param_typeRef elemIndex_of_refraction; 348 349 public: //Accessors and Mutators 350 /** 351 * Gets the emission element. 352 * @return a daeSmartRef to the emission element. 353 */ 354 const domCommon_color_or_texture_typeRef getEmission() const { return elemEmission; } 355 /** 356 * Gets the ambient element. 357 * @return a daeSmartRef to the ambient element. 358 */ 359 const domCommon_color_or_texture_typeRef getAmbient() const { return elemAmbient; } 360 /** 361 * Gets the diffuse element. 362 * @return a daeSmartRef to the diffuse element. 363 */ 364 const domCommon_color_or_texture_typeRef getDiffuse() const { return elemDiffuse; } 365 /** 366 * Gets the specular element. 367 * @return a daeSmartRef to the specular element. 368 */ 369 const domCommon_color_or_texture_typeRef getSpecular() const { return elemSpecular; } 370 /** 371 * Gets the shininess element. 372 * @return a daeSmartRef to the shininess element. 373 */ 374 const domCommon_float_or_param_typeRef getShininess() const { return elemShininess; } 375 /** 376 * Gets the reflective element. 377 * @return a daeSmartRef to the reflective element. 378 */ 379 const domCommon_color_or_texture_typeRef getReflective() const { return elemReflective; } 380 /** 381 * Gets the reflectivity element. 382 * @return a daeSmartRef to the reflectivity element. 383 */ 384 const domCommon_float_or_param_typeRef getReflectivity() const { return elemReflectivity; } 385 /** 386 * Gets the transparent element. 387 * @return a daeSmartRef to the transparent element. 388 */ 389 const domCommon_transparent_typeRef getTransparent() const { return elemTransparent; } 390 /** 391 * Gets the transparency element. 392 * @return a daeSmartRef to the transparency element. 393 */ 394 const domCommon_float_or_param_typeRef getTransparency() const { return elemTransparency; } 395 /** 396 * Gets the index_of_refraction element. 397 * @return a daeSmartRef to the index_of_refraction element. 398 */ 399 const domCommon_float_or_param_typeRef getIndex_of_refraction() const { return elemIndex_of_refraction; } 400 protected: 401 /** 402 * Constructor 403 */ 404 domBlinn(DAE& dae) : daeElement(dae), elemEmission(), elemAmbient(), elemDiffuse(), elemSpecular(), elemShininess(), elemReflective(), elemReflectivity(), elemTransparent(), elemTransparency(), elemIndex_of_refraction() {} 405 /** 406 * Destructor 407 */ 408 virtual ~domBlinn() {} 409 /** 410 * Overloaded assignment operator 411 */ 412 virtual domBlinn &operator=( const domBlinn &cpy ) { (void)cpy; return *this; } 413 414 public: // STATIC METHODS 415 /** 416 * Creates an instance of this class and returns a daeElementRef referencing it. 417 * @return a daeElementRef referencing an instance of this object. 418 */ 419 static DLLSPEC daeElementRef create(DAE& dae); 420 /** 421 * Creates a daeMetaElement object that describes this element in the meta object reflection framework. 422 * If a daeMetaElement already exists it will return that instead of creating a new one. 423 * @return A daeMetaElement describing this COLLADA element. 424 */ 425 static DLLSPEC daeMetaElement* registerElement(DAE& dae); 426 }; 427 428 429 protected: // Attributes 430 /** 431 * The id attribute is a text string containing the unique identifier of 432 * this element. This value must be unique within the instance document. 433 * Optional attribute. 434 */ 435 xsID attrId; 436 /** 437 * The sid attribute is a text string value containing the sub-identifier 438 * of this element. This value must be unique within the scope of the parent 439 * element. Optional attribute. 440 */ 441 xsNCName attrSid; 442 443 protected: // Elements 444 /** 445 * The technique element may contain an asset element. @see domAsset 446 */ 447 domAssetRef elemAsset; 448 domImage_Array elemImage_array; 449 domCommon_newparam_type_Array elemNewparam_array; 450 domConstantRef elemConstant; 451 domLambertRef elemLambert; 452 domPhongRef elemPhong; 453 domBlinnRef elemBlinn; 454 /** 455 * The extra element may appear any number of times. @see domExtra 456 */ 457 domExtra_Array elemExtra_array; 458 /** 459 * Used to preserve order in elements that do not specify strict sequencing of sub-elements. 460 */ 461 daeElementRefArray _contents; 462 /** 463 * Used to preserve order in elements that have a complex content model. 464 */ 465 daeUIntArray _contentsOrder; 466 467 /** 468 * Used to store information needed for some content model objects. 469 */ 470 daeTArray< daeCharArray * > _CMData; 471 472 473 public: //Accessors and Mutators 474 /** 475 * Gets the id attribute. 476 * @return Returns a xsID of the id attribute. 477 */ 478 xsID getId() const { return attrId; } 479 /** 480 * Sets the id attribute. 481 * @param atId The new value for the id attribute. 482 */ 483 void setId( xsID atId ) { *(daeStringRef*)&attrId = atId; _validAttributeArray[0] = true; 484 if( _document != NULL ) _document->changeElementID( this, attrId ); 485 } 486 487 /** 488 * Gets the sid attribute. 489 * @return Returns a xsNCName of the sid attribute. 490 */ 491 xsNCName getSid() const { return attrSid; } 492 /** 493 * Sets the sid attribute. 494 * @param atSid The new value for the sid attribute. 495 */ 496 void setSid( xsNCName atSid ) { *(daeStringRef*)&attrSid = atSid; _validAttributeArray[1] = true; } 497 498 /** 499 * Gets the asset element. 500 * @return a daeSmartRef to the asset element. 501 */ 502 const domAssetRef getAsset() const { return elemAsset; } 503 /** 504 * Gets the image element array. 505 * @return Returns a reference to the array of image elements. 506 */ 507 domImage_Array &getImage_array() { return elemImage_array; } 508 /** 509 * Gets the image element array. 510 * @return Returns a constant reference to the array of image elements. 511 */ 512 const domImage_Array &getImage_array() const { return elemImage_array; } 513 /** 514 * Gets the newparam element array. 515 * @return Returns a reference to the array of newparam elements. 516 */ 517 domCommon_newparam_type_Array &getNewparam_array() { return elemNewparam_array; } 518 /** 519 * Gets the newparam element array. 520 * @return Returns a constant reference to the array of newparam elements. 521 */ 522 const domCommon_newparam_type_Array &getNewparam_array() const { return elemNewparam_array; } 523 /** 524 * Gets the constant element. 525 * @return a daeSmartRef to the constant element. 526 */ 527 const domConstantRef getConstant() const { return elemConstant; } 528 /** 529 * Gets the lambert element. 530 * @return a daeSmartRef to the lambert element. 531 */ 532 const domLambertRef getLambert() const { return elemLambert; } 533 /** 534 * Gets the phong element. 535 * @return a daeSmartRef to the phong element. 536 */ 537 const domPhongRef getPhong() const { return elemPhong; } 538 /** 539 * Gets the blinn element. 540 * @return a daeSmartRef to the blinn element. 541 */ 542 const domBlinnRef getBlinn() const { return elemBlinn; } 543 /** 544 * Gets the extra element array. 545 * @return Returns a reference to the array of extra elements. 546 */ 547 domExtra_Array &getExtra_array() { return elemExtra_array; } 548 /** 549 * Gets the extra element array. 550 * @return Returns a constant reference to the array of extra elements. 551 */ 552 const domExtra_Array &getExtra_array() const { return elemExtra_array; } 553 /** 554 * Gets the _contents array. 555 * @return Returns a reference to the _contents element array. 556 */ 557 daeElementRefArray &getContents() { return _contents; } 558 /** 559 * Gets the _contents array. 560 * @return Returns a constant reference to the _contents element array. 561 */ 562 const daeElementRefArray &getContents() const { return _contents; } 563 564 protected: 565 /** 566 * Constructor 567 */ 568 domTechnique(DAE& dae) : daeElement(dae), attrId(), attrSid(), elemAsset(), elemImage_array(), elemNewparam_array(), elemConstant(), elemLambert(), elemPhong(), elemBlinn(), elemExtra_array() {} 569 /** 570 * Destructor 571 */ 572 virtual ~domTechnique() { daeElement::deleteCMDataArray(_CMData); } 573 /** 574 * Overloaded assignment operator 575 */ 576 virtual domTechnique &operator=( const domTechnique &cpy ) { (void)cpy; return *this; } 577 578 public: // STATIC METHODS 579 /** 580 * Creates an instance of this class and returns a daeElementRef referencing it. 581 * @return a daeElementRef referencing an instance of this object. 582 */ 583 static DLLSPEC daeElementRef create(DAE& dae); 584 /** 585 * Creates a daeMetaElement object that describes this element in the meta object reflection framework. 586 * If a daeMetaElement already exists it will return that instead of creating a new one. 587 * @return A daeMetaElement describing this COLLADA element. 588 */ 589 static DLLSPEC daeMetaElement* registerElement(DAE& dae); 590 }; 591 592 593 protected: // Attribute 594 /** 595 * The id attribute is a text string containing the unique identifier of 596 * this element. This value must be unique within the instance document. 597 * Optional attribute. 598 */ 599 xsID attrId; 600 601 protected: // Elements 602 domAssetRef elemAsset; 603 domImage_Array elemImage_array; 604 domCommon_newparam_type_Array elemNewparam_array; 605 /** 606 * Holds a description of the textures, samplers, shaders, parameters, and 607 * passes necessary for rendering this effect using one method. @see domTechnique 608 */ 609 domTechniqueRef elemTechnique; 610 /** 611 * The extra element may appear any number of times. @see domExtra 612 */ 613 domExtra_Array elemExtra_array; 614 /** 615 * Used to preserve order in elements that do not specify strict sequencing of sub-elements. 616 */ 617 daeElementRefArray _contents; 618 /** 619 * Used to preserve order in elements that have a complex content model. 620 */ 621 daeUIntArray _contentsOrder; 622 623 /** 624 * Used to store information needed for some content model objects. 625 */ 626 daeTArray< daeCharArray * > _CMData; 627 628 629 public: //Accessors and Mutators 630 /** 631 * Gets the id attribute. 632 * @return Returns a xsID of the id attribute. 633 */ 634 xsID getId() const { return attrId; } 635 /** 636 * Sets the id attribute. 637 * @param atId The new value for the id attribute. 638 */ 639 void setId( xsID atId ) { *(daeStringRef*)&attrId = atId; _validAttributeArray[0] = true; 640 if( _document != NULL ) _document->changeElementID( this, attrId ); 641 } 642 643 /** 644 * Gets the asset element. 645 * @return a daeSmartRef to the asset element. 646 */ 647 const domAssetRef getAsset() const { return elemAsset; } 648 /** 649 * Gets the image element array. 650 * @return Returns a reference to the array of image elements. 651 */ 652 domImage_Array &getImage_array() { return elemImage_array; } 653 /** 654 * Gets the image element array. 655 * @return Returns a constant reference to the array of image elements. 656 */ 657 const domImage_Array &getImage_array() const { return elemImage_array; } 658 /** 659 * Gets the newparam element array. 660 * @return Returns a reference to the array of newparam elements. 661 */ 662 domCommon_newparam_type_Array &getNewparam_array() { return elemNewparam_array; } 663 /** 664 * Gets the newparam element array. 665 * @return Returns a constant reference to the array of newparam elements. 666 */ 667 const domCommon_newparam_type_Array &getNewparam_array() const { return elemNewparam_array; } 668 /** 669 * Gets the technique element. 670 * @return a daeSmartRef to the technique element. 671 */ 672 const domTechniqueRef getTechnique() const { return elemTechnique; } 673 /** 674 * Gets the extra element array. 675 * @return Returns a reference to the array of extra elements. 676 */ 677 domExtra_Array &getExtra_array() { return elemExtra_array; } 678 /** 679 * Gets the extra element array. 680 * @return Returns a constant reference to the array of extra elements. 681 */ 682 const domExtra_Array &getExtra_array() const { return elemExtra_array; } 683 /** 684 * Gets the _contents array. 685 * @return Returns a reference to the _contents element array. 686 */ 687 daeElementRefArray &getContents() { return _contents; } 688 /** 689 * Gets the _contents array. 690 * @return Returns a constant reference to the _contents element array. 691 */ 692 const daeElementRefArray &getContents() const { return _contents; } 693 694 protected: 695 /** 696 * Constructor 697 */ 698 domProfile_COMMON(DAE& dae) : domFx_profile_abstract(dae), attrId(), elemAsset(), elemImage_array(), elemNewparam_array(), elemTechnique(), elemExtra_array() {} 699 /** 700 * Destructor 701 */ 702 virtual ~domProfile_COMMON() { daeElement::deleteCMDataArray(_CMData); } 703 /** 704 * Overloaded assignment operator 705 */ 706 virtual domProfile_COMMON &operator=( const domProfile_COMMON &cpy ) { (void)cpy; return *this; } 707 708 public: // STATIC METHODS 709 /** 710 * Creates an instance of this class and returns a daeElementRef referencing it. 711 * @return a daeElementRef referencing an instance of this object. 712 */ 713 static DLLSPEC daeElementRef create(DAE& dae); 714 /** 715 * Creates a daeMetaElement object that describes this element in the meta object reflection framework. 716 * If a daeMetaElement already exists it will return that instead of creating a new one. 717 * @return A daeMetaElement describing this COLLADA element. 718 */ 719 static DLLSPEC daeMetaElement* registerElement(DAE& dae); 720 }; 721 722 723 #endif 724