Logo  0.95.0-final
Finite Element Embedded Library and Language in C++
Feel++ Feel++ on Github Feel++ community
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
surface.hpp
Go to the documentation of this file.
1 /* -*- mode: c++; coding: utf-8; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; show-trailing-whitespace: t -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
2 
3  This file is part of the Feel library
4 
5  Author(s): Christophe Prud'homme <christophe.prudhomme@feelpp.org>
6  Date: 2005-11-27
7 
8  Copyright (C) 2005,2006 EPFL
9 
10  This library is free software; you can redistribute it and/or
11  modify it under the terms of the GNU Lesser General Public
12  License as published by the Free Software Foundation; either
13  version 3.0 of the License, or (at your option) any later version.
14 
15  This library is distributed in the hope that it will be useful,
16  but WITHOUT ANY WARRANTY; without even the implied warranty of
17  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18  Lesser General Public License for more details.
19 
20  You should have received a copy of the GNU Lesser General Public
21  License along with this library; if not, write to the Free Software
22  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
23 */
29 #ifndef __Surface_H
30 #define __Surface_H 1
31 
32 #include <feel/feelmesh/geo0d.hpp>
33 
34 namespace Feel
35 {
36 
48 class Surface
49 {
50 public:
51 
52 
56 
57 
59 
63 
67  Surface () {}
68 
72  Surface ( const Surface& ) {}
73 
77  virtual ~Surface () {}
78 
80 
84 
85 
87 
91 
92 
94 
98 
99 
101 
105 
110  virtual bool aboveSurface ( const Point& p ) const = 0;
111 
116  virtual bool belowSurface ( const Point& p ) const = 0;
117 
124  virtual bool onSurface ( const Point& p ) const = 0;
125 
129  virtual Point closestPoint ( const Point& p ) const = 0;
130 
135  virtual Point unitNormal ( const Point& p ) const = 0;
136 
145  virtual Point surfaceCoords ( const Point& world_coords ) const
146  {
147  Point p ( world_coords );
148  return p;
149  }
150 
151 
152 
160  virtual Point worldCoords ( const Point& surf_coords ) const
161  {
162  Point p ( surf_coords );
163  return p;
164  }
165 
167 
168 
169 
170 protected:
171 
172 private:
173 
174 };
175 } // Feel
176 #endif /* __Surface_H */

Generated on Fri Oct 25 2013 14:24:25 for Feel++ by doxygen 1.8.4