TFACE: различия между версиями
Строка 1: | Строка 1: | ||
{{NavBar|{{ | {{DISPLAYTITLE:__TFACE}} | ||
{{ | {{NavBar|{{Системная иерархия:__TFACE}}}} | ||
{{__TFACE brief}} | |||
<syntaxhighlight lang="cpp"> | <syntaxhighlight lang="cpp"> | ||
template <class unit_t, class alloc_t = std::allocator<unit_t>> | 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>>; | class __TFACE: public ::Chusov::Math::Matrix<unit_t, alloc_t, __TFACE<unit_t, alloc_t>>; | ||
</syntaxhighlight> | |||
===Параметры шаблона=== | |||
{{class template paramlist begin}} | |||
{{class template paramlist add|unit_t|Тип элемента матрицы полигона.}} | |||
{{class template paramlist add|alloc_t|Тип менеджера памяти элементов матрицы полигона. По умолчанию - <tt>[http://en.cppreference.com/w/cpp/memory/allocator std::allocator].</tt>}} | |||
{{class template paramlist end}} | |||
===Специализации шаблона=== | |||
</ | {{class template specialization list begin}} | ||
{{class template specialization list add|__FACE<double>|<tt>FACE3DEXT</tt> - тип для выражения внешних единиц измерения длины.}} | |||
{{class template specialization list add|__FACE<std::uint32_t>|<tt>FACE3DINT</tt> - тип для выражения внутрисистемных единиц измерения длины. В настоящее время не используется.}} | |||
{{class template specialization list end}} | |||
===Типы=== | ===Типы=== | ||
Строка 19: | Строка 30: | ||
===Методы=== | ===Методы=== | ||
{{function_list_begin}} | {{function_list_begin}} | ||
{{function_list_add| | {{function_list_add|__TFACE|reference_name=__TFACE::__TFACE|description={{__TFACE::__TFACE brief}}}} | ||
{{function_list_add|Marshal|reference_name= | {{function_list_add|Marshal|reference_name=__TFACE::Marshal|description={{__TFACE::Marshal brief}}}} | ||
{{function_list_add|MarshalSize|reference_name= | {{function_list_add|MarshalSize|reference_name=__TFACE::MarshalSize|description={{__TFACE::MarshalSize brief}}}} | ||
{{function_list_add|DomainData|reference_name= | {{function_list_add|DomainData|reference_name=__TFACE::DomainData|description={{__TFACE::DomainData brief}}}} | ||
{{function_list_add|DomainDataSize|reference_name= | {{function_list_add|DomainDataSize|reference_name=__TFACE::DomainDataSize|description={{__TFACE::DomainDataSize brief}}}} | ||
{{function_list_add|domain_data|reference_name= | {{function_list_add|domain_data|reference_name=__TFACE::domain_data|description={{__TFACE::domain_data brief}}}} | ||
{{function_list_end}} | {{function_list_end}} | ||
===Методы, наследуемые классом <tt>__TFACE< | ===Методы, наследуемые классом <tt>__TFACE<unit_t></tt> от класса [http://www.chusov.org/doxygen/class_chusov_1_1_math_1_1_matrix.html Chusov::Math::Matrix]=== | ||
{{function_list_begin}} | {{function_list_begin}} | ||
{{function_list_add|[http://www.chusov.org/doxygen/class_chusov_1_1_math_1_1_matrix_a60ef25605258b5c0232ea0dc0d55ed79.html#a60ef25605258b5c0232ea0dc0d55ed79 AugmentMe]|description=Добавление новых столбцов матрицы (т.е. вершин полигона).}} | {{function_list_add|[http://www.chusov.org/doxygen/class_chusov_1_1_math_1_1_matrix_a60ef25605258b5c0232ea0dc0d55ed79.html#a60ef25605258b5c0232ea0dc0d55ed79 AugmentMe]|description=Добавление новых столбцов матрицы (т.е. вершин полигона).}} | ||
Строка 51: | Строка 62: | ||
{{function_list_add|[http://www.chusov.org/doxygen/class_chusov_1_1_math_1_1_matrix.html#a68c599ddcbfddc65170de524ac165e44 rend]|description=Возвращает реверсный итератор произвольного доступа, связанный с псевдостолбцом, находящимся перед первым столбцом матрицы.}} | {{function_list_add|[http://www.chusov.org/doxygen/class_chusov_1_1_math_1_1_matrix.html#a68c599ddcbfddc65170de524ac165e44 rend]|description=Возвращает реверсный итератор произвольного доступа, связанный с псевдостолбцом, находящимся перед первым столбцом матрицы.}} | ||
{{function_list_add|[http://www.chusov.org/doxygen/class_chusov_1_1_math_1_1_matrix.html#a0ec903d2e9ea165b0460f1f6d40da203 crend]|description=Возвращает реверсный итератор произвольного доступа, связанный с псевдостолбцом, находящимся перед первым столбцом матрицы.}} | {{function_list_add|[http://www.chusov.org/doxygen/class_chusov_1_1_math_1_1_matrix.html#a0ec903d2e9ea165b0460f1f6d40da203 crend]|description=Возвращает реверсный итератор произвольного доступа, связанный с псевдостолбцом, находящимся перед первым столбцом матрицы.}} | ||
{{function_list end}} | |||
===Операторы, определенные над <tt>__TFACE<unit_t></tt>, если <tt>unit_t</tt> реализует [[wikipedia:Rng (algebra)|псевдокольцо]]. === | |||
{{function_list_begin}} | |||
{{function_list_add|[http://www.chusov.org/doxygen/class_chusov_1_1_math_1_1_matrix_a7d7f0f4f4f7b040abab82e882e43acff.html#a7d7f0f4f4f7b040abab82e882e43acff operator*]|description=Умножение справа на матрицу.}} | |||
{{function_list_add|[http://www.chusov.org/doxygen/class_chusov_1_1_math_1_1_matrix_a47197fc187f2d583463c955a13dcb506.html#a47197fc187f2d583463c955a13dcb506 operator*{{=}}]|description=Умножение справа на месте на матрицу.}} | |||
{{function_list_add|[http://www.chusov.org/doxygen/class_chusov_1_1_math_1_1_matrix_ad4225d3aec09b23ac28b3124d93995df.html#ad4225d3aec09b23ac28b3124d93995df operator*]|description=Умножение справа на число.}} | |||
{{function_list_add|[http://www.chusov.org/doxygen/class_chusov_1_1_math_1_1_matrix_a271d55359249fc2b208cf08dbaf8c222.html#a271d55359249fc2b208cf08dbaf8c222 operator*{{=}}]|description=Умножение справа на месте на число.}} | |||
{{function_list_add|[http://www.chusov.org/doxygen/class_chusov_1_1_math_1_1_matrix_a2cc2ddd7b844d427940fb176a7dbf55c.html#a2cc2ddd7b844d427940fb176a7dbf55c operator+]|description=Сложение.}} | |||
{{function_list_add|[http://www.chusov.org/doxygen/class_chusov_1_1_math_1_1_matrix_a4a9c3d02abc3a67f5a3942caf5608c6d.html#a4a9c3d02abc3a67f5a3942caf5608c6d operator+{{=}}]|description=Сложение на месте.}} | |||
{{function_list_add|[http://www.chusov.org/doxygen/class_chusov_1_1_math_1_1_matrix_a3d456a952edcc6a4aa1dea1a12a7a503.html#a3d456a952edcc6a4aa1dea1a12a7a503 operator-]|description=Вычитание.}} | |||
{{function_list_add|[http://www.chusov.org/doxygen/class_chusov_1_1_math_1_1_matrix_a02495a3d09e1a83edd3bf166e97b3160.html#a02495a3d09e1a83edd3bf166e97b3160 operator-{{=}}]|description=Вычитание на месте.}} | |||
{{function_list_end}} | |||
===Методы, наследуемые классом <tt>__TFACE<unit_t></tt> от класса [http://www.chusov.org/doxygen/class_chusov_1_1_math_1_1_matrix.html Chusov::Math::Matrix], если <tt>unit_t</tt> реализует [[wikipedia:ru:Коммутативное кольцо|коммутативное кольцо]].=== | |||
{{function_list begin}} | |||
{{function_list_add|[http://www.chusov.org/doxygen/class_chusov_1_1_math_1_1_matrix_a45fe8da35f329e76f12d7c74c9891064.html#a45fe8da35f329e76f12d7c74c9891064 Rank]|description=Возвращает ранг матрицы.}} | {{function_list_add|[http://www.chusov.org/doxygen/class_chusov_1_1_math_1_1_matrix_a45fe8da35f329e76f12d7c74c9891064.html#a45fe8da35f329e76f12d7c74c9891064 Rank]|description=Возвращает ранг матрицы.}} | ||
{{function_list_add|[http://www.chusov.org/doxygen/class_chusov_1_1_math_1_1_matrix_a4fca1677dc71ae3219b08b4b2506fd57.html#a4fca1677dc71ae3219b08b4b2506fd57 Det]|description=Возвращает детерминант квадратной матрицы.}} | {{function_list_add|[http://www.chusov.org/doxygen/class_chusov_1_1_math_1_1_matrix_a4fca1677dc71ae3219b08b4b2506fd57.html#a4fca1677dc71ae3219b08b4b2506fd57 Det]|description=Возвращает детерминант квадратной матрицы.}} | ||
Строка 59: | Строка 86: | ||
{{function_list_add|[http://www.chusov.org/doxygen/class_chusov_1_1_math_1_1_matrix_a6a7f3d531ed648725c4354c31093e5dd.html#a6a7f3d531ed648725c4354c31093e5dd Adjugate]|description=Возвращает присоединенную матрицу.}} | {{function_list_add|[http://www.chusov.org/doxygen/class_chusov_1_1_math_1_1_matrix_a6a7f3d531ed648725c4354c31093e5dd.html#a6a7f3d531ed648725c4354c31093e5dd Adjugate]|description=Возвращает присоединенную матрицу.}} | ||
{{function_list_add|[http://www.chusov.org/doxygen/class_chusov_1_1_math_1_1_matrix_a45164a7bbd8a69f81a3c416827ea1390.html#a45164a7bbd8a69f81a3c416827ea1390 AdjugateMe]|description=Замещает матрицу на присоединенную.}} | {{function_list_add|[http://www.chusov.org/doxygen/class_chusov_1_1_math_1_1_matrix_a45164a7bbd8a69f81a3c416827ea1390.html#a45164a7bbd8a69f81a3c416827ea1390 AdjugateMe]|description=Замещает матрицу на присоединенную.}} | ||
{{function_list_end}} | |||
===Методы, наследуемые классом <tt>__TFACE<unit_t></tt> от класса [http://www.chusov.org/doxygen/class_chusov_1_1_math_1_1_matrix.html Chusov::Math::Matrix], если <tt>unit_t</tt> реализует [[wikipedia:ru:Тело (алгебра)|кольцо с делением]].=== | |||
{{function_list begin}} | |||
{{function_list_add|[http://www.chusov.org/doxygen/class_chusov_1_1_math_1_1_matrix_ac013bc45a6b369a1f892009eb0a0162e.html#ac013bc45a6b369a1f892009eb0a0162e ReducedRowEchelonForm]|description=Возвращает матрицу в каноническом ступенчатом виде по строкам.}} | {{function_list_add|[http://www.chusov.org/doxygen/class_chusov_1_1_math_1_1_matrix_ac013bc45a6b369a1f892009eb0a0162e.html#ac013bc45a6b369a1f892009eb0a0162e ReducedRowEchelonForm]|description=Возвращает матрицу в каноническом ступенчатом виде по строкам.}} | ||
{{function_list_add|[http://www.chusov.org/doxygen/class_chusov_1_1_math_1_1_matrix_aad10f03956a111bb41c5e5abfb96ed58.html#aad10f03956a111bb41c5e5abfb96ed58 ReducedRowEchelonFormMe]|description=Приводит матрицу к каноническому ступенчатому виду по строкам.}} | {{function_list_add|[http://www.chusov.org/doxygen/class_chusov_1_1_math_1_1_matrix_aad10f03956a111bb41c5e5abfb96ed58.html#aad10f03956a111bb41c5e5abfb96ed58 ReducedRowEchelonFormMe]|description=Приводит матрицу к каноническому ступенчатому виду по строкам.}} | ||
{{function_list_add|[http://www.chusov.org/doxygen/class_chusov_1_1_math_1_1_matrix_afb03309b05e676d473a0a5659f4c73f6.html#afb03309b05e676d473a0a5659f4c73f6 SolveRightSLE]|description=Решает СЛАУ.}} | {{function_list_add|[http://www.chusov.org/doxygen/class_chusov_1_1_math_1_1_matrix_afb03309b05e676d473a0a5659f4c73f6.html#afb03309b05e676d473a0a5659f4c73f6 SolveRightSLE]|description=Решает СЛАУ.}} | ||
{{function_list_end}} | |||
===Методы, наследуемые классом <tt>__TFACE<unit_t></tt> от класса [http://www.chusov.org/doxygen/class_chusov_1_1_math_1_1_matrix.html Chusov::Math::Matrix], если <tt>unit_t</tt> реализует [[wikipedia:ru:Поле (алгебра)|поле]].=== | |||
{{function_list begin}} | |||
{{function_list_add|[http://www.chusov.org/doxygen/class_chusov_1_1_math_1_1_matrix_a3b90b2588559106bac8033e2eaf73d57.html#a3b90b2588559106bac8033e2eaf73d57 MultiplicativeInverse]|description=Возвращает мультипликативную инверсию матрицы.}} | {{function_list_add|[http://www.chusov.org/doxygen/class_chusov_1_1_math_1_1_matrix_a3b90b2588559106bac8033e2eaf73d57.html#a3b90b2588559106bac8033e2eaf73d57 MultiplicativeInverse]|description=Возвращает мультипликативную инверсию матрицы.}} | ||
{{function_list_add|[http://www.chusov.org/doxygen/class_chusov_1_1_math_1_1_matrix_a7ff168fc0220be7bb5c6bc8111f24ae5.html#a7ff168fc0220be7bb5c6bc8111f24ae5 MultiplicativeInverseMe]|description=Выполняет мультипликативную инверсию матрицы на месте.}} | {{function_list_add|[http://www.chusov.org/doxygen/class_chusov_1_1_math_1_1_matrix_a7ff168fc0220be7bb5c6bc8111f24ae5.html#a7ff168fc0220be7bb5c6bc8111f24ae5 MultiplicativeInverseMe]|description=Выполняет мультипликативную инверсию матрицы на месте.}} | ||
{{function_list_add|[http://www.chusov.org/doxygen/class_chusov_1_1_math_1_1_matrix.html#afd0c28e9aff27b0e1ddf5e025071fd4b Inverse]|description=Возвращает мультипликативную инверсию матрицы.}} | {{function_list_add|[http://www.chusov.org/doxygen/class_chusov_1_1_math_1_1_matrix.html#afd0c28e9aff27b0e1ddf5e025071fd4b Inverse]|description=Возвращает мультипликативную инверсию матрицы.}} | ||
{{function_list_add|[http://www.chusov.org/doxygen/class_chusov_1_1_math_1_1_matrix.html#a98f642aff722d319ada89a21499cec2e InverseMe]|description=Выполняет мультипликативную инверсию матрицы на месте.}} | {{function_list_add|[http://www.chusov.org/doxygen/class_chusov_1_1_math_1_1_matrix.html#a98f642aff722d319ada89a21499cec2e InverseMe]|description=Выполняет мультипликативную инверсию матрицы на месте.}} | ||
{{function_list_end}} | {{function_list_end}} | ||
Версия 07:25, 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. |
Специализации шаблона
__FACE<double>
|
FACE3DEXT - тип для выражения внешних единиц измерения длины. |
__FACE<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.