#include <ImplicitizeSurfaceAlgo.h>
Public Member Functions | |
ImplicitizeSurfaceAlgo () | |
Default constructor. | |
ImplicitizeSurfaceAlgo (int deg) | |
Constructor. | |
ImplicitizeSurfaceAlgo (const SplineSurface &surf, int deg) | |
Constructor. | |
void | useSplineSurface (const SplineSurface &surf) |
Load the spline surface to be implicitized. | |
void | setDegree (int deg) |
Choose the degree of the implicit representation. | |
void | setTolerance (double tol) |
Set the tolerance. | |
void | perform () |
Perform the implicitization. | |
void | getResultData (BernsteinTetrahedralPoly &implicit, BaryCoordSystem3D &bc, double &sigma_min) |
Get the result of the implicitization. |
Input: A surface of type SplineSurface, and the degree that is chosen for the implicitization.
Output: A barycentric coordinate system, and the Bernstein polynomial that represents the implicit surface.
The algorithm first defines a barycentric coordinate system in terms of a tetrahedron that is slightly larger than the bounding box of the spline surface. It then computes the Bernstein polynomial representing the implicit surface. If the chosen degree is too low to produce the exact result, an approximate implicit surface is produced. If the degree is too high, the resulting polynomial will be reducible and contain the exact implicitization as a factor. If the input surface consists of multiple patches, the output polynomial will be a product of the separate implicit surfaces, or an approximation of it.
Definition at line 70 of file ImplicitizeSurfaceAlgo.h.
Go::ImplicitizeSurfaceAlgo::ImplicitizeSurfaceAlgo | ( | int | deg | ) | [inline, explicit] |
Constructor.
deg | degree of the implicit representation |
Definition at line 76 of file ImplicitizeSurfaceAlgo.h.
Go::ImplicitizeSurfaceAlgo::ImplicitizeSurfaceAlgo | ( | const SplineSurface & | surf, | |
int | deg | |||
) | [inline] |
Constructor.
surf | spline surface to be implicitized | |
deg | degree of the implicit representation |
Definition at line 80 of file ImplicitizeSurfaceAlgo.h.
void Go::ImplicitizeSurfaceAlgo::useSplineSurface | ( | const SplineSurface & | surf | ) | [inline] |
Load the spline surface to be implicitized.
surf | surfaceon SplineSurface form |
Definition at line 85 of file ImplicitizeSurfaceAlgo.h.
void Go::ImplicitizeSurfaceAlgo::setDegree | ( | int | deg | ) | [inline] |
Choose the degree of the implicit representation.
deg | degree |
Definition at line 90 of file ImplicitizeSurfaceAlgo.h.
void Go::ImplicitizeSurfaceAlgo::setTolerance | ( | double | tol | ) | [inline] |
Set the tolerance.
tol | tolerance; default value is 3.0e-15 |
Definition at line 95 of file ImplicitizeSurfaceAlgo.h.
void Go::ImplicitizeSurfaceAlgo::perform | ( | ) |
Perform the implicitization.
This function runs the implicitization algorithm.
void Go::ImplicitizeSurfaceAlgo::getResultData | ( | BernsteinTetrahedralPoly & | implicit, | |
BaryCoordSystem3D & | bc, | |||
double & | sigma_min | |||
) | [inline] |
Get the result of the implicitization.
implicit | a BernsteinTetrahedralPoly representing the implicit surface | |
bc | the barycentric coordinate system in which the BernsteinTetrahedralPoly is defined |
Definition at line 107 of file ImplicitizeSurfaceAlgo.h.