@@ -260,11 +260,20 @@ def curvature_at(self, u, v):
260260
261261 Returns
262262 -------
263- :class:`~compas.geometry.Vector`
263+ tuple[[float, float, float], [float, float, float], float, [float, float, float], float, [float, float, float], float, float] | None
264+ A tuple containing the point, normal vector, maximum principal curvature value, maximum principal curvature direction,
265+ minimun principal curvature value, minimun principal curvature direction, gaussian curvature value and mean curvature
266+ value for the point at UV. None at failure.
264267
265268 """
266- vector = self .rhino_surface .CurvatureAt (u , v )
267- return vector_to_compas (vector )
269+ surface_curvature = self .rhino_surface .CurvatureAt (u , v )
270+ if surface_curvature :
271+ point , normal , kappa_u , direction_u , kappa_v , direction_v , gaussian , mean = surface_curvature
272+ cpoint = point_to_compas (point )
273+ cnormal = vector_to_compas (normal )
274+ cdirection_u = vector_to_compas (direction_u )
275+ cdirection_v = vector_to_compas (direction_v )
276+ return (cpoint , cnormal , kappa_u , cdirection_u , kappa_v , cdirection_v , gaussian , mean )
268277
269278 def frame_at (self , u , v ):
270279 """Compute the local frame at a point on the curve.
0 commit comments