1
#include <gtest/gtest.h>
2
#include <BRepPrimAPI_MakeBox.hxx>
3
#include <TopoDS_Solid.hxx>
4
#include <TopExp_Explorer.hxx>
5
#include <TopAbs_ShapeEnum.hxx>
9
QT_WARNING_DISABLE_CLANG("-Wextra-semi")
10
QT_WARNING_DISABLE_CLANG("-Woverloaded-virtual")
11
#include <SMESH_Version.h>
12
#include <SMESH_Gen.hxx>
13
#include <SMESH_Mesh.hxx>
14
#include <StdMeshers_LocalLength.hxx>
15
#include <StdMeshers_Regular_1D.hxx>
16
#include <StdMeshers_MEFISTO_2D.hxx>
17
#include <StdMeshers_QuadranglePreference.hxx>
21
TEST(SMesh, testMefisto)
23
TopoDS_Solid box = BRepPrimAPI_MakeBox(10.0, 10.0, 10.0).Solid();
25
SMESH_Gen* gen = new SMESH_Gen();
26
#if SMESH_VERSION_MAJOR >= 9
27
SMESH_Mesh* mesh = gen->CreateMesh(true);
29
StdMeshers_LocalLength* hyp1d = new StdMeshers_LocalLength(0, gen);
30
hyp1d->SetLength(1.0);
31
StdMeshers_Regular_1D* algo1d = new StdMeshers_Regular_1D(1, gen);
33
StdMeshers_QuadranglePreference* hyp2d = new StdMeshers_QuadranglePreference(2, gen);
34
StdMeshers_MEFISTO_2D* algo2d = new StdMeshers_MEFISTO_2D(3, gen);
36
SMESH_Mesh* mesh = gen->CreateMesh(0, true);
38
StdMeshers_LocalLength* hyp1d = new StdMeshers_LocalLength(0, 0, gen);
39
hyp1d->SetLength(1.0);
40
StdMeshers_Regular_1D* algo1d = new StdMeshers_Regular_1D(1, 0, gen);
42
StdMeshers_QuadranglePreference* hyp2d = new StdMeshers_QuadranglePreference(2, 0, gen);
43
StdMeshers_MEFISTO_2D* algo2d = new StdMeshers_MEFISTO_2D(3, 0, gen);
46
mesh->ShapeToMesh(box);
47
mesh->AddHypothesis(box, 0);
48
mesh->AddHypothesis(box, 1);
49
mesh->AddHypothesis(box, 2);
50
mesh->AddHypothesis(box, 3);
52
bool success = gen->Compute(*mesh, box);
53
EXPECT_EQ(success, true);
55
EXPECT_EQ(mesh->NbNodes(), 1244);
56
EXPECT_EQ(mesh->NbTriangles(), 2484);
57
EXPECT_EQ(mesh->NbQuadrangles(), 0);
67
TEST(SMesh, testStdMeshers)
69
TopoDS_Solid box = BRepPrimAPI_MakeBox(10.0, 10.0, 10.0).Solid();
71
TopExp_Explorer exp = TopExp_Explorer(box, TopAbs_EDGE);
72
const TopoDS_Shape& edge = exp.Current();
74
SMESH_Gen* gen = new SMESH_Gen();
75
#if SMESH_VERSION_MAJOR >= 9
76
SMESH_Mesh* mesh = gen->CreateMesh(true);
78
StdMeshers_LocalLength* hyp1d = new StdMeshers_LocalLength(0, gen);
79
hyp1d->SetLength(0.1);
80
StdMeshers_Regular_1D* algo1d = new StdMeshers_Regular_1D(1, gen);
82
SMESH_Mesh* mesh = gen->CreateMesh(0, true);
84
StdMeshers_LocalLength* hyp1d = new StdMeshers_LocalLength(0, 0, gen);
85
hyp1d->SetLength(0.1);
86
StdMeshers_Regular_1D* algo1d = new StdMeshers_Regular_1D(1, 0, gen);
89
mesh->ShapeToMesh(box);
90
mesh->AddHypothesis(edge, 0);
91
mesh->AddHypothesis(edge, 1);
93
bool success = gen->Compute(*mesh, box);
94
EXPECT_EQ(success, true);
96
EXPECT_EQ(mesh->NbNodes(), 107);