Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
ElmerCSC
GitHub Repository: ElmerCSC/elmerfem
Path: blob/devel/ElmerGUI/Application/src/meshingthread.h
3203 views
1
/*****************************************************************************
2
* *
3
* Elmer, A Finite Element Software for Multiphysical Problems *
4
* *
5
* Copyright 1st April 1995 - , CSC - IT Center for Science Ltd., Finland *
6
* *
7
* This program is free software; you can redistribute it and/or *
8
* modify it under the terms of the GNU General Public License *
9
* as published by the Free Software Foundation; either version 2 *
10
* of the License, or (at your option) any later version. *
11
* *
12
* This program is distributed in the hope that it will be useful, *
13
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
15
* GNU General Public License for more details. *
16
* *
17
* You should have received a copy of the GNU General Public License *
18
* along with this program (in file fem/GPL-2); if not, write to the *
19
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, *
20
* Boston, MA 02110-1301, USA. *
21
* *
22
*****************************************************************************/
23
24
/*****************************************************************************
25
* *
26
* ElmerGUI meshingthread *
27
* *
28
*****************************************************************************
29
* *
30
* Authors: Mikko Lyly, Juha Ruokolainen and Peter Råback *
31
* Email: [email protected] *
32
* Web: http://www.csc.fi/elmer *
33
* Address: CSC - IT Center for Science Ltd. *
34
* Keilaranta 14 *
35
* 02101 Espoo, Finland *
36
* *
37
* Original Date: 15 Mar 2008 *
38
* *
39
*****************************************************************************/
40
41
#ifndef MESHINGTHREAD_H
42
#define MESHINGTHREAD_H
43
44
#include <QThread>
45
46
#ifdef WIN32
47
#include <windows.h>
48
#else
49
#include <dlfcn.h>
50
#endif
51
52
#include "plugins/tetlib_api.h"
53
#include "plugins/nglib_api.h"
54
55
namespace nglib {
56
#include "nglib.h"
57
}
58
59
class MeshingThread : public QThread
60
{
61
Q_OBJECT
62
63
public:
64
MeshingThread(QObject *parent = 0);
65
~MeshingThread();
66
67
void generate(int generatorType, QString cs,
68
TetlibAPI *tetlibAPI,
69
nglib::Ng_Mesh *ngmesh,
70
nglib::Ng_STL_Geometry *nggeom,
71
nglib::Ng_Geometry_2D *nggeom2d,
72
int ngDim, nglib::Ng_Meshing_Parameters *mp);
73
74
void stopMeshing();
75
76
nglib::Ng_Mesh *getNgMesh();
77
78
protected:
79
void run();
80
81
private:
82
int generatorType;
83
84
// tetlib:
85
QString tetgenControlString;
86
TetlibAPI *tetlibAPI;
87
tetgenio *in;
88
tetgenio *out;
89
delegate_tetrahedralize_t delegate_tetrahedralize;
90
91
// nglib:
92
NglibAPI *nglibAPI;
93
nglib::Ng_Mesh *ngmesh;
94
nglib::Ng_STL_Geometry *nggeom;
95
nglib::Ng_Geometry_2D *nggeom2d;
96
nglib::Ng_Meshing_Parameters *mp;
97
int ngDim;
98
};
99
100
#endif // MESHINGTHREAD_H
101
102