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#ifndef __domCg_newparam_h__
1087ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk#define __domCg_newparam_h__
1187ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk
1287ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk#include <dae/daeDocument.h>
1387ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk#include <dom/domTypes.h>
1487ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk#include <dom/domElements.h>
1587ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk
1687ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk#include <dom/domCg_param_type.h>
1787ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk#include <dom/domFx_annotate_common.h>
1887ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk#include <dom/domCg_setuser_type.h>
1987ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk#include <dom/domCg_newarray_type.h>
2087ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchoukclass DAE;
2187ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk
2287ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk/**
2387ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk * Create a new, named param object in the CG Runtime, assign it a type, an
2487ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk * initial value, and additional attributes at declaration time.
2587ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk */
2687ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchoukclass domCg_newparam_complexType
2787ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk{
2887ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchoukpublic:
2987ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	class domSemantic;
3087ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk
3187ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	typedef daeSmartRef<domSemantic> domSemanticRef;
3287ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	typedef daeTArray<domSemanticRef> domSemantic_Array;
3387ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk
3487ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk/**
3587ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk * The semantic element allows you to specify a semantic for this new param.
3687ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk */
3787ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	class domSemantic : public daeElement
3887ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	{
3987ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	public:
4087ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::SEMANTIC; }
4187ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		static daeInt ID() { return 140; }
4287ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		virtual daeInt typeID() const { return ID(); }
4387ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk
4487ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	protected:  // Value
4587ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		/**
4687ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		 * The xsNCName value of the text data of this element.
4787ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		 */
4887ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		xsNCName _value;
4987ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk
5087ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	public:	//Accessors and Mutators
5187ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		/**
5287ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		 * Gets the value of this element.
5387ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		 * @return Returns a xsNCName of the value.
5487ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		 */
5587ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		xsNCName getValue() const { return _value; }
5687ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		/**
5787ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		 * Sets the _value of this element.
5887ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		 * @param val The new value for this element.
5987ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		 */
6087ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		void setValue( xsNCName val ) { *(daeStringRef*)&_value = val; }
6187ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk
6287ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	protected:
6387ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		/**
6487ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		 * Constructor
6587ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		 */
6687ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		domSemantic(DAE& dae) : daeElement(dae), _value() {}
6787ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		/**
6887ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		 * Destructor
6987ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		 */
7087ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		virtual ~domSemantic() {}
7187ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		/**
7287ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		 * Overloaded assignment operator
7387ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		 */
7487ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		virtual domSemantic &operator=( const domSemantic &cpy ) { (void)cpy; return *this; }
7587ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk
7687ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	public: // STATIC METHODS
7787ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		/**
7887ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		 * Creates an instance of this class and returns a daeElementRef referencing it.
7987ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		 * @return a daeElementRef referencing an instance of this object.
8087ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		 */
8187ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		static DLLSPEC daeElementRef create(DAE& dae);
8287ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		/**
8387ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
8487ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		 * If a daeMetaElement already exists it will return that instead of creating a new one.
8587ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		 * @return A daeMetaElement describing this COLLADA element.
8687ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		 */
8787ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
8887ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	};
8987ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk
9087ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	class domModifier;
9187ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk
9287ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	typedef daeSmartRef<domModifier> domModifierRef;
9387ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	typedef daeTArray<domModifierRef> domModifier_Array;
9487ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk
9587ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk/**
9687ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk * The modifier element allows you to specify a modifier for this new param.
9787ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk */
9887ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	class domModifier : public daeElement
9987ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	{
10087ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	public:
10187ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::MODIFIER; }
10287ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		static daeInt ID() { return 141; }
10387ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		virtual daeInt typeID() const { return ID(); }
10487ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk
10587ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	protected:  // Value
10687ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		/**
10787ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		 * The domFx_modifier_enum_common value of the text data of this element.
10887ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		 */
10987ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		domFx_modifier_enum_common _value;
11087ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk
11187ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	public:	//Accessors and Mutators
11287ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		/**
11387ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		 * Gets the value of this element.
11487ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		 * @return a domFx_modifier_enum_common of the value.
11587ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		 */
11687ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		domFx_modifier_enum_common getValue() const { return _value; }
11787ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		/**
11887ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		 * Sets the _value of this element.
11987ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		 * @param val The new value for this element.
12087ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		 */
12187ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		void setValue( domFx_modifier_enum_common val ) { _value = val; }
12287ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk
12387ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	protected:
12487ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		/**
12587ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		 * Constructor
12687ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		 */
12787ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		domModifier(DAE& dae) : daeElement(dae), _value() {}
12887ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		/**
12987ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		 * Destructor
13087ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		 */
13187ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		virtual ~domModifier() {}
13287ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		/**
13387ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		 * Overloaded assignment operator
13487ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		 */
13587ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		virtual domModifier &operator=( const domModifier &cpy ) { (void)cpy; return *this; }
13687ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk
13787ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	public: // STATIC METHODS
13887ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		/**
13987ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		 * Creates an instance of this class and returns a daeElementRef referencing it.
14087ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		 * @return a daeElementRef referencing an instance of this object.
14187ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		 */
14287ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		static DLLSPEC daeElementRef create(DAE& dae);
14387ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		/**
14487ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
14587ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		 * If a daeMetaElement already exists it will return that instead of creating a new one.
14687ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		 * @return A daeMetaElement describing this COLLADA element.
14787ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		 */
14887ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
14987ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	};
15087ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk
15187ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk
15287ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchoukprotected:  // Attribute
15387ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	domCg_identifier attrSid;
15487ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk
15587ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchoukprotected:  // Elements
15687ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk/**
15787ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk * The annotate element allows you to specify an annotation for this new param.
15887ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk * @see domAnnotate
15987ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk */
16087ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	domFx_annotate_common_Array elemAnnotate_array;
16187ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk/**
16287ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk * The semantic element allows you to specify a semantic for this new param.
16387ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk * @see domSemantic
16487ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk */
16587ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	domSemanticRef elemSemantic;
16687ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk/**
16787ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk * The modifier element allows you to specify a modifier for this new param.
16887ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk * @see domModifier
16987ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk */
17087ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	domModifierRef elemModifier;
17187ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	domCg_param_typeRef elemCg_param_type;
17287ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	domCg_setuser_typeRef elemUsertype;
17387ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	domCg_newarray_typeRef elemArray;
17487ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	/**
17587ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	 * Used to preserve order in elements that do not specify strict sequencing of sub-elements.
17687ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	 */
17787ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	daeElementRefArray _contents;
17887ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	/**
17987ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	 * Used to preserve order in elements that have a complex content model.
18087ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	 */
18187ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	daeUIntArray       _contentsOrder;
18287ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk
18387ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	/**
18487ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	 * Used to store information needed for some content model objects.
18587ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	 */
18687ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	daeTArray< daeCharArray * > _CMData;
18787ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk
18887ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk
18987ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchoukpublic:	//Accessors and Mutators
19087ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	/**
19187ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	 * Gets the sid attribute.
19287ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	 * @return Returns a domCg_identifier of the sid attribute.
19387ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	 */
19487ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	domCg_identifier getSid() const { return attrSid; }
19587ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	/**
19687ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	 * Sets the sid attribute.
19787ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	 * @param atSid The new value for the sid attribute.
19887ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	 */
19987ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	void setSid( domCg_identifier atSid ) { attrSid = atSid; }
20087ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk
20187ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	/**
20287ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	 * Gets the annotate element array.
20387ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	 * @return Returns a reference to the array of annotate elements.
20487ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	 */
20587ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	domFx_annotate_common_Array &getAnnotate_array() { return elemAnnotate_array; }
20687ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	/**
20787ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	 * Gets the annotate element array.
20887ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	 * @return Returns a constant reference to the array of annotate elements.
20987ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	 */
21087ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	const domFx_annotate_common_Array &getAnnotate_array() const { return elemAnnotate_array; }
21187ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	/**
21287ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	 * Gets the semantic element.
21387ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	 * @return a daeSmartRef to the semantic element.
21487ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	 */
21587ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	const domSemanticRef getSemantic() const { return elemSemantic; }
21687ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	/**
21787ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	 * Gets the modifier element.
21887ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	 * @return a daeSmartRef to the modifier element.
21987ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	 */
22087ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	const domModifierRef getModifier() const { return elemModifier; }
22187ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	/**
22287ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	 * Gets the cg_param_type element.
22387ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	 * @return a daeSmartRef to the cg_param_type element.
22487ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	 */
22587ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	const domCg_param_typeRef getCg_param_type() const { return elemCg_param_type; }
22687ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	/**
22787ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	 * Gets the usertype element.
22887ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	 * @return a daeSmartRef to the usertype element.
22987ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	 */
23087ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	const domCg_setuser_typeRef getUsertype() const { return elemUsertype; }
23187ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	/**
23287ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	 * Gets the array element.
23387ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	 * @return a daeSmartRef to the array element.
23487ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	 */
23587ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	const domCg_newarray_typeRef getArray() const { return elemArray; }
23687ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	/**
23787ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	 * Gets the _contents array.
23887ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	 * @return Returns a reference to the _contents element array.
23987ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	 */
24087ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	daeElementRefArray &getContents() { return _contents; }
24187ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	/**
24287ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	 * Gets the _contents array.
24387ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	 * @return Returns a constant reference to the _contents element array.
24487ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	 */
24587ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	const daeElementRefArray &getContents() const { return _contents; }
24687ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk
24787ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchoukprotected:
24887ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	/**
24987ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	 * Constructor
25087ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	 */
25187ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	domCg_newparam_complexType(DAE& dae, daeElement* elt) : attrSid(), elemAnnotate_array(), elemSemantic(), elemModifier(), elemCg_param_type(), elemUsertype(), elemArray() {}
25287ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	/**
25387ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	 * Destructor
25487ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	 */
25587ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	virtual ~domCg_newparam_complexType() { daeElement::deleteCMDataArray(_CMData); }
25687ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	/**
25787ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	 * Overloaded assignment operator
25887ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	 */
25987ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	virtual domCg_newparam_complexType &operator=( const domCg_newparam_complexType &cpy ) { (void)cpy; return *this; }
26087ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk};
26187ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk
26287ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk/**
26387ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk * An element of type domCg_newparam_complexType.
26487ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk */
26587ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchoukclass domCg_newparam : public daeElement, public domCg_newparam_complexType
26687ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk{
26787ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchoukpublic:
26887ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::CG_NEWPARAM; }
26987ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	static daeInt ID() { return 142; }
27087ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	virtual daeInt typeID() const { return ID(); }
27187ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk
27287ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchoukpublic:	//Accessors and Mutators
27387ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	/**
27487ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	 * Gets the sid attribute.
27587ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	 * @return Returns a domCg_identifier of the sid attribute.
27687ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	 */
27787ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	domCg_identifier getSid() const { return attrSid; }
27887ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	/**
27987ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	 * Sets the sid attribute.
28087ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	 * @param atSid The new value for the sid attribute.
28187ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	 */
28287ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	void setSid( domCg_identifier atSid ) { attrSid = atSid; _validAttributeArray[0] = true; }
28387ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk
28487ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchoukprotected:
28587ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	/**
28687ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	 * Constructor
28787ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	 */
28887ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	domCg_newparam(DAE& dae) : daeElement(dae), domCg_newparam_complexType(dae, this) {}
28987ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	/**
29087ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	 * Destructor
29187ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	 */
29287ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	virtual ~domCg_newparam() {}
29387ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	/**
29487ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	 * Overloaded assignment operator
29587ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	 */
29687ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	virtual domCg_newparam &operator=( const domCg_newparam &cpy ) { (void)cpy; return *this; }
29787ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk
29887ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchoukpublic: // STATIC METHODS
29987ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	/**
30087ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	 * Creates an instance of this class and returns a daeElementRef referencing it.
30187ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	 * @return a daeElementRef referencing an instance of this object.
30287ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	 */
30387ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	static DLLSPEC daeElementRef create(DAE& dae);
30487ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	/**
30587ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
30687ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	 * If a daeMetaElement already exists it will return that instead of creating a new one.
30787ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	 * @return A daeMetaElement describing this COLLADA element.
30887ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	 */
30987ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk	static DLLSPEC daeMetaElement* registerElement(DAE& dae);
31087ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk};
31187ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk
31287ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk
31387ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk#endif
314