Архитектурная акустика/Реализация/CFace::CFace: различия между версиями
Строка 1: | Строка 1: | ||
{{function begin|CFace() {{=}} default; //1 | {{function begin|CFace() {{=}} default; //1 | ||
template <class alloc_t, class derived_t, class policy_t> | |||
CFace(const Chusov::Math::Matrix<CAMaaS::extunit_t, alloc_t, derived_t, policy_t>& r, const void* pDomainData, CAMaaS::size_type cbDomainData); //2 | |||
template <class alloc_t, class policy_t> | template <class alloc_t, class derived_t, class policy_t> | ||
CFace(Chusov::Math::Matrix<CAMaaS::extunit_t, alloc_t, derived_t, policy_t>&& r, const void* pDomainData, CAMaaS::size_type cbDomainData); //3 | |||
template <class policy_t> | |||
|{{Архитектурная акустика/Реализация/CFace::CFace brief}} | |{{Архитектурная акустика/Реализация/CFace::CFace brief}} | ||
# Конструктор по умолчанию, создающий пустую поверхность без вершин, которую до использования необходимо проинициализировать с помощью | # Конструктор по умолчанию, создающий пустую поверхность без вершин, которую до использования необходимо проинициализировать с помощью {{arch_ac_ref|{{wikify_cpp_op|CFace::operator{{=}}}}|оператора присваивания}}. | ||
# Конструктор | # Конструктор, создающий экземпляр {{arch_ac_ref|CFace}} на основе заданной копируемой матрицы вершин и данных экземпляра "arch_ac" предметной области. | ||
# Конструктор, создающий экземпляр {{arch_ac_ref|CFace}} на основе заданной вмещаемой матрицы вершин и данных экземпляра "arch_ac" предметной области. | |||
# Конструктор, | |||
Перегрузки 2 и 3 используются классом {{arch_ac_ref|CPoly}} для инициализации отражающих поверхностей на основе предметно-независимого описания модели помещения. См. [[IFace]]. | |||
}} | }} | ||
{{function template paramlist begin}} | |||
{{function template paramlist add|alloc_t|Менеджер памяти {{cpp_concept|Allocator}}, используемый инициализирующей матрицей [https://www.chusov.org/doxygen/class_chusov_1_1_math_1_1_matrix.html Chusov::Math::Matrix].}} | |||
{{function template paramlist add|derived_t|Конечный наследник класса [https://www.chusov.org/doxygen/class_chusov_1_1_math_1_1_matrix.html Chusov::Math::Matrix].}} | |||
{{function template paramlist add|policy_t|Политика параллельного выполнения методов класса [https://www.chusov.org/doxygen/class_chusov_1_1_math_1_1_matrix.html Chusov::Math::Matrix].}} | |||
{{function template paramlist end}} | |||
{{function_paramlist begin}} | {{function_paramlist begin}} | ||
{{function_paramlist add| | {{function_paramlist add|r|Матрица вершин, задающих границу отражающей поверхности. Сторона относительно поверхности, с которой вершины обходятся по часовой стрелке считается лицевой.}} | ||
{{function_paramlist add|pDomainData|Байтовый вектор параметров предметной области, которые интерпретируются конструкторами 2 и 3. Описание формата приведено ниже.|paramdir=[in]}} | |||
{{function_paramlist add|cbDomainData|Размер данных в векторе <tt>pDomainData</tt> в байтах.}} | |||
{{function_paramlist end}} | {{function_paramlist end}} | ||
{{function end}} | {{function end}} | ||
Перегрузки | Шаблонные параметры конструкторов не задаются явно и вычислются дедукцией на основе типа фактического аргумента для <tt>r</tt>. | ||
Перегрузки 2 и 3 конструкторов создают поверхность на основе ее предметно-независимого описания, полученного при обработке запроса [[DomainStartSimulation]]. При этом данные предметной области, задаваемые параметрами <tt>pDomainData</tt> и <tt>cbDomainData</tt>, имеют следующий формат. | |||
'''Предварительная версия 1.''' | '''Предварительная версия 1.''' |
Версия 00:03, 6 января 2018
CFace() = default; //1
template <class alloc_t, class derived_t, class policy_t>
CFace(const Chusov::Math::Matrix<CAMaaS::extunit_t, alloc_t, derived_t, policy_t>& r, const void* pDomainData, CAMaaS::size_type cbDomainData); //2
template <class alloc_t, class derived_t, class policy_t>
CFace(Chusov::Math::Matrix<CAMaaS::extunit_t, alloc_t, derived_t, policy_t>&& r, const void* pDomainData, CAMaaS::size_type cbDomainData); //3
Создают экземпляры класса.
- Конструктор по умолчанию, создающий пустую поверхность без вершин, которую до использования необходимо проинициализировать с помощью оператора присваивания.
- Конструктор, создающий экземпляр CFace на основе заданной копируемой матрицы вершин и данных экземпляра "arch_ac" предметной области.
- Конструктор, создающий экземпляр CFace на основе заданной вмещаемой матрицы вершин и данных экземпляра "arch_ac" предметной области.
Перегрузки 2 и 3 используются классом CPoly для инициализации отражающих поверхностей на основе предметно-независимого описания модели помещения. См. IFace.
- Параметры шаблона
alloc_t Менеджер памяти Allocator, используемый инициализирующей матрицей Chusov::Math::Matrix. derived_t Конечный наследник класса Chusov::Math::Matrix. policy_t Политика параллельного выполнения методов класса Chusov::Math::Matrix. - Параметры
r Матрица вершин, задающих границу отражающей поверхности. Сторона относительно поверхности, с которой вершины обходятся по часовой стрелке считается лицевой. [in] pDomainData Байтовый вектор параметров предметной области, которые интерпретируются конструкторами 2 и 3. Описание формата приведено ниже. cbDomainData Размер данных в векторе pDomainData в байтах.
Шаблонные параметры конструкторов не задаются явно и вычислются дедукцией на основе типа фактического аргумента для r.
Перегрузки 2 и 3 конструкторов создают поверхность на основе ее предметно-независимого описания, полученного при обработке запроса DomainStartSimulation. При этом данные предметной области, задаваемые параметрами pDomainData и cbDomainData, имеют следующий формат.
Предварительная версия 1.
Тип запакованных данных: face_domain_data_t.
Указатель на число с плавающей точкой двойной точности, задающее коэффициент отражения поверхности, т.е.
, где - коэффициент поглощения поверхности. В предварительной версии коэффициент является независимым от частоты.Предварительная версия 2 (текущая, ветка репозитория: chusov-laptop-pc).
Тип запакованных данных: face_domain_data_2_t.
Поле | Идентификатор версии | Ширина полосы частот | Коэффициенты поглощения из 6 октавных частот |
---|---|---|---|
Размер, байт | 4 | 4 |
- Идентификатор версии - целочисленное четырехбайтовое значение domain_data_id_2 = 0x80000001. Значение обеспечивает обратную совместимость с первой версией, т.к. при интерпретации его как числа IEEE754 получается отрицательное значение, что невозможно для коэффициентов поглощения.
- Ширина полосы частот задается четырехбайтовым целым, которое должно быть равно шести.
- Коэффициенты поглощения представляют собой последовательность шести чисел с плавающей точкой двойной точности коэффициентов поглощения по частотам. Числа задаются без какого-либо выравнивания - одно за другим.