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 __domFx_sampler2D_common_h__
10#define __domFx_sampler2D_common_h__
11
12#include <dae/daeDocument.h>
13#include <dom/domTypes.h>
14#include <dom/domElements.h>
15
16#include <dom/domExtra.h>
17class DAE;
18
19/**
20 * A two-dimensional texture sampler.
21 */
22class domFx_sampler2D_common_complexType
23{
24public:
25	class domSource;
26
27	typedef daeSmartRef<domSource> domSourceRef;
28	typedef daeTArray<domSourceRef> domSource_Array;
29
30	class domSource : public daeElement
31	{
32	public:
33		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::SOURCE; }
34		static daeInt ID() { return 37; }
35		virtual daeInt typeID() const { return ID(); }
36
37	protected:  // Value
38		/**
39		 * The xsNCName value of the text data of this element.
40		 */
41		xsNCName _value;
42
43	public:	//Accessors and Mutators
44		/**
45		 * Gets the value of this element.
46		 * @return Returns a xsNCName of the value.
47		 */
48		xsNCName getValue() const { return _value; }
49		/**
50		 * Sets the _value of this element.
51		 * @param val The new value for this element.
52		 */
53		void setValue( xsNCName val ) { *(daeStringRef*)&_value = val; }
54
55	protected:
56		/**
57		 * Constructor
58		 */
59		domSource(DAE& dae) : daeElement(dae), _value() {}
60		/**
61		 * Destructor
62		 */
63		virtual ~domSource() {}
64		/**
65		 * Overloaded assignment operator
66		 */
67		virtual domSource &operator=( const domSource &cpy ) { (void)cpy; return *this; }
68
69	public: // STATIC METHODS
70		/**
71		 * Creates an instance of this class and returns a daeElementRef referencing it.
72		 * @return a daeElementRef referencing an instance of this object.
73		 */
74		static DLLSPEC daeElementRef create(DAE& dae);
75		/**
76		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
77		 * If a daeMetaElement already exists it will return that instead of creating a new one.
78		 * @return A daeMetaElement describing this COLLADA element.
79		 */
80		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
81	};
82
83	class domWrap_s;
84
85	typedef daeSmartRef<domWrap_s> domWrap_sRef;
86	typedef daeTArray<domWrap_sRef> domWrap_s_Array;
87
88	class domWrap_s : public daeElement
89	{
90	public:
91		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::WRAP_S; }
92		static daeInt ID() { return 38; }
93		virtual daeInt typeID() const { return ID(); }
94
95	protected:  // Value
96		/**
97		 * The domFx_sampler_wrap_common value of the text data of this element.
98		 */
99		domFx_sampler_wrap_common _value;
100
101	public:	//Accessors and Mutators
102		/**
103		 * Gets the value of this element.
104		 * @return a domFx_sampler_wrap_common of the value.
105		 */
106		domFx_sampler_wrap_common getValue() const { return _value; }
107		/**
108		 * Sets the _value of this element.
109		 * @param val The new value for this element.
110		 */
111		void setValue( domFx_sampler_wrap_common val ) { _value = val; }
112
113	protected:
114		/**
115		 * Constructor
116		 */
117		domWrap_s(DAE& dae) : daeElement(dae), _value() {}
118		/**
119		 * Destructor
120		 */
121		virtual ~domWrap_s() {}
122		/**
123		 * Overloaded assignment operator
124		 */
125		virtual domWrap_s &operator=( const domWrap_s &cpy ) { (void)cpy; return *this; }
126
127	public: // STATIC METHODS
128		/**
129		 * Creates an instance of this class and returns a daeElementRef referencing it.
130		 * @return a daeElementRef referencing an instance of this object.
131		 */
132		static DLLSPEC daeElementRef create(DAE& dae);
133		/**
134		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
135		 * If a daeMetaElement already exists it will return that instead of creating a new one.
136		 * @return A daeMetaElement describing this COLLADA element.
137		 */
138		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
139	};
140
141	class domWrap_t;
142
143	typedef daeSmartRef<domWrap_t> domWrap_tRef;
144	typedef daeTArray<domWrap_tRef> domWrap_t_Array;
145
146	class domWrap_t : public daeElement
147	{
148	public:
149		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::WRAP_T; }
150		static daeInt ID() { return 39; }
151		virtual daeInt typeID() const { return ID(); }
152
153	protected:  // Value
154		/**
155		 * The domFx_sampler_wrap_common value of the text data of this element.
156		 */
157		domFx_sampler_wrap_common _value;
158
159	public:	//Accessors and Mutators
160		/**
161		 * Gets the value of this element.
162		 * @return a domFx_sampler_wrap_common of the value.
163		 */
164		domFx_sampler_wrap_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( domFx_sampler_wrap_common val ) { _value = val; }
170
171	protected:
172		/**
173		 * Constructor
174		 */
175		domWrap_t(DAE& dae) : daeElement(dae), _value() {}
176		/**
177		 * Destructor
178		 */
179		virtual ~domWrap_t() {}
180		/**
181		 * Overloaded assignment operator
182		 */
183		virtual domWrap_t &operator=( const domWrap_t &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 domMinfilter;
200
201	typedef daeSmartRef<domMinfilter> domMinfilterRef;
202	typedef daeTArray<domMinfilterRef> domMinfilter_Array;
203
204	class domMinfilter : public daeElement
205	{
206	public:
207		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::MINFILTER; }
208		static daeInt ID() { return 40; }
209		virtual daeInt typeID() const { return ID(); }
210
211	protected:  // Value
212		/**
213		 * The domFx_sampler_filter_common value of the text data of this element.
214		 */
215		domFx_sampler_filter_common _value;
216
217	public:	//Accessors and Mutators
218		/**
219		 * Gets the value of this element.
220		 * @return a domFx_sampler_filter_common of the value.
221		 */
222		domFx_sampler_filter_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( domFx_sampler_filter_common val ) { _value = val; }
228
229	protected:
230		/**
231		 * Constructor
232		 */
233		domMinfilter(DAE& dae) : daeElement(dae), _value() {}
234		/**
235		 * Destructor
236		 */
237		virtual ~domMinfilter() {}
238		/**
239		 * Overloaded assignment operator
240		 */
241		virtual domMinfilter &operator=( const domMinfilter &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 domMagfilter;
258
259	typedef daeSmartRef<domMagfilter> domMagfilterRef;
260	typedef daeTArray<domMagfilterRef> domMagfilter_Array;
261
262	class domMagfilter : public daeElement
263	{
264	public:
265		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::MAGFILTER; }
266		static daeInt ID() { return 41; }
267		virtual daeInt typeID() const { return ID(); }
268
269	protected:  // Value
270		/**
271		 * The domFx_sampler_filter_common value of the text data of this element.
272		 */
273		domFx_sampler_filter_common _value;
274
275	public:	//Accessors and Mutators
276		/**
277		 * Gets the value of this element.
278		 * @return a domFx_sampler_filter_common of the value.
279		 */
280		domFx_sampler_filter_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( domFx_sampler_filter_common val ) { _value = val; }
286
287	protected:
288		/**
289		 * Constructor
290		 */
291		domMagfilter(DAE& dae) : daeElement(dae), _value() {}
292		/**
293		 * Destructor
294		 */
295		virtual ~domMagfilter() {}
296		/**
297		 * Overloaded assignment operator
298		 */
299		virtual domMagfilter &operator=( const domMagfilter &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 domMipfilter;
316
317	typedef daeSmartRef<domMipfilter> domMipfilterRef;
318	typedef daeTArray<domMipfilterRef> domMipfilter_Array;
319
320	class domMipfilter : public daeElement
321	{
322	public:
323		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::MIPFILTER; }
324		static daeInt ID() { return 42; }
325		virtual daeInt typeID() const { return ID(); }
326
327	protected:  // Value
328		/**
329		 * The domFx_sampler_filter_common value of the text data of this element.
330		 */
331		domFx_sampler_filter_common _value;
332
333	public:	//Accessors and Mutators
334		/**
335		 * Gets the value of this element.
336		 * @return a domFx_sampler_filter_common of the value.
337		 */
338		domFx_sampler_filter_common getValue() const { return _value; }
339		/**
340		 * Sets the _value of this element.
341		 * @param val The new value for this element.
342		 */
343		void setValue( domFx_sampler_filter_common val ) { _value = val; }
344
345	protected:
346		/**
347		 * Constructor
348		 */
349		domMipfilter(DAE& dae) : daeElement(dae), _value() {}
350		/**
351		 * Destructor
352		 */
353		virtual ~domMipfilter() {}
354		/**
355		 * Overloaded assignment operator
356		 */
357		virtual domMipfilter &operator=( const domMipfilter &cpy ) { (void)cpy; return *this; }
358
359	public: // STATIC METHODS
360		/**
361		 * Creates an instance of this class and returns a daeElementRef referencing it.
362		 * @return a daeElementRef referencing an instance of this object.
363		 */
364		static DLLSPEC daeElementRef create(DAE& dae);
365		/**
366		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
367		 * If a daeMetaElement already exists it will return that instead of creating a new one.
368		 * @return A daeMetaElement describing this COLLADA element.
369		 */
370		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
371	};
372
373	class domBorder_color;
374
375	typedef daeSmartRef<domBorder_color> domBorder_colorRef;
376	typedef daeTArray<domBorder_colorRef> domBorder_color_Array;
377
378	class domBorder_color : public daeElement
379	{
380	public:
381		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BORDER_COLOR; }
382		static daeInt ID() { return 43; }
383		virtual daeInt typeID() const { return ID(); }
384
385	protected:  // Value
386		/**
387		 * The domFx_color_common value of the text data of this element.
388		 */
389		domFx_color_common _value;
390
391	public:	//Accessors and Mutators
392		/**
393		 * Gets the _value array.
394		 * @return Returns a domFx_color_common reference of the _value array.
395		 */
396		domFx_color_common &getValue() { return _value; }
397		/**
398		 * Gets the _value array.
399		 * @return Returns a constant domFx_color_common reference of the _value array.
400		 */
401		const domFx_color_common &getValue() const { return _value; }
402		/**
403		 * Sets the _value array.
404		 * @param val The new value for the _value array.
405		 */
406		void setValue( const domFx_color_common &val ) { _value = val; }
407
408	protected:
409		/**
410		 * Constructor
411		 */
412		domBorder_color(DAE& dae) : daeElement(dae), _value() {}
413		/**
414		 * Destructor
415		 */
416		virtual ~domBorder_color() {}
417		/**
418		 * Overloaded assignment operator
419		 */
420		virtual domBorder_color &operator=( const domBorder_color &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 domMipmap_maxlevel;
437
438	typedef daeSmartRef<domMipmap_maxlevel> domMipmap_maxlevelRef;
439	typedef daeTArray<domMipmap_maxlevelRef> domMipmap_maxlevel_Array;
440
441	class domMipmap_maxlevel : public daeElement
442	{
443	public:
444		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::MIPMAP_MAXLEVEL; }
445		static daeInt ID() { return 44; }
446		virtual daeInt typeID() const { return ID(); }
447
448	protected:  // Value
449		/**
450		 * The xsUnsignedByte value of the text data of this element.
451		 */
452		xsUnsignedByte _value;
453
454	public:	//Accessors and Mutators
455		/**
456		 * Gets the value of this element.
457		 * @return a xsUnsignedByte of the value.
458		 */
459		xsUnsignedByte 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( xsUnsignedByte val ) { _value = val; }
465
466	protected:
467		/**
468		 * Constructor
469		 */
470		domMipmap_maxlevel(DAE& dae) : daeElement(dae), _value() {}
471		/**
472		 * Destructor
473		 */
474		virtual ~domMipmap_maxlevel() {}
475		/**
476		 * Overloaded assignment operator
477		 */
478		virtual domMipmap_maxlevel &operator=( const domMipmap_maxlevel &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 domMipmap_bias;
495
496	typedef daeSmartRef<domMipmap_bias> domMipmap_biasRef;
497	typedef daeTArray<domMipmap_biasRef> domMipmap_bias_Array;
498
499	class domMipmap_bias : public daeElement
500	{
501	public:
502		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::MIPMAP_BIAS; }
503		static daeInt ID() { return 45; }
504		virtual daeInt typeID() const { return ID(); }
505
506	protected:  // Value
507		/**
508		 * The xsFloat value of the text data of this element.
509		 */
510		xsFloat _value;
511
512	public:	//Accessors and Mutators
513		/**
514		 * Gets the value of this element.
515		 * @return a xsFloat of the value.
516		 */
517		xsFloat 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( xsFloat val ) { _value = val; }
523
524	protected:
525		/**
526		 * Constructor
527		 */
528		domMipmap_bias(DAE& dae) : daeElement(dae), _value() {}
529		/**
530		 * Destructor
531		 */
532		virtual ~domMipmap_bias() {}
533		/**
534		 * Overloaded assignment operator
535		 */
536		virtual domMipmap_bias &operator=( const domMipmap_bias &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
554protected:  // Elements
555	domSourceRef elemSource;
556	domWrap_sRef elemWrap_s;
557	domWrap_tRef elemWrap_t;
558	domMinfilterRef elemMinfilter;
559	domMagfilterRef elemMagfilter;
560	domMipfilterRef elemMipfilter;
561	domBorder_colorRef elemBorder_color;
562	domMipmap_maxlevelRef elemMipmap_maxlevel;
563	domMipmap_biasRef elemMipmap_bias;
564	domExtra_Array elemExtra_array;
565
566public:	//Accessors and Mutators
567	/**
568	 * Gets the source element.
569	 * @return a daeSmartRef to the source element.
570	 */
571	const domSourceRef getSource() const { return elemSource; }
572	/**
573	 * Gets the wrap_s element.
574	 * @return a daeSmartRef to the wrap_s element.
575	 */
576	const domWrap_sRef getWrap_s() const { return elemWrap_s; }
577	/**
578	 * Gets the wrap_t element.
579	 * @return a daeSmartRef to the wrap_t element.
580	 */
581	const domWrap_tRef getWrap_t() const { return elemWrap_t; }
582	/**
583	 * Gets the minfilter element.
584	 * @return a daeSmartRef to the minfilter element.
585	 */
586	const domMinfilterRef getMinfilter() const { return elemMinfilter; }
587	/**
588	 * Gets the magfilter element.
589	 * @return a daeSmartRef to the magfilter element.
590	 */
591	const domMagfilterRef getMagfilter() const { return elemMagfilter; }
592	/**
593	 * Gets the mipfilter element.
594	 * @return a daeSmartRef to the mipfilter element.
595	 */
596	const domMipfilterRef getMipfilter() const { return elemMipfilter; }
597	/**
598	 * Gets the border_color element.
599	 * @return a daeSmartRef to the border_color element.
600	 */
601	const domBorder_colorRef getBorder_color() const { return elemBorder_color; }
602	/**
603	 * Gets the mipmap_maxlevel element.
604	 * @return a daeSmartRef to the mipmap_maxlevel element.
605	 */
606	const domMipmap_maxlevelRef getMipmap_maxlevel() const { return elemMipmap_maxlevel; }
607	/**
608	 * Gets the mipmap_bias element.
609	 * @return a daeSmartRef to the mipmap_bias element.
610	 */
611	const domMipmap_biasRef getMipmap_bias() const { return elemMipmap_bias; }
612	/**
613	 * Gets the extra element array.
614	 * @return Returns a reference to the array of extra elements.
615	 */
616	domExtra_Array &getExtra_array() { return elemExtra_array; }
617	/**
618	 * Gets the extra element array.
619	 * @return Returns a constant reference to the array of extra elements.
620	 */
621	const domExtra_Array &getExtra_array() const { return elemExtra_array; }
622protected:
623	/**
624	 * Constructor
625	 */
626	domFx_sampler2D_common_complexType(DAE& dae, daeElement* elt) : elemSource(), elemWrap_s(), elemWrap_t(), elemMinfilter(), elemMagfilter(), elemMipfilter(), elemBorder_color(), elemMipmap_maxlevel(), elemMipmap_bias(), elemExtra_array() {}
627	/**
628	 * Destructor
629	 */
630	virtual ~domFx_sampler2D_common_complexType() {}
631	/**
632	 * Overloaded assignment operator
633	 */
634	virtual domFx_sampler2D_common_complexType &operator=( const domFx_sampler2D_common_complexType &cpy ) { (void)cpy; return *this; }
635};
636
637/**
638 * An element of type domFx_sampler2D_common_complexType.
639 */
640class domFx_sampler2D_common : public daeElement, public domFx_sampler2D_common_complexType
641{
642public:
643	virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FX_SAMPLER2D_COMMON; }
644	static daeInt ID() { return 46; }
645	virtual daeInt typeID() const { return ID(); }
646protected:
647	/**
648	 * Constructor
649	 */
650	domFx_sampler2D_common(DAE& dae) : daeElement(dae), domFx_sampler2D_common_complexType(dae, this) {}
651	/**
652	 * Destructor
653	 */
654	virtual ~domFx_sampler2D_common() {}
655	/**
656	 * Overloaded assignment operator
657	 */
658	virtual domFx_sampler2D_common &operator=( const domFx_sampler2D_common &cpy ) { (void)cpy; return *this; }
659
660public: // STATIC METHODS
661	/**
662	 * Creates an instance of this class and returns a daeElementRef referencing it.
663	 * @return a daeElementRef referencing an instance of this object.
664	 */
665	static DLLSPEC daeElementRef create(DAE& dae);
666	/**
667	 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
668	 * If a daeMetaElement already exists it will return that instead of creating a new one.
669	 * @return A daeMetaElement describing this COLLADA element.
670	 */
671	static DLLSPEC daeMetaElement* registerElement(DAE& dae);
672};
673
674
675#endif
676