__TFACE

Материал из CAMaaS preliminary wiki
(перенаправлено с «FACE3DEXT»)
Перейти к навигации Перейти к поиску
Компоненты на верхнем уровне \ Подсистема управления \ __TFACE

Класс полигональной поверхности, композиция которых составляет элемент 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 Конструкторы, создающие полигон.
Marshal Функция маршаллинга полигона.
MarshalSize Возвращает размер запакованного полигона.
DomainData Возвращает указатель на данные предметной области, ассоциированные с полигоном.
DomainDataSize Возвращает байтовый размер данных предметной области, ассоциированных с полигоном.
domain_data Возвращают данные предметной области в виде ссылки на контейнер последовательности байт.

Методы, наследуемые классом __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 реализует псевдокольцо.

operator* Умножение справа на матрицу.
operator*= Умножение справа на месте на матрицу.
operator* Умножение справа на число.
operator*= Умножение справа на месте на число.
operator+ Сложение.
operator+= Сложение на месте.
operator- Вычитание.
operator-= Вычитание на месте.

Методы, наследуемые классом __TFACE<unit_t> от класса Chusov::Math::Matrix, если unit_t реализует коммутативное кольцо.

Rank Возвращает ранг матрицы.
Det Возвращает детерминант квадратной матрицы.
Minor Возвращает минор для заданного элемента квадратной матрицы.
Cofactor Возвращает кофактор заданного элемента квадратной матрицы
Cofactor Возвращает матрицу, составленную из кофакторов элементов текущей матрицы.
CofactorMe Замещает все элементы матрицы на их кофакторы.
Adjugate Возвращает присоединенную матрицу.
AdjugateMe Замещает матрицу на присоединенную.

Методы, наследуемые классом __TFACE<unit_t> от класса Chusov::Math::Matrix, если unit_t реализует кольцо с делением.

ReducedRowEchelonForm Возвращает матрицу в каноническом ступенчатом виде по строкам.
ReducedRowEchelonFormMe Приводит матрицу к каноническому ступенчатому виду по строкам.
SolveRightSLE Решает СЛАУ.

Методы, наследуемые классом __TFACE<unit_t> от класса Chusov::Math::Matrix, если unit_t реализует поле.

MultiplicativeInverse Возвращает мультипликативную инверсию матрицы.
MultiplicativeInverseMe Выполняет мультипликативную инверсию матрицы на месте.
Inverse Возвращает мультипликативную инверсию матрицы.
InverseMe Выполняет мультипликативную инверсию матрицы на месте.

Класс реализует полигон, композиция которых составляет полигональный элемент с интерфейсом IPolyObject. Полигон представлен матрицей Chusov::Math::Matrix вершин, где каждая вершина задается столбцом , .

Полигон

Внешней стороной полигона является та, с которой обход вершин от до осуществляется по часовой стрелке.

Класс удовлетворяет требованиям DefaultConstructible, CopyConstructible, CopyAssignable, EqualityComparable.

Полигон должен удовлетворять требованию и состоять из, как минимум, из трех вершин. Поэтому неинициализированный (например, созданный по умолчанию) полигон не может использоваться в геометрической модели. Кроме этого, пустой полигон, для которого метод Chusov::Matrix::empty возвращает true, не может быть использован при выполнении большинства операций, определенных над полигоном или матрицей.

Полигон принимает в качестве параметра шаблона кастомизируемый менеджер памяти для хранения элементов. Менеджер должен удовлетворять требованиям Allocator. Менеджер по умолчанию - std::allocator.