Multi component view (#1729)

* Multi component view implemented except for rotations. Rotations can cause segfaults.

* Implemented: handling rotations and applied rotations on optimized poses. Addition of a notion of main component (for saves in db) abd a node selection tool.

* New feature: merge component using selected nodes

* Refactored with suggestions.

* Fixing QSet error on older Qt versions

---------

Co-authored-by: matlabbe <[email protected]>
This commit is contained in:
Pierre ELIS
2026-08-01 08:33:53 -07:00
committed by GitHub
co-authored by matlabbe
parent d9f3337f97
commit bef4eaf679
11 changed files with 1525 additions and 441 deletions
+24
View File
@@ -87,6 +87,20 @@ void LinkRefiningDialog::setMinMax(
restoreDefaults();
}
}
void LinkRefiningDialog::setRangesEnabled(bool selectedNodes, bool currentComponent)
{
ui_->radioButton_selected_nodes->setEnabled(selectedNodes);
if(!selectedNodes && ui_->radioButton_selected_nodes->isChecked())
{
ui_->radioButton_nodes->setChecked(true);
}
ui_->radioButton_current_component->setEnabled(currentComponent);
if(!currentComponent && ui_->radioButton_current_component->isChecked())
{
ui_->radioButton_nodes->setChecked(true);
}
}
Link::Type LinkRefiningDialog::getLinkType() const
{
@@ -103,6 +117,16 @@ void LinkRefiningDialog::getIntraInterSessions(bool & intra, bool & inter) const
inter = ui_->comboBox_link_inter_intra->currentIndex() == 0 || ui_->comboBox_link_inter_intra->currentIndex() == 2;
}
bool LinkRefiningDialog::isRangeByCurrentComponent() const
{
return ui_->radioButton_current_component->isChecked();
}
bool LinkRefiningDialog::isRangeBySelectedNodeIds() const
{
return ui_->radioButton_selected_nodes->isChecked();
}
bool LinkRefiningDialog::isRangeByNodeId() const
{
return ui_->radioButton_nodes->isChecked();