diff options
Diffstat (limited to '1.4.0/dom/src/1.4/dom/domPhysics_material.cpp')
-rw-r--r-- | 1.4.0/dom/src/1.4/dom/domPhysics_material.cpp | 150 |
1 files changed, 150 insertions, 0 deletions
diff --git a/1.4.0/dom/src/1.4/dom/domPhysics_material.cpp b/1.4.0/dom/src/1.4/dom/domPhysics_material.cpp new file mode 100644 index 0000000..cfd572d --- /dev/null +++ b/1.4.0/dom/src/1.4/dom/domPhysics_material.cpp @@ -0,0 +1,150 @@ +/* +* Copyright 2006 Sony Computer Entertainment Inc. +* +* Licensed under the MIT Open Source License, for details please see license.txt or the website +* http://www.opensource.org/licenses/mit-license.php +* +*/ + +#include <dae.h> +#include <dae/daeDom.h> +#include <1.4/dom/domPhysics_material.h> +#include <dae/daeMetaCMPolicy.h> +#include <dae/daeMetaSequence.h> +#include <dae/daeMetaChoice.h> +#include <dae/daeMetaGroup.h> +#include <dae/daeMetaAny.h> +#include <dae/daeMetaElementAttribute.h> + + +namespace ColladaDOM141 { +daeElementRef +domPhysics_material::create(DAE& dae) +{ + domPhysics_materialRef ref = new domPhysics_material(dae); + return ref; +} + + +daeMetaElement * +domPhysics_material::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "physics_material" ); + meta->registerClass(domPhysics_material::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 0, 1 ); + mea->setName( "asset" ); + mea->setOffset( daeOffsetOf(domPhysics_material,elemAsset) ); + mea->setElementType( domAsset::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 1, 1 ); + mea->setName( "technique_common" ); + mea->setOffset( daeOffsetOf(domPhysics_material,elemTechnique_common) ); + mea->setElementType( domPhysics_material::domTechnique_common::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 2, 0, -1 ); + mea->setName( "technique" ); + mea->setOffset( daeOffsetOf(domPhysics_material,elemTechnique_array) ); + mea->setElementType( domTechnique::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 3, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domPhysics_material,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 3 ); + meta->setCMRoot( cm ); + + // Add attribute: id + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "id" ); + ma->setType( dae.getAtomicTypes().get("xsID")); + ma->setOffset( daeOffsetOf( domPhysics_material , attrId )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: name + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "name" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domPhysics_material , attrName )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domPhysics_material)); + meta->validate(); + + return meta; +} + +daeElementRef +domPhysics_material::domTechnique_common::create(DAE& dae) +{ + domPhysics_material::domTechnique_commonRef ref = new domPhysics_material::domTechnique_common(dae); + return ref; +} + + +daeMetaElement * +domPhysics_material::domTechnique_common::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "technique_common" ); + meta->registerClass(domPhysics_material::domTechnique_common::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 0, 1 ); + mea->setName( "dynamic_friction" ); + mea->setOffset( daeOffsetOf(domPhysics_material::domTechnique_common,elemDynamic_friction) ); + mea->setElementType( domTargetableFloat::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 0, 1 ); + mea->setName( "restitution" ); + mea->setOffset( daeOffsetOf(domPhysics_material::domTechnique_common,elemRestitution) ); + mea->setElementType( domTargetableFloat::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 2, 0, 1 ); + mea->setName( "static_friction" ); + mea->setOffset( daeOffsetOf(domPhysics_material::domTechnique_common,elemStatic_friction) ); + mea->setElementType( domTargetableFloat::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 2 ); + meta->setCMRoot( cm ); + + meta->setElementSize(sizeof(domPhysics_material::domTechnique_common)); + meta->validate(); + + return meta; +} + +} // ColladaDOM141 |