refine.h File Reference

Functions to refine the cells in a SimpMeshRed. More...

#include "coarsen.h"
#include "inc_opt.h"
#include "insert.h"
#include "set.h"
#include "../iss/ISS_SignedDistance.h"
#include "../iss/PointsOnManifold.h"
#include "../../../ads/functor/constant.h"
#include <set>
#include "refine2.ipp"

Go to the source code of this file.

Functions

template<int N, int M, typename T , template< class > class Node, template< class > class Cell, template< class, class > class Cont, int MM, int SD, class MaxEdgeLength >
BEGIN_NAMESPACE_GEOM int refine (SimpMeshRed< N, M, T, Node, Cell, Cont > *mesh, PointsOnManifold< N, MM, SD, T > *manifold, const MaxEdgeLength &f)
 Refine the mesh using the maximum edge length function.
template<int N, int M, typename T , template< class > class Node, template< class > class Cell, template< class, class > class Cont, class MaxEdgeLength >
int refine (SimpMeshRed< N, M, T, Node, Cell, Cont > *mesh, const MaxEdgeLength &f)
 Refine the mesh using the maximum edge length function.
template<int N, int M, typename T , template< class > class Node, template< class > class Cell, template< class, class > class Cont, int MM, int SD, typename IntInputIterator >
int refine (SimpMeshRed< N, M, T, Node, Cell, Cont > *mesh, PointsOnManifold< N, MM, SD, T > *manifold, IntInputIterator begin, IntInputIterator end)
 Refine the mesh by splitting the specified cells.
template<int N, int M, typename T , template< class > class Node, template< class > class Cell, template< class, class > class Cont, typename IntInputIterator >
int refine (SimpMeshRed< N, M, T, Node, Cell, Cont > *mesh, IntInputIterator begin, IntInputIterator end)
 Refine the mesh by splitting the specified cells.
template<int N, int M, typename T , template< class > class Node, template< class > class Cell, template< class, class > class Cont, int MM, int SD, typename IntInputIterator , class MaxEdgeLength >
int refine (SimpMeshRed< N, M, T, Node, Cell, Cont > *mesh, PointsOnManifold< N, MM, SD, T > *manifold, IntInputIterator begin, IntInputIterator end, const MaxEdgeLength &f)
 Refine the specified cells using the maximum edge length function.
template<int N, int M, typename T , template< class > class Node, template< class > class Cell, template< class, class > class Cont, typename IntInputIterator , class MaxEdgeLength >
int refine (SimpMeshRed< N, M, T, Node, Cell, Cont > *mesh, IntInputIterator begin, IntInputIterator end, const MaxEdgeLength &f)
 Refine the specified cells using the maximum edge length function.
template<typename T , template< class > class Node, template< class > class Cell, template< class, class > class Cont, class ISS >
int refineBoundary (SimpMeshRed< 2, 2, T, Node, Cell, Cont > *x, const ISS &boundary, T maxAngle, T minEdgeLength, int maxSweeps=10)
 Refine the mesh to better fit the boundary.
template<typename T , template< class > class Node, template< class > class Cell, template< class, class > class Cont, class Distance , class ClosestPoint , class MaxAngle , class MinEdgeLength >
int refineBoundary (SimpMeshRed< 2, 2, T, Node, Cell, Cont > *x, const Distance &distance, const ClosestPoint &closestPoint, const MaxAngle &maxAngle, const MinEdgeLength &minEdgeLength, int maxSweeps=10)
 Refine the mesh to better fit the boundary.
template<typename T , template< class > class Node, template< class > class Cell, template< class, class > class Cont, class MaxEdgeLength >
int refineAdjust (SimpMeshRed< 2, 2, T, Node, Cell, Cont > *mesh, const MaxEdgeLength &f)
 Refine and adjust the mesh using the maximum edge length function.

Detailed Description

Functions to refine the cells in a SimpMeshRed.


Function Documentation

template<int N, int M, typename T , template< class > class Node, template< class > class Cell, template< class, class > class Cont, typename IntInputIterator , class MaxEdgeLength >
int refine ( SimpMeshRed< N, M, T, Node, Cell, Cont > *  mesh,
IntInputIterator  begin,
IntInputIterator  end,
const MaxEdgeLength &  f 
) [inline]

Refine the specified cells using the maximum edge length function.

Parameters:
mesh The simplicial mesh.
begin The beginning of a range of cell indices.
end The end of a range of cell indices.
f The maximum edge length functor. The algorithm will split edges above this threshold.

This simply calls the above function with a null pointer for the boundary manifold data structure.

Returns:
the number of edges split.

References refine().

