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

◆ add_collection()

void MayaFlux::Nodes::Network::PhysicsOperator::add_collection ( const std::vector< PointVertex > &  vertices,
float  mass_multiplier = 1.0F 
)

Add a single physics collection.

Parameters
verticesPointVertex array with position, color, size
mass_multiplierMass multiplier for all particles in this collection

Definition at line 51 of file PhysicsOperator.cpp.

54{
55 if (vertices.empty()) {
57 "Cannot add collection with zero vertices");
58 return;
59 }
60
61 CollectionGroup group;
62 group.collection = std::make_shared<GpuSync::PointCollectionNode>();
63
64 group.physics_state.resize(vertices.size());
65
66 for (size_t i = 0; i < vertices.size(); ++i) {
67 group.physics_state[i] = PhysicsState {
68 .velocity = glm::vec3(0.0F),
69 .force = glm::vec3(0.0F),
70 .mass = mass_multiplier
71 };
72 }
73
74 group.collection->set_points(vertices);
75 group.collection->compute_frame();
76
77 m_collections.push_back(std::move(group));
78
80 "Added collection #{} with {} points (mass_mult={:.2f})",
81 m_collections.size(), vertices.size(), mass_multiplier);
82}
#define MF_WARN(comp, ctx,...)
#define MF_DEBUG(comp, ctx,...)
std::vector< CollectionGroup > m_collections
@ NodeProcessing
Node graph processing (Nodes::NodeGraphManager)
@ Nodes
DSP Generator and Filter Nodes, graph pipeline, node management.

References MayaFlux::Nodes::Network::PhysicsOperator::CollectionGroup::collection, m_collections, MF_DEBUG, MF_WARN, MayaFlux::Journal::NodeProcessing, MayaFlux::Journal::Nodes, MayaFlux::Nodes::Network::PhysicsOperator::CollectionGroup::physics_state, and MayaFlux::Nodes::Network::PhysicsState::velocity.

Referenced by initialize(), and initialize_collections().

+ Here is the caller graph for this function: