MathTL
geometry/atlas.h
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
 All Classes Functions Variables Typedefs Enumerations