4 #include "DM/config.hpp"
5 #include "DM/Handle.hpp"
6 #include "DM/ObjectBase.hpp"
7 #include "DM/ICalculator.hpp"
19 static constexpr
double default_inc = 2.;
22 RangeType(
const double& v) : Min(as_calculator(v)), textPimpl(0) {}
24 RangeType(
const double& min,
const double& max,
const double& inc = default_inc) : Min(as_calculator(min)), Max(as_calculator(max)), Inc(as_calculator(inc)), textPimpl(0) {}
29 bool isEmpty()
const {
return !Min; }
30 bool isValue()
const {
return !Max; }
31 bool isRange()
const {
return Max; }
32 bool isConstant()
const;
37 double increment()
const;
44 double maximumValue()
const;
46 RangeType operator*(
const double &f)
const;
49 bool operator==(
const RangeType& o)
const;
51 const char* text()
const;
54 mutable textImpl *textPimpl;
77 virtual int dimension()
const = 0;
80 virtual double maxSearchDistance2D()
const = 0;
82 virtual double maxSearchDistance3D()
const = 0;
88 virtual const char *text()
const = 0;