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/domTapered_capsule.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 domTapered_capsule::create(DAE& dae) 21 { 22 domTapered_capsuleRef ref = new domTapered_capsule(dae); 23 return ref; 24 } 25 26 27 daeMetaElement * 28 domTapered_capsule::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( "tapered_capsule" ); 36 meta->registerClass(domTapered_capsule::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, 1, 1 ); 43 mea->setName( "height" ); 44 mea->setOffset( daeOffsetOf(domTapered_capsule,elemHeight) ); 45 mea->setElementType( domTapered_capsule::domHeight::registerElement(dae) ); 46 cm->appendChild( mea ); 47 48 mea = new daeMetaElementAttribute( meta, cm, 1, 1, 1 ); 49 mea->setName( "radius1" ); 50 mea->setOffset( daeOffsetOf(domTapered_capsule,elemRadius1) ); 51 mea->setElementType( domTapered_capsule::domRadius1::registerElement(dae) ); 52 cm->appendChild( mea ); 53 54 mea = new daeMetaElementAttribute( meta, cm, 2, 1, 1 ); 55 mea->setName( "radius2" ); 56 mea->setOffset( daeOffsetOf(domTapered_capsule,elemRadius2) ); 57 mea->setElementType( domTapered_capsule::domRadius2::registerElement(dae) ); 58 cm->appendChild( mea ); 59 60 mea = new daeMetaElementArrayAttribute( meta, cm, 3, 0, -1 ); 61 mea->setName( "extra" ); 62 mea->setOffset( daeOffsetOf(domTapered_capsule,elemExtra_array) ); 63 mea->setElementType( domExtra::registerElement(dae) ); 64 cm->appendChild( mea ); 65 66 cm->setMaxOrdinal( 3 ); 67 meta->setCMRoot( cm ); 68 69 meta->setElementSize(sizeof(domTapered_capsule)); 70 meta->validate(); 71 72 return meta; 73 } 74 75 daeElementRef 76 domTapered_capsule::domHeight::create(DAE& dae) 77 { 78 domTapered_capsule::domHeightRef ref = new domTapered_capsule::domHeight(dae); 79 return ref; 80 } 81 82 83 daeMetaElement * 84 domTapered_capsule::domHeight::registerElement(DAE& dae) 85 { 86 daeMetaElement* meta = dae.getMeta(ID()); 87 if ( meta != NULL ) return meta; 88 89 meta = new daeMetaElement(dae); 90 dae.setMeta(ID(), *meta); 91 meta->setName( "height" ); 92 meta->registerClass(domTapered_capsule::domHeight::create); 93 94 meta->setIsInnerClass( true ); 95 // Add attribute: _value 96 { 97 daeMetaAttribute *ma = new daeMetaAttribute; 98 ma->setName( "_value" ); 99 ma->setType( dae.getAtomicTypes().get("Float")); 100 ma->setOffset( daeOffsetOf( domTapered_capsule::domHeight , _value )); 101 ma->setContainer( meta ); 102 meta->appendAttribute(ma); 103 } 104 105 meta->setElementSize(sizeof(domTapered_capsule::domHeight)); 106 meta->validate(); 107 108 return meta; 109 } 110 111 daeElementRef 112 domTapered_capsule::domRadius1::create(DAE& dae) 113 { 114 domTapered_capsule::domRadius1Ref ref = new domTapered_capsule::domRadius1(dae); 115 return ref; 116 } 117 118 119 daeMetaElement * 120 domTapered_capsule::domRadius1::registerElement(DAE& dae) 121 { 122 daeMetaElement* meta = dae.getMeta(ID()); 123 if ( meta != NULL ) return meta; 124 125 meta = new daeMetaElement(dae); 126 dae.setMeta(ID(), *meta); 127 meta->setName( "radius1" ); 128 meta->registerClass(domTapered_capsule::domRadius1::create); 129 130 meta->setIsInnerClass( true ); 131 // Add attribute: _value 132 { 133 daeMetaAttribute *ma = new daeMetaArrayAttribute; 134 ma->setName( "_value" ); 135 ma->setType( dae.getAtomicTypes().get("Float2")); 136 ma->setOffset( daeOffsetOf( domTapered_capsule::domRadius1 , _value )); 137 ma->setContainer( meta ); 138 meta->appendAttribute(ma); 139 } 140 141 meta->setElementSize(sizeof(domTapered_capsule::domRadius1)); 142 meta->validate(); 143 144 return meta; 145 } 146 147 daeElementRef 148 domTapered_capsule::domRadius2::create(DAE& dae) 149 { 150 domTapered_capsule::domRadius2Ref ref = new domTapered_capsule::domRadius2(dae); 151 return ref; 152 } 153 154 155 daeMetaElement * 156 domTapered_capsule::domRadius2::registerElement(DAE& dae) 157 { 158 daeMetaElement* meta = dae.getMeta(ID()); 159 if ( meta != NULL ) return meta; 160 161 meta = new daeMetaElement(dae); 162 dae.setMeta(ID(), *meta); 163 meta->setName( "radius2" ); 164 meta->registerClass(domTapered_capsule::domRadius2::create); 165 166 meta->setIsInnerClass( true ); 167 // Add attribute: _value 168 { 169 daeMetaAttribute *ma = new daeMetaArrayAttribute; 170 ma->setName( "_value" ); 171 ma->setType( dae.getAtomicTypes().get("Float2")); 172 ma->setOffset( daeOffsetOf( domTapered_capsule::domRadius2 , _value )); 173 ma->setContainer( meta ); 174 meta->appendAttribute(ma); 175 } 176 177 meta->setElementSize(sizeof(domTapered_capsule::domRadius2)); 178 meta->validate(); 179 180 return meta; 181 } 182 183