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

◆ extract_numeric_data() [3/3]

template<typename T >
requires RegionLike<T>
static std::vector< std::span< double > > MayaFlux::Yantra::OperationHelper::extract_numeric_data ( const T &  compute_data,
const std::shared_ptr< Kakshya::SignalSourceContainer > &  container 
)
inlinestatic

extract numeric data from region-like types

Template Parameters
TComputeData type
Parameters
compute_dataInput data
containerContainer to extract data from
Returns
Vector of spans of double data (one per region/segment)

Definition at line 130 of file OperationHelper.hpp.

133 {
134 if (!container) {
135 error<std::invalid_argument>(Journal::Component::Yantra, Journal::Context::ContainerProcessing, std::source_location::current(), "Null container provided for region extraction");
136 }
137
138 if constexpr (std::is_same_v<T, Kakshya::Region>) {
139 auto data = container->get_region_data(compute_data);
140 return Kakshya::convert_variants<double>(data);
141
142 } else if constexpr (std::is_same_v<T, Kakshya::RegionGroup>) {
143 if (compute_data.regions.empty()) {
144 error<std::runtime_error>(Journal::Component::Yantra, Journal::Context::ContainerProcessing, std::source_location::current(), "Empty RegionGroup cannot be extracted");
145 }
146 auto data = container->get_region_group_data(compute_data);
147 return Kakshya::convert_variants<double>(data);
148
149 } else if constexpr (std::is_same_v<T, std::vector<Kakshya::RegionSegment>>) {
150 if (compute_data.empty()) {
151 error<std::runtime_error>(Journal::Component::Yantra, Journal::Context::ContainerProcessing, std::source_location::current(), "Empty RegionSegment vector cannot be extracted");
152 }
153 auto data = container->get_segments_data(compute_data);
154 return Kakshya::convert_variants<double>(data);
155 }
156 }
@ ContainerProcessing
Container operations (Kakshya - file/stream/region processing)
@ Yantra
DSP algorithms, computational units, matrix operations, Grammar.

References MayaFlux::Journal::ContainerProcessing, and MayaFlux::Journal::Yantra.