feat: basic dependency graph cooking, updating viewport
This commit is contained in:
@@ -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);
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user