00001 #ifndef __domFx_target_h__ 00002 #define __domFx_target_h__ 00003 00004 #include <dae/daeDocument.h> 00005 #include <dom/domTypes.h> 00006 #include <dom/domElements.h> 00007 00008 class DAE; 00009 00013 class domFx_target : public daeElement 00014 { 00015 public: 00016 virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FX_TARGET; } 00017 static daeInt ID() { return 185; } 00018 virtual daeInt typeID() const { return ID(); } 00019 public: 00020 class domBinary; 00021 00022 typedef daeSmartRef<domBinary> domBinaryRef; 00023 typedef daeTArray<domBinaryRef> domBinary_Array; 00024 00025 class domBinary : public daeElement 00026 { 00027 public: 00028 virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BINARY; } 00029 static daeInt ID() { return 186; } 00030 virtual daeInt typeID() const { return ID(); } 00031 public: 00032 class domRef; 00033 00034 typedef daeSmartRef<domRef> domRefRef; 00035 typedef daeTArray<domRefRef> domRef_Array; 00036 00037 class domRef : public daeElement 00038 { 00039 public: 00040 virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::REF; } 00041 static daeInt ID() { return 187; } 00042 virtual daeInt typeID() const { return ID(); } 00043 00044 00045 public: //Accessors and Mutators 00050 xsAnyURI &getValue() { return _value; } 00055 const xsAnyURI &getValue() const { return _value; } 00060 void setValue( const xsAnyURI &val ) { _value = val; } 00065 void setValue( xsString val ) { _value = val; } 00066 00067 protected: // Value 00071 xsAnyURI _value; 00072 protected: 00076 domRef(DAE& dae) : daeElement(dae), _value(dae, *this) {} 00080 virtual ~domRef() {} 00084 virtual domRef &operator=( const domRef &cpy ) { (void)cpy; return *this; } 00085 00086 public: // STATIC METHODS 00091 static DLLSPEC daeElementRef create(DAE& dae); 00097 static DLLSPEC daeMetaElement* registerElement(DAE& dae); 00098 }; 00099 00100 class domHex; 00101 00102 typedef daeSmartRef<domHex> domHexRef; 00103 typedef daeTArray<domHexRef> domHex_Array; 00104 00108 class domHex : public daeElement 00109 { 00110 public: 00111 virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::HEX; } 00112 static daeInt ID() { return 188; } 00113 virtual daeInt typeID() const { return ID(); } 00114 protected: // Attribute 00118 xsToken attrFormat; 00119 00120 00121 public: //Accessors and Mutators 00126 xsToken getFormat() const { return attrFormat; } 00131 void setFormat( xsToken atFormat ) { *(daeStringRef*)&attrFormat = atFormat; _validAttributeArray[0] = true; } 00132 00137 domList_of_hex_binary& getValue() { return _value; } 00142 void setValue( const domList_of_hex_binary& val ) { _value = val; } 00143 00144 protected: // Value 00148 domList_of_hex_binary _value; 00149 protected: 00153 domHex(DAE& dae) : daeElement(dae), attrFormat(), _value() {} 00157 virtual ~domHex() {} 00161 virtual domHex &operator=( const domHex &cpy ) { (void)cpy; return *this; } 00162 00163 public: // STATIC METHODS 00168 static DLLSPEC daeElementRef create(DAE& dae); 00174 static DLLSPEC daeMetaElement* registerElement(DAE& dae); 00175 }; 00176 00177 00178 00179 protected: // Elements 00180 domRefRef elemRef; 00184 domHexRef elemHex; 00188 daeElementRefArray _contents; 00192 daeUIntArray _contentsOrder; 00193 00197 daeTArray< daeCharArray * > _CMData; 00198 00199 00200 public: //Accessors and Mutators 00205 const domRefRef getRef() const { return elemRef; } 00210 const domHexRef getHex() const { return elemHex; } 00215 daeElementRefArray &getContents() { return _contents; } 00220 const daeElementRefArray &getContents() const { return _contents; } 00221 00222 protected: 00226 domBinary(DAE& dae) : daeElement(dae), elemRef(), elemHex() {} 00230 virtual ~domBinary() { daeElement::deleteCMDataArray(_CMData); } 00234 virtual domBinary &operator=( const domBinary &cpy ) { (void)cpy; return *this; } 00235 00236 public: // STATIC METHODS 00241 static DLLSPEC daeElementRef create(DAE& dae); 00247 static DLLSPEC daeMetaElement* registerElement(DAE& dae); 00248 }; 00249 00250 00251 protected: // Attributes 00255 xsString attrPlatform; 00260 xsString attrTarget; 00264 xsString attrOptions; 00265 00266 protected: // Element 00267 domBinaryRef elemBinary; 00268 00269 public: //Accessors and Mutators 00274 xsString getPlatform() const { return attrPlatform; } 00279 void setPlatform( xsString atPlatform ) { *(daeStringRef*)&attrPlatform = atPlatform;} 00280 00285 xsString getTarget() const { return attrTarget; } 00290 void setTarget( xsString atTarget ) { *(daeStringRef*)&attrTarget = atTarget;} 00291 00296 xsString getOptions() const { return attrOptions; } 00301 void setOptions( xsString atOptions ) { *(daeStringRef*)&attrOptions = atOptions;} 00302 00307 const domBinaryRef getBinary() const { return elemBinary; } 00308 protected: 00312 domFx_target(DAE& dae) : daeElement(dae), attrPlatform(), attrTarget(), attrOptions(), elemBinary() {} 00316 virtual ~domFx_target() {} 00320 virtual domFx_target &operator=( const domFx_target &cpy ) { (void)cpy; return *this; } 00321 00322 public: // STATIC METHODS 00327 static DLLSPEC daeElementRef create(DAE& dae); 00333 static DLLSPEC daeMetaElement* registerElement(DAE& dae); 00334 }; 00335 00336 00337 #endif