Skip to content

Namespace muda::distance

Namespace List > muda > distance

Public Types

Type Name
enum unsigned char EdgeEdgeDistanceType
enum unsigned char PointEdgeDistanceType
enum unsigned char PointPointDistanceType
enum unsigned char PointTriangleDistanceType

Public Functions

Type Name
MUDA_GENERIC bool edge_edge_ccd (Eigen::Matrix< T, 3, 1 > ea0, Eigen::Matrix< T, 3, 1 > ea1, Eigen::Matrix< T, 3, 1 > eb0, Eigen::Matrix< T, 3, 1 > eb1, Eigen::Matrix< T, 3, 1 > dea0, Eigen::Matrix< T, 3, 1 > dea1, Eigen::Matrix< T, 3, 1 > deb0, Eigen::Matrix< T, 3, 1 > deb1, T eta, T thickness, int max_iter, T & toc)
MUDA_GENERIC bool edge_edge_ccd_broadphase (const Eigen::Matrix< T, 3, 1 > & ea0, const Eigen::Matrix< T, 3, 1 > & ea1, const Eigen::Matrix< T, 3, 1 > & eb0, const Eigen::Matrix< T, 3, 1 > & eb1, const Eigen::Matrix< T, 3, 1 > & dea0, const Eigen::Matrix< T, 3, 1 > & dea1, const Eigen::Matrix< T, 3, 1 > & deb0, const Eigen::Matrix< T, 3, 1 > & deb1, T dist)
MUDA_GENERIC bool edge_edge_cd_broadphase (const Eigen::Matrix< T, 3, 1 > & ea0, const Eigen::Matrix< T, 3, 1 > & ea1, const Eigen::Matrix< T, 3, 1 > & eb0, const Eigen::Matrix< T, 3, 1 > & eb1, T dist)
MUDA_GENERIC void edge_edge_cross_norm2 (const Eigen::Vector< T, 3 > & ea0, const Eigen::Vector< T, 3 > & ea1, const Eigen::Vector< T, 3 > & eb0, const Eigen::Vector< T, 3 > & eb1, T & result)
MUDA_GENERIC void edge_edge_cross_norm2_gradient (const Eigen::Vector< T, 3 > & ea0, const Eigen::Vector< T, 3 > & ea1, const Eigen::Vector< T, 3 > & eb0, const Eigen::Vector< T, 3 > & eb1, Eigen::Vector< T, 12 > & grad)
MUDA_GENERIC void edge_edge_cross_norm2_hessian (const Eigen::Vector< T, 3 > & ea0, const Eigen::Vector< T, 3 > & ea1, const Eigen::Vector< T, 3 > & eb0, const Eigen::Vector< T, 3 > & eb1, Eigen::Matrix< T, 12, 12 > & Hessian)
MUDA_GENERIC void edge_edge_distance (const Eigen::Vector< T, 3 > & ea0, const Eigen::Vector< T, 3 > & ea1, const Eigen::Vector< T, 3 > & eb0, const Eigen::Vector< T, 3 > & eb1, T & dist2)
MUDA_GENERIC void edge_edge_distance_gradient (const Eigen::Vector< T, 3 > & ea0, const Eigen::Vector< T, 3 > & ea1, const Eigen::Vector< T, 3 > & eb0, const Eigen::Vector< T, 3 > & eb1, Eigen::Vector< T, 12 > & grad)
MUDA_GENERIC void edge_edge_distance_hessian (const Eigen::Vector< T, 3 > & ea0, const Eigen::Vector< T, 3 > & ea1, const Eigen::Vector< T, 3 > & eb0, const Eigen::Vector< T, 3 > & eb1, Eigen::Matrix< T, 12, 12 > & Hessian)
MUDA_GENERIC EdgeEdgeDistanceType edge_edge_distance_type (const Eigen::Vector< T, 3 > & ea0, const Eigen::Vector< T, 3 > & ea1, const Eigen::Vector< T, 3 > & eb0, const Eigen::Vector< T, 3 > & eb1)
MUDA_GENERIC void edge_edge_distance_unclassified (const Eigen::Vector< T, 3 > & ea0, const Eigen::Vector< T, 3 > & ea1, const Eigen::Vector< T, 3 > & eb0, const Eigen::Vector< T, 3 > & eb1, T & dist2)
MUDA_GENERIC void edge_edge_mollifier (const Eigen::Vector< T, 3 > & ea0, const Eigen::Vector< T, 3 > & ea1, const Eigen::Vector< T, 3 > & eb0, const Eigen::Vector< T, 3 > & eb1, T eps_x, T & e)
MUDA_GENERIC void edge_edge_mollifier_gradient (const Eigen::Vector< T, 3 > & ea0, const Eigen::Vector< T, 3 > & ea1, const Eigen::Vector< T, 3 > & eb0, const Eigen::Vector< T, 3 > & eb1, T eps_x, Eigen::Vector< T, 12 > & g)
MUDA_GENERIC void edge_edge_mollifier_hessian (const Eigen::Vector< T, 3 > & ea0, const Eigen::Vector< T, 3 > & ea1, const Eigen::Vector< T, 3 > & eb0, const Eigen::Vector< T, 3 > & eb1, T eps_x, Eigen::Matrix< T, 12, 12 > & H)
MUDA_GENERIC void edge_edge_mollifier_threshold (const Eigen::Vector< T, 3 > & ea0_rest, const Eigen::Vector< T, 3 > & ea1_rest, const Eigen::Vector< T, 3 > & eb0_rest, const Eigen::Vector< T, 3 > & eb1_rest, T & eps_x)
MUDA_GENERIC bool point_edge_ccd (const Eigen::Matrix< T, 2, 1 > & x0, const Eigen::Matrix< T, 2, 1 > & x1, const Eigen::Matrix< T, 2, 1 > & x2, const Eigen::Matrix< T, 2, 1 > & d0, const Eigen::Matrix< T, 2, 1 > & d1, const Eigen::Matrix< T, 2, 1 > & d2, T eta, T & toc)
MUDA_GENERIC bool point_edge_ccd (Eigen::Matrix< T, 3, 1 > p, Eigen::Matrix< T, 3, 1 > e0, Eigen::Matrix< T, 3, 1 > e1, Eigen::Matrix< T, 3, 1 > dp, Eigen::Matrix< T, 3, 1 > de0, Eigen::Matrix< T, 3, 1 > de1, T eta, T thickness, int max_iter, T & toc)
MUDA_GENERIC bool point_edge_ccd_broadphase (const Eigen::Matrix< T, 2, 1 > & p, const Eigen::Matrix< T, 2, 1 > & e0, const Eigen::Matrix< T, 2, 1 > & e1, const Eigen::Matrix< T, 2, 1 > & dp, const Eigen::Matrix< T, 2, 1 > & de0, const Eigen::Matrix< T, 2, 1 > & de1, T dist)
MUDA_GENERIC bool point_edge_ccd_broadphase (const Eigen::Matrix< T, 3, 1 > & p, const Eigen::Matrix< T, 3, 1 > & e0, const Eigen::Matrix< T, 3, 1 > & e1, const Eigen::Matrix< T, 3, 1 > & dp, const Eigen::Matrix< T, 3, 1 > & de0, const Eigen::Matrix< T, 3, 1 > & de1, T dist)
MUDA_GENERIC bool point_edge_cd_broadphase (const Eigen::Matrix< T, dim, 1 > & x0, const Eigen::Matrix< T, dim, 1 > & x1, const Eigen::Matrix< T, dim, 1 > & x2, T dist)
MUDA_GENERIC void point_edge_distance (const Eigen::Vector< T, dim > & p, const Eigen::Vector< T, dim > & e0, const Eigen::Vector< T, dim > & e1, T & dist2)
MUDA_GENERIC void point_edge_distance_gradient (const Eigen::Vector< T, dim > & p, const Eigen::Vector< T, dim > & e0, const Eigen::Vector< T, dim > & e1, Eigen::Vector< T, dim *3 > & grad)
MUDA_GENERIC void point_edge_distance_hessian (const Eigen::Vector< T, dim > & p, const Eigen::Vector< T, dim > & e0, const Eigen::Vector< T, dim > & e1, Eigen::Matrix< T, dim *3, dim *3 > & Hessian)
MUDA_GENERIC PointEdgeDistanceType point_edge_distance_type (const Eigen::Vector< T, dim > & p, const Eigen::Vector< T, dim > & e0, const Eigen::Vector< T, dim > & e1)
MUDA_GENERIC PointEdgeDistanceType point_edge_distance_type (const Eigen::Vector< T, dim > & p, const Eigen::Vector< T, dim > & e0, const Eigen::Vector< T, dim > & e1, T & ratio)
MUDA_GENERIC void point_edge_distance_unclassified (const Eigen::Vector< T, 3 > & p, const Eigen::Vector< T, 3 > & e0, const Eigen::Vector< T, 3 > & e1, T & dist2)
MUDA_GENERIC bool point_point_ccd (Eigen::Matrix< T, 3, 1 > p0, Eigen::Matrix< T, 3, 1 > p1, Eigen::Matrix< T, 3, 1 > dp0, Eigen::Matrix< T, 3, 1 > dp1, T eta, T thickness, int max_iter, T & toc)
MUDA_GENERIC bool point_point_ccd_broadphase (const Eigen::Matrix< T, 3, 1 > & p0, const Eigen::Matrix< T, 3, 1 > & p1, const Eigen::Matrix< T, 3, 1 > & dp0, const Eigen::Matrix< T, 3, 1 > & dp1, T dist)
MUDA_GENERIC void point_point_distance (const Eigen::Vector< T, dim > & a, const Eigen::Vector< T, dim > & b, T & dist2)
MUDA_GENERIC void point_point_distance_gradient (const Eigen::Vector< T, dim > & a, const Eigen::Vector< T, dim > & b, Eigen::Vector< T, dim *2 > & grad)
MUDA_GENERIC void point_point_distance_hessian (const Eigen::Vector< T, dim > & a, const Eigen::Vector< T, dim > & b, Eigen::Matrix< T, dim *2, dim *2 > & Hessian)
MUDA_GENERIC PointPointDistanceType point_point_distance_type (const Eigen::Vector< T, dim > & p0, const Eigen::Vector< T, dim > & p1)
MUDA_GENERIC void point_point_distance_unclassified (const Eigen::Vector< T, 3 > & p0, const Eigen::Vector< T, 3 > & p1, T & dist2)
MUDA_GENERIC bool point_triangle_ccd (Eigen::Matrix< T, 3, 1 > p, Eigen::Matrix< T, 3, 1 > t0, Eigen::Matrix< T, 3, 1 > t1, Eigen::Matrix< T, 3, 1 > t2, Eigen::Matrix< T, 3, 1 > dp, Eigen::Matrix< T, 3, 1 > dt0, Eigen::Matrix< T, 3, 1 > dt1, Eigen::Matrix< T, 3, 1 > dt2, T eta, T thickness, int max_iter, T & toc)
MUDA_GENERIC bool point_triangle_ccd_broadphase (const Eigen::Matrix< T, 3, 1 > & p, const Eigen::Matrix< T, 3, 1 > & t0, const Eigen::Matrix< T, 3, 1 > & t1, const Eigen::Matrix< T, 3, 1 > & t2, const Eigen::Matrix< T, 3, 1 > & dp, const Eigen::Matrix< T, 3, 1 > & dt0, const Eigen::Matrix< T, 3, 1 > & dt1, const Eigen::Matrix< T, 3, 1 > & dt2, T dist)
MUDA_GENERIC bool point_triangle_cd_broadphase (const Eigen::Matrix< T, 3, 1 > & p, const Eigen::Matrix< T, 3, 1 > & t0, const Eigen::Matrix< T, 3, 1 > & t1, const Eigen::Matrix< T, 3, 1 > & t2, T dist)
MUDA_GENERIC void point_triangle_distance (const Eigen::Vector< T, 3 > & p, const Eigen::Vector< T, 3 > & t0, const Eigen::Vector< T, 3 > & t1, const Eigen::Vector< T, 3 > & t2, T & dist2)
MUDA_GENERIC void point_triangle_distance_gradient (const Eigen::Vector< T, 3 > & p, const Eigen::Vector< T, 3 > & t0, const Eigen::Vector< T, 3 > & t1, const Eigen::Vector< T, 3 > & t2, Eigen::Vector< T, 12 > & grad)
MUDA_GENERIC void point_triangle_distance_hessian (const Eigen::Vector< T, 3 > & p, const Eigen::Vector< T, 3 > & t0, const Eigen::Vector< T, 3 > & t1, const Eigen::Vector< T, 3 > & t2, Eigen::Matrix< T, 12, 12 > & Hessian)
MUDA_GENERIC PointTriangleDistanceType point_triangle_distance_type (const Eigen::Vector< T, 3 > & p, const Eigen::Vector< T, 3 > & t0, const Eigen::Vector< T, 3 > & t1, const Eigen::Vector< T, 3 > & t2)
MUDA_GENERIC void point_triangle_distance_unclassified (const Eigen::Vector< T, 3 > & p, const Eigen::Vector< T, 3 > & t0, const Eigen::Vector< T, 3 > & t1, const Eigen::Vector< T, 3 > & t2, T & dist2)

