• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 __domInstance_effect_h__
10 #define __domInstance_effect_h__
11 
12 #include <dae/daeDocument.h>
13 #include <dom/domTypes.h>
14 #include <dom/domElements.h>
15 
16 #include <dom/domExtra.h>
17 #include <dom/domFx_basic_type_common.h>
18 class DAE;
19 
20 /**
21  * The instance_effect element declares the instantiation of a COLLADA effect
22  * resource.
23  */
24 class domInstance_effect : public daeElement
25 {
26 public:
getElementType()27 	virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INSTANCE_EFFECT; }
ID()28 	static daeInt ID() { return 691; }
typeID()29 	virtual daeInt typeID() const { return ID(); }
30 public:
31 	class domTechnique_hint;
32 
33 	typedef daeSmartRef<domTechnique_hint> domTechnique_hintRef;
34 	typedef daeTArray<domTechnique_hintRef> domTechnique_hint_Array;
35 
36 /**
37  * Add a hint for a platform of which technique to use in this effect.
38  */
39 	class domTechnique_hint : public daeElement
40 	{
41 	public:
getElementType()42 		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::TECHNIQUE_HINT; }
ID()43 		static daeInt ID() { return 692; }
typeID()44 		virtual daeInt typeID() const { return ID(); }
45 	protected:  // Attributes
46 /**
47  *  A platform defines a string that specifies which platform this is hint
48  * is aimed for.
49  */
50 		xsNCName attrPlatform;
51 /**
52  *  A profile defines a string that specifies which API profile this is hint
53  * is aimed for.
54  */
55 		xsNCName attrProfile;
56 /**
57  *  A reference to the technique to use for the specified platform.
58  */
59 		xsNCName attrRef;
60 
61 
62 	public:	//Accessors and Mutators
63 		/**
64 		 * Gets the platform attribute.
65 		 * @return Returns a xsNCName of the platform attribute.
66 		 */
getPlatform()67 		xsNCName getPlatform() const { return attrPlatform; }
68 		/**
69 		 * Sets the platform attribute.
70 		 * @param atPlatform The new value for the platform attribute.
71 		 */
setPlatform(xsNCName atPlatform)72 		void setPlatform( xsNCName atPlatform ) { *(daeStringRef*)&attrPlatform = atPlatform; _validAttributeArray[0] = true; }
73 
74 		/**
75 		 * Gets the profile attribute.
76 		 * @return Returns a xsNCName of the profile attribute.
77 		 */
getProfile()78 		xsNCName getProfile() const { return attrProfile; }
79 		/**
80 		 * Sets the profile attribute.
81 		 * @param atProfile The new value for the profile attribute.
82 		 */
setProfile(xsNCName atProfile)83 		void setProfile( xsNCName atProfile ) { *(daeStringRef*)&attrProfile = atProfile; _validAttributeArray[1] = true; }
84 
85 		/**
86 		 * Gets the ref attribute.
87 		 * @return Returns a xsNCName of the ref attribute.
88 		 */
getRef()89 		xsNCName getRef() const { return attrRef; }
90 		/**
91 		 * Sets the ref attribute.
92 		 * @param atRef The new value for the ref attribute.
93 		 */
setRef(xsNCName atRef)94 		void setRef( xsNCName atRef ) { *(daeStringRef*)&attrRef = atRef; _validAttributeArray[2] = true; }
95 
96 	protected:
97 		/**
98 		 * Constructor
99 		 */
domTechnique_hint(DAE & dae)100 		domTechnique_hint(DAE& dae) : daeElement(dae), attrPlatform(), attrProfile(), attrRef() {}
101 		/**
102 		 * Destructor
103 		 */
~domTechnique_hint()104 		virtual ~domTechnique_hint() {}
105 		/**
106 		 * Overloaded assignment operator
107 		 */
108 		virtual domTechnique_hint &operator=( const domTechnique_hint &cpy ) { (void)cpy; return *this; }
109 
110 	public: // STATIC METHODS
111 		/**
112 		 * Creates an instance of this class and returns a daeElementRef referencing it.
113 		 * @return a daeElementRef referencing an instance of this object.
114 		 */
115 		static DLLSPEC daeElementRef create(DAE& dae);
116 		/**
117 		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
118 		 * If a daeMetaElement already exists it will return that instead of creating a new one.
119 		 * @return A daeMetaElement describing this COLLADA element.
120 		 */
121 		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
122 	};
123 
124 	class domSetparam;
125 
126 	typedef daeSmartRef<domSetparam> domSetparamRef;
127 	typedef daeTArray<domSetparamRef> domSetparam_Array;
128 
129 /**
130  * Assigns a new value to a previously defined parameter
131  */
132 	class domSetparam : public daeElement
133 	{
134 	public:
getElementType()135 		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::SETPARAM; }
ID()136 		static daeInt ID() { return 693; }
typeID()137 		virtual daeInt typeID() const { return ID(); }
138 	protected:  // Attribute
139 		xsToken attrRef;
140 
141 	protected:  // Element
142 		domFx_basic_type_commonRef elemFx_basic_type_common;
143 
144 	public:	//Accessors and Mutators
145 		/**
146 		 * Gets the ref attribute.
147 		 * @return Returns a xsToken of the ref attribute.
148 		 */
getRef()149 		xsToken getRef() const { return attrRef; }
150 		/**
151 		 * Sets the ref attribute.
152 		 * @param atRef The new value for the ref attribute.
153 		 */
setRef(xsToken atRef)154 		void setRef( xsToken atRef ) { *(daeStringRef*)&attrRef = atRef; _validAttributeArray[0] = true; }
155 
156 		/**
157 		 * Gets the fx_basic_type_common element.
158 		 * @return a daeSmartRef to the fx_basic_type_common element.
159 		 */
getFx_basic_type_common()160 		const domFx_basic_type_commonRef getFx_basic_type_common() const { return elemFx_basic_type_common; }
161 	protected:
162 		/**
163 		 * Constructor
164 		 */
domSetparam(DAE & dae)165 		domSetparam(DAE& dae) : daeElement(dae), attrRef(), elemFx_basic_type_common() {}
166 		/**
167 		 * Destructor
168 		 */
~domSetparam()169 		virtual ~domSetparam() {}
170 		/**
171 		 * Overloaded assignment operator
172 		 */
173 		virtual domSetparam &operator=( const domSetparam &cpy ) { (void)cpy; return *this; }
174 
175 	public: // STATIC METHODS
176 		/**
177 		 * Creates an instance of this class and returns a daeElementRef referencing it.
178 		 * @return a daeElementRef referencing an instance of this object.
179 		 */
180 		static DLLSPEC daeElementRef create(DAE& dae);
181 		/**
182 		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
183 		 * If a daeMetaElement already exists it will return that instead of creating a new one.
184 		 * @return A daeMetaElement describing this COLLADA element.
185 		 */
186 		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
187 	};
188 
189 
190 protected:  // Attributes
191 /**
192  *  The url attribute refers to resource.  This may refer to a local resource
193  * using a relative URL  fragment identifier that begins with the “#”
194  * character. The url attribute may refer to an external  resource using an
195  * absolute or relative URL.
196  */
197 	xsAnyURI attrUrl;
198 /**
199  *  The sid attribute is a text string value containing the sub-identifier
200  * of this element. This  value must be unique within the scope of the parent
201  * element. Optional attribute.
202  */
203 	xsNCName attrSid;
204 /**
205  *  The name attribute is the text string name of this element. Optional attribute.
206  */
207 	xsNCName attrName;
208 
209 protected:  // Elements
210 /**
211  * Add a hint for a platform of which technique to use in this effect. @see
212  * domTechnique_hint
213  */
214 	domTechnique_hint_Array elemTechnique_hint_array;
215 /**
216  * Assigns a new value to a previously defined parameter @see domSetparam
217  */
218 	domSetparam_Array elemSetparam_array;
219 /**
220  *  The extra element may appear any number of times.  @see domExtra
221  */
222 	domExtra_Array elemExtra_array;
223 
224 public:	//Accessors and Mutators
225 	/**
226 	 * Gets the url attribute.
227 	 * @return Returns a xsAnyURI reference of the url attribute.
228 	 */
getUrl()229 	xsAnyURI &getUrl() { return attrUrl; }
230 	/**
231 	 * Gets the url attribute.
232 	 * @return Returns a constant xsAnyURI reference of the url attribute.
233 	 */
getUrl()234 	const xsAnyURI &getUrl() const { return attrUrl; }
235 	/**
236 	 * Sets the url attribute.
237 	 * @param atUrl The new value for the url attribute.
238 	 */
setUrl(const xsAnyURI & atUrl)239 	void setUrl( const xsAnyURI &atUrl ) { attrUrl = atUrl; _validAttributeArray[0] = true; }
240 	/**
241 	 * Sets the url attribute.
242 	 * @param atUrl The new value for the url attribute.
243 	 */
setUrl(xsString atUrl)244 	void setUrl( xsString atUrl ) { attrUrl = atUrl; _validAttributeArray[0] = true; }
245 
246 	/**
247 	 * Gets the sid attribute.
248 	 * @return Returns a xsNCName of the sid attribute.
249 	 */
getSid()250 	xsNCName getSid() const { return attrSid; }
251 	/**
252 	 * Sets the sid attribute.
253 	 * @param atSid The new value for the sid attribute.
254 	 */
setSid(xsNCName atSid)255 	void setSid( xsNCName atSid ) { *(daeStringRef*)&attrSid = atSid; _validAttributeArray[1] = true; }
256 
257 	/**
258 	 * Gets the name attribute.
259 	 * @return Returns a xsNCName of the name attribute.
260 	 */
getName()261 	xsNCName getName() const { return attrName; }
262 	/**
263 	 * Sets the name attribute.
264 	 * @param atName The new value for the name attribute.
265 	 */
setName(xsNCName atName)266 	void setName( xsNCName atName ) { *(daeStringRef*)&attrName = atName; _validAttributeArray[2] = true; }
267 
268 	/**
269 	 * Gets the technique_hint element array.
270 	 * @return Returns a reference to the array of technique_hint elements.
271 	 */
getTechnique_hint_array()272 	domTechnique_hint_Array &getTechnique_hint_array() { return elemTechnique_hint_array; }
273 	/**
274 	 * Gets the technique_hint element array.
275 	 * @return Returns a constant reference to the array of technique_hint elements.
276 	 */
getTechnique_hint_array()277 	const domTechnique_hint_Array &getTechnique_hint_array() const { return elemTechnique_hint_array; }
278 	/**
279 	 * Gets the setparam element array.
280 	 * @return Returns a reference to the array of setparam elements.
281 	 */
getSetparam_array()282 	domSetparam_Array &getSetparam_array() { return elemSetparam_array; }
283 	/**
284 	 * Gets the setparam element array.
285 	 * @return Returns a constant reference to the array of setparam elements.
286 	 */
getSetparam_array()287 	const domSetparam_Array &getSetparam_array() const { return elemSetparam_array; }
288 	/**
289 	 * Gets the extra element array.
290 	 * @return Returns a reference to the array of extra elements.
291 	 */
getExtra_array()292 	domExtra_Array &getExtra_array() { return elemExtra_array; }
293 	/**
294 	 * Gets the extra element array.
295 	 * @return Returns a constant reference to the array of extra elements.
296 	 */
getExtra_array()297 	const domExtra_Array &getExtra_array() const { return elemExtra_array; }
298 protected:
299 	/**
300 	 * Constructor
301 	 */
domInstance_effect(DAE & dae)302 	domInstance_effect(DAE& dae) : daeElement(dae), attrUrl(dae, *this), attrSid(), attrName(), elemTechnique_hint_array(), elemSetparam_array(), elemExtra_array() {}
303 	/**
304 	 * Destructor
305 	 */
~domInstance_effect()306 	virtual ~domInstance_effect() {}
307 	/**
308 	 * Overloaded assignment operator
309 	 */
310 	virtual domInstance_effect &operator=( const domInstance_effect &cpy ) { (void)cpy; return *this; }
311 
312 public: // STATIC METHODS
313 	/**
314 	 * Creates an instance of this class and returns a daeElementRef referencing it.
315 	 * @return a daeElementRef referencing an instance of this object.
316 	 */
317 	static DLLSPEC daeElementRef create(DAE& dae);
318 	/**
319 	 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
320 	 * If a daeMetaElement already exists it will return that instead of creating a new one.
321 	 * @return A daeMetaElement describing this COLLADA element.
322 	 */
323 	static DLLSPEC daeMetaElement* registerElement(DAE& dae);
324 };
325 
326 
327 #endif
328