GTS Library Reference Manual |
---|
#include <gts.h>gboolean gts_vertex_gaussian_curvature (GtsVertex *v, GtsSurface *s,gdouble *Kg);gboolean gts_vertex_mean_curvature_normal (GtsVertex *v, GtsSurface *s,GtsVector Kh);void gts_vertex_principal_curvatures (gdouble Kh,gdouble Kg,gdouble *K1,gdouble *K2);void gts_vertex_principal_directions (GtsVertex *v, GtsSurface *s,GtsVector Kh,gdouble Kg,GtsVector e1,GtsVector e2);
gboolean gts_vertex_gaussian_curvature (GtsVertex *v, GtsSurface *s,gdouble *Kg);
Computes the Discrete Gaussian Curvature approximation at v
.
This approximation is from the paper: Discrete Differential-Geometry Operators for Triangulated 2-Manifolds Mark Meyer, Mathieu Desbrun, Peter Schroder, Alan H. Barr VisMath '02, Berlin (Germany) http://www-grail.usc.edu/pubs.html
v : | a GtsVertex. |
s : | a GtsSurface. |
Kg : | the Discrete Gaussian Curvature approximation at |
Returns : | TRUE if the operator could be evaluated, FALSE if the
evaluation failed for some reason ( |
gboolean gts_vertex_mean_curvature_normal (GtsVertex *v, GtsSurface *s,GtsVector Kh);
Computes the Discrete Mean Curvature Normal approximation at v
.
The mean curvature at v
is half the magnitude of the vector Kh
.
Note: the normal computed is not unit length, and may point either
into or out of the surface, depending on the curvature at v
. It
is the responsibility of the caller of the function to use the mean
curvature normal appropriately.
This approximation is from the paper: Discrete Differential-Geometry Operators for Triangulated 2-Manifolds Mark Meyer, Mathieu Desbrun, Peter Schroder, Alan H. Barr VisMath '02, Berlin (Germany) http://www-grail.usc.edu/pubs.html
v : | a GtsVertex. |
s : | a GtsSurface. |
Kh : | the Mean Curvature Normal at |
Returns : | TRUE if the operator could be evaluated, FALSE if the
evaluation failed for some reason ( |
void gts_vertex_principal_curvatures (gdouble Kh,gdouble Kg,gdouble *K1,gdouble *K2);
Computes the principal curvatures at a point given the mean and Gaussian curvatures at that point.
The mean curvature can be computed as one-half the magnitude of the
vector computed by gts_vertex_mean_curvature_normal()
.
The Gaussian curvature can be computed with
gts_vertex_gaussian_curvature()
.
Kh : | mean curvature. |
Kg : | Gaussian curvature. |
K1 : | first principal curvature. |
K2 : | second principal curvature. |
void gts_vertex_principal_directions (GtsVertex *v, GtsSurface *s,GtsVector Kh,gdouble Kg,GtsVector e1,GtsVector e2);
Computes the principal curvature directions at a point given Kh
and Kg
, the mean curvature normal and Gaussian curvatures at that
point, computed with gts_vertex_mean_curvature_normal()
and
gts_vertex_gaussian_curvature()
, respectively.
Note that this computation is very approximate and tends to be unstable. Smoothing of the surface or the principal directions may be necessary to achieve reasonable results.
v : | a GtsVertex. |
s : | a GtsSurface. |
Kh : | mean curvature normal (a |
Kg : | Gaussian curvature (a gdouble). |
e1 : | first principal curvature direction (direction of largest curvature). |
e2 : | second principal curvature direction. |
<<< Delaunay and constrained Delaunay triangulations | Progressive and Hierarchical surfaces >>> |