41 std::vector<double> points;
43 void sortPointsAndRemoveNonUnique(
double min_dist);
52 WarningOff(
const shared_ptr<OrderedAxis>& axis): axis(axis.get()), prev_state(axis->warn_too_close) { axis->warn_too_close =
false; }
60 constexpr static double MIN_DISTANCE = 1
e-6;
85 native_const_iterator find(
double to_find)
const;
95 native_const_iterator findUp(
double to_find)
const;
104 native_const_iterator findNearest(
double to_find)
const;
120 std::copy(src.
begin(), src.
end(), points.begin());
122 std::reverse_copy(src.
begin(), src.
end(), points.begin());
166 void writeXML(
XMLElement&
object)
const override;
169 std::size_t
size()
const override {
return points.size(); }
171 double at(std::size_t index)
const override {
assert(index < points.size());
return points[index]; }
201 void removePoint(std::size_t index);
208 void removePoints(std::size_t start, std::size_t stop);
216 void removePoints(std::size_t start, std::size_t stop, std::ptrdiff_t step);
226 template <
typename IteratorT>
236 template <
typename RandomAccessIteratorT>
246 void addPointsLinear(
double first,
double last, std::size_t points_count);
260 shared_ptr<MeshAxis> clone()
const override;
270 template <
typename RandomAccessContainer>
271 auto interpolateLinear(
const RandomAccessContainer& data,
double point)
const ->
typename std::remove_reference<
decltype(data[0])>::type;