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_samplerDEPTH_common_h__
10#define __domFx_samplerDEPTH_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 texture sampler for depth maps.
21 */
22class domFx_samplerDEPTH_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 79; }
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 80; }
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 81; }
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 82; }
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 83; }
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
316
317protected:  // Elements
318	domSourceRef elemSource;
319	domWrap_sRef elemWrap_s;
320	domWrap_tRef elemWrap_t;
321	domMinfilterRef elemMinfilter;
322	domMagfilterRef elemMagfilter;
323	domExtra_Array elemExtra_array;
324
325public:	//Accessors and Mutators
326	/**
327	 * Gets the source element.
328	 * @return a daeSmartRef to the source element.
329	 */
330	const domSourceRef getSource() const { return elemSource; }
331	/**
332	 * Gets the wrap_s element.
333	 * @return a daeSmartRef to the wrap_s element.
334	 */
335	const domWrap_sRef getWrap_s() const { return elemWrap_s; }
336	/**
337	 * Gets the wrap_t element.
338	 * @return a daeSmartRef to the wrap_t element.
339	 */
340	const domWrap_tRef getWrap_t() const { return elemWrap_t; }
341	/**
342	 * Gets the minfilter element.
343	 * @return a daeSmartRef to the minfilter element.
344	 */
345	const domMinfilterRef getMinfilter() const { return elemMinfilter; }
346	/**
347	 * Gets the magfilter element.
348	 * @return a daeSmartRef to the magfilter element.
349	 */
350	const domMagfilterRef getMagfilter() const { return elemMagfilter; }
351	/**
352	 * Gets the extra element array.
353	 * @return Returns a reference to the array of extra elements.
354	 */
355	domExtra_Array &getExtra_array() { return elemExtra_array; }
356	/**
357	 * Gets the extra element array.
358	 * @return Returns a constant reference to the array of extra elements.
359	 */
360	const domExtra_Array &getExtra_array() const { return elemExtra_array; }
361protected:
362	/**
363	 * Constructor
364	 */
365	domFx_samplerDEPTH_common_complexType(DAE& dae, daeElement* elt) : elemSource(), elemWrap_s(), elemWrap_t(), elemMinfilter(), elemMagfilter(), elemExtra_array() {}
366	/**
367	 * Destructor
368	 */
369	virtual ~domFx_samplerDEPTH_common_complexType() {}
370	/**
371	 * Overloaded assignment operator
372	 */
373	virtual domFx_samplerDEPTH_common_complexType &operator=( const domFx_samplerDEPTH_common_complexType &cpy ) { (void)cpy; return *this; }
374};
375
376/**
377 * An element of type domFx_samplerDEPTH_common_complexType.
378 */
379class domFx_samplerDEPTH_common : public daeElement, public domFx_samplerDEPTH_common_complexType
380{
381public:
382	virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FX_SAMPLERDEPTH_COMMON; }
383	static daeInt ID() { return 84; }
384	virtual daeInt typeID() const { return ID(); }
385protected:
386	/**
387	 * Constructor
388	 */
389	domFx_samplerDEPTH_common(DAE& dae) : daeElement(dae), domFx_samplerDEPTH_common_complexType(dae, this) {}
390	/**
391	 * Destructor
392	 */
393	virtual ~domFx_samplerDEPTH_common() {}
394	/**
395	 * Overloaded assignment operator
396	 */
397	virtual domFx_samplerDEPTH_common &operator=( const domFx_samplerDEPTH_common &cpy ) { (void)cpy; return *this; }
398
399public: // STATIC METHODS
400	/**
401	 * Creates an instance of this class and returns a daeElementRef referencing it.
402	 * @return a daeElementRef referencing an instance of this object.
403	 */
404	static DLLSPEC daeElementRef create(DAE& dae);
405	/**
406	 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
407	 * If a daeMetaElement already exists it will return that instead of creating a new one.
408	 * @return A daeMetaElement describing this COLLADA element.
409	 */
410	static DLLSPEC daeMetaElement* registerElement(DAE& dae);
411};
412
413
414#endif
415