![]() |
TAPs 0.7.7.3
|
00001 /****************************************************************************** 00002 TAPsModelDefBasedOnFEMHex_CD.hpp 00003 ******************************************************************************/ 00007 /****************************************************************************** 00008 SUKITTI PUNAK (04/15/2010) 00009 UPDATE (12/05/2010) 00010 ******************************************************************************/ 00011 #ifndef TAPs_MODEL_DEF_BASED_ON_FEM_HEX_CD_HPP 00012 #define TAPs_MODEL_DEF_BASED_ON_FEM_HEX_CD_HPP 00013 00014 #include "TAPsModelDefBasedOnFEM_CD.hpp" 00015 00016 BEGIN_NAMESPACE_TAPs__FEM 00017 //============================================================================= 00018 template <typename T> 00019 class ModelDefBasedOnFEMHex_CD : public ModelDefBasedOnFEM_CD<T> { 00020 //============================================================================= 00021 public: 00022 // Member Functions ------------------------------------------------------- 00024 friend std::ostream & operator<< ( std::ostream &output, ModelDefBasedOnFEMHex_CD<T> const &obj ) 00025 { 00026 output << obj.StrInfo(); 00027 return output; 00028 } 00029 //------------------------------------------------------------------------- 00031 ModelDefBasedOnFEMHex_CD (); 00033 //ModelDefBasedOnFEMHex_CD ( ModelDefBasedOnFEMHex_CD<T,DATA> const &orig ); 00035 virtual ~ModelDefBasedOnFEMHex_CD (); 00036 //------------------------------------------------------------------------- 00038 virtual std::string StrInfo () const; 00039 //------------------------------------------------------------------------- 00041 //inline ModelDefBasedOnFEMHex_CD<T,DATA> & operator= ( ModelDefBasedOnFEMHex_CD<T,DATA> const &orig ); 00042 //------------------------------------------------------------------------- 00043 00045 virtual bool Init ( 00046 OpenGL::OpenGLHalfEdgeTrigonalModel<T> * pHEModel, 00047 FEM::MeshHexahedra<T> * pFEMMesh 00048 ); 00049 00053 inline virtual void ClearCollidedParts (); 00054 00056 inline virtual bool CDRwith ( 00057 MultiBoundingVolume<T> * const pMBVObj 00058 ); 00059 00061 inline virtual bool CDRwith ( 00062 MultiBoundingVolume<T> * const pMBVObj, 00063 TransformationSupport<T> * const pTransform 00064 ); 00065 00067 inline void AdjustSurfaceMeshByCDObjs (); 00068 00069 //========================================================================= 00070 // Grabbing 00071 //------------------------------------------------------------------------- 00072 00077 inline virtual void MoveGrabbedPart ( int grabbedPartID ); 00078 00080 inline virtual void MoveAllGrabbedParts (); 00081 00083 inline void AdjustSurfaceMeshDueToGrabbedParts (); 00084 00085 //------------------------------------------------------------------------- 00086 // Grabbing 00087 //========================================================================= 00088 00089 // Data Members ----------------------------------------------------------- 00090 //============================================================================= 00091 protected: 00092 // Member Functions ------------------------------------------------------- 00093 00097 inline virtual bool CORE_CDwith ( 00098 MultiBoundingVolume<T> * const pMBVObj 00099 ); 00100 00102 inline void CORE_CR (); 00103 00105 inline void GenCDForcesOnFEMMeshByCDObj ( CDObj<T> & cdObj ); 00106 00110 inline void GenGrabbedForcesOnFEMMeshByCDObj ( 00111 CDObj<T> & cdObj, 00112 Vector3<T> const & grabbingObjPos_LS 00113 ); 00114 00116 inline void AdjustSurfaceMeshVertexPositionByCDObj ( CDObj<T> & cdObj ); 00117 00119 inline void AdjustSurfaceMeshVertexPositionDueToGrabbedVertex ( CDObj<T> & cdObj ); 00120 00122 //inline void ClearFEMMeshAdjustmentFromCDObj ( CDObj<T> & cdObj ); 00123 00124 // Data Members ----------------------------------------------------------- 00125 FEM::MeshHexahedra<T> * m_pFEMMesh; 00126 00127 //============================================================================= 00128 private: 00129 // Member Functions ------------------------------------------------------- 00130 // Data Members ----------------------------------------------------------- 00131 //============================================================================= 00132 00133 #if defined(__gl_h_) || defined(__GL_H__) 00134 public: 00135 #endif 00136 00137 //============================================================================= 00138 }; // END CLASS ModelDefBasedOnFEMHex_CD 00139 //============================================================================= 00140 END_NAMESPACE_TAPs__FEM 00141 //----------------------------------------------------------------------------- 00143 #include "TAPsModelDefBasedOnFEMHex_CD.cpp" 00144 00146 // Include definition if TAPs_USE_EXPORT is not defined 00147 //#if !defined( TAPs_USE_EXPORT ) 00148 // #include "TAPsModelDefBasedOnFEMHex_CD.cpp" 00149 //#endif 00150 //----------------------------------------------------------------------------- 00151 #endif 00152 //34567890123456789012345678901234567890123456789012345678901234567890123456789 00153 //--+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----