![]() |
TAPs 0.7.7.3
|
00001 /****************************************************************************** 00002 TAPsTetBarycentricCoordsForVertexRef.hpp 00003 ******************************************************************************/ 00016 // Node Numbering Convention 00017 // 00018 // 3 00019 // / |\ 00020 // / | \ 00021 // / Pt | \ Pt is inside the tetrahedron 00022 // / | \ 00023 // 2---------|-----1 00024 // \ | / 00025 // \ | / 00026 // \ | / 00027 // \ | / 00028 // \ | / 00029 // \ | / 00030 // \|/ 00031 // 0 00032 /****************************************************************************** 00033 SUKITTI PUNAK (03/16/2010) 00034 UPDATE (09/28/2010) 00035 ******************************************************************************/ 00036 #ifndef TAPs_TET_BARY_COORDS_FOR_VERTEX_REF_HPP 00037 #define TAPs_TET_BARY_COORDS_FOR_VERTEX_REF_HPP 00038 00039 #include "TAPsBaseBarycentricCoordsForVertexRef.hpp" 00040 #include "../FEM/TAPsFEMTetrahedron.hpp" 00041 00042 BEGIN_NAMESPACE_TAPs 00043 //============================================================================= 00044 template <typename T> 00045 class TetBarycentricCoordsForVertexRef : public BaseBarycentricCoordsForVertexRef<T> { 00046 //============================================================================= 00047 public: 00048 // Member Functions ------------------------------------------------------- 00050 friend std::ostream & operator<< ( std::ostream &output, TetBarycentricCoordsForVertexRef<T> const &obj ) 00051 { 00052 output << obj.StrInfo(); 00053 return output; 00054 } 00055 //------------------------------------------------------------------------- 00057 //TetBarycentricCoordsForVertexRef (); 00058 //------------------------------------------------------------------------- 00060 TetBarycentricCoordsForVertexRef ( 00061 Vector3<T> & vertex, 00062 FEM::Tetrahedron<T> & tetrahedron, 00063 T u, 00064 T v, 00065 T w 00066 ); 00067 //------------------------------------------------------------------------- 00069 TetBarycentricCoordsForVertexRef ( 00070 Vector3<T> & vertex, 00071 FEM::Tetrahedron<T> * pTetrahedron, 00072 T u, 00073 T v, 00074 T w 00075 ); 00076 //------------------------------------------------------------------------- 00078 TetBarycentricCoordsForVertexRef ( TetBarycentricCoordsForVertexRef<T> const & orig ); 00079 //------------------------------------------------------------------------- 00081 virtual ~TetBarycentricCoordsForVertexRef (); 00082 //------------------------------------------------------------------------- 00083 TetBarycentricCoordsForVertexRef<T> & operator= ( TetBarycentricCoordsForVertexRef<T> const & orig ); 00084 //------------------------------------------------------------------------- 00086 virtual std::string StrInfo () const; 00087 00089 FEM::Tetrahedron<T> * const & RetTetrahedron () const { return m_pTetrahedron; } 00091 FEM::Tetrahedron<T> * const & RetTetrahedron () { return m_pTetrahedron; } 00093 void SetPtrToTetrahedron ( FEM::Tetrahedron<T> * pTetra ) { m_pTetrahedron = pTetra; } 00094 00096 inline void ComputeNewVertexLocation (); 00097 00100 inline virtual Vector3<T> GetNewVertexLocation () const; 00101 00102 // Data Members ----------------------------------------------------------- 00103 //============================================================================= 00104 protected: 00105 // Member Functions ------------------------------------------------------- 00106 // Data Members ----------------------------------------------------------- 00107 FEM::Tetrahedron<T> * m_pTetrahedron; 00108 //============================================================================= 00109 private: 00110 // Member Functions ------------------------------------------------------- 00111 // Data Members ----------------------------------------------------------- 00112 //============================================================================= 00113 }; // END CLASS TetBarycentricCoordsForVertexRef 00114 //============================================================================= 00115 END_NAMESPACE_TAPs 00116 //----------------------------------------------------------------------------- 00118 #include "TAPsTetBarycentricCoordsForVertexRef.cpp" 00119 00121 // Include definition if TAPs_USE_EXPORT is not defined 00122 //#if !defined( TAPs_USE_EXPORT ) 00123 // #include "TAPsTetBarycentricCoordsForVertexRef.cpp" 00124 //#endif 00125 //----------------------------------------------------------------------------- 00126 #endif 00127 //34567890123456789012345678901234567890123456789012345678901234567890123456789 00128 //--+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----