IsoEx
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Modules Pages
Implicit.hh
1 /*===========================================================================*\
2  * *
3  * IsoEx *
4  * Copyright (C) 2002 by Computer Graphics Group, RWTH Aachen *
5  * www.rwth-graphics.de *
6  * *
7  *---------------------------------------------------------------------------*
8  * *
9  * License *
10  * *
11  * This library is free software; you can redistribute it and/or modify it *
12  * under the terms of the GNU Library General Public License as published *
13  * by the Free Software Foundation, version 2. *
14  * *
15  * This library is distributed in the hope that it will be useful, but *
16  * WITHOUT ANY WARRANTY; without even the implied warranty of *
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
18  * Library General Public License for more details. *
19  * *
20  * You should have received a copy of the GNU Library General Public *
21  * License along with this library; if not, write to the Free Software *
22  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. *
23  * *
24 \*===========================================================================*/
25 
26 //=============================================================================
27 //
28 // CLASS Implicit
29 //
30 //=============================================================================
31 
32 
33 #ifndef ISOEX_IMPLICIT_HH
34 #define ISOEX_IMPLICIT_HH
35 
36 
37 //== INCLUDES =================================================================
38 
39 #include <OpenMesh/Core/Geometry/VectorT.hh>
40 #include <IsoEx/Config/IsoExDefines.hh>
41 
42 //== NAMESPACES ===============================================================
43 
44 namespace IsoEx {
45 
46 //== CLASS DEFINITION =========================================================
47 
56 template< class Vec3 >
57 class ISOEXDLLEXPORT Implicit
58 {
59 public:
60 
61  typedef typename Vec3::value_type real;
62 
64 
65 
67  Implicit() {}
69  virtual ~Implicit() {}
70 
72 
73 
74 
76 
77 
82  virtual bool is_inside(const Vec3& _point) const = 0;
83 
84 
89  virtual real scalar_distance(const Vec3& _point) const = 0;
90 
91 
101  virtual bool directed_distance(const Vec3& _p0,
102  const Vec3& _p1,
103  Vec3& _point,
104  Vec3& _normal,
105  real& _distance) const = 0;
107 };
108 
109 
110 //=============================================================================
111 } // namespace IsoEx
112 //=============================================================================
113 #endif // ISOEX_IMPLICITSPHERE_HH defined
114 //=============================================================================
115 
virtual ~Implicit()
destructor
Definition: Implicit.hh:69
Implicit()
constructor
Definition: Implicit.hh:67
Definition: Implicit.hh:57
A type for volume images, or 3D textures.