MayaFlux 0.2.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 113 of file PhysicsOperator.cpp.

114{
115 auto param_enum = string_to_parameter(param);
116
117 if (!param_enum) {
118 try {
119 Reflect::string_to_enum_or_throw_case_insensitive<PhysicsParameter>(
120 param, "PhysicsOperator parameter");
121 } catch (const std::invalid_argument& e) {
123 "{}", e.what());
124 }
126 "Unknown physics parameter: '{}'", param);
127 return;
128 }
129
130 switch (*param_enum) {
132 m_gravity.x = static_cast<float>(value);
133 break;
135 m_gravity.y = static_cast<float>(value);
136 break;
138 m_gravity.z = static_cast<float>(value);
139 break;
141 m_drag = glm::clamp(static_cast<float>(value), 0.0F, 1.0F);
142 break;
144 m_interaction_radius = static_cast<float>(value);
145 break;
147 m_spring_stiffness = static_cast<float>(value);
148 break;
150 m_repulsion_strength = static_cast<float>(value);
151 break;
153 m_spatial_interactions_enabled = (value > 0.5);
154 break;
156 m_point_size = static_cast<float>(value);
157 for (auto& group : m_collections) {
158 auto& points = group.collection->get_points();
159 for (auto& pt : points) {
160 pt.size = m_point_size;
161 }
162 }
163 break;
165 m_attraction_strength = static_cast<float>(value);
166 break;
168 m_turbulence_strength = static_cast<float>(value);
169 break;
170 }
171}
#define MF_ERROR(comp, ctx,...)
#define MF_WARN(comp, ctx,...)
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, MayaFlux::Nodes::Network::REPULSION_STRENGTH, MayaFlux::Nodes::Network::SPATIAL_INTERACTIONS, MayaFlux::Nodes::Network::SPRING_STIFFNESS, string_to_parameter(), and MayaFlux::Nodes::Network::TURBULENCE.

+ Here is the call graph for this function: