15 void initialize(
const std::vector<LineVertex>& vertices);
22 void initialize_topologies(
23 const std::vector<std::vector<LineVertex>>& topologies,
32 const std::vector<LineVertex>& vertices,
35 void process(
float dt)
override;
37 [[nodiscard]] std::span<const uint8_t> get_vertex_data()
const override;
38 [[nodiscard]] std::span<const uint8_t> get_vertex_data_for_collection(uint32_t idx)
const override;
40 [[nodiscard]]
size_t get_vertex_count()
const override;
41 [[nodiscard]]
bool is_vertex_data_dirty()
const override;
42 void mark_vertex_data_clean()
override;
48 [[nodiscard]] std::vector<LineVertex> extract_vertices()
const;
50 void set_parameter(std::string_view param,
double value)
override;
51 [[nodiscard]] std::optional<double> query_state(std::string_view query)
const override;
52 [[nodiscard]] std::string_view
get_type_name()
const override {
return "Topology"; }
53 [[nodiscard]]
size_t get_point_count()
const override;
59 void set_connection_radius(
float radius);
65 void set_global_line_thickness(
float thickness);
71 void set_global_line_color(
const glm::vec3& color);
82 void* get_data_at(
size_t global_index)
override;
85 std::vector<std::shared_ptr<GpuSync::TopologyGeneratorNode>>
m_topologies;
90 float m_default_thickness { 2.0F };