MayaFlux 0.4.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 53 of file PhysicsOperator.cpp.

56{
57 if (vertices.empty()) {
59 "Cannot add collection with zero vertices");
60 return;
61 }
62
63 CollectionGroup group;
64 group.collection = std::make_shared<GpuSync::PointCollectionNode>();
65
66 group.physics_state.resize(vertices.size());
67
68 for (size_t i = 0; i < vertices.size(); ++i) {
69 group.physics_state[i] = PhysicsState {
70 .velocity = glm::vec3(0.0F),
71 .force = glm::vec3(0.0F),
72 .mass = mass_multiplier
73 };
74 }
75
76 group.collection->set_points(vertices);
77 group.collection->compute_frame();
78
79 m_collections.push_back(std::move(group));
80
82 "Added collection #{} with {} points (mass_mult={:.2f})",
83 m_collections.size(), vertices.size(), mass_multiplier);
84}
#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: