OGS
MeshRevision.h
Go to the documentation of this file.
1
// SPDX-FileCopyrightText: Copyright (c) OpenGeoSys Community (opengeosys.org)
2
// SPDX-License-Identifier: BSD-3-Clause
3
4
#pragma once
5
6
#include <array>
7
#include <limits>
8
#include <string>
9
#include <vector>
10
11
// forward declaration
12
namespace
MeshLib
13
{
14
class
Mesh
;
15
class
Node
;
16
}
// namespace MeshLib
17
18
namespace
MeshToolsLib
19
{
24
class
MeshRevision
25
{
26
public
:
33
explicit
MeshRevision
(
MeshLib::Mesh
& mesh);
34
36
unsigned
getNumberOfCollapsibleNodes
(
37
double
eps = std::numeric_limits<double>::epsilon())
const
;
38
41
std::vector<std::size_t>
collapseNodeIndices
(
double
eps)
const
;
42
54
MeshLib::Mesh
*
simplifyMesh
(
const
std::string& new_mesh_name,
double
eps,
55
unsigned
min_elem_dim = 1)
const
;
56
57
private
:
60
std::vector<MeshLib::Node*>
constructNewNodesArray
(
61
const
std::vector<std::size_t>& id_map)
const
;
62
64
MeshLib::Mesh
&
_mesh
;
65
};
66
67
}
// namespace MeshToolsLib
MeshLib::Mesh
Definition
Mesh.h:34
MeshLib::Node
Definition
Node.h:21
MeshToolsLib::MeshRevision::MeshRevision
MeshRevision(MeshLib::Mesh &mesh)
Definition
MeshRevision.cpp:996
MeshToolsLib::MeshRevision::getNumberOfCollapsibleNodes
unsigned getNumberOfCollapsibleNodes(double eps=std::numeric_limits< double >::epsilon()) const
Returns the number of potentially collapsible nodes.
Definition
MeshRevision.cpp:998
MeshToolsLib::MeshRevision::_mesh
MeshLib::Mesh & _mesh
The original mesh used for constructing the class.
Definition
MeshRevision.h:64
MeshToolsLib::MeshRevision::simplifyMesh
MeshLib::Mesh * simplifyMesh(const std::string &new_mesh_name, double eps, unsigned min_elem_dim=1) const
Definition
MeshRevision.cpp:1013
MeshToolsLib::MeshRevision::constructNewNodesArray
std::vector< MeshLib::Node * > constructNewNodesArray(const std::vector< std::size_t > &id_map) const
Definition
MeshRevision.cpp:1141
MeshToolsLib::MeshRevision::collapseNodeIndices
std::vector< std::size_t > collapseNodeIndices(double eps) const
Definition
MeshRevision.cpp:1085
MeshLib
Definition
ProjectData.h:30
MeshToolsLib
Definition
Node.h:11
MeshToolsLib
MeshEditing
MeshRevision.h
Generated by
1.14.0