Public Types Documentation

enum EdgeEdgeDistanceType

enum muda::distance::EdgeEdgeDistanceType {
    PP_Ea0Eb0 = 0,
    PP_Ea0Eb1 = 1,
    PE_Ea0Eb0Eb1 = 2,
    PP_Ea1Eb0 = 3,
    PP_Ea1Eb1 = 4,
    PE_Ea1Eb0Eb1 = 5,
    PE_Eb0Ea0Ea1 = 6,
    PE_Eb1Ea0Ea1 = 7,
    EE = 8
};

enum PointEdgeDistanceType

enum muda::distance::PointEdgeDistanceType {
    PP_PE0 = 0,
    PP_PE1 = 1,
    PE = 2
};

enum PointPointDistanceType

enum muda::distance::PointPointDistanceType {
    PP = 0
};

enum PointTriangleDistanceType

enum muda::distance::PointTriangleDistanceType {
    PP_PT0 = 0,
    PP_PT1 = 1,
    PP_PT2 = 2,
    PE_PT0T1 = 3,
    PE_PT1T2 = 4,
    PE_PT2T0 = 5,
    PT = 6
};

Public Functions Documentation

function edge_edge_ccd

template<typename T>
MUDA_GENERIC bool muda::distance::edge_edge_ccd (
    Eigen::Matrix< T, 3, 1 > ea0,
    Eigen::Matrix< T, 3, 1 > ea1,
    Eigen::Matrix< T, 3, 1 > eb0,
    Eigen::Matrix< T, 3, 1 > eb1,
    Eigen::Matrix< T, 3, 1 > dea0,
    Eigen::Matrix< T, 3, 1 > dea1,
    Eigen::Matrix< T, 3, 1 > deb0,
    Eigen::Matrix< T, 3, 1 > deb1,
    T eta,
    T thickness,
    int max_iter,
    T & toc
) 

