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

◆ set_parameter()

void MayaFlux::Nodes::Network::PhysicsOperator::set_parameter ( std::string_view  param,
double  value 
)
overridevirtual

Set operator parameter.

Implements MayaFlux::Nodes::Network::NetworkOperator.

Definition at line 159 of file PhysicsOperator.cpp.

160{
161 auto param_enum = string_to_parameter(param);
162
163 if (!param_enum) {
164 try {
165 Reflect::string_to_enum_or_throw_case_insensitive<PhysicsParameter>(
166 param, "PhysicsOperator parameter");
167 } catch (const std::invalid_argument& e) {
169 "{}", e.what());
170 }
172 "Unknown physics parameter: '{}'", param);
173 return;
174 }
175
176 switch (*param_enum) {
178 m_gravity.x = static_cast<float>(value);
179 break;
181 m_gravity.y = static_cast<float>(value);
182 break;
184 m_gravity.z = static_cast<float>(value);
185 break;
187 m_drag = glm::clamp(static_cast<float>(value), 0.0F, 1.0F);
188 break;
190 m_interaction_radius = static_cast<float>(value);
191 break;
193 m_spring_stiffness = static_cast<float>(value);
194 break;
196 m_repulsion_strength = static_cast<float>(value);
197 break;
200 break;
202 m_point_size = static_cast<float>(value);
203 for (auto& group : m_collections) {
204 auto& points = group.collection->get_points();
205 for (auto& pt : points) {
206 pt.size = m_point_size;
207 }
208 }
209 break;
211 m_attraction_strength = static_cast<float>(value);
212 break;
214 m_turbulence_strength = static_cast<float>(value);
215 break;
216 }
217}
#define MF_ERROR(comp, ctx,...)
#define MF_WARN(comp, ctx,...)
std::vector< glm::vec2 > * points
float value
std::vector< CollectionGroup > m_collections
static std::optional< PhysicsParameter > string_to_parameter(std::string_view param)
@ NodeProcessing
Node graph processing (Nodes::NodeGraphManager)
@ Nodes
DSP Generator and Filter Nodes, graph pipeline, node management.

References MayaFlux::Nodes::Network::ATTRACTION_STRENGTH, MayaFlux::Nodes::Network::DRAG, MayaFlux::Nodes::Network::GRAVITY_X, MayaFlux::Nodes::Network::GRAVITY_Y, MayaFlux::Nodes::Network::GRAVITY_Z, MayaFlux::Nodes::Network::INTERACTION_RADIUS, m_attraction_strength, m_collections, m_drag, m_gravity, m_interaction_radius, m_point_size, m_repulsion_strength, m_spatial_interactions_enabled, m_spring_stiffness, m_turbulence_strength, MF_ERROR, MF_WARN, MayaFlux::Journal::NodeProcessing, MayaFlux::Journal::Nodes, MayaFlux::Nodes::Network::POINT_SIZE, points, MayaFlux::Nodes::Network::REPULSION_STRENGTH, MayaFlux::Nodes::Network::SPATIAL_INTERACTIONS, MayaFlux::Nodes::Network::SPRING_STIFFNESS, string_to_parameter(), MayaFlux::Nodes::Network::TURBULENCE, and value.

+ Here is the call graph for this function: