20 preserve_topology =
true;
24 std::string output_path;
29 bool allow_surface_swap =
true;
33 bool check_surface_topology =
false;
36 double epsr_simplify = 2e-4;
41 double eps_simplify = -1.;
44 bool stop_at_float =
false;
59 std::string operation =
"remeshing";
61 bool skip_simplify =
false;
62 bool use_sample_envelope =
false;
64 bool write_vtu =
false;
65 bool write_envelope =
true;
70 output_path = json_params[
"output"];
71 skip_simplify = json_params[
"skip_simplify"];
72 use_sample_envelope = json_params[
"use_sample_envelope"];
73 NUM_THREADS = json_params[
"num_threads"];
74 write_vtu = json_params[
"write_vtu"];
75 write_envelope = json_params[
"write_envelope"];
77 epsr = json_params[
"eps_rel"];
78 eps = json_params[
"eps"];
79 lr = json_params[
"length_rel"];
80 l = json_params[
"length"];
81 stop_energy = json_params[
"stop_energy"];
82 stop_at_float = json_params[
"stop_at_float"];
83 preserve_topology = json_params[
"preserve_topology"];
86 epsr_simplify = json_params[
"eps_simplify_rel"];
88 eps_simplify = json_params[
"eps_simplify"];
90 w_amips = json_params[
"w_amips"];
95 interleaved_smoothing = json_params[
"interleaved_smoothing"];
96 interleaved_smoothing_passes = json_params[
"interleaved_smoothing_passes"];
108 debug_output = json_params[
"DEBUG_output"];
109 perform_sanity_checks = json_params[
"DEBUG_sanity_checks"];
112 allow_surface_swap = json_params[
"allow_surface_swap"];
113 check_surface_topology = json_params[
"check_surface_topology"];
116 stuck_refine_stall_eps = json_params[
"stuck_refine_stall_eps"];
117 stuck_refine_cooldown = json_params[
"stuck_refine_cooldown"];
118 stuck_refine_num_worst = json_params[
"stuck_refine_num_worst"];
119 stuck_refine_rings = json_params[
"stuck_refine_rings"];
120 stuck_refine_factor = json_params[
"stuck_refine_factor"];
121 stuck_refine_force_split = json_params[
"stuck_refine_force_split"];
122 stuck_refine_min_scalar = json_params[
"stuck_refine_min_scalar"];
123 stuck_refine_gradation = json_params[
"stuck_refine_gradation"];
126 skip_good_regions = json_params[
"skip_good_regions"];
127 skip_good_regions_margin = json_params[
"skip_good_regions_margin"];
129 operation = json_params[
"operation"];
132 void init(
const VectorXd& min_,
const VectorXd& max_)
138 if (eps_simplify > 0) {
139 epsr_simplify = eps_simplify / diag_l;
141 eps_simplify = epsr_simplify * diag_l;
147 const std::vector<Vector3d>& vertices,
148 const std::vector<std::array<size_t, 3>>& faces)
151 for (
size_t i = 0; i < vertices.size(); i++) {
157 for (
int j = 0; j < 3; j++) {
158 if (vertices[i][j] < min_[j]) min_[j] = vertices[i][j];
159 if (vertices[i][j] > max_[j]) max_[j] = vertices[i][j];