topologicalOptimize.h File Reference

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

#include "SimpMeshRed.h"
#include "EdgeRemoval.h"
#include "../simplex/SimplexModCondNum.h"
#include "../../../ads/array/Array.h"
#include <cassert>
#include "EdgeRemoval.ipp"
#include "FaceRemoval.ipp"
#include "set.h"
#include "../iss/PointsOnManifold.h"
#include "../defs.h"
#include "skipElements.ipp"

Go to the source code of this file.

Functions

template<class _QualityMetric , typename T , template< class > class Node, template< class > class Cell, template< class, class > class Cont, int SD>
BEGIN_NAMESPACE_GEOM int topologicalOptimize (SimpMeshRed< 3, 3, T, Node, Cell, Cont > *mesh, const PointsOnManifold< 3, 2, SD, T > *manifold, std::multiset< std::pair< int, int > > *edgeRemovalOperations=0, std::multiset< std::pair< int, int > > *faceRemovalOperations=0, int maximumSteps=std::numeric_limits< int >::max())
 Use edge and face removal to optimize the mesh.
template<int N, int M, typename T , template< class > class Node, template< class > class Cell, template< class, class > class Cont, int MM, int SD>
int topologicalOptimizeUsingMeanRatio (SimpMeshRed< N, M, T, Node, Cell, Cont > *mesh, const PointsOnManifold< N, MM, SD, T > *manifold, std::multiset< std::pair< int, int > > *edgeRemovalOperations=0, std::multiset< std::pair< int, int > > *faceRemovalOperations=0, const int maximumSteps=std::numeric_limits< int >::max())
 Use edge and face removal to optimize the mesh.
template<int N, int M, typename T , template< class > class Node, template< class > class Cell, template< class, class > class Cont, int MM, int SD>
int topologicalOptimizeUsingConditionNumber (SimpMeshRed< N, M, T, Node, Cell, Cont > *mesh, const PointsOnManifold< N, MM, SD, T > *manifold, std::multiset< std::pair< int, int > > *edgeRemovalOperations=0, std::multiset< std::pair< int, int > > *faceRemovalOperations=0, const int maximumSteps=std::numeric_limits< int >::max())
 Use edge and face removal to optimize the mesh.

Detailed Description

Functions to topologicalOptimize the cells in a SimpMeshRed.


Function Documentation

template<class _QualityMetric , typename T , template< class > class Node, template< class > class Cell, template< class, class > class Cont, int SD>
BEGIN_NAMESPACE_GEOM int topologicalOptimize ( SimpMeshRed< 3, 3, T, Node, Cell, Cont > *  mesh,
const PointsOnManifold< 3, 2, SD, T > *  manifold,
std::multiset< std::pair< int, int > > *  edgeRemovalOperations = 0,
std::multiset< std::pair< int, int > > *  faceRemovalOperations = 0,
int  maximumSteps = std::numeric_limits< int >::max() 
) [inline]

Use edge and face removal to optimize the mesh.

Parameters:
mesh The simplicial mesh.
manifold The manifold data structure. We pass this by const reference, because the topological optimization will not change the manifold data structure.
edgeRemovalOperations Multi-set to record the edge removal operations.
faceRemovalOperations Multi-set to record the face removal operations.
maximumSteps The maximum allowed number of steps.

Use the specified metric.

Returns:
The number of edge and face removal operations.
template<int N, int M, typename T , template< class > class Node, template< class > class Cell, template< class, class > class Cont, int MM, int SD>
int topologicalOptimizeUsingConditionNumber ( SimpMeshRed< N, M, T, Node, Cell, Cont > *  mesh,
const PointsOnManifold< N, MM, SD, T > *  manifold,
std::multiset< std::pair< int, int > > *  edgeRemovalOperations = 0,
std::multiset< std::pair< int, int > > *  faceRemovalOperations = 0,
const int  maximumSteps = std::numeric_limits<int>::max() 
) [inline]

Use edge and face removal to optimize the mesh.

Parameters:
mesh The simplicial mesh.
manifold The manifold data structure.
edgeRemovalOperations Multi-set to record the edge removal operations.
faceRemovalOperations Multi-set to record the face removal operations.
maximumSteps The maximum allowed number of steps.

Use the modified mean ratio metric.

Returns:
The number of edge and face removal operations.
template<int N, int M, typename T , template< class > class Node, template< class > class Cell, template< class, class > class Cont, int MM, int SD>
int topologicalOptimizeUsingMeanRatio ( SimpMeshRed< N, M, T, Node, Cell, Cont > *  mesh,
const PointsOnManifold< N, MM, SD, T > *  manifold,
std::multiset< std::pair< int, int > > *  edgeRemovalOperations = 0,
std::multiset< std::pair< int, int > > *  faceRemovalOperations = 0,
const int  maximumSteps = std::numeric_limits<int>::max() 
) [inline]

Use edge and face removal to optimize the mesh.

Parameters:
mesh The simplicial mesh.
manifold The manifold data structure.
edgeRemovalOperations Multi-set to record the edge removal operations.
faceRemovalOperations Multi-set to record the face removal operations.
maximumSteps The maximum allowed number of steps.

Use the modified mean ratio metric.

Returns:
The number of edge and face removal operations.
Generated on Thu Jun 30 02:14:57 2016 for Computational Geometry Package by  doxygen 1.6.3