feat: basic dependency graph cooking, updating viewport

This commit is contained in:
parker
2025-07-07 15:47:10 +01:00
parent 544889c40d
commit a14c9e973c
12 changed files with 96 additions and 21 deletions

View File

@@ -1,12 +1,16 @@
#pragma once
#include "Engine/Operator/GeometryOperator.h"
#include "Engine/Operator/Geometry.h"
#include "Engine/Types.h"
#include <memory>
#include <unordered_map>
#include <QObject>
namespace enzo::nt {
class NetworkManager
: public QObject
{
Q_OBJECT
public:
OpId addOperator();
void setDisplayOp(OpId opId);
@@ -25,13 +29,15 @@ private:
std::unordered_map<enzo::nt::OpId, std::unique_ptr<enzo::nt::GeometryOperator>> gopStore_;
void cookOp(enzo::nt::OpId opId);
std::vector<enzo::nt::OpId> getTraversalGraph(enzo::nt::OpId opId);
enzo::geo::Geometry cookOp(enzo::nt::OpId opId, enzo::geo::Geometry inputGeometry);
std::vector<enzo::nt::OpId> getDependencyGraph(enzo::nt::OpId opId);
// the highest operator id currently stored
enzo::nt::OpId maxOpId_=0;
std::optional<OpId> displayOp_=std::nullopt;
signals:
void updateDisplay(enzo::geo::Geometry& geometry);
};
}