TAPs 0.7.7.3
TAPsModelOrganHeart.cpp
Go to the documentation of this file.
00001 /******************************************************************************
00002 TAPsModelOrganHeart.cpp
00003 
00004 ModelOrganHeart class (cpp file).
00005 
00006 SUKITTI PUNAK   (08/06/2008)
00007 ******************************************************************************/
00008 #include "TAPsModelOrganHeart.hpp"
00009 // Using Inclusion Model (i.e. definitions are included in declarations)
00010 //                       (this name.cpp is included in name.hpp)
00011 // Each friend is defined directly inside its declaration.
00012 
00013 BEGIN_NAMESPACE_TAPs
00014 //=============================================================================
00015 //-----------------------------------------------------------------------------
00016 template <typename T>
00017 ModelOrganHeart<T>::ModelOrganHeart (
00018         std::string data_location       
00019 )
00020     : ModelForSurgery<T>( data_location, STOMACH )
00021 {
00022     Init( rigidity );
00023 }
00024 
00025 //-----------------------------------------------------------------------------
00026 template <typename T>
00027 ModelOrganHeart<T>::ModelOrganHeart (
00028         std::string data_location,      
00029         T Kpointmass,                   
00030         T Kstiffness,                   
00031         T Kdamper,                      
00032         T HomeKstiffness,               
00033         T HomeKdamper,                  
00034         int rigidity,                   
00035         T predefinedTimeStep,           
00036         int numSimSubSteps              
00037 )
00038     : ModelForSurgery<T>( data_location, STOMACH, Kpointmass, Kstiffness, Kdamper, HomeKstiffness, HomeKdamper, predefinedTimeStep, numSimSubSteps )
00039 {
00040     Init( rigidity );
00041 }
00042 
00043 //-----------------------------------------------------------------------------
00044 template <typename T>
00045 ModelOrganHeart<T>::~ModelOrganHeart ()
00046 {}
00047 
00048 //-----------------------------------------------------------------------------
00049 template <typename T>
00050 std::string ModelOrganHeart<T>::StrInfo () const
00051 {
00052     std::ostringstream ss;
00053     ss << "ModelOrganHeart<" << typeid(T).name() << ">";
00054     return ss.str();
00055 }
00056 
00057 //-----------------------------------------------------------------------------
00058 template <typename T>
00059 bool ModelOrganHeart<T>::Init ( int rigidity )
00060 {
00061     std::string fileModel( m_strDataLocation + "/Heart.ASE" );
00062 
00063     #if defined(__gl_h_) || defined(__GL_H__)
00064     //OpenGL::OpenGLHETriMeshOneModelMultiParts<T> * pModel = new OpenGL::OpenGLHETriMeshOneModelMultiParts<T>();
00065     std::vector< OpenGL::OpenGLHETriMeshOneModelMultiParts<T> * > pListOfModel;
00066     #endif
00067 
00068     if ( !ReadModels<T>::readFile( fileModel.c_str(), pListOfModel ) ) {
00069         std::cout << "ERROR: In Reading File (" << fileModel << ")!" << std::endl;
00070         exit ( EXIT_FAILURE );
00071         return false;
00072     }
00073     else {
00074         for ( int i = 0; i < static_cast<int>( pListOfModel.size() ); ++i ) {
00075             #ifdef  TAPs_DEBUG_MODE
00076             #endif//TAPs_DEBUG_MODE
00077 
00078             //pModel->GetTransform().ApplyTranslation( vLeftCenter );
00079             //pModel->GetTransform().ApplyRotationAxisAndAngle( Vector3<T>(0,1,0), vLeftRotationAngle[1] );
00080             //pModel->GetTransform().ApplyScale( vLeftScale );
00081             //pModel->ApplyAndResetTransform(); 
00082 
00083             pListOfModel[i]->BuildBVHTree( TAPs::Enum::BVH_TREE_BINARY_SPHERE );
00084             pListOfModel[i]->CalAndSetNormals();
00085             pListOfModel[i]->CreateMeshSprings( m_tPtMass, m_tKStiffness, m_tKDamper, m_tHomeKStiffness, m_tHomeKDamper, rigidity, m_tPredefinedTimeStep, m_iNumSimSubSteps );
00086 
00087             m_Parts.push_back( pListOfModel[i] );
00088         }
00089         //---------------------------------------
00090         //MemorizeOriginalVertices( leftTube, originalLeftBloodVesselVertices );
00091         return true;
00092     }
00093 }
00094 
00095 //-----------------------------------------------------------------------------
00096 //=============================================================================
00097 END_NAMESPACE_TAPs
00098 //34567890123456789012345678901234567890123456789012345678901234567890123456789
00099 //--+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines