TFACE: различия между версиями
| Строка 16: | Строка 16: | ||
===Специализации шаблона=== | ===Специализации шаблона=== | ||
{{class template specialization list begin}} | {{class template specialization list begin}} | ||
{{class template specialization list add| | {{class template specialization list add|__TFACE<double>|<tt>FACE3DEXT</tt> - тип для выражения внешних единиц измерения длины.}} | ||
{{class template specialization list add| | {{class template specialization list add|__TFACE<std::uint32_t>|<tt>FACE3DINT</tt> - тип для выражения внутрисистемных единиц измерения длины. В настоящее время не используется.}} | ||
{{class template specialization list end}} | {{class template specialization list end}} | ||
Версия 16:19, 11 января 2016
Класс полигональной поверхности, композиция которых составляет элемент 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.