00001 #ifndef __domPhysics_material_h__ 00002 #define __domPhysics_material_h__ 00003 00004 #include <dae/daeDocument.h> 00005 #include <dom/domTypes.h> 00006 #include <dom/domElements.h> 00007 00008 #include <dom/domAsset.h> 00009 #include <dom/domTargetable_float.h> 00010 #include <dom/domTechnique.h> 00011 #include <dom/domExtra.h> 00012 class DAE; 00013 00019 class domPhysics_material : public daeElement 00020 { 00021 public: 00022 virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::PHYSICS_MATERIAL; } 00023 static daeInt ID() { return 297; } 00024 virtual daeInt typeID() const { return ID(); } 00025 public: 00026 class domTechnique_common; 00027 00028 typedef daeSmartRef<domTechnique_common> domTechnique_commonRef; 00029 typedef daeTArray<domTechnique_commonRef> domTechnique_common_Array; 00030 00035 class domTechnique_common : public daeElement 00036 { 00037 public: 00038 virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::TECHNIQUE_COMMON; } 00039 static daeInt ID() { return 298; } 00040 virtual daeInt typeID() const { return ID(); } 00041 00042 protected: // Elements 00046 domTargetable_floatRef elemDynamic_friction; 00051 domTargetable_floatRef elemRestitution; 00055 domTargetable_floatRef elemStatic_friction; 00056 00057 public: //Accessors and Mutators 00062 const domTargetable_floatRef getDynamic_friction() const { return elemDynamic_friction; } 00067 const domTargetable_floatRef getRestitution() const { return elemRestitution; } 00072 const domTargetable_floatRef getStatic_friction() const { return elemStatic_friction; } 00073 protected: 00077 domTechnique_common(DAE& dae) : daeElement(dae), elemDynamic_friction(), elemRestitution(), elemStatic_friction() {} 00081 virtual ~domTechnique_common() {} 00085 virtual domTechnique_common &operator=( const domTechnique_common &cpy ) { (void)cpy; return *this; } 00086 00087 public: // STATIC METHODS 00092 static DLLSPEC daeElementRef create(DAE& dae); 00098 static DLLSPEC daeMetaElement* registerElement(DAE& dae); 00099 }; 00100 00101 00102 protected: // Attributes 00108 xsID attrId; 00112 xsToken attrName; 00113 00114 protected: // Elements 00118 domAssetRef elemAsset; 00124 domTechnique_commonRef elemTechnique_common; 00129 domTechnique_Array elemTechnique_array; 00133 domExtra_Array elemExtra_array; 00134 00135 public: //Accessors and Mutators 00140 xsID getId() const { return attrId; } 00145 void setId( xsID atId ) { *(daeStringRef*)&attrId = atId; 00146 if( _document != NULL ) _document->changeElementID( this, attrId ); 00147 } 00148 00153 xsToken getName() const { return attrName; } 00158 void setName( xsToken atName ) { *(daeStringRef*)&attrName = atName;} 00159 00164 const domAssetRef getAsset() const { return elemAsset; } 00169 const domTechnique_commonRef getTechnique_common() const { return elemTechnique_common; } 00174 domTechnique_Array &getTechnique_array() { return elemTechnique_array; } 00179 const domTechnique_Array &getTechnique_array() const { return elemTechnique_array; } 00184 domExtra_Array &getExtra_array() { return elemExtra_array; } 00189 const domExtra_Array &getExtra_array() const { return elemExtra_array; } 00190 protected: 00194 domPhysics_material(DAE& dae) : daeElement(dae), attrId(), attrName(), elemAsset(), elemTechnique_common(), elemTechnique_array(), elemExtra_array() {} 00198 virtual ~domPhysics_material() {} 00202 virtual domPhysics_material &operator=( const domPhysics_material &cpy ) { (void)cpy; return *this; } 00203 00204 public: // STATIC METHODS 00209 static DLLSPEC daeElementRef create(DAE& dae); 00215 static DLLSPEC daeMetaElement* registerElement(DAE& dae); 00216 }; 00217 00218 00219 #endif