Interpolating Surface functions using IMLS. More...
Go to the source code of this file.
Classes | |
class | imesh_imls_surface |
struct | imesh_imls_surface::integral_data |
a data structure to hold the integral terms. More... | |
Functions | |
vgl_point_3d< double > | bisect (const imesh_imls_surface &f, vgl_point_3d< double > pp, vgl_point_3d< double > pn, double feps=1e-8, double xeps=1e-16) |
find the zero crossing point by bisection between positive point pp and negative point pn. | |
bool | snap_to_surface (const imesh_imls_surface &f, vgl_point_3d< double > &p, double step=0.5, double eps=1e-5) |
Move the point p along the gradient direction until reaching a zero crossing of f (within eps). | |
bool | snap_to_surface_with_normal (const imesh_imls_surface &f, vgl_point_3d< double > &p, vgl_vector_3d< double > n, double step=0.5, double eps=1e-8) |
Move the point p to minimize (f^2 + (n*f' - 1)^2)/f'*f' a zero crossing of f (within eps). | |
bool | snap_to_surface (const imesh_imls_surface &f, vgl_vector_3d< double > dir, vgl_point_3d< double > &p, double step=0.5, double eps=1e-5) |
Move the point p along direction dir until reaching a zero crossing of f (within eps). |
Interpolating Surface functions using IMLS.
This code is based on the paper: C. Shen, J. O'Brien, J. Shewchuk "Interpolating and Approximating Implicit Surfaces from Polygon Soup" SIGGRAPH 2004
Modifications <none yet>
Definition in file imesh_imls_surface.h.
vgl_point_3d<double> bisect | ( | const imesh_imls_surface & | f, |
vgl_point_3d< double > | pp, | ||
vgl_point_3d< double > | pn, | ||
double | feps, | ||
double | xeps | ||
) |
find the zero crossing point by bisection between positive point pp and negative point pn.
Stops searching when or
Stops searching when or
Definition at line 785 of file imesh_imls_surface.cxx.
bool snap_to_surface | ( | const imesh_imls_surface & | f, |
vgl_point_3d< double > & | p, | ||
double | step, | ||
double | eps | ||
) |
Move the point p along the gradient direction until reaching a zero crossing of f (within eps).
Return true if successful
Definition at line 817 of file imesh_imls_surface.cxx.
bool snap_to_surface | ( | const imesh_imls_surface & | f, |
vgl_vector_3d< double > | dir, | ||
vgl_point_3d< double > & | p, | ||
double | step, | ||
double | eps | ||
) |
Move the point p along direction dir until reaching a zero crossing of f (within eps).
Return true if successful
Definition at line 936 of file imesh_imls_surface.cxx.
bool snap_to_surface_with_normal | ( | const imesh_imls_surface & | f, |
vgl_point_3d< double > & | p, | ||
vgl_vector_3d< double > | n, | ||
double | step, | ||
double | eps | ||
) |
Move the point p to minimize (f^2 + (n*f' - 1)^2)/f'*f' a zero crossing of f (within eps).
Return true if successful
Move the point p to minimize (f^2 + (n*f' - 1)^2)/f'*f' a zero crossing of f (within eps).
Return true if successful
Definition at line 890 of file imesh_imls_surface.cxx.