• 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 #include <dae.h>
10 #include <dae/daeDom.h>
11 #include <dom/domCamera.h>
12 #include <dae/daeMetaCMPolicy.h>
13 #include <dae/daeMetaSequence.h>
14 #include <dae/daeMetaChoice.h>
15 #include <dae/daeMetaGroup.h>
16 #include <dae/daeMetaAny.h>
17 #include <dae/daeMetaElementAttribute.h>
18 
19 daeElementRef
create(DAE & dae)20 domCamera::create(DAE& dae)
21 {
22 	domCameraRef ref = new domCamera(dae);
23 	return ref;
24 }
25 
26 
27 daeMetaElement *
registerElement(DAE & dae)28 domCamera::registerElement(DAE& dae)
29 {
30 	daeMetaElement* meta = dae.getMeta(ID());
31 	if ( meta != NULL ) return meta;
32 
33 	meta = new daeMetaElement(dae);
34 	dae.setMeta(ID(), *meta);
35 	meta->setName( "camera" );
36 	meta->registerClass(domCamera::create);
37 
38 	daeMetaCMPolicy *cm = NULL;
39 	daeMetaElementAttribute *mea = NULL;
40 	cm = new daeMetaSequence( meta, cm, 0, 1, 1 );
41 
42 	mea = new daeMetaElementAttribute( meta, cm, 0, 0, 1 );
43 	mea->setName( "asset" );
44 	mea->setOffset( daeOffsetOf(domCamera,elemAsset) );
45 	mea->setElementType( domAsset::registerElement(dae) );
46 	cm->appendChild( mea );
47 
48 	mea = new daeMetaElementAttribute( meta, cm, 1, 1, 1 );
49 	mea->setName( "optics" );
50 	mea->setOffset( daeOffsetOf(domCamera,elemOptics) );
51 	mea->setElementType( domCamera::domOptics::registerElement(dae) );
52 	cm->appendChild( mea );
53 
54 	mea = new daeMetaElementAttribute( meta, cm, 2, 0, 1 );
55 	mea->setName( "imager" );
56 	mea->setOffset( daeOffsetOf(domCamera,elemImager) );
57 	mea->setElementType( domCamera::domImager::registerElement(dae) );
58 	cm->appendChild( mea );
59 
60 	mea = new daeMetaElementArrayAttribute( meta, cm, 3, 0, -1 );
61 	mea->setName( "extra" );
62 	mea->setOffset( daeOffsetOf(domCamera,elemExtra_array) );
63 	mea->setElementType( domExtra::registerElement(dae) );
64 	cm->appendChild( mea );
65 
66 	cm->setMaxOrdinal( 3 );
67 	meta->setCMRoot( cm );
68 
69 	//	Add attribute: id
70 	{
71 		daeMetaAttribute *ma = new daeMetaAttribute;
72 		ma->setName( "id" );
73 		ma->setType( dae.getAtomicTypes().get("xsID"));
74 		ma->setOffset( daeOffsetOf( domCamera , attrId ));
75 		ma->setContainer( meta );
76 
77 		meta->appendAttribute(ma);
78 	}
79 
80 	//	Add attribute: name
81 	{
82 		daeMetaAttribute *ma = new daeMetaAttribute;
83 		ma->setName( "name" );
84 		ma->setType( dae.getAtomicTypes().get("xsNCName"));
85 		ma->setOffset( daeOffsetOf( domCamera , attrName ));
86 		ma->setContainer( meta );
87 
88 		meta->appendAttribute(ma);
89 	}
90 
91 	meta->setElementSize(sizeof(domCamera));
92 	meta->validate();
93 
94 	return meta;
95 }
96 
97 daeElementRef
create(DAE & dae)98 domCamera::domOptics::create(DAE& dae)
99 {
100 	domCamera::domOpticsRef ref = new domCamera::domOptics(dae);
101 	return ref;
102 }
103 
104 
105 daeMetaElement *
registerElement(DAE & dae)106 domCamera::domOptics::registerElement(DAE& dae)
107 {
108 	daeMetaElement* meta = dae.getMeta(ID());
109 	if ( meta != NULL ) return meta;
110 
111 	meta = new daeMetaElement(dae);
112 	dae.setMeta(ID(), *meta);
113 	meta->setName( "optics" );
114 	meta->registerClass(domCamera::domOptics::create);
115 
116 	meta->setIsInnerClass( true );
117 	daeMetaCMPolicy *cm = NULL;
118 	daeMetaElementAttribute *mea = NULL;
119 	cm = new daeMetaSequence( meta, cm, 0, 1, 1 );
120 
121 	mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 );
122 	mea->setName( "technique_common" );
123 	mea->setOffset( daeOffsetOf(domCamera::domOptics,elemTechnique_common) );
124 	mea->setElementType( domCamera::domOptics::domTechnique_common::registerElement(dae) );
125 	cm->appendChild( mea );
126 
127 	mea = new daeMetaElementArrayAttribute( meta, cm, 1, 0, -1 );
128 	mea->setName( "technique" );
129 	mea->setOffset( daeOffsetOf(domCamera::domOptics,elemTechnique_array) );
130 	mea->setElementType( domTechnique::registerElement(dae) );
131 	cm->appendChild( mea );
132 
133 	mea = new daeMetaElementArrayAttribute( meta, cm, 2, 0, -1 );
134 	mea->setName( "extra" );
135 	mea->setOffset( daeOffsetOf(domCamera::domOptics,elemExtra_array) );
136 	mea->setElementType( domExtra::registerElement(dae) );
137 	cm->appendChild( mea );
138 
139 	cm->setMaxOrdinal( 2 );
140 	meta->setCMRoot( cm );
141 
142 	meta->setElementSize(sizeof(domCamera::domOptics));
143 	meta->validate();
144 
145 	return meta;
146 }
147 
148 daeElementRef
create(DAE & dae)149 domCamera::domOptics::domTechnique_common::create(DAE& dae)
150 {
151 	domCamera::domOptics::domTechnique_commonRef ref = new domCamera::domOptics::domTechnique_common(dae);
152 	return ref;
153 }
154 
155 
156 daeMetaElement *
registerElement(DAE & dae)157 domCamera::domOptics::domTechnique_common::registerElement(DAE& dae)
158 {
159 	daeMetaElement* meta = dae.getMeta(ID());
160 	if ( meta != NULL ) return meta;
161 
162 	meta = new daeMetaElement(dae);
163 	dae.setMeta(ID(), *meta);
164 	meta->setName( "technique_common" );
165 	meta->registerClass(domCamera::domOptics::domTechnique_common::create);
166 
167 	meta->setIsInnerClass( true );
168 	daeMetaCMPolicy *cm = NULL;
169 	daeMetaElementAttribute *mea = NULL;
170 	cm = new daeMetaChoice( meta, cm, 0, 0, 1, 1 );
171 
172 	mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 );
173 	mea->setName( "orthographic" );
174 	mea->setOffset( daeOffsetOf(domCamera::domOptics::domTechnique_common,elemOrthographic) );
175 	mea->setElementType( domCamera::domOptics::domTechnique_common::domOrthographic::registerElement(dae) );
176 	cm->appendChild( mea );
177 
178 	mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 );
179 	mea->setName( "perspective" );
180 	mea->setOffset( daeOffsetOf(domCamera::domOptics::domTechnique_common,elemPerspective) );
181 	mea->setElementType( domCamera::domOptics::domTechnique_common::domPerspective::registerElement(dae) );
182 	cm->appendChild( mea );
183 
184 	cm->setMaxOrdinal( 0 );
185 	meta->setCMRoot( cm );
186 	// Ordered list of sub-elements
187 	meta->addContents(daeOffsetOf(domCamera::domOptics::domTechnique_common,_contents));
188 	meta->addContentsOrder(daeOffsetOf(domCamera::domOptics::domTechnique_common,_contentsOrder));
189 
190 	meta->addCMDataArray(daeOffsetOf(domCamera::domOptics::domTechnique_common,_CMData), 1);
191 	meta->setElementSize(sizeof(domCamera::domOptics::domTechnique_common));
192 	meta->validate();
193 
194 	return meta;
195 }
196 
197 daeElementRef
create(DAE & dae)198 domCamera::domOptics::domTechnique_common::domOrthographic::create(DAE& dae)
199 {
200 	domCamera::domOptics::domTechnique_common::domOrthographicRef ref = new domCamera::domOptics::domTechnique_common::domOrthographic(dae);
201 	return ref;
202 }
203 
204 
205 daeMetaElement *
registerElement(DAE & dae)206 domCamera::domOptics::domTechnique_common::domOrthographic::registerElement(DAE& dae)
207 {
208 	daeMetaElement* meta = dae.getMeta(ID());
209 	if ( meta != NULL ) return meta;
210 
211 	meta = new daeMetaElement(dae);
212 	dae.setMeta(ID(), *meta);
213 	meta->setName( "orthographic" );
214 	meta->registerClass(domCamera::domOptics::domTechnique_common::domOrthographic::create);
215 
216 	meta->setIsInnerClass( true );
217 	daeMetaCMPolicy *cm = NULL;
218 	daeMetaElementAttribute *mea = NULL;
219 	cm = new daeMetaSequence( meta, cm, 0, 1, 1 );
220 
221 	cm = new daeMetaChoice( meta, cm, 0, 0, 1, 1 );
222 
223 	cm = new daeMetaSequence( meta, cm, 0, 1, 1 );
224 
225 	mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 );
226 	mea->setName( "xmag" );
227 	mea->setOffset( daeOffsetOf(domCamera::domOptics::domTechnique_common::domOrthographic,elemXmag) );
228 	mea->setElementType( domTargetableFloat::registerElement(dae) );
229 	cm->appendChild( mea );
230 
231 	cm = new daeMetaChoice( meta, cm, 1, 1, 0, 1 );
232 
233 	mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 );
234 	mea->setName( "ymag" );
235 	mea->setOffset( daeOffsetOf(domCamera::domOptics::domTechnique_common::domOrthographic,elemYmag) );
236 	mea->setElementType( domTargetableFloat::registerElement(dae) );
237 	cm->appendChild( mea );
238 
239 	mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 );
240 	mea->setName( "aspect_ratio" );
241 	mea->setOffset( daeOffsetOf(domCamera::domOptics::domTechnique_common::domOrthographic,elemAspect_ratio) );
242 	mea->setElementType( domTargetableFloat::registerElement(dae) );
243 	cm->appendChild( mea );
244 
245 	cm->setMaxOrdinal( 0 );
246 	cm->getParent()->appendChild( cm );
247 	cm = cm->getParent();
248 
249 	cm->setMaxOrdinal( 1 );
250 	cm->getParent()->appendChild( cm );
251 	cm = cm->getParent();
252 
253 	cm = new daeMetaSequence( meta, cm, 2, 1, 1 );
254 
255 	mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 );
256 	mea->setName( "ymag" );
257 	mea->setOffset( daeOffsetOf(domCamera::domOptics::domTechnique_common::domOrthographic,elemYmag) );
258 	mea->setElementType( domTargetableFloat::registerElement(dae) );
259 	cm->appendChild( mea );
260 
261 	mea = new daeMetaElementAttribute( meta, cm, 1, 0, 1 );
262 	mea->setName( "aspect_ratio" );
263 	mea->setOffset( daeOffsetOf(domCamera::domOptics::domTechnique_common::domOrthographic,elemAspect_ratio) );
264 	mea->setElementType( domTargetableFloat::registerElement(dae) );
265 	cm->appendChild( mea );
266 
267 	cm->setMaxOrdinal( 1 );
268 	cm->getParent()->appendChild( cm );
269 	cm = cm->getParent();
270 
271 	cm->setMaxOrdinal( 3 );
272 	cm->getParent()->appendChild( cm );
273 	cm = cm->getParent();
274 
275 	mea = new daeMetaElementAttribute( meta, cm, 1, 1, 1 );
276 	mea->setName( "znear" );
277 	mea->setOffset( daeOffsetOf(domCamera::domOptics::domTechnique_common::domOrthographic,elemZnear) );
278 	mea->setElementType( domTargetableFloat::registerElement(dae) );
279 	cm->appendChild( mea );
280 
281 	mea = new daeMetaElementAttribute( meta, cm, 2, 1, 1 );
282 	mea->setName( "zfar" );
283 	mea->setOffset( daeOffsetOf(domCamera::domOptics::domTechnique_common::domOrthographic,elemZfar) );
284 	mea->setElementType( domTargetableFloat::registerElement(dae) );
285 	cm->appendChild( mea );
286 
287 	cm->setMaxOrdinal( 2 );
288 	meta->setCMRoot( cm );
289 	// Ordered list of sub-elements
290 	meta->addContents(daeOffsetOf(domCamera::domOptics::domTechnique_common::domOrthographic,_contents));
291 	meta->addContentsOrder(daeOffsetOf(domCamera::domOptics::domTechnique_common::domOrthographic,_contentsOrder));
292 
293 	meta->addCMDataArray(daeOffsetOf(domCamera::domOptics::domTechnique_common::domOrthographic,_CMData), 2);
294 	meta->setElementSize(sizeof(domCamera::domOptics::domTechnique_common::domOrthographic));
295 	meta->validate();
296 
297 	return meta;
298 }
299 
300 daeElementRef
create(DAE & dae)301 domCamera::domOptics::domTechnique_common::domPerspective::create(DAE& dae)
302 {
303 	domCamera::domOptics::domTechnique_common::domPerspectiveRef ref = new domCamera::domOptics::domTechnique_common::domPerspective(dae);
304 	return ref;
305 }
306 
307 
308 daeMetaElement *
registerElement(DAE & dae)309 domCamera::domOptics::domTechnique_common::domPerspective::registerElement(DAE& dae)
310 {
311 	daeMetaElement* meta = dae.getMeta(ID());
312 	if ( meta != NULL ) return meta;
313 
314 	meta = new daeMetaElement(dae);
315 	dae.setMeta(ID(), *meta);
316 	meta->setName( "perspective" );
317 	meta->registerClass(domCamera::domOptics::domTechnique_common::domPerspective::create);
318 
319 	meta->setIsInnerClass( true );
320 	daeMetaCMPolicy *cm = NULL;
321 	daeMetaElementAttribute *mea = NULL;
322 	cm = new daeMetaSequence( meta, cm, 0, 1, 1 );
323 
324 	cm = new daeMetaChoice( meta, cm, 0, 0, 1, 1 );
325 
326 	cm = new daeMetaSequence( meta, cm, 0, 1, 1 );
327 
328 	mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 );
329 	mea->setName( "xfov" );
330 	mea->setOffset( daeOffsetOf(domCamera::domOptics::domTechnique_common::domPerspective,elemXfov) );
331 	mea->setElementType( domTargetableFloat::registerElement(dae) );
332 	cm->appendChild( mea );
333 
334 	cm = new daeMetaChoice( meta, cm, 1, 1, 0, 1 );
335 
336 	mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 );
337 	mea->setName( "yfov" );
338 	mea->setOffset( daeOffsetOf(domCamera::domOptics::domTechnique_common::domPerspective,elemYfov) );
339 	mea->setElementType( domTargetableFloat::registerElement(dae) );
340 	cm->appendChild( mea );
341 
342 	mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 );
343 	mea->setName( "aspect_ratio" );
344 	mea->setOffset( daeOffsetOf(domCamera::domOptics::domTechnique_common::domPerspective,elemAspect_ratio) );
345 	mea->setElementType( domTargetableFloat::registerElement(dae) );
346 	cm->appendChild( mea );
347 
348 	cm->setMaxOrdinal( 0 );
349 	cm->getParent()->appendChild( cm );
350 	cm = cm->getParent();
351 
352 	cm->setMaxOrdinal( 1 );
353 	cm->getParent()->appendChild( cm );
354 	cm = cm->getParent();
355 
356 	cm = new daeMetaSequence( meta, cm, 0, 1, 1 );
357 
358 	mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 );
359 	mea->setName( "yfov" );
360 	mea->setOffset( daeOffsetOf(domCamera::domOptics::domTechnique_common::domPerspective,elemYfov) );
361 	mea->setElementType( domTargetableFloat::registerElement(dae) );
362 	cm->appendChild( mea );
363 
364 	mea = new daeMetaElementAttribute( meta, cm, 1, 0, 1 );
365 	mea->setName( "aspect_ratio" );
366 	mea->setOffset( daeOffsetOf(domCamera::domOptics::domTechnique_common::domPerspective,elemAspect_ratio) );
367 	mea->setElementType( domTargetableFloat::registerElement(dae) );
368 	cm->appendChild( mea );
369 
370 	cm->setMaxOrdinal( 1 );
371 	cm->getParent()->appendChild( cm );
372 	cm = cm->getParent();
373 
374 	cm->setMaxOrdinal( 3 );
375 	cm->getParent()->appendChild( cm );
376 	cm = cm->getParent();
377 
378 	mea = new daeMetaElementAttribute( meta, cm, 1, 1, 1 );
379 	mea->setName( "znear" );
380 	mea->setOffset( daeOffsetOf(domCamera::domOptics::domTechnique_common::domPerspective,elemZnear) );
381 	mea->setElementType( domTargetableFloat::registerElement(dae) );
382 	cm->appendChild( mea );
383 
384 	mea = new daeMetaElementAttribute( meta, cm, 2, 1, 1 );
385 	mea->setName( "zfar" );
386 	mea->setOffset( daeOffsetOf(domCamera::domOptics::domTechnique_common::domPerspective,elemZfar) );
387 	mea->setElementType( domTargetableFloat::registerElement(dae) );
388 	cm->appendChild( mea );
389 
390 	cm->setMaxOrdinal( 2 );
391 	meta->setCMRoot( cm );
392 	// Ordered list of sub-elements
393 	meta->addContents(daeOffsetOf(domCamera::domOptics::domTechnique_common::domPerspective,_contents));
394 	meta->addContentsOrder(daeOffsetOf(domCamera::domOptics::domTechnique_common::domPerspective,_contentsOrder));
395 
396 	meta->addCMDataArray(daeOffsetOf(domCamera::domOptics::domTechnique_common::domPerspective,_CMData), 2);
397 	meta->setElementSize(sizeof(domCamera::domOptics::domTechnique_common::domPerspective));
398 	meta->validate();
399 
400 	return meta;
401 }
402 
403 daeElementRef
create(DAE & dae)404 domCamera::domImager::create(DAE& dae)
405 {
406 	domCamera::domImagerRef ref = new domCamera::domImager(dae);
407 	return ref;
408 }
409 
410 
411 daeMetaElement *
registerElement(DAE & dae)412 domCamera::domImager::registerElement(DAE& dae)
413 {
414 	daeMetaElement* meta = dae.getMeta(ID());
415 	if ( meta != NULL ) return meta;
416 
417 	meta = new daeMetaElement(dae);
418 	dae.setMeta(ID(), *meta);
419 	meta->setName( "imager" );
420 	meta->registerClass(domCamera::domImager::create);
421 
422 	meta->setIsInnerClass( true );
423 	daeMetaCMPolicy *cm = NULL;
424 	daeMetaElementAttribute *mea = NULL;
425 	cm = new daeMetaSequence( meta, cm, 0, 1, 1 );
426 
427 	mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, -1 );
428 	mea->setName( "technique" );
429 	mea->setOffset( daeOffsetOf(domCamera::domImager,elemTechnique_array) );
430 	mea->setElementType( domTechnique::registerElement(dae) );
431 	cm->appendChild( mea );
432 
433 	mea = new daeMetaElementArrayAttribute( meta, cm, 1, 0, -1 );
434 	mea->setName( "extra" );
435 	mea->setOffset( daeOffsetOf(domCamera::domImager,elemExtra_array) );
436 	mea->setElementType( domExtra::registerElement(dae) );
437 	cm->appendChild( mea );
438 
439 	cm->setMaxOrdinal( 1 );
440 	meta->setCMRoot( cm );
441 
442 	meta->setElementSize(sizeof(domCamera::domImager));
443 	meta->validate();
444 
445 	return meta;
446 }
447 
448