1 #include <dae.h> 2 #include <dae/daeDom.h> 3 #include <1.5/dom/domParam.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)14domParam::create(DAE& dae) 15 { 16 domParamRef ref = new domParam(dae); 17 return ref; 18 } 19 20 21 daeMetaElement * registerElement(DAE & dae)22domParam::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( "param" ); 30 meta->registerClass(domParam::create); 31 32 // Add attribute: _value 33 { 34 daeMetaAttribute *ma = new daeMetaAttribute; 35 ma->setName( "_value" ); 36 ma->setType( dae.getAtomicTypes().get("xsString")); 37 ma->setOffset( daeOffsetOf( domParam , _value )); 38 ma->setContainer( meta ); 39 meta->appendAttribute(ma); 40 } 41 42 // Add attribute: name 43 { 44 daeMetaAttribute *ma = new daeMetaAttribute; 45 ma->setName( "name" ); 46 ma->setType( dae.getAtomicTypes().get("xsToken")); 47 ma->setOffset( daeOffsetOf( domParam , attrName )); 48 ma->setContainer( meta ); 49 50 meta->appendAttribute(ma); 51 } 52 53 // Add attribute: sid 54 { 55 daeMetaAttribute *ma = new daeMetaAttribute; 56 ma->setName( "sid" ); 57 ma->setType( dae.getAtomicTypes().get("Sid")); 58 ma->setOffset( daeOffsetOf( domParam , attrSid )); 59 ma->setContainer( meta ); 60 61 meta->appendAttribute(ma); 62 } 63 64 // Add attribute: semantic 65 { 66 daeMetaAttribute *ma = new daeMetaAttribute; 67 ma->setName( "semantic" ); 68 ma->setType( dae.getAtomicTypes().get("xsNMTOKEN")); 69 ma->setOffset( daeOffsetOf( domParam , attrSemantic )); 70 ma->setContainer( meta ); 71 72 meta->appendAttribute(ma); 73 } 74 75 // Add attribute: type 76 { 77 daeMetaAttribute *ma = new daeMetaAttribute; 78 ma->setName( "type" ); 79 ma->setType( dae.getAtomicTypes().get("xsNMTOKEN")); 80 ma->setOffset( daeOffsetOf( domParam , attrType )); 81 ma->setContainer( meta ); 82 ma->setIsRequired( true ); 83 84 meta->appendAttribute(ma); 85 } 86 87 meta->setElementSize(sizeof(domParam)); 88 meta->validate(); 89 90 return meta; 91 } 92 93 } // ColladaDOM150 94