![]() |
TAPs 0.7.7.3
|
00001 /****************************************************************************** 00002 TAPsSimPropForMultiPartMeshModel.hpp 00003 00004 SimPropForMultiPartMeshModel class (hpp file). 00005 00006 SUKITTI PUNAK (07/25/2008) 00007 UPDATE (10/07/2009) 00008 ******************************************************************************/ 00009 #ifndef TAPs_SIM_PROP_FOR_MULTI_PART_MESH_MODEL_HPP 00010 #define TAPs_SIM_PROP_FOR_MULTI_PART_MESH_MODEL_HPP 00011 00012 #include "../../Core/TAPsStdLib.hpp" 00013 00014 BEGIN_NAMESPACE_TAPs 00015 //============================================================================= 00016 template <typename T> 00017 class SimPropForMultiPartMeshModel { 00018 //============================================================================= 00019 // Member Functions ------------------------------------------------------- 00021 friend std::ostream & operator<< ( 00022 std::ostream &output, SimPropForMultiPartMeshModel<T> const &obj ) 00023 { 00024 output << obj.StrInfo(); 00025 return output; 00026 } 00027 00028 //============================================================================= 00029 public: 00030 // Member Functions ------------------------------------------------------- 00031 00033 SimPropForMultiPartMeshModel ( 00034 T springStiffness = 1, 00035 T springDamper = 1, 00036 T massOfPoint = 1, 00037 TAPs::Enum::ModelType modelType = TAPs::Enum::MODEL_DEFORM, 00038 T predefinedTimeStep = 0.001, 00039 int numSimSubSteps = 1, 00040 bool enableColDet = true, 00041 bool enableSimulation = true 00042 ); 00043 00045 SimPropForMultiPartMeshModel ( SimPropForMultiPartMeshModel<T> const &obj ); 00046 00048 ~SimPropForMultiPartMeshModel (); 00049 00051 virtual std::string StrInfo () const; 00052 00053 //--------------------------------------------------------------- 00054 // INLINE 00055 00057 inline SimPropForMultiPartMeshModel<T> & operator= ( 00058 SimPropForMultiPartMeshModel<T> const &obj ); 00059 00060 00062 T GetKStiffness () const { return m_tKStiffness; } 00064 void SetKStiffness ( T val ) { m_tKStiffness = val; } 00065 00067 T GetKDamper () const { return m_tKDamper; } 00069 void SetKDamper ( T val ) { m_tKDamper = val; } 00070 00072 T GetKPtMass () const { return m_tKPtMass; } 00074 void SetKPtMass ( T val ) { m_tKPtMass = val; } 00075 00077 bool IsColDetOn () const { return m_bColDetOn; } 00079 void SetColDetOn ( bool b ) { m_bColDetOn = b; } 00081 void ToggleColDetOn () { m_bColDetOn = !m_bColDetOn; } 00082 00084 bool IsSimOn () const { return m_bSimOn; } 00086 void SetSimOn ( bool b ) { m_bSimOn = b; } 00088 void ToggleSimOn () { m_bSimOn = !m_bSimOn; } 00089 00091 TAPs::Enum::ModelType GetModelType () const { return m_eModelType; } 00093 void SetModelType ( TAPs::Enum::ModelType type ) { m_eModelType = type; } 00094 00096 T GetPredefinedTimeStep () const { return m_tPredefinedTimeStep; } 00098 void SetPredefinedTimeStep ( T ts ) { m_tPredefinedTimeStep = ts; } 00099 00101 int GetNumSimSubSteps () const { return m_iNumSimSubSteps; } 00103 void SetNumSimSubSteps ( int i ) { m_iNumSimSubSteps = i; } 00104 00105 // Data Members ----------------------------------------------------------- 00106 //============================================================================= 00107 protected: 00108 // Member Functions ------------------------------------------------------- 00109 00110 // Data Members ----------------------------------------------------------- 00111 00112 // Spring Properties 00113 T m_tKStiffness; 00114 T m_tKDamper; 00115 T m_tPtMass; 00116 00117 // Simulation 00118 bool m_bColDetOn; 00119 bool m_bSimOn; 00120 TAPs::Enum::ModelType m_eModelType; 00121 T m_tPredefinedTimeStep; 00122 int m_iNumSimSubSteps; 00123 00124 //============================================================================= 00125 private: 00126 // Member Functions ------------------------------------------------------- 00127 // Data Members ----------------------------------------------------------- 00128 //============================================================================= 00129 }; // END CLASS SimPropForMultiPartMeshModel 00130 //============================================================================= 00131 //----------------------------------------------------------------------------- 00134 typedef SimPropForMultiPartMeshModel<int> SimPropForMultiPartMeshModeli; 00135 typedef SimPropForMultiPartMeshModel<float> SimPropForMultiPartMeshModelf; 00136 typedef SimPropForMultiPartMeshModel<double> SimPropForMultiPartMeshModeld; 00137 //============================================================================= 00138 END_NAMESPACE_TAPs 00139 //----------------------------------------------------------------------------- 00140 // Include definition if TAPs_USE_EXPORT is not defined 00141 // If the class is template, use this 00142 //#if !defined( TAPs_USE_EXPORT ) 00143 #include "TAPsSimPropForMultiPartMeshModel.cpp" 00144 //#endif 00145 00146 // If the class is NOT template, use this 00147 //#if !defined( TAPs_USE_EXPORT ) 00148 // #include "TAPsSimPropForMultiPartMeshModel.cpp" 00149 //#endif 00150 //----------------------------------------------------------------------------- 00151 #endif 00152 //34567890123456789012345678901234567890123456789012345678901234567890123456789 00153 //--+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----