MathTL
|
00001 // -*- c++ -*- 00002 00003 // +--------------------------------------------------------------------+ 00004 // | This file is part of MathTL - the Mathematical Template Library | 00005 // | | 00006 // | Copyright (c) 2002-2009 | 00007 // | Thorsten Raasch, Manuel Werner | 00008 // +--------------------------------------------------------------------+ 00009 00010 #ifndef _MATHTL_ATLAS_H 00011 #define _MATHTL_ATLAS_H 00012 00013 #include <iostream> 00014 #include <geometry/chart.h> 00015 #include <utils/array1d.h> 00016 #include <algebra/symmetric_matrix.h> 00017 00018 namespace MathTL 00019 { 00028 template <unsigned int DIM_d, unsigned int DIM_m = DIM_d> 00029 class Atlas { 00030 public: 00032 Atlas() {} 00033 00035 Atlas (const Array1D<Chart<DIM_d,DIM_m>* >&, 00036 const SymmetricMatrix<bool>&); 00037 00039 const Array1D<Chart<DIM_d,DIM_m>* >& charts() const { return charts_; } 00040 00042 const SymmetricMatrix<bool>& get_adjacency_matrix() const { return adjacency_matrix; } 00043 00044 protected: 00046 Array1D<Chart<DIM_d,DIM_m>* > charts_; 00047 00049 SymmetricMatrix<bool> adjacency_matrix; 00050 }; 00051 00055 template <unsigned int DIM_d, unsigned int DIM_m> 00056 std::ostream& operator << (std::ostream&, const Atlas<DIM_d, DIM_m>&); 00057 } 00058 00059 #include "geometry/atlas.cpp" 00060 00061 #endif