domProfile_GLES.h 34 KB

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