1 |
foucault |
27 |
//---------------------------------------------------------------------------
|
2 |
|
|
|
3 |
|
|
#ifndef CAD4FE_LoopCriteriaH
|
4 |
|
|
#define CAD4FE_LoopCriteriaH
|
5 |
|
|
//---------------------------------------------------------------------------
|
6 |
|
|
|
7 |
|
|
#include <vector>
|
8 |
|
|
|
9 |
|
|
namespace CAD4FE {
|
10 |
|
|
|
11 |
|
|
class MCAA;
|
12 |
|
|
class MCFace;
|
13 |
|
|
class MCEdge;
|
14 |
|
|
|
15 |
|
|
class LoopCriteria {
|
16 |
|
|
public:
|
17 |
|
|
LoopCriteria(MCAA * __mcaa, MCFace * __mcFace, std::vector < MCEdge * > __loop, int __nbSegMin = 3);
|
18 |
|
|
void Update();
|
19 |
|
|
double DeletionScore();
|
20 |
|
|
std::vector < MCEdge * > & GetLoop();
|
21 |
|
|
double EdgeSplitScore(MCEdge * __mcEdge, double __splitPoint[3]);
|
22 |
|
|
MCFace * GetFace();
|
23 |
|
|
int GetNbFEMeshSeg();
|
24 |
|
|
int GetNbFEMeshSegMin();
|
25 |
|
|
|
26 |
|
|
protected:
|
27 |
|
|
double _score;
|
28 |
|
|
MCAA * _mcaa;
|
29 |
|
|
MCFace * _mcFace;
|
30 |
|
|
std::vector < MCEdge * > _loop;
|
31 |
|
|
|
32 |
|
|
int _nbSegMin;
|
33 |
|
|
int _nbSeg;
|
34 |
|
|
};
|
35 |
|
|
|
36 |
|
|
}
|
37 |
|
|
|
38 |
|
|
#endif
|
39 |
|
|
|