00001 /* 00002 * Copyright 2006 Sony Computer Entertainment Inc. 00003 * 00004 * Licensed under the MIT Open Source License, for details please see license.txt or the website 00005 * http://www.opensource.org/licenses/mit-license.php 00006 * 00007 */ 00008 00009 #ifndef __domFx_surface_init_volume_common_h__ 00010 #define __domFx_surface_init_volume_common_h__ 00011 00012 #include <dae/daeDocument.h> 00013 #include <dom/domTypes.h> 00014 #include <dom/domElements.h> 00015 00016 class DAE; 00017 00018 class domFx_surface_init_volume_common_complexType 00019 { 00020 public: 00021 class domAll; 00022 00023 typedef daeSmartRef<domAll> domAllRef; 00024 typedef daeTArray<domAllRef> domAll_Array; 00025 00029 class domAll : public daeElement 00030 { 00031 public: 00032 virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::ALL; } 00033 static daeInt ID() { return 13; } 00034 virtual daeInt typeID() const { return ID(); } 00035 protected: // Attribute 00036 xsIDREF attrRef; 00037 00038 00039 public: //Accessors and Mutators 00044 xsIDREF &getRef() { return attrRef; } 00049 const xsIDREF &getRef() const{ return attrRef; } 00054 void setRef( const xsIDREF &atRef ) { attrRef = atRef; _validAttributeArray[0] = true; } 00055 00056 protected: 00060 domAll(DAE& dae) : daeElement(dae), attrRef(*this) {} 00064 virtual ~domAll() {} 00068 virtual domAll &operator=( const domAll &cpy ) { (void)cpy; return *this; } 00069 00070 public: // STATIC METHODS 00075 static DLLSPEC daeElementRef create(DAE& dae); 00081 static DLLSPEC daeMetaElement* registerElement(DAE& dae); 00082 }; 00083 00084 class domPrimary; 00085 00086 typedef daeSmartRef<domPrimary> domPrimaryRef; 00087 typedef daeTArray<domPrimaryRef> domPrimary_Array; 00088 00093 class domPrimary : public daeElement 00094 { 00095 public: 00096 virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::PRIMARY; } 00097 static daeInt ID() { return 14; } 00098 virtual daeInt typeID() const { return ID(); } 00099 protected: // Attribute 00100 xsIDREF attrRef; 00101 00102 00103 public: //Accessors and Mutators 00108 xsIDREF &getRef() { return attrRef; } 00113 const xsIDREF &getRef() const{ return attrRef; } 00118 void setRef( const xsIDREF &atRef ) { attrRef = atRef; _validAttributeArray[0] = true; } 00119 00120 protected: 00124 domPrimary(DAE& dae) : daeElement(dae), attrRef(*this) {} 00128 virtual ~domPrimary() {} 00132 virtual domPrimary &operator=( const domPrimary &cpy ) { (void)cpy; return *this; } 00133 00134 public: // STATIC METHODS 00139 static DLLSPEC daeElementRef create(DAE& dae); 00145 static DLLSPEC daeMetaElement* registerElement(DAE& dae); 00146 }; 00147 00148 00149 00150 protected: // Elements 00154 domAllRef elemAll; 00160 domPrimaryRef elemPrimary; 00164 daeElementRefArray _contents; 00168 daeUIntArray _contentsOrder; 00169 00173 daeTArray< daeCharArray * > _CMData; 00174 00175 00176 public: //Accessors and Mutators 00181 const domAllRef getAll() const { return elemAll; } 00186 const domPrimaryRef getPrimary() const { return elemPrimary; } 00191 daeElementRefArray &getContents() { return _contents; } 00196 const daeElementRefArray &getContents() const { return _contents; } 00197 00198 protected: 00202 domFx_surface_init_volume_common_complexType(DAE& dae, daeElement* elt) : elemAll(), elemPrimary() {} 00206 virtual ~domFx_surface_init_volume_common_complexType() { daeElement::deleteCMDataArray(_CMData); } 00210 virtual domFx_surface_init_volume_common_complexType &operator=( const domFx_surface_init_volume_common_complexType &cpy ) { (void)cpy; return *this; } 00211 }; 00212 00216 class domFx_surface_init_volume_common : public daeElement, public domFx_surface_init_volume_common_complexType 00217 { 00218 public: 00219 virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FX_SURFACE_INIT_VOLUME_COMMON; } 00220 static daeInt ID() { return 15; } 00221 virtual daeInt typeID() const { return ID(); } 00222 protected: 00226 domFx_surface_init_volume_common(DAE& dae) : daeElement(dae), domFx_surface_init_volume_common_complexType(dae, this) {} 00230 virtual ~domFx_surface_init_volume_common() {} 00234 virtual domFx_surface_init_volume_common &operator=( const domFx_surface_init_volume_common &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 #endif