Files
Extern/C3d/Include/surface_fitting.h
SaraP f5f6a9cb47 Extern :
- C3d aggiornamento librerie ( 118027).
2025-02-28 15:40:33 +01:00

69 lines
4.1 KiB
C++
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
////////////////////////////////////////////////////////////////////////////////
/**
\file
\brief \ru Класс для вписывания поверхности в полигональный объект.
\en Class for fitting surfaces to a polygonal object. \~
*/
////////////////////////////////////////////////////////////////////////////////
#ifndef __SURFACE_FITTING_H
#define __SURFACE_FITTING_H
#include <mb_operation_result.h>
#include <math_define.h>
class MbSurfaceFitToGridParameters;
class MbSurfaceFitToGridResults;
class MbGrid;
class MbPolymeshTopo;
//------------------------------------------------------------------------------
/** \brief \ru Класс для вписывания поверхности в полигональный объект.
\en Class for fitting surfaces to a polygonal object. \~
\details \ru Класс для вписывания поверхности в полигональный объект.
Выполняет аппроксимацию заданного полигонального объекта или его сегментов поверхностями определенного типа.
Можно вписать аналитическую поверхность (плоскость, цилиндр, сферу, конус или тор),
поверхность движения (вращения или выдавливания) и NURBS поверхность.
Автоматическое определение типа позволяет вписать аналитическую поверхность, которая подходит лучшим образом.
Для вписывания в часть полигонального объекта выбранные треугольники/фасеты и регионы должны быть указаны
при создании экземпляра класса.
\en Class for fitting surfaces to a polygonal object.
Approximates a given polygonal object or its segment to a surface of a given type.
There can be fit an analitical surface (plane, cylinder, sphere, cone or torus),
a swept surface (revolution or extrision) and a NURBS surface.\
During automatic fitting the type of an analitical surface is defined automatically.
When fitting to the part of a polygonal object selected triangles/facets or regions have to be defined
while creating the class instance. \~
\ingroup Algorithms_3D
\warning \ru В разработке.
\en Under development. \~
*/
// ---
class MATH_CLASS MbSurfaceFitter
{
protected:
/// \ru Конструктор. \en Constructor.
MbSurfaceFitter();
public:
/// \ru Деструктор. \en Destructor.
virtual ~MbSurfaceFitter() {}
public:
/// \ru Создать объект на основе триангуляции. \en Create an object based on a triangulation.
static MbSurfaceFitter * Create( const MbGrid & grid, const c3d::IndicesVector * indices = nullptr );
/// \ru Создать объект на основе топологии полигонального объекта. \en Create an object based on a topology of a polygonal object.
static MbSurfaceFitter * Create( const MbPolymeshTopo & mesh );
/// \ru Создать объект на основе набора фасетов полигонального объекта. \en Create an object based on given facets of a polygonal object.
static MbSurfaceFitter * Create( const MbPolymeshTopo & mesh, const c3d::IndicesVector & indices );
/// \ru Создать объект на основе региона полигонального объекта. \en Create an object based on a region of a polygonal object.
static MbSurfaceFitter * Create( const MbPolymeshTopo & mesh, size_t iRegion );
/// \ru Вписать поверхность. \en Fit a surface.
virtual MbResultType FitSurface( const MbSurfaceFitToGridParameters & params, MbSurfaceFitToGridResults & results ) = 0;
};
#endif // __SURFACE_FITTING_H