#include "gtl_math_min.h" namespace gtl { namespace math { min::min(gtl::analog_data *data) : analog_value(data) { _name = "min"; } void min::before_copying_data(std::vector::iterator begin, std::vector::iterator end) { std::set::iterator>::iterator iter_remove_begin = _mins.lower_bound(begin); std::set::iterator>::iterator iter_remove_end = _mins.lower_bound(end); _mins.erase(iter_remove_begin, iter_remove_end); } void min::after_copying_data(std::vector::iterator begin, std::vector::iterator end) { _mins.insert(std::min_element(begin, end)); } void min::set_time(qreal value) { analog_value::set_time(value); _mins.clear(); } void min::data_changed() { analog_value::data_changed(); if(_mins.size()) { qreal min = **_mins.begin(); for(std::set::iterator>::iterator it = _mins.begin(); it != _mins.end(); ++it) { if(**it > min) min = **it; } _value = min; emit value_changed(); } } } }