libigl v2.5.0
Loading...
Searching...
No Matches
igl::SphereMeshWedge< Scalar > Class Template Reference

A class to compute the signed distance to a "Sphere-Mesh Wedge" as seen in variable radius offset surfaces or Sphere-Meshes. More...

#include <SphereMeshWedge.h>

Public Types

enum  { BIG_VERTEX = 0 , BIG_EDGE = 1 , NO_TRIANGLE = 2 , FULL = 3 }
using RowVector3S = Eigen::Matrix<Scalar, 1, 3>

Public Member Functions

 SphereMeshWedge ()
 SphereMeshWedge (const RowVector3S &V0, const RowVector3S &V1, const RowVector3S &V2, const Scalar r0, const Scalar r1, const Scalar r2)
 Constructor that takes three vertices and three radii.
Scalar operator() (const RowVector3S &p) const

Public Attributes

enum igl::SphereMeshWedge:: { ... }  flavor
Eigen::Matrix< Scalar, 3, 3, Eigen::RowMajor > V
Eigen::Matrix< Scalar, 3, 1 > r
Eigen::Matrix< Scalar, 3, 3, Eigen::RowMajor > EV
Eigen::Matrix< Scalar, 3, 1 > l
Eigen::Matrix< Scalar, 3, 1 > l2
Eigen::Matrix< Scalar, 3, 1 > rr
Eigen::Matrix< Scalar, 3, 1 > a2
Eigen::Matrix< Scalar, 3, 1 > il2
int max_i
Eigen::Matrix< Scalar, 5, 4, Eigen::RowMajor > planes
Eigen::Matrix< Scalar, 3, 3, Eigen::RowMajor > T
Eigen::Matrix< Scalar, 3, 3, Eigen::RowMajor > C

Detailed Description

template<typename Scalar>
class igl::SphereMeshWedge< Scalar >

A class to compute the signed distance to a "Sphere-Mesh Wedge" as seen in variable radius offset surfaces or Sphere-Meshes.

Each wedge is defined by three vertices and three radii, one at each vertex. The wedge is the union of all spheres at points on the triangle with radius linearly interpolated. See, e.g., "Sphere-Meshes for Real-Time Hand Modeling and Tracking" or "A Multilinear Model for Bidirectional Craniofacial Reconstruction" or "Sphere-Meshes: Shape Approximation using Spherical Quadric Error Metrics" or "Variable-Radius Offset Surface Approximation on the GPU".

Member Typedef Documentation

◆ RowVector3S

template<typename Scalar>
using igl::SphereMeshWedge< Scalar >::RowVector3S = Eigen::Matrix<Scalar, 1, 3>

Member Enumeration Documentation

◆ anonymous enum

template<typename Scalar>
anonymous enum
Enumerator
BIG_VERTEX 
BIG_EDGE 
NO_TRIANGLE 
FULL 

Constructor & Destructor Documentation

◆ SphereMeshWedge() [1/2]

template<typename Scalar>
igl::SphereMeshWedge< Scalar >::SphereMeshWedge ( )
inline

◆ SphereMeshWedge() [2/2]

template<typename Scalar>
igl::SphereMeshWedge< Scalar >::SphereMeshWedge ( const RowVector3S & V0,
const RowVector3S & V1,
const RowVector3S & V2,
const Scalar r0,
const Scalar r1,
const Scalar r2 )

Constructor that takes three vertices and three radii.

Parameters
V0first vertex position
V1second vertex position
V2third vertex position
r0radius at first vertex
r1radius at second vertex
r2radius at third vertex

Member Function Documentation

◆ operator()()

template<typename Scalar>
Scalar igl::SphereMeshWedge< Scalar >::operator() ( const RowVector3S & p) const
Parameters
[in]p3-vector query point
Returns
signed distance to the wedge at point p

Member Data Documentation

◆ []

enum { ... } igl::SphereMeshWedge< Scalar >::flavor

◆ V

template<typename Scalar>
Eigen::Matrix<Scalar,3,3,Eigen::RowMajor> igl::SphereMeshWedge< Scalar >::V

◆ r

template<typename Scalar>
Eigen::Matrix<Scalar,3,1> igl::SphereMeshWedge< Scalar >::r

◆ EV

template<typename Scalar>
Eigen::Matrix<Scalar,3,3,Eigen::RowMajor> igl::SphereMeshWedge< Scalar >::EV

◆ l

template<typename Scalar>
Eigen::Matrix<Scalar,3,1> igl::SphereMeshWedge< Scalar >::l

◆ l2

template<typename Scalar>
Eigen::Matrix<Scalar,3,1> igl::SphereMeshWedge< Scalar >::l2

◆ rr

template<typename Scalar>
Eigen::Matrix<Scalar,3,1> igl::SphereMeshWedge< Scalar >::rr

◆ a2

template<typename Scalar>
Eigen::Matrix<Scalar,3,1> igl::SphereMeshWedge< Scalar >::a2

◆ il2

template<typename Scalar>
Eigen::Matrix<Scalar,3,1> igl::SphereMeshWedge< Scalar >::il2

◆ max_i

template<typename Scalar>
int igl::SphereMeshWedge< Scalar >::max_i

◆ planes

template<typename Scalar>
Eigen::Matrix<Scalar,5,4,Eigen::RowMajor> igl::SphereMeshWedge< Scalar >::planes

◆ T

template<typename Scalar>
Eigen::Matrix<Scalar,3,3,Eigen::RowMajor> igl::SphereMeshWedge< Scalar >::T

◆ C

template<typename Scalar>
Eigen::Matrix<Scalar,3,3,Eigen::RowMajor> igl::SphereMeshWedge< Scalar >::C

The documentation for this class was generated from the following file: