Compute the distance to a simplicial mesh for a single point.

Functions

template<bool _A, typename _T , typename _V , typename _IS >
IndSimpSetIncAdj< 2, 1, _A, _T,
_V, _IS >::Number 
computeSignedDistance (const IndSimpSetIncAdj< 2, 1, _A, _T, _V, _IS > &mesh, const ads::Array< 1, typename IndSimpSetIncAdj< 2, 1, _A, _T, _V, _IS >::Number > &squaredHalfLengths, const typename IndSimpSetIncAdj< 2, 1, _A, _T, _V, _IS >::Vertex &point, typename IndSimpSetIncAdj< 2, 1, _A, _T, _V, _IS >::Vertex *closestPoint)
 Compute the signed distance to the mesh and closest point on the mesh.
template<bool _A, typename _T , typename _V , typename _IS >
IndSimpSetIncAdj< 2, 1, _A, _T,
_V, _IS >::Number 
computeSignedDistance (const IndSimpSetIncAdj< 2, 1, _A, _T, _V, _IS > &mesh, const typename IndSimpSetIncAdj< 2, 1, _A, _T, _V, _IS >::Vertex &point, typename IndSimpSetIncAdj< 2, 1, _A, _T, _V, _IS >::Vertex *closestPoint)
 Compute the signed distance to the mesh and closest point on the mesh.
template<bool _A, typename _T , typename _V , typename _IS >
IndSimpSetIncAdj< 2, 1, _A, _T,
_V, _IS >::Number 
computeSignedDistance (const IndSimpSetIncAdj< 2, 1, _A, _T, _V, _IS > &mesh, const typename IndSimpSetIncAdj< 2, 1, _A, _T, _V, _IS >::Vertex &point)
 Compute the signed distance to the mesh.
template<bool _A, typename _T , typename _V , typename _IS , typename InputIterator , typename NumberOutputIterator , typename PointOutputIterator >
void computeSignedDistance (const IndSimpSetIncAdj< 2, 1, _A, _T, _V, _IS > &mesh, InputIterator pointsBeginning, InputIterator pointsEnd, NumberOutputIterator distances, PointOutputIterator closestPoints)
 Compute the signed distances to the mesh and closest points on the mesh.
template<bool _A, typename _T , typename _V , typename _IS , typename InputIterator , typename NumberOutputIterator >
void computeSignedDistance (const IndSimpSetIncAdj< 2, 1, _A, _T, _V, _IS > &mesh, InputIterator pointsBeginning, InputIterator pointsEnd, NumberOutputIterator distances)
 Compute the signed distances to the mesh and closest points on the mesh.
template<bool _A, typename _T , typename _V , typename _IS >
IndSimpSetIncAdj< 3, 2, _A, _T,
_V, _IS >::Number 
computeSignedDistance (const IndSimpSetIncAdj< 3, 2, _A, _T, _V, _IS > &mesh, const ads::Array< 1, typename IndSimpSetIncAdj< 3, 2, _A, _T, _V, _IS >::Number > &squaredLongestEdgeLengths, const typename IndSimpSetIncAdj< 3, 2, _A, _T, _V, _IS >::Vertex &point, typename IndSimpSetIncAdj< 3, 2, _A, _T, _V, _IS >::Vertex *closestPoint)
 Compute the signed distance to the mesh and closest point on the mesh.
template<bool _A, typename _T , typename _V , typename _IS >
IndSimpSetIncAdj< 3, 2, _A, _T,
_V, _IS >::Number 
computeSignedDistance (const IndSimpSetIncAdj< 3, 2, _A, _T, _V, _IS > &mesh, const typename IndSimpSetIncAdj< 3, 2, _A, _T, _V, _IS >::Vertex &point, typename IndSimpSetIncAdj< 3, 2, _A, _T, _V, _IS >::Vertex *closestPoint)
 Compute the signed distance to the mesh and closest point on the mesh.
template<bool _A, typename _T , typename _V , typename _IS >
IndSimpSetIncAdj< 3, 2, _A, _T,
_V, _IS >::Number 
computeSignedDistance (const IndSimpSetIncAdj< 3, 2, _A, _T, _V, _IS > &mesh, const typename IndSimpSetIncAdj< 3, 2, _A, _T, _V, _IS >::Vertex &point)
 Compute the signed distance to the mesh.
template<bool _A, typename _T , typename _V , typename _IS , typename InputIterator , typename NumberOutputIterator , typename PointOutputIterator >
void computeSignedDistance (const IndSimpSetIncAdj< 3, 2, _A, _T, _V, _IS > &mesh, InputIterator pointsBeginning, InputIterator pointsEnd, NumberOutputIterator distances, PointOutputIterator closestPoints)
 Compute the signed distances to the mesh and closest points on the mesh.
template<bool _A, typename _T , typename _V , typename _IS , typename InputIterator , typename NumberOutputIterator >
void computeSignedDistance (const IndSimpSetIncAdj< 3, 2, _A, _T, _V, _IS > &mesh, InputIterator pointsBeginning, InputIterator pointsEnd, NumberOutputIterator distances)
 Compute the signed distances to the mesh and closest points on the mesh.

Detailed Description


Function Documentation

