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