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_common_h__ 00010 #define __domFx_surface_init_common_h__ 00011 00012 #include <dae/daeDocument.h> 00013 #include <dom/domTypes.h> 00014 #include <dom/domElements.h> 00015 00016 #include <dom/domFx_surface_init_cube_common.h> 00017 #include <dom/domFx_surface_init_volume_common.h> 00018 #include <dom/domFx_surface_init_planar_common.h> 00019 #include <dom/domFx_surface_init_from_common.h> 00020 class DAE; 00021 00027 class domFx_surface_init_common : public daeElement 00028 { 00029 public: 00030 virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FX_SURFACE_INIT_COMMON; } 00031 static daeInt ID() { return 168; } 00032 virtual daeInt typeID() const { return ID(); } 00033 public: 00034 class domInit_as_null; 00035 00036 typedef daeSmartRef<domInit_as_null> domInit_as_nullRef; 00037 typedef daeTArray<domInit_as_nullRef> domInit_as_null_Array; 00038 00046 class domInit_as_null : public daeElement 00047 { 00048 public: 00049 virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INIT_AS_NULL; } 00050 static daeInt ID() { return 169; } 00051 virtual daeInt typeID() const { return ID(); } 00052 00053 protected: 00057 domInit_as_null(DAE& dae) : daeElement(dae) {} 00061 virtual ~domInit_as_null() {} 00065 virtual domInit_as_null &operator=( const domInit_as_null &cpy ) { (void)cpy; return *this; } 00066 00067 public: // STATIC METHODS 00072 static DLLSPEC daeElementRef create(DAE& dae); 00078 static DLLSPEC daeMetaElement* registerElement(DAE& dae); 00079 }; 00080 00081 class domInit_as_target; 00082 00083 typedef daeSmartRef<domInit_as_target> domInit_as_targetRef; 00084 typedef daeTArray<domInit_as_targetRef> domInit_as_target_Array; 00085 00090 class domInit_as_target : public daeElement 00091 { 00092 public: 00093 virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INIT_AS_TARGET; } 00094 static daeInt ID() { return 170; } 00095 virtual daeInt typeID() const { return ID(); } 00096 00097 protected: 00101 domInit_as_target(DAE& dae) : daeElement(dae) {} 00105 virtual ~domInit_as_target() {} 00109 virtual domInit_as_target &operator=( const domInit_as_target &cpy ) { (void)cpy; return *this; } 00110 00111 public: // STATIC METHODS 00116 static DLLSPEC daeElementRef create(DAE& dae); 00122 static DLLSPEC daeMetaElement* registerElement(DAE& dae); 00123 }; 00124 00125 00126 00127 protected: // Elements 00135 domInit_as_nullRef elemInit_as_null; 00140 domInit_as_targetRef elemInit_as_target; 00144 domFx_surface_init_cube_commonRef elemInit_cube; 00148 domFx_surface_init_volume_commonRef elemInit_volume; 00152 domFx_surface_init_planar_commonRef elemInit_planar; 00162 domFx_surface_init_from_common_Array elemInit_from_array; 00166 daeElementRefArray _contents; 00170 daeUIntArray _contentsOrder; 00171 00175 daeTArray< daeCharArray * > _CMData; 00176 00177 00178 public: //Accessors and Mutators 00183 const domInit_as_nullRef getInit_as_null() const { return elemInit_as_null; } 00188 const domInit_as_targetRef getInit_as_target() const { return elemInit_as_target; } 00193 const domFx_surface_init_cube_commonRef getInit_cube() const { return elemInit_cube; } 00198 const domFx_surface_init_volume_commonRef getInit_volume() const { return elemInit_volume; } 00203 const domFx_surface_init_planar_commonRef getInit_planar() const { return elemInit_planar; } 00208 domFx_surface_init_from_common_Array &getInit_from_array() { return elemInit_from_array; } 00213 const domFx_surface_init_from_common_Array &getInit_from_array() const { return elemInit_from_array; } 00218 daeElementRefArray &getContents() { return _contents; } 00223 const daeElementRefArray &getContents() const { return _contents; } 00224 00225 protected: 00229 domFx_surface_init_common(DAE& dae) : daeElement(dae), elemInit_as_null(), elemInit_as_target(), elemInit_cube(), elemInit_volume(), elemInit_planar(), elemInit_from_array() {} 00233 virtual ~domFx_surface_init_common() { daeElement::deleteCMDataArray(_CMData); } 00237 virtual domFx_surface_init_common &operator=( const domFx_surface_init_common &cpy ) { (void)cpy; return *this; } 00238 00239 public: // STATIC METHODS 00244 static DLLSPEC daeElementRef create(DAE& dae); 00250 static DLLSPEC daeMetaElement* registerElement(DAE& dae); 00251 }; 00252 00253 00254 #endif