Sign in

    python123-ops/moon-cv-geometry/core does not have a README file

    GeometryError

    pub(all) suberror GeometryError {
    DegenerateInput(String)
    NotEnoughPoints(String)
    } derive(Eq,
    Debug
    )

    Aabb3

    pub(all) struct Aabb3 {
    min : Point3
    max : Point3
    } derive(Eq,
    Debug
    )

    Aabb3::center

    fn Aabb3::center(box : Aabb3) -> Point3

    Aabb3::contains

    fn Aabb3::contains(box : Aabb3, p : Point3) -> Bool

    Aabb3::expand

    fn Aabb3::expand(box : Aabb3, margin : Double) -> Aabb3

    Aabb3::from_points

    fn Aabb3::from_points(points : ArrayView[Point3]) -> Aabb3 raise GeometryError

    Aabb3::volume

    fn Aabb3::volume(box : Aabb3) -> Double

    Circle2

    pub(all) struct Circle2 {
    center : Point2
    radius : Double
    } derive(Eq,
    Debug
    )

    Circle2::contains

    fn Circle2::contains(circle : Circle2, point : Point2) -> Bool

    Circle2::new

    fn Circle2::new(center~ : Point2, radius~ : Double) -> Circle2 raise GeometryError

    Circle2::signed_distance

    fn Circle2::signed_distance(circle : Circle2, point : Point2) -> Double

    Line2

    pub(all) struct Line2 {
    normal : Vec2
    offset : Double
    } derive(Eq,
    Debug
    )

    Line2::from_points

    fn Line2::from_points(a : Point2, b : Point2) -> Line2 raise GeometryError

    Line2::intersect

    fn Line2::intersect(a : Line2, b : Line2) -> Point2?

    Line2::project

    fn Line2::project(line : Line2, point : Point2) -> Point2

    Line2::signed_distance

    fn Line2::signed_distance(line : Line2, point : Point2) -> Double

    Mat3

    pub(all) struct Mat3 {
    m00 : Double
    m01 : Double
    m02 : Double
    m10 : Double
    m11 : Double
    m12 : Double
    m20 : Double
    m21 : Double
    m22 : Double
    } derive(Eq,
    Debug
    )

    Mat3::add

    fn Mat3::add(a : Mat3, b : Mat3) -> Mat3

    Mat3::det

    fn Mat3::det(m : Mat3) -> Double

    Mat3::diagonal

    fn Mat3::diagonal(matrix : Mat3) -> Vec3

    Mat3::frobenius_norm

    fn Mat3::frobenius_norm(m : Mat3) -> Double

    Mat3::hadamard

    fn Mat3::hadamard(a : Mat3, b : Mat3) -> Mat3

    Mat3::inverse

    fn Mat3::inverse(m : Mat3) -> Mat3 raise GeometryError

    Mat3::is_orthonormal

    fn Mat3::is_orthonormal(m : Mat3, tolerance? : Double) -> Bool

    Mat3::is_symmetric

    fn Mat3::is_symmetric(matrix : Mat3, tolerance? : Double) -> Bool

    Mat3::mul

    fn Mat3::mul(a : Mat3, b : Mat3) -> Mat3

    Mat3::mul_vec3

    fn Mat3::mul_vec3(m : Mat3, v : Vec3) -> Vec3

    Mat3::off_diagonal_norm

    fn Mat3::off_diagonal_norm(matrix : Mat3) -> Double

    Mat3::power

    fn Mat3::power(matrix : Mat3, exponent : Int) -> Mat3

    Mat3::scale

    fn Mat3::scale(m : Mat3, value : Double) -> Mat3

    Mat3::sub

    fn Mat3::sub(a : Mat3, b : Mat3) -> Mat3

    Mat3::trace

    fn Mat3::trace(matrix : Mat3) -> Double

    Mat3::transpose

    fn Mat3::transpose(m : Mat3) -> Mat3

    Mat34

    pub(all) struct Mat34 {
    m00 : Double
    m01 : Double
    m02 : Double
    m03 : Double
    m10 : Double
    m11 : Double
    m12 : Double
    m13 : Double
    m20 : Double
    m21 : Double
    m22 : Double
    m23 : Double
    } derive(Eq,
    Debug
    )

    Mat34::transform_point

    fn Mat34::transform_point(m : Mat34, p : Point3) -> Point3

    Mat4

    pub(all) struct Mat4 {
    m00 : Double
    m01 : Double
    m02 : Double
    m03 : Double
    m10 : Double
    m11 : Double
    m12 : Double
    m13 : Double
    m20 : Double
    m21 : Double
    m22 : Double
    m23 : Double
    m30 : Double
    m31 : Double
    m32 : Double
    m33 : Double
    } derive(Eq,
    Debug
    )

    Mat4::mul

    fn Mat4::mul(a : Mat4, b : Mat4) -> Mat4

    Mat4::transform_point

    fn Mat4::transform_point(m : Mat4, p : Point3) -> Point3 raise GeometryError

    Mat4::transpose

    fn Mat4::transpose(m : Mat4) -> Mat4

    NumericRange

    pub(all) struct NumericRange {
    min : Double
    max : Double
    } derive(Eq,
    Debug
    )

    Plane3

    pub(all) struct Plane3 {
    normal : Vec3
    offset : Double
    } derive(Eq,
    Debug
    )

    Plane3::from_points

    fn Plane3::from_points(a : Point3, b : Point3, c : Point3) -> Plane3 raise GeometryError

    Plane3::project

    fn Plane3::project(plane : Plane3, point : Point3) -> Point3

    Plane3::ray_hit

    fn Plane3::ray_hit(plane : Plane3, ray : Ray3) -> Double?

    Plane3::signed_distance

    fn Plane3::signed_distance(plane : Plane3, point : Point3) -> Double

    Point2

    pub(all) struct Point2 {
    x : Double
    y : Double
    } derive(Eq,
    Debug
    )

    Point2::minus

    fn Point2::minus(a : Point2, b : Point2) -> Vec2

    Point2::new

    fn Point2::new(x~ : Double, y~ : Double) -> Point2

    Point2::to_homogeneous

    fn Point2::to_homogeneous(p : Point2) -> Vec3

    Point2::to_vec

    fn Point2::to_vec(p : Point2) -> Vec2

    Point2::translate

    fn Point2::translate(p : Point2, v : Vec2) -> Point2

    Point3

    pub(all) struct Point3 {
    x : Double
    y : Double
    z : Double
    } derive(Eq,
    Debug
    )

    Point3::minus

    fn Point3::minus(a : Point3, b : Point3) -> Vec3

    Point3::new

    fn Point3::new(x~ : Double, y~ : Double, z~ : Double) -> Point3

    Point3::to_vec

    fn Point3::to_vec(p : Point3) -> Vec3

    Point3::translate

    fn Point3::translate(p : Point3, v : Vec3) -> Point3

    PointCloud

    pub(all) struct PointCloud {
    points : Array[Point3]
    } derive(Eq,
    Debug
    )

    PointCloud::bounds

    fn PointCloud::bounds(cloud : PointCloud) -> Aabb3 raise GeometryError

    PointCloud::centroid

    fn PointCloud::centroid(cloud : PointCloud) -> Point3 raise GeometryError

    PointCloud::depth_range

    fn PointCloud::depth_range(cloud : PointCloud) -> (Double, Double) raise GeometryError

    PointCloud::filter_depth

    fn PointCloud::filter_depth(cloud : PointCloud, minimum~ : Double, maximum~ : Double) -> PointCloud raise GeometryError

    PointCloud::from_points

    fn PointCloud::from_points(points : ArrayView[Point3]) -> PointCloud

    PointCloud::is_empty

    fn PointCloud::is_empty(cloud : PointCloud) -> Bool

    PointCloud::length

    fn PointCloud::length(cloud : PointCloud) -> Int

    PointCloud::positive_depth_ratio

    fn PointCloud::positive_depth_ratio(cloud : PointCloud) -> Double

    PointCloud::rms_radius

    fn PointCloud::rms_radius(cloud : PointCloud) -> Double raise GeometryError

    PointCloud::valid_depth_count

    fn PointCloud::valid_depth_count(cloud : PointCloud) -> Int

    PointCloudPipelineSummary

    pub(all) struct PointCloudPipelineSummary {
    count : Int
    centroid : Point3
    minimum : Point3
    maximum : Point3
    radius : Double
    mean_distance : Double
    maximum_distance : Double
    } derive(Eq,
    Debug
    )

    Production point-cloud operators used by calibration and reconstruction.

    The functions in this file deliberately operate on plain arrays. This keeps the package usable in Wasm, native batch tools, and embedded applications without forcing callers to adopt a storage backend.

    Quadratic

    pub(all) struct Quadratic {
    a : Double
    b : Double
    c : Double
    } derive(Eq,
    Debug
    )

    Quadratic::derivative

    fn Quadratic::derivative(q : Quadratic, x : Double) -> Double

    Quadratic::evaluate

    fn Quadratic::evaluate(q : Quadratic, x : Double) -> Double

    Quadratic::new

    fn Quadratic::new(a~ : Double, b~ : Double, c~ : Double) -> Quadratic

    Quadratic::roots

    fn Quadratic::roots(q : Quadratic) -> Array[Double] raise GeometryError

    Quaternion

    pub(all) struct Quaternion {
    w : Double
    x : Double
    y : Double
    z : Double
    } derive(Eq,
    Debug
    )

    Quaternion::conjugate

    fn Quaternion::conjugate(q : Quaternion) -> Quaternion

    Quaternion::identity

    fn Quaternion::identity() -> Quaternion

    Quaternion::mul

    Quaternion::new

    fn Quaternion::new(w~ : Double, x~ : Double, y~ : Double, z~ : Double) -> Quaternion

    Quaternion::norm

    fn Quaternion::norm(q : Quaternion) -> Double

    Quaternion::normalize

    fn Quaternion::normalize(q : Quaternion) -> Quaternion raise GeometryError

    Quaternion::rotate

    fn Quaternion::rotate(q : Quaternion, v : Vec3) -> Vec3

    Quaternion::to_mat3

    fn Quaternion::to_mat3(q : Quaternion) -> Mat3

    Ray3

    pub(all) struct Ray3 {
    origin : Point3
    direction : Vec3
    } derive(Eq,
    Debug
    )

    Ray3::closest_midpoint

    fn Ray3::closest_midpoint(a : Ray3, b : Ray3) -> Point3 raise GeometryError

    Ray3::closest_separation

    fn Ray3::closest_separation(a : Ray3, b : Ray3) -> Double raise GeometryError

    Ray3::new

    fn Ray3::new(origin~ : Point3, direction~ : Vec3) -> Ray3 raise GeometryError

    Ray3::point_at

    fn Ray3::point_at(ray : Ray3, depth : Double) -> Point3

    Rect2

    pub(all) struct Rect2 {
    min : Point2
    max : Point2
    } derive(Eq,
    Debug
    )

    Rect2::area

    fn Rect2::area(rect : Rect2) -> Double

    Rect2::center

    fn Rect2::center(rect : Rect2) -> Point2

    Rect2::contains

    fn Rect2::contains(rect : Rect2, p : Point2) -> Bool

    Rect2::expand

    fn Rect2::expand(rect : Rect2, margin : Double) -> Rect2 raise GeometryError

    Rect2::from_center_size

    fn Rect2::from_center_size(center~ : Point2, width~ : Double, height~ : Double) -> Rect2 raise GeometryError

    Rect2::height

    fn Rect2::height(rect : Rect2) -> Double

    Rect2::intersection

    fn Rect2::intersection(a : Rect2, b : Rect2) -> Rect2?

    Rect2::new

    fn Rect2::new(min~ : Point2, max~ : Point2) -> Rect2 raise GeometryError

    Rect2::union

    fn Rect2::union(a : Rect2, b : Rect2) -> Rect2

    Rect2::width

    fn Rect2::width(rect : Rect2) -> Double

    RigidTransform

    pub(all) struct RigidTransform {
    rotation : Mat3
    translation : Vec3
    } derive(Eq,
    Debug
    )

    RigidTransform::apply

    RigidTransform::compose

    RigidTransform::identity

    fn RigidTransform::identity() -> RigidTransform

    RigidTransform::inverse

    RigidTransform::new

    fn RigidTransform::new(rotation~ : Mat3, translation~ : Vec3) -> RigidTransform

    ScalarGrid

    pub(all) struct ScalarGrid {
    width : Int
    height : Int
    values : Array[Double]
    }

    Regular scalar grid used for masks, heatmaps, and calibration residuals.

    ScalarGrid::bilinear

    fn ScalarGrid::bilinear(grid : ScalarGrid, x : Double, y : Double) -> Double?

    ScalarGrid::contains

    fn ScalarGrid::contains(grid : ScalarGrid, x : Int, y : Int) -> Bool

    ScalarGrid::get

    fn ScalarGrid::get(grid : ScalarGrid, x : Int, y : Int) -> Double?

    ScalarGrid::height

    fn ScalarGrid::height(grid : ScalarGrid) -> Int

    ScalarGrid::length

    fn ScalarGrid::length(grid : ScalarGrid) -> Int

    ScalarGrid::map

    fn ScalarGrid::map(grid : ScalarGrid, f : (Double) -> Double) -> ScalarGrid

    ScalarGrid::mean

    fn ScalarGrid::mean(grid : ScalarGrid) -> Double

    ScalarGrid::min_max

    fn ScalarGrid::min_max(grid : ScalarGrid) -> (Double, Double)?

    ScalarGrid::new

    fn ScalarGrid::new(width~ : Int, height~ : Int, fill~ : Double) -> ScalarGrid

    ScalarGrid::set

    fn ScalarGrid::set(grid : ScalarGrid, x : Int, y : Int, value : Double) -> Bool

    ScalarGrid::sum

    fn ScalarGrid::sum(grid : ScalarGrid) -> Double

    ScalarGrid::width

    fn ScalarGrid::width(grid : ScalarGrid) -> Int

    StreamingSummary

    pub(all) struct StreamingSummary {
    count : Int
    mean : Double
    variance : Double
    minimum : Double
    maximum : Double
    } derive(Eq,
    Debug
    )

    Online scalar statistics for long-running reconstruction jobs.

    StreamingSummary::is_empty

    fn StreamingSummary::is_empty(summary : StreamingSummary) -> Bool

    StreamingSummary::population_variance

    fn StreamingSummary::population_variance(summary : StreamingSummary) -> Double

    StreamingSummary::range

    fn StreamingSummary::range(summary : StreamingSummary) -> Double

    StreamingSummary::sample_variance

    fn StreamingSummary::sample_variance(summary : StreamingSummary) -> Double

    StreamingSummary::standard_deviation

    fn StreamingSummary::standard_deviation(summary : StreamingSummary) -> Double

    TransformChain

    pub(all) struct TransformChain {
    transforms : Array[RigidTransform]
    } derive(Eq,
    Debug
    )

    TransformChain::append

    fn TransformChain::append(chain : TransformChain, transform : RigidTransform) -> TransformChain

    TransformChain::apply

    fn TransformChain::apply(chain : TransformChain, point : Point3) -> Point3

    TransformChain::compose

    TransformChain::inverse

    TransformChain::is_empty

    fn TransformChain::is_empty(chain : TransformChain) -> Bool

    TransformChain::length

    fn TransformChain::length(chain : TransformChain) -> Int

    TransformChain::new

    Triangle3

    pub(all) struct Triangle3 {
    a : Point3
    b : Point3
    c : Point3
    } derive(Eq,
    Debug
    )

    Triangle3::area

    fn Triangle3::area(t : Triangle3) -> Double

    Triangle3::barycentric

    fn Triangle3::barycentric(t : Triangle3, p : Point3) -> (Double, Double, Double) raise GeometryError

    Triangle3::centroid

    fn Triangle3::centroid(t : Triangle3) -> Point3

    Triangle3::new

    fn Triangle3::new(a~ : Point3, b~ : Point3, c~ : Point3) -> Triangle3

    Triangle3::normal

    fn Triangle3::normal(t : Triangle3) -> Vec3 raise GeometryError

    Vec2

    pub(all) struct Vec2 {
    x : Double
    y : Double
    } derive(Eq,
    Debug
    )

    Vec2::add

    fn Vec2::add(a : Vec2, b : Vec2) -> Vec2

    Vec2::dot

    fn Vec2::dot(a : Vec2, b : Vec2) -> Double

    Vec2::new

    fn Vec2::new(x~ : Double, y~ : Double) -> Vec2

    Vec2::norm

    fn Vec2::norm(v : Vec2) -> Double

    Vec2::norm2

    fn Vec2::norm2(v : Vec2) -> Double

    Vec2::normalize

    fn Vec2::normalize(v : Vec2) -> Vec2 raise GeometryError

    Vec2::scale

    fn Vec2::scale(v : Vec2, s : Double) -> Vec2

    Vec2::sub

    fn Vec2::sub(a : Vec2, b : Vec2) -> Vec2

    Vec3

    pub(all) struct Vec3 {
    x : Double
    y : Double
    z : Double
    } derive(Eq,
    Debug
    )

    Vec3::add

    fn Vec3::add(a : Vec3, b : Vec3) -> Vec3

    Vec3::cross

    fn Vec3::cross(a : Vec3, b : Vec3) -> Vec3

    Vec3::dot

    fn Vec3::dot(a : Vec3, b : Vec3) -> Double

    Vec3::new

    fn Vec3::new(x~ : Double, y~ : Double, z~ : Double) -> Vec3

    Vec3::norm

    fn Vec3::norm(v : Vec3) -> Double

    Vec3::norm2

    fn Vec3::norm2(v : Vec3) -> Double

    Vec3::normalize

    fn Vec3::normalize(v : Vec3) -> Vec3 raise GeometryError

    Vec3::scale

    fn Vec3::scale(v : Vec3, s : Double) -> Vec3

    Vec3::sub

    fn Vec3::sub(a : Vec3, b : Vec3) -> Vec3

    abs

    fn abs(x : Double) -> Double

    add_arrays

    fn add_arrays(a : ArrayView[Double], b : ArrayView[Double]) -> Array[Double] raise GeometryError

    add_scalars

    fn add_scalars(left : ArrayView[Double], right : ArrayView[Double]) -> Array[Double]

    Batch arithmetic helpers for solver assembly and deterministic tests.

    all_close

    fn all_close(a : ArrayView[Double], b : ArrayView[Double], tolerance? : Double) -> Bool

    almost_equal

    fn almost_equal(a : Double, b : Double, eps? : Double) -> Bool

    angle_between

    fn angle_between(a : Vec3, b : Vec3) -> Double raise GeometryError

    barycentric3_contains

    fn barycentric3_contains(weights : (Double, Double, Double), tolerance? : Double) -> Bool

    barycentric_2d

    fn barycentric_2d(a : Point2, b : Point2, c : Point2, p : Point2) -> (Double, Double, Double) raise GeometryError

    barycentric_contains

    fn barycentric_contains(weights : (Double, Double, Double), tolerance? : Double) -> Bool

    batch_cross

    fn batch_cross(left : ArrayView[Vec3], right : ArrayView[Vec3]) -> Array[Vec3]

    batch_dot

    fn batch_dot(left : ArrayView[Vec3], right : ArrayView[Vec3]) -> Array[Double]

    batch_norms

    fn batch_norms(vectors : ArrayView[Vec3]) -> Array[Double]

    bilerp2

    fn bilerp2(a : Double, b : Double, c : Double, d : Double, x : Double, y : Double) -> Double

    bounding_radius

    fn bounding_radius(points : ArrayView[Point3], center : Point3) -> Double

    catmull_rom_sample

    fn catmull_rom_sample(points : ArrayView[Double], count_per_segment : Int) -> Array[Double]

    centroid3

    fn centroid3(points : ArrayView[Point3]) -> Point3 raise GeometryError

    centroid_after_transform

    fn centroid_after_transform(transform : RigidTransform, points : ArrayView[Point3]) -> Point3 raise GeometryError

    clamp

    fn clamp(x : Double, lo~ : Double, hi~ : Double) -> Double

    clamp_scalars

    fn clamp_scalars(values : ArrayView[Double], minimum : Double, maximum : Double) -> Array[Double]

    clamp_unit

    fn clamp_unit(value : Double) -> Double

    closest_point_on_segment

    fn closest_point_on_segment(a : Point2, b : Point2, point : Point2) -> Point2

    closest_point_on_triangle

    fn closest_point_on_triangle(t : Triangle3, point : Point3) -> Point3 raise GeometryError

    combine_quality_scores

    fn combine_quality_scores(scores : ArrayView[Double], weights : ArrayView[Double]) -> Double raise GeometryError

    compose_inverse_transforms

    fn compose_inverse_transforms(transforms : ArrayView[RigidTransform]) -> RigidTransform

    compose_transforms

    fn compose_transforms(transforms : ArrayView[RigidTransform]) -> RigidTransform

    condition_proxy2

    fn condition_proxy2(points : ArrayView[Point2]) -> Double raise GeometryError

    condition_proxy3

    fn condition_proxy3(points : ArrayView[Point3]) -> Double raise GeometryError

    coordinate_extent2

    fn coordinate_extent2(points : ArrayView[Point2]) -> Double raise GeometryError

    coordinate_extent3

    fn coordinate_extent3(points : ArrayView[Point3]) -> Double raise GeometryError

    coordinate_finite_point2

    fn coordinate_finite_point2(p : Point2) -> Bool

    coordinate_finite_point3

    fn coordinate_finite_point3(p : Point3) -> Bool

    correlation_streaming

    fn correlation_streaming(left : ArrayView[Double], right : ArrayView[Double]) -> Double

    cosine_interpolation2

    fn cosine_interpolation2(left : Double, right : Double, amount : Double) -> Double

    cosine_similarity_values

    fn cosine_similarity_values(left : ArrayView[Double], right : ArrayView[Double]) -> Double

    count_above

    fn count_above(values : ArrayView[Double], threshold : Double) -> Int

    count_below

    fn count_below(values : ArrayView[Double], threshold : Double) -> Int

    covariance_2d

    fn covariance_2d(points : ArrayView[Point2]) -> Mat3 raise GeometryError

    covariance_3d

    fn covariance_3d(points : ArrayView[Point3]) -> Mat4 raise GeometryError

    covariance_streaming

    fn covariance_streaming(left : ArrayView[Double], right : ArrayView[Double]) -> Double

    cubic_hermite2

    fn cubic_hermite2(p0 : Double, p1 : Double, tangent0 : Double, tangent1 : Double, amount : Double) -> Double

    cubic_hermite_sample

    fn cubic_hermite_sample(p0 : Double, p1 : Double, tangent0 : Double, tangent1 : Double, count~ : Int) -> Array[Double]

    cubic_interpolation2

    fn cubic_interpolation2(a : Double, b : Double, c : Double, d : Double, amount : Double) -> Double

    cumulative_lengths

    fn cumulative_lengths(points : ArrayView[Point2]) -> Array[Double]

    cumulative_sum

    fn cumulative_sum(values : ArrayView[Double]) -> Array[Double]

    damped_update

    fn damped_update(current : Double, gradient : Double, damping? : Double) -> Double

    distance2

    fn distance2(a : Point2, b : Point2) -> Double

    distance3

    fn distance3(a : Point3, b : Point3) -> Double

    dot_array

    fn dot_array(a : ArrayView[Double], b : ArrayView[Double]) -> Double raise GeometryError

    dot_scalars

    fn dot_scalars(left : ArrayView[Double], right : ArrayView[Double]) -> Double

    downsample_grid

    fn downsample_grid(grid : ScalarGrid, factor : Int) -> ScalarGrid

    duplicate_count2

    fn duplicate_count2(points : ArrayView[Point2], tolerance~ : Double) -> Int

    duplicate_count3

    fn duplicate_count3(points : ArrayView[Point3], tolerance~ : Double) -> Int

    duplicate_point_indices

    fn duplicate_point_indices(points : ArrayView[Point2], tolerance : Double) -> Array[Int]

    exponentially_weighted_mean

    fn exponentially_weighted_mean(values : ArrayView[Double], decay : Double) -> Double raise GeometryError

    exponentially_weighted_variance

    fn exponentially_weighted_variance(values : ArrayView[Double], decay : Double) -> Double

    finite_difference

    fn finite_difference(f : (Double) -> Double, x : Double, epsilon? : Double) -> Double

    finite_difference2

    fn finite_difference2(values : ArrayView[Double]) -> Array[Double]

    finite_difference_gradient

    fn finite_difference_gradient(function : (Double) -> Double, value : Double, epsilon : Double) -> Double

    finite_difference_hessian

    fn finite_difference_hessian(function : (Double) -> Double, value : Double, epsilon : Double) -> Double

    finite_difference_vec

    fn finite_difference_vec(f : (Double) -> Vec3, x : Double, epsilon? : Double) -> Vec3

    finite_point2

    fn finite_point2(p : Point2) -> Bool

    finite_point3

    fn finite_point3(p : Point3) -> Bool

    finite_points3

    fn finite_points3(points : ArrayView[Point3]) -> Array[Point3]

    Filter NaN and infinity values before passing data to a solver.

    finite_scalars

    fn finite_scalars(values : ArrayView[Double]) -> Array[Double]

    finite_vec2

    fn finite_vec2(v : Vec2) -> Bool

    Coordinate-system checks shared by camera and multiview entry points.

    finite_vec3

    fn finite_vec3(v : Vec3) -> Bool

    fixed_point_history

    fn fixed_point_history(initial : Double, update : (Double) -> Double, iterations : Int) -> Array[Double]

    fixed_point_iterate

    fn fixed_point_iterate(initial : Double, update : (Double) -> Double, iterations~ : Int) -> Double

    Iterate a scalar fixed-point update with explicit iteration bounds.

    fixed_point_residual

    fn fixed_point_residual(value : Double, update : (Double) -> Double) -> Double

    fixed_point_until

    fn fixed_point_until(initial : Double, update : (Double) -> Double, tolerance : Double, maximum_iterations : Int) -> Double

    gradient_descent_1d

    fn gradient_descent_1d(initial : Double, gradient : (Double) -> Double, step : Double, iterations : Int) -> Array[Double]

    gradient_step

    fn gradient_step(value : Double, gradient : Double, step : Double) -> Double

    has_area2

    fn has_area2(points : ArrayView[Point2], minimum_area : Double) -> Bool

    has_non_collinear_triplet

    fn has_non_collinear_triplet(points : ArrayView[Point2], tolerance : Double) -> Bool

    has_volume3

    fn has_volume3(points : ArrayView[Point3], minimum_volume : Double) -> Bool

    hermite_point2

    fn hermite_point2(p0 : Point2, p1 : Point2, tangent0 : Vec2, tangent1 : Vec2, amount : Double) -> Point2

    hermite_point3

    fn hermite_point3(p0 : Point3, p1 : Point3, tangent0 : Vec3, tangent1 : Vec3, amount : Double) -> Point3

    hermite_scalar

    fn hermite_scalar(p0~ : Double, p1~ : Double, tangent0~ : Double, tangent1~ : Double, amount~ : Double) -> Double

    identity3

    fn identity3() -> Mat3

    identity4

    fn identity4() -> Mat4

    interpolate_array

    fn interpolate_array(values : ArrayView[Double], amount : Double) -> Double

    interpolate_pose

    fn interpolate_pose(a : RigidTransform, b : RigidTransform, amount : Double) -> RigidTransform

    Interpolate a rigid pose for timestamp alignment and motion compensation.

    interpolate_rotation

    fn interpolate_rotation(a : Mat3, b : Mat3, amount : Double) -> Mat3

    Linearly blend rotations in quaternion space, preserving unit length.

    interpolate_table

    fn interpolate_table(x : Double, xs : ArrayView[Double], ys : ArrayView[Double]) -> Double raise GeometryError

    interpolation_monotonic

    fn interpolation_monotonic(values : ArrayView[Double]) -> Bool

    interpolation_range

    fn interpolation_range(values : ArrayView[Double]) -> Double

    interquartile_range

    fn interquartile_range(values : ArrayView[Double]) -> Double raise GeometryError

    interquartile_range2

    fn interquartile_range2(values : ArrayView[Double]) -> Double raise GeometryError

    inverse_lerp2

    fn inverse_lerp2(left : Double, right : Double, value : Double) -> Double

    inverse_transform_points_batch

    fn inverse_transform_points_batch(transform : RigidTransform, points : ArrayView[Point3]) -> Array[Point3]

    is_collinear2

    fn is_collinear2(points : ArrayView[Point2], tolerance~ : Double) -> Bool

    Test whether a 2D sample is collinear within a metric tolerance.

    is_collinear3

    fn is_collinear3(points : ArrayView[Point3], tolerance~ : Double) -> Bool

    is_rotation_matrix

    fn is_rotation_matrix(m : Mat3) -> Bool

    Check orthogonality and handedness with a scale-aware tolerance.

    l1_distance

    fn l1_distance(left : ArrayView[Double], right : ArrayView[Double]) -> Double

    l2_distance

    fn l2_distance(left : ArrayView[Double], right : ArrayView[Double]) -> Double

    lerp2

    fn lerp2(left : Double, right : Double, amount : Double) -> Double

    Linear interpolation and clamped interpolation helpers.

    lerp2_clamped

    fn lerp2_clamped(left : Double, right : Double, amount : Double) -> Double

    lerp_vec3

    fn lerp_vec3(a : Vec3, b : Vec3, amount : Double) -> Vec3

    line_search_backtrack

    fn line_search_backtrack(function : (Double) -> Double, start : Double, direction : Double, initial_step : Double, shrink : Double, maximum : Int) -> Double

    linear_interpolate

    fn linear_interpolate(a : Double, b : Double, amount : Double) -> Double

    mat34_from_rows

    fn mat34_from_rows(r0 : (Double, Double, Double, Double), r1 : (Double, Double, Double, Double), r2 : (Double, Double, Double, Double)) -> Mat34

    mat3_add_batch

    fn mat3_add_batch(left : ArrayView[Mat3], right : ArrayView[Mat3]) -> Array[Mat3]

    mat3_apply_batch

    fn mat3_apply_batch(matrix : Mat3, vectors : ArrayView[Vec3]) -> Array[Vec3]

    Apply a 3x3 matrix to a batch of vectors.

    mat3_apply_points

    fn mat3_apply_points(matrix : Mat3, points : ArrayView[Point3]) -> Array[Point3]

    mat3_determinants

    fn mat3_determinants(matrices : ArrayView[Mat3]) -> Array[Double]

    mat3_frobenius_batch

    fn mat3_frobenius_batch(matrices : ArrayView[Mat3]) -> Array[Double]

    mat3_from_rows

    fn mat3_from_rows(r0 : (Double, Double, Double), r1 : (Double, Double, Double), r2 : (Double, Double, Double)) -> Mat3

    mat3_scale_batch

    fn mat3_scale_batch(matrices : ArrayView[Mat3], scale : Double) -> Array[Mat3]

    mat3_transpose_batch

    fn mat3_transpose_batch(matrices : ArrayView[Mat3]) -> Array[Mat3]

    mat4_from_rows

    fn mat4_from_rows(r0 : (Double, Double, Double, Double), r1 : (Double, Double, Double, Double), r2 : (Double, Double, Double, Double), r3 : (Double, Double, Double, Double)) -> Mat4

    matrix3_from_diagonal

    fn matrix3_from_diagonal(diagonal : Vec3) -> Mat3

    matrix3_is_finite

    fn matrix3_is_finite(matrix : Mat3) -> Bool

    max_error

    fn max_error(errors : ArrayView[Double]) -> Double raise GeometryError

    max_residual

    fn max_residual(residuals : ArrayView[Double]) -> Double

    mean

    fn mean(values : ArrayView[Double]) -> Double raise GeometryError

    mean_point2

    fn mean_point2(points : ArrayView[Point2]) -> Point2 raise GeometryError

    mean_scalars

    fn mean_scalars(values : ArrayView[Double]) -> Double

    median

    fn median(values : ArrayView[Double]) -> Double raise GeometryError

    median_absolute_deviation

    fn median_absolute_deviation(values : ArrayView[Double]) -> Double raise GeometryError

    Return a robust median absolute deviation estimate.

    median_absolute_deviation2

    fn median_absolute_deviation2(values : ArrayView[Double]) -> Double raise GeometryError

    merge_point_clouds

    fn merge_point_clouds(left : PointCloud, right : PointCloud) -> PointCloud

    merge_streaming_summary

    fn merge_streaming_summary(left : StreamingSummary, right : StreamingSummary) -> StreamingSummary

    mesh_centroid

    fn mesh_centroid(vertices : ArrayView[Point3]) -> Point3 raise GeometryError

    mesh_diagonal

    fn mesh_diagonal(vertices : ArrayView[Point3]) -> Double raise GeometryError

    mesh_surface_area

    fn mesh_surface_area(vertices : ArrayView[Point3], triangles : ArrayView[(Int, Int, Int)]) -> Double

    nearest_neighbor_distances

    fn nearest_neighbor_distances(points : ArrayView[Point3]) -> Array[Double]

    newton_step

    fn newton_step(q : Quadratic, x : Double) -> Double raise GeometryError

    norm_scalars

    fn norm_scalars(values : ArrayView[Double]) -> Double

    normal_equation_2d

    fn normal_equation_2d(x : ArrayView[Point2], values : ArrayView[Double]) -> Vec2 raise GeometryError

    normalize_points2

    fn normalize_points2(points : ArrayView[Point2]) -> Array[Point2] raise GeometryError

    normalize_points3

    fn normalize_points3(points : ArrayView[Point3]) -> Array[Point3] raise GeometryError

    normalize_quality_score

    fn normalize_quality_score(value : Double, lower : Double, upper : Double) -> Double

    normalize_residual_vector

    fn normalize_residual_vector(residuals : ArrayView[Double]) -> Array[Double]

    normalize_vectors

    fn normalize_vectors(vectors : ArrayView[Vec3]) -> Array[Vec3] raise GeometryError

    normalize_weights

    fn normalize_weights(weights : ArrayView[Double]) -> Array[Double] raise GeometryError

    normalized_residuals

    fn normalized_residuals(residuals : ArrayView[Double], scale : Double) -> Array[Double]

    orthogonal_component

    fn orthogonal_component(v : Vec3, axis : Vec3) -> Vec3 raise GeometryError

    orthogonal_projection_batch

    fn orthogonal_projection_batch(vectors : ArrayView[Vec3], axis : Vec3) -> Array[Vec3] raise GeometryError

    orthogonalize_rotation

    fn orthogonalize_rotation(m : Mat3) -> Mat3 raise GeometryError

    Project a near-rotation onto SO(3) using a stable transpose averaging pass.

    outer_product

    fn outer_product(a : Vec3, b : Vec3) -> Mat3

    outer_products

    fn outer_products(vectors : ArrayView[Vec3]) -> Array[Mat3]

    pairwise_distances

    fn pairwise_distances(points : ArrayView[Point3]) -> Array[Double]

    pairwise_transform_distances

    fn pairwise_transform_distances(transform : RigidTransform, points : ArrayView[Point3]) -> Array[Double]

    percentile

    fn percentile(values : ArrayView[Double], fraction~ : Double) -> Double raise GeometryError

    percentile_range

    fn percentile_range(values : ArrayView[Double], lower : Double, upper : Double) -> NumericRange raise GeometryError

    Approximate a percentile interval using sorted samples.

    point2_from_homogeneous

    fn point2_from_homogeneous(v : Vec3) -> Point2 raise GeometryError

    point2_lerp

    fn point2_lerp(a : Point2, b : Point2, amount : Double) -> Point2

    point3_lerp

    fn point3_lerp(a : Point3, b : Point3, amount : Double) -> Point3

    point_cloud_abs

    fn point_cloud_abs(points : ArrayView[Point3]) -> Array[Point3]

    point_cloud_align_centroids

    fn point_cloud_align_centroids(source : ArrayView[Point3], target : ArrayView[Point3]) -> Array[Point3]

    point_cloud_axis_center

    fn point_cloud_axis_center(points : ArrayView[Point3], axis : Int) -> Double

    point_cloud_axis_maximum

    fn point_cloud_axis_maximum(points : ArrayView[Point3], axis : Int) -> Double

    point_cloud_axis_mean

    fn point_cloud_axis_mean(points : ArrayView[Point3], axis : Int) -> Double

    point_cloud_axis_median

    fn point_cloud_axis_median(points : ArrayView[Point3], axis : Int) -> Double

    point_cloud_axis_minimum

    fn point_cloud_axis_minimum(points : ArrayView[Point3], axis : Int) -> Double

    point_cloud_axis_normalized

    fn point_cloud_axis_normalized(points : ArrayView[Point3], axis : Int) -> Array[Double]

    point_cloud_axis_offset

    fn point_cloud_axis_offset(points : ArrayView[Point3], ox : Double, oy : Double, oz : Double) -> Array[Point3]

    point_cloud_axis_quantile

    fn point_cloud_axis_quantile(points : ArrayView[Point3], axis : Int, quantile : Double) -> Double

    point_cloud_axis_range

    fn point_cloud_axis_range(points : ArrayView[Point3], axis : Int) -> Double

    point_cloud_axis_scale

    fn point_cloud_axis_scale(points : ArrayView[Point3], sx : Double, sy : Double, sz : Double) -> Array[Point3]

    point_cloud_axis_values

    fn point_cloud_axis_values(points : ArrayView[Point3], axis : Int) -> Array[Double]

    point_cloud_batch_checksums

    fn point_cloud_batch_checksums(batches : ArrayView[Array[Point3]]) -> Array[Double]

    point_cloud_batch_flatten

    fn point_cloud_batch_flatten(batches : ArrayView[Array[Point3]]) -> Array[Point3]

    point_cloud_batch_largest

    fn point_cloud_batch_largest(batches : ArrayView[Array[Point3]]) -> Array[Point3]

    point_cloud_batch_nonempty

    fn point_cloud_batch_nonempty(batches : ArrayView[Array[Point3]]) -> Array[Array[Point3]]

    point_cloud_batch_quality

    fn point_cloud_batch_quality(batches : ArrayView[Array[Point3]], minimum_count : Int, maximum_radius : Double) -> Array[Double]

    point_cloud_batch_smallest

    fn point_cloud_batch_smallest(batches : ArrayView[Array[Point3]]) -> Array[Point3]

    point_cloud_batch_total

    fn point_cloud_batch_total(batches : ArrayView[Array[Point3]]) -> Int

    point_cloud_bounds

    fn point_cloud_bounds(points : ArrayView[Point3]) -> (Point3, Point3)

    point_cloud_centered

    fn point_cloud_centered(points : ArrayView[Point3]) -> Array[Point3]

    point_cloud_centroid

    fn point_cloud_centroid(points : ArrayView[Point3]) -> Point3

    point_cloud_centroid_delta

    fn point_cloud_centroid_delta(left : ArrayView[Point3], right : ArrayView[Point3]) -> Vec3

    point_cloud_centroid_distance

    fn point_cloud_centroid_distance(left : ArrayView[Point3], right : ArrayView[Point3]) -> Double

    point_cloud_chamfer

    fn point_cloud_chamfer(left : ArrayView[Point3], right : ArrayView[Point3]) -> Double

    point_cloud_chamfer_one_way

    fn point_cloud_chamfer_one_way(left : ArrayView[Point3], right : ArrayView[Point3]) -> Double

    point_cloud_checksum

    fn point_cloud_checksum(points : ArrayView[Point3]) -> Double

    point_cloud_checksum_matches

    fn point_cloud_checksum_matches(points : ArrayView[Point3], checksum : Double, tolerance : Double) -> Bool

    point_cloud_chunk

    fn point_cloud_chunk(points : ArrayView[Point3], chunk_size : Int) -> Array[Array[Point3]]

    point_cloud_count_finite

    fn point_cloud_count_finite(points : ArrayView[Point3]) -> Int

    point_cloud_count_within

    fn point_cloud_count_within(points : ArrayView[Point3], center : Point3, radius : Double) -> Int

    point_cloud_csv

    fn point_cloud_csv(points : ArrayView[Point3]) -> String

    point_cloud_csv_row

    fn point_cloud_csv_row(point : Point3) -> String

    point_cloud_density

    fn point_cloud_density(points : ArrayView[Point3], center : Point3, radius : Double) -> Double

    point_cloud_distance_histogram

    fn point_cloud_distance_histogram(points : ArrayView[Point3], bins : Int, maximum : Double) -> Array[Int]

    point_cloud_distances

    fn point_cloud_distances(points : ArrayView[Point3], center : Point3) -> Array[Double]

    point_cloud_drop

    fn point_cloud_drop(points : ArrayView[Point3], count : Int) -> Array[Point3]

    point_cloud_filter_box

    fn point_cloud_filter_box(points : ArrayView[Point3], minimum : Point3, maximum : Point3) -> Array[Point3]

    point_cloud_filter_radius

    fn point_cloud_filter_radius(points : ArrayView[Point3], center : Point3, radius : Double) -> Array[Point3]

    point_cloud_finite_ratio

    fn point_cloud_finite_ratio(points : ArrayView[Point3]) -> Double

    point_cloud_flat_dimension

    fn point_cloud_flat_dimension(values : ArrayView[Double]) -> Int

    point_cloud_flat_is_valid

    fn point_cloud_flat_is_valid(values : ArrayView[Double]) -> Bool

    point_cloud_flat_remainder

    fn point_cloud_flat_remainder(values : ArrayView[Double]) -> Int

    point_cloud_from_flat

    fn point_cloud_from_flat(values : ArrayView[Double]) -> Array[Point3]

    point_cloud_hausdorff

    fn point_cloud_hausdorff(left : ArrayView[Point3], right : ArrayView[Point3]) -> Double

    point_cloud_hausdorff_one_way

    fn point_cloud_hausdorff_one_way(left : ArrayView[Point3], right : ArrayView[Point3]) -> Double

    point_cloud_health_batch

    fn point_cloud_health_batch(points : ArrayView[Array[Point3]], minimum_count : Int, maximum_radius : Double, tolerance : Double) -> Array[Double]

    point_cloud_health_batch_mean

    fn point_cloud_health_batch_mean(points : ArrayView[Array[Point3]], minimum_count : Int, maximum_radius : Double, tolerance : Double) -> Double

    point_cloud_health_count

    fn point_cloud_health_count(points : ArrayView[Point3]) -> Int

    Lightweight point-cloud health indicators for service-level monitoring.

    point_cloud_health_density

    fn point_cloud_health_density(points : ArrayView[Point3], radius : Double) -> Double

    point_cloud_health_duplicates

    fn point_cloud_health_duplicates(points : ArrayView[Point3], tolerance : Double) -> Double

    point_cloud_health_finite

    fn point_cloud_health_finite(points : ArrayView[Point3]) -> Double

    point_cloud_health_label

    fn point_cloud_health_label(score : Double) -> String

    point_cloud_health_radius

    fn point_cloud_health_radius(points : ArrayView[Point3], maximum : Double) -> Double

    point_cloud_health_report

    fn point_cloud_health_report(points : ArrayView[Point3], minimum_count : Int, maximum_radius : Double, tolerance : Double) -> String

    point_cloud_health_score

    fn point_cloud_health_score(points : ArrayView[Point3], minimum_count : Int, maximum_radius : Double, tolerance : Double) -> Double

    point_cloud_histogram_peak

    fn point_cloud_histogram_peak(histogram : ArrayView[Int]) -> Int

    point_cloud_histogram_probability

    fn point_cloud_histogram_probability(histogram : ArrayView[Int]) -> Array[Double]

    point_cloud_histogram_total

    fn point_cloud_histogram_total(histogram : ArrayView[Int]) -> Int

    point_cloud_interleave

    fn point_cloud_interleave(left : ArrayView[Point3], right : ArrayView[Point3]) -> Array[Point3]

    point_cloud_intersection

    fn point_cloud_intersection(left : ArrayView[Point3], right : ArrayView[Point3], tolerance : Double) -> Array[Point3]

    point_cloud_is_degenerate

    fn point_cloud_is_degenerate(points : ArrayView[Point3], tolerance : Double) -> Bool

    point_cloud_is_finite

    fn point_cloud_is_finite(points : ArrayView[Point3]) -> Bool

    point_cloud_is_planar_xy

    fn point_cloud_is_planar_xy(points : ArrayView[Point3], tolerance : Double) -> Bool

    point_cloud_is_planar_xz

    fn point_cloud_is_planar_xz(points : ArrayView[Point3], tolerance : Double) -> Bool

    point_cloud_is_planar_yz

    fn point_cloud_is_planar_yz(points : ArrayView[Point3], tolerance : Double) -> Bool

    point_cloud_json_number

    fn point_cloud_json_number(value : Double) -> String

    point_cloud_lerp

    fn point_cloud_lerp(a : Point3, b : Point3, amount : Double) -> Point3

    point_cloud_lift_xy

    fn point_cloud_lift_xy(points : ArrayView[Point2], depth : Double) -> Array[Point3]

    point_cloud_lift_xz

    fn point_cloud_lift_xz(points : ArrayView[Point2], depth : Double) -> Array[Point3]

    point_cloud_lift_yz

    fn point_cloud_lift_yz(points : ArrayView[Point2], depth : Double) -> Array[Point3]

    point_cloud_match_score

    fn point_cloud_match_score(left : ArrayView[Point3], right : ArrayView[Point3], tolerance : Double) -> Double

    point_cloud_mean_distance

    fn point_cloud_mean_distance(points : ArrayView[Point3], center : Point3) -> Double

    point_cloud_merge

    fn point_cloud_merge(left : ArrayView[Point3], right : ArrayView[Point3]) -> Array[Point3]

    point_cloud_nearest_distance

    fn point_cloud_nearest_distance(point : Point3, points : ArrayView[Point3]) -> Double

    point_cloud_nearest_distances

    fn point_cloud_nearest_distances(points : ArrayView[Point3]) -> Array[Double]

    point_cloud_normalize_radius

    fn point_cloud_normalize_radius(points : ArrayView[Point3]) -> Array[Point3]

    point_cloud_outlier_flags

    fn point_cloud_outlier_flags(points : ArrayView[Point3], threshold : Double) -> Array[Bool]

    point_cloud_overlap

    fn point_cloud_overlap(left : ArrayView[Point3], right : ArrayView[Point3], tolerance : Double) -> Double

    point_cloud_pairwise_distances

    fn point_cloud_pairwise_distances(points : ArrayView[Point3]) -> Array[Double]

    point_cloud_pairwise_maximum

    fn point_cloud_pairwise_maximum(points : ArrayView[Point3]) -> Double

    point_cloud_pairwise_mean

    fn point_cloud_pairwise_mean(points : ArrayView[Point3]) -> Double

    point_cloud_path_length

    fn point_cloud_path_length(points : ArrayView[Point3]) -> Double

    point_cloud_pipeline_summary

    fn point_cloud_pipeline_summary(points : ArrayView[Point3]) -> PointCloudPipelineSummary

    point_cloud_project_xy

    fn point_cloud_project_xy(points : ArrayView[Point3]) -> Array[Point2]

    point_cloud_project_xz

    fn point_cloud_project_xz(points : ArrayView[Point3]) -> Array[Point2]

    point_cloud_project_yz

    fn point_cloud_project_yz(points : ArrayView[Point3]) -> Array[Point2]

    point_cloud_quality_gap

    fn point_cloud_quality_gap(before : ArrayView[Double], after : ArrayView[Double]) -> Double

    point_cloud_quality_improved

    fn point_cloud_quality_improved(before : ArrayView[Double], after : ArrayView[Double], tolerance : Double) -> Bool

    point_cloud_quality_label

    fn point_cloud_quality_label(score : Double) -> String

    point_cloud_quality_labels

    fn point_cloud_quality_labels(scores : ArrayView[Double]) -> Array[String]

    point_cloud_quality_maximum

    fn point_cloud_quality_maximum(scores : ArrayView[Double]) -> Double

    point_cloud_quality_mean

    fn point_cloud_quality_mean(scores : ArrayView[Double]) -> Double

    point_cloud_quality_minimum

    fn point_cloud_quality_minimum(scores : ArrayView[Double]) -> Double

    point_cloud_quality_pass_count

    fn point_cloud_quality_pass_count(scores : ArrayView[Double], threshold : Double) -> Int

    point_cloud_quality_pass_ratio

    fn point_cloud_quality_pass_ratio(scores : ArrayView[Double], threshold : Double) -> Double

    point_cloud_quality_report

    fn point_cloud_quality_report(points : ArrayView[Point3], minimum_count : Int, maximum_radius : Double) -> String

    point_cloud_quality_score

    fn point_cloud_quality_score(points : ArrayView[Point3], minimum_count : Int, maximum_radius : Double) -> Double

    point_cloud_quality_weighted

    fn point_cloud_quality_weighted(scores : ArrayView[Double], weights : ArrayView[Double]) -> Double

    point_cloud_quality_with_reference

    fn point_cloud_quality_with_reference(points : ArrayView[Point3], reference : ArrayView[Point3], tolerance : Double) -> Double

    point_cloud_radius

    fn point_cloud_radius(points : ArrayView[Point3], center : Point3) -> Double

    point_cloud_radius_histogram

    fn point_cloud_radius_histogram(points : ArrayView[Point3], center : Point3, bins : Int) -> Array[Int]

    point_cloud_reflect_x

    fn point_cloud_reflect_x(points : ArrayView[Point3]) -> Array[Point3]

    Additional point-cloud transforms for streaming reconstruction jobs.

    point_cloud_reflect_y

    fn point_cloud_reflect_y(points : ArrayView[Point3]) -> Array[Point3]

    point_cloud_reflect_z

    fn point_cloud_reflect_z(points : ArrayView[Point3]) -> Array[Point3]

    point_cloud_remove_duplicates

    fn point_cloud_remove_duplicates(points : ArrayView[Point3], tolerance : Double) -> Array[Point3]

    point_cloud_remove_outliers

    fn point_cloud_remove_outliers(points : ArrayView[Point3], threshold : Double) -> Array[Point3]

    point_cloud_resample_line

    fn point_cloud_resample_line(start : Point3, end : Point3, count : Int) -> Array[Point3]

    point_cloud_safe_mean_distance

    fn point_cloud_safe_mean_distance(points : ArrayView[Point3]) -> Double

    point_cloud_safe_radius

    fn point_cloud_safe_radius(points : ArrayView[Point3]) -> Double

    point_cloud_sample_endpoints

    fn point_cloud_sample_endpoints(points : ArrayView[Point3], count : Int) -> Array[Point3]

    point_cloud_sample_uniform

    fn point_cloud_sample_uniform(points : ArrayView[Point3], count : Int) -> Array[Point3]

    point_cloud_scale

    fn point_cloud_scale(points : ArrayView[Point3], scale : Double) -> Array[Point3]

    point_cloud_sign

    fn point_cloud_sign(points : ArrayView[Point3]) -> Array[Point3]

    point_cloud_squared_distances

    fn point_cloud_squared_distances(points : ArrayView[Point3], center : Point3) -> Array[Double]

    point_cloud_stride

    fn point_cloud_stride(points : ArrayView[Point3], stride : Int) -> Array[Point3]

    point_cloud_subtract_reference

    fn point_cloud_subtract_reference(points : ArrayView[Point3], reference : ArrayView[Point3], tolerance : Double) -> Array[Point3]

    point_cloud_symmetric_overlap

    fn point_cloud_symmetric_overlap(left : ArrayView[Point3], right : ArrayView[Point3], tolerance : Double) -> Double

    point_cloud_take

    fn point_cloud_take(points : ArrayView[Point3], count : Int) -> Array[Point3]

    point_cloud_to_flat

    fn point_cloud_to_flat(points : ArrayView[Point3]) -> Array[Double]

    Export and validation helpers for point-cloud service boundaries.

    point_cloud_translate

    fn point_cloud_translate(points : ArrayView[Point3], offset : Vec3) -> Array[Point3]

    point_cloud_union

    fn point_cloud_union(left : ArrayView[Point3], right : ArrayView[Point3], tolerance : Double) -> Array[Point3]

    point_cloud_validate

    fn point_cloud_validate(points : ArrayView[Point3], minimum_count : Int, minimum_finite_ratio : Double) -> Bool

    point_cloud_variance_axis

    fn point_cloud_variance_axis(points : ArrayView[Point3], axis : Int) -> Double

    point_cloud_voxel_count

    fn point_cloud_voxel_count(points : ArrayView[Point3], voxel : Double) -> Int

    point_cloud_voxel_sample

    fn point_cloud_voxel_sample(points : ArrayView[Point3], voxel : Double) -> Array[Point3]

    point_cloud_weighted_centroid

    fn point_cloud_weighted_centroid(points : ArrayView[Point3], weights : ArrayView[Double]) -> Point3

    point_cloud_weighted_radius

    fn point_cloud_weighted_radius(points : ArrayView[Point3], weights : ArrayView[Double]) -> Double

    points2_are_finite

    fn points2_are_finite(points : ArrayView[Point2]) -> Bool

    points3_are_finite

    fn points3_are_finite(points : ArrayView[Point3]) -> Bool

    polygon_centroid

    fn polygon_centroid(points : ArrayView[Point2]) -> Point2 raise GeometryError

    polygon_signed_area

    fn polygon_signed_area(points : ArrayView[Point2]) -> Double raise GeometryError

    polyline_length

    fn polyline_length(points : ArrayView[Point2]) -> Double

    polynomial_residuals

    fn polynomial_residuals(q : Quadratic, values : ArrayView[Double]) -> Array[Double]

    project_box

    fn project_box(value : Double, minimum : Double, maximum : Double) -> Double

    project_box_batch

    fn project_box_batch(values : ArrayView[Double], minimum : Double, maximum : Double) -> Array[Double]

    project_vector

    fn project_vector(v : Vec3, axis : Vec3) -> Vec3 raise GeometryError

    quantile_linear

    fn quantile_linear(values : ArrayView[Double], probability : Double) -> Double raise GeometryError

    Linear-interpolated quantile for deterministic robust estimators.

    quaternion_from_axis_angle

    fn quaternion_from_axis_angle(axis : Vec3, angle : Double) -> Quaternion raise GeometryError

    range_scalars

    fn range_scalars(values : ArrayView[Double]) -> Double

    rect2_from_points

    fn rect2_from_points(points : ArrayView[Point2]) -> Rect2 raise GeometryError

    relative_error

    fn relative_error(actual : Double, expected : Double) -> Double

    remap2

    fn remap2(value : Double, source_min : Double, source_max : Double, target_min : Double, target_max : Double) -> Double

    remove_duplicate_points

    fn remove_duplicate_points(points : ArrayView[Point2], tolerance : Double) -> Array[Point2]

    reprojection_error

    fn reprojection_error(a : Point2, b : Point2) -> Double

    resample_array

    fn resample_array(values : ArrayView[Double], count : Int) -> Array[Double]

    resample_polyline

    fn resample_polyline(points : ArrayView[Point2], samples~ : Int) -> Array[Point2] raise GeometryError

    residual_gradient

    fn residual_gradient(predicted : ArrayView[Double], observed : ArrayView[Double]) -> Array[Double]

    residual_jacobian_diagonal

    fn residual_jacobian_diagonal(jacobian : ArrayView[Double], residuals : ArrayView[Double]) -> Array[Double]

    residual_percentile

    fn residual_percentile(residuals : ArrayView[Double], percentile : Double) -> Double raise GeometryError

    residual_statistics

    fn residual_statistics(errors : ArrayView[Double]) -> (Double, Double, Double) raise GeometryError

    residual_sum_squares

    fn residual_sum_squares(predicted : ArrayView[Double], observed : ArrayView[Double]) -> Double

    rms_error

    fn rms_error(errors : ArrayView[Double]) -> Double raise GeometryError

    robust_clip

    fn robust_clip(values : ArrayView[Double], center~ : Double, scale~ : Double, multiplier~ : Double) -> Array[Double]

    robust_scale

    fn robust_scale(values : ArrayView[Double]) -> Double raise GeometryError

    robust_threshold

    fn robust_threshold(values : ArrayView[Double], minimum~ : Double, multiplier~ : Double) -> Double raise GeometryError

    robust_weighted_centroid3

    fn robust_weighted_centroid3(points : ArrayView[Point3], weights : ArrayView[Double]) -> Point3 raise GeometryError

    Compute a weighted 3D centroid with explicit weight validation.

    robust_weighted_covariance3

    fn robust_weighted_covariance3(points : ArrayView[Point3], weights : ArrayView[Double]) -> Mat3 raise GeometryError

    Weighted covariance matrix for uncertainty propagation and outlier gating.

    robust_z_scores

    fn robust_z_scores(values : ArrayView[Double]) -> Array[Double] raise GeometryError

    robust_z_scores2

    fn robust_z_scores2(values : ArrayView[Double]) -> Array[Double] raise GeometryError

    rotate_about_point

    fn rotate_about_point(rotation : Mat3, center : Point3, point : Point3) -> Point3

    rotate_points

    fn rotate_points(rotation : Mat3, points : ArrayView[Point3]) -> Array[Point3]

    Batch-apply a rotation while retaining point-array order.

    rotate_points_about_point

    fn rotate_points_about_point(rotation : Mat3, center : Point3, points : ArrayView[Point3]) -> Array[Point3]

    rotation_between

    fn rotation_between(from : Vec3, to : Vec3) -> Mat3 raise GeometryError

    Return a shortest-arc rotation between two non-zero directions.

    rotation_from_axis_angle

    fn rotation_from_axis_angle(axis : Vec3, angle : Double) -> Mat3 raise GeometryError

    Construct a proper rotation with Rodrigues' formula.

    rotation_residual

    fn rotation_residual(m : Mat3) -> Double

    Measure how far a matrix is from the SO(3) manifold.

    running_maximum

    fn running_maximum(values : ArrayView[Double]) -> Array[Double]

    running_mean

    fn running_mean(values : ArrayView[Double]) -> Array[Double]

    running_median_approx

    fn running_median_approx(values : ArrayView[Double]) -> Array[Double]

    running_minimum

    fn running_minimum(values : ArrayView[Double]) -> Array[Double]

    running_variance

    fn running_variance(values : ArrayView[Double]) -> Array[Double]

    safe_divide

    fn safe_divide(numerator : Double, denominator : Double) -> Double raise GeometryError

    safe_rms

    fn safe_rms(errors : ArrayView[Double]) -> Double

    scale_array

    fn scale_array(values : ArrayView[Double], scale : Double) -> Array[Double]

    scale_mesh

    fn scale_mesh(vertices : ArrayView[Point3], scale : Double) -> Array[Point3]

    scale_points

    fn scale_points(points : ArrayView[Point3], scale : Double) -> Array[Point3]

    scale_scalars

    fn scale_scalars(values : ArrayView[Double], scale : Double) -> Array[Double]

    scale_vectors

    fn scale_vectors(vectors : ArrayView[Vec3], scale : Double) -> Array[Vec3]

    second_difference2

    fn second_difference2(values : ArrayView[Double]) -> Array[Double]

    segment_distance

    fn segment_distance(a : Point2, b : Point2, point : Point2) -> Double

    skew_symmetric

    fn skew_symmetric(v : Vec3) -> Mat3

    smootherstep

    fn smootherstep(edge0~ : Double, edge1~ : Double, x~ : Double) -> Double

    smootherstep2

    fn smootherstep2(amount : Double) -> Double

    smoothstep

    fn smoothstep(edge0~ : Double, edge1~ : Double, x~ : Double) -> Double

    smoothstep2

    fn smoothstep2(amount : Double) -> Double

    soft_threshold

    fn soft_threshold(value : Double, threshold : Double) -> Double

    soft_threshold_batch

    fn soft_threshold_batch(values : ArrayView[Double], threshold : Double) -> Array[Double]

    solve_2x2

    fn solve_2x2(a00~ : Double, a01~ : Double, a10~ : Double, a11~ : Double, b0~ : Double, b1~ : Double) -> Vec2 raise GeometryError

    solve_3x3

    fn solve_3x3(a : Mat3, b : Vec3) -> Vec3 raise GeometryError

    solve_diagonal

    fn solve_diagonal(diagonal : ArrayView[Double], values : ArrayView[Double]) -> Array[Double] raise GeometryError

    solve_linear_2x2

    fn solve_linear_2x2(a00 : Double, a01 : Double, a10 : Double, a11 : Double, b0 : Double, b1 : Double) -> (Double, Double) raise GeometryError

    solve_newton

    fn solve_newton(q : Quadratic, initial~ : Double, iterations? : Int) -> Double raise GeometryError

    solve_symmetric_3x3

    fn solve_symmetric_3x3(a : Mat3, b : Vec3) -> Vec3 raise GeometryError

    solver_best_value

    fn solver_best_value(history : ArrayView[Double], minimization : Bool) -> Double

    solver_converged

    fn solver_converged(history : ArrayView[Double], tolerance : Double) -> Bool

    solver_improvement

    fn solver_improvement(history : ArrayView[Double], minimization : Bool) -> Double

    spread2

    fn spread2(points : ArrayView[Point2]) -> Double raise GeometryError

    spread3

    fn spread3(points : ArrayView[Point3]) -> Double raise GeometryError

    square

    fn square(x : Double) -> Double

    squared_norm_array

    fn squared_norm_array(values : ArrayView[Double]) -> Double

    streaming_add

    fn streaming_add(summary : StreamingSummary, value : Double) -> Unit

    streaming_summary

    fn streaming_summary(values : ArrayView[Double]) -> StreamingSummary

    streaming_summary_chunks

    fn streaming_summary_chunks(chunks : ArrayView[Array[Double]]) -> StreamingSummary

    subtract_scalars

    fn subtract_scalars(left : ArrayView[Double], right : ArrayView[Double]) -> Array[Double]

    support_ratio2

    fn support_ratio2(points : ArrayView[Point2], tolerance : Double) -> Double

    support_ratio3

    fn support_ratio3(points : ArrayView[Point3], tolerance : Double) -> Double

    transform_bounds

    fn transform_bounds(transform : RigidTransform, points : ArrayView[Point3]) -> Aabb3 raise GeometryError

    transform_centroid

    fn transform_centroid(transform : RigidTransform, points : ArrayView[Point3]) -> Point3 raise GeometryError

    transform_chain_batch

    fn transform_chain_batch(chain : TransformChain, points : ArrayView[Point3]) -> Array[Point3]

    transform_distance

    fn transform_distance(left : RigidTransform, right : RigidTransform) -> Double

    transform_interpolate

    fn transform_interpolate(left : RigidTransform, right : RigidTransform, amount : Double) -> RigidTransform

    transform_is_identity

    fn transform_is_identity(transform : RigidTransform, tolerance : Double) -> Bool

    transform_point_with_scale

    fn transform_point_with_scale(transform : RigidTransform, point : Point3, scale : Double) -> Point3

    transform_points

    fn transform_points(chain : TransformChain, points : ArrayView[Point3]) -> Array[Point3]

    transform_points_batch

    fn transform_points_batch(transform : RigidTransform, points : ArrayView[Point3]) -> Array[Point3]

    Apply a rigid transform to a point batch.

    transform_points_with_scale

    fn transform_points_with_scale(transform : RigidTransform, points : ArrayView[Point3], scale : Double) -> Array[Point3]

    transform_relative

    fn transform_relative(left : RigidTransform, right : RigidTransform) -> RigidTransform

    transform_relative_points

    fn transform_relative_points(left : RigidTransform, right : RigidTransform, points : ArrayView[Point3]) -> Array[Point3]

    transform_rms_radius

    fn transform_rms_radius(transform : RigidTransform, points : ArrayView[Point3]) -> Double raise GeometryError

    transform_rotation_residual

    fn transform_rotation_residual(transform : RigidTransform) -> Double

    transform_trajectory_length

    fn transform_trajectory_length(transforms : ArrayView[RigidTransform]) -> Double

    transform_trajectory_sample

    fn transform_trajectory_sample(transforms : ArrayView[RigidTransform], amount : Double) -> RigidTransform

    transform_trajectory_sample_many

    fn transform_trajectory_sample_many(transforms : ArrayView[RigidTransform], count : Int) -> Array[RigidTransform]

    transform_translation_norm

    fn transform_translation_norm(transform : RigidTransform) -> Double

    transform_vectors

    fn transform_vectors(chain : TransformChain, vectors : ArrayView[Vec3]) -> Array[Vec3]

    transform_vectors_batch

    fn transform_vectors_batch(transform : RigidTransform, vectors : ArrayView[Vec3]) -> Array[Vec3]

    translate_mesh

    fn translate_mesh(vertices : ArrayView[Point3], translation : Vec3) -> Array[Point3]

    translate_points

    fn translate_points(points : ArrayView[Point3], translation : Vec3) -> Array[Point3]

    translate_vectors

    fn translate_vectors(vectors : ArrayView[Vec3], translation : Vec3) -> Array[Vec3]

    triangle_area3

    fn triangle_area3(a : Point3, b : Point3, c : Point3) -> Double

    triangle_centroid3

    fn triangle_centroid3(a : Point3, b : Point3, c : Point3) -> Point3

    triangle_plane_distance

    fn triangle_plane_distance(t : Triangle3, point : Point3) -> Double raise GeometryError

    trilerp2

    fn trilerp2(corners : ArrayView[Double], x : Double, y : Double, z : Double) -> Double

    trimmed_mean

    fn trimmed_mean(values : ArrayView[Double], trim_fraction? : Double) -> Double raise GeometryError

    tukey_fences

    fn tukey_fences(values : ArrayView[Double], multiplier? : Double) -> (Double, Double) raise GeometryError

    unique_triangle_edges

    fn unique_triangle_edges(triangles : ArrayView[(Int, Int, Int)]) -> Array[(Int, Int)]

    Compute unique undirected edges from a triangle index buffer.

    validate_correspondences3d2d

    fn validate_correspondences3d2d(points3 : ArrayView[Point3], points2 : ArrayView[Point2], minimum : Int) -> Bool

    Validate paired 2D/3D correspondences before estimation.

    values_inside_fences

    fn values_inside_fences(values : ArrayView[Double], lower : Double, upper : Double) -> Array[Double]

    variance

    fn variance(values : ArrayView[Double]) -> Double raise GeometryError

    variance_scalars

    fn variance_scalars(values : ArrayView[Double]) -> Double

    vector_covariance_trace

    fn vector_covariance_trace(vectors : ArrayView[Vec3]) -> Double

    vector_mean

    fn vector_mean(vectors : ArrayView[Vec3]) -> Vec3

    vector_sum

    fn vector_sum(vectors : ArrayView[Vec3]) -> Vec3

    vectors3_are_nonzero

    fn vectors3_are_nonzero(vectors : ArrayView[Vec3], tolerance : Double) -> Bool

    weighted_centroid3

    fn weighted_centroid3(points : ArrayView[Point3], weights : ArrayView[Double]) -> Point3 raise GeometryError

    weighted_mean

    fn weighted_mean(values : ArrayView[Double], weights : ArrayView[Double]) -> Double raise GeometryError

    weighted_mean2

    fn weighted_mean2(values : ArrayView[Double], weights : ArrayView[Double]) -> Double raise GeometryError

    weighted_variance2

    fn weighted_variance2(values : ArrayView[Double], weights : ArrayView[Double]) -> Double raise GeometryError

    winsorize

    fn winsorize(values : ArrayView[Double], center : Double, scale : Double, limit? : Double) -> Array[Double]

    Winsorize measurements to a symmetric robust interval.

    z_score

    fn z_score(value : Double, center : Double, spread : Double) -> Double raise GeometryError