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_GLES_h__ 10 #define __domProfile_GLES_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/domGles_newparam.h> 21 #include <dom/domFx_annotate_common.h> 22 #include <dom/domGles_basic_type_common.h> 23 #include <dom/domGles_pipeline_settings.h> 24 class DAE; 25 26 /** 27 * Opens a block of GLES platform-specific data types and technique declarations. 28 */ 29 class domProfile_GLES : public domFx_profile_abstract 30 { 31 public: 32 virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::PROFILE_GLES; } 33 static daeInt ID() { return 756; } 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 757; } 50 virtual daeInt typeID() const { return ID(); } 51 public: 52 class domSetparam; 53 54 typedef daeSmartRef<domSetparam> domSetparamRef; 55 typedef daeTArray<domSetparamRef> domSetparam_Array; 56 57 class domSetparam : public daeElement 58 { 59 public: 60 virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::SETPARAM; } 61 static daeInt ID() { return 758; } 62 virtual daeInt typeID() const { return ID(); } 63 protected: // Attribute 64 xsNCName attrRef; 65 66 protected: // Elements 67 domFx_annotate_common_Array elemAnnotate_array; 68 domGles_basic_type_commonRef elemGles_basic_type_common; 69 70 public: //Accessors and Mutators 71 /** 72 * Gets the ref attribute. 73 * @return Returns a xsNCName of the ref attribute. 74 */ 75 xsNCName getRef() const { return attrRef; } 76 /** 77 * Sets the ref attribute. 78 * @param atRef The new value for the ref attribute. 79 */ 80 void setRef( xsNCName atRef ) { *(daeStringRef*)&attrRef = atRef; _validAttributeArray[0] = true; } 81 82 /** 83 * Gets the annotate element array. 84 * @return Returns a reference to the array of annotate elements. 85 */ 86 domFx_annotate_common_Array &getAnnotate_array() { return elemAnnotate_array; } 87 /** 88 * Gets the annotate element array. 89 * @return Returns a constant reference to the array of annotate elements. 90 */ 91 const domFx_annotate_common_Array &getAnnotate_array() const { return elemAnnotate_array; } 92 /** 93 * Gets the gles_basic_type_common element. 94 * @return a daeSmartRef to the gles_basic_type_common element. 95 */ 96 const domGles_basic_type_commonRef getGles_basic_type_common() const { return elemGles_basic_type_common; } 97 protected: 98 /** 99 * Constructor 100 */ 101 domSetparam(DAE& dae) : daeElement(dae), attrRef(), elemAnnotate_array(), elemGles_basic_type_common() {} 102 /** 103 * Destructor 104 */ 105 virtual ~domSetparam() {} 106 /** 107 * Overloaded assignment operator 108 */ 109 virtual domSetparam &operator=( const domSetparam &cpy ) { (void)cpy; return *this; } 110 111 public: // STATIC METHODS 112 /** 113 * Creates an instance of this class and returns a daeElementRef referencing it. 114 * @return a daeElementRef referencing an instance of this object. 115 */ 116 static DLLSPEC daeElementRef create(DAE& dae); 117 /** 118 * Creates a daeMetaElement object that describes this element in the meta object reflection framework. 119 * If a daeMetaElement already exists it will return that instead of creating a new one. 120 * @return A daeMetaElement describing this COLLADA element. 121 */ 122 static DLLSPEC daeMetaElement* registerElement(DAE& dae); 123 }; 124 125 class domPass; 126 127 typedef daeSmartRef<domPass> domPassRef; 128 typedef daeTArray<domPassRef> domPass_Array; 129 130 /** 131 * A static declaration of all the render states, shaders, and settings for 132 * one rendering pipeline. 133 */ 134 class domPass : public daeElement 135 { 136 public: 137 virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::PASS; } 138 static daeInt ID() { return 759; } 139 virtual daeInt typeID() const { return ID(); } 140 public: 141 class domColor_target; 142 143 typedef daeSmartRef<domColor_target> domColor_targetRef; 144 typedef daeTArray<domColor_targetRef> domColor_target_Array; 145 146 class domColor_target : public daeElement 147 { 148 public: 149 virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::COLOR_TARGET; } 150 static daeInt ID() { return 760; } 151 virtual daeInt typeID() const { return ID(); } 152 153 protected: // Value 154 /** 155 * The domGles_rendertarget_common value of the text data of this element. 156 */ 157 domGles_rendertarget_common _value; 158 159 public: //Accessors and Mutators 160 /** 161 * Gets the value of this element. 162 * @return a domGles_rendertarget_common of the value. 163 */ 164 domGles_rendertarget_common getValue() const { return _value; } 165 /** 166 * Sets the _value of this element. 167 * @param val The new value for this element. 168 */ 169 void setValue( domGles_rendertarget_common val ) { _value = val; } 170 171 protected: 172 /** 173 * Constructor 174 */ 175 domColor_target(DAE& dae) : daeElement(dae), _value() {} 176 /** 177 * Destructor 178 */ 179 virtual ~domColor_target() {} 180 /** 181 * Overloaded assignment operator 182 */ 183 virtual domColor_target &operator=( const domColor_target &cpy ) { (void)cpy; return *this; } 184 185 public: // STATIC METHODS 186 /** 187 * Creates an instance of this class and returns a daeElementRef referencing it. 188 * @return a daeElementRef referencing an instance of this object. 189 */ 190 static DLLSPEC daeElementRef create(DAE& dae); 191 /** 192 * Creates a daeMetaElement object that describes this element in the meta object reflection framework. 193 * If a daeMetaElement already exists it will return that instead of creating a new one. 194 * @return A daeMetaElement describing this COLLADA element. 195 */ 196 static DLLSPEC daeMetaElement* registerElement(DAE& dae); 197 }; 198 199 class domDepth_target; 200 201 typedef daeSmartRef<domDepth_target> domDepth_targetRef; 202 typedef daeTArray<domDepth_targetRef> domDepth_target_Array; 203 204 class domDepth_target : public daeElement 205 { 206 public: 207 virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::DEPTH_TARGET; } 208 static daeInt ID() { return 761; } 209 virtual daeInt typeID() const { return ID(); } 210 211 protected: // Value 212 /** 213 * The domGles_rendertarget_common value of the text data of this element. 214 */ 215 domGles_rendertarget_common _value; 216 217 public: //Accessors and Mutators 218 /** 219 * Gets the value of this element. 220 * @return a domGles_rendertarget_common of the value. 221 */ 222 domGles_rendertarget_common getValue() const { return _value; } 223 /** 224 * Sets the _value of this element. 225 * @param val The new value for this element. 226 */ 227 void setValue( domGles_rendertarget_common val ) { _value = val; } 228 229 protected: 230 /** 231 * Constructor 232 */ 233 domDepth_target(DAE& dae) : daeElement(dae), _value() {} 234 /** 235 * Destructor 236 */ 237 virtual ~domDepth_target() {} 238 /** 239 * Overloaded assignment operator 240 */ 241 virtual domDepth_target &operator=( const domDepth_target &cpy ) { (void)cpy; return *this; } 242 243 public: // STATIC METHODS 244 /** 245 * Creates an instance of this class and returns a daeElementRef referencing it. 246 * @return a daeElementRef referencing an instance of this object. 247 */ 248 static DLLSPEC daeElementRef create(DAE& dae); 249 /** 250 * Creates a daeMetaElement object that describes this element in the meta object reflection framework. 251 * If a daeMetaElement already exists it will return that instead of creating a new one. 252 * @return A daeMetaElement describing this COLLADA element. 253 */ 254 static DLLSPEC daeMetaElement* registerElement(DAE& dae); 255 }; 256 257 class domStencil_target; 258 259 typedef daeSmartRef<domStencil_target> domStencil_targetRef; 260 typedef daeTArray<domStencil_targetRef> domStencil_target_Array; 261 262 class domStencil_target : public daeElement 263 { 264 public: 265 virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::STENCIL_TARGET; } 266 static daeInt ID() { return 762; } 267 virtual daeInt typeID() const { return ID(); } 268 269 protected: // Value 270 /** 271 * The domGles_rendertarget_common value of the text data of this element. 272 */ 273 domGles_rendertarget_common _value; 274 275 public: //Accessors and Mutators 276 /** 277 * Gets the value of this element. 278 * @return a domGles_rendertarget_common of the value. 279 */ 280 domGles_rendertarget_common getValue() const { return _value; } 281 /** 282 * Sets the _value of this element. 283 * @param val The new value for this element. 284 */ 285 void setValue( domGles_rendertarget_common val ) { _value = val; } 286 287 protected: 288 /** 289 * Constructor 290 */ 291 domStencil_target(DAE& dae) : daeElement(dae), _value() {} 292 /** 293 * Destructor 294 */ 295 virtual ~domStencil_target() {} 296 /** 297 * Overloaded assignment operator 298 */ 299 virtual domStencil_target &operator=( const domStencil_target &cpy ) { (void)cpy; return *this; } 300 301 public: // STATIC METHODS 302 /** 303 * Creates an instance of this class and returns a daeElementRef referencing it. 304 * @return a daeElementRef referencing an instance of this object. 305 */ 306 static DLLSPEC daeElementRef create(DAE& dae); 307 /** 308 * Creates a daeMetaElement object that describes this element in the meta object reflection framework. 309 * If a daeMetaElement already exists it will return that instead of creating a new one. 310 * @return A daeMetaElement describing this COLLADA element. 311 */ 312 static DLLSPEC daeMetaElement* registerElement(DAE& dae); 313 }; 314 315 class domColor_clear; 316 317 typedef daeSmartRef<domColor_clear> domColor_clearRef; 318 typedef daeTArray<domColor_clearRef> domColor_clear_Array; 319 320 class domColor_clear : public daeElement 321 { 322 public: 323 virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::COLOR_CLEAR; } 324 static daeInt ID() { return 763; } 325 virtual daeInt typeID() const { return ID(); } 326 327 protected: // Value 328 /** 329 * The domFx_color_common value of the text data of this element. 330 */ 331 domFx_color_common _value; 332 333 public: //Accessors and Mutators 334 /** 335 * Gets the _value array. 336 * @return Returns a domFx_color_common reference of the _value array. 337 */ 338 domFx_color_common &getValue() { return _value; } 339 /** 340 * Gets the _value array. 341 * @return Returns a constant domFx_color_common reference of the _value array. 342 */ 343 const domFx_color_common &getValue() const { return _value; } 344 /** 345 * Sets the _value array. 346 * @param val The new value for the _value array. 347 */ 348 void setValue( const domFx_color_common &val ) { _value = val; } 349 350 protected: 351 /** 352 * Constructor 353 */ 354 domColor_clear(DAE& dae) : daeElement(dae), _value() {} 355 /** 356 * Destructor 357 */ 358 virtual ~domColor_clear() {} 359 /** 360 * Overloaded assignment operator 361 */ 362 virtual domColor_clear &operator=( const domColor_clear &cpy ) { (void)cpy; return *this; } 363 364 public: // STATIC METHODS 365 /** 366 * Creates an instance of this class and returns a daeElementRef referencing it. 367 * @return a daeElementRef referencing an instance of this object. 368 */ 369 static DLLSPEC daeElementRef create(DAE& dae); 370 /** 371 * Creates a daeMetaElement object that describes this element in the meta object reflection framework. 372 * If a daeMetaElement already exists it will return that instead of creating a new one. 373 * @return A daeMetaElement describing this COLLADA element. 374 */ 375 static DLLSPEC daeMetaElement* registerElement(DAE& dae); 376 }; 377 378 class domDepth_clear; 379 380 typedef daeSmartRef<domDepth_clear> domDepth_clearRef; 381 typedef daeTArray<domDepth_clearRef> domDepth_clear_Array; 382 383 class domDepth_clear : public daeElement 384 { 385 public: 386 virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::DEPTH_CLEAR; } 387 static daeInt ID() { return 764; } 388 virtual daeInt typeID() const { return ID(); } 389 390 protected: // Value 391 /** 392 * The domFloat value of the text data of this element. 393 */ 394 domFloat _value; 395 396 public: //Accessors and Mutators 397 /** 398 * Gets the value of this element. 399 * @return a domFloat of the value. 400 */ 401 domFloat getValue() const { return _value; } 402 /** 403 * Sets the _value of this element. 404 * @param val The new value for this element. 405 */ 406 void setValue( domFloat val ) { _value = val; } 407 408 protected: 409 /** 410 * Constructor 411 */ 412 domDepth_clear(DAE& dae) : daeElement(dae), _value() {} 413 /** 414 * Destructor 415 */ 416 virtual ~domDepth_clear() {} 417 /** 418 * Overloaded assignment operator 419 */ 420 virtual domDepth_clear &operator=( const domDepth_clear &cpy ) { (void)cpy; return *this; } 421 422 public: // STATIC METHODS 423 /** 424 * Creates an instance of this class and returns a daeElementRef referencing it. 425 * @return a daeElementRef referencing an instance of this object. 426 */ 427 static DLLSPEC daeElementRef create(DAE& dae); 428 /** 429 * Creates a daeMetaElement object that describes this element in the meta object reflection framework. 430 * If a daeMetaElement already exists it will return that instead of creating a new one. 431 * @return A daeMetaElement describing this COLLADA element. 432 */ 433 static DLLSPEC daeMetaElement* registerElement(DAE& dae); 434 }; 435 436 class domStencil_clear; 437 438 typedef daeSmartRef<domStencil_clear> domStencil_clearRef; 439 typedef daeTArray<domStencil_clearRef> domStencil_clear_Array; 440 441 class domStencil_clear : public daeElement 442 { 443 public: 444 virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::STENCIL_CLEAR; } 445 static daeInt ID() { return 765; } 446 virtual daeInt typeID() const { return ID(); } 447 448 protected: // Value 449 /** 450 * The xsByte value of the text data of this element. 451 */ 452 xsByte _value; 453 454 public: //Accessors and Mutators 455 /** 456 * Gets the value of this element. 457 * @return a xsByte of the value. 458 */ 459 xsByte getValue() const { return _value; } 460 /** 461 * Sets the _value of this element. 462 * @param val The new value for this element. 463 */ 464 void setValue( xsByte val ) { _value = val; } 465 466 protected: 467 /** 468 * Constructor 469 */ 470 domStencil_clear(DAE& dae) : daeElement(dae), _value() {} 471 /** 472 * Destructor 473 */ 474 virtual ~domStencil_clear() {} 475 /** 476 * Overloaded assignment operator 477 */ 478 virtual domStencil_clear &operator=( const domStencil_clear &cpy ) { (void)cpy; return *this; } 479 480 public: // STATIC METHODS 481 /** 482 * Creates an instance of this class and returns a daeElementRef referencing it. 483 * @return a daeElementRef referencing an instance of this object. 484 */ 485 static DLLSPEC daeElementRef create(DAE& dae); 486 /** 487 * Creates a daeMetaElement object that describes this element in the meta object reflection framework. 488 * If a daeMetaElement already exists it will return that instead of creating a new one. 489 * @return A daeMetaElement describing this COLLADA element. 490 */ 491 static DLLSPEC daeMetaElement* registerElement(DAE& dae); 492 }; 493 494 class domDraw; 495 496 typedef daeSmartRef<domDraw> domDrawRef; 497 typedef daeTArray<domDrawRef> domDraw_Array; 498 499 class domDraw : public daeElement 500 { 501 public: 502 virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::DRAW; } 503 static daeInt ID() { return 766; } 504 virtual daeInt typeID() const { return ID(); } 505 506 protected: // Value 507 /** 508 * The domFx_draw_common value of the text data of this element. 509 */ 510 domFx_draw_common _value; 511 512 public: //Accessors and Mutators 513 /** 514 * Gets the value of this element. 515 * @return a domFx_draw_common of the value. 516 */ 517 domFx_draw_common getValue() const { return _value; } 518 /** 519 * Sets the _value of this element. 520 * @param val The new value for this element. 521 */ 522 void setValue( domFx_draw_common val ) { _value = val; } 523 524 protected: 525 /** 526 * Constructor 527 */ 528 domDraw(DAE& dae) : daeElement(dae), _value() {} 529 /** 530 * Destructor 531 */ 532 virtual ~domDraw() {} 533 /** 534 * Overloaded assignment operator 535 */ 536 virtual domDraw &operator=( const domDraw &cpy ) { (void)cpy; return *this; } 537 538 public: // STATIC METHODS 539 /** 540 * Creates an instance of this class and returns a daeElementRef referencing it. 541 * @return a daeElementRef referencing an instance of this object. 542 */ 543 static DLLSPEC daeElementRef create(DAE& dae); 544 /** 545 * Creates a daeMetaElement object that describes this element in the meta object reflection framework. 546 * If a daeMetaElement already exists it will return that instead of creating a new one. 547 * @return A daeMetaElement describing this COLLADA element. 548 */ 549 static DLLSPEC daeMetaElement* registerElement(DAE& dae); 550 }; 551 552 553 protected: // Attribute 554 /** 555 * The sid attribute is a text string value containing the sub-identifier 556 * of this element. This value must be unique within the scope of the parent 557 * element. Optional attribute. 558 */ 559 xsNCName attrSid; 560 561 protected: // Elements 562 domFx_annotate_common_Array elemAnnotate_array; 563 domColor_targetRef elemColor_target; 564 domDepth_targetRef elemDepth_target; 565 domStencil_targetRef elemStencil_target; 566 domColor_clearRef elemColor_clear; 567 domDepth_clearRef elemDepth_clear; 568 domStencil_clearRef elemStencil_clear; 569 domDrawRef elemDraw; 570 domGles_pipeline_settings_Array elemGles_pipeline_settings_array; 571 domExtra_Array elemExtra_array; 572 /** 573 * Used to preserve order in elements that do not specify strict sequencing of sub-elements. 574 */ 575 daeElementRefArray _contents; 576 /** 577 * Used to preserve order in elements that have a complex content model. 578 */ 579 daeUIntArray _contentsOrder; 580 581 /** 582 * Used to store information needed for some content model objects. 583 */ 584 daeTArray< daeCharArray * > _CMData; 585 586 587 public: //Accessors and Mutators 588 /** 589 * Gets the sid attribute. 590 * @return Returns a xsNCName of the sid attribute. 591 */ 592 xsNCName getSid() const { return attrSid; } 593 /** 594 * Sets the sid attribute. 595 * @param atSid The new value for the sid attribute. 596 */ 597 void setSid( xsNCName atSid ) { *(daeStringRef*)&attrSid = atSid; _validAttributeArray[0] = true; } 598 599 /** 600 * Gets the annotate element array. 601 * @return Returns a reference to the array of annotate elements. 602 */ 603 domFx_annotate_common_Array &getAnnotate_array() { return elemAnnotate_array; } 604 /** 605 * Gets the annotate element array. 606 * @return Returns a constant reference to the array of annotate elements. 607 */ 608 const domFx_annotate_common_Array &getAnnotate_array() const { return elemAnnotate_array; } 609 /** 610 * Gets the color_target element. 611 * @return a daeSmartRef to the color_target element. 612 */ 613 const domColor_targetRef getColor_target() const { return elemColor_target; } 614 /** 615 * Gets the depth_target element. 616 * @return a daeSmartRef to the depth_target element. 617 */ 618 const domDepth_targetRef getDepth_target() const { return elemDepth_target; } 619 /** 620 * Gets the stencil_target element. 621 * @return a daeSmartRef to the stencil_target element. 622 */ 623 const domStencil_targetRef getStencil_target() const { return elemStencil_target; } 624 /** 625 * Gets the color_clear element. 626 * @return a daeSmartRef to the color_clear element. 627 */ 628 const domColor_clearRef getColor_clear() const { return elemColor_clear; } 629 /** 630 * Gets the depth_clear element. 631 * @return a daeSmartRef to the depth_clear element. 632 */ 633 const domDepth_clearRef getDepth_clear() const { return elemDepth_clear; } 634 /** 635 * Gets the stencil_clear element. 636 * @return a daeSmartRef to the stencil_clear element. 637 */ 638 const domStencil_clearRef getStencil_clear() const { return elemStencil_clear; } 639 /** 640 * Gets the draw element. 641 * @return a daeSmartRef to the draw element. 642 */ 643 const domDrawRef getDraw() const { return elemDraw; } 644 /** 645 * Gets the gles_pipeline_settings element array. 646 * @return Returns a reference to the array of gles_pipeline_settings elements. 647 */ 648 domGles_pipeline_settings_Array &getGles_pipeline_settings_array() { return elemGles_pipeline_settings_array; } 649 /** 650 * Gets the gles_pipeline_settings element array. 651 * @return Returns a constant reference to the array of gles_pipeline_settings elements. 652 */ 653 const domGles_pipeline_settings_Array &getGles_pipeline_settings_array() const { return elemGles_pipeline_settings_array; } 654 /** 655 * Gets the extra element array. 656 * @return Returns a reference to the array of extra elements. 657 */ 658 domExtra_Array &getExtra_array() { return elemExtra_array; } 659 /** 660 * Gets the extra element array. 661 * @return Returns a constant reference to the array of extra elements. 662 */ 663 const domExtra_Array &getExtra_array() const { return elemExtra_array; } 664 /** 665 * Gets the _contents array. 666 * @return Returns a reference to the _contents element array. 667 */ 668 daeElementRefArray &getContents() { return _contents; } 669 /** 670 * Gets the _contents array. 671 * @return Returns a constant reference to the _contents element array. 672 */ 673 const daeElementRefArray &getContents() const { return _contents; } 674 675 protected: 676 /** 677 * Constructor 678 */ 679 domPass(DAE& dae) : daeElement(dae), attrSid(), elemAnnotate_array(), elemColor_target(), elemDepth_target(), elemStencil_target(), elemColor_clear(), elemDepth_clear(), elemStencil_clear(), elemDraw(), elemGles_pipeline_settings_array(), elemExtra_array() {} 680 /** 681 * Destructor 682 */ 683 virtual ~domPass() { daeElement::deleteCMDataArray(_CMData); } 684 /** 685 * Overloaded assignment operator 686 */ 687 virtual domPass &operator=( const domPass &cpy ) { (void)cpy; return *this; } 688 689 public: // STATIC METHODS 690 /** 691 * Creates an instance of this class and returns a daeElementRef referencing it. 692 * @return a daeElementRef referencing an instance of this object. 693 */ 694 static DLLSPEC daeElementRef create(DAE& dae); 695 /** 696 * Creates a daeMetaElement object that describes this element in the meta object reflection framework. 697 * If a daeMetaElement already exists it will return that instead of creating a new one. 698 * @return A daeMetaElement describing this COLLADA element. 699 */ 700 static DLLSPEC daeMetaElement* registerElement(DAE& dae); 701 }; 702 703 704 protected: // Attributes 705 xsID attrId; 706 /** 707 * The sid attribute is a text string value containing the sub-identifier 708 * of this element. This value must be unique within the scope of the parent 709 * element. 710 */ 711 xsNCName attrSid; 712 713 protected: // Elements 714 domAssetRef elemAsset; 715 domFx_annotate_common_Array elemAnnotate_array; 716 domImage_Array elemImage_array; 717 domGles_newparam_Array elemNewparam_array; 718 domSetparam_Array elemSetparam_array; 719 /** 720 * A static declaration of all the render states, shaders, and settings for 721 * one rendering pipeline. @see domPass 722 */ 723 domPass_Array elemPass_array; 724 domExtra_Array elemExtra_array; 725 /** 726 * Used to preserve order in elements that do not specify strict sequencing of sub-elements. 727 */ 728 daeElementRefArray _contents; 729 /** 730 * Used to preserve order in elements that have a complex content model. 731 */ 732 daeUIntArray _contentsOrder; 733 734 /** 735 * Used to store information needed for some content model objects. 736 */ 737 daeTArray< daeCharArray * > _CMData; 738 739 740 public: //Accessors and Mutators 741 /** 742 * Gets the id attribute. 743 * @return Returns a xsID of the id attribute. 744 */ 745 xsID getId() const { return attrId; } 746 /** 747 * Sets the id attribute. 748 * @param atId The new value for the id attribute. 749 */ 750 void setId( xsID atId ) { *(daeStringRef*)&attrId = atId; _validAttributeArray[0] = true; 751 if( _document != NULL ) _document->changeElementID( this, attrId ); 752 } 753 754 /** 755 * Gets the sid attribute. 756 * @return Returns a xsNCName of the sid attribute. 757 */ 758 xsNCName getSid() const { return attrSid; } 759 /** 760 * Sets the sid attribute. 761 * @param atSid The new value for the sid attribute. 762 */ 763 void setSid( xsNCName atSid ) { *(daeStringRef*)&attrSid = atSid; _validAttributeArray[1] = true; } 764 765 /** 766 * Gets the asset element. 767 * @return a daeSmartRef to the asset element. 768 */ 769 const domAssetRef getAsset() const { return elemAsset; } 770 /** 771 * Gets the annotate element array. 772 * @return Returns a reference to the array of annotate elements. 773 */ 774 domFx_annotate_common_Array &getAnnotate_array() { return elemAnnotate_array; } 775 /** 776 * Gets the annotate element array. 777 * @return Returns a constant reference to the array of annotate elements. 778 */ 779 const domFx_annotate_common_Array &getAnnotate_array() const { return elemAnnotate_array; } 780 /** 781 * Gets the image element array. 782 * @return Returns a reference to the array of image elements. 783 */ 784 domImage_Array &getImage_array() { return elemImage_array; } 785 /** 786 * Gets the image element array. 787 * @return Returns a constant reference to the array of image elements. 788 */ 789 const domImage_Array &getImage_array() const { return elemImage_array; } 790 /** 791 * Gets the newparam element array. 792 * @return Returns a reference to the array of newparam elements. 793 */ 794 domGles_newparam_Array &getNewparam_array() { return elemNewparam_array; } 795 /** 796 * Gets the newparam element array. 797 * @return Returns a constant reference to the array of newparam elements. 798 */ 799 const domGles_newparam_Array &getNewparam_array() const { return elemNewparam_array; } 800 /** 801 * Gets the setparam element array. 802 * @return Returns a reference to the array of setparam elements. 803 */ 804 domSetparam_Array &getSetparam_array() { return elemSetparam_array; } 805 /** 806 * Gets the setparam element array. 807 * @return Returns a constant reference to the array of setparam elements. 808 */ 809 const domSetparam_Array &getSetparam_array() const { return elemSetparam_array; } 810 /** 811 * Gets the pass element array. 812 * @return Returns a reference to the array of pass elements. 813 */ 814 domPass_Array &getPass_array() { return elemPass_array; } 815 /** 816 * Gets the pass element array. 817 * @return Returns a constant reference to the array of pass elements. 818 */ 819 const domPass_Array &getPass_array() const { return elemPass_array; } 820 /** 821 * Gets the extra element array. 822 * @return Returns a reference to the array of extra elements. 823 */ 824 domExtra_Array &getExtra_array() { return elemExtra_array; } 825 /** 826 * Gets the extra element array. 827 * @return Returns a constant reference to the array of extra elements. 828 */ 829 const domExtra_Array &getExtra_array() const { return elemExtra_array; } 830 /** 831 * Gets the _contents array. 832 * @return Returns a reference to the _contents element array. 833 */ 834 daeElementRefArray &getContents() { return _contents; } 835 /** 836 * Gets the _contents array. 837 * @return Returns a constant reference to the _contents element array. 838 */ 839 const daeElementRefArray &getContents() const { return _contents; } 840 841 protected: 842 /** 843 * Constructor 844 */ 845 domTechnique(DAE& dae) : daeElement(dae), attrId(), attrSid(), elemAsset(), elemAnnotate_array(), elemImage_array(), elemNewparam_array(), elemSetparam_array(), elemPass_array(), elemExtra_array() {} 846 /** 847 * Destructor 848 */ 849 virtual ~domTechnique() { daeElement::deleteCMDataArray(_CMData); } 850 /** 851 * Overloaded assignment operator 852 */ 853 virtual domTechnique &operator=( const domTechnique &cpy ) { (void)cpy; return *this; } 854 855 public: // STATIC METHODS 856 /** 857 * Creates an instance of this class and returns a daeElementRef referencing it. 858 * @return a daeElementRef referencing an instance of this object. 859 */ 860 static DLLSPEC daeElementRef create(DAE& dae); 861 /** 862 * Creates a daeMetaElement object that describes this element in the meta object reflection framework. 863 * If a daeMetaElement already exists it will return that instead of creating a new one. 864 * @return A daeMetaElement describing this COLLADA element. 865 */ 866 static DLLSPEC daeMetaElement* registerElement(DAE& dae); 867 }; 868 869 870 protected: // Attributes 871 /** 872 * The id attribute is a text string containing the unique identifier of 873 * this element. This value must be unique within the instance document. 874 * Optional attribute. 875 */ 876 xsID attrId; 877 /** 878 * The type of platform. This is a vendor-defined character string that indicates 879 * the platform or capability target for the technique. Optional 880 */ 881 xsNCName attrPlatform; 882 883 protected: // Elements 884 domAssetRef elemAsset; 885 domImage_Array elemImage_array; 886 domGles_newparam_Array elemNewparam_array; 887 /** 888 * Holds a description of the textures, samplers, shaders, parameters, and 889 * passes necessary for rendering this effect using one method. @see domTechnique 890 */ 891 domTechnique_Array elemTechnique_array; 892 domExtra_Array elemExtra_array; 893 /** 894 * Used to preserve order in elements that do not specify strict sequencing of sub-elements. 895 */ 896 daeElementRefArray _contents; 897 /** 898 * Used to preserve order in elements that have a complex content model. 899 */ 900 daeUIntArray _contentsOrder; 901 902 /** 903 * Used to store information needed for some content model objects. 904 */ 905 daeTArray< daeCharArray * > _CMData; 906 907 908 public: //Accessors and Mutators 909 /** 910 * Gets the id attribute. 911 * @return Returns a xsID of the id attribute. 912 */ 913 xsID getId() const { return attrId; } 914 /** 915 * Sets the id attribute. 916 * @param atId The new value for the id attribute. 917 */ 918 void setId( xsID atId ) { *(daeStringRef*)&attrId = atId; _validAttributeArray[0] = true; 919 if( _document != NULL ) _document->changeElementID( this, attrId ); 920 } 921 922 /** 923 * Gets the platform attribute. 924 * @return Returns a xsNCName of the platform attribute. 925 */ 926 xsNCName getPlatform() const { return attrPlatform; } 927 /** 928 * Sets the platform attribute. 929 * @param atPlatform The new value for the platform attribute. 930 */ 931 void setPlatform( xsNCName atPlatform ) { *(daeStringRef*)&attrPlatform = atPlatform; _validAttributeArray[1] = true; } 932 933 /** 934 * Gets the asset element. 935 * @return a daeSmartRef to the asset element. 936 */ 937 const domAssetRef getAsset() const { return elemAsset; } 938 /** 939 * Gets the image element array. 940 * @return Returns a reference to the array of image elements. 941 */ 942 domImage_Array &getImage_array() { return elemImage_array; } 943 /** 944 * Gets the image element array. 945 * @return Returns a constant reference to the array of image elements. 946 */ 947 const domImage_Array &getImage_array() const { return elemImage_array; } 948 /** 949 * Gets the newparam element array. 950 * @return Returns a reference to the array of newparam elements. 951 */ 952 domGles_newparam_Array &getNewparam_array() { return elemNewparam_array; } 953 /** 954 * Gets the newparam element array. 955 * @return Returns a constant reference to the array of newparam elements. 956 */ 957 const domGles_newparam_Array &getNewparam_array() const { return elemNewparam_array; } 958 /** 959 * Gets the technique element array. 960 * @return Returns a reference to the array of technique elements. 961 */ 962 domTechnique_Array &getTechnique_array() { return elemTechnique_array; } 963 /** 964 * Gets the technique element array. 965 * @return Returns a constant reference to the array of technique elements. 966 */ 967 const domTechnique_Array &getTechnique_array() const { return elemTechnique_array; } 968 /** 969 * Gets the extra element array. 970 * @return Returns a reference to the array of extra elements. 971 */ 972 domExtra_Array &getExtra_array() { return elemExtra_array; } 973 /** 974 * Gets the extra element array. 975 * @return Returns a constant reference to the array of extra elements. 976 */ 977 const domExtra_Array &getExtra_array() const { return elemExtra_array; } 978 /** 979 * Gets the _contents array. 980 * @return Returns a reference to the _contents element array. 981 */ 982 daeElementRefArray &getContents() { return _contents; } 983 /** 984 * Gets the _contents array. 985 * @return Returns a constant reference to the _contents element array. 986 */ 987 const daeElementRefArray &getContents() const { return _contents; } 988 989 protected: 990 /** 991 * Constructor 992 */ 993 domProfile_GLES(DAE& dae) : domFx_profile_abstract(dae), attrId(), attrPlatform(), elemAsset(), elemImage_array(), elemNewparam_array(), elemTechnique_array(), elemExtra_array() {} 994 /** 995 * Destructor 996 */ 997 virtual ~domProfile_GLES() { daeElement::deleteCMDataArray(_CMData); } 998 /** 999 * Overloaded assignment operator 1000 */ 1001 virtual domProfile_GLES &operator=( const domProfile_GLES &cpy ) { (void)cpy; return *this; } 1002 1003 public: // STATIC METHODS 1004 /** 1005 * Creates an instance of this class and returns a daeElementRef referencing it. 1006 * @return a daeElementRef referencing an instance of this object. 1007 */ 1008 static DLLSPEC daeElementRef create(DAE& dae); 1009 /** 1010 * Creates a daeMetaElement object that describes this element in the meta object reflection framework. 1011 * If a daeMetaElement already exists it will return that instead of creating a new one. 1012 * @return A daeMetaElement describing this COLLADA element. 1013 */ 1014 static DLLSPEC daeMetaElement* registerElement(DAE& dae); 1015 }; 1016 1017 1018 #endif 1019