00001 #ifndef __domPhysics_scene_h__ 00002 #define __domPhysics_scene_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/domInstance_force_field.h> 00010 #include <dom/domInstance_physics_model.h> 00011 #include <dom/domTargetable_float3.h> 00012 #include <dom/domTargetable_float.h> 00013 #include <dom/domTechnique.h> 00014 #include <dom/domExtra.h> 00015 class DAE; 00016 00017 class domPhysics_scene : public daeElement 00018 { 00019 public: 00020 virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::PHYSICS_SCENE; } 00021 static daeInt ID() { return 413; } 00022 virtual daeInt typeID() const { return ID(); } 00023 public: 00024 class domTechnique_common; 00025 00026 typedef daeSmartRef<domTechnique_common> domTechnique_commonRef; 00027 typedef daeTArray<domTechnique_commonRef> domTechnique_common_Array; 00028 00033 class domTechnique_common : public daeElement 00034 { 00035 public: 00036 virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::TECHNIQUE_COMMON; } 00037 static daeInt ID() { return 414; } 00038 virtual daeInt typeID() const { return ID(); } 00039 00040 protected: // Elements 00044 domTargetable_float3Ref elemGravity; 00048 domTargetable_floatRef elemTime_step; 00049 00050 public: //Accessors and Mutators 00055 const domTargetable_float3Ref getGravity() const { return elemGravity; } 00060 const domTargetable_floatRef getTime_step() const { return elemTime_step; } 00061 protected: 00065 domTechnique_common(DAE& dae) : daeElement(dae), elemGravity(), elemTime_step() {} 00069 virtual ~domTechnique_common() {} 00073 virtual domTechnique_common &operator=( const domTechnique_common &cpy ) { (void)cpy; return *this; } 00074 00075 public: // STATIC METHODS 00080 static DLLSPEC daeElementRef create(DAE& dae); 00086 static DLLSPEC daeMetaElement* registerElement(DAE& dae); 00087 }; 00088 00089 00090 protected: // Attributes 00096 xsID attrId; 00100 xsToken attrName; 00101 00102 protected: // Elements 00106 domAssetRef elemAsset; 00110 domInstance_force_field_Array elemInstance_force_field_array; 00114 domInstance_physics_model_Array elemInstance_physics_model_array; 00120 domTechnique_commonRef elemTechnique_common; 00125 domTechnique_Array elemTechnique_array; 00129 domExtra_Array elemExtra_array; 00130 00131 public: //Accessors and Mutators 00136 xsID getId() const { return attrId; } 00141 void setId( xsID atId ) { *(daeStringRef*)&attrId = atId; 00142 if( _document != NULL ) _document->changeElementID( this, attrId ); 00143 } 00144 00149 xsToken getName() const { return attrName; } 00154 void setName( xsToken atName ) { *(daeStringRef*)&attrName = atName;} 00155 00160 const domAssetRef getAsset() const { return elemAsset; } 00165 domInstance_force_field_Array &getInstance_force_field_array() { return elemInstance_force_field_array; } 00170 const domInstance_force_field_Array &getInstance_force_field_array() const { return elemInstance_force_field_array; } 00175 domInstance_physics_model_Array &getInstance_physics_model_array() { return elemInstance_physics_model_array; } 00180 const domInstance_physics_model_Array &getInstance_physics_model_array() const { return elemInstance_physics_model_array; } 00185 const domTechnique_commonRef getTechnique_common() const { return elemTechnique_common; } 00190 domTechnique_Array &getTechnique_array() { return elemTechnique_array; } 00195 const domTechnique_Array &getTechnique_array() const { return elemTechnique_array; } 00200 domExtra_Array &getExtra_array() { return elemExtra_array; } 00205 const domExtra_Array &getExtra_array() const { return elemExtra_array; } 00206 protected: 00210 domPhysics_scene(DAE& dae) : daeElement(dae), attrId(), attrName(), elemAsset(), elemInstance_force_field_array(), elemInstance_physics_model_array(), elemTechnique_common(), elemTechnique_array(), elemExtra_array() {} 00214 virtual ~domPhysics_scene() {} 00218 virtual domPhysics_scene &operator=( const domPhysics_scene &cpy ) { (void)cpy; return *this; } 00219 00220 public: // STATIC METHODS 00225 static DLLSPEC daeElementRef create(DAE& dae); 00231 static DLLSPEC daeMetaElement* registerElement(DAE& dae); 00232 }; 00233 00234 00235 #endif