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

◆ extract_transformation_parameters()

template<ComputeData InputType = Kakshya::DataVariant, ComputeData OutputType = InputType>
std::vector< double > MayaFlux::Yantra::UniversalTransformer< InputType, OutputType >::extract_transformation_parameters ( const input_type input) const
inlineprotected

Helper method to apply transformation keys to extract parameters.

Parameters
inputInput data to extract parameters from
Returns
Vector of extracted parameter values

Processes all transformation keys to extract parameter values from the input data. Applies normalization, intensity, and weight adjustments as configured. Used for data-driven and adaptive transformations.

Definition at line 578 of file UniversalTransformer.hpp.

579 {
580 std::vector<double> parameters;
581 parameters.reserve(m_transformation_keys.size());
582
583 for (const auto& key : m_transformation_keys) {
584 try {
585 double param {};
586 if (key.axis.has_value()) {
587 // TODO: Implement dimension validation
588 } else {
589 param = key.parameter_extractor(input.data[key.channel]);
590 }
591 if (key.normalize) {
592 param = std::clamp(param, 0.0, 1.0);
593 }
594 parameters.push_back(param * key.intensity * key.weight);
595 } catch (...) {
596 parameters.push_back(0.0);
597 }
598 }
599
600 return parameters;
601 }
std::vector< TransformationKey > m_transformation_keys
Multi-dimensional transformation keys.

References MayaFlux::Yantra::IO< T >::data.