MPQC
3.0.0-alpha
isosurf.h
1
//
2
// isosurf.h
3
//
4
// Copyright (C) 1996 Limit Point Systems, Inc.
5
//
6
// Author: Curtis Janssen <cljanss@limitpt.com>
7
// Maintainer: LPS
8
//
9
// This file is part of the SC Toolkit.
10
//
11
// The SC Toolkit is free software; you can redistribute it and/or modify
12
// it under the terms of the GNU Library General Public License as published by
13
// the Free Software Foundation; either version 2, or (at your option)
14
// any later version.
15
//
16
// The SC Toolkit is distributed in the hope that it will be useful,
17
// but WITHOUT ANY WARRANTY; without even the implied warranty of
18
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19
// GNU Library General Public License for more details.
20
//
21
// You should have received a copy of the GNU Library General Public License
22
// along with the SC Toolkit; see the file COPYING.LIB. If not, write to
23
// the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
24
//
25
// The U.S. Government is granted a limited license as per AL 91-7.
26
//
27
28
#ifndef _math_isosurf_isosurf_h
29
#define _math_isosurf_isosurf_h
30
31
#include <vector>
32
33
#include <math/isosurf/surf.h>
34
35
namespace
sc
{
36
37
class
IsosurfaceGen
{
38
protected
:
39
double
_resolution;
40
public
:
41
IsosurfaceGen
();
42
virtual
~
IsosurfaceGen
();
43
virtual
void
isosurface(
double
value,
44
TriangulatedSurface
& surf) = 0;
45
virtual
void
set_resolution(
double
);
46
};
47
48
class
ImplicitSurfacePolygonizer
:
public
IsosurfaceGen
{
49
// These static data and members are used to interface to the
50
// implicit.c routine provided in Graphics Gems IV.
51
static
ImplicitSurfacePolygonizer
* current;
52
// The following should not really be used publically.
53
// they are public to permit access through internal
54
// C-language functions.
55
public
:
57
static
int
add_triangle_to_current
(
int
,
int
,
int
,
sc::detail::VERTICES
);
59
static
double
value_of_current
(
double
x,
double
y,
double
z);
60
protected
:
61
Ref<Volume>
_volume;
62
63
std::vector<Ref<Vertex> > _tmp_vertices;
64
65
TriangulatedSurface
* _surf;
66
double
_value;
67
public
:
68
ImplicitSurfacePolygonizer
(
const
Ref<Volume>
&);
69
virtual
~
ImplicitSurfacePolygonizer
();
70
virtual
void
isosurface(
double
value,
71
TriangulatedSurface
& surf);
72
};
73
74
}
75
76
#endif
77
78
// Local Variables:
79
// mode: c++
80
// c-file-style: "CLJ"
81
// End:
sc::ImplicitSurfacePolygonizer::value_of_current
static double value_of_current(double x, double y, double z)
For internal use only.
sc::Ref
A template class that maintains references counts.
Definition:
ref.h:361
sc::IsosurfaceGen
Definition:
isosurf.h:37
sc::detail::vertices
Definition:
implicit.h:16
sc::ImplicitSurfacePolygonizer::add_triangle_to_current
static int add_triangle_to_current(int, int, int, sc::detail::VERTICES)
For internal use only.
sc::ImplicitSurfacePolygonizer
Definition:
isosurf.h:48
sc::TriangulatedSurface
Definition:
surf.h:54
sc
Contains all MPQC code up to version 3.
Definition:
mpqcin.h:14
Generated at Sun Jan 26 2020 23:24:00 for
MPQC
3.0.0-alpha using the documentation package
Doxygen
1.8.16.