Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
ElmerCSC
GitHub Repository: ElmerCSC/elmerfem
Path: blob/devel/meshgen2d/src/include/Tokens.h
3203 views
1
#if !defined( MESH_MESHTOKENS_H )
2
#define MESH_MESHTOKENS_H
3
4
#include <list>
5
#include <vector>
6
#include <string>
7
8
class NodeToken
9
{
10
public:
11
NodeToken() { }
12
int tag;
13
int boundaryTag;
14
double x,y,delta;
15
};
16
17
18
class EdgeToken
19
{
20
public:
21
EdgeToken() { segCount = 0; }
22
23
int from() const { return nodes.front(); }
24
int to() const { return nodes.back(); }
25
26
int tag;
27
int boundaryTag;
28
29
std::vector<int> nodes;
30
31
int segCount;
32
double delta;
33
};
34
35
class LoopToken
36
{
37
public:
38
LoopToken() { }
39
int tag;
40
int direction;
41
std::vector<int> edges;
42
};
43
44
class BGMeshToken
45
{
46
public:
47
BGMeshToken() { }
48
std::string type;
49
std::vector< NodeToken > nodes;
50
};
51
52
class SeedToken
53
{
54
public:
55
SeedToken() { }
56
std::string type;
57
// union{
58
std::vector<int> nodes;
59
int edge;
60
// };
61
};
62
63
enum { CONNECT, BOUNDARY_MESH, VORONOI_VERTEX, VORONOI_SEGMENT, SSSF_VORONOI_SEGMENT, SSMF_VORONOI_SEGMENT,
64
QUAD_GRID, TRIANGLE_NE_GRID, TRIANGLE_NW_GRID, TRIANGLE_UJ_NE_GRID, TRIANGLE_UJ_NW_GRID,
65
TRIANGLE_FB_NE_GRID, TRIANGLE_FB_NW_GRID };
66
67
class LayerToken
68
{
69
public:
70
LayerToken() { bg = NULL; seed = NULL; gridh = 0; gridv = 0; }
71
int tag;
72
int type;
73
SeedToken *seed;
74
std::vector< LoopToken * > loops;
75
std::vector< NodeToken * > fixedNodes;
76
BGMeshToken *bg;
77
double delta;
78
int gridh, gridv;
79
};
80
81
class BodyToken
82
{
83
public:
84
BodyToken() { }
85
int tag;
86
std::vector< LayerToken * > layers;
87
double delta;
88
bool parabolic;
89
};
90
91
class BoundaryToken
92
{
93
public:
94
BoundaryToken() { }
95
std::vector<int> outerBoundaries;
96
std::vector<int> innerBoundaries;
97
};
98
99
#endif /* MESH_MESHTOKENS_H */
100
101