10 _source_data(source_data),
20 if( first_index > last_index || first_index <0 || last_index <0 )
32 double min_y =( std::numeric_limits<double>::max() );
33 double max_y =(-std::numeric_limits<double>::max() );
35 for (
size_t i = first_index;
i < last_index;
i++)
38 min_y = std::min( min_y, Y );
39 max_y = std::max( max_y, Y );
53 return QPointF(p.x, p.y);
74 data_size = data_size - 1;
77 for (
size_t i=0;
i < data_size;
i++ )
81 const auto delta = p1.
x - p0.x;
82 const auto vel = (p1.y - p0.y) /delta;
83 QPointF p( (p1.x + p0.x)*0.5, vel);
102 data_size = data_size - 2;
105 for (
size_t i=0;
i < data_size;
i++ )
110 const auto delta = (p2.x - p0.x) *0.5;
111 const auto acc = ( p2.y - 2.0* p1.y + p0.y)/(delta*delta);
112 QPointF p( (p2.x + p0.x)*0.5, acc );
const PlotData * _source_data
PlotData::RangeValueOpt getVisualizationRangeY(PlotData::RangeTime range_X) override
const Point & at(size_t index) const
virtual size_t size() const override
int getIndexFromX(Time x) const
const PlotData * transformedData() const
nonstd::optional< QPointF > sampleFromTime(double t) override
TimeseriesQwt(const PlotData *source_data, const PlotData *transformed_data)
TFSIMD_FORCE_INLINE const tfScalar & x() const
void resize(size_t new_size)
void calculateBoundingBox()
bool updateCache() override
virtual size_t size() const
nonstd::optional< RangeValue > RangeValueOpt
virtual QPointF sample(size_t i) const override
bool updateCache() override