Архитектурная акустика/Реализация/CFace::CFace

Материал из CAMaaS preliminary wiki
Перейти к навигации Перейти к поиску
CFace() = default; //1
CFace(const CFace& refFace); //2
CFace(CFace&& refFace); //3
template <class alloc_t, class policy_t>
   CFace(const CAMaaS::__TFACE<CAMaaS::extunit_t, alloc_t, policy_t>& refFace); //4
template <class policy_t>
   CFace(CAMaaS::__TFACE<CAMaaS::extunit_t, std::allocator<CAMaaS::extunit_t>, policy_t>&& refFace); //5

Создают экземпляры класса.

  1. Конструктор по умолчанию, создающий пустую поверхность без вершин, которую до использования необходимо проинициализировать с помощью оператора присваивания.
  2. Конструктор копирования.
  3. Конструктор перемещения.
  4. Конструктор, инициализирующий поверхность на основе ее описания __TFACE, поступившего со стороны подсистемы управления. При этом производится копирования данных Chusov::Math::Matrix.
  5. Аналогичный конструктор, создающий поверхность на основе объекта __TFACE, но с перемещением данных.
Параметры
refFaceИнициализирующая поверхность.

Перегрузки 4 и 5 конструктора создают поверхность на основе ее предметно-независимого описания при обработке запроса DomainStartSimulation. При этом данные предметной области, указатель на которые возвращается методом __TFACE::DomainData имеют следующий формат.

Предварительная версия 1.

Указатель на число с плавающей точкой двойной, задающее коэффициент отражения поверхности, т.е. , где - коэффициент поглощения поверхности. В предварительной версии коэффициент является независимым от частоты.

Предварительная версия 2 (текущая, ветка репозитория: chusov-laptop-pc).

Поле Идентификатор версии Ширина полосы частот Коэффициенты поглощения из 6 октавных частот
Размер, байт 4 4
  • Идентификатор версии - целочисленное четырехбайтовое значение 0x80000001. Значение обеспечивает обратную совместимость с первой версией, т.к. при интерпретации его как числа IEEE754 получается отрицательное значение, что невозможно для коэффициентов поглощения.
  • Ширина полосы частот задается четырехбайтовым целым, которое должно быть равно шести.
  • Коэффициенты поглощения представляют собой последовательность шести чисел с плавающей точкой двойной точности коэффициентов поглощения по частотам. Числа задаются без какого-либо выравнивания - одно за другим.