91eb150ddb
- C3d aggiornamento delle librerie ( 117971).
132 lines
8.0 KiB
C++
132 lines
8.0 KiB
C++
////////////////////////////////////////////////////////////////////////////////
|
||
/**
|
||
\file
|
||
\brief \ru Методы построения каркаса.
|
||
\en Functions for wire frame creation. \~
|
||
*/
|
||
////////////////////////////////////////////////////////////////////////////////
|
||
|
||
#ifndef __ACTION_WIREFRAME_H
|
||
#define __ACTION_WIREFRAME_H
|
||
|
||
|
||
#include <wire_frame.h>
|
||
|
||
class MATH_CLASS MbWireFrameFilletsParams;
|
||
class MATH_CLASS MbNurbsWireFrameParams;
|
||
class MATH_CLASS MbTrimmedWireFrameParams;
|
||
class MATH_CLASS MbWireFrameProjParams;
|
||
class MATH_CLASS MbWireFrameProjResult;
|
||
|
||
|
||
//------------------------------------------------------------------------------
|
||
/** \brief \ru Создать скругленный каркас.
|
||
\en Create a filleted wire frame. \~
|
||
\details \ru Создать каркас в виде плавного соединения (скругления) всех ребер каркаса. \n
|
||
Если два ребра в каркасе гладко стыкуются, в этом стыке скругление не делается, радиус игнорируется. \n
|
||
\en Create a wire frame as fillet of all the edges of a wire frame. \n
|
||
If two edges in wire frame are smoothly connected, the fillet is not created at this joint, the radius is ignored. \n \~
|
||
\param[in] wireframe - \ru Исходный каркас.
|
||
\en The initial wire frame. \~
|
||
\param[in] sameEdges - \ru Режим копирования входного каркаса.
|
||
\en Whether to copy the input wire frame. \~
|
||
\param[in] params - \ru Параметры скругления.
|
||
\en A fillet parameters. \~
|
||
\param[out] result - \ru Скругленный каркас.
|
||
\en The filleted wire frame. \~
|
||
\return \ru Возвращает код результата операции.
|
||
\en Returns operation result code. \~
|
||
\warning \ru В разработке.
|
||
\en Under development. \~
|
||
\ingroup WireFrame_Modeling
|
||
*/
|
||
// ---
|
||
MATH_FUNC( MbResultType ) CreateWireFrameFillets( c3d::WireFrameSPtr & wireframe,
|
||
MbeCopyMode sameEdges,
|
||
const MbWireFrameFilletsParams & params,
|
||
c3d::WireFrameSPtr & result );
|
||
|
||
|
||
//------------------------------------------------------------------------------
|
||
/** \brief \ru Построить NURBS копию каркаса.
|
||
\en Construct a NURBS copy of a wire frame. \~
|
||
\details \ru Строит проволочный каркас, содержащий NURBS кривые, аппроксимирующие заданный каркас.
|
||
По возможности, строит точные кривые, возможно, с кратными узлами.
|
||
Количеством узлов для NURBS определяется в зависимости от кривой.
|
||
\en Constructs a wire frame contains NURBS curves which approximates a given wire frame.
|
||
If it is possible, constructs the accurate curves, perhaps with multiple knots.
|
||
The number of knots for NURBS is defined depending on the curve. \~
|
||
\param[in] wireFrame - \ru Исходный каркас.
|
||
\en The initial wire frame. \~
|
||
\param[in] sameWire - \ru Режим копирования входного каркаса.
|
||
\en Whether to copy the input wire frame. \~
|
||
\param[in] params - \ru Параметры скругления.
|
||
\en A fillet parameters. \~
|
||
\param[out] result - \ru Построенный каркас с NURBS кривыми или nullptr при неуспешном построении.
|
||
\en he constructed wire frame with NURBS curve or nullptr in a case of failure. \~
|
||
\return \ru Возвращает код результата операции.
|
||
\en Returns operation result code. \~
|
||
\warning \ru В разработке.
|
||
\en Under development. \~
|
||
*/
|
||
// ---
|
||
MATH_FUNC( MbResultType ) CreateNurbsWireFrame( c3d::WireFrameSPtr & wireFrame,
|
||
MbeCopyMode sameWire,
|
||
const MbNurbsWireFrameParams & params,
|
||
c3d::WireFrameSPtr & result );
|
||
|
||
|
||
//------------------------------------------------------------------------------
|
||
/** \brief \ru Создать усеченный каркас.
|
||
\en Create trimmed wire frame. \~
|
||
\details \ru Создать каркас в виде связной цепочки ребер исходного каркаса, заключенной между заданными точками усечения. \n
|
||
Исходный каркас должен быть нормализован.\n
|
||
\en Create a wire frame in the form of a connected chain of edges of the original wire frame enclosed between truncation points. \n
|
||
Init wire frame should be normalized. \n \~
|
||
\param[in] wireframe - \ru Исходный каркас.
|
||
\en The initial wire frame. \~
|
||
\param[in] sameEdges - \ru Режим копирования входного каркаса.
|
||
\en Whether to copy the input wire frame. \~
|
||
\param[in] params - \ru Параметры усечения.
|
||
\en Trimmed parameters. \~
|
||
\param[out] result - \ru Усеченный каркас.
|
||
\en The trimmed wire frame. \~
|
||
\return \ru Возвращает код результата операции.
|
||
\en Returns operation result code. \~
|
||
\warning \ru В разработке.
|
||
\en Under development. \~
|
||
\ingroup WireFrame_Modeling
|
||
*/
|
||
// ---
|
||
MATH_FUNC( MbResultType ) CreateTrimmedWireFrame( c3d::WireFrameSPtr & wireframe,
|
||
MbeCopyMode sameEdges,
|
||
const MbTrimmedWireFrameParams & params,
|
||
c3d::WireFrameSPtr & result );
|
||
|
||
|
||
//------------------------------------------------------------------------------
|
||
/** \brief \ru Найти проекцию точки на проволочный каркас.
|
||
\en Find the point projection to the wire frame. \~
|
||
\details \ru Найти ближайшую проекцию точки на проволочный каркас в диапазоне изменения параметра или на его продолжении.
|
||
Аналог MbContour3D::NearPointProjection().
|
||
Проволочный каркас должен быть нормализован.
|
||
\en Find the nearest projection of a point to the wire frame within the parameter range or its extension.
|
||
Analogue of MbContour3D::NearPointProjection().
|
||
The wire frame must be normalized. \~
|
||
\param[in] wireFrame - \ru Проволочный каркас для поиска проекции.
|
||
\en Wire frame for searching projection. \~
|
||
\param[in] params - \ru Параметры операции.
|
||
\en Operation parameters. \~
|
||
\param[in] result - \ru Результаты операции.
|
||
\en Results of the operation. \~
|
||
\return \ru Код результата операции.
|
||
\en Operation result code. \~
|
||
*/
|
||
// ---
|
||
MATH_FUNC( MbResultType ) NearPointProjection( const MbWireFrame & wireFrame,
|
||
const MbWireFrameProjParams & params,
|
||
MbWireFrameProjResult & result );
|
||
|
||
|
||
#endif // __ACTION_WIREFRAME_H
|