function edge_edge_ccd_broadphase

template<typename T>
MUDA_GENERIC bool muda::distance::edge_edge_ccd_broadphase (
    const Eigen::Matrix< T, 3, 1 > & ea0,
    const Eigen::Matrix< T, 3, 1 > & ea1,
    const Eigen::Matrix< T, 3, 1 > & eb0,
    const Eigen::Matrix< T, 3, 1 > & eb1,
    const Eigen::Matrix< T, 3, 1 > & dea0,
    const Eigen::Matrix< T, 3, 1 > & dea1,
    const Eigen::Matrix< T, 3, 1 > & deb0,
    const Eigen::Matrix< T, 3, 1 > & deb1,
    T dist
) 

function edge_edge_cd_broadphase

template<typename T>
MUDA_GENERIC bool muda::distance::edge_edge_cd_broadphase (
    const Eigen::Matrix< T, 3, 1 > & ea0,
    const Eigen::Matrix< T, 3, 1 > & ea1,
    const Eigen::Matrix< T, 3, 1 > & eb0,
    const Eigen::Matrix< T, 3, 1 > & eb1,
    T dist
) 

function edge_edge_cross_norm2

template<class T>
MUDA_GENERIC void muda::distance::edge_edge_cross_norm2 (
    const Eigen::Vector< T, 3 > & ea0,
    const Eigen::Vector< T, 3 > & ea1,
    const Eigen::Vector< T, 3 > & eb0,
    const Eigen::Vector< T, 3 > & eb1,
    T & result
) 

function edge_edge_cross_norm2_gradient

template<class T>
MUDA_GENERIC void muda::distance::edge_edge_cross_norm2_gradient (
    const Eigen::Vector< T, 3 > & ea0,
    const Eigen::Vector< T, 3 > & ea1,
    const Eigen::Vector< T, 3 > & eb0,
    const Eigen::Vector< T, 3 > & eb1,
    Eigen::Vector< T, 12 > & grad
) 

function edge_edge_cross_norm2_hessian

template<class T>
MUDA_GENERIC void muda::distance::edge_edge_cross_norm2_hessian (
    const Eigen::Vector< T, 3 > & ea0,
    const Eigen::Vector< T, 3 > & ea1,
    const Eigen::Vector< T, 3 > & eb0,
    const Eigen::Vector< T, 3 > & eb1,
    Eigen::Matrix< T, 12, 12 > & Hessian
) 

function edge_edge_distance

template<class T>
MUDA_GENERIC void muda::distance::edge_edge_distance (
    const Eigen::Vector< T, 3 > & ea0,
    const Eigen::Vector< T, 3 > & ea1,
    const Eigen::Vector< T, 3 > & eb0,
    const Eigen::Vector< T, 3 > & eb1,
    T & dist2
) 

function edge_edge_distance_gradient

template<class T>
MUDA_GENERIC void muda::distance::edge_edge_distance_gradient (
    const Eigen::Vector< T, 3 > & ea0,
    const Eigen::Vector< T, 3 > & ea1,
    const Eigen::Vector< T, 3 > & eb0,
    const Eigen::Vector< T, 3 > & eb1,
    Eigen::Vector< T, 12 > & grad
) 

function edge_edge_distance_hessian

template<class T>
MUDA_GENERIC void muda::distance::edge_edge_distance_hessian (
    const Eigen::Vector< T, 3 > & ea0,
    const Eigen::Vector< T, 3 > & ea1,
    const Eigen::Vector< T, 3 > & eb0,
    const Eigen::Vector< T, 3 > & eb1,
    Eigen::Matrix< T, 12, 12 > & Hessian
) 

function edge_edge_distance_type

template<class T>
MUDA_GENERIC EdgeEdgeDistanceType muda::distance::edge_edge_distance_type (
    const Eigen::Vector< T, 3 > & ea0,
    const Eigen::Vector< T, 3 > & ea1,
    const Eigen::Vector< T, 3 > & eb0,
    const Eigen::Vector< T, 3 > & eb1
) 

function edge_edge_distance_unclassified

template<class T>
MUDA_GENERIC void muda::distance::edge_edge_distance_unclassified (
    const Eigen::Vector< T, 3 > & ea0,
    const Eigen::Vector< T, 3 > & ea1,
    const Eigen::Vector< T, 3 > & eb0,
    const Eigen::Vector< T, 3 > & eb1,
    T & dist2
) 

function edge_edge_mollifier

template<class T>
MUDA_GENERIC void muda::distance::edge_edge_mollifier (
    const Eigen::Vector< T, 3 > & ea0,
    const Eigen::Vector< T, 3 > & ea1,
    const Eigen::Vector< T, 3 > & eb0,
    const Eigen::Vector< T, 3 > & eb1,
    T eps_x,
    T & e
) 

function edge_edge_mollifier_gradient

template<class T>
MUDA_GENERIC void muda::distance::edge_edge_mollifier_gradient (
    const Eigen::Vector< T, 3 > & ea0,
    const Eigen::Vector< T, 3 > & ea1,
    const Eigen::Vector< T, 3 > & eb0,
    const Eigen::Vector< T, 3 > & eb1,
    T eps_x,
    Eigen::Vector< T, 12 > & g
) 

function edge_edge_mollifier_hessian

template<class T>
MUDA_GENERIC void muda::distance::edge_edge_mollifier_hessian (
    const Eigen::Vector< T, 3 > & ea0,
    const Eigen::Vector< T, 3 > & ea1,
    const Eigen::Vector< T, 3 > & eb0,
    const Eigen::Vector< T, 3 > & eb1,
    T eps_x,
    Eigen::Matrix< T, 12, 12 > & H
) 

function edge_edge_mollifier_threshold

template<class T>
MUDA_GENERIC void muda::distance::edge_edge_mollifier_threshold (
    const Eigen::Vector< T, 3 > & ea0_rest,
    const Eigen::Vector< T, 3 > & ea1_rest,
    const Eigen::Vector< T, 3 > & eb0_rest,
    const Eigen::Vector< T, 3 > & eb1_rest,
    T & eps_x
) 

function point_edge_ccd

template<typename T>
MUDA_GENERIC bool muda::distance::point_edge_ccd (
    const Eigen::Matrix< T, 2, 1 > & x0,
    const Eigen::Matrix< T, 2, 1 > & x1,
    const Eigen::Matrix< T, 2, 1 > & x2,
    const Eigen::Matrix< T, 2, 1 > & d0,
    const Eigen::Matrix< T, 2, 1 > & d1,
    const Eigen::Matrix< T, 2, 1 > & d2,
    T eta,
    T & toc
) 

function point_edge_ccd

template<typename T>
MUDA_GENERIC bool muda::distance::point_edge_ccd (
    Eigen::Matrix< T, 3, 1 > p,
    Eigen::Matrix< T, 3, 1 > e0,
    Eigen::Matrix< T, 3, 1 > e1,
    Eigen::Matrix< T, 3, 1 > dp,
    Eigen::Matrix< T, 3, 1 > de0,
    Eigen::Matrix< T, 3, 1 > de1,
    T eta,
    T thickness,
    int max_iter,
    T & toc
) 

function point_edge_ccd_broadphase

template<typename T>
MUDA_GENERIC bool muda::distance::point_edge_ccd_broadphase (
    const Eigen::Matrix< T, 2, 1 > & p,
    const Eigen::Matrix< T, 2, 1 > & e0,
    const Eigen::Matrix< T, 2, 1 > & e1,
    const Eigen::Matrix< T, 2, 1 > & dp,
    const Eigen::Matrix< T, 2, 1 > & de0,
    const Eigen::Matrix< T, 2, 1 > & de1,
    T dist
) 

function point_edge_ccd_broadphase

template<typename T>
MUDA_GENERIC bool muda::distance::point_edge_ccd_broadphase (
    const Eigen::Matrix< T, 3, 1 > & p,
    const Eigen::Matrix< T, 3, 1 > & e0,
    const Eigen::Matrix< T, 3, 1 > & e1,
    const Eigen::Matrix< T, 3, 1 > & dp,
    const Eigen::Matrix< T, 3, 1 > & de0,
    const Eigen::Matrix< T, 3, 1 > & de1,
    T dist
) 

function point_edge_cd_broadphase

template<typename T, int dim>
MUDA_GENERIC bool muda::distance::point_edge_cd_broadphase (
    const Eigen::Matrix< T, dim, 1 > & x0,
    const Eigen::Matrix< T, dim, 1 > & x1,
    const Eigen::Matrix< T, dim, 1 > & x2,
    T dist
) 

function point_edge_distance

template<class T, int dim>
MUDA_GENERIC void muda::distance::point_edge_distance (
    const Eigen::Vector< T, dim > & p,
    const Eigen::Vector< T, dim > & e0,
    const Eigen::Vector< T, dim > & e1,
    T & dist2
) 

function point_edge_distance_gradient

template<class T, int dim>
MUDA_GENERIC void muda::distance::point_edge_distance_gradient (
    const Eigen::Vector< T, dim > & p,
    const Eigen::Vector< T, dim > & e0,
    const Eigen::Vector< T, dim > & e1,
    Eigen::Vector< T, dim *3 > & grad
) 

function point_edge_distance_hessian

template<class T, int dim>
MUDA_GENERIC void muda::distance::point_edge_distance_hessian (
    const Eigen::Vector< T, dim > & p,
    const Eigen::Vector< T, dim > & e0,
    const Eigen::Vector< T, dim > & e1,
    Eigen::Matrix< T, dim *3, dim *3 > & Hessian
) 

function point_edge_distance_type

template<class T, int dim>
MUDA_GENERIC PointEdgeDistanceType muda::distance::point_edge_distance_type (
    const Eigen::Vector< T, dim > & p,
    const Eigen::Vector< T, dim > & e0,
    const Eigen::Vector< T, dim > & e1
) 

function point_edge_distance_type

template<class T, int dim>
MUDA_GENERIC PointEdgeDistanceType muda::distance::point_edge_distance_type (
    const Eigen::Vector< T, dim > & p,
    const Eigen::Vector< T, dim > & e0,
    const Eigen::Vector< T, dim > & e1,
    T & ratio
) 

function point_edge_distance_unclassified

template<class T>
MUDA_GENERIC void muda::distance::point_edge_distance_unclassified (
    const Eigen::Vector< T, 3 > & p,
    const Eigen::Vector< T, 3 > & e0,
    const Eigen::Vector< T, 3 > & e1,
    T & dist2
) 

function point_point_ccd

template<typename T>
MUDA_GENERIC bool muda::distance::point_point_ccd (
    Eigen::Matrix< T, 3, 1 > p0,
    Eigen::Matrix< T, 3, 1 > p1,
    Eigen::Matrix< T, 3, 1 > dp0,
    Eigen::Matrix< T, 3, 1 > dp1,
    T eta,
    T thickness,
    int max_iter,
    T & toc
) 

function point_point_ccd_broadphase

template<typename T>
MUDA_GENERIC bool muda::distance::point_point_ccd_broadphase (
    const Eigen::Matrix< T, 3, 1 > & p0,
    const Eigen::Matrix< T, 3, 1 > & p1,
    const Eigen::Matrix< T, 3, 1 > & dp0,
    const Eigen::Matrix< T, 3, 1 > & dp1,
    T dist
) 

function point_point_distance

template<class T, int dim>
MUDA_GENERIC void muda::distance::point_point_distance (
    const Eigen::Vector< T, dim > & a,
    const Eigen::Vector< T, dim > & b,
    T & dist2
) 

function point_point_distance_gradient

template<class T, int dim>
MUDA_GENERIC void muda::distance::point_point_distance_gradient (
    const Eigen::Vector< T, dim > & a,
    const Eigen::Vector< T, dim > & b,
    Eigen::Vector< T, dim *2 > & grad
) 

function point_point_distance_hessian

template<class T, int dim>
MUDA_GENERIC void muda::distance::point_point_distance_hessian (
    const Eigen::Vector< T, dim > & a,
    const Eigen::Vector< T, dim > & b,
    Eigen::Matrix< T, dim *2, dim *2 > & Hessian
) 

function point_point_distance_type

template<class T, int dim>
MUDA_GENERIC PointPointDistanceType muda::distance::point_point_distance_type (
    const Eigen::Vector< T, dim > & p0,
    const Eigen::Vector< T, dim > & p1
) 

function point_point_distance_unclassified

