Enzo
Loading...
Searching...
No Matches
GeometryOpDef.h
1#pragma once
2#include "Engine/Operator/Geometry.h"
3#include "Engine/Operator/Context.h"
4#include "Engine/Types.h"
5#include <boost/config.hpp>
6
7
8namespace enzo::nt
9{
10class NetworkManager;
11
12class BOOST_SYMBOL_EXPORT GeometryOpDef
13{
14public:
15 GeometryOpDef(enzo::nt::OpId opId);
16 virtual void cookOp(op::Context context) = 0;
17 geo::Geometry& getOutputGeo(unsigned outputIndex);
18private:
19 std::vector<enzo::geo::Geometry> outputGeometry_;
20 unsigned int minInputs_;
21 unsigned int maxInputs_;
22 unsigned int maxOutputs_;
23protected:
24 enzo::nt::OpId opId_;
25 const enzo::geo::Geometry& getInputGeoView(unsigned int inputIndex);
26 bool outputRequested(unsigned int outputIndex);
27
28 // TODO: std::move geometry instead of copying
29 void setOutputGeometry(unsigned int outputIndex, enzo::geo::Geometry geometry);
30};
31
32using opConstructor = GeometryOpDef* (*)(enzo::nt::OpId);
33
34}
Definition Geometry.h:9
Definition GeometryOpDef.h:13
Definition Context.h:14