Класс полигональной поверхности, композиция которых составляет элемент IPolyObject.
template <class unit_t, class alloc_t = std::allocator<unit_t>>
class __TFACE: public ::Chusov::Math::Matrix<unit_t, alloc_t, __TFACE<unit_t, alloc_t>>;
Параметры шаблона
| unit_t | Тип элемента матрицы полигона. |
| alloc_t | Тип менеджера памяти элементов матрицы полигона. По умолчанию - std::allocator. |
Специализации шаблона
__TFACE<double>
|
FACE3DEXT - тип для выражения внешних единиц измерения длины.
|
__TFACE<std::uint32_t>
|
FACE3DINT - тип для выражения внутрисистемных единиц измерения длины. В настоящее время не используется.
|
Типы
| Тип | Описание |
| allocator_type | std::allocator - тип менеджера памяти, используемого для хранения элементов матрицы. |
| domain_allocator_type | std::allocator - тип менеджера памяти, используемого для хранения данных предметной области, ассоциированных с полигоном. |
| value_type | double - тип элемента матрицы. |
| size_type | Беззнаковый целочисленный тип для описания размеров. |
Методы
Методы, наследуемые классом __TFACE<unit_t> от класса Chusov::Math::Matrix
| AugmentMe |
Добавление новых столбцов матрицы (т.е. вершин полигона).
|
| RemoveColumnsMe |
Удаление заданных столбцов матрицы (т.е. вершин полигона).
|
| RemoveColumns |
Возвращает копию текущей матрицы без заданных столбцов (т.е. вершин полигона).
|
| get_allocator |
Возвращает копию менеджера памяти, используемого для хранения элементов матрицы.
|
| Rows |
Возвращает количество строк матрицы (т.е. 3 для действительного полигона).
|
| Columns |
Возвращает количество столбцов матрицы (количество верщин составляющих полигон).
|
| operator[] |
Доступ к заданному столбцу (вершине полигона) по индексу.
|
| at |
Доступ к заданному столбцу (вершине полигона) по индексу.
|
| SwapRows |
Замена строк друг на друга.
|
| SwapColumns |
Замена столбцов друг на друга.
|
| Transpose |
Транспонирование.
|
| TransposeMe |
Транспонирование на месте.
|
| empty |
Проверка на пустоту.
|
| square |
Проверка на квадратность.
|
| begin |
Возвращает итератор произвольного доступа, связанный с первым столбцом.
|
| cbegin |
Возвращает итератор произвольного доступа, связанный с первым столбцом.
|
| end |
Возвращает итератор произвольного доступа, связанный с псевдостолбцом, следующим за последним столбцом матрицы.
|
| cend |
Возвращает итератор произвольного доступа, связанный с псевдостолбцом, следующим за последним столбцом матрицы.
|
| rbegin |
Возвращает реверсный итератор произвольного доступа, связанный с последним столбцом матрицы.
|
| crbegin |
Возвращает реверсный итератор произвольного доступа, связанный с последним столбцом матрицы.
|
| rend |
Возвращает реверсный итератор произвольного доступа, связанный с псевдостолбцом, находящимся перед первым столбцом матрицы.
|
| crend |
Возвращает реверсный итератор произвольного доступа, связанный с псевдостолбцом, находящимся перед первым столбцом матрицы.
|
Операторы, определенные над __TFACE<unit_t>, если unit_t реализует псевдокольцо.
| Rank |
Возвращает ранг матрицы.
|
| Det |
Возвращает детерминант квадратной матрицы.
|
| Minor |
Возвращает минор для заданного элемента квадратной матрицы.
|
| Cofactor |
Возвращает кофактор заданного элемента квадратной матрицы
|
| Cofactor |
Возвращает матрицу, составленную из кофакторов элементов текущей матрицы.
|
| CofactorMe |
Замещает все элементы матрицы на их кофакторы.
|
| Adjugate |
Возвращает присоединенную матрицу.
|
| AdjugateMe |
Замещает матрицу на присоединенную.
|
Методы, наследуемые классом __TFACE<unit_t> от класса Chusov::Math::Matrix, если unit_t реализует кольцо с делением.
Методы, наследуемые классом __TFACE<unit_t> от класса Chusov::Math::Matrix, если unit_t реализует поле.
Класс реализует полигон, композиция которых составляет полигональный элемент с интерфейсом IPolyObject. Полигон представлен матрицей Chusov::Math::Matrix
вершин, где каждая вершина
задается столбцом
,
.
Внешней стороной полигона является та, с которой обход вершин от
до
осуществляется по часовой стрелке.
Класс удовлетворяет требованиям DefaultConstructible, CopyConstructible, CopyAssignable, EqualityComparable.
Полигон должен удовлетворять требованию
и состоять из, как минимум, из трех вершин. Поэтому неинициализированный (например, созданный по умолчанию) полигон не может использоваться в геометрической модели. Кроме этого, пустой полигон, для которого метод Chusov::Matrix::empty возвращает true, не может быть использован при выполнении большинства операций, определенных над полигоном или матрицей.
Полигон принимает в качестве параметра шаблона кастомизируемый менеджер памяти для хранения элементов. Менеджер должен удовлетворять требованиям Allocator. Менеджер по умолчанию - std::allocator.