MayaFlux 0.4.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 583 of file UniversalTransformer.hpp.

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

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