TFACE

Материал из CAMaaS preliminary wiki
Перейти к навигации Перейти к поиску
Шаблон:FACE3DEXT hierarchy

Класс полигональной поверхности, композиция которых составляет элемент 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>>;

typedef __TFACE<double> FACE3DEXT;

Типы

ТипОписание
allocator_typestd::allocator - тип менеджера памяти, используемого для хранения элементов матрицы.
domain_allocator_typestd::allocator - тип менеджера памяти, используемого для хранения данных предметной области, ассоциированных с полигоном.
value_typedouble - тип элемента матрицы.
size_typeБеззнаковый целочисленный тип для описания размеров.

Методы

конструкторы Шаблон:FACE3DEXT ctors brief
Marshal Шаблон:FACE3DEXT Marshal brief
MarshalSize Шаблон:FACE3DEXT MarshalSize brief
DomainData Шаблон:FACE3DEXT DomainData brief
DomainDataSize Шаблон:FACE3DEXT DomainDataSize brief
domain_data Шаблон:FACE3DEXT domain data brief

Методы, наследуемые классом __TFACE<double> от класса 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 Возвращает реверсный итератор произвольного доступа, связанный с псевдостолбцом, находящимся перед первым столбцом матрицы.
Rank Возвращает ранг матрицы.
Det Возвращает детерминант квадратной матрицы.
Minor Возвращает минор для заданного элемента квадратной матрицы.
Cofactor Возвращает кофактор заданного элемента квадратной матрицы
Cofactor Возвращает матрицу, составленную из кофакторов элементов текущей матрицы.
CofactorMe Замещает все элементы матрицы на их кофакторы.
Adjugate Возвращает присоединенную матрицу.
AdjugateMe Замещает матрицу на присоединенную.
ReducedRowEchelonForm Возвращает матрицу в каноническом ступенчатом виде по строкам.
ReducedRowEchelonFormMe Приводит матрицу к каноническому ступенчатому виду по строкам.
SolveRightSLE Решает СЛАУ.
MultiplicativeInverse Возвращает мультипликативную инверсию матрицы.
MultiplicativeInverseMe Выполняет мультипликативную инверсию матрицы на месте.
Inverse Возвращает мультипликативную инверсию матрицы.
InverseMe Выполняет мультипликативную инверсию матрицы на месте.

Операторы, определенные над __TFACE<double>

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

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

Полигон

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

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

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

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