MayaFlux 1.0.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches

◆ TopologyGeneratorNode() [1/2]

MayaFlux::Nodes::GpuSync::TopologyGeneratorNode::TopologyGeneratorNode ( Kinesis::ProximityMode  mode = Kinesis::ProximityMode::SEQUENTIAL,
bool  auto_connect = true,
size_t  max_points = 256 
)
explicit

Create topology generator.

Parameters
modeConnection generation rule
auto_connectIf true, regenerate topology on every point addition
max_pointsMaximum point capacity

Definition at line 28 of file TopologyGeneratorNode.cpp.

32 : GeometryWriterNode(static_cast<uint32_t>(max_points * max_points))
33 , m_mode(mode)
34 , m_max_points(max_points)
35 , m_auto_connect(auto_connect)
36{
38
39 const auto& stride = sizeof(LineVertex);
40 set_vertex_stride(stride);
41
42 auto layout = Kakshya::VertexLayout::for_lines(stride);
43 layout.vertex_count = 0;
44 set_vertex_layout(layout);
45
46 m_points.reserve(max_points);
47 m_vertices.reserve(max_points * max_points);
48 m_connections.reserve(max_points * max_points);
49
51 "Created TopologyGeneratorNode with mode {}, auto_connect={}, capacity={}",
52 static_cast<int>(mode), auto_connect, max_points);
53}
#define MF_DEBUG(comp, ctx,...)
uint32_t mode
GeometryWriterNode(uint32_t initial_capacity=1024)
Constructor.
Portal::Graphics::PrimitiveTopology m_primitive_topology
void set_vertex_layout(const Kakshya::VertexLayout &layout)
Set cached vertex layout.
void set_vertex_stride(size_t stride)
Set vertex stride (bytes per vertex)
std::vector< std::pair< size_t, size_t > > m_connections
std::vector< LineVertex > m_points
Points, newest first: index 0 is the most recently added.
@ NodeProcessing
Node graph processing (Nodes::NodeGraphManager)
@ Nodes
DSP Generator and Filter Nodes, graph pipeline, node management.
Kakshya::LineVertex LineVertex
Definition VertexSpec.hpp:9
static VertexLayout for_lines(uint32_t stride=60)
Factory: layout for LineVertex (position, color, thickness, uv, normal, tangent)

References MayaFlux::Kakshya::VertexLayout::for_lines(), MayaFlux::Portal::Graphics::LINE_LIST, m_connections, m_points, MayaFlux::Nodes::GpuSync::GeometryWriterNode::m_primitive_topology, m_vertices, MF_DEBUG, mode, MayaFlux::Journal::NodeProcessing, MayaFlux::Journal::Nodes, MayaFlux::Nodes::GpuSync::GeometryWriterNode::set_vertex_layout(), and MayaFlux::Nodes::GpuSync::GeometryWriterNode::set_vertex_stride().

+ Here is the call graph for this function: