Polygon Sponsor |
Polygon With Holes Concept Полигон_с_дырами концепция тег многоугольник_с_дыр_концепт Чтобы зарегистрировать определенный тип пользователя как модель polygon_with_holes concept, специализируется на мета-функции геометрической концепции для этого типа. В приведенном ниже примере CPolygonWithHoles зарегистрирована как модель полигона_with_holes концепция. template <> struct geo_concept { typedef polygon_with_holes_concept type; }; Семантика многоугольника с отверстиями - это многоугольник, который может обеспечить итераторы над отверстиями, которые также являются полигоном. Мягкий многоугольник с отверстиями также должен быть в состоянии установить свою геометрию на основе диапазона интератора над многоугольными отверстиями. В библиотеке нет конвенции об извержении отверстий. Белоу показан полигон по умолчанию с признаками отверстий. Специализация этих признаков требуется для типов, которые не соответствуют по умолчанию. Обратите внимание, что эти черты используются всем полигоном с концепциями отверстий. template struct polygon_with_holes_traits { typedef name T::iterator_holes_type iterator_holes_type; typedef name T::hole_typehole_typehole_type; iterator_holes_type start_holes(const T& t) { return t.begin_holes(); } iterator_holes_type end_holes(const Tsphole & nbsp; возврат t.end_holes(); } bsp; nbsp Шаблон struct polygon_with_holes_mutable_traits { .. Объект, который является моделью Polygon_with_holes_concept, может рассматриваться как модель любого из его усовершенствований, если он определяется в беговой момент, чтобы соответствовать ограничению этих понятий. Эта концепция литья осуществляется через функцию view_as<>(). view_as (polygon_with_holes_object) view_as<polygon_90_concept>(polygon_with_holes_object) view_as<polygon_90_with_holes_concept>(polygon_with_holes_object) view_as<polygon_45_concept>(polygon_with_holes_object) view_as<polygon_45_with_holes_concept>(polygon_with_holes_object) view_as<polygon_concept>(polygon_with_holes_object)[ORIG_END] --> Значение возврата view_as<>() может быть передано в любой интерфейс, который ожидает объект концептуального типа, указанного в его параметре шаблона. Functions
template
<typename T>
point_iterator_type begin_points(const T& polygon) |
Expects a model of polygon_with_holes. Возвращает начальный итератор по диапазону точек, соответствующих вершинам полигона. |
template
<typename T>
point_iterator_type end_points(const T& polygon) |
Expects a model of polygon_with_holes. Возвращает конечный итератор по диапазону точек, соответствующих вершинам полигона. |
template
<typename T>
hole_iterator_type begin_holes(const T& polygon) |
Expects a model of polygon_with_holes. Возвращает начальный итератор по диапазону координат, соответствующих горизонтальным и вертикальным краям. |
template
<typename T>
hole_iterator_type end_holes(const T& polygon) |
Expects a model of polygon_with_holes. Возвращает конечный итератор по диапазону координат, соответствующих горизонтальным и вертикальным краям. |
template
<typename T, typename iterator>
void set_points(T& polygon, iterator b, iterator e) |
Expects a model of polygon_with_holes. Устанавливает многоугольник до диапазона точечных данных [b,e), который соответствует вершинам многоугольника. |
template
<typename T, typename iterator>
void set_holes(T& polygon, iterator b, iterator e) |
Expects a model of polygon_with_holes. Набор многоугольных отверстий для диапазона данных отверстия [b,e] |
template
<typename T>
unsigned int size(const T& polygon) |
Возвращение количества ребер во внешней оболочке многоугольника_с_дыр. Не включает в себя размеры отверстий. |
template
<typename T1, typename T2>
T1& assign(T1& left, const T2& right) |
Копирует данные с правого объекта, который моделирует полигон_с_луки или один из его уточнений на левый объект, который моделирует многоугольник_с_луки. |
template
<typename T, typename point_type>
bool contains(const T&, const point_type& point,
bool consider_touch=true) |
Учитывая объект, который модели многоугольник_с_дырами и объект, на который указывают модели, возвращается, если оболочка полигона содержит точку и одна из ее отверстий не содержит точки. Если флажок consider_touch является истинным, вернет, если точка лежит вдоль границы полигона или одного из его отверстий. |
// get the center
coordinate
template <typename T, typename point_type>
void center(point_type& p, const T& polygon) |
Наборы объектов, которые модели указывают на центральную точку ограничивающего бокса объекта, который моделирует многоугольник_с_луки. |
template
<typename T, typename rectangle_type>
bool extents(rectangle_type& bbox, const T& polygon) |
Набор объектов, которые модели запутываются к ограничительной коробке объекта, который моделирует многоугольник_с_дырами и возвращается истинным. Возвращает ложный и оставляет ббокс без изменений, если полигон пуст. |
template
<typename T>
manhattan_area_type area(const T& polygon) |
Возвращает область объекта, который моделирует многоугольник_с отверстиями, включая вычитание области его отверстий из области наружного полигона. |
template
<typename T>
direction_1d winding(const T& polygon) |
Description КЛОККВИЗА, HIGH = COUNTERCLOCKWISE. |
template
<typename T>
coordinate_difference perimeter(const T& polygon) |
Возвращает длину периметра объекта, который моделирует полигон, включая периметры отверстий. |
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) |
Масштабирует внешнюю оболочку и отверстия объекта, который моделирует многоугольник по неподписанному фактору. |
template
<typename T>
T& scale_down(T& polygon, unsigned_area_type factor) |
Масштабирует наружную оболочку и отверстия объекта, который моделирует полигон по неподписанным факторам. |
template
<typename T, scaling_type>
T& scale(T& rectangle, double scaling) |
Масштабирует внешнюю оболочку и отверстия объекта, который моделирует многоугольник по фактору плавающей точки. |
template
<typename T>
T& move(T& polygon, orientation_2d,
coordinate_difference
displacement) |
Добавляет значение смещения для координации, указанную ориентацией_2d вершин объекта, который моделирует полигон. |
template
<typename polygon_type, typename point_type>
polygon_type& convolve(polygon_type& polygon,
const point_type& point) |
Состоит из координирующих значений точки с внешней оболочкой и отверстиями объекта, который моделирует полигон_с_луками. |
Polygon With Holes Data Библиотека предоставляет модель полигона с концепцией отверстий, заявленной template polygon_with_holes_data где T - это тип координат. Этот тип данных используется внутри, когда необходим многоугольник с отверстиями и доступен для пользователя библиотеки, который считает удобным использовать тип данных многоугольника библиотеки вместо того, чтобы предоставлять свои собственные. Тип данных реализован, чтобы быть удобным в использовании с библиотечными чертами. Members
geometry_type |
polygon_with_holes_concept |
coordinate_type |
T |
iterator_type |
Итератор над вершинами point_data вершинами полигона |
iterator_holes_type |
Установщик над многоугольниками типа многоугольник_data. |
polygon_with_holes_data() |
Создание хранилища полигон. |
polygon_with_holes_data(const
polygon_with_holes_data& that) |
Конструкция |
polygon_with_holes_data&
operator=(const polygon_with_holes_data& that) |
Оператор назначения. |
template
<typename T2> polygon_with_holes_data&
operator=(const T2& that) const |
Назначить из объекта, который представляет собой модель полигона с отверстиями. |
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) |
Настраивает полигон на итераторный диапазон точек. |
template
<typename iT>
void set_holes(iT begin_holes, iT end_choless) |
Устанавливает многоугольные отверстия итератора полигона. Эти многоугольники в диапазоне ввода могут быть либо многоугольными_данными, либо многоугольными_с_дырями_данными, либо любым типом, который предоставляет начальные и конечные функции для итерации над point_data. |
|