Files
Extern/C3d/Include/alg_curve_equid.h
Dario Sassi e8f0fa2d27 Extern :
- C3d aggiornamento delle librerie.
2020-09-14 16:42:31 +00:00

85 lines
4.7 KiB
C

////////////////////////////////////////////////////////////////////////////////
/**
\file
\brief \ru Построение эквидистанты. Построение штриховки.
\en Construction of equidistance. Construction of hatching. \~
*/
////////////////////////////////////////////////////////////////////////////////
#ifndef __ALG_CURVE_EQUID_H
#define __ALG_CURVE_EQUID_H
#include <curve.h>
//------------------------------------------------------------------------------
/** \brief \ru Построение эквидистантных кривых к кривой.
\en Construction of offset curves to a curve. \~
\details \ru Построение эквидистантных кривых к произвольной кривой справа и слева.
Имя каждого эквидистантного контура совпадает с именем исходного.
\en Construction of equidistant curves to arbitrary curve on the right and on the left.
A name of every offset contour matches with the name of the initial one. \~
\param[in] curve - \ru Исходная кривая.
\en The initial curve \~
\param[in] radLeft - \ru Радиус эквидистанты слева по направлению.
\en The equidistance radius on the left by direction. \~
\param[in] radRight - \ru Радиус эквидистанты справа по направлению.
\en The equidistance radius on the right by direction. \~
\param[in] side - \ru Признак, с какой стороны строить:\n
0 - слева по направлению,\n
1 - справа по направлению,\n
2 - с двух сторон.
\en Attribute defining the side to construct:\n
0 - on the left by direction,\n
1 - on the right by direction,\n
2 - on the both sides. \~
\param[in] arcMode - \ru Способ обхода углов:\n
true - дугой,
false - срезом.
\en The way of traverse of angles:\n
true - by arc,
false - by section. \~
\param[in] degState - \ru Признак разрешения вырожденных сегментов:\n
0 - вырожденные сегменты запрещены,\n
1 - вырожденные сегменты разрешены.
\en Attribute of degenerate segments allowance:\n
0 - degenerate segments are forbidden,\n
1 - degenerate segments are allowed. \~
\param[out] equLeft - \ru Множество контуров слева.
\en The array of contours on the left side. \~
\param[out] equRight - \ru Множество контуров справа.
\en The array of contours on the right side. \~
\ingroup Algorithms_2D
*/
// ---
MATH_FUNC (void) Equid( const MbCurve * curve,
double radLeft,
double radRight,
int side,
bool arcMode,
bool degState,
PArray<MbCurve> & equLeft,
PArray<MbCurve> & equRight );
//------------------------------------------------------------------------------
/** \brief \ru Построение области штриховки кривых.
\en Construction of curves hatching region. \~
\details \ru Построение штриховки заданной ширины внутри или около кривых.
\en Construction of hatching with a given width inside or near curves. \~
\param[in] contour - \ru Исходная кривые.
\en Initial curves \~
\param[in] witdh - \ru Ширина штриховки.
\en The hatching width. \~
\param[out] borders - \ru Множество линий штриховки и границ штриховки.
\en The array of hatching lines and hatching boundaries. \~
\ingroup Algorithms_2D
*/
// ---
MATH_FUNC (void) MakeHatchingArea( const PArray<MbCurve> & contour, double witdh,
PArray<MbCurve> & borders );
#endif // __ALG_CURVE_EQUID_H