synaps/map/surface.h

00001 #ifndef SYNAPS_SHAPE_SURFACE_H
00002 #define SYNAPS_SHAPE_SURFACE_H
00003 
00004 #include <synaps/init.h>
00005 
00006 __BEGIN_NAMESPACE_SYNAPS
00007 
00008 namespace shape
00009 {
00010 
00011   namespace SURFACE
00012   {
00013     template<class Point3, class C>
00014     void project( Point3 & r, const C & c , const Point3 & q )
00015     {
00016       std::cerr << "shape::SURFACE::project<Point3,SURFACE> not implemented\n";
00017     };
00018   }
00019 
00020   template <class R> struct Surface { R m_rep; const R & rep() const { return m_rep; }; R & rep() { return m_rep; }; };
00021   
00022 
00023   template<class R, class Point3> 
00024   void project( Point3& r, const Surface<R>& c, const Point3& q )
00025   {
00026     using namespace SURFACE;
00027     project(r,c.rep(),q);
00028   };
00029 };
00030 
00031 __END_NAMESPACE_SYNAPS
00032 
00033 #endif

SYNAPS DOCUMENTATION
logo