.. role:: blue :class: blue Инерционные характеристики тела =============================== .. _Inertial_Body_Characteristics: .. версия ядра: Функция .. code-block:: cpp void MassInertiaProperties( const MbSolid * solid, double density, double deviateAngle, InertiaProperties & properties, IfProgressIndicator * progress = 0 ); вычисляет площадь поверхности, объем, массу, центр масс и моменты инерции тела. Входными параметрами функции являются: - **solid** – тело, - **density** – плотность или удельная масса на единицу площади, - **deviateAngle** – параметр управления точностью расчёта. Выходными параметрами функции являются: - **properties** – рассчитанные инерционные характеристики, - progress – индикатор выполнения расчета. Функция не возвращает значения. Функция объявлена в файле *mip_solid_mass_inertia.h*. Для замкнутого тела **solid** параметр *density* определяет плотность тела. Для незамкнутого тела **solid** параметр *density* определяет удельную массу единицы площади тела. Вычисление в общем случае выполняется численно и использует триангуляцию области определения параметров поверхности граней. Триангуляция параметрической области граней выполняется методом CalculateGrid\(), описанным в параграфе :ref:`Построение полигонов объекта `, при значениях *stepData.stepType* = ist_MipStep и *stepData.angle* = *deviateAngle*. Параметр *deviateAngle* определяет максимально допустимый угол между нормалями соседних треугольников и четырёхугольников триангуляции поверхности. Параметр *deviateAngle* управляет точностью расчёта, и от его значения зависит время расчета. Параметр *deviateAngle* должен находиться в пределах 0.01 <= *deviateAngle* <= 0.35 радиан. Следует заметить, что при малых значениях *deviateAngle* для сложных моделей требуется большое время расчета. Инерционные характеристики **properties** описаны в параграфе :ref:`Построение полигонов объекта `. Параметр progress выдает информацию о выполнении в процессе расчета и может использоваться для остановки вычислений.