40 uint32_t add_slot(std::string name, std::shared_ptr<GpuSync::GeometryWriterNode> node);
43 [[nodiscard]]
const GeometrySlot& get_slot(uint32_t index)
const;
44 [[nodiscard]]
GeometrySlot* find_slot(std::string_view name);
45 [[nodiscard]]
const GeometrySlot* find_slot(std::string_view name)
const;
47 [[nodiscard]]
size_t slot_count()
const {
return m_slots.size(); }
48 [[nodiscard]]
const std::vector<GeometrySlot>&
slots()
const {
return m_slots; }
49 [[nodiscard]] std::vector<GeometrySlot>&
slots() {
return m_slots; }
51 void process_batch(
unsigned int num_samples)
override;
52 void reset()
override;
54 [[nodiscard]]
size_t get_node_count()
const override {
return m_slots.size(); }
55 [[nodiscard]] std::optional<double> get_node_output(
size_t index)
const override;
56 [[nodiscard]] std::unordered_map<std::string, std::string> get_metadata()
const override;
58 void set_operator(std::shared_ptr<NetworkOperator> op);
60 template <
typename OpType,
typename... Args>
63 auto op = std::make_shared<OpType>(std::forward<Args>(args)...);
70 bool has_operator()
const override {
return m_operator !=
nullptr; }