Skip to content

Commit 2ef29a2

Browse files
more studio support
1 parent 40ff752 commit 2ef29a2

2 files changed

Lines changed: 28 additions & 3 deletions

File tree

Studio/Optimize/OptimizeTool.cpp

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ 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_linear_regression, &QCheckBox::toggled, this, &OptimizeTool::update_ui_elements);
3637
connect(ui_->use_geodesics_from_landmarks, &QCheckBox::toggled, this, &OptimizeTool::update_ui_elements);
3738
connect(ui_->use_geodesic_distance, &QCheckBox::toggled, this, &OptimizeTool::update_ui_elements);
3839

@@ -65,7 +66,7 @@ OptimizeTool::OptimizeTool(Preferences& prefs, Telemetry& telemetry) : preferenc
6566
ui_->shared_boundary_weight->setToolTip("Weight of shared boundary optimization");
6667
ui_->use_disentangled_ssm->setToolTip("Use the disentangled optimization technique to build spatiotemporal SSM.");
6768
ui_->use_linear_regression->setToolTip("Use the linear regression optimization technique, where correspondence particle optimization is performed by regressing shape against an explanatory variable. Ensure that the explanatory variable is specified in the data tab of the project file.");
68-
69+
ui_->time_points_per_subject->setToolTip("Number of timepoints/explanatory variables defined for each subject in the data tab. Note: More than 1 timepoint uses a mixed effects model; 1 timepoint uses linear regression. ");
6970

7071

7172
// hidden for 6.5 release
@@ -74,6 +75,8 @@ OptimizeTool::OptimizeTool(Preferences& prefs, Telemetry& telemetry) : preferenc
7475

7576
QIntValidator* above_zero = new QIntValidator(1, std::numeric_limits<int>::max(), this);
7677
QIntValidator* zero_and_up = new QIntValidator(0, std::numeric_limits<int>::max(), this);
78+
QIntValidator* one_and_up = new QIntValidator(1, std::numeric_limits<int>::max(), this);
79+
7780

7881
QDoubleValidator* double_validator = new QDoubleValidator(0, std::numeric_limits<double>::max(), 1000, this);
7982

@@ -89,6 +92,7 @@ OptimizeTool::OptimizeTool(Preferences& prefs, Telemetry& telemetry) : preferenc
8992
ui_->multiscale_particles->setValidator(above_zero);
9093
ui_->narrow_band->setValidator(double_validator);
9194
ui_->geodesics_to_landmarks_weight->setValidator(double_validator);
95+
ui_->time_points_per_subject->setValidator(one_and_up);
9296
ui_->shared_boundary_weight->setValidator(double_validator);
9397

9498
line_edits_.push_back(ui_->number_of_particles);
@@ -103,7 +107,7 @@ OptimizeTool::OptimizeTool(Preferences& prefs, Telemetry& telemetry) : preferenc
103107
line_edits_.push_back(ui_->multiscale_particles);
104108
line_edits_.push_back(ui_->geodesics_to_landmarks_weight);
105109
line_edits_.push_back(ui_->narrow_band);
106-
line_edits_.push_back(ui_->shared_boundary_weight);
110+
107111

108112
for (QLineEdit* line_edit : line_edits_) {
109113
connect(line_edit, &QLineEdit::textChanged, this, &OptimizeTool::update_run_button);
@@ -289,8 +293,9 @@ void OptimizeTool::load_params() {
289293
ui_->use_geodesics_from_landmarks->setChecked(params.get_use_geodesics_to_landmarks());
290294
ui_->geodesics_to_landmarks_weight->setText(QString::number(params.get_geodesic_to_landmarks_weight()));
291295
ui_->use_disentangled_ssm->setChecked(params.get_use_disentangled_ssm());
292-
ui_->use_linear_regression->setChecked(params.get_use_linear_regression());
293296

297+
ui_->use_linear_regression->setChecked(params.get_use_linear_regression());
298+
ui_->time_points_per_subject->setText(QString::number(params.get_time_points_per_subject()));
294299

295300
ui_->procrustes->setChecked(params.get_use_procrustes());
296301
ui_->procrustes_scaling->setChecked(params.get_use_procrustes_scaling());
@@ -340,6 +345,7 @@ void OptimizeTool::store_params() {
340345
params.set_geodesic_to_landmarks_weight(ui_->geodesics_to_landmarks_weight->text().toDouble());
341346
params.set_use_disentangled_ssm(ui_->use_disentangled_ssm->isChecked());
342347
params.set_use_linear_regression(ui_->use_linear_regression->isChecked());
348+
params.set_time_points_per_subject(ui_->time_points_per_subject->text().toDouble());
343349

344350
params.set_use_procrustes(ui_->procrustes->isChecked());
345351
params.set_use_procrustes_scaling(ui_->procrustes_scaling->isChecked());
@@ -388,6 +394,7 @@ void OptimizeTool::update_ui_elements() {
388394
ui_->procrustes_rotation_translation->setEnabled(ui_->procrustes->isChecked());
389395
ui_->procrustes_interval->setEnabled(ui_->procrustes->isChecked());
390396
ui_->multiscale_particles->setEnabled(ui_->multiscale->isChecked());
397+
ui_->time_points_per_subject->setEnabled(ui_->use_linear_regression->isChecked());
391398
ui_->geodesics_to_landmarks_weight->setEnabled(ui_->use_geodesics_from_landmarks->isChecked());
392399
ui_->geodesic_remesh_percent->setEnabled(ui_->use_geodesic_distance->isChecked());
393400

Studio/Optimize/OptimizeTool.ui

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -435,6 +435,13 @@ QWidget#optimize_panel {
435435
</property>
436436
</widget>
437437
</item>
438+
<item row="23" column="0">
439+
<widget class="QLabel" name="label_time_points">
440+
<property name="text">
441+
<string>Timepoints defined per subject</string>
442+
</property>
443+
</widget>
444+
</item>
438445
<item row="0" column="2">
439446
<widget class="QStackedWidget" name="particle_stack">
440447
<property name="currentIndex">
@@ -558,6 +565,16 @@ QWidget#optimize_panel {
558565
</property>
559566
</widget>
560567
</item>
568+
<item row="23" column="2">
569+
<widget class="QLineEdit" name="time_points_per_subject">
570+
<property name="text">
571+
<string>1</string>
572+
</property>
573+
<property name="alignment">
574+
<set>Qt::AlignCenter</set>
575+
</property>
576+
</widget>
577+
</item>
561578
<item row="2" column="0">
562579
<widget class="QLabel" name="label_4">
563580
<property name="text">
@@ -1282,6 +1299,7 @@ QWidget#optimize_panel {
12821299
<tabstop>narrow_band</tabstop>
12831300
<tabstop>use_disentangled_ssm</tabstop>
12841301
<tabstop>use_linear_regression</tabstop>
1302+
<tabstop>time_points_per_subject</tabstop>
12851303

12861304
</tabstops>
12871305
<resources>

0 commit comments

Comments
 (0)