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 __domCg_surface_type_h__ 00010 #define __domCg_surface_type_h__ 00011 00012 #include <dae/daeDocument.h> 00013 #include <dom/domTypes.h> 00014 #include <dom/domElements.h> 00015 00016 #include <dom/domFx_surface_common.h> 00017 #include <dom/domFx_annotate_common.h> 00018 #include <dom/domFx_code_profile.h> 00019 #include <dom/domFx_include_common.h> 00020 #include <dom/domCg_setparam_simple.h> 00021 class DAE; 00022 00027 class domCg_surface_type_complexType : public domFx_surface_common_complexType 00028 { 00029 public: 00030 class domGenerator; 00031 00032 typedef daeSmartRef<domGenerator> domGeneratorRef; 00033 typedef daeTArray<domGeneratorRef> domGenerator_Array; 00034 00038 class domGenerator : public daeElement 00039 { 00040 public: 00041 virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::GENERATOR; } 00042 static daeInt ID() { return 137; } 00043 virtual daeInt typeID() const { return ID(); } 00044 public: 00045 class domName; 00046 00047 typedef daeSmartRef<domName> domNameRef; 00048 typedef daeTArray<domNameRef> domName_Array; 00049 00053 class domName : public daeElement 00054 { 00055 public: 00056 virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::NAME; } 00057 static daeInt ID() { return 138; } 00058 virtual daeInt typeID() const { return ID(); } 00059 protected: // Attribute 00060 xsNCName attrSource; 00061 00062 protected: // Value 00066 xsNCName _value; 00067 00068 public: //Accessors and Mutators 00073 xsNCName getSource() const { return attrSource; } 00078 void setSource( xsNCName atSource ) { *(daeStringRef*)&attrSource = atSource; _validAttributeArray[0] = true; } 00079 00084 xsNCName getValue() const { return _value; } 00089 void setValue( xsNCName val ) { *(daeStringRef*)&_value = val; } 00090 00091 protected: 00095 domName(DAE& dae) : daeElement(dae), attrSource(), _value() {} 00099 virtual ~domName() {} 00103 virtual domName &operator=( const domName &cpy ) { (void)cpy; return *this; } 00104 00105 public: // STATIC METHODS 00110 static DLLSPEC daeElementRef create(DAE& dae); 00116 static DLLSPEC daeMetaElement* registerElement(DAE& dae); 00117 }; 00118 00119 00120 00121 protected: // Elements 00126 domFx_annotate_common_Array elemAnnotate_array; 00131 domFx_code_profile_Array elemCode_array; 00136 domFx_include_common_Array elemInclude_array; 00140 domNameRef elemName; 00144 domCg_setparam_simple_Array elemSetparam_array; 00148 daeElementRefArray _contents; 00152 daeUIntArray _contentsOrder; 00153 00157 daeTArray< daeCharArray * > _CMData; 00158 00159 00160 public: //Accessors and Mutators 00165 domFx_annotate_common_Array &getAnnotate_array() { return elemAnnotate_array; } 00170 const domFx_annotate_common_Array &getAnnotate_array() const { return elemAnnotate_array; } 00175 domFx_code_profile_Array &getCode_array() { return elemCode_array; } 00180 const domFx_code_profile_Array &getCode_array() const { return elemCode_array; } 00185 domFx_include_common_Array &getInclude_array() { return elemInclude_array; } 00190 const domFx_include_common_Array &getInclude_array() const { return elemInclude_array; } 00195 const domNameRef getName() const { return elemName; } 00200 domCg_setparam_simple_Array &getSetparam_array() { return elemSetparam_array; } 00205 const domCg_setparam_simple_Array &getSetparam_array() const { return elemSetparam_array; } 00210 daeElementRefArray &getContents() { return _contents; } 00215 const daeElementRefArray &getContents() const { return _contents; } 00216 00217 protected: 00221 domGenerator(DAE& dae) : daeElement(dae), elemAnnotate_array(), elemCode_array(), elemInclude_array(), elemName(), elemSetparam_array() {} 00225 virtual ~domGenerator() { daeElement::deleteCMDataArray(_CMData); } 00229 virtual domGenerator &operator=( const domGenerator &cpy ) { (void)cpy; return *this; } 00230 00231 public: // STATIC METHODS 00236 static DLLSPEC daeElementRef create(DAE& dae); 00242 static DLLSPEC daeMetaElement* registerElement(DAE& dae); 00243 }; 00244 00245 00246 00247 protected: // Element 00251 domGeneratorRef elemGenerator; 00252 00253 public: //Accessors and Mutators 00258 const domGeneratorRef getGenerator() const { return elemGenerator; } 00259 protected: 00263 domCg_surface_type_complexType(DAE& dae, daeElement* elt) : domFx_surface_common_complexType(dae, elt), elemGenerator() {} 00267 virtual ~domCg_surface_type_complexType() {} 00271 virtual domCg_surface_type_complexType &operator=( const domCg_surface_type_complexType &cpy ) { (void)cpy; return *this; } 00272 }; 00273 00277 class domCg_surface_type : public daeElement, public domCg_surface_type_complexType 00278 { 00279 public: 00280 virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::CG_SURFACE_TYPE; } 00281 static daeInt ID() { return 139; } 00282 virtual daeInt typeID() const { return ID(); } 00283 protected: 00287 domCg_surface_type(DAE& dae) : daeElement(dae), domCg_surface_type_complexType(dae, this) {} 00291 virtual ~domCg_surface_type() {} 00295 virtual domCg_surface_type &operator=( const domCg_surface_type &cpy ) { (void)cpy; return *this; } 00296 00297 public: // STATIC METHODS 00302 static DLLSPEC daeElementRef create(DAE& dae); 00308 static DLLSPEC daeMetaElement* registerElement(DAE& dae); 00309 }; 00310 00311 00312 #endif