1 #include <dae.h>
2 #include <dae/daeDom.h>
3 #include <1.5/dom/domLink.h>
4 #include <dae/daeMetaCMPolicy.h>
5 #include <dae/daeMetaSequence.h>
6 #include <dae/daeMetaChoice.h>
7 #include <dae/daeMetaGroup.h>
8 #include <dae/daeMetaAny.h>
9 #include <dae/daeMetaElementAttribute.h>
10 
11 
12 namespace ColladaDOM150 {
13 daeElementRef
create(DAE & dae)14 domLink::create(DAE& dae)
15 {
16 	domLinkRef ref = new domLink(dae);
17 	return ref;
18 }
19 
20 
21 daeMetaElement *
registerElement(DAE & dae)22 domLink::registerElement(DAE& dae)
23 {
24 	daeMetaElement* meta = dae.getMeta(ID());
25 	if ( meta != NULL ) return meta;
26 
27 	meta = new daeMetaElement(dae);
28 	dae.setMeta(ID(), *meta);
29 	meta->setName( "link" );
30 	meta->registerClass(domLink::create);
31 
32 	daeMetaCMPolicy *cm = NULL;
33 	daeMetaElementAttribute *mea = NULL;
34 	cm = new daeMetaSequence( meta, cm, 0, 1, 1 );
35 
36 	cm = new daeMetaChoice( meta, cm, 0, 0, 0, -1 );
37 
38 	mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 );
39 	mea->setName( "rotate" );
40 	mea->setOffset( daeOffsetOf(domLink,elemRotate_array) );
41 	mea->setElementType( domRotate::registerElement(dae) );
42 	cm->appendChild( mea );
43 
44 	mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 );
45 	mea->setName( "translate" );
46 	mea->setOffset( daeOffsetOf(domLink,elemTranslate_array) );
47 	mea->setElementType( domTranslate::registerElement(dae) );
48 	cm->appendChild( mea );
49 
50 	cm->setMaxOrdinal( 0 );
51 	cm->getParent()->appendChild( cm );
52 	cm = cm->getParent();
53 
54 	cm = new daeMetaChoice( meta, cm, 1, 3001, 0, -1 );
55 
56 	mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 );
57 	mea->setName( "attachment_full" );
58 	mea->setOffset( daeOffsetOf(domLink,elemAttachment_full_array) );
59 	mea->setElementType( domLink::domAttachment_full::registerElement(dae) );
60 	cm->appendChild( mea );
61 
62 	mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 );
63 	mea->setName( "attachment_start" );
64 	mea->setOffset( daeOffsetOf(domLink,elemAttachment_start_array) );
65 	mea->setElementType( domLink::domAttachment_start::registerElement(dae) );
66 	cm->appendChild( mea );
67 
68 	mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 );
69 	mea->setName( "attachment_end" );
70 	mea->setOffset( daeOffsetOf(domLink,elemAttachment_end_array) );
71 	mea->setElementType( domLink::domAttachment_end::registerElement(dae) );
72 	cm->appendChild( mea );
73 
74 	cm->setMaxOrdinal( 0 );
75 	cm->getParent()->appendChild( cm );
76 	cm = cm->getParent();
77 
78 	cm->setMaxOrdinal( 6001 );
79 	meta->setCMRoot( cm );
80 	// Ordered list of sub-elements
81 	meta->addContents(daeOffsetOf(domLink,_contents));
82 	meta->addContentsOrder(daeOffsetOf(domLink,_contentsOrder));
83 
84 	meta->addCMDataArray(daeOffsetOf(domLink,_CMData), 2);
85 	//	Add attribute: sid
86 	{
87 		daeMetaAttribute *ma = new daeMetaAttribute;
88 		ma->setName( "sid" );
89 		ma->setType( dae.getAtomicTypes().get("Sid"));
90 		ma->setOffset( daeOffsetOf( domLink , attrSid ));
91 		ma->setContainer( meta );
92 
93 		meta->appendAttribute(ma);
94 	}
95 
96 	//	Add attribute: name
97 	{
98 		daeMetaAttribute *ma = new daeMetaAttribute;
99 		ma->setName( "name" );
100 		ma->setType( dae.getAtomicTypes().get("xsToken"));
101 		ma->setOffset( daeOffsetOf( domLink , attrName ));
102 		ma->setContainer( meta );
103 
104 		meta->appendAttribute(ma);
105 	}
106 
107 	meta->setElementSize(sizeof(domLink));
108 	meta->validate();
109 
110 	return meta;
111 }
112 
113 daeElementRef
create(DAE & dae)114 domLink::domAttachment_full::create(DAE& dae)
115 {
116 	domLink::domAttachment_fullRef ref = new domLink::domAttachment_full(dae);
117 	return ref;
118 }
119 
120 
121 daeMetaElement *
registerElement(DAE & dae)122 domLink::domAttachment_full::registerElement(DAE& dae)
123 {
124 	daeMetaElement* meta = dae.getMeta(ID());
125 	if ( meta != NULL ) return meta;
126 
127 	meta = new daeMetaElement(dae);
128 	dae.setMeta(ID(), *meta);
129 	meta->setName( "attachment_full" );
130 	meta->registerClass(domLink::domAttachment_full::create);
131 
132 	meta->setIsInnerClass( true );
133 	daeMetaCMPolicy *cm = NULL;
134 	daeMetaElementAttribute *mea = NULL;
135 	cm = new daeMetaSequence( meta, cm, 0, 1, 1 );
136 
137 	cm = new daeMetaChoice( meta, cm, 0, 0, 0, -1 );
138 
139 	mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 );
140 	mea->setName( "rotate" );
141 	mea->setOffset( daeOffsetOf(domLink::domAttachment_full,elemRotate_array) );
142 	mea->setElementType( domRotate::registerElement(dae) );
143 	cm->appendChild( mea );
144 
145 	mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 );
146 	mea->setName( "translate" );
147 	mea->setOffset( daeOffsetOf(domLink::domAttachment_full,elemTranslate_array) );
148 	mea->setElementType( domTranslate::registerElement(dae) );
149 	cm->appendChild( mea );
150 
151 	cm->setMaxOrdinal( 0 );
152 	cm->getParent()->appendChild( cm );
153 	cm = cm->getParent();
154 
155 	mea = new daeMetaElementAttribute( meta, cm, 3001, 1, 1 );
156 	mea->setName( "link" );
157 	mea->setOffset( daeOffsetOf(domLink::domAttachment_full,elemLink) );
158 	mea->setElementType( domLink::registerElement(dae) );
159 	cm->appendChild( mea );
160 
161 	cm->setMaxOrdinal( 3001 );
162 	meta->setCMRoot( cm );
163 	// Ordered list of sub-elements
164 	meta->addContents(daeOffsetOf(domLink::domAttachment_full,_contents));
165 	meta->addContentsOrder(daeOffsetOf(domLink::domAttachment_full,_contentsOrder));
166 
167 	meta->addCMDataArray(daeOffsetOf(domLink::domAttachment_full,_CMData), 1);
168 	//	Add attribute: joint
169 	{
170 		daeMetaAttribute *ma = new daeMetaAttribute;
171 		ma->setName( "joint" );
172 		ma->setType( dae.getAtomicTypes().get("xsToken"));
173 		ma->setOffset( daeOffsetOf( domLink::domAttachment_full , attrJoint ));
174 		ma->setContainer( meta );
175 		ma->setIsRequired( true );
176 
177 		meta->appendAttribute(ma);
178 	}
179 
180 	meta->setElementSize(sizeof(domLink::domAttachment_full));
181 	meta->validate();
182 
183 	return meta;
184 }
185 
186 daeElementRef
create(DAE & dae)187 domLink::domAttachment_start::create(DAE& dae)
188 {
189 	domLink::domAttachment_startRef ref = new domLink::domAttachment_start(dae);
190 	return ref;
191 }
192 
193 
194 daeMetaElement *
registerElement(DAE & dae)195 domLink::domAttachment_start::registerElement(DAE& dae)
196 {
197 	daeMetaElement* meta = dae.getMeta(ID());
198 	if ( meta != NULL ) return meta;
199 
200 	meta = new daeMetaElement(dae);
201 	dae.setMeta(ID(), *meta);
202 	meta->setName( "attachment_start" );
203 	meta->registerClass(domLink::domAttachment_start::create);
204 
205 	meta->setIsInnerClass( true );
206 	daeMetaCMPolicy *cm = NULL;
207 	daeMetaElementAttribute *mea = NULL;
208 	cm = new daeMetaChoice( meta, cm, 0, 0, 1, -1 );
209 
210 	mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 );
211 	mea->setName( "rotate" );
212 	mea->setOffset( daeOffsetOf(domLink::domAttachment_start,elemRotate_array) );
213 	mea->setElementType( domRotate::registerElement(dae) );
214 	cm->appendChild( mea );
215 
216 	mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 );
217 	mea->setName( "translate" );
218 	mea->setOffset( daeOffsetOf(domLink::domAttachment_start,elemTranslate_array) );
219 	mea->setElementType( domTranslate::registerElement(dae) );
220 	cm->appendChild( mea );
221 
222 	cm->setMaxOrdinal( 3000 );
223 	meta->setCMRoot( cm );
224 	// Ordered list of sub-elements
225 	meta->addContents(daeOffsetOf(domLink::domAttachment_start,_contents));
226 	meta->addContentsOrder(daeOffsetOf(domLink::domAttachment_start,_contentsOrder));
227 
228 	meta->addCMDataArray(daeOffsetOf(domLink::domAttachment_start,_CMData), 1);
229 	//	Add attribute: joint
230 	{
231 		daeMetaAttribute *ma = new daeMetaAttribute;
232 		ma->setName( "joint" );
233 		ma->setType( dae.getAtomicTypes().get("xsToken"));
234 		ma->setOffset( daeOffsetOf( domLink::domAttachment_start , attrJoint ));
235 		ma->setContainer( meta );
236 		ma->setIsRequired( true );
237 
238 		meta->appendAttribute(ma);
239 	}
240 
241 	meta->setElementSize(sizeof(domLink::domAttachment_start));
242 	meta->validate();
243 
244 	return meta;
245 }
246 
247 daeElementRef
create(DAE & dae)248 domLink::domAttachment_end::create(DAE& dae)
249 {
250 	domLink::domAttachment_endRef ref = new domLink::domAttachment_end(dae);
251 	return ref;
252 }
253 
254 
255 daeMetaElement *
registerElement(DAE & dae)256 domLink::domAttachment_end::registerElement(DAE& dae)
257 {
258 	daeMetaElement* meta = dae.getMeta(ID());
259 	if ( meta != NULL ) return meta;
260 
261 	meta = new daeMetaElement(dae);
262 	dae.setMeta(ID(), *meta);
263 	meta->setName( "attachment_end" );
264 	meta->registerClass(domLink::domAttachment_end::create);
265 
266 	meta->setIsInnerClass( true );
267 	daeMetaCMPolicy *cm = NULL;
268 	daeMetaElementAttribute *mea = NULL;
269 	cm = new daeMetaChoice( meta, cm, 0, 0, 0, -1 );
270 
271 	mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 );
272 	mea->setName( "rotate" );
273 	mea->setOffset( daeOffsetOf(domLink::domAttachment_end,elemRotate_array) );
274 	mea->setElementType( domRotate::registerElement(dae) );
275 	cm->appendChild( mea );
276 
277 	mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 );
278 	mea->setName( "translate" );
279 	mea->setOffset( daeOffsetOf(domLink::domAttachment_end,elemTranslate_array) );
280 	mea->setElementType( domTranslate::registerElement(dae) );
281 	cm->appendChild( mea );
282 
283 	cm->setMaxOrdinal( 3000 );
284 	meta->setCMRoot( cm );
285 	// Ordered list of sub-elements
286 	meta->addContents(daeOffsetOf(domLink::domAttachment_end,_contents));
287 	meta->addContentsOrder(daeOffsetOf(domLink::domAttachment_end,_contentsOrder));
288 
289 	meta->addCMDataArray(daeOffsetOf(domLink::domAttachment_end,_CMData), 1);
290 	//	Add attribute: joint
291 	{
292 		daeMetaAttribute *ma = new daeMetaAttribute;
293 		ma->setName( "joint" );
294 		ma->setType( dae.getAtomicTypes().get("xsToken"));
295 		ma->setOffset( daeOffsetOf( domLink::domAttachment_end , attrJoint ));
296 		ma->setContainer( meta );
297 		ma->setIsRequired( true );
298 
299 		meta->appendAttribute(ma);
300 	}
301 
302 	meta->setElementSize(sizeof(domLink::domAttachment_end));
303 	meta->validate();
304 
305 	return meta;
306 }
307 
308 } // ColladaDOM150
309