fix(geometrySpreadsheet): geometry updates with displayGeoChanged signal
This commit is contained in:
@@ -35,7 +35,7 @@ enzo::nt::OpId enzo::nt::NetworkManager::addOperator(op::OpInfo opInfo)
|
|||||||
if(getDisplayOp().has_value() && getDisplayOp().value()==dependentId)
|
if(getDisplayOp().has_value() && getDisplayOp().value()==dependentId)
|
||||||
{
|
{
|
||||||
cookOp(dependentId);
|
cookOp(dependentId);
|
||||||
updateDisplay(dependentOp.getOutputGeo(0));
|
displayGeoChanged(dependentOp.getOutputGeo(0));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -80,7 +80,7 @@ void enzo::nt::NetworkManager::setDisplayOp(OpId opId)
|
|||||||
cookOp(opId);
|
cookOp(opId);
|
||||||
|
|
||||||
enzo::nt::GeometryOperator& displayOp = getGeoOperator(opId);
|
enzo::nt::GeometryOperator& displayOp = getGeoOperator(opId);
|
||||||
updateDisplay(displayOp.getOutputGeo(0));
|
displayGeoChanged(displayOp.getOutputGeo(0));
|
||||||
displayNodeChanged(opId);
|
displayNodeChanged(opId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ public:
|
|||||||
void setDisplayOp(OpId opId);
|
void setDisplayOp(OpId opId);
|
||||||
|
|
||||||
boost::signals2::signal<void (nt::OpId)> displayNodeChanged;
|
boost::signals2::signal<void (nt::OpId)> displayNodeChanged;
|
||||||
|
boost::signals2::signal<void (enzo::geo::Geometry& geometry)> displayGeoChanged;
|
||||||
|
|
||||||
#ifdef UNIT_TEST
|
#ifdef UNIT_TEST
|
||||||
void _reset();
|
void _reset();
|
||||||
@@ -47,9 +48,6 @@ private:
|
|||||||
std::optional<OpId> displayOp_=std::nullopt;
|
std::optional<OpId> displayOp_=std::nullopt;
|
||||||
|
|
||||||
|
|
||||||
Q_SIGNALS:
|
|
||||||
void updateDisplay(enzo::geo::Geometry& geometry);
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
inline enzo::nt::NetworkManager& nm() {
|
inline enzo::nt::NetworkManager& nm() {
|
||||||
|
|||||||
@@ -14,13 +14,12 @@ GeometrySpreadsheetModel::GeometrySpreadsheetModel(const QStringList &strings, Q
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void GeometrySpreadsheetModel::selectionChanged(enzo::nt::OpId opId)
|
void GeometrySpreadsheetModel::geometryChanged(enzo::geo::Geometry& geometry)
|
||||||
{
|
{
|
||||||
beginResetModel();
|
beginResetModel();
|
||||||
enzo::nt::NetworkManager& nm = enzo::nt::nm();
|
// enzo::nt::NetworkManager& nm = enzo::nt::nm();
|
||||||
opId_ = opId;
|
|
||||||
IC();
|
IC();
|
||||||
geometry_ = nm.getGeoOperator(opId).getOutputGeo(0);
|
geometry_ = geometry;
|
||||||
|
|
||||||
// get sizes
|
// get sizes
|
||||||
const auto attribCount = geometry_.getNumAttributes(enzo::ga::AttributeOwner::POINT);
|
const auto attribCount = geometry_.getNumAttributes(enzo::ga::AttributeOwner::POINT);
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ public:
|
|||||||
int role = Qt::DisplayRole) const override;
|
int role = Qt::DisplayRole) const override;
|
||||||
int indexFromSection(unsigned int section) const;
|
int indexFromSection(unsigned int section) const;
|
||||||
|
|
||||||
void selectionChanged(enzo::nt::OpId opId);
|
void geometryChanged(enzo::geo::Geometry& geometry);
|
||||||
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|||||||
@@ -36,9 +36,9 @@ GeometrySpreadsheetPanel::GeometrySpreadsheetPanel(QWidget *parent, Qt::WindowFl
|
|||||||
setLayout(mainLayout_);
|
setLayout(mainLayout_);
|
||||||
}
|
}
|
||||||
|
|
||||||
void GeometrySpreadsheetPanel::selectionChanged(enzo::nt::OpId opId)
|
void GeometrySpreadsheetPanel::geometryChanged(enzo::geo::Geometry& geometry)
|
||||||
{
|
{
|
||||||
model_->selectionChanged(opId);
|
model_->geometryChanged(geometry);
|
||||||
view_->update();
|
view_->update();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ class GeometrySpreadsheetPanel
|
|||||||
public:
|
public:
|
||||||
GeometrySpreadsheetPanel(QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags());
|
GeometrySpreadsheetPanel(QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags());
|
||||||
public Q_SLOTS:
|
public Q_SLOTS:
|
||||||
void selectionChanged(enzo::nt::OpId opId);
|
void geometryChanged(enzo::geo::Geometry& geometry);
|
||||||
private:
|
private:
|
||||||
QVBoxLayout* mainLayout_;
|
QVBoxLayout* mainLayout_;
|
||||||
QWidget* bgWidget_;
|
QWidget* bgWidget_;
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
#include "Gui/Interface.h"
|
#include "Gui/Interface.h"
|
||||||
#include "Engine/Network/NetworkManager.h"
|
#include "Engine/Network/NetworkManager.h"
|
||||||
|
#include "Engine/Operator/Geometry.h"
|
||||||
#include "Gui/GeometrySpreadsheetPanel/GeometrySpreadsheetPanel.h"
|
#include "Gui/GeometrySpreadsheetPanel/GeometrySpreadsheetPanel.h"
|
||||||
#include "Gui/ParametersPanel/ParametersPanel.h"
|
#include "Gui/ParametersPanel/ParametersPanel.h"
|
||||||
#include "Gui/Viewport/Viewport.h"
|
#include "Gui/Viewport/Viewport.h"
|
||||||
@@ -61,8 +62,7 @@ EnzoUI::EnzoUI()
|
|||||||
mainLayout_->addWidget(viewportSplitter_);
|
mainLayout_->addWidget(viewportSplitter_);
|
||||||
|
|
||||||
// connect signals
|
// connect signals
|
||||||
connect(&enzo::nt::nm(), &enzo::nt::NetworkManager::updateDisplay, viewport, &Viewport::geometryChanged);
|
|
||||||
enzo::nt::nm().displayNodeChanged.connect([parametersPanel](enzo::nt::OpId opId){parametersPanel->selectionChanged(opId);});
|
enzo::nt::nm().displayNodeChanged.connect([parametersPanel](enzo::nt::OpId opId){parametersPanel->selectionChanged(opId);});
|
||||||
enzo::nt::nm().displayNodeChanged.connect([geometrySpreadsheetPanel](enzo::nt::OpId opId){geometrySpreadsheetPanel->selectionChanged(opId);});
|
enzo::nt::nm().displayGeoChanged.connect([geometrySpreadsheetPanel](enzo::geo::Geometry& geometry){geometrySpreadsheetPanel->geometryChanged(geometry);});
|
||||||
// connect(&enzo::nt::nm(), &enzo::nt::NetworkManager::updateDisplay, parametersPanel, &ParametersPanel::selectionChanged);
|
enzo::nt::nm().displayGeoChanged.connect([viewport](enzo::geo::Geometry& geometry){viewport->setGeometry(geometry);});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ Viewport::Viewport(QWidget *parent, Qt::WindowFlags f)
|
|||||||
this->setLayout(mainLayout_);
|
this->setLayout(mainLayout_);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Viewport::geometryChanged(enzo::geo::Geometry& geometry)
|
void Viewport::setGeometry(enzo::geo::Geometry& geometry)
|
||||||
{
|
{
|
||||||
openGLWidget_->geometryChanged(geometry);
|
openGLWidget_->geometryChanged(geometry);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ class Viewport
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
Viewport(QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags());
|
Viewport(QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags());
|
||||||
|
void setGeometry(enzo::geo::Geometry& geometry);
|
||||||
private:
|
private:
|
||||||
QVBoxLayout* mainLayout_;
|
QVBoxLayout* mainLayout_;
|
||||||
ViewportGLWidget* openGLWidget_;
|
ViewportGLWidget* openGLWidget_;
|
||||||
@@ -23,6 +24,4 @@ private:
|
|||||||
QPointF leftStartPos_;
|
QPointF leftStartPos_;
|
||||||
bool rightMouseDown_=false;
|
bool rightMouseDown_=false;
|
||||||
QPointF rightStartPos_;
|
QPointF rightStartPos_;
|
||||||
public Q_SLOTS:
|
|
||||||
void geometryChanged(enzo::geo::Geometry& geometry);
|
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user