Home | History | Annotate | Download | only in dom
      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