template<class T>
MUDA_GENERIC void muda::distance::point_point_distance_unclassified (
    const Eigen::Vector< T, 3 > & p0,
    const Eigen::Vector< T, 3 > & p1,
    T & dist2
) 

function point_triangle_ccd

template<typename T>
MUDA_GENERIC bool muda::distance::point_triangle_ccd (
    Eigen::Matrix< T, 3, 1 > p,
    Eigen::Matrix< T, 3, 1 > t0,
    Eigen::Matrix< T, 3, 1 > t1,
    Eigen::Matrix< T, 3, 1 > t2,
    Eigen::Matrix< T, 3, 1 > dp,
    Eigen::Matrix< T, 3, 1 > dt0,
    Eigen::Matrix< T, 3, 1 > dt1,
    Eigen::Matrix< T, 3, 1 > dt2,
    T eta,
    T thickness,
    int max_iter,
    T & toc
) 

function point_triangle_ccd_broadphase

template<typename T>
MUDA_GENERIC bool muda::distance::point_triangle_ccd_broadphase (
    const Eigen::Matrix< T, 3, 1 > & p,
    const Eigen::Matrix< T, 3, 1 > & t0,
    const Eigen::Matrix< T, 3, 1 > & t1,
    const Eigen::Matrix< T, 3, 1 > & t2,
    const Eigen::Matrix< T, 3, 1 > & dp,
    const Eigen::Matrix< T, 3, 1 > & dt0,
    const Eigen::Matrix< T, 3, 1 > & dt1,
    const Eigen::Matrix< T, 3, 1 > & dt2,
    T dist
) 

function point_triangle_cd_broadphase

template<typename T>
MUDA_GENERIC bool muda::distance::point_triangle_cd_broadphase (
    const Eigen::Matrix< T, 3, 1 > & p,
    const Eigen::Matrix< T, 3, 1 > & t0,
    const Eigen::Matrix< T, 3, 1 > & t1,
    const Eigen::Matrix< T, 3, 1 > & t2,
    T dist
) 

function point_triangle_distance

template<class T>
MUDA_GENERIC void muda::distance::point_triangle_distance (
    const Eigen::Vector< T, 3 > & p,
    const Eigen::Vector< T, 3 > & t0,
    const Eigen::Vector< T, 3 > & t1,
    const Eigen::Vector< T, 3 > & t2,
    T & dist2
) 

function point_triangle_distance_gradient

template<class T>
MUDA_GENERIC void muda::distance::point_triangle_distance_gradient (
    const Eigen::Vector< T, 3 > & p,
    const Eigen::Vector< T, 3 > & t0,
    const Eigen::Vector< T, 3 > & t1,
    const Eigen::Vector< T, 3 > & t2,
    Eigen::Vector< T, 12 > & grad
) 

function point_triangle_distance_hessian

template<class T>
MUDA_GENERIC void muda::distance::point_triangle_distance_hessian (
    const Eigen::Vector< T, 3 > & p,
    const Eigen::Vector< T, 3 > & t0,
    const Eigen::Vector< T, 3 > & t1,
    const Eigen::Vector< T, 3 > & t2,
    Eigen::Matrix< T, 12, 12 > & Hessian
) 

function point_triangle_distance_type

template<class T>
MUDA_GENERIC PointTriangleDistanceType muda::distance::point_triangle_distance_type (
    const Eigen::Vector< T, 3 > & p,
    const Eigen::Vector< T, 3 > & t0,
    const Eigen::Vector< T, 3 > & t1,
    const Eigen::Vector< T, 3 > & t2
) 

function point_triangle_distance_unclassified

template<class T>
MUDA_GENERIC void muda::distance::point_triangle_distance_unclassified (
    const Eigen::Vector< T, 3 > & p,
    const Eigen::Vector< T, 3 > & t0,
    const Eigen::Vector< T, 3 > & t1,
    const Eigen::Vector< T, 3 > & t2,
    T & dist2
) 


The documentation for this class was generated from the following file src/muda/ext/geo/distance/ccd.h