diff options
author | Alex Sakhartchouk <alexst@google.com> | 2011-02-04 10:41:05 -0800 |
---|---|---|
committer | Alex Sakhartchouk <alexst@google.com> | 2011-02-04 10:41:05 -0800 |
commit | 87ac3e2db6d5ae163131102c066e9d19bdfdc139 (patch) | |
tree | 8bd1acdae6481671262b60318ce67a7ddb554c2a /src/1.4/dom/domSphere.cpp | |
parent | 36c504662cd1f55141297c216dc7646c7d62e76c (diff) | |
download | collada-87ac3e2db6d5ae163131102c066e9d19bdfdc139.tar.gz |
Collada Dom 1.4
Used by the geometry converter tool
Change-Id: Ifec30e54a5d041f82e9dfa293421e1c4335585fb
Diffstat (limited to 'src/1.4/dom/domSphere.cpp')
-rwxr-xr-x | src/1.4/dom/domSphere.cpp | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/src/1.4/dom/domSphere.cpp b/src/1.4/dom/domSphere.cpp new file mode 100755 index 0000000..053e807 --- /dev/null +++ b/src/1.4/dom/domSphere.cpp @@ -0,0 +1,98 @@ +/*
+* 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 <dom/domSphere.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> + +daeElementRef +domSphere::create(DAE& dae) +{ + domSphereRef ref = new domSphere(dae); + return ref; +} + + +daeMetaElement * +domSphere::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "sphere" ); + meta->registerClass(domSphere::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "radius" ); + mea->setOffset( daeOffsetOf(domSphere,elemRadius) ); + mea->setElementType( domSphere::domRadius::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 1, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domSphere,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 1 ); + meta->setCMRoot( cm ); + + meta->setElementSize(sizeof(domSphere)); + meta->validate(); + + return meta; +} + +daeElementRef +domSphere::domRadius::create(DAE& dae) +{ + domSphere::domRadiusRef ref = new domSphere::domRadius(dae); + return ref; +} + + +daeMetaElement * +domSphere::domRadius::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "radius" ); + meta->registerClass(domSphere::domRadius::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Float")); + ma->setOffset( daeOffsetOf( domSphere::domRadius , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domSphere::domRadius)); + meta->validate(); + + return meta; +} + |