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#ifndef __domFx_annotate_common_h__
10#define __domFx_annotate_common_h__
11
12#include <dae/daeDocument.h>
13#include <dom/domTypes.h>
14#include <dom/domElements.h>
15
16#include <dom/domFx_annotate_type_common.h>
17class DAE;
18
19class domFx_annotate_common_complexType
20{
21protected:  // Attribute
22	xsNCName attrName;
23
24protected:  // Element
25	domFx_annotate_type_commonRef elemFx_annotate_type_common;
26
27public:	//Accessors and Mutators
28	/**
29	 * Gets the name attribute.
30	 * @return Returns a xsNCName of the name attribute.
31	 */
32	xsNCName getName() const { return attrName; }
33	/**
34	 * Sets the name attribute.
35	 * @param atName The new value for the name attribute.
36	 */
37	void setName( xsNCName atName ) { *(daeStringRef*)&attrName = atName;}
38
39	/**
40	 * Gets the fx_annotate_type_common element.
41	 * @return a daeSmartRef to the fx_annotate_type_common element.
42	 */
43	const domFx_annotate_type_commonRef getFx_annotate_type_common() const { return elemFx_annotate_type_common; }
44protected:
45	/**
46	 * Constructor
47	 */
48	domFx_annotate_common_complexType(DAE& dae, daeElement* elt) : attrName(), elemFx_annotate_type_common() {}
49	/**
50	 * Destructor
51	 */
52	virtual ~domFx_annotate_common_complexType() {}
53	/**
54	 * Overloaded assignment operator
55	 */
56	virtual domFx_annotate_common_complexType &operator=( const domFx_annotate_common_complexType &cpy ) { (void)cpy; return *this; }
57};
58
59/**
60 * An element of type domFx_annotate_common_complexType.
61 */
62class domFx_annotate_common : public daeElement, public domFx_annotate_common_complexType
63{
64public:
65	virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FX_ANNOTATE_COMMON; }
66	static daeInt ID() { return 91; }
67	virtual daeInt typeID() const { return ID(); }
68
69public:	//Accessors and Mutators
70	/**
71	 * Gets the name attribute.
72	 * @return Returns a xsNCName of the name attribute.
73	 */
74	xsNCName getName() const { return attrName; }
75	/**
76	 * Sets the name attribute.
77	 * @param atName The new value for the name attribute.
78	 */
79	void setName( xsNCName atName ) { *(daeStringRef*)&attrName = atName; _validAttributeArray[0] = true; }
80
81protected:
82	/**
83	 * Constructor
84	 */
85	domFx_annotate_common(DAE& dae) : daeElement(dae), domFx_annotate_common_complexType(dae, this) {}
86	/**
87	 * Destructor
88	 */
89	virtual ~domFx_annotate_common() {}
90	/**
91	 * Overloaded assignment operator
92	 */
93	virtual domFx_annotate_common &operator=( const domFx_annotate_common &cpy ) { (void)cpy; return *this; }
94
95public: // STATIC METHODS
96	/**
97	 * Creates an instance of this class and returns a daeElementRef referencing it.
98	 * @return a daeElementRef referencing an instance of this object.
99	 */
100	static DLLSPEC daeElementRef create(DAE& dae);
101	/**
102	 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
103	 * If a daeMetaElement already exists it will return that instead of creating a new one.
104	 * @return A daeMetaElement describing this COLLADA element.
105	 */
106	static DLLSPEC daeMetaElement* registerElement(DAE& dae);
107};
108
109
110#endif
111