Skip to content

Commit 7e76a93

Browse files
committed
curvature_at now returns a tuple with all the info Rhino generates
1 parent e5a5596 commit 7e76a93

File tree

1 file changed

+14
-3
lines changed

1 file changed

+14
-3
lines changed

src/compas_rhino/geometry/surfaces/surface.py

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -186,12 +186,23 @@ def curvature_at(self, u, v):
186186
187187
Returns
188188
-------
189-
:class:`~compas.geometry.Vector`
189+
tuple[[float, float, float], [float, float, float], float, [float, float, float], float, [float, float, float], float, float] | None
190+
A tuple containing the point, normal vector, maximum principal curvature value, maximum principal curvature direction,
191+
minimun principal curvature value, minimun principal curvature direction, gaussian curvature value and mean curvature
192+
value for the point at UV. None at failure.
193+
190194
191195
"""
192196
surface_curvature = self.rhino_surface.CurvatureAt(u, v)
193-
vector = surface_curvature.Direction(0)
194-
return vector_to_compas(vector)
197+
if surface_curvature:
198+
point, normal, kappa_u, direction_u, kappa_v, direction_v, gaussian, mean = surface_curvature
199+
cpoint = point_to_compas(point)
200+
cnormal = vector_to_compas(normal)
201+
cdirection_u = vector_to_compas(direction_u)
202+
cdirection_v = vector_to_compas(direction_v)
203+
return (cpoint, cnormal, kappa_u, cdirection_u, kappa_v, cdirection_v, gaussian, mean)
204+
else:
205+
return None
195206

196207
def frame_at(self, u, v):
197208
"""Compute the local frame at a point on the curve.

0 commit comments

Comments
 (0)