32 std::vector<TetVertex>& tet_vertices;
33 std::vector<std::array<int, 4>>& tets;
34 std::vector<std::array<int, 4>>& is_surface_fs;
35 std::vector<bool>& v_is_removed;
36 std::vector<bool>& t_is_removed;
37 std::vector<TetQuality>& tet_qualities;
46 std::vector<TetVertex>& t_vs,
47 std::vector<std::array<int, 4>>& ts,
48 std::vector<std::array<int, 4>>& is_sf_fs,
49 std::vector<bool>& v_is_rm,
50 std::vector<bool>& t_is_rm,
51 std::vector<TetQuality>& tet_qs,
58 , is_surface_fs(is_sf_fs)
59 , v_is_removed(v_is_rm)
60 , t_is_removed(t_is_rm)
61 , tet_qualities(tet_qs)
62 , geo_sf_tree(geo_tree)
68 void outputInfo(
int op_type,
double time,
bool is_log =
true);
71 const std::vector<std::array<int, 4>>& new_tets,
72 std::vector<TetQuality>& tet_qs);
74 double calEdgeLength(
int v1_id,
int v2_id);
75 void calTetQuality_AMIPS(
const std::array<int, 4>& tet,
TetQuality& t_quality);
77 bool isFlip(
const std::vector<std::array<int, 4>>& new_tets);
78 bool isTetFlip(
const std::array<int, 4>& t);
81 void getAvgMaxEnergy(
double& avg_tq,
double& max_tq);
82 double getMaxEnergy();
84 void getCheckQuality(
const std::vector<TetQuality>& tet_qs,
TetQuality& tq);
85 void getCheckQuality(
const std::vector<int>& t_ids,
TetQuality& tq);
87 bool isEdgeOnSurface(
int v1_id,
int v2_id);
88 bool isEdgeOnBbox(
int v1_id,
int v2_id);
89 bool isEdgeOnSurface(
int v1_id,
int v2_id,
const std::vector<int>& t_ids);
90 bool isEdgeOnBbox(
int v1_id,
int v2_id,
const std::vector<int>& t_ids);
93 bool isFaceOutEnvelop(
const std::array<Vector3d, 3>& tri);
94 bool isPointOutEnvelop(
const Vector3d& p);
95 bool isPointOutBoundaryEnvelop(
const Vector3d& p);
97 void getFaceConnTets(
int v1_id,
int v2_id,
int v3_id, std::vector<int>& t_ids);
101 igl::Timer igl_timer0;
107 bool isLocked_ui(
const std::array<int, 2>& e);
108 bool isTetLocked_ui(
int tid);