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

◆ bind() [3/3]

void MayaFlux::Nodes::Network::FieldOperator::bind ( FieldTarget  target,
Kinesis::VectorField  field 
)

Bind a VectorField to a vec3 target.

Parameters
targetPOSITION, COLOR, NORMAL, or TANGENT
fieldVectorField: glm::vec3 -> glm::vec3

POSITION fields are additive (displacement). COLOR fields are direct assignment (RGB). NORMAL fields are direct assignment (auto-normalized). TANGENT fields are direct assignment (auto-normalized).

Definition at line 180 of file FieldOperator.cpp.

181{
182 if (!any_flag(target)) {
184 "bind: empty target mask");
185 return;
186 }
187
188 if (any_flag(target & ~Kinesis::k_vector_targets)) {
190 "Cannot bind VectorField to mask {:#x}: unreached bits {:#x}. "
191 "SCALAR needs a SpatialField, UV needs a UVField, and targets this "
192 "operator does not implement are rejected. Nothing was bound.",
193 static_cast<uint16_t>(target),
194 static_cast<uint16_t>(target & ~Kinesis::k_vector_targets));
195 return;
196 }
197
198 if (has_flag(target, FieldTarget::POSITION))
199 m_position_fields.push_back(field);
200 if (has_flag(target, FieldTarget::COLOR))
201 m_color_fields.push_back(field);
202 if (has_flag(target, FieldTarget::NORMAL))
203 m_normal_fields.push_back(field);
204 if (has_flag(target, FieldTarget::TANGENT))
205 m_tangent_fields.push_back(std::move(field));
206}
#define MF_ERROR(comp, ctx,...)
std::vector< Kinesis::VectorField > m_position_fields
std::vector< Kinesis::VectorField > m_tangent_fields
std::vector< Kinesis::VectorField > m_color_fields
std::vector< Kinesis::VectorField > m_normal_fields
@ NodeProcessing
Node graph processing (Nodes::NodeGraphManager)
@ Nodes
DSP Generator and Filter Nodes, graph pipeline, node management.
constexpr FieldTarget k_vector_targets
Targets that accept a three-component field.

References MayaFlux::Kinesis::k_vector_targets, m_color_fields, m_normal_fields, m_position_fields, m_tangent_fields, MF_ERROR, MayaFlux::Journal::NodeProcessing, and MayaFlux::Journal::Nodes.