• 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 __domFx_include_common_h__
10 #define __domFx_include_common_h__
11 
12 #include <dae/daeDocument.h>
13 #include <dom/domTypes.h>
14 #include <dom/domElements.h>
15 
16 class DAE;
17 
18 /**
19  * The include element is used to import source code or precompiled binary
20  * shaders into the FX Runtime by referencing an external resource.
21  */
22 class domFx_include_common_complexType
23 {
24 protected:  // Attributes
25 /**
26  *  The sid attribute is a text string value containing the sub-identifier
27  * of this element.  This value must be unique within the scope of the parent
28  * element. Optional attribute.
29  */
30 	xsNCName attrSid;
31 /**
32  *  The url attribute refers to resource.  This may refer to a local resource
33  * using a relative URL  fragment identifier that begins with the “#”
34  * character. The url attribute may refer to an external  resource using an
35  * absolute or relative URL.
36  */
37 	xsAnyURI attrUrl;
38 
39 
40 public:	//Accessors and Mutators
41 	/**
42 	 * Gets the sid attribute.
43 	 * @return Returns a xsNCName of the sid attribute.
44 	 */
getSid()45 	xsNCName getSid() const { return attrSid; }
46 	/**
47 	 * Sets the sid attribute.
48 	 * @param atSid The new value for the sid attribute.
49 	 */
setSid(xsNCName atSid)50 	void setSid( xsNCName atSid ) { *(daeStringRef*)&attrSid = atSid;}
51 
52 	/**
53 	 * Gets the url attribute.
54 	 * @return Returns a xsAnyURI reference of the url attribute.
55 	 */
getUrl()56 	xsAnyURI &getUrl() { return attrUrl; }
57 	/**
58 	 * Gets the url attribute.
59 	 * @return Returns a constant xsAnyURI reference of the url attribute.
60 	 */
getUrl()61 	const xsAnyURI &getUrl() const { return attrUrl; }
62 	/**
63 	 * Sets the url attribute.
64 	 * @param atUrl The new value for the url attribute.
65 	 */
setUrl(const xsAnyURI & atUrl)66 	void setUrl( const xsAnyURI &atUrl ) { attrUrl = atUrl; }
67 	/**
68 	 * Sets the url attribute.
69 	 * @param atUrl The new value for the url attribute.
70 	 */
setUrl(xsString atUrl)71 	void setUrl( xsString atUrl ) { attrUrl = atUrl; }
72 
73 protected:
74 	/**
75 	 * Constructor
76 	 */
domFx_include_common_complexType(DAE & dae,daeElement * elt)77 	domFx_include_common_complexType(DAE& dae, daeElement* elt) : attrSid(), attrUrl(dae, *elt) {}
78 	/**
79 	 * Destructor
80 	 */
~domFx_include_common_complexType()81 	virtual ~domFx_include_common_complexType() {}
82 	/**
83 	 * Overloaded assignment operator
84 	 */
85 	virtual domFx_include_common_complexType &operator=( const domFx_include_common_complexType &cpy ) { (void)cpy; return *this; }
86 };
87 
88 /**
89  * An element of type domFx_include_common_complexType.
90  */
91 class domFx_include_common : public daeElement, public domFx_include_common_complexType
92 {
93 public:
getElementType()94 	virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FX_INCLUDE_COMMON; }
ID()95 	static daeInt ID() { return 92; }
typeID()96 	virtual daeInt typeID() const { return ID(); }
97 
98 public:	//Accessors and Mutators
99 	/**
100 	 * Gets the sid attribute.
101 	 * @return Returns a xsNCName of the sid attribute.
102 	 */
getSid()103 	xsNCName getSid() const { return attrSid; }
104 	/**
105 	 * Sets the sid attribute.
106 	 * @param atSid The new value for the sid attribute.
107 	 */
setSid(xsNCName atSid)108 	void setSid( xsNCName atSid ) { *(daeStringRef*)&attrSid = atSid; _validAttributeArray[0] = true; }
109 
110 	/**
111 	 * Gets the url attribute.
112 	 * @return Returns a xsAnyURI reference of the url attribute.
113 	 */
getUrl()114 	xsAnyURI &getUrl() { return attrUrl; }
115 	/**
116 	 * Gets the url attribute.
117 	 * @return Returns a constant xsAnyURI reference of the url attribute.
118 	 */
getUrl()119 	const xsAnyURI &getUrl() const { return attrUrl; }
120 	/**
121 	 * Sets the url attribute.
122 	 * @param atUrl The new value for the url attribute.
123 	 */
setUrl(const xsAnyURI & atUrl)124 	void setUrl( const xsAnyURI &atUrl ) { attrUrl = atUrl; _validAttributeArray[1] = true; }
125 	/**
126 	 * Sets the url attribute.
127 	 * @param atUrl The new value for the url attribute.
128 	 */
setUrl(xsString atUrl)129 	void setUrl( xsString atUrl ) { attrUrl = atUrl; _validAttributeArray[1] = true; }
130 
131 protected:
132 	/**
133 	 * Constructor
134 	 */
domFx_include_common(DAE & dae)135 	domFx_include_common(DAE& dae) : daeElement(dae), domFx_include_common_complexType(dae, this) {}
136 	/**
137 	 * Destructor
138 	 */
~domFx_include_common()139 	virtual ~domFx_include_common() {}
140 	/**
141 	 * Overloaded assignment operator
142 	 */
143 	virtual domFx_include_common &operator=( const domFx_include_common &cpy ) { (void)cpy; return *this; }
144 
145 public: // STATIC METHODS
146 	/**
147 	 * Creates an instance of this class and returns a daeElementRef referencing it.
148 	 * @return a daeElementRef referencing an instance of this object.
149 	 */
150 	static DLLSPEC daeElementRef create(DAE& dae);
151 	/**
152 	 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
153 	 * If a daeMetaElement already exists it will return that instead of creating a new one.
154 	 * @return A daeMetaElement describing this COLLADA element.
155 	 */
156 	static DLLSPEC daeMetaElement* registerElement(DAE& dae);
157 };
158 
159 
160 #endif
161