• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 __domGlsl_setparam_h__
10 #define __domGlsl_setparam_h__
11 
12 #include <dae/daeDocument.h>
13 #include <dom/domTypes.h>
14 #include <dom/domElements.h>
15 
16 #include <dom/domGlsl_param_type.h>
17 #include <dom/domFx_annotate_common.h>
18 #include <dom/domGlsl_setarray_type.h>
19 class DAE;
20 
21 class domGlsl_setparam_complexType
22 {
23 protected:  // Attributes
24 	domGlsl_identifier attrRef;
25 	xsNCName attrProgram;
26 
27 protected:  // Elements
28 	domFx_annotate_common_Array elemAnnotate_array;
29 	domGlsl_param_typeRef elemGlsl_param_type;
30 	domGlsl_setarray_typeRef elemArray;
31 	/**
32 	 * Used to preserve order in elements that do not specify strict sequencing of sub-elements.
33 	 */
34 	daeElementRefArray _contents;
35 	/**
36 	 * Used to preserve order in elements that have a complex content model.
37 	 */
38 	daeUIntArray       _contentsOrder;
39 
40 	/**
41 	 * Used to store information needed for some content model objects.
42 	 */
43 	daeTArray< daeCharArray * > _CMData;
44 
45 
46 public:	//Accessors and Mutators
47 	/**
48 	 * Gets the ref attribute.
49 	 * @return Returns a domGlsl_identifier of the ref attribute.
50 	 */
getRef()51 	domGlsl_identifier getRef() const { return attrRef; }
52 	/**
53 	 * Sets the ref attribute.
54 	 * @param atRef The new value for the ref attribute.
55 	 */
setRef(domGlsl_identifier atRef)56 	void setRef( domGlsl_identifier atRef ) { attrRef = atRef; }
57 
58 	/**
59 	 * Gets the program attribute.
60 	 * @return Returns a xsNCName of the program attribute.
61 	 */
getProgram()62 	xsNCName getProgram() const { return attrProgram; }
63 	/**
64 	 * Sets the program attribute.
65 	 * @param atProgram The new value for the program attribute.
66 	 */
setProgram(xsNCName atProgram)67 	void setProgram( xsNCName atProgram ) { *(daeStringRef*)&attrProgram = atProgram;}
68 
69 	/**
70 	 * Gets the annotate element array.
71 	 * @return Returns a reference to the array of annotate elements.
72 	 */
getAnnotate_array()73 	domFx_annotate_common_Array &getAnnotate_array() { return elemAnnotate_array; }
74 	/**
75 	 * Gets the annotate element array.
76 	 * @return Returns a constant reference to the array of annotate elements.
77 	 */
getAnnotate_array()78 	const domFx_annotate_common_Array &getAnnotate_array() const { return elemAnnotate_array; }
79 	/**
80 	 * Gets the glsl_param_type element.
81 	 * @return a daeSmartRef to the glsl_param_type element.
82 	 */
getGlsl_param_type()83 	const domGlsl_param_typeRef getGlsl_param_type() const { return elemGlsl_param_type; }
84 	/**
85 	 * Gets the array element.
86 	 * @return a daeSmartRef to the array element.
87 	 */
getArray()88 	const domGlsl_setarray_typeRef getArray() const { return elemArray; }
89 	/**
90 	 * Gets the _contents array.
91 	 * @return Returns a reference to the _contents element array.
92 	 */
getContents()93 	daeElementRefArray &getContents() { return _contents; }
94 	/**
95 	 * Gets the _contents array.
96 	 * @return Returns a constant reference to the _contents element array.
97 	 */
getContents()98 	const daeElementRefArray &getContents() const { return _contents; }
99 
100 protected:
101 	/**
102 	 * Constructor
103 	 */
domGlsl_setparam_complexType(DAE & dae,daeElement * elt)104 	domGlsl_setparam_complexType(DAE& dae, daeElement* elt) : attrRef(), attrProgram(), elemAnnotate_array(), elemGlsl_param_type(), elemArray() {}
105 	/**
106 	 * Destructor
107 	 */
~domGlsl_setparam_complexType()108 	virtual ~domGlsl_setparam_complexType() { daeElement::deleteCMDataArray(_CMData); }
109 	/**
110 	 * Overloaded assignment operator
111 	 */
112 	virtual domGlsl_setparam_complexType &operator=( const domGlsl_setparam_complexType &cpy ) { (void)cpy; return *this; }
113 };
114 
115 /**
116  * An element of type domGlsl_setparam_complexType.
117  */
118 class domGlsl_setparam : public daeElement, public domGlsl_setparam_complexType
119 {
120 public:
getElementType()121 	virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::GLSL_SETPARAM; }
ID()122 	static daeInt ID() { return 112; }
typeID()123 	virtual daeInt typeID() const { return ID(); }
124 
125 public:	//Accessors and Mutators
126 	/**
127 	 * Gets the ref attribute.
128 	 * @return Returns a domGlsl_identifier of the ref attribute.
129 	 */
getRef()130 	domGlsl_identifier getRef() const { return attrRef; }
131 	/**
132 	 * Sets the ref attribute.
133 	 * @param atRef The new value for the ref attribute.
134 	 */
setRef(domGlsl_identifier atRef)135 	void setRef( domGlsl_identifier atRef ) { attrRef = atRef; _validAttributeArray[0] = true; }
136 
137 	/**
138 	 * Gets the program attribute.
139 	 * @return Returns a xsNCName of the program attribute.
140 	 */
getProgram()141 	xsNCName getProgram() const { return attrProgram; }
142 	/**
143 	 * Sets the program attribute.
144 	 * @param atProgram The new value for the program attribute.
145 	 */
setProgram(xsNCName atProgram)146 	void setProgram( xsNCName atProgram ) { *(daeStringRef*)&attrProgram = atProgram; _validAttributeArray[1] = true; }
147 
148 protected:
149 	/**
150 	 * Constructor
151 	 */
domGlsl_setparam(DAE & dae)152 	domGlsl_setparam(DAE& dae) : daeElement(dae), domGlsl_setparam_complexType(dae, this) {}
153 	/**
154 	 * Destructor
155 	 */
~domGlsl_setparam()156 	virtual ~domGlsl_setparam() {}
157 	/**
158 	 * Overloaded assignment operator
159 	 */
160 	virtual domGlsl_setparam &operator=( const domGlsl_setparam &cpy ) { (void)cpy; return *this; }
161 
162 public: // STATIC METHODS
163 	/**
164 	 * Creates an instance of this class and returns a daeElementRef referencing it.
165 	 * @return a daeElementRef referencing an instance of this object.
166 	 */
167 	static DLLSPEC daeElementRef create(DAE& dae);
168 	/**
169 	 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
170 	 * If a daeMetaElement already exists it will return that instead of creating a new one.
171 	 * @return A daeMetaElement describing this COLLADA element.
172 	 */
173 	static DLLSPEC daeMetaElement* registerElement(DAE& dae);
174 };
175 
176 
177 #endif
178