Visual Computing Library
Loading...
Searching...
No Matches
vcl::BoxConcept Concept Reference

A concept representing a N-Dimensional Box. More...

#include <vclib/concepts/space/box.h>

Concept definition

template<typename T>
concept vcl::BoxConcept = requires (
T&& obj,
typename RemoveRef<T>::PointType p,
typename RemoveRef<T>::PointType& pR,
typename RemoveRef<T>::PointType::ScalarType s) {
typename RemoveRef<T>::PointType;
obj.DIM;
RemoveRef<T>();
RemoveRef<T>(p);
RemoveRef<T>(p, p);
{ obj.min() } -> PointConcept;
{ obj.max() } -> PointConcept;
{ obj.isNull() } -> std::same_as<bool>;
{ obj.isEmpty() } -> std::same_as<bool>;
{ obj.isInside(p) } -> std::same_as<bool>;
{ obj.isInsideOpenBox(p) } -> std::same_as<bool>;
{ obj.overlap(obj) } -> std::same_as<bool>;
{ obj.collide(obj) } -> std::same_as<bool>;
{ obj.intersects(obj) } -> std::same_as<bool>;
{ obj.diagonal() } -> std::same_as<decltype(s)>;
{ obj.squaredDiagonal() } -> std::same_as<decltype(s)>;
{ obj.center() } -> PointConcept;
{ obj.size() } -> PointConcept;
{ obj.volume() } -> std::convertible_to<decltype(s)>;
{ obj.dim(uint()) } -> std::convertible_to<decltype(s)>;
{ obj.minDim() } -> std::convertible_to<decltype(s)>;
{ obj.maxDim() } -> std::convertible_to<decltype(s)>;
{ obj.intersection(obj) } -> std::convertible_to<RemoveRef<T>>;
{ obj == obj } -> std::same_as<bool>;
{ obj != obj } -> std::same_as<bool>;
requires IsConst<T> || requires {
{ obj.min() } -> std::same_as<decltype(pR)>;
{ obj.max() } -> std::same_as<decltype(pR)>;
{ obj.setNull() } -> std::same_as<void>;
{ obj.add(p) } -> std::same_as<void>;
{ obj.add(p, s) } -> std::same_as<void>;
{ obj.add(obj) } -> std::same_as<void>;
{ obj.translate(p) } -> std::same_as<void>;
};
}
A class representing a line segment in n-dimensional space. The class is parameterized by a PointConc...
Definition segment.h:43
A concept representing a N-Dimensional Box.
Definition box.h:43
Concept for types representing points in Euclidean space.
Definition point.h:40

Detailed Description

A concept representing a N-Dimensional Box.

This concept defines a set of requirements that must be satisfied by any type that wishes to be considered a Box. A Box is a geometric object that is defined by two points in space, typically referred to as the minimum and maximum corners of the box.

Template Parameters
TThe type to be tested for conformity to the BoxConcept.