33 Portal::Graphics::PrimitiveTopology::POINT_LIST
40 std::shared_ptr<GpuSync::GeometryWriterNode>>;
44 void process_batch(
unsigned int num_samples)
override;
45 [[nodiscard]]
size_t get_node_count()
const override;
49 bool has_operator()
const override {
return m_operator !=
nullptr; }
61 std::vector<Kakshya::Vertex> vertices,
64 return m_operator->add_geometry(std::move(vertices),
topology);
69 return add_geometry(
input.values,
input.topology);
74 return m_operator->add_geometry(mesh);
77 void add_geometry(std::shared_ptr<GpuSync::GeometryWriterNode> node)
79 m_operator->add_geometry(std::move(node));
84 std::visit([
this](
const auto&
value) { add_geometry(
value); }, source);
89 return m_operator->remove_geometry(node);
Core::GlobalInputConfig input
std::vector< glm::vec3 > positions
PrimitiveTopology topology
const NetworkOperator * get_operator() const override
std::shared_ptr< GpuSync::MeshWriterNode > add_geometry(const Kakshya::MeshData &mesh)
std::unique_ptr< AssemblyOperator > m_operator
bool remove_geometry(const std::shared_ptr< GpuSync::GeometryWriterNode > &node)
void add_geometry(const Source &source)
std::shared_ptr< GpuSync::GeometryLeafNode > add_geometry(std::vector< Kakshya::Vertex > vertices, Portal::Graphics::PrimitiveTopology topology=Portal::Graphics::PrimitiveTopology::POINT_LIST)
std::variant< VertexInput, Kakshya::MeshData, std::shared_ptr< GpuSync::GeometryWriterNode > > Source
void add_geometry(std::shared_ptr< GpuSync::GeometryWriterNode > node)
AssemblyOperator * assembly() const
bool has_operator() const override
NetworkOperator * get_operator() override
std::shared_ptr< GpuSync::GeometryLeafNode > add_geometry(const VertexInput &input)
std::shared_ptr< GpuSync::GeometryLeafNode > add_geometry(std::vector< glm::vec3 > positions, Portal::Graphics::PrimitiveTopology topology=Portal::Graphics::PrimitiveTopology::POINT_LIST)
Holds hundreds or thousands of independent geometry items with no shared topology,...
Holds an unordered set of independent geometry items, rendered as one milled draw.
Domain-agnostic interpretive lens for network processing.
Abstract base class for structured collections of nodes with defined relationships.
PrimitiveTopology
Vertex assembly primitive topology.
Owning CPU-side representation of a loaded or generated mesh.