Home | History | Annotate | Download | only in dom
      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