• 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/domInstance_material.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 domInstance_material::create(DAE& dae)
21 {
22 	domInstance_materialRef ref = new domInstance_material(dae);
23 	return ref;
24 }
25 
26 
27 daeMetaElement *
registerElement(DAE & dae)28 domInstance_material::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( "instance_material" );
36 	meta->registerClass(domInstance_material::create);
37 
38 	daeMetaCMPolicy *cm = NULL;
39 	daeMetaElementAttribute *mea = NULL;
40 	cm = new daeMetaSequence( meta, cm, 0, 1, 1 );
41 
42 	mea = new daeMetaElementArrayAttribute( meta, cm, 0, 0, -1 );
43 	mea->setName( "bind" );
44 	mea->setOffset( daeOffsetOf(domInstance_material,elemBind_array) );
45 	mea->setElementType( domInstance_material::domBind::registerElement(dae) );
46 	cm->appendChild( mea );
47 
48 	mea = new daeMetaElementArrayAttribute( meta, cm, 1, 0, -1 );
49 	mea->setName( "bind_vertex_input" );
50 	mea->setOffset( daeOffsetOf(domInstance_material,elemBind_vertex_input_array) );
51 	mea->setElementType( domInstance_material::domBind_vertex_input::registerElement(dae) );
52 	cm->appendChild( mea );
53 
54 	mea = new daeMetaElementArrayAttribute( meta, cm, 2, 0, -1 );
55 	mea->setName( "extra" );
56 	mea->setOffset( daeOffsetOf(domInstance_material,elemExtra_array) );
57 	mea->setElementType( domExtra::registerElement(dae) );
58 	cm->appendChild( mea );
59 
60 	cm->setMaxOrdinal( 2 );
61 	meta->setCMRoot( cm );
62 
63 	//	Add attribute: symbol
64 	{
65 		daeMetaAttribute *ma = new daeMetaAttribute;
66 		ma->setName( "symbol" );
67 		ma->setType( dae.getAtomicTypes().get("xsNCName"));
68 		ma->setOffset( daeOffsetOf( domInstance_material , attrSymbol ));
69 		ma->setContainer( meta );
70 		ma->setIsRequired( true );
71 
72 		meta->appendAttribute(ma);
73 	}
74 
75 	//	Add attribute: target
76 	{
77 		daeMetaAttribute *ma = new daeMetaAttribute;
78 		ma->setName( "target" );
79 		ma->setType( dae.getAtomicTypes().get("xsAnyURI"));
80 		ma->setOffset( daeOffsetOf( domInstance_material , attrTarget ));
81 		ma->setContainer( meta );
82 		ma->setIsRequired( true );
83 
84 		meta->appendAttribute(ma);
85 	}
86 
87 	//	Add attribute: sid
88 	{
89 		daeMetaAttribute *ma = new daeMetaAttribute;
90 		ma->setName( "sid" );
91 		ma->setType( dae.getAtomicTypes().get("xsNCName"));
92 		ma->setOffset( daeOffsetOf( domInstance_material , attrSid ));
93 		ma->setContainer( meta );
94 
95 		meta->appendAttribute(ma);
96 	}
97 
98 	//	Add attribute: name
99 	{
100 		daeMetaAttribute *ma = new daeMetaAttribute;
101 		ma->setName( "name" );
102 		ma->setType( dae.getAtomicTypes().get("xsNCName"));
103 		ma->setOffset( daeOffsetOf( domInstance_material , attrName ));
104 		ma->setContainer( meta );
105 
106 		meta->appendAttribute(ma);
107 	}
108 
109 	meta->setElementSize(sizeof(domInstance_material));
110 	meta->validate();
111 
112 	return meta;
113 }
114 
115 daeElementRef
create(DAE & dae)116 domInstance_material::domBind::create(DAE& dae)
117 {
118 	domInstance_material::domBindRef ref = new domInstance_material::domBind(dae);
119 	return ref;
120 }
121 
122 
123 daeMetaElement *
registerElement(DAE & dae)124 domInstance_material::domBind::registerElement(DAE& dae)
125 {
126 	daeMetaElement* meta = dae.getMeta(ID());
127 	if ( meta != NULL ) return meta;
128 
129 	meta = new daeMetaElement(dae);
130 	dae.setMeta(ID(), *meta);
131 	meta->setName( "bind" );
132 	meta->registerClass(domInstance_material::domBind::create);
133 
134 	meta->setIsInnerClass( true );
135 
136 	//	Add attribute: semantic
137 	{
138 		daeMetaAttribute *ma = new daeMetaAttribute;
139 		ma->setName( "semantic" );
140 		ma->setType( dae.getAtomicTypes().get("xsNCName"));
141 		ma->setOffset( daeOffsetOf( domInstance_material::domBind , attrSemantic ));
142 		ma->setContainer( meta );
143 		ma->setIsRequired( true );
144 
145 		meta->appendAttribute(ma);
146 	}
147 
148 	//	Add attribute: target
149 	{
150 		daeMetaAttribute *ma = new daeMetaAttribute;
151 		ma->setName( "target" );
152 		ma->setType( dae.getAtomicTypes().get("xsToken"));
153 		ma->setOffset( daeOffsetOf( domInstance_material::domBind , attrTarget ));
154 		ma->setContainer( meta );
155 		ma->setIsRequired( true );
156 
157 		meta->appendAttribute(ma);
158 	}
159 
160 	meta->setElementSize(sizeof(domInstance_material::domBind));
161 	meta->validate();
162 
163 	return meta;
164 }
165 
166 daeElementRef
create(DAE & dae)167 domInstance_material::domBind_vertex_input::create(DAE& dae)
168 {
169 	domInstance_material::domBind_vertex_inputRef ref = new domInstance_material::domBind_vertex_input(dae);
170 	return ref;
171 }
172 
173 
174 daeMetaElement *
registerElement(DAE & dae)175 domInstance_material::domBind_vertex_input::registerElement(DAE& dae)
176 {
177 	daeMetaElement* meta = dae.getMeta(ID());
178 	if ( meta != NULL ) return meta;
179 
180 	meta = new daeMetaElement(dae);
181 	dae.setMeta(ID(), *meta);
182 	meta->setName( "bind_vertex_input" );
183 	meta->registerClass(domInstance_material::domBind_vertex_input::create);
184 
185 	meta->setIsInnerClass( true );
186 
187 	//	Add attribute: semantic
188 	{
189 		daeMetaAttribute *ma = new daeMetaAttribute;
190 		ma->setName( "semantic" );
191 		ma->setType( dae.getAtomicTypes().get("xsNCName"));
192 		ma->setOffset( daeOffsetOf( domInstance_material::domBind_vertex_input , attrSemantic ));
193 		ma->setContainer( meta );
194 		ma->setIsRequired( true );
195 
196 		meta->appendAttribute(ma);
197 	}
198 
199 	//	Add attribute: input_semantic
200 	{
201 		daeMetaAttribute *ma = new daeMetaAttribute;
202 		ma->setName( "input_semantic" );
203 		ma->setType( dae.getAtomicTypes().get("xsNCName"));
204 		ma->setOffset( daeOffsetOf( domInstance_material::domBind_vertex_input , attrInput_semantic ));
205 		ma->setContainer( meta );
206 		ma->setIsRequired( true );
207 
208 		meta->appendAttribute(ma);
209 	}
210 
211 	//	Add attribute: input_set
212 	{
213 		daeMetaAttribute *ma = new daeMetaAttribute;
214 		ma->setName( "input_set" );
215 		ma->setType( dae.getAtomicTypes().get("Uint"));
216 		ma->setOffset( daeOffsetOf( domInstance_material::domBind_vertex_input , attrInput_set ));
217 		ma->setContainer( meta );
218 
219 		meta->appendAttribute(ma);
220 	}
221 
222 	meta->setElementSize(sizeof(domInstance_material::domBind_vertex_input));
223 	meta->validate();
224 
225 	return meta;
226 }
227 
228