Monty.Geometry.SurfacePoseVectors (ExTbpMonty.Core v0.1.0)

Copy Markdown View Source

Surface normal and the two principal curvature directions.

Mirrors tbp/monty/geometry.py::SurfacePoseVectors.

value is a 3×3 matrix in row-major order, in [z (surface normal), x (principal curvature 1), y (principal curvature 2)] order. It is meant to be a proper rotation (determinant 1, orthonormal rows); like the Python class this module does not validate that, because Monty itself constructs degenerate instances when the curvature estimate is flat.

Summary

Types

t()

@type t() :: %Monty.Geometry.SurfacePoseVectors{value: [vector()]}

vector()

@type vector() :: [float()]

Functions

new(surface_normal, principal_curvature_1, principal_curvature_2)

@spec new(vector(), vector(), vector()) :: t()

Builds pose vectors from three row vectors.

principal_curvature_1(surface_pose_vectors)

@spec principal_curvature_1(t()) :: vector()

principal_curvature_2(surface_pose_vectors)

@spec principal_curvature_2(t()) :: vector()

surface_normal(surface_pose_vectors)

@spec surface_normal(t()) :: vector()