Go::ImplicitizeCurveAndVectorAlgo Class Reference
[Implicitization]

Class that implements an algorithm for finding an implicit ruled surface defined by a curve and a vector. More...

#include <ImplicitizeCurveAndVectorAlgo.h>

List of all members.

Public Member Functions

 ImplicitizeCurveAndVectorAlgo ()
 Default constructor.
 ImplicitizeCurveAndVectorAlgo (int deg)
 Constructor.
 ImplicitizeCurveAndVectorAlgo (const SplineCurve &crv, const Point &pt, int deg)
 Constructor.
void useSplineCurve (const SplineCurve &crv)
 Load the spline curve for the implicitization.
void useVector (const Point &pt)
 Load the vector for the implicitization.
void setDegree (int deg)
 Choose the degree of the implicit representation.
void setTolerance (double tol)
 Set the tolerance.
int perform ()
 Perform the implicitization.
void getResultData (BernsteinTetrahedralPoly &implicit, BaryCoordSystem3D &bc, double &sigma_min)
 Get the result of the implicitization.


Detailed Description

Class that implements an algorithm for finding an implicit ruled surface defined by a curve and a vector.

Input: A curve of type SplineCurve, a vector of type Point, and the degree that is chosen for the implicit surface.

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 curve. It then computes the Bernstein polynomial representing the implicit ruled surface defined by the spline curve and vector. 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 curve consists of multiple segments, the output polynomial will be a product of the separate implicit surfaces, or an approximation of it.

Definition at line 71 of file ImplicitizeCurveAndVectorAlgo.h.


Constructor & Destructor Documentation

Go::ImplicitizeCurveAndVectorAlgo::ImplicitizeCurveAndVectorAlgo ( int  deg  )  [inline, explicit]

Constructor.

Parameters:
deg degree of the implicit representation

Definition at line 77 of file ImplicitizeCurveAndVectorAlgo.h.

Go::ImplicitizeCurveAndVectorAlgo::ImplicitizeCurveAndVectorAlgo ( const SplineCurve &  crv,
const Point &  pt,
int  deg 
) [inline]

Constructor.

Parameters:
crv 3D spline curve defining the implicit surface
pt 3D vector defining the implicit surface
deg degree of the implicit surface

Definition at line 83 of file ImplicitizeCurveAndVectorAlgo.h.


Member Function Documentation

void Go::ImplicitizeCurveAndVectorAlgo::useSplineCurve ( const SplineCurve &  crv  )  [inline]

Load the spline curve for the implicitization.

Parameters:
crv curve on SplineCurve form

Definition at line 89 of file ImplicitizeCurveAndVectorAlgo.h.

void Go::ImplicitizeCurveAndVectorAlgo::useVector ( const Point &  pt  )  [inline]

Load the vector for the implicitization.

Parameters:
pt vector of type Point

Definition at line 94 of file ImplicitizeCurveAndVectorAlgo.h.

void Go::ImplicitizeCurveAndVectorAlgo::setDegree ( int  deg  )  [inline]

Choose the degree of the implicit representation.

Parameters:
deg degree

Definition at line 99 of file ImplicitizeCurveAndVectorAlgo.h.

void Go::ImplicitizeCurveAndVectorAlgo::setTolerance ( double  tol  )  [inline]

Set the tolerance.

Parameters:
tol tolerance; default value is 3.0e-15

Definition at line 104 of file ImplicitizeCurveAndVectorAlgo.h.

int Go::ImplicitizeCurveAndVectorAlgo::perform (  ) 

Perform the implicitization.

This function runs the implicitization algorithm.

void Go::ImplicitizeCurveAndVectorAlgo::getResultData ( BernsteinTetrahedralPoly implicit,
BaryCoordSystem3D &  bc,
double &  sigma_min 
) [inline]

Get the result of the implicitization.

Return values:
implicit a BernsteinTetrahedralPoly representing the implicit surface
bc the barycentric coordinate system in which the BernsteinTetrahedralPoly is defined

Definition at line 116 of file ImplicitizeCurveAndVectorAlgo.h.


The documentation for this class was generated from the following file:
Generated on Mon Jun 11 15:13:16 2007 for GoTools Implicitization Library by  doxygen 1.5.1