GenericMesh.h

Go to the documentation of this file.
00001 #ifndef GenericMesh_HEADER
00002 #define GenericMesh_HEADER
00003 
00004 #ifdef HAVE_CONFIG_H
00005 # include <config.h>
00006 #endif
00007 
00008 #include <assert.h>
00009 #include <vector>
00010 #include <boost/utility.hpp>
00011 
00012 
00013 #if 0
00014 #define dprintf(...) printf(__VA_ARGS__);
00015 #else
00016 #define dprintf(...)
00017 #endif
00018 
00028 template <size_t ambient>
00029 class GenericMesh : public boost::noncopyable {
00030   std::vector<const GenericMesh*> uppers_;
00031 
00032   public:
00033 
00034   virtual ~GenericMesh () { }
00035 
00036   virtual unsigned topological() const = 0;
00037 
00038   void addUpper(const GenericMesh* g) { 
00039     dprintf("mesh %p[%u] adding upper %p[%u]\n",
00040         this, topological(), g, g->topological());
00041     assert(topological() < g->topological());
00042     uppers_.push_back(g); 
00043   }
00044 
00045   typedef typename std::vector<const GenericMesh*>::const_iterator upper_iterator;
00046   upper_iterator begin_uppers() const { return uppers_.begin(); }
00047   upper_iterator end_uppers() const { return uppers_.end(); }
00048 };
00049 
00050 #undef dprintf
00051 
00052 #endif

Generated on Thu Mar 27 19:04:12 2008 by  doxygen 1.4.6