Files
Extern/C3d/Include/action_wireframe.h
SaraP 91eb150ddb Extern :
- C3d aggiornamento delle librerie ( 117971).
2024-01-04 08:50:48 +01:00

132 lines
8.0 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 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