template
<typename T>
interval_type get(const T& rectangle, orientation_2d) |
Ожидает модель прямоугольника. Возвращает интервал x или y прямоугольника в зависимости от ориентации_2d. |
template
<typename T, typename coordinate_type>
void set(T& rectangle, orientation_2d, coordinate_type) |
Ожидает модель прямоугольника. Устанавливает x интервал или y интервал прямоугольника на координату в зависимости от ориентации_2d значения. |
template
<typename T>
interval_type get(const T& rectangle, orientation_2d,
direction_1d) |
Ожидает модель прямоугольника. Возвращает координату, заданную значением направления_1d интервала x или интервала y прямоугольника, в зависимости от значения ориентации_2d. |
template
<typename T, typename coordinate_type>
void set(T& rectangle, orientation_2d, direction_1d,
coordinate_type) |
Ожидает модель прямоугольника. Устанавливает координату, указанную значением направления_1d интервала x или интервала y прямоугольника к координате, в зависимости от ориентации_2d значения. |
template
<typename T, typename T2>
T construct(const T2& h, const T2& v) |
Постройте объект, который является моделью прямоугольника с заданными интервалами x и y. |
template
<typename T, typename T2>
T construct(coordinate_type xl, coordinate_type yl,
coordinate_type xh, coordinate_type yh) |
Постройте объект, который является моделью прямоугольника с четырьмя значениями координат. |
template
<typename T1, typename T2>
T1& assign(T1& left, const T2& right) |
Копирует данные с правого объекта, который модели прямоугольник в левый объект, который модели прямоугольник. |
template
<typename T, typename T2>
bool equivalence(const T& rectangle1,
const T2& rectangle2) |
Учитывая два объекта, которые моделируют прямоугольник, сравнивает и возвращает истинность, если их интервалы x и y соответственно эквивалентны. |
template
<typename T, typename point_type>
bool contains(const T&, const point_type& point,
bool consider_touch=true) |
Учитывая объект, который моделирует прямоугольник, и объект, который моделирует точку, возвращается истинно, если прямоугольник содержит точку. Если флаг consider_touch является истинным, он вернется истинным, если точка находится вдоль границы прямоугольника. |
template
<typename T1, typename T2>
bool contains(const T1& a, const T2& b,
bool consider_touch = true) |
Возвращается истинным, если модель прямоугольника a содержит оба интервала модели прямоугольника b. Если флаг consider_touch верен, то будет считаться прямоугольник b, содержащийся, даже если он касается границы a. |
template
<typename T>
interval_type horizontal(const T& rectangle) |
Возвращает интервал x объекта, который моделирует прямоугольник. |
template
<typename T>
interval_type vertical(const T& rectangle) |
Возвращает интервал Y объекта, который моделирует прямоугольник. |
template
<typename T>
coordinate_type xl(const T& rectangle) |
Возвращает западную координату объекта, моделирующего прямоугольник. |
template
<typename T>
coordinate_type xh(const T& rectangle) |
Возвращает восточную координату объекта, который моделирует прямоугольник. |
template
<typename T>
coordinate_type yl(const T& rectangle) |
Возвращает южную координату объекта, который моделирует прямоугольник. |
template
<typename T>
coordinate_type yh(const T& rectangle) |
Возвращает северную координату объекта, моделирующего прямоугольник. |
template
<typename T>
point_type ll(const T& rectangle) |
Возвращает нижнюю левую угловую точку объекта, который моделирует прямоугольник. |
template
<typename T>
point_type lr(const T& rectangle) |
Возвращает нижнюю правую точку угла объекта, который моделирует прямоугольник. |
template
<typename T>
point_type ul(const T& rectangle) |
Возвращает верхнюю левую угловую точку объекта, который моделирует прямоугольник. |
template
<typename T>
point_type ur(const T& rectangle) |
Возвращает верхнюю правую угловую точку объекта, который моделирует прямоугольник. |
// get the center
coordinate
template <typename T, typename point_type>
void center(point_type& p, const T& rectangle) |
Устанавливает объект, который модели указывают на центральную точку объекта, который моделирует прямоугольник. |
template
<typename T, typename interval_type>
void horizontal(T& rectangle, const interval_type& i) |
Устанавливает интервал x объекта, который моделирует прямоугольник, равным значению объекта, который моделирует интервал. |
template
<typename T, typename interval_type>
void vertical(T& rectangle, const interval_type& i ) |
Устанавливает интервал y объекта, который моделирует прямоугольник, равным значению объекта, который моделирует интервал. |
template
<typename rectangle_type>
void xl(rectangle_type& rectangle, coordinate_type ) |
Устанавливает западную координату объекта, которая моделирует прямоугольник, равный значению координаты. |
template
<typename rectangle_type>
void xh(rectangle_type& rectangle, coordinate_type ) |
Устанавливает восточную координату объекта, которая моделирует прямоугольник, равный значению координаты. |
template
<typename rectangle_type>
void yl(rectangle_type& rectangle, coordinate_type ) |
Устанавливает южную координату объекта, которая моделирует прямоугольник, равный значению координаты. |
template
<typename rectangle_type>
void yh(rectangle_type& rectangle, coordinate_type ) |
Устанавливает северную координату объекта, которая моделирует прямоугольник, равный значению координаты. |
template
<typename T, typename T1, typename T2>
T& set_points(T& rectangle, const T1& p1, const
T2& p2) |
Устанавливает прямоугольник в прямоугольник, полностью описанный точками p1 и p2. |
template
<typename T>
coordinate_difference delta(const T& rectangle,
orientation_2d) |
Возвращает дельту интервала, заданную ориентацией_2d объекта, который моделирует прямоугольник. |
template
<typename T>
manhattan_area_type area(const T& rectangle) |
Возвращает область объекта, который моделирует прямоугольник. |
template
<typename T>
coordinate_difference half_perimeter(const T& rectangle) |
Возвращает длину плюс ширину объекта, который моделирует прямоугольник. |
template
<typename T>
coordinate_difference perimeter(const T& rectangle) |
Возвращает длину периметра объекта, который моделирует прямоугольник. |
template
<typename T>
orientation_2d quess_orientation(const T& rectangle) |
Возвращает ориентацию, в которой прямоугольник имеет более длинную дельту. возвращает HORIZONTAL, если прямоугольник является квадратом. |
template
<typename rectangle_type>
rectangle_type& transform(rectangle_type& rectangle,
coordinate_type axis = 0) |
Применяет преобразование() на двух точках, которые полностью описывают прямоугольник, и устанавливает прямоугольник на то, что описано в результате преобразования этих точек. |
template
<typename rectangle_type>
rectangle_type& scale_up(rectangle_type& rectangle,
unsigned_area_type factor) |
Увеличивает интервал x и интервал y объекта, который моделирует прямоугольник по неподписанному фактору. |
template
<typename rectangle_type>
rectangle_type& scale_down(rectangle_type& rectangle,
unsigned_area_type factor) |
Увеличивает интервал x и интервал y объекта, который моделирует прямоугольник по неподписанному фактору. |
template
<typename rectangle_type, scaling_type>
rectangle_type& scale(rectangle_type& rectangle,
const scaling_type& scaling) |
Применяет шкалу () на двух точках, которые полностью описывают прямоугольник, и устанавливает прямоугольник на то, что описано в результате преобразования этих точек. |
template
<typename T>
T& move(T& rectangle, orientation_2d,
coordinate_difference
displacement) |
Добавляет значение смещения к интервалу, указанному ориентацией_2d объекта, который моделирует прямоугольник. |
template
<typename rectangle_type, typename point_type>
rectangle_type& convolve(rectangle_type& rectangle,
const point_type& point) |
Сводит координатные значения точки с интервалом x и интервалом y объекта, моделирующего прямоугольник. |
template
<typename rectangle_type, typename point_type>
rectangle_type& deconvolve(rectangle_type& rectangle,
const point_type& point) |
Развертывание координатных значений интервала точки с х и интервала y объекта, моделирующего прямоугольник. |
template
<typename T1, typename T2>
T1& convolve(T1& a, const T2& b) |
Сводит x интервал b с x интервал a и сворачивает y интервал b с y интервалом a. |
template
<typename T1, typename T2>
T1& deconvolve(T1& a, const T2& b) |
Deconvolves x interval of b with x interval of a and deconvolves y interval of b with y interval of a. |
template
<typename T1, typename T2>
T1& reflected_convolve(T1& a, const T2& b) |
Отраженные сворачиваются y интервала b с x интервала a и отраженные сворачиваются x интервала b с y интервала a. |
template
<typename T1, typename T2>
T1& reflected_deconvolve(T1& a, const T2& b) |
Отраженные деконволы y интервала b с x интервалом a и отраженные деконволы x интервала b с y интервалом a. |
template
<typename T, typename point_type>
coordinate_difference euclidean_distance(const T&,
const point_type& point,
orienation_2d) |
Возвращает расстояние от объекта, который моделирует прямоугольник, к объекту, который модели указывают вдоль заданной ориентации. Возвращается ноль, если точка содержится в прямоугольнике вдоль этой ориентации. |
template
<typename T1, typename T2>
coordinate_difference euclidean_distance(const T1& a,
const T2& b, orienation_2d) |
Возвращает расстояние от объекта, моделирующего прямоугольник, к объекту, моделирующему прямоугольник вдоль заданной ориентации. Возвращается к нулю, если интервалы прямоугольников пересекаются вдоль этой ориентации. |
template
<typename T, typename point_type>
coordinate_difference square_euclidean_distance(const T&,
const point_type& point) |
Возвращает квадрат евклидового расстояния между точкой и прямоугольником. Возвращает ноль, если точка находится внутри прямоугольника. |
template
<typename T1, typename T2>
coordinate_difference square_euclidean_distance
(const T1& a, const T2& b) |
Возвращает квадрат евклидового расстояния между прямоугольниками a и b. Возвращает ноль, если прямоугольники пересекаются. |
template
<typename T, typename point_type>
coordinate_difference manhattan_distance(const T&,
const point_type& point) |
Возвращает расстояние Манхэттена между точкой и прямоугольником. Возвращает ноль, если точка находится внутри прямоугольника. |
template
<typename T1, typename T2>
coordinate_difference manhattan_distance(const T1& a,
const T2& b) |
Возвращает расстояние между прямоугольниками a и b. Возвращает ноль, если прямоугольники пересекаются. |
template
<typename T, typename point_type>
coordinate_distance euclidean_distance(const T&,
const point_type& point) |
Возвращает евклидово расстояние между точкой и прямоугольником. Возвращает ноль, если точка находится внутри прямоугольника. |
template
<typename T1, typename T2>
coordinate_distance euclidean_distance(const T1& a,
const T2& b) |
Возвращает евклидово расстояние между прямоугольниками a и b. Возвращает ноль, если прямоугольники пересекаются. |
template
<typename T1, typename T2>
bool intersects(const T1& a, const T2& b,
bool consider_touch = true) |
Верно, если два объекта, которые модели прямоугольника перекрываются. Если флаг consider_touch действительно касается сторон или углов, это считается перекрытием. |
template
<typename T1, typename T2>
bool boundaries_intersect(const T1& a, const T2& b,
bool consider_touch = true) |
Верность возврата — это два объекта, которые модели прямоугольника частично перекрывают друг друга, так что есть пересечение между краями двух прямоугольников; Если флаг consider_touch верен, координата считается содержащейся, даже если два прямоугольника касаются только вдоль стороны или угла. |
template
<typename T1, typename T2>
bool abuts(const T1& a, const T2& b,
direction_2d dir) |
Возвращается истинным, если прямоугольник b примыкает, но вниз не перекрывает прямоугольник a на стороне прямоугольника a, указанной dir. |
template
<typename T1, typename T2>
bool abuts(const T1& a, const T2& b,
orientation_2d) |
Возвращается истинным, если прямоугольник b примыкает, но вниз не перекрывает прямоугольник a по обе стороны прямоугольника a, заданного ориентацией_2d. |
template
<typename T1, typename T2>
bool abuts(const T1& a, const T2& b) |
Возвращается истинно, если прямоугольник b примыкает, но вниз не перекрывает прямоугольник a с любой стороны. |
template
<typename T1, typename T2>
bool intersect(T1& a, const T2& b, orientation_2d
bool consider_touch = true) |
Устанавливает прямоугольник a на пересечение прямоугольника a и интервал b вдоль ориентации_2d и возвращается истинным. Если интервал не пересекается, прямоугольник остается неизменным, и функция возвращается ложной. Если флаг consider_touch — истинные интервалы, которые abut считаются пересекающимися. |
template
<typename T1, typename T2>
bool intersect(T1& a, const T2& b,
bool consider_touch = true) |
Устанавливает прямоугольник a на пересечение прямоугольника a и прямоугольника b и возвращает истинный. Если два прямоугольника не пересекаются, a остается неизменным, и функция возвращается ложной. Если флаг consider_touch — это истинные прямоугольники, которые, как считается, пересекаются. |
template
<typename T1, typename T2>
T& generalized_intersect(T1& a, const T2& b) |
Так же, как и интерсекты, но если они не пересекаются, установите a в прямоугольник между a и b, применяя обобщенный_интерсект() на интервалах прямоугольников. |
template
<typename T>
T& bloat(T& rectangle, coordinate_type) |
Взлеты x и y интервалов прямоугольника по координатному значению. |
template
<typename T>
T& bloat(T& rectangle, direction_2d, coordinate_type) |
Склоны прямоугольника, определенные направлением_2d по значению координат. |
template
<typename T>
T& bloat(T& rectangle, orientation_2d, coordinate_type) |
Интервал прямоугольника, определяемый ориентацией_2d по координатному значению. |
template
<typename T>
T& shrink(T& rectangle, coordinate_type) |
Сокращает x и y интервалы прямоугольника по координатному значению. |
template
<typename T>
T& shrink(T& rectangle, direction_2d, coordinate_type) |
Сокращает сторону прямоугольника, указанную направлением_2d по координатному значению. |
template
<typename T>
T& shrink(T& rectangle, orientation_2d, coordinate_type) |
Уменьшение интервала прямоугольника, заданного ориентацией_2d по координатному значению. |
template
<typename T1, typename T2>
bool encompass(T1& a, const T2& b) |
Интервалы x и y a должны охватывать интервалы x и y b соответственно. |
template
<typename T, typename point_type>
bool encompass(T& rectangle, const point_type& point) |
Интервалы x и y прямоугольника должны охватывать координаты x и y точки соответственно. |
template
<typename T, typename interval_type>
bool encompass(T& rectangle, const interval_type& i,
orientation_2d) |
Интервал прямоугольника, указанный ориентацией_2d, должен охватывать интервал i. |
template
<typename T, typename point_type>
bool get_corner(point_type& point, const T&
rectangle,
direction_2d, direction_1d) |
Установки указывают на угол прямоугольника, который вы достигаете, если вы посмотрите на его сторону, указанную направлением_2d, изнутри прямоугольника и поверните в направлении_1d (низкий == левый, высокий = правый). : Всегда возвращает правду. |