TAPs 0.7.7.3
TAPsSimPropForMultiPartMeshModel.hpp
Go to the documentation of this file.
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----+----
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines