187ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk/*
287ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk* Copyright 2006 Sony Computer Entertainment Inc.
387ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk*
487ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk* Licensed under the MIT Open Source License, for details please see license.txt or the website
587ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk* http://www.opensource.org/licenses/mit-license.php
687ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk*
787ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk*/
887ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk
987ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk#include <dae.h>
1087ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk#include <dae/daeDom.h>
1187ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk#include <dom/domInstance_material.h>
1287ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk#include <dae/daeMetaCMPolicy.h>
1387ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk#include <dae/daeMetaSequence.h>
1487ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk#include <dae/daeMetaChoice.h>
1587ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk#include <dae/daeMetaGroup.h>
1687ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk#include <dae/daeMetaAny.h>
1787ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk#include <dae/daeMetaElementAttribute.h>
1887ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk
1987ac3e2db6d5ae163131102c066e9d19bdfdc139Alex SakhartchoukdaeElementRef
2087ac3e2db6d5ae163131102c066e9d19bdfdc139Alex SakhartchoukdomInstance_material::create(DAE& dae)
2187ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk{
2287ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	domInstance_materialRef ref = new domInstance_material(dae);
2387ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	return ref;
2487ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk}
2587ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk
2687ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk
2787ac3e2db6d5ae163131102c066e9d19bdfdc139Alex SakhartchoukdaeMetaElement *
2887ac3e2db6d5ae163131102c066e9d19bdfdc139Alex SakhartchoukdomInstance_material::registerElement(DAE& dae)
2987ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk{
3087ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	daeMetaElement* meta = dae.getMeta(ID());
3187ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	if ( meta != NULL ) return meta;
3287ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk
3387ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	meta = new daeMetaElement(dae);
3487ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	dae.setMeta(ID(), *meta);
3587ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	meta->setName( "instance_material" );
3687ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	meta->registerClass(domInstance_material::create);
3787ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk
3887ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	daeMetaCMPolicy *cm = NULL;
3987ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	daeMetaElementAttribute *mea = NULL;
4087ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	cm = new daeMetaSequence( meta, cm, 0, 1, 1 );
4187ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk
4287ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	mea = new daeMetaElementArrayAttribute( meta, cm, 0, 0, -1 );
4387ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	mea->setName( "bind" );
4487ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	mea->setOffset( daeOffsetOf(domInstance_material,elemBind_array) );
4587ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	mea->setElementType( domInstance_material::domBind::registerElement(dae) );
4687ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	cm->appendChild( mea );
4787ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk
4887ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	mea = new daeMetaElementArrayAttribute( meta, cm, 1, 0, -1 );
4987ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	mea->setName( "bind_vertex_input" );
5087ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	mea->setOffset( daeOffsetOf(domInstance_material,elemBind_vertex_input_array) );
5187ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	mea->setElementType( domInstance_material::domBind_vertex_input::registerElement(dae) );
5287ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	cm->appendChild( mea );
5387ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk
5487ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	mea = new daeMetaElementArrayAttribute( meta, cm, 2, 0, -1 );
5587ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	mea->setName( "extra" );
5687ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	mea->setOffset( daeOffsetOf(domInstance_material,elemExtra_array) );
5787ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	mea->setElementType( domExtra::registerElement(dae) );
5887ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	cm->appendChild( mea );
5987ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk
6087ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	cm->setMaxOrdinal( 2 );
6187ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	meta->setCMRoot( cm );
6287ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk
6387ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	//	Add attribute: symbol
6487ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	{
6587ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		daeMetaAttribute *ma = new daeMetaAttribute;
6687ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		ma->setName( "symbol" );
6787ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		ma->setType( dae.getAtomicTypes().get("xsNCName"));
6887ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		ma->setOffset( daeOffsetOf( domInstance_material , attrSymbol ));
6987ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		ma->setContainer( meta );
7087ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		ma->setIsRequired( true );
7187ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk
7287ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		meta->appendAttribute(ma);
7387ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	}
7487ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk
7587ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	//	Add attribute: target
7687ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	{
7787ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		daeMetaAttribute *ma = new daeMetaAttribute;
7887ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		ma->setName( "target" );
7987ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		ma->setType( dae.getAtomicTypes().get("xsAnyURI"));
8087ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		ma->setOffset( daeOffsetOf( domInstance_material , attrTarget ));
8187ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		ma->setContainer( meta );
8287ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		ma->setIsRequired( true );
8387ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk
8487ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		meta->appendAttribute(ma);
8587ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	}
8687ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk
8787ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	//	Add attribute: sid
8887ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	{
8987ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		daeMetaAttribute *ma = new daeMetaAttribute;
9087ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		ma->setName( "sid" );
9187ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		ma->setType( dae.getAtomicTypes().get("xsNCName"));
9287ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		ma->setOffset( daeOffsetOf( domInstance_material , attrSid ));
9387ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		ma->setContainer( meta );
9487ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk
9587ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		meta->appendAttribute(ma);
9687ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	}
9787ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk
9887ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	//	Add attribute: name
9987ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	{
10087ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		daeMetaAttribute *ma = new daeMetaAttribute;
10187ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		ma->setName( "name" );
10287ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		ma->setType( dae.getAtomicTypes().get("xsNCName"));
10387ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		ma->setOffset( daeOffsetOf( domInstance_material , attrName ));
10487ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		ma->setContainer( meta );
10587ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk
10687ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		meta->appendAttribute(ma);
10787ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	}
10887ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk
10987ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	meta->setElementSize(sizeof(domInstance_material));
11087ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	meta->validate();
11187ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk
11287ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	return meta;
11387ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk}
11487ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk
11587ac3e2db6d5ae163131102c066e9d19bdfdc139Alex SakhartchoukdaeElementRef
11687ac3e2db6d5ae163131102c066e9d19bdfdc139Alex SakhartchoukdomInstance_material::domBind::create(DAE& dae)
11787ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk{
11887ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	domInstance_material::domBindRef ref = new domInstance_material::domBind(dae);
11987ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	return ref;
12087ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk}
12187ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk
12287ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk
12387ac3e2db6d5ae163131102c066e9d19bdfdc139Alex SakhartchoukdaeMetaElement *
12487ac3e2db6d5ae163131102c066e9d19bdfdc139Alex SakhartchoukdomInstance_material::domBind::registerElement(DAE& dae)
12587ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk{
12687ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	daeMetaElement* meta = dae.getMeta(ID());
12787ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	if ( meta != NULL ) return meta;
12887ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk
12987ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	meta = new daeMetaElement(dae);
13087ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	dae.setMeta(ID(), *meta);
13187ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	meta->setName( "bind" );
13287ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	meta->registerClass(domInstance_material::domBind::create);
13387ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk
13487ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	meta->setIsInnerClass( true );
13587ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk
13687ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	//	Add attribute: semantic
13787ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	{
13887ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		daeMetaAttribute *ma = new daeMetaAttribute;
13987ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		ma->setName( "semantic" );
14087ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		ma->setType( dae.getAtomicTypes().get("xsNCName"));
14187ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		ma->setOffset( daeOffsetOf( domInstance_material::domBind , attrSemantic ));
14287ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		ma->setContainer( meta );
14387ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		ma->setIsRequired( true );
14487ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk
14587ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		meta->appendAttribute(ma);
14687ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	}
14787ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk
14887ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	//	Add attribute: target
14987ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	{
15087ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		daeMetaAttribute *ma = new daeMetaAttribute;
15187ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		ma->setName( "target" );
15287ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		ma->setType( dae.getAtomicTypes().get("xsToken"));
15387ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		ma->setOffset( daeOffsetOf( domInstance_material::domBind , attrTarget ));
15487ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		ma->setContainer( meta );
15587ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		ma->setIsRequired( true );
15687ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk
15787ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		meta->appendAttribute(ma);
15887ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	}
15987ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk
16087ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	meta->setElementSize(sizeof(domInstance_material::domBind));
16187ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	meta->validate();
16287ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk
16387ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	return meta;
16487ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk}
16587ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk
16687ac3e2db6d5ae163131102c066e9d19bdfdc139Alex SakhartchoukdaeElementRef
16787ac3e2db6d5ae163131102c066e9d19bdfdc139Alex SakhartchoukdomInstance_material::domBind_vertex_input::create(DAE& dae)
16887ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk{
16987ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	domInstance_material::domBind_vertex_inputRef ref = new domInstance_material::domBind_vertex_input(dae);
17087ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	return ref;
17187ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk}
17287ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk
17387ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk
17487ac3e2db6d5ae163131102c066e9d19bdfdc139Alex SakhartchoukdaeMetaElement *
17587ac3e2db6d5ae163131102c066e9d19bdfdc139Alex SakhartchoukdomInstance_material::domBind_vertex_input::registerElement(DAE& dae)
17687ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk{
17787ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	daeMetaElement* meta = dae.getMeta(ID());
17887ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	if ( meta != NULL ) return meta;
17987ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk
18087ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	meta = new daeMetaElement(dae);
18187ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	dae.setMeta(ID(), *meta);
18287ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	meta->setName( "bind_vertex_input" );
18387ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	meta->registerClass(domInstance_material::domBind_vertex_input::create);
18487ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk
18587ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	meta->setIsInnerClass( true );
18687ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk
18787ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	//	Add attribute: semantic
18887ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	{
18987ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		daeMetaAttribute *ma = new daeMetaAttribute;
19087ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		ma->setName( "semantic" );
19187ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		ma->setType( dae.getAtomicTypes().get("xsNCName"));
19287ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		ma->setOffset( daeOffsetOf( domInstance_material::domBind_vertex_input , attrSemantic ));
19387ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		ma->setContainer( meta );
19487ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		ma->setIsRequired( true );
19587ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk
19687ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		meta->appendAttribute(ma);
19787ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	}
19887ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk
19987ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	//	Add attribute: input_semantic
20087ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	{
20187ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		daeMetaAttribute *ma = new daeMetaAttribute;
20287ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		ma->setName( "input_semantic" );
20387ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		ma->setType( dae.getAtomicTypes().get("xsNCName"));
20487ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		ma->setOffset( daeOffsetOf( domInstance_material::domBind_vertex_input , attrInput_semantic ));
20587ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		ma->setContainer( meta );
20687ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		ma->setIsRequired( true );
20787ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk
20887ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		meta->appendAttribute(ma);
20987ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	}
21087ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk
21187ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	//	Add attribute: input_set
21287ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	{
21387ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		daeMetaAttribute *ma = new daeMetaAttribute;
21487ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		ma->setName( "input_set" );
21587ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		ma->setType( dae.getAtomicTypes().get("Uint"));
21687ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		ma->setOffset( daeOffsetOf( domInstance_material::domBind_vertex_input , attrInput_set ));
21787ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		ma->setContainer( meta );
21887ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk
21987ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		meta->appendAttribute(ma);
22087ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	}
22187ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk
22287ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	meta->setElementSize(sizeof(domInstance_material::domBind_vertex_input));
22387ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	meta->validate();
22487ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk
22587ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	return meta;
22687ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk}
22787ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk
228