45 typename RemoveRef<T>::PointType p,
46 typename RemoveRef<T>::PointType& pR,
47 typename RemoveRef<T>::PointType::ScalarType s) {
48 typename RemoveRef<T>::PointType;
61 { obj.isNull() } -> std::same_as<bool>;
62 { obj.isEmpty() } -> std::same_as<bool>;
65 { obj.isInside(p) } -> std::same_as<bool>;
66 { obj.isInsideOpenBox(p) } -> std::same_as<bool>;
69 { obj.overlap(obj) } -> std::same_as<bool>;
70 { obj.collide(obj) } -> std::same_as<bool>;
71 { obj.intersects(obj) } -> std::same_as<bool>;
74 { obj.diagonal() } -> std::same_as<
decltype(s)>;
75 { obj.squaredDiagonal() } -> std::same_as<
decltype(s)>;
78 { obj.volume() } -> std::convertible_to<
decltype(s)>;
79 { obj.dim(uint()) } -> std::convertible_to<
decltype(s)>;
80 { obj.minDim() } -> std::convertible_to<
decltype(s)>;
81 { obj.maxDim() } -> std::convertible_to<
decltype(s)>;
82 { obj.intersection(obj) } -> std::convertible_to<RemoveRef<T>>;
85 { obj == obj } -> std::same_as<bool>;
86 { obj != obj } -> std::same_as<bool>;
90 { obj.min() } -> std::same_as<
decltype(pR)>;
91 { obj.max() } -> std::same_as<
decltype(pR)>;
94 { obj.setNull() } -> std::same_as<void>;
95 { obj.add(p) } -> std::same_as<void>;
96 { obj.add(p, s) } -> std::same_as<void>;
97 { obj.add(obj) } -> std::same_as<void>;
98 { obj.translate(p) } -> std::same_as<void>;