@@ -33,6 +33,8 @@ OptimizeTool::OptimizeTool(Preferences& prefs, Telemetry& telemetry) : preferenc
3333 connect (ui_->use_normals , &QCheckBox::toggled, this , &OptimizeTool::update_ui_elements);
3434 connect (ui_->procrustes , &QCheckBox::toggled, this , &OptimizeTool::update_ui_elements);
3535 connect (ui_->multiscale , &QCheckBox::toggled, this , &OptimizeTool::update_ui_elements);
36+ connect (ui_->use_geodesics_from_landmarks , &QCheckBox::toggled, this , &OptimizeTool::update_ui_elements);
37+ connect (ui_->use_geodesic_distance , &QCheckBox::toggled, this , &OptimizeTool::update_ui_elements);
3638
3739 ui_->number_of_particles ->setToolTip (" Number of correspondence points to generate" );
3840 ui_->initial_relative_weighting ->setToolTip (" Relative weighting of correspondence term during initialization" );
@@ -44,6 +46,7 @@ OptimizeTool::OptimizeTool(Preferences& prefs, Telemetry& telemetry) : preferenc
4446 ui_->use_geodesic_distance ->setToolTip (
4547 " Use geodesic distances for sampling term: may be more effective for capturing thin features. "
4648 " Requires ~10x more time, and larger memory footprint. Only supported for mesh inputs" );
49+ ui_->geodesic_remesh_percent ->setToolTip (" Percent remesh reduction to use for geodesic distance" );
4750 ui_->use_normals ->setToolTip (" Use surface normals as part of optimization" );
4851 ui_->normals_strength ->setToolTip (" Strength of surface normals relative to position" );
4952 ui_->procrustes ->setToolTip (" Use procrustes registration during optimization" );
@@ -257,6 +260,7 @@ void OptimizeTool::load_params() {
257260 ui_->optimization_iterations ->setText (QString::number (params.get_optimization_iterations ()));
258261
259262 ui_->use_geodesic_distance ->setChecked (params.get_use_geodesic_distance ());
263+ ui_->geodesic_remesh_percent ->setText (QString::number (params.get_geodesic_remesh_percent ()));
260264 ui_->use_normals ->setChecked (params.get_use_normals ()[0 ]);
261265 ui_->normals_strength ->setText (QString::number (params.get_normals_strength ()));
262266 ui_->use_geodesics_from_landmarks ->setChecked (params.get_use_geodesics_to_landmarks ());
@@ -302,6 +306,7 @@ void OptimizeTool::store_params() {
302306 params.set_optimization_iterations (ui_->optimization_iterations ->text ().toDouble ());
303307
304308 params.set_use_geodesic_distance (ui_->use_geodesic_distance ->isChecked ());
309+ params.set_geodesic_remesh_percent (ui_->geodesic_remesh_percent ->text ().toDouble ());
305310 params.set_use_normals ({ui_->use_normals ->isChecked ()});
306311 params.set_normals_strength (ui_->normals_strength ->text ().toDouble ());
307312 params.set_use_geodesics_to_landmarks (ui_->use_geodesics_from_landmarks ->isChecked ());
@@ -354,6 +359,7 @@ void OptimizeTool::update_ui_elements() {
354359 ui_->procrustes_interval ->setEnabled (ui_->procrustes ->isChecked ());
355360 ui_->multiscale_particles ->setEnabled (ui_->multiscale ->isChecked ());
356361 ui_->geodesics_to_landmarks_weight ->setEnabled (ui_->use_geodesics_from_landmarks ->isChecked ());
362+ ui_->geodesic_remesh_percent ->setEnabled (ui_->use_geodesic_distance ->isChecked ());
357363}
358364
359365// ---------------------------------------------------------------------------
@@ -446,7 +452,8 @@ void OptimizeTool::setup_domain_boxes() {
446452 QWidget::setTabOrder (ui_->ending_regularization , ui_->iterations_per_split );
447453 QWidget::setTabOrder (ui_->iterations_per_split , ui_->optimization_iterations );
448454 QWidget::setTabOrder (ui_->optimization_iterations , ui_->use_geodesic_distance );
449- QWidget::setTabOrder (ui_->use_geodesic_distance , ui_->use_normals );
455+ QWidget::setTabOrder (ui_->use_geodesic_distance , ui_->geodesic_remesh_percent );
456+ QWidget::setTabOrder (ui_->geodesic_remesh_percent , ui_->use_normals );
450457 QWidget::setTabOrder (ui_->use_normals , ui_->normals_strength );
451458 QWidget::setTabOrder (ui_->normals_strength , ui_->use_geodesics_from_landmarks );
452459 QWidget::setTabOrder (ui_->use_geodesics_from_landmarks , ui_->geodesics_to_landmarks_weight );
0 commit comments