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