template<bool _A, typename _T , typename _V , typename _IS >
IndSimpSetIncAdj<3,2,_A,_T,_V,_IS>::Number computeSignedDistance ( const IndSimpSetIncAdj< 3, 2, _A, _T, _V, _IS > &  mesh,
const typename IndSimpSetIncAdj< 3, 2, _A, _T, _V, _IS >::Vertex &  point 
) [inline]

Compute the signed distance to the mesh.

This function just calls the above function which computes the signed distance and closest point.

References Simplex< N, V, T >::computeSignedDistance().

template<bool _A, typename _T , typename _V , typename _IS >
IndSimpSetIncAdj<3,2,_A,_T,_V,_IS>::Number computeSignedDistance ( const IndSimpSetIncAdj< 3, 2, _A, _T, _V, _IS > &  mesh,
const typename IndSimpSetIncAdj< 3, 2, _A, _T, _V, _IS >::Vertex &  point,
typename IndSimpSetIncAdj< 3, 2, _A, _T, _V, _IS >::Vertex *  closestPoint 
) [inline]

Compute the signed distance to the mesh and closest point on the mesh.

This function computes the squared edge lengths and then calls the above function.

template<bool _A, typename _T , typename _V , typename _IS >
IndSimpSetIncAdj<3,2,_A,_T,_V,_IS>::Number computeSignedDistance ( const IndSimpSetIncAdj< 3, 2, _A, _T, _V, _IS > &  mesh,
const ads::Array< 1, typename IndSimpSetIncAdj< 3, 2, _A, _T, _V, _IS >::Number > &  squaredLongestEdgeLengths,
const typename IndSimpSetIncAdj< 3, 2, _A, _T, _V, _IS >::Vertex &  point,
typename IndSimpSetIncAdj< 3, 2, _A, _T, _V, _IS >::Vertex *  closestPoint 
) [inline]

Compute the signed distance to the mesh and closest point on the mesh.

Use this function to compute the distance to a mesh for a single point. Or call it a few times if you want to compute the signed distance for a small number of points. This function has linear computational complexity in the size of the mesh. If you are computing the distance for many points, use ISS_SignedDistance instead.

This function will return correct results only if the distance is well-defined. The mesh must be a 2-manifold. If the mesh has a boundary, the closest point must lie on the interior. If the closest point is on the boundary, the signed distance is not defined. (The unsigned distance, however, is defined.)

The algorithm for computing the signed distance first uses the vertices of the mesh to obtain an upper bound on the squared distance to the mesh. Then the signed distance is computed to those vertices, edges, and faces which could possibly contain the closest point.

template<bool _A, typename _T , typename _V , typename _IS >
IndSimpSetIncAdj<2,1,_A,_T,_V,_IS>::Number computeSignedDistance ( const IndSimpSetIncAdj< 2, 1, _A, _T, _V, _IS > &  mesh,
const typename IndSimpSetIncAdj< 2, 1, _A, _T, _V, _IS >::Vertex &  point 
) [inline]

Compute the signed distance to the mesh.

This function just calls the above function which computes the signed distance and closest point.

References Simplex< N, V, T >::computeSignedDistance().

template<bool _A, typename _T , typename _V , typename _IS >
IndSimpSetIncAdj<2,1,_A,_T,_V,_IS>::Number computeSignedDistance ( const IndSimpSetIncAdj< 2, 1, _A, _T, _V, _IS > &  mesh,
const typename IndSimpSetIncAdj< 2, 1, _A, _T, _V, _IS >::Vertex &  point,
typename IndSimpSetIncAdj< 2, 1, _A, _T, _V, _IS >::Vertex *  closestPoint 
) [inline]

Compute the signed distance to the mesh and closest point on the mesh.

This function computes the squared half lengths of the faces and then calls the above function.

template<bool _A, typename _T , typename _V , typename _IS >
IndSimpSetIncAdj<2,1,_A,_T,_V,_IS>::Number computeSignedDistance ( const IndSimpSetIncAdj< 2, 1, _A, _T, _V, _IS > &  mesh,
const ads::Array< 1, typename IndSimpSetIncAdj< 2, 1, _A, _T, _V, _IS >::Number > &  squaredHalfLengths,
const typename IndSimpSetIncAdj< 2, 1, _A, _T, _V, _IS >::Vertex &  point,
typename IndSimpSetIncAdj< 2, 1, _A, _T, _V, _IS >::Vertex *  closestPoint 
) [inline]

Compute the signed distance to the mesh and closest point on the mesh.

Use this function to compute the distance to a mesh for a single point. Or call it a few times if you want to compute the signed distance for a small number of points. This function has linear computational complexity in the size of the mesh. If you are computing the distance for many points, use ISS_SignedDistance instead.

This function will return correct results only if the distance is well-defined. The mesh must be a 1-manifold. If the mesh has a boundary, the closest point must lie on the interior. If the closest point is on the boundary, the signed distance is not defined. (The unsigned distance, however, is defined.)

The algorithm for computing the signed distance first uses the vertices of the mesh to obtain an upper bound on the squared distance to the mesh. Then the signed distance is computed to those vertices and faces which could possibly contain the closest point.

Generated on Thu Jun 30 02:14:58 2016 for Computational Geometry Package by  doxygen 1.6.3