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

◆ apply_auto_scale()

MAYAFLUX_API void MayaFlux::Portal::Forma::Plot::apply_auto_scale ( AxisRange range,
const std::vector< std::span< const double > > &  series 
)

Apply auto-scaling to an AxisRange from a set of series.

Computes the union [min, max] over all provided series and updates range in place. No-op if series is empty or range.auto_scale is false.

Definition at line 53 of file PlotSpec.cpp.

55{
56 if (!range.auto_scaling || series.empty())
57 return;
58 if (range.scale_predicate && !range.scale_predicate())
59 return;
60
61 float lo = std::numeric_limits<float>::max();
62 float hi = std::numeric_limits<float>::lowest();
63 for (const auto& s : series) {
64 auto [slo, shi] = data_range(s);
65 lo = std::min(lo, slo);
66 hi = std::max(hi, shi);
67 }
68 range.min = lo;
69 range.max = hi;
70}
std::pair< float, float > data_range(std::span< const double > series)
Compute [min, max] over a scalar series.
Definition PlotSpec.cpp:35
Series series()
Begin a Series chain.
Definition Plot.hpp:109

References data_range(), and series().

Referenced by MayaFlux::Portal::Forma::Plot::WaveformBuilder::done(), MayaFlux::Portal::Forma::Plot::ScatterBuilder::done(), MayaFlux::Portal::Forma::Plot::BarsBuilder::done(), and MayaFlux::Portal::Forma::Plot::FilledWaveformBuilder::done().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: