vtf-logo

shells/subdiv/Triangle.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 //
00003 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00004 //
00005 //                                   Fehmi Cirak   
00006 //                       California Institute of Technology
00007 //                          (C) 2003 All Rights Reserved
00008 //
00009 // <LicenseText>
00010 //
00011 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00012 //
00013 #ifndef __Triangle_h__
00014 #define __Triangle_h__
00015 
00016 
00017 
00018 namespace subdiv {
00019 
00020     template <typename V>
00021     class Triangle {    
00022     public:
00023         Triangle(){}
00024         Triangle(V* a, V* b, V* c) {
00025             _m_v[0]=a;
00026             _m_v[1]=b;
00027             _m_v[2]=c;
00028             _m_t[0]=NULL;
00029             _m_t[1]=NULL;
00030             _m_t[2]=NULL;
00031         } 
00032         ~Triangle(){}
00033         
00034         // interface
00035         V* a(){return _m_v[0];}
00036         V* b(){return _m_v[1];}
00037         V* c(){return _m_v[2];}
00038         
00039         std::pair<V*, V*> vertexPairOnEdge(int i) {
00040             return std::make_pair(_m_v[i], _m_v[Next[i]]);
00041         }
00042         
00043         // output
00044         void printConnectivityData(std::ostream& os) {
00045             os << _m_v[0]->number() << " "<< _m_v[1]->number() << " "<< _m_v[2]->number();
00046         }
00047         
00048         inline Triangle*& across( const V*, const V* );
00049         inline Triangle*& neighbor(int i){return _m_t[i];}
00050                 
00051     private:
00052         V*          _m_v[3];         // first vertex
00053         Triangle*   _m_t[3];         // neighbouring triangles
00054     };
00055 
00056 #include "Triangle.cc"
00057     
00058 }
00059 #endif /*__Triangle_h__*/

Generated on Fri Aug 24 13:00:24 2007 for SFC Thin-Shell Finite Element Solver by  doxygen 1.4.7