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/domCommon_newparam_type.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 20 domCommon_newparam_type::create(DAE& dae) 21 { 22 domCommon_newparam_typeRef ref = new domCommon_newparam_type(dae); 23 return ref; 24 } 25 26 27 daeMetaElement * 28 domCommon_newparam_type::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( "common_newparam_type" ); 36 meta->registerClass(domCommon_newparam_type::create); 37 38 daeMetaCMPolicy *cm = NULL; 39 daeMetaElementAttribute *mea = NULL; 40 cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); 41 42 mea = new daeMetaElementAttribute( meta, cm, 0, 0, 1 ); 43 mea->setName( "semantic" ); 44 mea->setOffset( daeOffsetOf(domCommon_newparam_type,elemSemantic) ); 45 mea->setElementType( domCommon_newparam_type::domSemantic::registerElement(dae) ); 46 cm->appendChild( mea ); 47 48 cm = new daeMetaChoice( meta, cm, 0, 1, 1, 1 ); 49 50 mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); 51 mea->setName( "float" ); 52 mea->setOffset( daeOffsetOf(domCommon_newparam_type,elemFloat) ); 53 mea->setElementType( domCommon_newparam_type::domFloat::registerElement(dae) ); 54 cm->appendChild( mea ); 55 56 mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); 57 mea->setName( "float2" ); 58 mea->setOffset( daeOffsetOf(domCommon_newparam_type,elemFloat2) ); 59 mea->setElementType( domCommon_newparam_type::domFloat2::registerElement(dae) ); 60 cm->appendChild( mea ); 61 62 mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); 63 mea->setName( "float3" ); 64 mea->setOffset( daeOffsetOf(domCommon_newparam_type,elemFloat3) ); 65 mea->setElementType( domCommon_newparam_type::domFloat3::registerElement(dae) ); 66 cm->appendChild( mea ); 67 68 mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); 69 mea->setName( "float4" ); 70 mea->setOffset( daeOffsetOf(domCommon_newparam_type,elemFloat4) ); 71 mea->setElementType( domCommon_newparam_type::domFloat4::registerElement(dae) ); 72 cm->appendChild( mea ); 73 74 mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); 75 mea->setName( "surface" ); 76 mea->setOffset( daeOffsetOf(domCommon_newparam_type,elemSurface) ); 77 mea->setElementType( domFx_surface_common::registerElement(dae) ); 78 cm->appendChild( mea ); 79 80 mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); 81 mea->setName( "sampler2D" ); 82 mea->setOffset( daeOffsetOf(domCommon_newparam_type,elemSampler2D) ); 83 mea->setElementType( domFx_sampler2D_common::registerElement(dae) ); 84 cm->appendChild( mea ); 85 86 cm->setMaxOrdinal( 0 ); 87 cm->getParent()->appendChild( cm ); 88 cm = cm->getParent(); 89 90 cm->setMaxOrdinal( 1 ); 91 meta->setCMRoot( cm ); 92 // Ordered list of sub-elements 93 meta->addContents(daeOffsetOf(domCommon_newparam_type,_contents)); 94 meta->addContentsOrder(daeOffsetOf(domCommon_newparam_type,_contentsOrder)); 95 96 meta->addCMDataArray(daeOffsetOf(domCommon_newparam_type,_CMData), 1); 97 // Add attribute: sid 98 { 99 daeMetaAttribute *ma = new daeMetaAttribute; 100 ma->setName( "sid" ); 101 ma->setType( dae.getAtomicTypes().get("xsNCName")); 102 ma->setOffset( daeOffsetOf( domCommon_newparam_type , attrSid )); 103 ma->setContainer( meta ); 104 ma->setIsRequired( true ); 105 106 meta->appendAttribute(ma); 107 } 108 109 meta->setElementSize(sizeof(domCommon_newparam_type)); 110 meta->validate(); 111 112 return meta; 113 } 114 115 daeElementRef 116 domCommon_newparam_type::domSemantic::create(DAE& dae) 117 { 118 domCommon_newparam_type::domSemanticRef ref = new domCommon_newparam_type::domSemantic(dae); 119 return ref; 120 } 121 122 123 daeMetaElement * 124 domCommon_newparam_type::domSemantic::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( "semantic" ); 132 meta->registerClass(domCommon_newparam_type::domSemantic::create); 133 134 meta->setIsInnerClass( true ); 135 // Add attribute: _value 136 { 137 daeMetaAttribute *ma = new daeMetaAttribute; 138 ma->setName( "_value" ); 139 ma->setType( dae.getAtomicTypes().get("xsNCName")); 140 ma->setOffset( daeOffsetOf( domCommon_newparam_type::domSemantic , _value )); 141 ma->setContainer( meta ); 142 meta->appendAttribute(ma); 143 } 144 145 meta->setElementSize(sizeof(domCommon_newparam_type::domSemantic)); 146 meta->validate(); 147 148 return meta; 149 } 150 151 daeElementRef 152 domCommon_newparam_type::domFloat::create(DAE& dae) 153 { 154 domCommon_newparam_type::domFloatRef ref = new domCommon_newparam_type::domFloat(dae); 155 return ref; 156 } 157 158 159 daeMetaElement * 160 domCommon_newparam_type::domFloat::registerElement(DAE& dae) 161 { 162 daeMetaElement* meta = dae.getMeta(ID()); 163 if ( meta != NULL ) return meta; 164 165 meta = new daeMetaElement(dae); 166 dae.setMeta(ID(), *meta); 167 meta->setName( "float" ); 168 meta->registerClass(domCommon_newparam_type::domFloat::create); 169 170 meta->setIsInnerClass( true ); 171 // Add attribute: _value 172 { 173 daeMetaAttribute *ma = new daeMetaAttribute; 174 ma->setName( "_value" ); 175 ma->setType( dae.getAtomicTypes().get("Float")); 176 ma->setOffset( daeOffsetOf( domCommon_newparam_type::domFloat , _value )); 177 ma->setContainer( meta ); 178 meta->appendAttribute(ma); 179 } 180 181 meta->setElementSize(sizeof(domCommon_newparam_type::domFloat)); 182 meta->validate(); 183 184 return meta; 185 } 186 187 daeElementRef 188 domCommon_newparam_type::domFloat2::create(DAE& dae) 189 { 190 domCommon_newparam_type::domFloat2Ref ref = new domCommon_newparam_type::domFloat2(dae); 191 return ref; 192 } 193 194 195 daeMetaElement * 196 domCommon_newparam_type::domFloat2::registerElement(DAE& dae) 197 { 198 daeMetaElement* meta = dae.getMeta(ID()); 199 if ( meta != NULL ) return meta; 200 201 meta = new daeMetaElement(dae); 202 dae.setMeta(ID(), *meta); 203 meta->setName( "float2" ); 204 meta->registerClass(domCommon_newparam_type::domFloat2::create); 205 206 meta->setIsInnerClass( true ); 207 // Add attribute: _value 208 { 209 daeMetaAttribute *ma = new daeMetaArrayAttribute; 210 ma->setName( "_value" ); 211 ma->setType( dae.getAtomicTypes().get("Float2")); 212 ma->setOffset( daeOffsetOf( domCommon_newparam_type::domFloat2 , _value )); 213 ma->setContainer( meta ); 214 meta->appendAttribute(ma); 215 } 216 217 meta->setElementSize(sizeof(domCommon_newparam_type::domFloat2)); 218 meta->validate(); 219 220 return meta; 221 } 222 223 daeElementRef 224 domCommon_newparam_type::domFloat3::create(DAE& dae) 225 { 226 domCommon_newparam_type::domFloat3Ref ref = new domCommon_newparam_type::domFloat3(dae); 227 return ref; 228 } 229 230 231 daeMetaElement * 232 domCommon_newparam_type::domFloat3::registerElement(DAE& dae) 233 { 234 daeMetaElement* meta = dae.getMeta(ID()); 235 if ( meta != NULL ) return meta; 236 237 meta = new daeMetaElement(dae); 238 dae.setMeta(ID(), *meta); 239 meta->setName( "float3" ); 240 meta->registerClass(domCommon_newparam_type::domFloat3::create); 241 242 meta->setIsInnerClass( true ); 243 // Add attribute: _value 244 { 245 daeMetaAttribute *ma = new daeMetaArrayAttribute; 246 ma->setName( "_value" ); 247 ma->setType( dae.getAtomicTypes().get("Float3")); 248 ma->setOffset( daeOffsetOf( domCommon_newparam_type::domFloat3 , _value )); 249 ma->setContainer( meta ); 250 meta->appendAttribute(ma); 251 } 252 253 meta->setElementSize(sizeof(domCommon_newparam_type::domFloat3)); 254 meta->validate(); 255 256 return meta; 257 } 258 259 daeElementRef 260 domCommon_newparam_type::domFloat4::create(DAE& dae) 261 { 262 domCommon_newparam_type::domFloat4Ref ref = new domCommon_newparam_type::domFloat4(dae); 263 return ref; 264 } 265 266 267 daeMetaElement * 268 domCommon_newparam_type::domFloat4::registerElement(DAE& dae) 269 { 270 daeMetaElement* meta = dae.getMeta(ID()); 271 if ( meta != NULL ) return meta; 272 273 meta = new daeMetaElement(dae); 274 dae.setMeta(ID(), *meta); 275 meta->setName( "float4" ); 276 meta->registerClass(domCommon_newparam_type::domFloat4::create); 277 278 meta->setIsInnerClass( true ); 279 // Add attribute: _value 280 { 281 daeMetaAttribute *ma = new daeMetaArrayAttribute; 282 ma->setName( "_value" ); 283 ma->setType( dae.getAtomicTypes().get("Float4")); 284 ma->setOffset( daeOffsetOf( domCommon_newparam_type::domFloat4 , _value )); 285 ma->setContainer( meta ); 286 meta->appendAttribute(ma); 287 } 288 289 meta->setElementSize(sizeof(domCommon_newparam_type::domFloat4)); 290 meta->validate(); 291 292 return meta; 293 } 294 295