template<int N, int M, typename T , template< class > class Node, template< class > class Cell, template< class, class > class Cont, int MM, int SD, typename IntInputIterator , class MaxEdgeLength >
int refine ( SimpMeshRed< N, M, T, Node, Cell, Cont > *  mesh,
PointsOnManifold< N, MM, SD, T > *  manifold,
IntInputIterator  begin,
IntInputIterator  end,
const MaxEdgeLength &  f 
) [inline]

Refine the specified cells using the maximum edge length function.

Parameters:
mesh The simplicial mesh.
manifold The manifold data structure.
begin The beginning of a range of cell indices.
end The end of a range of cell indices.
f The maximum edge length functor. The algorithm will split edges above this threshold.

This function will refine the cells whose edge lengths exceed the maximum specified edge length.

Returns:
the number of edges split.
template<int N, int M, typename T , template< class > class Node, template< class > class Cell, template< class, class > class Cont, typename IntInputIterator >
int refine ( SimpMeshRed< N, M, T, Node, Cell, Cont > *  mesh,
IntInputIterator  begin,
IntInputIterator  end 
) [inline]

Refine the mesh by splitting the specified cells.

Parameters:
mesh The simplicial mesh.
begin The beginning of a range of cell indices.
end The end of a range of cell indices.

This simply calls the above function with a null pointer for the boundary manifold data structure.

Returns:
the number of edges split.

References refine().

template<int N, int M, typename T , template< class > class Node, template< class > class Cell, template< class, class > class Cont, int MM, int SD, typename IntInputIterator >
int refine ( SimpMeshRed< N, M, T, Node, Cell, Cont > *  mesh,
PointsOnManifold< N, MM, SD, T > *  manifold,
IntInputIterator  begin,
IntInputIterator  end 
) [inline]

Refine the mesh by splitting the specified cells.

Parameters:
mesh The simplicial mesh.
manifold The boundary manifold data structure. By default it is null.
begin The beginning of a range of cell indices.
end The end of a range of cell indices.
Returns:
the number of edges split.
template<int N, int M, typename T , template< class > class Node, template< class > class Cell, template< class, class > class Cont, class MaxEdgeLength >
int refine ( SimpMeshRed< N, M, T, Node, Cell, Cont > *  mesh,
const MaxEdgeLength &  f 
) [inline]

Refine the mesh using the maximum edge length function.

Parameters:
mesh The simplicial mesh.
f The maximum edge length functor. The algorithm will split edges above this threshold.

This simply calls the above function with a null pointer for the boundary manifold data structure.

Returns:
the number of edges split.

References refine().

template<int N, int M, typename T , template< class > class Node, template< class > class Cell, template< class, class > class Cont, int MM, int SD, class MaxEdgeLength >
BEGIN_NAMESPACE_GEOM int refine ( SimpMeshRed< N, M, T, Node, Cell, Cont > *  mesh,
PointsOnManifold< N, MM, SD, T > *  manifold,
const MaxEdgeLength &  f 
) [inline]

Refine the mesh using the maximum edge length function.

Parameters:
mesh The simplicial mesh.
manifold The manifold data structure.
f The maximum edge length functor. The algorithm will split edges above this threshold.
Returns:
the number of edges split.

Referenced by refine().

template<typename T , template< class > class Node, template< class > class Cell, template< class, class > class Cont, class MaxEdgeLength >
int refineAdjust ( SimpMeshRed< 2, 2, T, Node, Cell, Cont > *  mesh,
const MaxEdgeLength &  f 
) [inline]

Refine and adjust the mesh using the maximum edge length function.

Parameters:
mesh The simplicial mesh.
f The maximum edge length functor. The algorithm will split edges above this threshold.

When an edge is split, incidence optimization and Laplacian smoothing is performed to adjust the mesh.

Returns:
the number of edges split.
template<typename T , template< class > class Node, template< class > class Cell, template< class, class > class Cont, class Distance , class ClosestPoint , class MaxAngle , class MinEdgeLength >
int refineBoundary ( SimpMeshRed< 2, 2, T, Node, Cell, Cont > *  x,
const Distance &  distance,
const ClosestPoint &  closestPoint,
const MaxAngle &  maxAngle,
const MinEdgeLength &  minEdgeLength,
int  maxSweeps = 10 
) [inline]

Refine the mesh to better fit the boundary.

Returns:
the number of edges split.
template<typename T , template< class > class Node, template< class > class Cell, template< class, class > class Cont, class ISS >
int refineBoundary ( SimpMeshRed< 2, 2, T, Node, Cell, Cont > *  x,
const ISS &  boundary,
maxAngle,
minEdgeLength,
int  maxSweeps = 10 
) [inline]

Refine the mesh to better fit the boundary.

Returns:
the number of edges split.
Generated on Thu Jun 30 02:14:57 2016 for Computational Geometry Package by  doxygen 1.6.3