Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
ElmerCSC
GitHub Repository: ElmerCSC/elmerfem
Path: blob/devel/meshgen2d/src/include/Connect.h
3203 views
1
#if !defined( MESH_CONNECT_H )
2
#define MESH_CONNECT_H
3
4
#include "Layer.h"
5
6
class Node;
7
8
class Vertex;
9
class PQ;
10
class Border;
11
class Triple;
12
13
#include <set>
14
#include <vector>
15
#include <list>
16
17
class Connect : public Layer
18
{
19
public:
20
Connect(const int t) : Layer(t) { bg = NULL; }
21
Connect(const int t, BGMesh *bgMesh) : Layer(t) { bg = bgMesh; }
22
~Connect() { }
23
24
virtual void initialize();
25
void discretize(NodeMap& fixedNodes, NodeMap& allNodes, std::list< Element* >& allElements);
26
void setBounds( Border *bd ) { bounds = bd; }
27
28
protected:
29
30
void makeWorld();
31
bool addSite( Vertex *vtx, Node *nd, bool externalOK, bool SplitOne = true, bool newPos = false );
32
void recycle();
33
void exportNodes( NodeMap& allNodes, std::list< Element* >& allElements );
34
void triangulate();
35
virtual void getVertices( std::vector< Vertex * >& v, const int count );
36
Triple *getTriple();
37
38
void removeBoundaryConnectors();
39
40
Vertex *root;
41
Node *world[4];
42
43
std::vector< Node* > border;
44
std::set< std::pair< int, int > > links;
45
46
std::list< Vertex* > deleted;
47
48
std::vector< Vertex* > newVertices;
49
std::list< Vertex* > vertexStore;
50
51
std::list< Triple * > hull;
52
std::list< Triple * > tripleStore;
53
54
std::list< Vertex* > allVertices;
55
56
std::set< int, std::less<int> > existingTags;
57
int firstNew;
58
59
BGMesh *bg;
60
};
61
62
#endif /* MESH_CONNECT_H */
63
64