1 #include <dae.h>
2 #include <dae/daeDom.h>
3 #include <1.5/dom/domSwept_surface.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 domSwept_surface::create(DAE& dae)
15 {
16 domSwept_surfaceRef ref = new domSwept_surface(dae);
17 return ref;
18 }
19
20
21 daeMetaElement *
registerElement(DAE & dae)22 domSwept_surface::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( "swept_surface" );
30 meta->registerClass(domSwept_surface::create);
31
32 daeMetaCMPolicy *cm = NULL;
33 daeMetaElementAttribute *mea = NULL;
34 cm = new daeMetaSequence( meta, cm, 0, 1, 1 );
35
36 mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 );
37 mea->setName( "curve" );
38 mea->setOffset( daeOffsetOf(domSwept_surface,elemCurve) );
39 mea->setElementType( domCurve::registerElement(dae) );
40 cm->appendChild( mea );
41
42 cm = new daeMetaChoice( meta, cm, 0, 1, 1, 1 );
43
44 mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 );
45 mea->setName( "direction" );
46 mea->setOffset( daeOffsetOf(domSwept_surface,elemDirection) );
47 mea->setElementType( domSwept_surface::domDirection::registerElement(dae) );
48 cm->appendChild( mea );
49
50 cm = new daeMetaSequence( meta, cm, 0, 1, 1 );
51
52 mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 );
53 mea->setName( "origin" );
54 mea->setOffset( daeOffsetOf(domSwept_surface,elemOrigin) );
55 mea->setElementType( domSwept_surface::domOrigin::registerElement(dae) );
56 cm->appendChild( mea );
57
58 mea = new daeMetaElementAttribute( meta, cm, 1, 1, 1 );
59 mea->setName( "axis" );
60 mea->setOffset( daeOffsetOf(domSwept_surface,elemAxis) );
61 mea->setElementType( domSwept_surface::domAxis::registerElement(dae) );
62 cm->appendChild( mea );
63
64 cm->setMaxOrdinal( 1 );
65 cm->getParent()->appendChild( cm );
66 cm = cm->getParent();
67
68 cm->setMaxOrdinal( 1 );
69 cm->getParent()->appendChild( cm );
70 cm = cm->getParent();
71
72 mea = new daeMetaElementArrayAttribute( meta, cm, 2, 0, -1 );
73 mea->setName( "extra" );
74 mea->setOffset( daeOffsetOf(domSwept_surface,elemExtra_array) );
75 mea->setElementType( domExtra::registerElement(dae) );
76 cm->appendChild( mea );
77
78 cm->setMaxOrdinal( 2 );
79 meta->setCMRoot( cm );
80 // Ordered list of sub-elements
81 meta->addContents(daeOffsetOf(domSwept_surface,_contents));
82 meta->addContentsOrder(daeOffsetOf(domSwept_surface,_contentsOrder));
83
84 meta->addCMDataArray(daeOffsetOf(domSwept_surface,_CMData), 1);
85 meta->setElementSize(sizeof(domSwept_surface));
86 meta->validate();
87
88 return meta;
89 }
90
91 daeElementRef
create(DAE & dae)92 domSwept_surface::domDirection::create(DAE& dae)
93 {
94 domSwept_surface::domDirectionRef ref = new domSwept_surface::domDirection(dae);
95 return ref;
96 }
97
98
99 daeMetaElement *
registerElement(DAE & dae)100 domSwept_surface::domDirection::registerElement(DAE& dae)
101 {
102 daeMetaElement* meta = dae.getMeta(ID());
103 if ( meta != NULL ) return meta;
104
105 meta = new daeMetaElement(dae);
106 dae.setMeta(ID(), *meta);
107 meta->setName( "direction" );
108 meta->registerClass(domSwept_surface::domDirection::create);
109
110 meta->setIsInnerClass( true );
111 // Add attribute: _value
112 {
113 daeMetaAttribute *ma = new daeMetaArrayAttribute;
114 ma->setName( "_value" );
115 ma->setType( dae.getAtomicTypes().get("Float3"));
116 ma->setOffset( daeOffsetOf( domSwept_surface::domDirection , _value ));
117 ma->setContainer( meta );
118 meta->appendAttribute(ma);
119 }
120
121 meta->setElementSize(sizeof(domSwept_surface::domDirection));
122 meta->validate();
123
124 return meta;
125 }
126
127 daeElementRef
create(DAE & dae)128 domSwept_surface::domOrigin::create(DAE& dae)
129 {
130 domSwept_surface::domOriginRef ref = new domSwept_surface::domOrigin(dae);
131 return ref;
132 }
133
134
135 daeMetaElement *
registerElement(DAE & dae)136 domSwept_surface::domOrigin::registerElement(DAE& dae)
137 {
138 daeMetaElement* meta = dae.getMeta(ID());
139 if ( meta != NULL ) return meta;
140
141 meta = new daeMetaElement(dae);
142 dae.setMeta(ID(), *meta);
143 meta->setName( "origin" );
144 meta->registerClass(domSwept_surface::domOrigin::create);
145
146 meta->setIsInnerClass( true );
147 // Add attribute: _value
148 {
149 daeMetaAttribute *ma = new daeMetaArrayAttribute;
150 ma->setName( "_value" );
151 ma->setType( dae.getAtomicTypes().get("Float3"));
152 ma->setOffset( daeOffsetOf( domSwept_surface::domOrigin , _value ));
153 ma->setContainer( meta );
154 meta->appendAttribute(ma);
155 }
156
157 meta->setElementSize(sizeof(domSwept_surface::domOrigin));
158 meta->validate();
159
160 return meta;
161 }
162
163 daeElementRef
create(DAE & dae)164 domSwept_surface::domAxis::create(DAE& dae)
165 {
166 domSwept_surface::domAxisRef ref = new domSwept_surface::domAxis(dae);
167 return ref;
168 }
169
170
171 daeMetaElement *
registerElement(DAE & dae)172 domSwept_surface::domAxis::registerElement(DAE& dae)
173 {
174 daeMetaElement* meta = dae.getMeta(ID());
175 if ( meta != NULL ) return meta;
176
177 meta = new daeMetaElement(dae);
178 dae.setMeta(ID(), *meta);
179 meta->setName( "axis" );
180 meta->registerClass(domSwept_surface::domAxis::create);
181
182 meta->setIsInnerClass( true );
183 // Add attribute: _value
184 {
185 daeMetaAttribute *ma = new daeMetaArrayAttribute;
186 ma->setName( "_value" );
187 ma->setType( dae.getAtomicTypes().get("Float3"));
188 ma->setOffset( daeOffsetOf( domSwept_surface::domAxis , _value ));
189 ma->setContainer( meta );
190 meta->appendAttribute(ma);
191 }
192
193 meta->setElementSize(sizeof(domSwept_surface::domAxis));
194 meta->validate();
195
196 return meta;
197 }
198
199 } // ColladaDOM150
200