#include <bmesh_curvature.H>
Collaboration diagram for BMESHcurvature_data:
Public Member Functions | |
Constructors | |
BMESHcurvature_data (const BMESH *mesh_in) | |
Computes all curvature data for the given BMESH. | |
Curvature Data Queries | |
curv_tensor_t | curv_tensor (const Bvert *v) |
diag_curv_t | diag_curv (const Bvert *v) |
double | k1 (const Bvert *v) |
double | k2 (const Bvert *v) |
Wvec | pdir1 (const Bvert *v) |
Wvec | pdir2 (const Bvert *v) |
dcurv_tensor_t | dcurv_tensor (const Bvert *v) |
double | feature_size () |
Private Member Functions | |
Curvature Computation Functions | |
void | compute_corner_areas () |
void | compute_vertex_areas () |
void | compute_face_curvatures () |
void | compute_vertex_curvatures () |
void | diagonalize_vertex_curvatures () |
void | compute_face_dcurv () |
void | compute_vertex_dcurv () |
void | compute_feature_size () |
Compute a "feature size" for the mesh: computed as 1% of the reciprocal of the 10-th percentile curvature. | |
Private Attributes | |
const BMESH * | mesh |
std::vector< corner_areas_t > | corner_areas |
"Voronoi" corner areas for all faces. | |
std::vector< double > | vertex_areas |
"Voronoi" areas for all vertices. | |
std::vector< curv_tensor_t > | face_curv |
Per-face curvature tensors. | |
std::vector< curv_tensor_t > | vertex_curv |
Per-vertex curvature tensors. | |
std::vector< diag_curv_t > | diag_vertex_curv |
Diagonolized per-vertex curvature tensors. | |
std::vector< dcurv_tensor_t > | face_dcurv |
Per-face curvature derivative tensors. | |
std::vector< dcurv_tensor_t > | vertex_dcurv |
Per-vertex curvature derivative tensors. | |
double | mesh_feature_size |
Feature size of the mesh. | |
Classes | |
struct | corner_areas_t |
Stores "Voronoi" corner area values for a single face in a mesh. More... | |
struct | curv_tensor_t |
Stores the three unique values of a 2x2 curvature tensor. More... | |
struct | dcurv_tensor_t |
Stores the four unique values of a 2x2x2 curvature derivative tensor. More... | |
struct | diag_curv_t |
Stores the results of diagonalizing a curvature tensor for a vertex. Specifically it stores the principal curvatures and directions for a vertex. More... |
Definition at line 23 of file bmesh_curvature.H.
|
Computes all curvature data for the given BMESH. Computes curvature and curvature derivatives for the given BMESH. Definition at line 58 of file bmesh_curvature.C. References compute_corner_areas(), compute_face_curvatures(), compute_face_dcurv(), compute_feature_size(), compute_vertex_areas(), compute_vertex_curvatures(), compute_vertex_dcurv(), and diagonalize_vertex_curvatures(). |
|
Computes the corner areas for all faces in the given BMESH. These are used for weighting purposes when computing the curvatures for the BMESH's vertices. Definition at line 139 of file bmesh_curvature.C. References Bface::area(), BMESH::bf(), compute_edge_vectors(), corner_areas, j, mlib::Vec3< V >::length_sqrd(), mesh, and BMESH::nfaces(). Referenced by BMESHcurvature_data(). |
|
Computes the curvatures per face for all faces in the given BMESH. Each face's curvature is estimated based on the variation of normals along its edges. Definition at line 220 of file bmesh_curvature.C. References BMESH::bf(), compute_edge_vectors(), compute_ntb_coord_sys(), face_curv, j, mesh, BMESH::nfaces(), Bvert::norm(), and Bface::v(). Referenced by BMESHcurvature_data(). |
|
Computes the derivative of curvature per face for all faces in the given BMESH. Each face's curvature derivative is estimated based on the variation of the per vertex curvatures along its edges. Definition at line 372 of file bmesh_curvature.C. References BMESH::bf(), compute_edge_vectors(), compute_ntb_coord_sys(), diag_vertex_curv, face_dcurv, Bvert::index(), j, k1(), k2(), mesh, BMESH::nfaces(), pdir1(), pdir2(), proj_curv(), and Bface::v(). Referenced by BMESHcurvature_data(). |
|
Compute a "feature size" for the mesh: computed as 1% of the reciprocal of the 10-th percentile curvature.
Definition at line 490 of file bmesh_curvature.C. References diag_vertex_curv, int(), k1(), k2(), mesh, mesh_feature_size, min(), and BMESH::nverts(). Referenced by BMESHcurvature_data(). |
|
Computes vertex areas for all vertices in the given BMESH. These are used for weighting purposes when computing the curvatures for the BMESH's vertices. Definition at line 195 of file bmesh_curvature.C. References BMESH::bf(), corner_areas, Bvert::index(), mesh, BMESH::nfaces(), BMESH::nverts(), Bface::v1(), Bface::v2(), Bface::v3(), and vertex_areas. Referenced by BMESHcurvature_data(). |
|
Computes the curvatures per vertex for all vertices in the given BMESH. The curvature of each vertex is estimated based on the weighted average of curvatures for each face surrounding that vertex. Definition at line 286 of file bmesh_curvature.C. References BMESH::bf(), compute_edge_vectors(), compute_initial_vertex_coord_sys(), compute_ntb_coord_sys(), corner_areas, face_curv, Bvert::index(), j, mesh, BMESH::nfaces(), BMESH::nverts(), pdir1(), pdir2(), proj_curv(), Bface::v(), vertex_areas, and vertex_curv. Referenced by BMESHcurvature_data(). |
|
Computes the derivative of curvature per vertex for all vertices in the given BMESH. The curvature derivative of each vertex is estimated based on the weighted average of curvature derivatives for each face surrounding that vertex. Definition at line 450 of file bmesh_curvature.C. References BMESH::bf(), compute_edge_vectors(), compute_ntb_coord_sys(), corner_areas, diag_vertex_curv, face_dcurv, Bvert::index(), j, mesh, BMESH::nfaces(), BMESH::nverts(), pdir1(), pdir2(), proj_dcurv(), Bface::v(), vertex_areas, and vertex_dcurv. Referenced by BMESHcurvature_data(). |
|
Definition at line 76 of file bmesh_curvature.C. References Bvert::index(), and vertex_curv. Referenced by Bvert::curv_tensor(). |
|
Definition at line 124 of file bmesh_curvature.C. References Bvert::index(), and vertex_dcurv. Referenced by Bvert::dcurv_tensor(). |
|
Definition at line 84 of file bmesh_curvature.C. References diag_vertex_curv, and Bvert::index(). Referenced by Bvert::diag_curv(). |
|
Computes the principal directions and curvatures per vertex for the given BMESH. These values are computed based on precomputed per vertex curvature tensors from the compute_vertex_curvature() function. Definition at line 332 of file bmesh_curvature.C. References BMESH::bv(), compute_initial_vertex_coord_sys(), diag_vertex_curv, diagonalize_curv(), k1(), k2(), mesh, Bvert::norm(), BMESH::nverts(), pdir1(), pdir2(), and vertex_curv. Referenced by BMESHcurvature_data(). |
|
Definition at line 178 of file bmesh_curvature.H. References mesh_feature_size. Referenced by XToonTexture::update_cam(). |
|
Definition at line 92 of file bmesh_curvature.C. References diag_vertex_curv, and Bvert::index(). Referenced by compute_face_dcurv(), compute_feature_size(), diagonalize_vertex_curvatures(), and Bvert::k1(). |
|
Definition at line 100 of file bmesh_curvature.C. References diag_vertex_curv, and Bvert::index(). Referenced by compute_face_dcurv(), compute_feature_size(), diagonalize_vertex_curvatures(), and Bvert::k2(). |
|
Definition at line 108 of file bmesh_curvature.C. References diag_vertex_curv, and Bvert::index(). Referenced by compute_face_dcurv(), compute_vertex_curvatures(), compute_vertex_dcurv(), diagonalize_vertex_curvatures(), and Bvert::pdir1(). |
|
Definition at line 116 of file bmesh_curvature.C. References diag_vertex_curv, and Bvert::index(). Referenced by compute_face_dcurv(), compute_vertex_curvatures(), compute_vertex_dcurv(), diagonalize_vertex_curvatures(), and Bvert::pdir2(). |
|
"Voronoi" corner areas for all faces.
Definition at line 187 of file bmesh_curvature.H. Referenced by compute_corner_areas(), compute_vertex_areas(), compute_vertex_curvatures(), and compute_vertex_dcurv(). |
|
Diagonolized per-vertex curvature tensors.
Definition at line 191 of file bmesh_curvature.H. Referenced by compute_face_dcurv(), compute_feature_size(), compute_vertex_dcurv(), diag_curv(), diagonalize_vertex_curvatures(), k1(), k2(), pdir1(), and pdir2(). |
|
Per-face curvature tensors.
Definition at line 189 of file bmesh_curvature.H. Referenced by compute_face_curvatures(), and compute_vertex_curvatures(). |
|
Per-face curvature derivative tensors.
Definition at line 192 of file bmesh_curvature.H. Referenced by compute_face_dcurv(), and compute_vertex_dcurv(). |
|
Definition at line 185 of file bmesh_curvature.H. Referenced by compute_corner_areas(), compute_face_curvatures(), compute_face_dcurv(), compute_feature_size(), compute_vertex_areas(), compute_vertex_curvatures(), compute_vertex_dcurv(), and diagonalize_vertex_curvatures(). |
|
Feature size of the mesh.
Definition at line 194 of file bmesh_curvature.H. Referenced by compute_feature_size(), and feature_size(). |
|
"Voronoi" areas for all vertices.
Definition at line 188 of file bmesh_curvature.H. Referenced by compute_vertex_areas(), compute_vertex_curvatures(), and compute_vertex_dcurv(). |
|
Per-vertex curvature tensors.
Definition at line 190 of file bmesh_curvature.H. Referenced by compute_vertex_curvatures(), curv_tensor(), and diagonalize_vertex_curvatures(). |
|
Per-vertex curvature derivative tensors.
Definition at line 193 of file bmesh_curvature.H. Referenced by compute_vertex_dcurv(), and dcurv_tensor(). |