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