trimesh.curvature
curvature.py
Query mesh curvature.
- trimesh.curvature.discrete_gaussian_curvature_measure(mesh, points, radius)
Return the discrete gaussian curvature measure of a sphere centered at a point as detailed in ‘Restricted Delaunay triangulations and normal cycle’- Cohen-Steiner and Morvan.
This is the sum of the vertex defects at all vertices within the radius for each point.
- Parameters
points ((n, 3) float) – Points in space
radius (float ,) – The sphere radius, which can be zero if vertices passed are points.
- Returns
gaussian_curvature – Discrete gaussian curvature measure.
- Return type
(n,) float
- trimesh.curvature.discrete_mean_curvature_measure(mesh, points, radius)
Return the discrete mean curvature measure of a sphere centered at a point as detailed in ‘Restricted Delaunay triangulations and normal cycle’- Cohen-Steiner and Morvan.
This is the sum of the angle at all edges contained in the sphere for each point.
- Parameters
points ((n, 3) float) – Points in space
radius (float) – Sphere radius which should typically be greater than zero
- Returns
mean_curvature – Discrete mean curvature measure.
- Return type
(n,) float
- trimesh.curvature.face_angles_sparse(mesh)
A sparse matrix representation of the face angles.
- Returns
sparse – matrix is float shaped (len(vertices), len(faces))
- Return type
scipy.sparse.coo_matrix
- trimesh.curvature.line_ball_intersection(start_points, end_points, center, radius)
Compute the length of the intersection of a line segment with a ball.
- Parameters
start_points ((n,3) float, list of points in space) –
end_points ((n,3) float, list of points in space) –
center ((3,) float, the sphere center) –
radius (float, the sphere radius) –
- Returns
lengths
- Return type
(n,) float, the lengths.
- trimesh.curvature.sphere_ball_intersection(R, r)
Compute the surface area of the intersection of sphere of radius R centered at (0, 0, 0) with a ball of radius r centered at (R, 0, 0).
- Parameters
R (float, sphere radius) –
r (float, ball radius) –
- Returns
area
- Return type
float, the surface are.
- trimesh.curvature.vertex_defects(mesh)
Return the vertex defects, or (2*pi) minus the sum of the angles of every face that includes that vertex.
If a vertex is only included by coplanar triangles, this will be zero. For convex regions this is positive, and concave negative.
- Returns
vertex_defect – Vertex defect at the every vertex
- Return type
(len(self.vertices), ) float