Polygon Sponsor |
Polygon 45 With Holes Concept Полигон_45_with_holes concept tag -полигон_45_with_holes_concept Для регистрации пользователя определен тип как модельpolygon_45_with_holesКонцепт, специализирующий понятие геометрии метафункции для данного типа. В примере ниже CPolygon45WithHoles зарегистрирован как модель полигона_45_with_holes Концепция. шаблон<> структурная геометрия_концепция{ typedef polygon_45_with_holes_concept type; }; Семантика многоугольника_45_with_holes - это многоугольник_45, который может обеспечивать итераторы над отверстиями, которые также являются многоугольниками_45. Изменяемый многоугольник_45_with_holes также должен иметь возможность устанавливать свою геометрию на основе диапазона интератора над отверстиями многоугольника_45. В библиотеке не существует конвенции об обмотке отверстий. Ниже показан по умолчанию многоугольник с чертами отверстий. Специализация этих черт требуется для типов, которые не соответствуют по умолчанию. template struct polygon_with_holes_traits { typedef typename T::iterator_holes_type iterator_holes_type; type typename T::hole_type hole_type; T&t) { T&t) { возврат t.end_holes(); template struct polygon_with_holes_mutable_traits { & Объект, являющийся модельюполигона_45_with_holes_concept, может рассматриваться как модель любого из его усовершенствований, если он определен во время выполнения в соответствии с ограничением этих понятий. Эта концепция литья осуществляется черезview_as<>()Функция. view_as(polygon_45_with_holes_object) view_as(polygon_45_with_holes_object) view_as Возвратное значениеview_as<>()может быть передан в любой интерфейс, который ожидает объект концептуального типа, указанного в его шаблонном параметре. Functions
template
<typename T>
point_iterator_type begin_points(const T& polygon) |
Ожидает модель полигона_45_with_holes. Возвращает начальный итератор по диапазону точек, которые соответствуют вершинам многоугольника. |
template
<typename T>
point_iterator_type end_points(const T& polygon) |
Ожидает модель полигона_45_with_holes. Возвращает конечный итератор по диапазону точек, которые соответствуют вершинам многоугольника. |
template
<typename T>
hole_iterator_type begin_holes(const T& polygon) |
Ожидает модель полигона_45_with_holes. Возвращает начальный итератор по диапазону координат, которые соответствуют горизонтальным и вертикальным краям. |
template
<typename T>
hole_iterator_type end_holes(const T& polygon) |
Ожидает модель полигона_45_with_holes. Возвращает конечный итератор по диапазону координат, которые соответствуют горизонтальным и вертикальным краям. |
template
<typename T, typename iterator>
void set_points(T& polygon, iterator b, iterator e) |
Ожидает модель полигона_45_with_holes. Устанавливает полигон в точечный диапазон данных [b,e], соответствующий вершинам полигона. |
template
<typename T, typename iterator>
void set_holes(T& polygon, iterator b, iterator e) |
Ожидает модель полигона_45_with_holes. Устанавливает многоугольные отверстия в диапазоне данных отверстия [b,e] |
template
<typename T>
unsigned int size(const T& polygon) |
Возвращает количество краев во внешней оболочке полигона_45_с_дырками. Не включает размеры отверстий. |
template
<typename T1, typename T2>
T1& assign(T1& left, const T2& right) |
Копии данных с правого объекта, который моделирует многоугольник_45_with_holes или одно из его уточнений в левый объект, который моделирует Полигон 45 с дырками. |
template
<typename T, typename point_type>
bool contains(const T&, const point_type& point,
bool consider_touch=true) |
Учитывая объект, который моделирует полигон_45_с_дырками, и объект, который моделирует точку, возвращается истинно, если оболочка полигона содержит точку, а одно из ее отверстий не содержит точку. Если флаг consider_touch является истинным, он вернется истинным, если точка находится вдоль границы полигона или одного из его отверстий. |
// get the center
coordinate
template <typename T, typename point_type>
void center(point_type& p, const T& polygon) |
Устанавливает объект, который модели указывают на центральную точку ограничивающего ящика объекта, который моделирует полигон_45_с_дырками. |
template
<typename T, typename rectangle_type>
bool extents(rectangle_type& bbox, const T& polygon) |
Устанавливает объект, который модели прямоугольник к ограничивающему ящику объекта, который моделирует многоугольник_45_с_дырками и возвращается истинным. Возвращается ложным и оставляет коробку неизменной, если полигон пуст. |
template
<typename T>
manhattan_area_type area(const T& polygon) |
Возвращает область объекта, моделирующего полигон_45_с_дырками, включая вычитание области его отверстий из области внешнего полигона оболочки. |
template
<typename T>
direction_1d winding(const T& polygon) |
Возвращает направление обмотки объекта, моделирующего многоугольник_45_с_дырками, LOW == CLOCKWISE, HIGH = COUNTERCLOCKWISE |
template
<typename T>
coordinate_difference perimeter(const T& polygon) |
Возвращает длину периметра объекта, который моделирует полигон_45, включая периметры отверстий. |
template
<typename T, typename transform_type>
T& transform(T& polygon, const transform_type&) |
Применяет преобразование() на вершинах многоугольника и устанавливает многоугольник на описанный в результате преобразования его вершин. Также применяется преобразование() на отверстиях полигона. |
template
<typename T>
T& scale_up(T& polygon, unsigned_area_type factor) |
Масштабирует внешнюю оболочку и отверстия объекта, который моделирует полигон_45 по неподписанному фактору. |
template
<typename T>
T& scale_down(T& polygon, unsigned_area_type factor) |
Масштабирует внешнюю оболочку и отверстия объекта, который моделирует полигон_45 по неподписанному фактору. |
template
<typename T, scaling_type>
T& scale(T& rectangle, double scaling) |
Масштабирует внешнюю оболочку и отверстия объекта, который моделирует полигон_45 по коэффициенту плавающей точки. |
template
<typename T>
T& move(T& polygon, orientation_2d,
coordinate_difference
displacement) |
Добавляет значение смещения для координаты, обозначенной ориентацией_2d вершин объекта, моделирующего полигон_45. |
template
<typename polygon_type, typename point_type>
polygon_type& convolve(polygon_type& polygon,
const point_type& point) |
Сочетает значения координат точки с внешней оболочкой и отверстиями объекта, моделирующего полигон_45_с_дырками. |
Polygon 45 With Holes Data Библиотека предоставляет модель полигона 45 с концепцией отверстий, объявленнойшаблономpolygon_45_with_holes_data, где T — тип координат. Этот тип данных используется внутри, когда требуется 45-градусный полигон с отверстиями и доступен пользователю библиотеки, который находит удобным использовать тип данных библиотечного полигона вместо предоставления своих собственных. Тип данных реализован для удобства использования с библиотечными чертами. Members
geometry_type |
polygon_45_with_holes_concept |
coordinate_type |
Т |
iterator_type |
Итератор над вершинами point_dataвершины полигона |
iterator_holes_type |
Итератор над дырочными многоугольниками типа polygon_45_data. |
polygon_45_with_holes_data() |
По умолчанию построен полигон. |
polygon_45_with_holes_data(const
polygon_45_with_holes_data& that) |
Копирование конструкции |
polygon_45_with_holes_data&
operator=(const polygon_45_with_holes_data& that) |
Оператор назначения. |
template
<typename T2> polygon_45_with_holes_data&
operator=(const T2& that) const |
Назначают из объекта, представляющего собой модель полигона 45 с отверстиями. |
iterator_type begin()
const |
Получите начальный итератор над вершинами многоугольника. |
iterator_type end()
const |
Получите конечный итератор поверх вершин полигона. |
iterator_hole_type
begin_holes() const |
Получите начальный компактный итератор по неизбыточным координатам полигона. |
iterator_hole_type
end_holes() const |
Получите концевой компактный итератор по неизбыточным координатам полигона. |
std::size_t size()
const |
Получить количество элементов в последовательности, хранящейся на полигоне, обычно равное числу краев полигона. |
std::size_t size_holes()
const |
Получить количество отверстий в полигоне |
template
<typename iT>
void set(iT begin_points, iT end_points) |
Устанавливает полигон в диапазон итераторов точек. Не проводится проверка, чтобы убедиться, что точки описывают 45-градусный показатель. |
template
<typename iT>
void set_holes(iT begin_holes, iT end_choless) |
Устанавливает полигоновые отверстия в диапазоне итераторов дырочных полигонов. Эти многоугольники во входном диапазоне могут представлять собой либо полигон_45_data, либо полигон_45_with_holes_data, либо любой тип, который обеспечивает функции начального и конечного членов для итерации поверх point_data. |
|