OPALX (Object Oriented Parallel Accelerator Library for Exascal) master (dc2a29eed580)
OPALX
Loading...
Searching...
No Matches
Mesher.h
Go to the documentation of this file.
1#ifndef MESHER_H
2#define MESHER_H
3
5
6class Mesher {
7public:
8 Mesher(std::vector<Vector_t<double, 3>>& vertices);
9
10 std::vector<mslang::Triangle> getTriangles() const;
11
12private:
13 void orientVerticesCCW();
14 bool isConvex(unsigned int i) const;
15 double crossProduct(const Vector_t<double, 3>& a, const Vector_t<double, 3>& b) const;
16 bool isPointOnLine(unsigned int i, unsigned int j, const Vector_t<double, 3>& pt) const;
17 bool isPointRightOfLine(unsigned int i, unsigned int j, const Vector_t<double, 3>& pt) const;
19 unsigned int i, unsigned int j, unsigned int k, unsigned int l) const;
20 bool isPotentialEdgeIntersected(unsigned int i) const;
21 double dotProduct(unsigned int i, unsigned int j, const Vector_t<double, 3>& pt) const;
23 unsigned int i, unsigned int j, unsigned int jPlusOne, unsigned int jMinusOne) const;
24 bool isEar(unsigned int i) const;
25 std::vector<unsigned int> findAllEars() const;
26 double computeMinimumAngle(unsigned int i) const;
27 unsigned int selectBestEar(std::vector<unsigned int>& ears) const;
28 void apply();
29
30 std::vector<mslang::Triangle> triangles_m;
31 std::vector<Vector_t<double, 3>> vertices_m;
32};
33
34#endif
ippl::Vector< T, Dim > Vector_t
Definition Mesher.h:6
std::vector< mslang::Triangle > getTriangles() const
Definition Mesher.cpp:5
bool isPointInsideCone(unsigned int i, unsigned int j, unsigned int jPlusOne, unsigned int jMinusOne) const
Definition Mesher.cpp:117
std::vector< Vector_t< double, 3 > > vertices_m
Definition Mesher.h:31
void orientVerticesCCW()
Definition Mesher.cpp:7
bool isConvex(unsigned int i) const
Definition Mesher.cpp:24
unsigned int selectBestEar(std::vector< unsigned int > &ears) const
Definition Mesher.cpp:174
bool lineSegmentTouchesOrCrossesLine(unsigned int i, unsigned int j, unsigned int k, unsigned int l) const
Definition Mesher.cpp:59
std::vector< unsigned int > findAllEars() const
Definition Mesher.cpp:142
double dotProduct(unsigned int i, unsigned int j, const Vector_t< double, 3 > &pt) const
Definition Mesher.cpp:106
double computeMinimumAngle(unsigned int i) const
Definition Mesher.cpp:155
void apply()
Definition Mesher.cpp:192
bool isPointOnLine(unsigned int i, unsigned int j, const Vector_t< double, 3 > &pt) const
Definition Mesher.cpp:42
double crossProduct(const Vector_t< double, 3 > &a, const Vector_t< double, 3 > &b) const
Definition Mesher.cpp:38
bool isPotentialEdgeIntersected(unsigned int i) const
Definition Mesher.cpp:65
std::vector< mslang::Triangle > triangles_m
Definition Mesher.h:30
bool isPointRightOfLine(unsigned int i, unsigned int j, const Vector_t< double, 3 > &pt) const
Definition Mesher.cpp:51
bool isEar(unsigned int i) const
Definition Mesher.cpp:126