- C3d aggiornamento delle librerie.
This commit is contained in:
Dario Sassi
2020-12-24 11:59:30 +00:00
parent e771270eb2
commit 45803fb2d7
354 changed files with 24318 additions and 20771 deletions
+19 -34
View File
@@ -77,7 +77,7 @@ MATH_FUNC (bool) IsMultiShell( const MbFaceShell * shell, bool checkNesting = tr
\ingroup Algorithms_3D
*/
// ---
MATH_FUNC (size_t) DetachShells( MbFaceShell & shell, RPArray<MbFaceShell> & parts, bool sort, c3d::IndicesVector * partIndices = C3D_NULL_PTR );
MATH_FUNC (size_t) DetachShells( MbFaceShell & shell, RPArray<MbFaceShell> & parts, bool sort, c3d::IndicesVector * partIndices = c3d_null );
//------------------------------------------------------------------------------
@@ -102,7 +102,7 @@ MATH_FUNC (size_t) DetachShells( MbFaceShell & shell, RPArray<MbFaceShell> & par
\ingroup Algorithms_3D
*/
// ---
MATH_FUNC (size_t) DetachShells( MbFaceShell & shell, c3d::ShellsVector & parts, bool sort, c3d::IndicesVector * partIndices = C3D_NULL_PTR );
MATH_FUNC (size_t) DetachShells( MbFaceShell & shell, c3d::ShellsVector & parts, bool sort, c3d::IndicesVector * partIndices = c3d_null );
//------------------------------------------------------------------------------
@@ -127,7 +127,7 @@ MATH_FUNC (size_t) DetachShells( MbFaceShell & shell, c3d::ShellsVector & parts,
\ingroup Algorithms_3D
*/
// ---
MATH_FUNC (size_t) DetachShells( MbFaceShell & shell, c3d::ShellsSPtrVector & parts, bool sort, c3d::IndicesVector * partIndices = C3D_NULL_PTR );
MATH_FUNC (size_t) DetachShells( MbFaceShell & shell, c3d::ShellsSPtrVector & parts, bool sort, c3d::IndicesVector * partIndices = c3d_null );
//------------------------------------------------------------------------------
@@ -151,15 +151,15 @@ MATH_FUNC (size_t) DetachShells( MbFaceShell & shell, c3d::ShellsSPtrVector & pa
template <class ShellsVector>
size_t CreateShells( const MbFaceShell & shell, ShellsVector & parts, bool sort = true )
{
c3d::ShellSPtr outer( new MbFaceShell( shell ) ); // new shell on the same faces (новая оболочка с теми же гранями)
c3d::IndicesVector * partIndices = C3D_NULL_PTR;
if ( ::DetachShells( *outer, parts, sort, partIndices ) > 0 ) {
parts.push_back( outer );
::DetachItem( outer );
}
c3d::ShellSPtr outer( new MbFaceShell( shell ) ); // new shell on the same faces (новая оболочка с теми же гранями)
c3d::IndicesVector * partIndices = c3d_null;
if ( ::DetachShells( *outer, parts, sort, partIndices ) > 0 ) {
parts.push_back( outer );
::DetachItem( outer );
}
return parts.size();
}
@@ -251,21 +251,6 @@ MATH_FUNC (bool) UnifyOwnComplanarFaces( MbFaceShell & shell,
bool checkBaseSurfaces );
//------------------------------------------------------------------------------
/** \brief \ru Найти и устранить общие поверхности-подложки в гранях.
\en Find and eliminate common underlying surfaces of faces \~
\details \ru Найти и устранить общие поверхности-подложки в гранях оболочки. \n
\en Find and eliminate common underlying surfaces of a shell faces. \n \~
\param[in] shell - \ru Модифицируемая оболочка.
\en A shell to be modified. \~
\return \ru Возвращает true, если оболочка была изменена.
\en Returns 'true' if the shell has been modified. \~
\ingroup Algorithms_3D
*/
// ---
MATH_FUNC (bool) CheckIdenticalBaseSufaces( MbFaceShell & shell );
//------------------------------------------------------------------------------
/** \brief \ru Захватить грани одним из способов.
\en Capture the faces in one of proposed methods. \~
@@ -1254,9 +1239,9 @@ MATH_FUNC (bool) FindTouchedFaces( const MbSolid & solid1,
\en To find contacted faces of bodies. \~
\details \ru Разбить контактирующие грани тел, выделив общие области с конечной площадью перекрытия в отдельные грани. \~
\en To find contacted faces of bodies and build a finite overlap contacted area as faces. \~
\param[in/out] solid1 - \ru Первое тело.
\param[in,out] solid1 - \ru Первое тело.
\en The first solid. \~
\param[in/out] solid2 - \ru Второе тело.
\param[in,out] solid2 - \ru Второе тело.
\en The second solid. \~
\param[in] precision - \ru Точность операции.
\en The precision of operation. \~
@@ -1344,13 +1329,13 @@ c3d::SolidSPtr GetTransformedSolid( c3d::SolidSPtr & solid, MbeCopyMode & copyMo
{
c3d::SolidSPtr resSolid( solid );
if ( (resSolid != NULL) && !matr.IsSingle() ) {
if ( (resSolid != c3d_null) && !matr.IsSingle() ) {
MbSNameMaker n( transformedMainName, MbSNameMaker::i_SideNone, 0 );
MbSolid * resSolidPtr = NULL;
MbSolid * resSolidPtr = c3d_null;
TransformValues tv( matr );
::TransformedSolid( *solid, cm_Copy, tv, n, resSolidPtr );
if ( resSolidPtr != NULL ) {
if ( resSolidPtr != c3d_null ) {
resSolid = resSolidPtr;
copyMode = cm_Same;
}
@@ -1374,10 +1359,10 @@ c3d::SolidSPtr GetTransformedSolid( c3d::SolidSPtr & solid, MbeCopyMode & copyMo
*/
// ---
template <class Item>
SPtr<Item> GetTransformedItem( SPtr<Item> & item, const MbMatrix3D & matr, MbRegDuplicate * iDupReg = NULL, MbRegTransform * iTransReg = NULL )
SPtr<Item> GetTransformedItem( SPtr<Item> & item, const MbMatrix3D & matr, MbRegDuplicate * iDupReg = c3d_null, MbRegTransform * iTransReg = c3d_null )
{
SPtr<Item> resItem( item );
if ( (resItem != NULL) && !matr.IsSingle() ) {
if ( (resItem != c3d_null) && !matr.IsSingle() ) {
resItem = static_cast<Item *>( &item->Duplicate( iDupReg ) );
resItem->Transform( matr, iTransReg );
}
+15 -15
View File
@@ -59,7 +59,7 @@ typedef void( *SurfaceFunction )( const MbSurface & surf, // Поверхно
MATH_FUNC( void ) MinSurfaceCurvature( const MbSurface & surf,
const MbCartPoint & pnt,
double & func,
MbVector * der = NULL );
MbVector * der = c3d_null );
//------------------------------------------------------------------------------
@@ -80,7 +80,7 @@ MATH_FUNC( void ) MinSurfaceCurvature( const MbSurface & surf,
MATH_FUNC( void ) MaxSurfaceCurvature( const MbSurface & surf,
const MbCartPoint & pnt,
double & func,
MbVector * der = NULL );
MbVector * der = c3d_null );
//------------------------------------------------------------------------------
@@ -101,7 +101,7 @@ MATH_FUNC( void ) MaxSurfaceCurvature( const MbSurface & surf,
MATH_FUNC( void ) GaussCurvature( const MbSurface & surf,
const MbCartPoint & pnt,
double & func,
MbVector * der = NULL );
MbVector * der = c3d_null );
//------------------------------------------------------------------------------
@@ -122,7 +122,7 @@ MATH_FUNC( void ) GaussCurvature( const MbSurface & surf,
MATH_FUNC( void ) MeanCurvature( const MbSurface & surf,
const MbCartPoint & pnt,
double & func,
MbVector * der = NULL );
MbVector * der = c3d_null );
//------------------------------------------------------------------------------
@@ -143,7 +143,7 @@ MATH_FUNC( void ) MeanCurvature( const MbSurface & surf,
MATH_FUNC( void ) UNormalCurvature( const MbSurface & surf,
const MbCartPoint & pnt,
double & func,
MbVector * der = NULL );
MbVector * der = c3d_null );
//------------------------------------------------------------------------------
@@ -164,7 +164,7 @@ MATH_FUNC( void ) UNormalCurvature( const MbSurface & surf,
MATH_FUNC( void ) VNormalCurvature( const MbSurface & surf,
const MbCartPoint & pnt,
double & func,
MbVector * der = NULL );
MbVector * der = c3d_null );
//------------------------------------------------------------------------------
@@ -172,8 +172,8 @@ MATH_FUNC( void ) VNormalCurvature( const MbSurface & surf,
\en Find the points of the surface at which the selected curvature takes the largest in modulus values. \~
\details \ru Ищутся точки, в которых выбранная кривизна принимает на поверхности наибольшее положительное и наименьшее отрицательное значение.
\en Looks for points at which the selected curvature takes on the surface the greatest positive and least negative value. \~
\param[in] surf - \ru Исследуемая поверхность.
\en Test surface. \~
\param[in] surface - \ru Исследуемая поверхность.
\en Test surface. \~
\param[in] func - \ru Функция расчета кривизны в точке.
\en The function of calculating the curvature at a point. \~
\param[out] maxNegCurv - \ru Наибольшее по модулю отрицательное значение кривизны (0, если нет такого).
@@ -241,8 +241,8 @@ MATH_FUNC( void ) FacesMinMaxCurvature( const RPArray<MbFace> & faces,
\en Find the points on the surface at which the major normal curvatures take the largest values in the module. \~
\details \ru Ищутся точки на поверхности, в которых главные нормальные кривизны принимают наибольшее положительное и наименьшее отрицательное значение.
\en Looks for points on the surface at which the major normal curvatures take the largest positive and smallest negative values. \~
\param[in] surf - \ru Исследуемая поверхность.
\en Test surface. \~
\param[in] surface - \ru Исследуемая поверхность.
\en Test surface. \~
\param[out] maxNegCurv - \ru Наибольшее по модулю отрицательное значение кривизны (0, если нет такого).
\en The largest in modulus value negative curvature (0, if there is no such). \~
\param[out] maxNegLoc - \ru Точка, в которой кривизна принимает наибольшее по модулю отрицательное значение.
@@ -321,7 +321,7 @@ MATH_FUNC( void ) FacesMinMaxCurvature( const RPArray<MbFace> & faces,
*/
MATH_FUNC( double ) CurveOrientedCurvature( const MbCurve3D & curve,
double & param,
const MbVector3D * planeNorm = NULL );
const MbVector3D * planeNorm = c3d_null );
//------------------------------------------------------------------------------
@@ -358,10 +358,10 @@ MATH_FUNC( void ) CurveMinMaxCurvature( const MbCurve3D & curve,
double & maxParam,
double & minCurv,
double & minParam,
c3d::DoubleVector * bendPoints = NULL,
c3d::DoubleVector * maxPoints = NULL,
c3d::DoubleVector * minPoints = NULL,
c3d::DoublePairsVector * rapPoints = NULL );
c3d::DoubleVector * bendPoints = c3d_null,
c3d::DoubleVector * maxPoints = c3d_null,
c3d::DoubleVector * minPoints = c3d_null,
c3d::DoublePairsVector * rapPoints = c3d_null );
//------------------------------------------------------------------------------
+2 -2
View File
@@ -341,8 +341,8 @@ public:
To fit surface use corresponding methods SegmentMesh or FitSurfaceToSegment. \n \~
\param[in] idxSegment - \ru Индекс сегмента полигональной сетки.
\en Index of a mesh segment. \~
\return \ru Возвращает указатель на поверхность для сегмента, если поверхность определена, иначе - NULL.
\en Returns pointer to segment surface if it exists, else - NULL. \~
\return \ru Возвращает указатель на поверхность для сегмента, если поверхность определена, иначе - c3d_null.
\en Returns pointer to segment surface if it exists, else - c3d_null. \~
\ingroup Polygonal_Objects
*/
virtual const MbSurface * GetSegmentSurface( size_t idxSegment ) const = 0;
+34 -25
View File
@@ -171,12 +171,14 @@ MATH_FUNC (MbResultType) Segment( const MbCartPoint & point1,
*/
//---
MATH_FUNC( MbResultType ) Arc( MbeArcCreateWay createWay,
const MbCartPoint & center,
const std::vector<MbCartPoint> & points,
double & a, double & b, double & c,
bool option,
MbCurve *& result );
MATH_FUNC( MbResultType ) Arc( MbeArcCreateWay createWay,
const MbCartPoint & center,
const c3d::ParamPointsVector & points,
double & a,
double & b,
double & c,
bool option,
MbCurve *& result );
//------------------------------------------------------------------------------
/**\attention \ru Функция устарела. Вместо неё применять #Arc.
@@ -185,11 +187,13 @@ MATH_FUNC( MbResultType ) Arc( MbeArcCreateWay createWay,
*/
// 2018
//---
MATH_FUNC( MbResultType ) Arc( const MbCartPoint & centre,
MATH_FUNC( MbResultType ) Arc( const MbCartPoint & centre,
const SArray<MbCartPoint> & points,
bool curveClosed, double angle,
double & a, double & b,
MbCurve *& result );
bool curveClosed,
double angle,
double & a,
double & b,
MbCurve *& result );
//------------------------------------------------------------------------------
@@ -225,8 +229,9 @@ MATH_FUNC( MbResultType ) Arc( const MbCartPoint & centre,
*/
// ---
MATH_FUNC (MbResultType) SplineCurve( const SArray<MbCartPoint> & pointList,
bool curveClosed, MbePlaneType curveType,
MbCurve *& result );
bool curveClosed,
MbePlaneType curveType,
MbCurve *& result );
//------------------------------------------------------------------------------
@@ -256,9 +261,11 @@ MATH_FUNC (MbResultType) SplineCurve( const SArray<MbCartPoint> & pointList,
*/
//---
MATH_FUNC (MbResultType) NurbsCurve( const SArray<MbCartPoint> & pointList,
const SArray<double> & weightList, size_t degree,
const SArray<double> & knotList, bool curveClosed,
MbCurve *& result );
const SArray<double> & weightList,
size_t degree,
const SArray<double> & knotList,
bool curveClosed,
MbCurve *& result );
//------------------------------------------------------------------------------
@@ -430,7 +437,7 @@ MATH_FUNC (MbCurve *) DuplicateCurve( const MbCurve & curve );
// ---
MATH_FUNC (MbContour *) DuplicateContour( const MbContour & cntr,
bool modifySegments,
MbSNameMaker * names = NULL );
MbSNameMaker * names = c3d_null );
//------------------------------------------------------------------------------
@@ -694,12 +701,12 @@ MATH_FUNC (MbResultType) SurfaceBoundContour( const MbSurface & surface,
or for contour pt_Contour if its first segment is of one of the listed types. \~
\param[in] segment - \ru Изменяемая кривая.
\en The modified curve. \~
\param[in] p1 - \ru Новая начальная точка.
\en A new start point. \~
\param[in] p - \ru Новая начальная точка.
\en A new start point. \~
\ingroup Algorithms_2D
*/
// ---
MATH_FUNC (bool) ChangeFirstPoint( MbCurve * segment, const MbCartPoint & p1 );
MATH_FUNC (bool) ChangeFirstPoint( MbCurve * segment, const MbCartPoint & p );
//------------------------------------------------------------------------------
@@ -717,23 +724,25 @@ MATH_FUNC (bool) ChangeFirstPoint( MbCurve * segment, const MbCartPoint & p1 );
or for contour pt_Contour if its last segment is of one of the listed types. \~
\param[in] segment - \ru Изменяемая кривая.
\en The modified curve. \~
\param[in] p1 - \ru Новая начальная точка.
\en A new start point. \~
\param[in] p - \ru Новая начальная точка.
\en A new start point. \~
\ingroup Algorithms_2D
*/
// ---
MATH_FUNC (bool) ChangeLastPoint( MbCurve * segment, const MbCartPoint & p2 );
MATH_FUNC (bool) ChangeLastPoint( MbCurve * segment, const MbCartPoint & p );
//------------------------------------------------------------------------------
/** \brief \ru Является ли кривая прямолинейной независимо от ее параметризации.
\en Whether the curve is like straight-line regardless of its parameterisation. \~
\en Whether the curve is like straight-line regardless of its parameterization. \~
\details \ru Является ли кривая прямолинейной независимо от ее параметризации.\n
\en Whether the curve is like straight-line regardless of its parameterisation. \~
\en Whether the curve is like straight-line regardless of its parameterization. \~
\param[in] curve - \ru Кривая.
\en Curve. \~
\param[in] eps - \ru Точность.
\en Accuracy. \~
\return \ru Возвращает true, если кривая геометрически прямолинейна.
\en Returns true, if a curve is geometrically straight. \~
\ingroup Curve_Modeling
*/
// ---
@@ -758,7 +767,7 @@ MATH_FUNC (bool) IsLikeStraightLine( const MbCurve & curve, double eps );
// ---
MATH_FUNC( MbContour * ) DeleteDegenerateSegments( const MbContour & cntr,
bool modifySegments,
MbSNameMaker * names = NULL );
MbSNameMaker * names = c3d_null );
#endif // __ACTION_CURVE_H
+32 -23
View File
@@ -56,7 +56,7 @@ struct MATH_CLASS EvolutionValues;
// ---
MATH_FUNC (MbResultType) Line( const MbCartPoint3D & point1,
const MbCartPoint3D & point2,
MbCurve3D *& result );
MbCurve3D *& result );
//------------------------------------------------------------------------------
@@ -77,7 +77,7 @@ MATH_FUNC (MbResultType) Line( const MbCartPoint3D & point1,
// ---
MATH_FUNC (MbResultType) Segment( const MbCartPoint3D & point1,
const MbCartPoint3D & point2,
MbCurve3D *& result );
MbCurve3D *& result );
//------------------------------------------------------------------------------
@@ -106,11 +106,13 @@ MATH_FUNC (MbResultType) Segment( const MbCartPoint3D & point1,
\ingroup Curve3D_Modeling
*/
//---
MATH_FUNC (MbResultType) Arc( const MbCartPoint3D & centre,
MATH_FUNC (MbResultType) Arc( const MbCartPoint3D & centre,
const SArray<MbCartPoint3D> & points,
bool curveClosed, double angle,
double & a, double & b,
MbCurve3D *& result );
bool curveClosed,
double angle,
double & a,
double & b,
MbCurve3D *& result );
//------------------------------------------------------------------------------
@@ -146,9 +148,9 @@ MATH_FUNC (MbResultType) Arc( const MbCartPoint3D & centre,
*/
// ---
MATH_FUNC (MbResultType) SplineCurve( const SArray<MbCartPoint3D> & pointList,
bool curveClosed,
MbeSpaceType curveType,
MbCurve3D *& result );
bool curveClosed,
MbeSpaceType curveType,
MbCurve3D *& result );
//------------------------------------------------------------------------------
@@ -178,9 +180,11 @@ MATH_FUNC (MbResultType) SplineCurve( const SArray<MbCartPoint3D> & pointList,
*/
//---
MATH_FUNC (MbResultType) NurbsCurve( const SArray<MbCartPoint3D> & pointList,
const SArray<double> & weightList, size_t degree,
const SArray<double> & knotList, bool curveClosed,
MbCurve3D *& result );
const SArray<double> & weightList,
size_t degree,
const SArray<double> & knotList,
bool curveClosed,
MbCurve3D *& result );
//------------------------------------------------------------------------------
@@ -279,11 +283,11 @@ MATH_FUNC (MbResultType) SpiralCurve( const MbPlacement3D & place,
\details \ru Создать спираль. \n
Если spiralAxis == true, то lawCurve - определяет плоскую ось спирали. \n
Если spiralAxis == false, то lawCurve - определяет закон изменения радиуса спирали. \n
Если lawCurve == NULL, то строится коническая спираль с углом конусности angle. \n
Если lawCurve == c3d_null, то строится коническая спираль с углом конусности angle. \n
\en Create a spiral. \n
If 'spiralAxis' == true, 'lawCurve' determines the axis of a spiral. \n
If spiralAxis == false, then 'lawCurve' - determines a radius law. \n
If lawCurve == NULL, a conical spiral is created with the specified taper angle. \n \~
If lawCurve == c3d_null, a conical spiral is created with the specified taper angle. \n \~
\param[in] point0 - \ru Начало локальной системы координат (ЛСК).
\en The origin of local coordinate system (LCS). \~
\param[in] point1 - \ru Точка на оси Z ЛСК.
@@ -640,7 +644,7 @@ MATH_FUNC (MbResultType) CreatePolyArcCurve3D( const MbCurve3D & curve,
MATH_FUNC (bool) GetSpaceCurve( const MbItem & item,
bool keepPlacement,
SPtr<MbCurve3D> & curve0,
std::vector< SPtr<MbCurve3D> > * curves = NULL );
std::vector< SPtr<MbCurve3D> > * curves = c3d_null );
//-------------------------------------------------------------------------------
@@ -662,9 +666,9 @@ MATH_FUNC (bool) GetSpaceCurve( const MbItem & item,
\param[in] deviationAngle - \ru Параметру точности.
\en The parameter of accuracy. \~
\return \ru Возвращает указатель на построенную кривую с нулевум счетчиком ссылок \n
или NULL, если не удалось построить развертку для заданных параметров.
или c3d_null, если не удалось построить развертку для заданных параметров.
\en The pointer to the constructed curve with zero counter of references\n
return NULL, if unwrap curve can't be construvted for this parameters
return c3d_null, if unwrap curve can't be construvted for this parameters
\ingroup Curve3D_Modeling
*/
// ---
@@ -719,6 +723,8 @@ MATH_FUNC (MbResultType) EvolutionSection( const MbSweptData & generCurves,
\en Curve. \~
\param[in] eps - \ru Точность.
\en Accuracy. \~
\return \ru Возвращает true, если кривая геометрически прямолинейна.
\en Returns true, if a curve is geometrically straight. \~
\ingroup Curve3D_Modeling
*/
// ---
@@ -1256,11 +1262,14 @@ MATH_FUNC( MbResultType ) AddKnotNurbs( MbNurbs3D * curve,
\en Insert a knot into the onesegmented NURBS curve.\n
The output parameter of the method is a NURBS curve of first segment. \~
\param[in] curve - \ru NURBS кривая в произвольном формате. \en NURBS curve in any format. \~
\param[in] data - \ru Данные построения кривой. \en The curve construction data. \~
\param[out] result - \ru NURBS Кривая. \en NURBS curve. \~
\return \ru Возвращает значение результата операции. \en Returns operation result value.
\param[in] curve - \ru NURBS кривая в произвольном формате.
\en NURBS curve in any format. \~
\param[in] data - \ru Данные построения кривой.
\en The curve construction data. \~
\param[out] resCurve - \ru NURBS Кривая.
\en NURBS curve. \~
\return \ru Возвращает значение результата операции.
\en Returns operation result value.
\ingroup Curve3D_Modeling
*/
MATH_FUNC( MbResultType ) ExtractExtrapolFromSegment( MbNurbs3D * curve,
@@ -1310,7 +1319,7 @@ MATH_FUNC(MbResultType) ConicNurbs( MbNurbs3D * curve,
\en The curve length evaluation. \~
\param[in] accuracy - \ru Относительная точность рассчёта длины кривой.
\en Relative accuracy calculate the length of a curve. \~
\param[in/out] maxCurvatre - \ru Максимально допустимая кривизна кривой.
\param[in,out] maxCurvatre - \ru Максимально допустимая кривизна кривой.
\en The maximum curvature of the resulting curve. \~
\param[out] result - \ru Построенная кривая.
\en The resulting curve. \~
+2 -2
View File
@@ -61,8 +61,8 @@ MATH_FUNC (void) CalculatePolygon( const MbCurve & curve,
локальной системы координат.
\en Create a polygonal object for two-dimensional object in the XOY-plane
of the local coordinate system. \~
\param[in] obj - \ru Двумерный объект (если NULL, то объект не создаётся).
\en Two-dimensional object (if NULL, object isn't created). \~
\param[in] obj - \ru Двумерный объект (если c3d_null, то объект не создаётся).
\en Two-dimensional object (if c3d_null, object isn't created). \~
\param[in] plane - \ru Локальная система координат.
\en A local coordinate system. \~
\param[in] sag - \ru Максимальное отклонение полигонального объекта от оригинала по прогибу.
+9 -6
View File
@@ -184,7 +184,7 @@ MATH_FUNC (MbResultType) OffsetPhantom( const MbSolid & solid,
const SweptValues & params,
const MbSNameMaker & operNames,
MbFaceShell *& result,
size_t * hpShellFaceInd = NULL ); // \ru Номер грани в исходной оболочки для построения хот-точки); \en The face number in the initial shell for a hot-point creation);
size_t * hpShellFaceInd = c3d_null ); // \ru Номер грани в исходной оболочки для построения хот-точки); \en The face number in the initial shell for a hot-point creation);
//------------------------------------------------------------------------------
@@ -261,7 +261,7 @@ MATH_FUNC (MbResultType) SmoothPositionData( const MbSolid & sol
const SmoothValues & params,
RPArray<MbPositionData> & result,
double edgeParam = 0.5,
const MbCurveEdge * dimensionEdge = NULL );
const MbCurveEdge * dimensionEdge = c3d_null );
//------------------------------------------------------------------------------
@@ -293,7 +293,7 @@ MATH_FUNC (MbResultType) SmoothPositionData( const MbSolid & sol
const SmoothValues & params,
RPArray<MbPositionData> & result,
double edgeParam = 0.5,
const MbCurveEdge * dimensionEdge = NULL );
const MbCurveEdge * dimensionEdge = c3d_null );
//------------------------------------------------------------------------------
@@ -303,15 +303,18 @@ MATH_FUNC (MbResultType) SmoothPositionData( const MbSolid & sol
\en A function creation for behavior of selected curve coordinate with curve parameter. \n
\param[in] curve - \ru Кривая.
\en The curve. \~
\param[in] coordinate - \ru Номер координаты пространства.
\en The number of curve coordinate. \~
\param[in] place - \ru Локальная система координат, в которой используется кривая.
\en The local coordinate system that uses the curve. \~
\param[in] coordinate - \ru Номер (0,1,2) координаты кривой в локальной системе координат для построения функции.
\en The number (0,1,2) of the curve coordinate in the local coordinate system for constructing the function. \~
\return \ru Возвращает построенную функцию.
\en Returns the created function. \~
\ingroup Algorithms_3D
*/
// ---
MATH_FUNC (MbFunction *) CreateFunction( const MbCurve3D & curve,
size_t coordinate );
const MbPlacement3D & place,
size_t coordinate );
#endif // __ACTION_PHANTOM_H
+7 -7
View File
@@ -39,8 +39,8 @@ class MATH_CLASS MbFaceShell;
\en Number of elements in the array. \~
\param[out] res - \ru Результат операции.
\en The operation result. \~
\return \ru Возвращает массив элементов, если он создан, или NULL в противном случае.
\en Returns an array of elements if it has been created, otherwise returns NULL. \~
\return \ru Возвращает массив элементов, если он создан, или c3d_null в противном случае.
\en Returns an array of elements if it has been created, otherwise returns c3d_null. \~
\ingroup Algorithms_3D
*/
// ---
@@ -48,11 +48,11 @@ template <class Type>
inline SArray<Type> * CreateArray( size_t cnt, MbResultType & res )
{
SArray<Type> * arr = new SArray<Type> ( cnt, 1 );
if ( arr != NULL && arr->GetAddr() == NULL ) {
if ( arr != c3d_null && arr->GetAddr() == c3d_null ) {
delete arr;
arr = NULL;
arr = c3d_null;
}
if ( arr == NULL )
if ( arr == c3d_null )
res = rt_TooManyPoints;
return arr;
@@ -79,7 +79,7 @@ template <class Type>
inline bool ReserveArray( SArray<Type> & arr, size_t n, MbResultType & res )
{
arr.Reserve( n );
if ( arr.GetAddr() == NULL ) {
if ( arr.GetAddr() == c3d_null ) {
res = rt_TooManyPoints;
return false;
}
@@ -107,7 +107,7 @@ template <class Type>
inline bool AddItem( SArray<Type> & arr, const Type & item, MbResultType & res )
{
arr.Add( item );
if ( arr.GetAddr() == NULL ) {
if ( arr.GetAddr() == c3d_null ) {
res = rt_TooManyPoints;
return false;
}
+68 -2
View File
@@ -613,7 +613,7 @@ MATH_FUNC (MbResultType) UnbendSheetSolid( MbSolid & sol
const MbCartPoint & fixedPoint,
const MbSNameMaker & nameMaker,
MbSolid *& result,
RPArray<MbContour3D> * ribContours = NULL );
RPArray<MbContour3D> * ribContours = c3d_null );
//------------------------------------------------------------------------------
@@ -958,6 +958,51 @@ MATH_FUNC (MbResultType) CreateStampParts( const MbPlacement3D & placement,
MbSolid *& partToSubtract );
//------------------------------------------------------------------------------
/** \brief \ru Создание составляющих частей штамповки одного тела другим телом.
\en Stamping with a tool solid (punch or die). \~
\details \ru Штамповка строится на основе произвольного тела-инструмента и заданной плоской листовой грани.
Штамповка подрезается границами листовой грани, которую пересекает тело.\n
\en The stamping is created based on a tool body and a flat sheet face.
The stamping is trimmed by the boundary of the sheet face which contains the sketch.\n \~
\param[in] solid - \ru Исходное листовое тело.
\en The source sheet solid. \~
\param[in] sameShell - \ru Флаг удаления оболочки исходного тела.
\en Whether to delete the shell of the source solid. \~
\param[in] targetFace - \ru Грань штамповки.
\en The face for stamping. \~
\param[in] toolSolid - \ru Оболочка тела-инструмента.
\en A shell of tool solid. \~
\param[in] sameShellTool - \ru Флаг удаления оболочки тела-инструмента.
\en Whether to delete the shell of the tool solid. \~
\param[in] punch - \ru Является тело-инструмент пуансоном или матрицей.
\en Is tool body a punch or a die. \~
\param[in] pierceFaces - \ru Вскрываемые для вырубки грани инструмента,
\en Pierce faces of tool body. \~
\param[in] params - \ru Параметры штамповки.
\en The parameters of stamping. \~
\param[in] nameMaker - \ru Именователь.
\en An object for naming the new objects. \~
\param[out] partToAdd - \ru Добавляемая часть штамповки.
\en Added part of the stamp. \~
\param[out] partToSubtract - \ru Вычитаемая часть штамповки.
\en Deductible part of the stamp. \~
\ingroup Sheet_Metal_Modeling
*/
// ---
MATH_FUNC(MbResultType) CreateStampWithToolSolidParts( MbSolid & solid,
MbeCopyMode sameShell,
const MbFace & targetFace,
MbSolid & toolSolid,
MbeCopyMode sameShellTool,
bool punch,
const RPArray<MbFace>& pierceFaces,
const MbToolStampingValues & params,
const MbSNameMaker & nameMaker,
MbSolid * & partsToAdd,
MbSolid * & partsToSubtract );
//------------------------------------------------------------------------------
/** \brief \ru Штамповка.
\en Stamping. \~
@@ -1176,6 +1221,7 @@ MATH_FUNC (MbResultType) CreateBeadParts( const MbFace * face,
//------------------------------------------------------------------------------
// устаревшая
// ---
DEPRECATE_DECLARE
MATH_FUNC (MbResultType) CreateBeadParts( const MbPlacement3D & placement,
const RPArray<MbContour> & contours,
const SArray<MbCartPoint> & centers,
@@ -1230,6 +1276,7 @@ MATH_FUNC (MbResultType) CreateBead( MbSolid & solid,
// устаревшая
DEPRECATE_DECLARE
MATH_FUNC (MbResultType) CreateBead( MbSolid & solid,
MbeCopyMode sameShell,
const MbFace & face,
@@ -1281,6 +1328,7 @@ MATH_FUNC (MbResultType) CreateJalousieParts( const MbFace * fac
//------------------------------------------------------------------------------
// устаревшая
// ---
DEPRECATE_DECLARE
MATH_FUNC (MbResultType) CreateJalousieParts( const MbPlacement3D & placement,
const RPArray<MbLineSegment> & segments,
const MbJalousieValues & params,
@@ -1785,6 +1833,24 @@ MATH_FUNC (bool) BuildBends3DAxisLines( const RPArray<MbFace> & bendFac
RPArray<MbLineSegment3D> & axisLineSegments );
//------------------------------------------------------------------------------
/** \brief \ru Рассчитать осевые линии разогнутых сгибов.
\en Calculate the centerlines of unfolded bends. \~
\details \ru Возвращает трёхмерные осевые линии, лежащие на разогнутых гранях сгибов.\n
\en Returns the 3D centerlines that lies on the unbent faces of the bends.\n \~
\param[in] bendFaces - \ru Грани разогнутых сгибов, для которых строить линии сгиба.
\en Sheet faces of unfolded bends, that need constraction of the axis lines. \~
\param[out] centerlines - \ru Искомые осевые линии.
\en The required centerlines. \~
\return \ru true - в случае успеха операции, false - в противном случае.
\en True if the operation succeeded, otherwise false. \~
\ingroup Sheet_Metal_Modeling
*/
// ---
MATH_FUNC (bool) BuildBends3DCenterlines( const RPArray<MbFace> & bendFaces,
RPArray<MbCurve3D> & centerlines );
//------------------------------------------------------------------------------
/** \brief \ru Рассчитать параметры для замыкания угла.
\en Calculate the parameters for the corner closure. \~
@@ -2369,7 +2435,7 @@ MATH_FUNC (MbResultType) RemoveOperationResult( MbSolid & solid,
\en The initial face for sheet metall solid building. \~
\param[in] sense - \ru Направление придания толщины относительно нормали исходной грани.
\en Direction of sheet metal building relative to initial face normal. \~
\param[in/out] parameters - \ru Параметры операции.
\param[in,out] parameters - \ru Параметры операции.
\en Operation parameters. \~
\param[in] nameMaker - \ru Именователь.
\en An object for naming the new objects. \~
+14 -14
View File
@@ -263,17 +263,17 @@ MATH_FUNC (MbResultType) MeshShell( MeshSurfaceValues & pars,
\ingroup Shell_Modeling
*/
// ---
MATH_FUNC (MbResultType) TruncateShell( MbSolid & initSolid,
SArray<size_t> & selIndices,
MATH_FUNC (MbResultType) TruncateShell( MbSolid & initSolid,
SArray<size_t> & selIndices,
MbeCopyMode initCopyMode,
const MbSNameMaker & operNames,
const MbSNameMaker & operNames,
RPArray<MbSpaceItem> & truncatingItems,
SArray<bool> & truncatingOrients,
SArray<bool> & truncatingOrients,
bool truncatingSplitMode,
MbeCopyMode truncatingCopyMode,
const MbMergingFlags & mergeFlags,
MbSolid *& result,
MbPlacement3D *& resultPlace );
const MbMergingFlags & mergeFlags,
MbSolid *& result,
MbPlacement3D *& resultPlace );
//------------------------------------------------------------------------------
@@ -652,11 +652,11 @@ MATH_FUNC (MbResultType) SurfaceShell( const MbSurface & surface,
/** \brief \ru Разрезать тело силуэтным контуром.
\en Cut a solid by a silhouette contour. \~
\details \ru Построить оболочки, полученные в результате разрезания тела его силуэтным контуром. \n
\en Create solids as a result of cutting a solids by its silhouette contour.\n\~
\param[in] shell - \ru Исходное тело.
\en The solid\~
\en Create solids as a result of cutting a solids by its silhouette contour. \n \~
\param[in] solid - \ru Исходное тело.
\en The solid. \~
\param[in] sameShell - \ru Способ передачи данных при копировании оболочек.
\en Methods of transferring data while copying shells \~
\en Methods of transferring data while copying shells. \~
\param[in] eye - \ru Направление взгляда.
\en Eye's direction. \~
\param[in] operNames - \ru Именователь с версией.
@@ -859,9 +859,9 @@ MATH_FUNC (MbResultType) RectifyFace( const MbFace & face,
\ingroup Shell_Modeling
*/
// ---
MATH_FUNC (MbResultType) OctaLattice( const MbCartPoint3D & point_0,
const MbCartPoint3D & point_1,
const MbCartPoint3D & point_2,
MATH_FUNC (MbResultType) OctaLattice( const MbCartPoint3D & point0,
const MbCartPoint3D & point1,
const MbCartPoint3D & point2,
double xRadius,
double yRadius,
double zRadius,
+19 -19
View File
@@ -180,7 +180,7 @@ MATH_FUNC (MbResultType) MeshSolid( const MbMesh & mesh,
const GridsToShellValues & params,
const MbSNameMaker & names,
MbSolid *& result,
IProgressIndicator * prog = NULL );
IProgressIndicator * prog = c3d_null );
//------------------------------------------------------------------------------
@@ -202,7 +202,7 @@ MATH_FUNC (MbResultType) MeshSolid( const MbMesh & mesh,
MATH_FUNC (MbResultType) GridSolid( const MbGrid & grid,
const MbSNameMaker & names,
MbSolid *& result,
IProgressIndicator * prog = NULL );
IProgressIndicator * prog = c3d_null );
//------------------------------------------------------------------------------
@@ -224,7 +224,7 @@ MATH_FUNC (MbResultType) GridSolid( const MbGrid & grid,
MATH_FUNC (MbResultType) CollectionSolid( const MbCollection & grid,
const MbSNameMaker & names,
MbSolid *& result,
IProgressIndicator * progBar = NULL );
IProgressIndicator * progBar = c3d_null );
//------------------------------------------------------------------------------
@@ -611,8 +611,8 @@ MATH_FUNC (MbResultType) EvolutionSolid( const MbSweptData & sweptData
\en An array of generating contours coordinate systems. \~
\param[in] c - \ru Множество образующих контуров.
\en An array of generating contours. \~
\param[in] spine - \ru Направляющая кривая (может быть NULL).
\en A guide curve (can be NULL). \~
\param[in] spine - \ru Направляющая кривая (может быть c3d_null).
\en A guide curve (can be c3d_null). \~
\param[in] params - \ru Параметры операции.
\en The operation parameters. \~
\param[in] ps - \ru Множество точек на образующих контурах, задающий их начальные точки.
@@ -647,8 +647,8 @@ MATH_FUNC (MbResultType) LoftedSolid( SArray<MbPlacement3D> & pl,
\en An array of generating contours coordinate systems. \~
\param[in] c - \ru Множество образующих контуров.
\en An array of generating contours. \~
\param[in] spine - \ru Осевая кривая (может быть NULL).
\en A guide curve (can be NULL). \~
\param[in] spine - \ru Осевая кривая (может быть c3d_null).
\en A guide curve (can be c3d_null). \~
\param[in] params - \ru Параметры операции.
\en The operation parameters. \~
\param[in] guideCurves - \ru Множество направляющих кривых, задающих траектории соответствующих точек контуров.
@@ -668,7 +668,7 @@ MATH_FUNC (MbResultType) LoftedSolid( SArray<MbPlacement3D> & pl,
// ---
MATH_FUNC (MbResultType) LoftedSolid( SArray<MbPlacement3D> & pl,
RPArray<MbContour> & c,
const MbCurve3D * spine, // осевая линия может быть NULL
const MbCurve3D * spine, // осевая линия может быть c3d_null
const LoftedValues & params,
RPArray<MbCurve3D> * guideCurves,
SArray<MbCartPoint3D> * ps,
@@ -686,8 +686,8 @@ MATH_FUNC (MbResultType) LoftedSolid( SArray<MbPlacement3D> & pl,
\en An array of surfaces of generating contours. \~
\param[in] c - \ru Множество образующих контуров.
\en An array of generating contours. \~
\param[in] spine - \ru Осевая кривая (может быть NULL).
\en A guide curve (can be NULL). \~
\param[in] spine - \ru Осевая кривая (может быть c3d_null).
\en A guide curve (can be c3d_null). \~
\param[in] params - \ru Параметры операции.
\en The operation parameters. \~
\param[in] guideCurves - \ru Множество направляющих кривых, задающих траектории соответствующих точек контуров.
@@ -707,7 +707,7 @@ MATH_FUNC (MbResultType) LoftedSolid( SArray<MbPlacement3D> & pl,
// ---
MATH_FUNC (MbResultType) LoftedSolid( RPArray<MbSurface> & surfs,
RPArray<MbContour> & c,
const MbCurve3D * spine, // осевая линия может быть NULL
const MbCurve3D * spine, // осевая линия может быть c3d_null
const LoftedValues & params,
RPArray<MbCurve3D> * guideCurves,
SArray<MbCartPoint3D> * ps,
@@ -942,8 +942,8 @@ MATH_FUNC(MbResultType) EvolutionResult( MbSolid & solid,
\en An array of generating contours coordinate systems. \~
\param[in] c - \ru Множество образующих контуров.
\en An array of generating contours. \~
\param[in] spine - \ru Направляющая кривая (может быть NULL).
\en A guide curve (can be NULL). \~
\param[in] spine - \ru Направляющая кривая (может быть c3d_null).
\en A guide curve (can be c3d_null). \~
\param[in] params - \ru Параметры операции.
\en The operation parameters. \~
\param[in] oType - \ru Тип булевой операции.
@@ -995,8 +995,8 @@ MATH_FUNC(MbResultType) LoftedResult( MbSolid & solid,
\en An array of generating contours surfaces. \~
\param[in] c - \ru Множество образующих контуров.
\en An array of generating contours. \~
\param[in] spine - \ru Осевая кривая (может быть NULL).
\en A guide curve (can be NULL). \~
\param[in] spine - \ru Осевая кривая (может быть c3d_null).
\en A guide curve (can be c3d_null). \~
\param[in] params - \ru Параметры операции.
\en The operation parameters. \~
\param[in] oType - \ru Тип булевой операции.
@@ -1962,7 +1962,7 @@ MATH_FUNC (MbResultType) UnionResult( MbSolid * solid,
const MbSNameMaker & names,
bool isArray,
MbSolid *& result,
RPArray<MbSolid> * notGluedSolids = NULL );
RPArray<MbSolid> * notGluedSolids = c3d_null );
//------------------------------------------------------------------------------
@@ -2005,7 +2005,7 @@ MATH_FUNC (MbResultType) UnionSolid( RPArray<MbSolid> & solids,
const MbSNameMaker & names,
bool isArray,
MbSolid *& result,
RPArray<MbSolid> * notGluedSolids = NULL );
RPArray<MbSolid> * notGluedSolids = c3d_null );
//------------------------------------------------------------------------------
@@ -2365,8 +2365,8 @@ MATH_FUNC (MbResultType) ThinSolid( const MbSurface & surface,
//------------------------------------------------------------------------------
/** \brief \ru Создать отверстие, карман, фигурный паз в теле.
\en Create a hole, a pocket, a groove in the solid. \~
\details \ru Cоздать отверстие, карман, фигурный паз в теле или создать cверло, бобышку, если solid==NULL. \n
\en Create a hole, a pocket, a groove in the solid or create a drill, a boss if 'solid' == NULL. \n \~
\details \ru Cоздать отверстие, карман, фигурный паз в теле или создать cверло, бобышку, если solid==c3d_null. \n
\en Create a hole, a pocket, a groove in the solid or create a drill, a boss if 'solid' == c3d_null. \n \~
\param[in] solid - \ru Исходное тело.
\en The source solid. \~
\param[in] sameShell - \ru Режим копирования тела.
+2 -2
View File
@@ -784,8 +784,8 @@ MATH_FUNC (MbResultType) MiddlePlaces( const MbCurve3D & curve1
\en The first guide curve. \~
\param[in] g2 - \ru Вторая направляющая кривая (g1==g2 совпадает с первой при cs_Round).
\en The second guide curve (g1==g2 the same first guide for st_Round). \~
\param[in] c0 - \ru Дополнительная направляющая кривая (может быть NULL).
\en The additional guide curve (may be NULL). \~
\param[in] c0 - \ru Дополнительная направляющая кривая (может быть c3d_null).
\en The additional guide curve (may be c3d_null). \~
\param[in] form - \ru Форма сечения поверхности (0, 1, 2, 3).
\en The form of the surface section (0, 1, 2, 3). \~
\param[in] sense - \ru Направление нормали поверхности направляющей кривой (для guide1==guide2).
+137 -89
View File
@@ -21,9 +21,11 @@
#include <mb_cart_point3d.h>
#include <mb_vector3d.h>
#include <space_item.h>
#include <wire_frame.h>
#include <mb_nurbs_function.h>
#include <mb_point_mating.h>
#include <mb_operation_result.h>
#include <op_curve_parameter.h>
class MATH_CLASS MbAxis3D;
@@ -74,12 +76,15 @@ class MATH_CLASS MbSNameMaker;
*/
// ---
MATH_FUNC (MbResultType) CalculatePipePoints( const MbCartPoint3D & origin1,
const MbVector3D & direction1,
double length1, double radius1,
const MbVector3D & direction1,
double length1,
double radius1,
const MbCartPoint3D & origin2,
const MbVector3D & direction2,
double length2, double radius2,
MbCartPoint3D & result1, MbCartPoint3D & result2 );
const MbVector3D & direction2,
double length2,
double radius2,
MbCartPoint3D & result1,
MbCartPoint3D & result2 );
//------------------------------------------------------------------------------
@@ -89,8 +94,8 @@ MATH_FUNC (MbResultType) CalculatePipePoints( const MbCartPoint3D & origin1,
\en Create an offset curve from a planar curve. \n \~
\param[in] curve - \ru Исходная кривая.
\en The initial curve. \~
\param[in] d - \ru Величина эквидистанты.
\en The offset distance. \~
\param[in] dist - \ru Величина эквидистанты.
\en The offset distance. \~
\param[out] result - \ru Эквидистантная кривая.
\en The offset curve. \~
\return \ru Возвращает код результата операции.
@@ -98,17 +103,17 @@ MATH_FUNC (MbResultType) CalculatePipePoints( const MbCartPoint3D & origin1,
\ingroup Curve3D_Modeling
*/
// ---
MATH_FUNC (MbResultType) OffsetPlaneCurve( const MbCurve3D & curve,
double d,
MbCurve3D *& result );
MATH_FUNC (MbResultType) OffsetPlaneCurve( const MbCurve3D & curve,
double dist,
MbCurve3D *& result );
//------------------------------------------------------------------------------
/** \brief \ru Создать эквидистантную кривую.
\en Create an offset curve. \~
\details \ru Создать эквидистантную кривую по трехмерной кривой и вектору направления. \n
\en Create an offset curve from a three-dimensional curve and a direction vector. \n \~
\param[in] initCurve - \ru Постранственная кривая, к которой строится эквидистантная.
/** \brief \ru Создать эквидистантную кривую в пространстве.
\en Create an offset curve in space. \~
\details \ru Создать эквидистантную кривую в пространстве по трехмерной кривой и вектору направления. \n
\en Create an offset curve in space from a three-dimensional curve and a direction vector. \n \~
\param[in] initCurve - \ru Пространственная кривая, к которой строится эквидистантная.
\en A space curve for which to construct the offset curve. \~
\param[in] offsetVect - \ru Вектор, задающий смещение в точке кривой.
\en The displacement vector at a point of the curve. \~
@@ -129,6 +134,7 @@ MATH_FUNC (MbResultType) OffsetPlaneCurve( const MbCurve3D & curve,
\ingroup Curve3D_Modeling
*/
//---
DEPRECATE_DECLARE
MATH_FUNC (MbResultType) OffsetCurve( const MbCurve3D & initCurve,
const MbVector3D & offsetVect,
const bool useFillet,
@@ -140,20 +146,41 @@ MATH_FUNC (MbResultType) OffsetCurve( const MbCurve3D & initCurve,
//------------------------------------------------------------------------------
/** \brief \ru Создать эквидистантную кривую.
\en Create an offset curve. \~
\details \ru Создать эквидистантную кривую по поверхностной кривой и значению смещения. \n
\en Create an offset curve from a curve on a surface and a shift value. \n \~
/** \brief \ru Создать эквидистантную кривую в пространстве.
\en Create an offset curve in space. \~
\details \ru Создать эквидистантную кривую в пространстве по трехмерной кривой и вектору направления. \n
\en Create an offset curve in space from a three-dimensional curve and a direction vector. \n \~
\param[in] initCurve - \ru Пространственная кривая, к которой строится эквидистантная.
\en A space curve for which to construct the offset curve. \~
\param[in] params - \ru Параметры.
\en Parameters. \~
\param[out] result - \ru Каркас с построенными кривыми.
\en The frame with the constructed curves. \~
\return \ru Возвращает код результата операции.
\en Returns operation result code. \~
\ingroup Curve3D_Modeling
*/
//---
MATH_FUNC (MbResultType) OffsetCurve( const MbCurve3D & initCurve,
const MbSpatialOffsetCurveParams & params,
c3d::WireFrameSPtr & result );
//------------------------------------------------------------------------------
/** \brief \ru Создать эквидистантную кривую на поверхности.
\en Create an offset curve on a surface. \~
\details \ru Создать эквидистантную кривую на поверхности по поверхностной кривой и значению смещения. \n
\en Create an offset curve on a surface from a curve on the surface and a shift value. \n \~
\param[in] curve - \ru Кривая на поверхности грани face.
\en A curve on face 'face' surface. \~
\param[in] face - \ru Грань, на которой строится эквидистанта.
\en The edge on which to build the offset curve. \~
\param[in] face - \ru Грань, на которой строится эквидистанта.
\en The face on which to build the offset curve. \~
\param[in] dirAxis - \ru Направление смещения с точкой приложения.
\en The offset direction with a point of application. \~
\param[in] dist - \ru Величина смещения.
\en The offset distance. \~
\param[in] snMaker - \ru Именователь кривых каркаса.
\en An object defining the frame curves names. \~
\en The offset direction with a reference point. \~
\param[in] dist - \ru Величина смещения.
\en The offset distance. \~
\param[in] snMaker - \ru Именователь кривых каркаса.
\en An object defining the frame curves names. \~
\param[out] result - \ru Каркас с построенными кривыми.
\en The frame with the constructed curves. \~
\return \ru Возвращает код результата операции.
@@ -161,6 +188,7 @@ MATH_FUNC (MbResultType) OffsetCurve( const MbCurve3D & initCurve,
\ingroup Curve3D_Modeling
*/
//---
DEPRECATE_DECLARE
MATH_FUNC (MbResultType) OffsetCurve( const MbCurve3D & curve,
const MbFace & face,
const MbAxis3D & dirAxis,
@@ -169,11 +197,32 @@ MATH_FUNC (MbResultType) OffsetCurve( const MbCurve3D & curve,
MbWireFrame *& result );
//------------------------------------------------------------------------------
/** \brief \ru Создать эквидистантную кривую на поверхности.
\en Create an offset curve on a surface. \~
\details \ru Создать эквидистантную кривую на поверхности по поверхностной кривой и значению смещения. \n
\en Create an offset curve on a surface from a curve on the surface and a shift value. \n \~
\param[in] curve - \ru Кривая на поверхности грани face.
\en A curve on face 'face' surface. \~
\param[in] params - \ru Параметры.
\en Parameters. \~
\param[out] result - \ru Каркас с построенными кривыми.
\en The frame with the constructed curves. \~
\return \ru Возвращает код результата операции.
\en Returns operation result code. \~
\ingroup Curve3D_Modeling
*/
//---
MATH_FUNC (MbResultType) OffsetCurve( const MbCurve3D & curve,
const MbSurfaceOffsetCurveParams & params,
c3d::WireFrameSPtr & result );
//------------------------------------------------------------------------------
/** \brief \ru Создать проекцию кривой на поверхность.
\en Create a curve projection onto the surface. \~
\details \ru Создать проекцию кривой curve на поверхность surface (направление проецирования direction может быть NULL). \n
\en Create the projection of a curve onto surface 'surface' (the projection direction 'direction' can be NULL). \n \~
\details \ru Создать проекцию кривой curve на поверхность surface (направление проецирования direction может быть c3d_null). \n
\en Create the projection of a curve onto surface 'surface' (the projection direction 'direction' can be c3d_null). \n \~
\param[in] surface - \ru Поверхность для проецирования.
\en The surface to project onto. \~
\param[in] curve - \ru Проецируемая кривая.
@@ -193,13 +242,13 @@ MATH_FUNC (MbResultType) OffsetCurve( const MbCurve3D & curve,
\ingroup Curve3D_Modeling
*/
// ---
MATH_FUNC (MbResultType) CurveProjection( const MbSurface & surface,
const MbCurve3D & curve,
MbVector3D * direction,
bool createExact,
bool truncateByBounds,
RPArray<MbCurve3D> & result,
VERSION version = Math::DefaultMathVersion() );
MATH_FUNC (MbResultType) CurveProjection( const MbSurface & surface,
const MbCurve3D & curve,
MbVector3D * direction,
bool createExact,
bool truncateByBounds,
RPArray<MbCurve3D> & result,
VERSION version = Math::DefaultMathVersion() );
//------------------------------------------------------------------------------
@@ -222,12 +271,12 @@ MATH_FUNC (MbResultType) CurveProjection( const MbSurface & surface,
\ingroup Curve3D_Modeling
*/
//---
MATH_FUNC (MbResultType) CurveByTwoProjections( const MbPlacement3D & place1,
const MbCurve & curve1,
const MbPlacement3D & place2,
const MbCurve & curve2,
RPArray<MbCurve3D> & result,
VERSION version = Math::DefaultMathVersion() );
MATH_FUNC (MbResultType) CurveByTwoProjections( const MbPlacement3D & place1,
const MbCurve & curve1,
const MbPlacement3D & place2,
const MbCurve & curve2,
RPArray<MbCurve3D> & result,
VERSION version = Math::DefaultMathVersion() );
//------------------------------------------------------------------------------
@@ -260,14 +309,14 @@ MATH_FUNC (MbResultType) CurveByTwoProjections( const MbPlacement3D & place1,
\ingroup Curve3D_Modeling
*/
//---
MATH_FUNC (MbResultType) ProjectionCurve( const MbCurve3D & curve,
const RPArray<MbFace> & faces,
const MbVector3D * dir,
const bool createExact,
const bool truncateByBounds,
const MbSNameMaker & snMaker,
RPArray<MbCurve3D> & result,
SArray<uintptr_t> * resultIndices );
MATH_FUNC (MbResultType) ProjectionCurve( const MbCurve3D & curve,
const RPArray<MbFace> & faces,
const MbVector3D * dir,
const bool createExact,
const bool truncateByBounds,
const MbSNameMaker & snMaker,
RPArray<MbCurve3D> & result,
SArray<uintptr_t> * resultIndices );
//------------------------------------------------------------------------------
@@ -304,16 +353,16 @@ MATH_FUNC (MbResultType) ProjectionCurve( const MbCurve3D & curve,
\ingroup Curve3D_Modeling
*/
//---
MATH_FUNC (MbResultType) ProjectionCurve( const MbWireFrame & wireFrame,
const bool sameWireFrame,
const MbSolid & solid,
const bool same,
const SArray<size_t> & faceIndices,
const MbVector3D * dir,
const bool createExact,
const bool truncateByBounds,
const MbSNameMaker & snMaker,
MbWireFrame *& resFrame );
MATH_FUNC (MbResultType) ProjectionCurve( const MbWireFrame & wireFrame,
const bool sameWireFrame,
const MbSolid & solid,
const bool same,
const SArray<size_t> & faceIndices,
const MbVector3D * dir,
const bool createExact,
const bool truncateByBounds,
const MbSNameMaker & snMaker,
MbWireFrame *& resFrame );
//------------------------------------------------------------------------------
@@ -330,8 +379,7 @@ MATH_FUNC (MbResultType) ProjectionCurve( const MbWireFrame & wireFrame,
\ingroup Curve3D_Modeling
*/
//---
MATH_FUNC (bool) EliminateProjectionCurveOverlay( RPArray<MbCurve3D> & curves,
SArray<uintptr_t> * indices );
MATH_FUNC (bool) EliminateProjectionCurveOverlay( RPArray<MbCurve3D> & curves, SArray<uintptr_t> * indices );
//------------------------------------------------------------------------------
@@ -402,7 +450,7 @@ MATH_FUNC (MbResultType) SilhouetteCurve( const MbFace & face,
\en The axis of lathe section. \~
\param[in] removeOnSurfaceBounds - \ru Удалить линии очерка, совпадающие с границами поверхности.
\en Remove the isocline curves coincident with the surface bounds. \~
\param[out] result - \ru Выходной массив линий очерка.
\param[out] curves - \ru Выходной массив линий очерка.
\en The output array of isocline curves. \~
\param[in] version - \ru Версия построения.
\en The version. \~
@@ -686,13 +734,13 @@ MATH_FUNC( MbResultType ) IntersectionCurve( const MbSurface & surf1, bool ext1,
\ingroup Curve3D_Modeling
*/
//---
MATH_FUNC (MbResultType) SpaceSplineThrough( const SArray<MbCartPoint3D> & points,
MbeSplineParamType paramType,
size_t degree,
bool closed,
RPArray< MbPntMatingData<MbVector3D> > & transitions,
const MbSNameMaker & snMaker,
MbWireFrame *& result );
MATH_FUNC (MbResultType) SpaceSplineThrough( const SArray<MbCartPoint3D> & points,
MbeSplineParamType paramType,
size_t degree,
bool closed,
RPArray<c3d::PntMatingData3D> & transitions,
const MbSNameMaker & snMaker,
MbWireFrame *& result );
//------------------------------------------------------------------------------
@@ -724,14 +772,14 @@ MATH_FUNC (MbResultType) SpaceSplineThrough( const SArray<MbCartPoint3D> & point
*/
//---
MATH_FUNC (MbResultType) SpaceSplineBy( const SArray<MbCartPoint3D> & points,
size_t degree,
bool closed,
size_t degree,
bool closed,
const SArray<double> * weights,
const SArray<double> * knots,
MbPntMatingData<MbVector3D> * begData,
MbPntMatingData<MbVector3D> * endData,
c3d::PntMatingData3D * begData,
c3d::PntMatingData3D * endData,
const MbSNameMaker & snMaker,
MbWireFrame *& result );
MbWireFrame *& result );
//------------------------------------------------------------------------------
@@ -776,14 +824,14 @@ MATH_FUNC (MbResultType) SpaceSplineBy( const SArray<MbCartPoint3D> & points,
\ingroup Curve3D_Modeling
*/
//---
MATH_FUNC (MbResultType) SurfaceSpline( const MbSurface & surface,
bool throughPoints,
SArray<MbCartPoint> & paramPnts,
SArray<double> & paramWts,
bool paramClosed,
RPArray< MbPntMatingData<MbVector3D> > & spaceTransitions,
const MbSNameMaker & snMaker,
MbWireFrame *& result );
MATH_FUNC (MbResultType) SurfaceSpline( const MbSurface & surface,
bool throughPoints,
SArray<MbCartPoint> & paramPnts,
SArray<double> & paramWts,
bool paramClosed,
RPArray<c3d::PntMatingData3D> & spaceTransitions,
const MbSNameMaker & snMaker,
MbWireFrame *& result );
//------------------------------------------------------------------------------
@@ -936,7 +984,7 @@ MATH_FUNC (MbResultType) ConnectingSpline( const MbCurve3D & curve1, double t1,
что начало кривой сопряжения будет находится в точке с параметором t1,
t1 и t2 - параметры кривых curve1 и curve2, в соответствующих точках которых начинается и заканчивается скругление. \n
Параметр sense - прямое или обратное направление кривой скругления. \n
Кривая filletCurve - это кривая сопряжения, дуга (когда surface == NULL) или кривая на поверхности цилиндра surface. \n
Кривая filletCurve - это кривая сопряжения, дуга (когда surface == c3d_null) или кривая на поверхности цилиндра surface. \n
Поверхность surface - это цилиндрическая поверхность, на которой строится кривая сопряжения в общем случае.
Для управления жизненным циклом поверхномти следует миспользовать методы ::AddRefItem(surface) и ::ReleaseItem(surface). \n
\en Create a fillet curve for curves. \n
@@ -952,22 +1000,22 @@ MATH_FUNC (MbResultType) ConnectingSpline( const MbCurve3D & curve1, double t1,
that the fillet curve start is at the point with parameter t1,
t1 and t2 are parameters of curves 'curve1' and 'curve2' which correspond to the start point and the end point of the fillet. \n
Parameter 'sense' determines forward or backward orientation of the fillet curve. \n
Curve filletCurve is a fillet curve, an arc (when 'surface' == NULL) or a curve on a cylindric surface 'surface'. \n
Curve filletCurve is a fillet curve, an arc (when 'surface' == c3d_null) or a curve on a cylindric surface 'surface'. \n
Surface 'surface' is a cylindric surface on which the fillet curve is constructed in general case.
Use ::AddRefItem(surface) and ::ReleaseItem(surface) methods to manage the surface lifecycle. \n \~
\param[in] curve1 - \ru Соединяемая кривая 1.
\en A curve 1 to be connected. \~
\param[in/out] t1 - \ru Параметр точки на кривой 1 соединения с кривой соединения.
\param[in,out] t1 - \ru Параметр точки на кривой 1 соединения с кривой соединения.
\en A point parameter on curve 1 of connection with fillet curve. \~
\param[out] w1 - \ru Параметр края на кривой 1.
\en The parameter of curve 1 end point. \~
\param[in] curve2 - \ru Соединяемая кривая 2.
\en A curve 2 to be connected. \~
\param[in/out] t2 - \ru Параметр точки на кривой 2 соединения с кривой соединения.
\param[in,out] t2 - \ru Параметр точки на кривой 2 соединения с кривой соединения.
\en A point parameter on curve 2 of connection with fillet curve. \~
\param[out] w2 - \ru Параметр края на кривой 2.
\en The parameter of curve 2 end point. \~
\param[in/out] radius - \ru Радиус дуги или цилиндра.
\param[in,out] radius - \ru Радиус дуги или цилиндра.
\en The radius of an arc or a cylinder. \~
\param[in] sense - \ru Прямое (true) или обратное (false) направление кривой скругления.
\en The forward (true) or the backward (false) direction of the fillet curve. \~
@@ -977,8 +1025,8 @@ MATH_FUNC (MbResultType) ConnectingSpline( const MbCurve3D & curve1, double t1,
\en The fillet type. \~
\param[in] names - \ru Именователь кривых каркаса.
\en An object defining the frame curves names. \~
\param[out] surface - \ru Поверхность, которая будет создана и на которой базируется соединительная кривая, (может быть возращён NULL).
\en A surface on which the fillet curve is based on, it will be created by the method (can be NULL). \~
\param[out] surface - \ru Поверхность, которая будет создана и на которой базируется соединительная кривая, (может быть возращён c3d_null).
\en A surface on which the fillet curve is based on, it will be created by the method (can be c3d_null). \~
\param[out] result - \ru Каркас с построенными кривыми.
\en The frame with the constructed curves. \~
\return \ru Возвращает код результата операции.
+3 -3
View File
@@ -464,7 +464,7 @@ bool IsMonotonic( const TypeVector & items, bool isAscending, bool allowEqual =
isOk = true;
if ( allowEqual ) {
for ( size_t k = 1; k < cnt; k++ ) {
for ( size_t k = 1; k < cnt; ++k ) {
if ( isAscending && items[k] < items[k-1] ) {
isOk = false;
break;
@@ -476,7 +476,7 @@ bool IsMonotonic( const TypeVector & items, bool isAscending, bool allowEqual =
}
}
else {
for ( size_t k = 1; k < cnt; k++ ) {
for ( size_t k = 1; k < cnt; ++k ) {
if ( isAscending && items[k] <= items[k-1] ) {
isOk = false;
break;
@@ -614,7 +614,7 @@ bool IsPlanar( const SpacePointsVector & pnts, MbPlacement3D * place, double mEp
}
}
}
if ( isPlanar && place != NULL )
if ( isPlanar && place != c3d_null )
place->Init( wrkPlace );
}
}
+8 -8
View File
@@ -92,8 +92,8 @@ MATH_FUNC (MbeState) DeleteCurvePart( const MbCartPoint & p1,
\en The point indicating the piece of a curve to be kept. \~
\param[in, out] curve - \ru Изменяемая кривая.
\en The curve to be modified. \~
\param[in, out] part2 - \ru Всегда NULL.
\en This value is always NULL. \~
\param[in, out] part2 - \ru Всегда c3d_null.
\en This value is always c3d_null. \~
\return \ru Состояние кривой после ее модификации.
\en The state of a curve after its modification. \~
\warning \ru Для внутреннего использования.
@@ -124,8 +124,8 @@ MATH_FUNC (MbeState) TrimmCurvePart( List<MbCurve> & curveList,
\en The point indicating the piece of a closed curve to be kept \~
\param[in, out] curve - \ru Изменяемая кривая.
\en The curve to be modified. \~
\param[in, out] part2 - \ru Всегда NULL.
\en This value is always NULL. \~
\param[in, out] part2 - \ru Всегда c3d_null.
\en This value is always c3d_null. \~
\return \ru Состояние кривой после ее модификации.
\en The state of a curve after its modification. \~
\warning \ru Для внутреннего использования.
@@ -155,8 +155,8 @@ MATH_FUNC (MbeState) TrimmCurvePart( const MbCartPoint & p1,
\en Boundary curve for justification. \~
\param[in] pnt - \ru Точка для выбора нужной части кривой.
\en The point for selecting the piece of a curve. \~
\param[in, out] part2 - \ru Всегда NULL.
\en This value is always NULL. \~
\param[in, out] part2 - \ru Всегда c3d_null.
\en This value is always c3d_null. \~
\return \ru Состояние кривой после ее модификации.
\en The state of a curve after modification. \~
\warning \ru Для внутреннего использования.
@@ -222,8 +222,8 @@ MATH_FUNC (MbeState) BreakByClosedCurves( MbCurve & curve,
const RPArray<const MbCurve> & limits,
bool inside,
PArray<MbCurve> & part2,
SArray<MbCrossPoint> * cross = NULL,
bool * isEqualCurve = NULL,
SArray<MbCrossPoint> * cross = c3d_null,
bool * isEqualCurve = c3d_null,
bool cutOnCurve = false );
+1 -1
View File
@@ -440,7 +440,7 @@ MATH_FUNC (MbeProcessState) MinMaxDistances( const MbSurface & surface1,
MbMinMaxSurfDists & allResults,
MbMinMaxSurfDists & minResults,
MbMinMaxSurfDists & maxResults,
IProgressIndicator * indicator = NULL );
IProgressIndicator * indicator = c3d_null );
#endif // __ALG_DIMENSION_H
+2 -2
View File
@@ -95,7 +95,7 @@ public:
public:
/// \ru Отрисовать объект. \en Draw an any object.
virtual void DrawItem( const MbRefItem * ri, int R, int G, int B, int width = 1 ) = 0;
virtual void DrawItem( const MbRefItem * ri, int R, int G, int B, const MbMatrix3D & from = MbMatrix3D::identity, int width = 1 ) = 0;
/// \ru Отрисовать трехмерный геометрический объект. \en Draw a three-dimensional geometric object.
virtual void DrawItem( const MbSpaceItem * gi, int R, int G, int B, int width = 1 ) = 0;
// Отрисовать трехмерный геометрический объект с размещением по матрице.
@@ -1028,7 +1028,7 @@ void DrawVertexEdges( const Vertex * vertex, int vR, int vG, int vB,
MbStepData stepData( ist_SpaceStep, Math::visualSag );
MbFormNote note(true, false);
for ( size_t k = 0, cnt = edges.size(); k < cnt; ++k ) {
if ( edges[k] != NULL ) {
if ( edges[k] != c3d_null ) {
edges[k]->GetCurve().CalculateMesh( stepData, note, edgeMesh );
DrawGI::DrawMesh( &edgeMesh, TRGB_WHITE );
DrawGI::DrawMesh( &edgeMesh, eR, eG, eB );
+9 -9
View File
@@ -124,7 +124,7 @@ public:
};
#define EMPTY_STR StrData<const TCHAR *>( NULL ) ///< \ru Создание пустой строки \en Creation of an empty string
#define EMPTY_STR StrData<const TCHAR *>( c3d_null ) ///< \ru Создание пустой строки \en Creation of an empty string
//------------------------------------------------------------------------------
@@ -279,14 +279,14 @@ MATH_FUNC (ProgressBarWrapper *) CreateProgressBar( IProgressIndicator * progInd
\en The wrapper of the execution progress indicator. \~
\param[in] msg - \ru Данные о строке.
\en Data of a string \~
\return \ru true, если progBar != NULL и удалось задать имя процесса.
\return \ru true, если progBar != c3d_null и удалось задать имя процесса.
\en true if 'progBar' is not null and the process name is successfully set. \~
\ingroup Base_Items
*/
// ---
inline bool SetProgressBarName( ProgressBarWrapper * progBar, IStrData & msg )
{
if ( progBar != NULL )
if ( progBar != c3d_null )
return progBar->SetName( msg );
return false;
}
@@ -308,7 +308,7 @@ inline bool SetProgressBarName( ProgressBarWrapper * progBar, IStrData & msg )
// ---
inline bool SetProgressBarValue( ProgressBarWrapper * progBar, size_t v )
{
if ( progBar != NULL && !progBar->IsCancel() )
if ( progBar != c3d_null && !progBar->IsCancel() )
return progBar->SetProgress( v );
return false;
}
@@ -328,7 +328,7 @@ inline bool SetProgressBarValue( ProgressBarWrapper * progBar, size_t v )
// ---
inline void FinishProgressBar( ProgressBarWrapper * progBar )
{
if ( progBar != NULL ) {
if ( progBar != c3d_null ) {
if ( progBar->IsCancel() ) progBar->Stop();
else progBar->Success();
}
@@ -347,7 +347,7 @@ inline void FinishProgressBar( ProgressBarWrapper * progBar )
// ---
inline bool StopProgressBar( ProgressBarWrapper * progBar )
{
if ( progBar != NULL && progBar->IsCancel() ) {
if ( progBar != c3d_null && progBar->IsCancel() ) {
progBar->Stop();
return true;
}
@@ -362,14 +362,14 @@ inline bool StopProgressBar( ProgressBarWrapper * progBar )
\en The wrapper of the execution progress indicator. \~
\param[in] useParentName - \ru Флаг использования имени родителя.
\en The flag of using the parent name. \~
\return \ru true, если progBar != NULL.
\return \ru true, если progBar != c3d_null.
\en true if 'progBar' is not null. \~
\ingroup Base_Items
*/
// ---
inline bool UseParentName( ProgressBarWrapper * progBar, bool useParentName )
{
if ( progBar != NULL ) {
if ( progBar != c3d_null ) {
progBar->UseParentName( useParentName );
return true;
}
@@ -389,7 +389,7 @@ inline bool UseParentName( ProgressBarWrapper * progBar, bool useParentName )
// ---
inline bool IsParentNameUsed( const ProgressBarWrapper * progBar )
{
if ( progBar != NULL )
if ( progBar != c3d_null )
return progBar->IsParentNameUsed();
return false;
+2 -2
View File
@@ -76,7 +76,7 @@ MbFaceShell * ConvertGridToShell( const MbGrid & grid,
const GridsToShellValues & params,
const MbSNameMaker & snMaker,
MbResultType & res,
IProgressIndicator * progBar = NULL );
IProgressIndicator * progBar = c3d_null );
//------------------------------------------------------------------------------
@@ -86,7 +86,7 @@ MbFaceShell * ConvertMeshToShell( const MbMesh & mesh,
const GridsToShellValues & params,
const MbSNameMaker & snMaker,
MbResultType & res,
IProgressIndicator * progBar = NULL );
IProgressIndicator * progBar = c3d_null );
//------------------------------------------------------------------------------
+24 -24
View File
@@ -57,9 +57,9 @@ class MbVector3D;
\en The discriminant is less than 1. Otherwise it
will be set to 0.99999999 automatically. \~
\return \ru Указатель на построенную кривую \n
NULL, если не удалось построить конику для заданных параметров.
c3d_null, если не удалось построить конику для заданных параметров.
\en The pointer to the constructed curve \n
is NULL if a try to construct a conic for a given parameters has failed. \~
is c3d_null if a try to construct a conic for a given parameters has failed. \~
\ingroup Curve3D_Modeling
*/
// ---
@@ -87,9 +87,9 @@ MATH_FUNC ( MbCurve3D * ) NurbsConic_1( const MbCartPoint3D & mbPoint0, const Mb
\en The discriminant is less than 1. Otherwise it
will be set to 0.99999999 automatically. \~
\return \ru Указатель на построенную кривую \n
NULL, если не удалось построить конику для заданных параметров.
c3d_null, если не удалось построить конику для заданных параметров.
\en The pointer to the constructed curve \n
is NULL if a try to construct a conic for a given parameters has failed. \~
is c3d_null if a try to construct a conic for a given parameters has failed. \~
\ingroup Curve_Modeling
*/
// ---
@@ -113,9 +113,9 @@ MATH_FUNC ( MbCurve * ) NurbsConic_1( const MbCartPoint & mbPoint0, const MbCart
\param[in] mbVertex - \ru Координаты вершины угла, в который надо вписать конику.
\en Coordinates of the vertex of angle which should be inscribed into the conic. \~
\return \ru Указатель на построенную кривую \n
NULL, если не удалось постороить конику для заданных параметров.
c3d_null, если не удалось постороить конику для заданных параметров.
\en The pointer to the constructed curve \n
is NULL if a try to construct a conic for given parameters has failed. \~
is c3d_null if a try to construct a conic for given parameters has failed. \~
\ingroup Curve3D_Modeling
*/
// ---
@@ -138,9 +138,9 @@ MATH_FUNC ( MbCurve3D * ) NurbsConic_2( std::vector<MbCartPoint3D> & vmbConicPoi
\param[in] mbVertex - \ru Координаты вершины угла, в который надо вписать конику.
\en Coordinates of the vertex of angle which should be inscribed into the conic. \~
\return \ru Указатель на построенную кривую \n
NULL, если не удалось постороить конику для заданных параметров.
c3d_null, если не удалось постороить конику для заданных параметров.
\en The pointer to the constructed curve \n
is NULL if a try to construct a conic for given parameters has failed. \~
is c3d_null if a try to construct a conic for given parameters has failed. \~
\ingroup Curve_Modeling
*/
// ---
@@ -165,9 +165,9 @@ MATH_FUNC ( MbCurve * ) NurbsConic_2( std::vector<MbCartPoint> & vmbConicPoints,
\param[in] mbTangent2 - \ru Наклон в конце кривой.
\en Inclination at end of a curve. \~
\return \ru Указатель на построенную кривую \n
NULL, если не удалось постороить конику для заданных параметров.
c3d_null, если не удалось постороить конику для заданных параметров.
\en The pointer to the constructed curve \n
is NULL if a try to construct a conic for given parameters has failed. \~
is c3d_null if a try to construct a conic for given parameters has failed. \~
\ingroup Curve3D_Modeling
*/
// ---
@@ -193,9 +193,9 @@ MATH_FUNC ( MbCurve3D * ) NurbsConic_3( const std::vector<MbCartPoint3D> & vmbCo
\param[in] mbTangent2 - \ru Наклон в конце кривой.
\en Inclination at end of a curve. \~
\return \ru Указатель на построенную кривую \n
NULL, если не удалось постороить конику для заданных параметров.
c3d_null, если не удалось постороить конику для заданных параметров.
\en The pointer to the constructed curve \n
is NULL if a try to construct a conic for given parameters has failed. \~
is c3d_null if a try to construct a conic for given parameters has failed. \~
\ingroup Curve_Modeling
*/
// ---
@@ -224,9 +224,9 @@ MATH_FUNC ( MbCurve * ) NurbsConic_3( const std::vector<MbCartPoint> & vmbConicP
\en The discriminant is less than 1. Otherwise it
will be set to 0.99999999 automatically. \~
\return \ru Указатель на построенную кривую \n
NULL, если не удалось построить конику для заданных параметров.
c3d_null, если не удалось построить конику для заданных параметров.
\en The pointer to the constructed curve \n
is NULL if a try to construct a conic for given parameters has failed. \~
is c3d_null if a try to construct a conic for given parameters has failed. \~
\ingroup Curve3D_Modeling
*/
// ---
@@ -256,9 +256,9 @@ MATH_FUNC ( MbCurve3D * ) NurbsConic_4( const MbCartPoint3D & mbPoint1, const Mb
\en The discriminant is less than 1. Otherwise it
will be set to 0.99999999 automatically. \~
\return \ru Указатель на построенную кривую \n
NULL, если не удалось построить конику для заданных параметров.
c3d_null, если не удалось построить конику для заданных параметров.
\en The pointer to the constructed curve \n
is NULL if a try to construct a conic for given parameters has failed. \~
is c3d_null if a try to construct a conic for given parameters has failed. \~
\ingroup Curve_Modeling
*/
// ---
@@ -288,9 +288,9 @@ MATH_FUNC ( MbCurve * ) NurbsConic_4( const MbCartPoint & mbPoint1, const MbCart
\param[in] tanPntNb - \ru Номер точке, в которой задан наклон.
\en Point number at which the inclination is specified. \~
\return \ru Указатель на построенную кривую \n
NULL, если не удалось постороить конику для заданных параметров.
c3d_null, если не удалось постороить конику для заданных параметров.
\en The pointer to the constructed curve \n
is NULL if a try to construct a conic for given parameters has failed. \~
is c3d_null if a try to construct a conic for given parameters has failed. \~
\ingroup Curve3D_Modeling
*/
// ---
@@ -319,9 +319,9 @@ MATH_FUNC ( MbCurve3D * ) NurbsConic_5( const std::vector<MbCartPoint3D> & vmbCo
\param[in] tanPntNb - \ru Номер точке, в которой задан наклон.
\en Point number at which the inclination is specified. \~
\return \ru Указатель на построенную кривую \n
NULL, если не удалось постороить конику для заданных параметров.
c3d_null, если не удалось постороить конику для заданных параметров.
\en The pointer to the constructed curve \n
is NULL if a try to construct a conic for given parameters has failed. \~
is c3d_null if a try to construct a conic for given parameters has failed. \~
\ingroup Curve_Modeling
*/
// ---
@@ -342,9 +342,9 @@ MATH_FUNC ( MbCurve * ) NurbsConic_5( const std::vector<MbCartPoint> & vmbConicP
\en The container for points of a conic: the first point is start point, the last point is end point.
there should be exactly 5 points. \~
\return \ru Указатель на построенную кривую \n
NULL, если не удалось постороить конику для заданных параметров.
c3d_null, если не удалось постороить конику для заданных параметров.
\en The pointer to the constructed curve \n
is NULL if a try to construct a conic for given parameters has failed. \~
is c3d_null if a try to construct a conic for given parameters has failed. \~
\ingroup Curve3D_Modeling
*/
// ---
@@ -365,9 +365,9 @@ MATH_FUNC ( MbCurve3D * ) NurbsConic_6( const std::vector<MbCartPoint3D> & vmbCo
\en The container for points of a conic: the first point is start point, the last point is end point.
there should be exactly 5 points. \~
\return \ru Указатель на построенную кривую \n
NULL, если не удалось постороить конику для заданных параметров.
c3d_null, если не удалось постороить конику для заданных параметров.
\en The pointer to the constructed curve \n
is NULL if a try to construct a conic for given parameters has failed. \~
is c3d_null if a try to construct a conic for given parameters has failed. \~
\ingroup Curve_Modeling
*/
// ---
+7 -7
View File
@@ -43,14 +43,14 @@ class MATH_CLASS MbCubicSpline3D;
радиус скругления в этой точке. При создании заполняются поля m_lineSeg и m_arcSeg.
m_lineSeg - это прямолинейный сегмент из этой точки в следующую. Для последней точки
и замкнутой ломаной - из последней в первую. m_arcSeg - дуга скругления в данной точке.
Если какой-то сегмент был полностью удален или не создан, то его указатель должен быть NULL.
Если какой-то сегмент был полностью удален или не создан, то его указатель должен быть c3d_null.
Объектами m_lineSeg и m_arcSeg не владеет, поэтому и не удаляет их. Объекты из полилинии.
\en Some points may be deleted while the construction, therefore the old index is entered,
it is filled and used in a model. Parameters of a point are its coordinates and
fillet radius in this point. In a time of creation the fields 'm_lineSeg' and 'm_lineSeg' are being filled.
'm_lineSeg' is the straight-line segment from this point to the next point. For the last point
and a closed polyline - from the last point to the first point. 'm_arcSeg'is the arc of a fillet in the given point.
If a segment has been fully deleted or it was not created then the pointer should be NULL.
If a segment has been fully deleted or it was not created then the pointer should be c3d_null.
Object 'm_lineSeg' and 'm_arcSeg' are not owned, therefore they are not deleted. Objects from a polyline. \~
\ingroup Data_Structures
*/
@@ -69,8 +69,8 @@ public:
: m_oldIndex( SYS_MAX_T )
, m_point ()
, m_radius ( 0.0 )
, m_lineSeg ( NULL )
, m_arcSeg ( NULL )
, m_lineSeg ( c3d_null )
, m_arcSeg ( c3d_null )
{}
/// \ru Конструктор копирования. \en Copy constructor.
Polyline3DPoint( const Polyline3DPoint & other )
@@ -250,9 +250,9 @@ MATH_FUNC (void) CreateSmoothFromBezier( const MbBezier & bez, RPArray<MbCurve>
/** \brief \ru Создать кривую заданного типа базе NURBS-кривой.
\en Create a curve of a given type as NURBS-curve. \~
\details \ru Работает для двух типов: pt_LineSegment и pt_Arc. Если не удалось
аппроксимировать с заданной точностью функция вернет NULL.
аппроксимировать с заданной точностью функция вернет c3d_null.
\en It works for the two types: 'pt_LineSegment' and 'pt_Arc'. If approximation with the given tolerance has failed
then the function returns NULL. \~
then the function returns c3d_null. \~
\param[in] nurbs - \ru Исходная NURBS-кривая.
\en The initial NURBS-curve. \~
\param[in] type - \ru Тип кривой, которую требуется создать.
@@ -288,7 +288,7 @@ MATH_FUNC (MbCurve *) ConvertNurbsToCurveOfType( const MbNurbs & nurbs, MbePlane
*/
// ---
MATH_FUNC (MbCurve *) GetFlatCurve( const MbCurve3D & curve3D, const MbMatrix3D & into,
MbRect1D * pRgn = NULL, VERSION version = Math::DefaultMathVersion() );
MbRect1D * pRgn = c3d_null, VERSION version = Math::DefaultMathVersion() );
//------------------------------------------------------------------------------
+11 -11
View File
@@ -94,10 +94,10 @@ public:
// \ru Общие функции геометрического объекта \en Common functions of a geometric object
virtual MbeSpaceType IsA() const; // \ru Тип объекта. \en An object type.
virtual MbSpaceItem & Duplicate( MbRegDuplicate * iReg = NULL ) const; // \ru Создать копию. \en Create a copy.
virtual void Transform( const MbMatrix3D &, MbRegTransform * iReg = NULL ); // \ru Преобразовать согласно матрице. \en Transform according to the matrix.
virtual void Move( const MbVector3D &, MbRegTransform * iReg = NULL ); // \ru Сдвинуть вдоль вектора. \en Move along a vector.
virtual void Rotate( const MbAxis3D &, double angle, MbRegTransform * iReg = NULL ); // \ru Повернуть вокруг оси. \en Rotate about an axis.
virtual MbSpaceItem & Duplicate( MbRegDuplicate * iReg = c3d_null ) const; // \ru Создать копию. \en Create a copy.
virtual void Transform( const MbMatrix3D &, MbRegTransform * iReg = c3d_null ); // \ru Преобразовать согласно матрице. \en Transform according to the matrix.
virtual void Move( const MbVector3D &, MbRegTransform * iReg = c3d_null ); // \ru Сдвинуть вдоль вектора. \en Move along a vector.
virtual void Rotate( const MbAxis3D &, double angle, MbRegTransform * iReg = c3d_null ); // \ru Повернуть вокруг оси. \en Rotate about an axis.
virtual bool IsSame( const MbSpaceItem & other, double accuracy = LENGTH_EPSILON ) const; // \ru Являются ли объекты равными? \en Are the objects equal?
virtual bool IsSimilar( const MbSpaceItem & ) const; // \ru Являются ли объекты подобными? \en Are the objects similar?
virtual bool SetEqual ( const MbSpaceItem & ); // \ru Сделать объекты равным \en Make the objects equal
@@ -151,11 +151,11 @@ public:
virtual const MbItem * GetItemByName( SimpleName n, MbPath & path, MbMatrix3D & from ) const;
// \ru Преобразовать согласно матрице c использованием регистратора селектированные содержимые объекты. \en Transform selected objects according to the matrix using the registrator.
virtual void TransformSelected( const MbMatrix3D & matr, MbRegTransform * iReg = NULL );
virtual void TransformSelected( const MbMatrix3D & matr, MbRegTransform * iReg = c3d_null );
// \ru Сдвинуть вдоль вектора с использованием регистратора селектированные содержимые объекты. \en Move selected objects along the vector using the registrator.
virtual void MoveSelected( const MbVector3D & to, MbRegTransform * iReg = NULL );
virtual void MoveSelected( const MbVector3D & to, MbRegTransform * iReg = c3d_null );
// \ru Повернуть вокруг оси на заданный угол с использованием регистратора селектированные содержимые объекты. \en Rotate selected objects about the axis by the given angle using the registrator.
virtual void RotateSelected( const MbAxis3D & axis, double angle, MbRegTransform * iReg = NULL );
virtual void RotateSelected( const MbAxis3D & axis, double angle, MbRegTransform * iReg = c3d_null );
/// \ru Отдать селектированные содержимые объекты. \en Get selected objects.
bool DetachSelected( RPArray<MbItem> & items, SArray<MbMatrix3D> & matrs, bool selected = true );
/// \ru Отцепить все видимые или невидимые объекты. \en Detach all visible or invisible objects. \~
@@ -310,8 +310,8 @@ template <class ItemsVector>
MbAssembly::MbAssembly( const ItemsVector & items )
: MbItem()
, assemblyItems()
, constraintSystem( NULL )
, m_reactor( NULL )
, constraintSystem( c3d_null )
, m_reactor( c3d_null )
{
#ifdef C3D_DEBUG
// Check a condition of the single owner.
@@ -336,7 +336,7 @@ MbAssembly::MbAssembly( const ItemsVector & items )
template <class ItemsVector>
void MbAssembly::_Init( const ItemsVector & items )
{
C3D_ASSERT( assemblyItems.empty() && (constraintSystem == NULL) );
C3D_ASSERT( assemblyItems.empty() && (constraintSystem == c3d_null) );
SimpleName idCounter = 0;
for ( size_t i = 0, iCount = items.size(); i < iCount; ++i )
@@ -383,7 +383,7 @@ void MbAssembly::GetFacesSet( FacesVector & faces ) const
template <class FacesVector>
void MbInstance::GetFacesSet( FacesVector & faces ) const
{
if ( item != NULL ) {
if ( item != c3d_null ) {
if ( item->IsA() == st_Solid )
static_cast<const MbSolid &>( *item ).GetFacesSet( faces );
else if ( item->IsA() == st_Assembly )
+4 -4
View File
@@ -51,10 +51,10 @@ public :
// \ru Общие функции геометрического объекта. \en Common functions of a geometric object.
virtual MbeSpaceType IsA() const; // \ru Тип объекта. \en An object type.
virtual MbSpaceItem & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Создать копию. \en Create a copy.
virtual void Transform( const MbMatrix3D &, MbRegTransform * = NULL ); // \ru Преобразовать согласно матрице. \en Transform according to the matrix.
virtual void Move ( const MbVector3D &, MbRegTransform * = NULL ); // \ru Сдвинуть вдоль вектора. \en Move along a vector.
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси. \en Rotate about an axis.
virtual MbSpaceItem & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Создать копию. \en Create a copy.
virtual void Transform( const MbMatrix3D &, MbRegTransform * = c3d_null ); // \ru Преобразовать согласно матрице. \en Transform according to the matrix.
virtual void Move ( const MbVector3D &, MbRegTransform * = c3d_null ); // \ru Сдвинуть вдоль вектора. \en Move along a vector.
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси. \en Rotate about an axis.
virtual bool IsSame ( const MbSpaceItem & other, double accuracy = LENGTH_EPSILON ) const; // \ru Являются ли объекты равными? \en Whether the objects are equal?
virtual bool IsSimilar( const MbSpaceItem & init ) const; // \ru Являются ли объекты подобными? \en Whether the objects are similar?
virtual bool SetEqual ( const MbSpaceItem & init ); // \ru Сделать объекты равным. \en Make the objects equal.
+439 -436
View File
@@ -1,436 +1,439 @@
////////////////////////////////////////////////////////////////////////////////
/**
\file
\brief \ru Атрибуты. Цвет. Толщина линий отрисовки. Стиль линий отрисовки. Свойства для OpenGL.
\en Attributes. Color. Thickness of drawing lines. Style of drawing lines. Properties for OpenGL. \~
*/
////////////////////////////////////////////////////////////////////////////////
#ifndef __ATTR_COLOR_H
#define __ATTR_COLOR_H
#include <attr_elementary_attribute.h>
#include <mb_variables.h>
c3d_constexpr uint __RGB__ = 3;
//------------------------------------------------------------------------------
/** \brief \ru Преобразовать цвет по трём компонентам в uint32.
\en Convert a color by 3 components in uint32. \~
\details
\warning \ru Значения компонент цвета должны лежать в диапазоне [ 0; 1 ].
\en Values of color components should belong to the range [ 0; 1 ]. \~
\ingroup Model_Attributes
*/
// ---
inline uint32 RGB2uint32( double r, double g, double b )
{
const double f1 = 255.0 / 256.0;
uint32 uinturgb[3];
const uint32 bt = 256;
uinturgb[0] = uint32 ( 256.0 * r * f1 );
uinturgb[1] = uint32 ( 256.0 * g * f1 );
uinturgb[2] = uint32 ( 256.0 * b * f1 );
for ( int n = 0; n < 3; n++ )
if ( uinturgb[n] >= bt ) {
uinturgb[n] = bt - 1;
C3D_ASSERT_UNCONDITIONAL( false );
}
return uinturgb[0] + bt * ( uinturgb[1] + bt * uinturgb[2] );
}
//------------------------------------------------------------------------------
/** \brief \ru Преобразовать цвет по трём компонентам в uint32.
\en Convert a color by 3 components in uint32. \~
\details
\warning \ru Значения компонент цвета должны лежать в диапазоне [ 0; 1 ].
\en Values of color components should belong to the range [ 0; 1 ]. \~
\ingroup Model_Attributes
*/
// ---
inline uint32 RGB2uint32( float r, float g, float b, float a )
{
const float f1 = 255.0 / 256.0;
uint32 uinturgb[4];
const uint32 bt = 256;
uinturgb[0] = uint32 ( 256.0 * r * f1 );
uinturgb[1] = uint32 ( 256.0 * g * f1 );
uinturgb[2] = uint32 ( 256.0 * b * f1 );
uinturgb[3] = uint32 ( 256.0 * a * f1 );
for ( int n = 0; n < 4; n++ )
if ( uinturgb[n] >= bt ) {
uinturgb[n] = bt - 1;
//C3D_ASSERT_UNCONDITIONAL( false );
}
return uinturgb[0] + bt * ( uinturgb[1] + bt * ( uinturgb[2] + bt * uinturgb[3] ) );
}
//------------------------------------------------------------------------------
/** \brief \ru Преобразовать unit32 в три компоненты цвета.
\en Convert unit32 to 3 components of color. \~
\details
\warning \ru Компоненты цветов лежат в диапазоне [ 0; 1 ].
\en Color components belong to the range [ 0; 1 ]. \~
\ingroup Model_Attributes
*/
// ---
template<typename float_t>
void uint322RGB( uint32 color, float_t& r, float_t& g, float_t& b ) {
const float_t r255 = float_t(1.0 / 255.0);
const uint32 u256 = (uint32)SYS_MAX_UINT8 + 1;
r = float_t ( color % u256);
g = float_t ( (color / 256) % u256);
b = float_t ( (color / 65536) % u256);
r *= r255; g *= r255; b *= r255;
}
//------------------------------------------------------------------------------
/** \brief \ru Преобразовать цвет из модели HSV в uint32.
\en Convert a color from HSV model in uint32. \~
\details \ru Преобразовать цвет из модели HSV в uint32. \n
\en Convert a color from HSV model in uint32. \n \~
\ingroup Model_Attributes
*/
// ---
inline
uint32 HSV2uint32( double h, double s, double v )
{
double hh, p, q, t, ff;
long i;
double r, g, b;
if ( s <= 0.0 ) {
r = v;
g = v;
b = v;
return ::RGB2uint32( r, g, b );
}
hh = h;
if ( hh >= 360.0 )
hh = 0.0;
hh /= 60.0;
i = (long)hh;
ff = hh - i;
p = v * (1.0 - s);
q = v * (1.0 - (s * ff));
t = v * (1.0 - (s * (1.0 - ff)));
switch ( i ) {
case 0 : {
r = v;
g = t;
b = p;
} break;
case 1 : {
r = q;
g = v;
b = p;
} break;
case 2 : {
r = p;
g = v;
b = t;
} break;
case 3 : {
r = p;
g = q;
b = v;
} break;
case 4 : {
r = t;
g = p;
b = v;
} break;
default : {
r = v;
g = p;
b = q;
} break;
}
return ::RGB2uint32( r, g, b );
}
//------------------------------------------------------------------------------
/** \brief \ru Цвет.
\en Color. \~
\details \ru Цвет. \n
\en Color. \n \~
\ingroup Model_Attributes
*/
// ---
class MATH_CLASS MbColor : public MbElementaryAttribute {
protected :
uint32 color; ///< \ru Цвет. \en Color.
protected :
/// \ru Конструктор копирования. \en Copy constructor.
MbColor( const MbColor & init );
public :
/// \ru Конструктор. \en Constructor.
MbColor( uint32 init );
/// \ru Деструктор. \en Destructor.
virtual ~MbColor();
// \ru Общие функции объекта \en Common functions of object.
virtual MbeAttributeType AttributeType() const; // \ru Дать подтип атрибута. \en Get subtype of an attribute.
virtual MbAttribute & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
virtual bool IsSame( const MbAttribute &, double accuracy ) const; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
virtual bool Init( const MbAttribute & ); // \ru Инициализировать данные по присланным. \en Initialize data.
/// \ru Установить цвет. \en Set a color.
void Init( uint32 init ) { color = init; }
/// \ru Дать цвет. \en Get a color.
uint32 Color() const { return color; }
//int R() const { return red; } // \ru Красный цвет \en Red color
//int G() const { return green; } // \ru Зеленый цвет \en Green color
//int B() const { return blue; } // \ru Синий цвет \en Blue color
virtual void GetProperties( MbProperties & ); // \ru Выдать свойства объекта. \en Get properties of the object.
virtual size_t SetProperties( const MbProperties & ); // \ru Установить свойства объекта. \en Set properties of object.
virtual MbePrompt GetPropertyName(); // \ru Выдать заголовок свойства объекта. \en Get a name of object property.
private:
void operator = ( const MbColor & ); // \ru Не реализовано \en Not implemented
DECLARE_PERSISTENT_CLASS_NEW_DEL( MbColor )
}; // MbColor
IMPL_PERSISTENT_OPS( MbColor )
//------------------------------------------------------------------------------
/** \brief \ru Толщина линий отрисовки.
\en Thickness of drawing lines. \~
\details \ru Толщина линий отрисовки. \n
\en Thickness of drawing lines. \n \~
\ingroup Model_Attributes
*/
// ---
class MATH_CLASS MbWidth : public MbElementaryAttribute {
protected :
int width; ///< \ru Толщина линий отрисовки. \enThickness of drawing lines.
protected :
/// \ru Конструктор копирования. \en Copy constructor.
MbWidth( const MbWidth & init );
public :
/// \ru Конструктор. \en Constructor.
MbWidth( int init );
/// \ru Деструктор. \en Destructor.
virtual ~MbWidth();
// \ru Общие функции объекта \en Common functions of object.
virtual MbeAttributeType AttributeType() const; // \ru Дать подтип атрибута. \en Get subtype of an attribute.
virtual MbAttribute & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
virtual bool IsSame( const MbAttribute &, double accuracy ) const; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
virtual bool Init( const MbAttribute & ); // \ru Инициализировать данные по присланным. \en Initialize data.
/// \ru Установить толщину. \en Set a thickness.
void Init( int init ) { width = init; }
/// \ru Дать толщину. \en Get a thickness.
int Width() const { return width; }
virtual void GetProperties( MbProperties & ); // \ru Выдать свойства объекта. \en Get properties of the object.
virtual size_t SetProperties( const MbProperties & ); // \ru Установить свойства объекта. \en Set properties of object.
virtual MbePrompt GetPropertyName(); // \ru Выдать заголовок свойства объекта. \en Get a name of object property.
private:
void operator = ( const MbWidth & ); // \ru Не реализовано \en Not implemented
DECLARE_PERSISTENT_CLASS_NEW_DEL( MbWidth )
}; // MbWidth
IMPL_PERSISTENT_OPS( MbWidth )
//------------------------------------------------------------------------------
/** \brief \ru Стиль линий отрисовки.
\en Style of drawing lines. \~
\details \ru Стиль линий отрисовки. \n
\en Style of drawing lines. \n \~
\ingroup Model_Attributes
*/
// ---
class MATH_CLASS MbStyle : public MbElementaryAttribute {
protected :
int style; ///< \ru Стиль линий отрисовки. \en Style of drawing lines.
protected :
/// \ru Конструктор копирования. \en Copy constructor.
MbStyle( const MbStyle & init );
public :
/// \ru Конструктор. \en Constructor.
MbStyle( int init );
/// \ru Деструктор. \en Destructor.
virtual ~MbStyle();
// \ru Общие функции объекта \en Common functions of object.
virtual MbeAttributeType AttributeType() const; // \ru Дать подтип атрибута. \en Get subtype of an attribute.
virtual MbAttribute & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
virtual bool IsSame( const MbAttribute &, double accuracy ) const; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
virtual bool Init( const MbAttribute & ); // \ru Инициализировать данные по присланным. \en Initialize data.
/// \ru Установить стиль линий отрисовки. \en Set style of drawing lines.
void Init( int init ) { style = init; }
/// \ru Дать стиль линий отрисовки. \en Get style of drawing lines.
int Style() const { return style; }
virtual void GetProperties( MbProperties & ); // \ru Выдать свойства объекта. \en Get properties of the object.
virtual size_t SetProperties( const MbProperties & ); // \ru Установить свойства объекта. \en Set properties of object.
virtual MbePrompt GetPropertyName(); // \ru Выдать заголовок свойства объекта. \en Get a name of object property.
private:
void operator = ( const MbStyle & ); // \ru Не реализовано \en Not implemented
DECLARE_PERSISTENT_CLASS_NEW_DEL( MbStyle )
}; // MbStyle
IMPL_PERSISTENT_OPS( MbStyle )
//------------------------------------------------------------------------------
/** \brief \ru Свойства для OpenGL.
\en Properties for OpenGL. \~
\details \ru Свойства для OpenGL для трех цветов: RED, GREEN, BLUE. \n
\en Properties for OpenGL for colors: RED, GREEN, BLUE. \n \~
\ingroup Model_Attributes
*/
// ---
class MATH_CLASS MbVisual : public MbElementaryAttribute {
protected :
float ambient[__RGB__]; ///< \ru Коэффициент общего фона для трех цветов: RED, GREEN, BLUE. \en Coefficient of ambient background for colors: RED, GREEN, BLUE, range 0.0 - 1.0.
float diffuse[__RGB__]; ///< \ru Коэффициент диффузного отражения для трех цветов: RED, GREEN, BLUE. \en Coefficient of diffuse reflection for colors: RED, GREEN, BLUE, range 0.0 - 1.0.
float specularity[__RGB__]; ///< \ru Коэффициент зеркального отражения света трех цветов: RED, GREEN, BLUE. \en Coefficient of specular reflection for light colors: RED, GREEN, BLUE, range 0.0 - 1.0.
float shininess; ///< \ru Блеск (показатель степени в законе зеркального отражения). \en Shininess (index according to the law of specular reflection), range 0 - 128.
float opacity; ///< \ru Коэффициент непрозрачности (коэффициент суммарного отражения). \en Opacity coefficient (coefficient of total reflection), range 0.0 (transparent) - 1.0(opaque).
float emission; ///< \ru Коэффициент излучения. \en Emissivity coefficient, range 0.0 - 1.0.
float chrom; ///< \ru Коэффициент зеркального отражения объектов. \en Coefficient of specular reflection for objects, range 0.0 - 1.0.
protected :
/// \ru Конструктор копирования. \en Copy constructor.
MbVisual( const MbVisual & init );
public :
/// \ru Конструктор. \en Constructor.
MbVisual( float a = MB_AMBIENT, float d = MB_DIFFUSE, float s = MB_SPECULARITY,
float h = MB_SHININESS, float t = MB_OPACITY, float e = MB_EMISSION );
/// \ru Деструктор. \en Destructor.
virtual ~MbVisual();
// \ru Общие функции объекта \en Common functions of object.
virtual MbeAttributeType AttributeType() const; // \ru Дать подтип атрибута. \en Get subtype of an attribute.
virtual MbAttribute & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
virtual bool IsSame( const MbAttribute &, double accuracy ) const; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
virtual bool Init( const MbAttribute & ); // \ru Инициализировать данные по присланным. \en Initialize data.
/// \ru Установить свойства для OpenGL. \en Set properties for OpenGL.
void Init( float a = MB_AMBIENT, float d = MB_DIFFUSE, float s = MB_SPECULARITY,
float h = MB_SHININESS, float t = MB_OPACITY, float e = MB_EMISSION, uint rgb = 0 ) {
ambient[rgb%__RGB__] = a; // \ru Коэффициент общего фона. \en Coefficient of ambient background.
diffuse[rgb%__RGB__] = d; // \ru Коэффициент диффузного отражения. \en Coefficient of diffuse reflection.
specularity[rgb%__RGB__] = s; // \ru Коэффициент зеркального отражения света. \en Coefficient of specular reflection for light.
shininess = h; // \ru Блеск (показатель степени. в законе зеркального отражения). \en Shininess (index according to the law of specular reflection).
opacity = t; // \ru Коэффициент непрозрачности. \en Opacity coefficient.
emission = e; // \ru Коэффициент излучения. \en Emissivity coefficient.
chrom = s; // \ru Коэффициент зеркального отражения объектов. \en Coefficient of specular reflection for objects.
}
/// \ru Дать свойства для OpenGL. \en Get properties for OpenGL.
void Get( float & a, float & d, float & s, float & h, float & t, float & e, uint rgb = 0 ) const {
a = ambient[rgb%__RGB__]; // \ru Коэффициент общего фона. \en Coefficient of ambient background.
d = diffuse[rgb%__RGB__]; // \ru Коэффициент диффузного отражения. \en Coefficient of diffuse reflection.
s = specularity[rgb%__RGB__]; // \ru Коэффициент зеркального отражения света. \en Coefficient of Specular reflection for light.
h = shininess; // \ru Блеск (показатель степени в законе зеркального отражения). \en Shininess (index according to the law of specular reflection).
t = opacity; // \ru Коэффициент непрозрачности. \en Opacity coefficient.
e = emission; // \ru Коэффициент излучения. \en Emissivity coefficient.
}
float Ambient ( uint rgb = 0 ) const { return ambient[rgb%__RGB__]; } // \ru Дать коэффициент общего фона. \en Get a coefficient of ambient background.
float Diffuse ( uint rgb = 0 ) const { return diffuse[rgb%__RGB__]; } // \ru Дать коэффициент диффузного отражения. \en Get a coefficient of diffuse reflection.
float Specularity ( uint rgb = 0 ) const { return specularity[rgb%__RGB__]; } // \ru Дать коэффициент зеркального отражения света. \en Get a coefficient of specular reflection for light.
float Shininess () const { return shininess; } // \ru Дать блеск (показатель степени в законе зеркального отражения). \en Get shininess (index according to the law of specular reflection).
float Opacity () const { return opacity; } // \ru Дать коэффициент непрозрачности. \en Get an opacity coefficient.
float Emission () const { return emission; } // \ru Дать коэффициент излучения. \en Get a coefficient of emissivity.
float Chrom () const { return chrom; } // \ru Дать коэффициент зеркального отражения объектов. \en Get a coefficient of specular reflection for objects.
const float * Ambients () const { return ambient; } // \ru Дать коэффициенты общего фона. \en Get all coefficients of ambient background.
const float * Diffuses () const { return diffuse; } // \ru Дать коэффициенты диффузного отражения. \en Get all coefficients of diffuse reflection.
const float * Specularitys() const { return specularity; } // \ru Дать коэффициенты зеркального отражения света. \en Get all coefficients of specular reflection for light.
void SetAmbient ( float v, uint rgb = 0 ) { ambient[rgb%__RGB__] = v; } // \ru Установить коэффициент общего фона. \en Set a coefficient of ambient background.
void SetDiffuse ( float v, uint rgb = 0 ) { diffuse[rgb%__RGB__] = v ; } // \ru Установить коэффициент диффузного отражения. \en Set a coefficient of diffuse reflection.
void SetSpecularity ( float v, uint rgb = 0 ) { specularity[rgb%__RGB__] = v; } // \ru Установить коэффициент зеркального отражения света. \en Set a coefficient of specular reflection for light.
void SetShininess ( float v ) { shininess = v; } // \ru Установить блеск (показатель степени в законе зеркального отражения). \en Set shininess (index according to the law of specular reflection).
void SetOpacity ( float v ) { opacity = v; } // \ru Установить коэффициент непрозрачности. \en Set an opacity coefficient.
void SetEmission ( float v ) { emission = v; } // \ru Установить коэффициент излучения. \en Set a coefficient of emissivity.
void SetChrom ( float v ) { chrom = v; } // \ru Установить коэффициент зеркального отражения объектов. \en Set a coefficient of specular reflection for objects.
virtual void GetProperties( MbProperties & ); // \ru Выдать свойства объекта. \en Get properties of the object.
virtual size_t SetProperties( const MbProperties & ); // \ru Установить свойства объекта. \en Set properties of object.
virtual MbePrompt GetPropertyName(); // \ru Выдать заголовок свойства объекта. \en Get a name of object property.
private:
void operator = ( const MbVisual & ); // \ru Не реализовано \en Not implemented
DECLARE_PERSISTENT_CLASS_NEW_DEL( MbVisual )
}; // MbVisual
IMPL_PERSISTENT_OPS( MbVisual )
//------------------------------------------------------------------------------
/** \brief \ru Количество u-линий и v-линий отрисовочной сетки.
\en The number of u-mesh and v-mesh drawing lines. \~
\details \ru Количество u-линий и v-линий отрисовочной сетки. \n
\en The number of u-mesh and v-mesh drawing lines. \n \~
\ingroup Model_Attributes
*/
// ---
class MATH_CLASS MbWireCount : public MbElementaryAttribute {
protected :
size_t uMeshCount; ///< \ru Количество u-линий отрисовочной сетки. \en The number of u-mesh lines.
size_t vMeshCount; ///< \ru Количество v-линий отрисовочной сетки. \en The number of v-mesh lines.
protected :
/// \ru Конструктор копирования. \en Copy constructor.
MbWireCount( const MbWireCount & init );
public :
/// \ru Конструктор. \en Constructor.
MbWireCount( size_t uCount, size_t vCount );
/// \ru Деструктор. \en Destructor.
virtual ~MbWireCount();
// \ru Общие функции объекта \en Common functions of object.
virtual MbeAttributeType AttributeType() const; // \ru Дать подтип атрибута. \en Get subtype of an attribute.
virtual MbAttribute & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
virtual bool IsSame( const MbAttribute &, double accuracy ) const; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
virtual bool Init( const MbAttribute & ); // \ru Инициализировать данные по присланным. \en Initialize data.
/// \ru Установить количество линий отрисовки. \en Set count of drawing lines.
void Init( size_t uCount, size_t vCount ) { uMeshCount = uCount, vMeshCount = vCount; }
/// \ru Выдать количество разбиений по u и v. \en The the number of splittings in u-direction and v-direction.
void Get( size_t & uCount, size_t & vCount ) const { uCount = uMeshCount; vCount = vMeshCount; }
virtual void GetProperties( MbProperties & ); // \ru Выдать свойства объекта. \en Get properties of the object.
virtual size_t SetProperties( const MbProperties & ); // \ru Установить свойства объекта. \en Set properties of object.
virtual MbePrompt GetPropertyName(); // \ru Выдать заголовок свойства объекта. \en Get a name of object property.
private:
void operator = ( const MbWireCount & ); // \ru Не реализовано \en Not implemented
DECLARE_PERSISTENT_CLASS_NEW_DEL( MbWireCount )
}; // MbWireCount
IMPL_PERSISTENT_OPS( MbWireCount )
#endif // __ATTR_COLOR_H
////////////////////////////////////////////////////////////////////////////////
/**
\file
\brief \ru Атрибуты. Цвет. Толщина линий отрисовки. Стиль линий отрисовки. Свойства для OpenGL.
\en Attributes. Color. Thickness of drawing lines. Style of drawing lines. Properties for OpenGL. \~
*/
////////////////////////////////////////////////////////////////////////////////
#ifndef __ATTR_COLOR_H
#define __ATTR_COLOR_H
#include <attr_elementary_attribute.h>
#include <mb_variables.h>
c3d_constexpr uint __RGB__ = 3;
//------------------------------------------------------------------------------
/** \brief \ru Преобразовать цвет по трём компонентам в uint32.
\en Convert a color by 3 components in uint32. \~
\details
\warning \ru Значения компонент цвета должны лежать в диапазоне [ 0; 1 ].
\en Values of color components should belong to the range [ 0; 1 ]. \~
\ingroup Model_Attributes
*/
// ---
inline
uint32 RGB2uint32( double r, double g, double b )
{
const double f1 = 255.0 / 256.0;
uint32 uinturgb[3];
const uint32 bt = 256;
uinturgb[0] = uint32 ( 256.0 * r * f1 );
uinturgb[1] = uint32 ( 256.0 * g * f1 );
uinturgb[2] = uint32 ( 256.0 * b * f1 );
for ( int n = 0; n < 3; n++ )
if ( uinturgb[n] >= bt ) {
uinturgb[n] = bt - 1;
C3D_ASSERT_UNCONDITIONAL( false );
}
return uinturgb[0] + bt * ( uinturgb[1] + bt * uinturgb[2] );
}
//------------------------------------------------------------------------------
/** \brief \ru Преобразовать цвет по трём компонентам в uint32.
\en Convert a color by 3 components in uint32. \~
\details
\warning \ru Значения компонент цвета должны лежать в диапазоне [ 0; 1 ].
\en Values of color components should belong to the range [ 0; 1 ]. \~
\ingroup Model_Attributes
*/
// ---
inline
uint32 RGB2uint32( float r, float g, float b, float a )
{
const float f1 = 255.0 / 256.0;
uint32 uinturgb[4];
const uint32 bt = 256;
uinturgb[0] = uint32 ( 256.0 * r * f1 );
uinturgb[1] = uint32 ( 256.0 * g * f1 );
uinturgb[2] = uint32 ( 256.0 * b * f1 );
uinturgb[3] = uint32 ( 256.0 * a * f1 );
for ( int n = 0; n < 4; n++ )
if ( uinturgb[n] >= bt ) {
uinturgb[n] = bt - 1;
//C3D_ASSERT_UNCONDITIONAL( false );
}
return uinturgb[0] + bt * ( uinturgb[1] + bt * ( uinturgb[2] + bt * uinturgb[3] ) );
}
//------------------------------------------------------------------------------
/** \brief \ru Преобразовать unit32 в три компоненты цвета.
\en Convert unit32 to 3 components of color. \~
\details
\warning \ru Компоненты цветов лежат в диапазоне [ 0; 1 ].
\en Color components belong to the range [ 0; 1 ]. \~
\ingroup Model_Attributes
*/
// ---
template<typename float_t>
void uint322RGB( uint32 color, float_t & r, float_t & g, float_t & b )
{
const float_t r255 = float_t(1.0 / 255.0);
const uint32 u256 = (uint32)SYS_MAX_UINT8 + 1;
r = float_t ( color % u256);
g = float_t ( (color / 256) % u256);
b = float_t ( (color / 65536) % u256);
r *= r255; g *= r255; b *= r255;
}
//------------------------------------------------------------------------------
/** \brief \ru Преобразовать цвет из модели HSV в uint32.
\en Convert a color from HSV model in uint32. \~
\details \ru Преобразовать цвет из модели HSV в uint32. \n
\en Convert a color from HSV model in uint32. \n \~
\ingroup Model_Attributes
*/
// ---
inline
uint32 HSV2uint32( double h, double s, double v )
{
double hh, p, q, t, ff;
long i;
double r, g, b;
if ( s <= 0.0 ) {
r = v;
g = v;
b = v;
return ::RGB2uint32( r, g, b );
}
hh = h;
if ( hh >= 360.0 )
hh = 0.0;
hh /= 60.0;
i = (long)hh;
ff = hh - i;
p = v * (1.0 - s);
q = v * (1.0 - (s * ff));
t = v * (1.0 - (s * (1.0 - ff)));
switch ( i ) {
case 0 : {
r = v;
g = t;
b = p;
} break;
case 1 : {
r = q;
g = v;
b = p;
} break;
case 2 : {
r = p;
g = v;
b = t;
} break;
case 3 : {
r = p;
g = q;
b = v;
} break;
case 4 : {
r = t;
g = p;
b = v;
} break;
default : {
r = v;
g = p;
b = q;
} break;
}
return ::RGB2uint32( r, g, b );
}
//------------------------------------------------------------------------------
/** \brief \ru Цвет.
\en Color. \~
\details \ru Цвет. \n
\en Color. \n \~
\ingroup Model_Attributes
*/
// ---
class MATH_CLASS MbColor : public MbElementaryAttribute {
protected :
uint32 color; ///< \ru Цвет. \en Color.
protected :
/// \ru Конструктор копирования. \en Copy constructor.
MbColor( const MbColor & init );
public :
/// \ru Конструктор. \en Constructor.
MbColor( uint32 init );
/// \ru Деструктор. \en Destructor.
virtual ~MbColor();
// \ru Общие функции объекта \en Common functions of object.
virtual MbeAttributeType AttributeType() const; // \ru Дать подтип атрибута. \en Get subtype of an attribute.
virtual MbAttribute & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
virtual bool IsSame( const MbAttribute &, double accuracy ) const; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
virtual bool Init( const MbAttribute & ); // \ru Инициализировать данные по присланным. \en Initialize data.
/// \ru Установить цвет. \en Set a color.
void Init( uint32 init ) { color = init; }
/// \ru Дать цвет. \en Get a color.
uint32 Color() const { return color; }
//int R() const { return red; } // \ru Красный цвет \en Red color
//int G() const { return green; } // \ru Зеленый цвет \en Green color
//int B() const { return blue; } // \ru Синий цвет \en Blue color
virtual void GetProperties( MbProperties & ); // \ru Выдать свойства объекта. \en Get properties of the object.
virtual size_t SetProperties( const MbProperties & ); // \ru Установить свойства объекта. \en Set properties of object.
virtual MbePrompt GetPropertyName(); // \ru Выдать заголовок свойства объекта. \en Get a name of object property.
private:
void operator = ( const MbColor & ); // \ru Не реализовано \en Not implemented
DECLARE_PERSISTENT_CLASS_NEW_DEL( MbColor )
}; // MbColor
IMPL_PERSISTENT_OPS( MbColor )
//------------------------------------------------------------------------------
/** \brief \ru Толщина линий отрисовки.
\en Thickness of drawing lines. \~
\details \ru Толщина линий отрисовки. \n
\en Thickness of drawing lines. \n \~
\ingroup Model_Attributes
*/
// ---
class MATH_CLASS MbWidth : public MbElementaryAttribute {
protected :
int width; ///< \ru Толщина линий отрисовки. \enThickness of drawing lines.
protected :
/// \ru Конструктор копирования. \en Copy constructor.
MbWidth( const MbWidth & init );
public :
/// \ru Конструктор. \en Constructor.
MbWidth( int init );
/// \ru Деструктор. \en Destructor.
virtual ~MbWidth();
// \ru Общие функции объекта \en Common functions of object.
virtual MbeAttributeType AttributeType() const; // \ru Дать подтип атрибута. \en Get subtype of an attribute.
virtual MbAttribute & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
virtual bool IsSame( const MbAttribute &, double accuracy ) const; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
virtual bool Init( const MbAttribute & ); // \ru Инициализировать данные по присланным. \en Initialize data.
/// \ru Установить толщину. \en Set a thickness.
void Init( int init ) { width = init; }
/// \ru Дать толщину. \en Get a thickness.
int Width() const { return width; }
virtual void GetProperties( MbProperties & ); // \ru Выдать свойства объекта. \en Get properties of the object.
virtual size_t SetProperties( const MbProperties & ); // \ru Установить свойства объекта. \en Set properties of object.
virtual MbePrompt GetPropertyName(); // \ru Выдать заголовок свойства объекта. \en Get a name of object property.
private:
void operator = ( const MbWidth & ); // \ru Не реализовано \en Not implemented
DECLARE_PERSISTENT_CLASS_NEW_DEL( MbWidth )
}; // MbWidth
IMPL_PERSISTENT_OPS( MbWidth )
//------------------------------------------------------------------------------
/** \brief \ru Стиль линий отрисовки.
\en Style of drawing lines. \~
\details \ru Стиль линий отрисовки. \n
\en Style of drawing lines. \n \~
\ingroup Model_Attributes
*/
// ---
class MATH_CLASS MbStyle : public MbElementaryAttribute {
protected :
int style; ///< \ru Стиль линий отрисовки. \en Style of drawing lines.
protected :
/// \ru Конструктор копирования. \en Copy constructor.
MbStyle( const MbStyle & init );
public :
/// \ru Конструктор. \en Constructor.
MbStyle( int init );
/// \ru Деструктор. \en Destructor.
virtual ~MbStyle();
// \ru Общие функции объекта \en Common functions of object.
virtual MbeAttributeType AttributeType() const; // \ru Дать подтип атрибута. \en Get subtype of an attribute.
virtual MbAttribute & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
virtual bool IsSame( const MbAttribute &, double accuracy ) const; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
virtual bool Init( const MbAttribute & ); // \ru Инициализировать данные по присланным. \en Initialize data.
/// \ru Установить стиль линий отрисовки. \en Set style of drawing lines.
void Init( int init ) { style = init; }
/// \ru Дать стиль линий отрисовки. \en Get style of drawing lines.
int Style() const { return style; }
virtual void GetProperties( MbProperties & ); // \ru Выдать свойства объекта. \en Get properties of the object.
virtual size_t SetProperties( const MbProperties & ); // \ru Установить свойства объекта. \en Set properties of object.
virtual MbePrompt GetPropertyName(); // \ru Выдать заголовок свойства объекта. \en Get a name of object property.
private:
void operator = ( const MbStyle & ); // \ru Не реализовано \en Not implemented
DECLARE_PERSISTENT_CLASS_NEW_DEL( MbStyle )
}; // MbStyle
IMPL_PERSISTENT_OPS( MbStyle )
//------------------------------------------------------------------------------
/** \brief \ru Свойства для OpenGL.
\en Properties for OpenGL. \~
\details \ru Свойства для OpenGL для трех цветов: RED, GREEN, BLUE. \n
\en Properties for OpenGL for colors: RED, GREEN, BLUE. \n \~
\ingroup Model_Attributes
*/
// ---
class MATH_CLASS MbVisual : public MbElementaryAttribute {
protected :
float ambient[__RGB__]; ///< \ru Коэффициент общего фона для трех цветов: RED, GREEN, BLUE. \en Coefficient of ambient background for colors: RED, GREEN, BLUE, range 0.0 - 1.0.
float diffuse[__RGB__]; ///< \ru Коэффициент диффузного отражения для трех цветов: RED, GREEN, BLUE. \en Coefficient of diffuse reflection for colors: RED, GREEN, BLUE, range 0.0 - 1.0.
float specularity[__RGB__]; ///< \ru Коэффициент зеркального отражения света трех цветов: RED, GREEN, BLUE. \en Coefficient of specular reflection for light colors: RED, GREEN, BLUE, range 0.0 - 1.0.
float shininess; ///< \ru Блеск (показатель степени в законе зеркального отражения). \en Shininess (index according to the law of specular reflection), range 0 - 128.
float opacity; ///< \ru Коэффициент непрозрачности (коэффициент суммарного отражения). \en Opacity coefficient (coefficient of total reflection), range 0.0 (transparent) - 1.0(opaque).
float emission; ///< \ru Коэффициент излучения. \en Emissivity coefficient, range 0.0 - 1.0.
float chrom; ///< \ru Коэффициент зеркального отражения объектов. \en Coefficient of specular reflection for objects, range 0.0 - 1.0.
protected :
/// \ru Конструктор копирования. \en Copy constructor.
MbVisual( const MbVisual & init );
public :
/// \ru Конструктор. \en Constructor.
MbVisual( float a = MB_AMBIENT, float d = MB_DIFFUSE, float s = MB_SPECULARITY,
float h = MB_SHININESS, float t = MB_OPACITY, float e = MB_EMISSION );
/// \ru Деструктор. \en Destructor.
virtual ~MbVisual();
// \ru Общие функции объекта \en Common functions of object.
virtual MbeAttributeType AttributeType() const; // \ru Дать подтип атрибута. \en Get subtype of an attribute.
virtual MbAttribute & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
virtual bool IsSame( const MbAttribute &, double accuracy ) const; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
virtual bool Init( const MbAttribute & ); // \ru Инициализировать данные по присланным. \en Initialize data.
/// \ru Установить свойства для OpenGL. \en Set properties for OpenGL.
void Init( float a = MB_AMBIENT, float d = MB_DIFFUSE, float s = MB_SPECULARITY,
float h = MB_SHININESS, float t = MB_OPACITY, float e = MB_EMISSION, uint rgb = 0 ) {
ambient[rgb%__RGB__] = a; // \ru Коэффициент общего фона. \en Coefficient of ambient background.
diffuse[rgb%__RGB__] = d; // \ru Коэффициент диффузного отражения. \en Coefficient of diffuse reflection.
specularity[rgb%__RGB__] = s; // \ru Коэффициент зеркального отражения света. \en Coefficient of specular reflection for light.
shininess = h; // \ru Блеск (показатель степени. в законе зеркального отражения). \en Shininess (index according to the law of specular reflection).
opacity = t; // \ru Коэффициент непрозрачности. \en Opacity coefficient.
emission = e; // \ru Коэффициент излучения. \en Emissivity coefficient.
chrom = s; // \ru Коэффициент зеркального отражения объектов. \en Coefficient of specular reflection for objects.
}
/// \ru Дать свойства для OpenGL. \en Get properties for OpenGL.
void Get( float & a, float & d, float & s, float & h, float & t, float & e, uint rgb = 0 ) const {
a = ambient[rgb%__RGB__]; // \ru Коэффициент общего фона. \en Coefficient of ambient background.
d = diffuse[rgb%__RGB__]; // \ru Коэффициент диффузного отражения. \en Coefficient of diffuse reflection.
s = specularity[rgb%__RGB__]; // \ru Коэффициент зеркального отражения света. \en Coefficient of Specular reflection for light.
h = shininess; // \ru Блеск (показатель степени в законе зеркального отражения). \en Shininess (index according to the law of specular reflection).
t = opacity; // \ru Коэффициент непрозрачности. \en Opacity coefficient.
e = emission; // \ru Коэффициент излучения. \en Emissivity coefficient.
}
float Ambient ( uint rgb = 0 ) const { return ambient[rgb%__RGB__]; } // \ru Дать коэффициент общего фона. \en Get a coefficient of ambient background.
float Diffuse ( uint rgb = 0 ) const { return diffuse[rgb%__RGB__]; } // \ru Дать коэффициент диффузного отражения. \en Get a coefficient of diffuse reflection.
float Specularity ( uint rgb = 0 ) const { return specularity[rgb%__RGB__]; } // \ru Дать коэффициент зеркального отражения света. \en Get a coefficient of specular reflection for light.
float Shininess () const { return shininess; } // \ru Дать блеск (показатель степени в законе зеркального отражения). \en Get shininess (index according to the law of specular reflection).
float Opacity () const { return opacity; } // \ru Дать коэффициент непрозрачности. \en Get an opacity coefficient.
float Emission () const { return emission; } // \ru Дать коэффициент излучения. \en Get a coefficient of emissivity.
float Chrom () const { return chrom; } // \ru Дать коэффициент зеркального отражения объектов. \en Get a coefficient of specular reflection for objects.
const float * Ambients () const { return ambient; } // \ru Дать коэффициенты общего фона. \en Get all coefficients of ambient background.
const float * Diffuses () const { return diffuse; } // \ru Дать коэффициенты диффузного отражения. \en Get all coefficients of diffuse reflection.
const float * Specularitys() const { return specularity; } // \ru Дать коэффициенты зеркального отражения света. \en Get all coefficients of specular reflection for light.
void SetAmbient ( float v, uint rgb = 0 ) { ambient[rgb%__RGB__] = v; } // \ru Установить коэффициент общего фона. \en Set a coefficient of ambient background.
void SetDiffuse ( float v, uint rgb = 0 ) { diffuse[rgb%__RGB__] = v ; } // \ru Установить коэффициент диффузного отражения. \en Set a coefficient of diffuse reflection.
void SetSpecularity ( float v, uint rgb = 0 ) { specularity[rgb%__RGB__] = v; } // \ru Установить коэффициент зеркального отражения света. \en Set a coefficient of specular reflection for light.
void SetShininess ( float v ) { shininess = v; } // \ru Установить блеск (показатель степени в законе зеркального отражения). \en Set shininess (index according to the law of specular reflection).
void SetOpacity ( float v ) { opacity = v; } // \ru Установить коэффициент непрозрачности. \en Set an opacity coefficient.
void SetEmission ( float v ) { emission = v; } // \ru Установить коэффициент излучения. \en Set a coefficient of emissivity.
void SetChrom ( float v ) { chrom = v; } // \ru Установить коэффициент зеркального отражения объектов. \en Set a coefficient of specular reflection for objects.
virtual void GetProperties( MbProperties & ); // \ru Выдать свойства объекта. \en Get properties of the object.
virtual size_t SetProperties( const MbProperties & ); // \ru Установить свойства объекта. \en Set properties of object.
virtual MbePrompt GetPropertyName(); // \ru Выдать заголовок свойства объекта. \en Get a name of object property.
private:
void operator = ( const MbVisual & ); // \ru Не реализовано \en Not implemented
DECLARE_PERSISTENT_CLASS_NEW_DEL( MbVisual )
}; // MbVisual
IMPL_PERSISTENT_OPS( MbVisual )
//------------------------------------------------------------------------------
/** \brief \ru Количество u-линий и v-линий отрисовочной сетки.
\en The number of u-mesh and v-mesh drawing lines. \~
\details \ru Количество u-линий и v-линий отрисовочной сетки. \n
\en The number of u-mesh and v-mesh drawing lines. \n \~
\ingroup Model_Attributes
*/
// ---
class MATH_CLASS MbWireCount : public MbElementaryAttribute {
protected :
size_t uMeshCount; ///< \ru Количество u-линий отрисовочной сетки. \en The number of u-mesh lines.
size_t vMeshCount; ///< \ru Количество v-линий отрисовочной сетки. \en The number of v-mesh lines.
protected :
/// \ru Конструктор копирования. \en Copy constructor.
MbWireCount( const MbWireCount & init );
public :
/// \ru Конструктор. \en Constructor.
MbWireCount( size_t uCount, size_t vCount );
/// \ru Деструктор. \en Destructor.
virtual ~MbWireCount();
// \ru Общие функции объекта \en Common functions of object.
virtual MbeAttributeType AttributeType() const; // \ru Дать подтип атрибута. \en Get subtype of an attribute.
virtual MbAttribute & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
virtual bool IsSame( const MbAttribute &, double accuracy ) const; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
virtual bool Init( const MbAttribute & ); // \ru Инициализировать данные по присланным. \en Initialize data.
/// \ru Установить количество линий отрисовки. \en Set count of drawing lines.
void Init( size_t uCount, size_t vCount ) { uMeshCount = uCount, vMeshCount = vCount; }
/// \ru Выдать количество разбиений по u и v. \en The the number of splittings in u-direction and v-direction.
void Get( size_t & uCount, size_t & vCount ) const { uCount = uMeshCount; vCount = vMeshCount; }
virtual void GetProperties( MbProperties & ); // \ru Выдать свойства объекта. \en Get properties of the object.
virtual size_t SetProperties( const MbProperties & ); // \ru Установить свойства объекта. \en Set properties of object.
virtual MbePrompt GetPropertyName(); // \ru Выдать заголовок свойства объекта. \en Get a name of object property.
private:
void operator = ( const MbWireCount & ); // \ru Не реализовано \en Not implemented
DECLARE_PERSISTENT_CLASS_NEW_DEL( MbWireCount )
}; // MbWireCount
IMPL_PERSISTENT_OPS( MbWireCount )
#endif // __ATTR_COLOR_H
+11 -11
View File
@@ -37,7 +37,7 @@ protected :
public :
virtual MbeAttributeType AttributeFamily() const; // \ru Выдать тип атрибута. \en Get attribute type.
virtual MbeAttributeType AttributeType() const = 0; // \ru Выдать подтип атрибута. \en Get subtype of an attribute.
virtual MbAttribute & Duplicate( MbRegDuplicate * = NULL ) const = 0; // \ru Сделать копию элемента. \en Create a copy of the element.
virtual MbAttribute & Duplicate( MbRegDuplicate * = c3d_null ) const = 0; // \ru Сделать копию элемента. \en Create a copy of the element.
virtual bool IsSame( const MbAttribute &, double accuracy ) const; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
virtual bool Init( const MbAttribute & ) = 0; // \ru Инициализировать данные по присланным. \en Initialize data.
@@ -46,13 +46,13 @@ public :
// \ru Выполнить действия при конвертации владельца. \en Perform actions when converting the owner.
virtual void OnConvertOwner( const MbAttributeContainer & owner, MbAttributeContainer & other );
// \ru Выполнить действия при трансформировании владельца. \en Perform actions when transforming the owner.
virtual void OnTransformOwner( const MbAttributeContainer & owner, const MbMatrix3D &, MbRegTransform * = NULL );
virtual void OnTransformOwner( const MbAttributeContainer & owner, const MbMatrix3D &, MbRegTransform * = c3d_null );
// \ru Выполнить действия при перемещении владельца. \en Perform actions when moving the owner.
virtual void OnMoveOwner( const MbAttributeContainer & owner, const MbVector3D &, MbRegTransform * = NULL );
virtual void OnMoveOwner( const MbAttributeContainer & owner, const MbVector3D &, MbRegTransform * = c3d_null );
// \ru Выполнить действия при вращении владельца. \en Perform actions when rotating the owner.
virtual void OnRotateOwner( const MbAttributeContainer & owner, const MbAxis3D &, double angle, MbRegTransform * = NULL );
virtual void OnRotateOwner( const MbAttributeContainer & owner, const MbAxis3D &, double angle, MbRegTransform * = c3d_null );
// \ru Выполнить действия при копировании владельца. \en Perform actions when copying the owner.
virtual void OnCopyOwner( const MbAttributeContainer & owner, MbAttributeContainer & other, MbRegDuplicate * = NULL );
virtual void OnCopyOwner( const MbAttributeContainer & owner, MbAttributeContainer & other, MbRegDuplicate * = c3d_null );
// \ru Выполнить действия при объединении владельца. \en Perform actions when merging he owner.
virtual void OnMergeOwner( const MbAttributeContainer & owner, MbAttributeContainer & other );
// \ru Выполнить действия при замене владельца. \en Perform actions when replacing the owner.
@@ -101,7 +101,7 @@ public:
public:
virtual MbeAttributeType AttributeType() const; // \ru Выдать подтип атрибута. \en Get subtype of an attribute.
virtual void GetCharValue( TCHAR * v ) const; // \ru Выдать строковое значение свойства. \en Get a string value of the property.
virtual MbAttribute & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
virtual MbAttribute & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
virtual bool IsSame( const MbAttribute &, double accuracy ) const; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
virtual bool Init( const MbAttribute & ); // \ru Инициализировать данные по присланным. \en Initialize data.
virtual void GetProperties( MbProperties & ); // \ru Выдать свойства объекта. \en Get properties of the object.
@@ -137,7 +137,7 @@ public:
public:
virtual MbeAttributeType AttributeType() const; // \ru Выдать подтип атрибута. \en Get subtype of an attribute.
virtual void GetCharValue( TCHAR * v ) const; // \ru Выдать строковое значение свойства. \en Get a string value of the property.
virtual MbAttribute & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
virtual MbAttribute & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
virtual bool IsSame( const MbAttribute &, double accuracy ) const; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
virtual bool Init( const MbAttribute & ); // \ru Инициализировать данные по присланным. \en Initialize data.
virtual void GetProperties( MbProperties & ); // \ru Выдать свойства объекта. \en Get properties of the object.
@@ -173,7 +173,7 @@ public:
public:
virtual MbeAttributeType AttributeType() const; // \ru Выдать подтип атрибута. \en Get subtype of an attribute.
virtual void GetCharValue( TCHAR * v ) const; // \ru Выдать строковое значение свойства. \en Get a string value of the property.
virtual MbAttribute & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
virtual MbAttribute & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
virtual bool IsSame( const MbAttribute &, double accuracy ) const; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
virtual bool Init( const MbAttribute & ); // \ru Инициализировать данные по присланным. \en Initialize data.
virtual void GetProperties( MbProperties & ); // \ru Выдать свойства объекта. \en Get properties of the object.
@@ -209,7 +209,7 @@ public:
public:
virtual MbeAttributeType AttributeType() const; // \ru Выдать подтип атрибута. \en Get subtype of an attribute.
virtual void GetCharValue( TCHAR * v ) const; // \ru Выдать строковое значение свойства. \en Get a string value of the property.
virtual MbAttribute & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
virtual MbAttribute & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
virtual bool IsSame( const MbAttribute &, double accuracy ) const; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
virtual bool Init( const MbAttribute & ); // \ru Инициализировать данные по присланным. \en Initialize data.
virtual void GetProperties( MbProperties & ); // \ru Выдать свойства объекта. \en Get properties of the object.
@@ -243,7 +243,7 @@ public:
public:
virtual MbeAttributeType AttributeType() const; // \ru Выдать подтип атрибута. \en Get subtype of an attribute.
virtual void GetCharValue( TCHAR * v ) const; // \ru Выдать строковое значение свойства. \en Get a string value of the property.
virtual MbAttribute & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
virtual MbAttribute & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
virtual bool IsSame( const MbAttribute &, double accuracy ) const; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
virtual bool Init( const MbAttribute & ); // \ru Инициализировать данные по присланным. \en Initialize data.
virtual void GetProperties( MbProperties & ); // \ru Выдать свойства объекта. \en Get properties of the object.
@@ -280,7 +280,7 @@ public:
public:
virtual MbeAttributeType AttributeType() const; // \ru Выдать подтип атрибута. \en Get subtype of an attribute.
virtual void GetCharValue( TCHAR * v ) const; // \ru Выдать строковое значение свойства. \en Get a string value of the property.
virtual MbAttribute & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
virtual MbAttribute & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
virtual bool IsSame( const MbAttribute &, double accuracy ) const; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
virtual bool Init( const MbAttribute & ); // \ru Инициализировать данные по присланным. \en Initialize data.
virtual void GetProperties( MbProperties & ); // \ru Выдать свойства объекта. \en Get properties of the object.
+3 -3
View File
@@ -38,7 +38,7 @@ public :
// \ru Общие функции объекта \en Common functions of object.
virtual MbeAttributeType AttributeType() const; // \ru Дать подтип атрибута. \en Get subtype of an attribute.
virtual MbAttribute & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
virtual MbAttribute & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
virtual bool IsSame( const MbAttribute &, double accuracy ) const; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
virtual bool Init( const MbAttribute & ); // \ru Инициализировать данные по присланным. \en Initialize data.
@@ -86,7 +86,7 @@ public :
// \ru Общие функции объекта \en Common functions of object.
virtual MbeAttributeType AttributeType() const; // \ru Дать подтип атрибута. \en Get subtype of an attribute.
virtual MbAttribute & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
virtual MbAttribute & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
virtual bool IsSame( const MbAttribute &, double accuracy ) const; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
virtual bool Init( const MbAttribute & ); // \ru Инициализировать данные по присланным. \en Initialize data.
@@ -137,7 +137,7 @@ public :
// \ru Общие функции объекта \en Common functions of object.
virtual MbeAttributeType AttributeType() const; // \ru Дать подтип атрибута. \en Get subtype of an attribute.
virtual MbAttribute & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
virtual MbAttribute & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
virtual bool IsSame( const MbAttribute &, double accuracy ) const; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
virtual bool Init( const MbAttribute & ); // \ru Инициализировать данные по присланным. \en Initialize data.
+5 -5
View File
@@ -30,7 +30,7 @@ public:
public :
virtual MbeAttributeType AttributeFamily() const; // \ru Тип атрибута \en Type of an attribute
virtual MbeAttributeType AttributeType() const = 0; // \ru Выдать подтип атрибута \en Get subtype of an attribute.
virtual MbAttribute & Duplicate( MbRegDuplicate * = NULL ) const = 0; // \ru Сделать копию элемента \en Create a copy of the element.
virtual MbAttribute & Duplicate( MbRegDuplicate * = c3d_null ) const = 0; // \ru Сделать копию элемента \en Create a copy of the element.
virtual bool IsSame( const MbAttribute &, double accuracy ) const = 0; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
virtual bool Init( const MbAttribute & ) = 0; // \ru Инициализировать данные по присланным \en Initialize data.
@@ -39,13 +39,13 @@ public :
// \ru Действия при конвертации владельца. \en Actions when converting the owner.
virtual void OnConvertOwner( const MbAttributeContainer & owner, MbAttributeContainer & other );
/// \ru Действия при трансформировании владельца. \en Actions when transforming the owner.
virtual void OnTransformOwner( const MbAttributeContainer & owner, const MbMatrix3D &, MbRegTransform * = NULL );
virtual void OnTransformOwner( const MbAttributeContainer & owner, const MbMatrix3D &, MbRegTransform * = c3d_null );
// \ru Действия при перемещении владельца. \en Actions when moving the owner.
virtual void OnMoveOwner( const MbAttributeContainer & owner, const MbVector3D &, MbRegTransform * = NULL );
virtual void OnMoveOwner( const MbAttributeContainer & owner, const MbVector3D &, MbRegTransform * = c3d_null );
// \ru Действия при вращении владельца. \en Actions when rotating the owner.
virtual void OnRotateOwner( const MbAttributeContainer & owner, const MbAxis3D &, double angle, MbRegTransform * = NULL );
virtual void OnRotateOwner( const MbAttributeContainer & owner, const MbAxis3D &, double angle, MbRegTransform * = c3d_null );
// \ru Действия при копировании владельца. \en Actions when copying the owner.
virtual void OnCopyOwner( const MbAttributeContainer & owner, MbAttributeContainer & other, MbRegDuplicate * = NULL );
virtual void OnCopyOwner( const MbAttributeContainer & owner, MbAttributeContainer & other, MbRegDuplicate * = c3d_null );
// \ru Действия при объединении владельца. \en Actions when merging the owner.
virtual void OnMergeOwner( const MbAttributeContainer & owner, MbAttributeContainer & other );
// \ru Действия при замене владельца. \en Actions when replacing the owner.
+5 -5
View File
@@ -43,20 +43,20 @@ public:
// \ru Выдать подтип атрибута. \en Get subtype of an attribute.
virtual MbeAttributeType AttributeType() const;
// \ru Сделать копию элемента. \en Create a copy of the element.
virtual MbAttribute & Duplicate( MbRegDuplicate * = NULL ) const;
virtual MbAttribute & Duplicate( MbRegDuplicate * = c3d_null ) const;
// \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
virtual bool IsSame( const MbAttribute &, double accuracy ) const;
// \ru Инициализировать данные по присланным. \en Initialize data.
virtual bool Init( const MbAttribute & );
// \ru Выполнить действия при трансформировании владельца. \en Perform actions when transforming the owner.
virtual void OnTransformOwner( const MbAttributeContainer & owner, const MbMatrix3D &, MbRegTransform * = NULL );
virtual void OnTransformOwner( const MbAttributeContainer & owner, const MbMatrix3D &, MbRegTransform * = c3d_null );
// \ru Выполнить действия при перемещении владельца. \en Perform actions when moving the owner.
virtual void OnMoveOwner( const MbAttributeContainer & owner, const MbVector3D &, MbRegTransform * = NULL );
virtual void OnMoveOwner( const MbAttributeContainer & owner, const MbVector3D &, MbRegTransform * = c3d_null );
// \ru Выполнить действия при вращении владельца. \en Perform actions when rotating the owner.
virtual void OnRotateOwner( const MbAttributeContainer & owner, const MbAxis3D &, double angle, MbRegTransform * = NULL );
virtual void OnRotateOwner( const MbAttributeContainer & owner, const MbAxis3D &, double angle, MbRegTransform * = c3d_null );
// \ru Выполнить действия при копировании владельца. \en Perform actions when copying the owner.
virtual void OnCopyOwner( const MbAttributeContainer & owner, MbAttributeContainer & other, MbRegDuplicate * = NULL );
virtual void OnCopyOwner( const MbAttributeContainer & owner, MbAttributeContainer & other, MbRegDuplicate * = c3d_null );
// \ru Выполнить действия при объединении владельца. \en Perform actions when merging the owner.
virtual void OnMergeOwner( const MbAttributeContainer & owner, MbAttributeContainer & other );
+5 -5
View File
@@ -52,19 +52,19 @@ public:
// \ru Выдать подтип атрибута. \en Get subtype of an attribute.
virtual MbeAttributeType AttributeType() const;
// \ru Сделать копию элемента. \en Create a copy of the element.
virtual MbAttribute & Duplicate( MbRegDuplicate * = NULL ) const;
virtual MbAttribute & Duplicate( MbRegDuplicate * = c3d_null ) const;
// \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
virtual bool IsSame( const MbAttribute &, double accuracy ) const;
// \ru Инициализировать данные по присланным. \en Initialize data.
virtual bool Init( const MbAttribute & );
// \ru Выполнить действия при трансформировании владельца. \en Perform actions when transforming the owner.
virtual void OnTransformOwner( const MbAttributeContainer & owner, const MbMatrix3D &, MbRegTransform * = NULL );
virtual void OnTransformOwner( const MbAttributeContainer & owner, const MbMatrix3D &, MbRegTransform * = c3d_null );
// \ru Выполнить действия при перемещении владельца. \en Perform actions when moving the owner.
virtual void OnMoveOwner( const MbAttributeContainer & owner, const MbVector3D &, MbRegTransform * = NULL );
virtual void OnMoveOwner( const MbAttributeContainer & owner, const MbVector3D &, MbRegTransform * = c3d_null );
// \ru Выполнить действия при вращении владельца. \en Perform actions when rotating the owner.
virtual void OnRotateOwner( const MbAttributeContainer & owner, const MbAxis3D &, double angle, MbRegTransform * = NULL );
virtual void OnRotateOwner( const MbAttributeContainer & owner, const MbAxis3D &, double angle, MbRegTransform * = c3d_null );
// \ru Выполнить действия при копировании владельца. \en Perform actions when copying the owner.
virtual void OnCopyOwner( const MbAttributeContainer & owner, MbAttributeContainer & other, MbRegDuplicate * = NULL );
virtual void OnCopyOwner( const MbAttributeContainer & owner, MbAttributeContainer & other, MbRegDuplicate * = c3d_null );
// \ru Выполнить действия при объединении владельца. \en Perform actions when merging the owner.
virtual void OnMergeOwner( const MbAttributeContainer & owner, MbAttributeContainer & other );
+9 -9
View File
@@ -39,7 +39,7 @@ public :
// \ru Общие функции объекта. \en Common functions of object.
virtual MbeAttributeType AttributeType() const; // \ru Дать подтип атрибута. \en Get subtype of an attribute.
virtual MbAttribute & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
virtual MbAttribute & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
virtual bool IsSame( const MbAttribute &, double accuracy ) const; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
virtual bool Init( const MbAttribute & ); // \ru Инициализировать данные по присланным. \en Initialize data.
virtual void GetProperties( MbProperties & ); // \ru Выдать свойства объекта. \en Get properties of the object.
@@ -92,7 +92,7 @@ public :
// \ru Общие функции объекта \en Common functions of object.
virtual MbeAttributeType AttributeType() const; // \ru Дать подтип атрибута. \en Get subtype of an attribute.
virtual MbAttribute & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
virtual MbAttribute & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
virtual bool IsSame( const MbAttribute &, double accuracy ) const; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
virtual bool Init( const MbAttribute & ); // \ru Инициализировать данные по присланным. \en Initialize data.
@@ -159,7 +159,7 @@ public :
// \ru Общие функции объекта \en Common functions of object
virtual MbeAttributeType AttributeType() const; // \ru Дать подтип атрибута. \en Get subtype of an attribute.
virtual MbAttribute & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
virtual MbAttribute & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
virtual bool IsSame( const MbAttribute &, double accuracy ) const; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
virtual bool Init( const MbAttribute & ); // \ru Инициализировать данные по присланным. \en Initialize data.
@@ -221,7 +221,7 @@ public :
virtual MbeAttributeType AttributeFamily() const; // \ru Дать тип атрибута. \en Get type of an attribute.
virtual MbeAttributeType AttributeType() const; // \ru Дать подтип атрибута. \en Get subtype of an attribute.
virtual MbAttribute & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
virtual MbAttribute & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
virtual bool IsSame( const MbAttribute &, double accuracy ) const; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
virtual bool Init( const MbAttribute & ); // \ru Инициализировать данные по присланным. \en Initialize data.
@@ -233,13 +233,13 @@ public :
// \ru Выполнить действия при конвертации владельца \en Perform actions when converting the owner.
virtual void OnConvertOwner( const MbAttributeContainer & owner, MbAttributeContainer & other );
// \ru Выполнить действия при трансформировании владельца. \en Perform actions when transforming the owner.
virtual void OnTransformOwner( const MbAttributeContainer & owner, const MbMatrix3D &, MbRegTransform * = NULL );
virtual void OnTransformOwner( const MbAttributeContainer & owner, const MbMatrix3D &, MbRegTransform * = c3d_null );
// \ru Выполнить действия при перемещении владельца. \en Perform actions when moving the owner.
virtual void OnMoveOwner( const MbAttributeContainer & owner, const MbVector3D &, MbRegTransform * = NULL );
virtual void OnMoveOwner( const MbAttributeContainer & owner, const MbVector3D &, MbRegTransform * = c3d_null );
// \ru Выполнить действия при вращении владельца. \en Perform actions when rotating the owner.
virtual void OnRotateOwner( const MbAttributeContainer & owner, const MbAxis3D &, double angle, MbRegTransform * = NULL );
virtual void OnRotateOwner( const MbAttributeContainer & owner, const MbAxis3D &, double angle, MbRegTransform * = c3d_null );
// \ru Выполнить действия при копировании владельца. \en Perform actions when copying the owner.
virtual void OnCopyOwner( const MbAttributeContainer & owner, MbAttributeContainer & other, MbRegDuplicate * = NULL );
virtual void OnCopyOwner( const MbAttributeContainer & owner, MbAttributeContainer & other, MbRegDuplicate * = c3d_null );
// \ru Выполнить действия при объединении владельца. \en Perform actions when merging the owner.
virtual void OnMergeOwner( const MbAttributeContainer & owner, MbAttributeContainer & other );
// \ru Выполнить действия при замене владельца. \en Perform actions when replacing the owner.
@@ -289,7 +289,7 @@ public:
// \ru Общие функции объекта. \en Common functions of object.
virtual MbeAttributeType AttributeType() const; // \ru Дать подтип атрибута. \en Get subtype of an attribute.
virtual MbAttribute & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
virtual MbAttribute & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
virtual bool IsSame( const MbAttribute &, double ) const; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
virtual bool Init( const MbAttribute & ); // \ru Инициализировать данные по атрибуту. \en Initialize by attribute.
virtual void GetProperties( MbProperties & ); // \ru Выдать свойства объекта. \en Get properties of the object.
+7 -7
View File
@@ -37,7 +37,7 @@ public :
// Выдать подтип атрибута (временно).
virtual MbeAttributeType AttributeType() const = 0;
// Сделать копию элемента.
virtual MbAttribute & Duplicate( MbRegDuplicate * = NULL ) const = 0;
virtual MbAttribute & Duplicate( MbRegDuplicate * = c3d_null ) const = 0;
virtual bool IsSame( const MbAttribute &, double accuracy ) const = 0; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
// Инициализировать данные по присланным.
virtual bool Init( const MbAttribute & ) = 0;
@@ -49,13 +49,13 @@ public :
// Действия при конвертации владельца.
virtual void OnConvertOwner( const MbAttributeContainer & owner, MbAttributeContainer & other );
// Действия при трансформировании владельца.
virtual void OnTransformOwner( const MbAttributeContainer & owner, const MbMatrix3D &, MbRegTransform * = NULL );
virtual void OnTransformOwner( const MbAttributeContainer & owner, const MbMatrix3D &, MbRegTransform * = c3d_null );
// Действия при перемещении владельца.
virtual void OnMoveOwner( const MbAttributeContainer & owner, const MbVector3D &, MbRegTransform * = NULL );
virtual void OnMoveOwner( const MbAttributeContainer & owner, const MbVector3D &, MbRegTransform * = c3d_null );
// Действия при вращении владельца.
virtual void OnRotateOwner( const MbAttributeContainer & owner, const MbAxis3D &, double angle, MbRegTransform * = NULL );
virtual void OnRotateOwner( const MbAttributeContainer & owner, const MbAxis3D &, double angle, MbRegTransform * = c3d_null );
// Действия при копировании владельца.
virtual void OnCopyOwner( const MbAttributeContainer & owner, MbAttributeContainer & other, MbRegDuplicate * = NULL );
virtual void OnCopyOwner( const MbAttributeContainer & owner, MbAttributeContainer & other, MbRegDuplicate * = c3d_null );
// Действия при объединении владельца.
virtual void OnMergeOwner( const MbAttributeContainer & owner, MbAttributeContainer & other );
// Действия при замене владельца.
@@ -100,7 +100,7 @@ public :
// Выдать подтип атрибута (временно).
virtual MbeAttributeType AttributeType() const;
// Сделать копию элемента.
virtual MbAttribute & Duplicate( MbRegDuplicate * = NULL ) const;
virtual MbAttribute & Duplicate( MbRegDuplicate * = c3d_null ) const;
virtual bool IsSame( const MbAttribute &, double accuracy ) const; // Определить, являются ли объекты равными.
// Инициализировать данные по присланным.
virtual bool Init( const MbAttribute & ) ;
@@ -319,7 +319,7 @@ public :
// Выдать подтип атрибута (временно).
virtual MbeAttributeType AttributeType() const;
// Сделать копию элемента.
virtual MbAttribute & Duplicate( MbRegDuplicate * = NULL ) const ;
virtual MbAttribute & Duplicate( MbRegDuplicate * = c3d_null ) const ;
virtual bool IsSame( const MbAttribute &, double accuracy ) const; // Определить, являются ли объекты равными.
// Инициализировать данные по присланным.
virtual bool Init( const MbAttribute & ) ;
+3 -3
View File
@@ -37,7 +37,7 @@ public :
// \ru Общие функции объекта. \en Common functions of object.
virtual MbeAttributeType AttributeType() const; // \ru Дать подтип атрибута. \en Get subtype of an attribute.
virtual MbAttribute & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
virtual MbAttribute & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
virtual bool IsSame( const MbAttribute &, double accuracy ) const; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
virtual bool Init( const MbAttribute & ); // \ru Инициализировать данные по присланным. \en Initialize data by given attribute.
@@ -83,7 +83,7 @@ public :
// \ru Общие функции объекта. \en Common functions of object.
virtual MbeAttributeType AttributeType() const; // \ru Дать подтип атрибута. \en Get subtype of an attribute.
virtual MbAttribute & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
virtual MbAttribute & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
virtual bool IsSame( const MbAttribute &, double accuracy ) const; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
virtual bool Init( const MbAttribute & ); // \ru Инициализировать данные по присланным. \en Initialize data by given attribute.
@@ -129,7 +129,7 @@ public :
// \ru Общие функции объекта. \en Common functions of object.
virtual MbeAttributeType AttributeType() const; // \ru Дать подтип атрибута. \en Get subtype of an attribute.
virtual MbAttribute & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
virtual MbAttribute & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
virtual bool IsSame( const MbAttribute &, double accuracy ) const; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
virtual bool Init( const MbAttribute & ); // \ru Инициализировать данные по присланным. \en Initialize data by given attribute.
+5 -5
View File
@@ -49,20 +49,20 @@ public:
// \ru Выдать подтип атрибута. \en Get subtype of an attribute.
virtual MbeAttributeType AttributeType() const;
// \ru Сделать копию элемента. \en Create a copy of the element.
virtual MbAttribute & Duplicate( MbRegDuplicate * = NULL ) const;
virtual MbAttribute & Duplicate( MbRegDuplicate * = c3d_null ) const;
// \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
virtual bool IsSame( const MbAttribute &, double accuracy ) const;
// \ru Инициализировать данные по присланным. \en Initialize data.
virtual bool Init( const MbAttribute & );
// \ru Выполнить действия при трансформировании владельца. \en Perform actions when transforming the owner.
virtual void OnTransformOwner( const MbAttributeContainer & owner, const MbMatrix3D &, MbRegTransform * = NULL );
virtual void OnTransformOwner( const MbAttributeContainer & owner, const MbMatrix3D &, MbRegTransform * = c3d_null );
// \ru Выполнить действия при перемещении владельца. \en Perform actions when moving the owner.
virtual void OnMoveOwner( const MbAttributeContainer & owner, const MbVector3D &, MbRegTransform * = NULL );
virtual void OnMoveOwner( const MbAttributeContainer & owner, const MbVector3D &, MbRegTransform * = c3d_null );
// \ru Выполнить действия при вращении владельца. \en Perform actions when rotating the owner.
virtual void OnRotateOwner( const MbAttributeContainer & owner, const MbAxis3D &, double angle, MbRegTransform * = NULL );
virtual void OnRotateOwner( const MbAttributeContainer & owner, const MbAxis3D &, double angle, MbRegTransform * = c3d_null );
// \ru Выполнить действия при копировании владельца. \en Perform actions when copying the owner.
virtual void OnCopyOwner( const MbAttributeContainer & owner, MbAttributeContainer & other, MbRegDuplicate * = NULL );
virtual void OnCopyOwner( const MbAttributeContainer & owner, MbAttributeContainer & other, MbRegDuplicate * = c3d_null );
// \ru Выполнить действия при объединении владельца. \en Perform actions when merging the owner.
virtual void OnMergeOwner( const MbAttributeContainer & owner, MbAttributeContainer & other );
+17 -17
View File
@@ -108,7 +108,7 @@ public:
/// \ru Выдать подтип пользовательского атрибута по пользовательскому типу. \en Get subtype of an user attribute by user-defined type.
static MbeAttributeType AttributeType( const MbUserAttribType & userType );
virtual MbAttribute & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
virtual MbAttribute & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
virtual bool IsSame( const MbAttribute &, double accuracy ) const; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
virtual bool Init( const MbAttribute & ); // \ru Инициализировать данные по присланным. \en Initialize data by given attribute.
@@ -117,13 +117,13 @@ public:
// \ru Выполнить действия при конвертации владельца \en Perform actions when converting the owner
virtual void OnConvertOwner( const MbAttributeContainer & owner, MbAttributeContainer & other );
// \ru Выполнить действия при трансформировании владельца \en Perform actions when transforming the owner
virtual void OnTransformOwner( const MbAttributeContainer & owner, const MbMatrix3D &, MbRegTransform * = NULL );
virtual void OnTransformOwner( const MbAttributeContainer & owner, const MbMatrix3D &, MbRegTransform * = c3d_null );
// \ru Выполнить действия при перемещении владельца. \en Perform actions when moving the owner.
virtual void OnMoveOwner( const MbAttributeContainer & owner, const MbVector3D &, MbRegTransform * = NULL );
virtual void OnMoveOwner( const MbAttributeContainer & owner, const MbVector3D &, MbRegTransform * = c3d_null );
// \ru Выполнить действия при вращении владельца. \en Perform actions when rotating the owner.
virtual void OnRotateOwner( const MbAttributeContainer & owner, const MbAxis3D &, double angle, MbRegTransform * = NULL );
virtual void OnRotateOwner( const MbAttributeContainer & owner, const MbAxis3D &, double angle, MbRegTransform * = c3d_null );
// \ru Выполнить действия при копировании владельца \en Perform actions when copying the owner.
virtual void OnCopyOwner( const MbAttributeContainer & owner, MbAttributeContainer & other, MbRegDuplicate * = NULL );
virtual void OnCopyOwner( const MbAttributeContainer & owner, MbAttributeContainer & other, MbRegDuplicate * = c3d_null );
// \ru Выполнить действия при объединении владельца \en Perform actions when merging the owner.
virtual void OnMergeOwner( const MbAttributeContainer & owner, MbAttributeContainer & other );
// \ru Выполнить действия при замене владельца. \en Perform actions when replacing the owner.
@@ -197,7 +197,7 @@ public :
/// \ru Выдать подтип атрибута. \en Get subtype of an attribute.
virtual MbUserAttribType AttrTypeEx() const = 0;
virtual MbAttribute & Duplicate( MbRegDuplicate * = NULL ) const = 0; // \ru Сделать копию элемента. \en Create a copy of the element.
virtual MbAttribute & Duplicate( MbRegDuplicate * = c3d_null ) const = 0; // \ru Сделать копию элемента. \en Create a copy of the element.
virtual bool IsSame( const MbAttribute &, double accuracy ) const = 0; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
virtual bool Init( const MbAttribute & ) = 0; // \ru Инициализировать данные по присланным. \en Initialize data.
@@ -206,13 +206,13 @@ public :
// \ru Выполнить действия при конвертации владельца. \en Perform actions when converting the owner.
virtual void OnConvertOwner( const MbAttributeContainer & owner, MbAttributeContainer & other );
// \ru Выполнить действия при трансформировании владельца. \en Perform actions when transforming the owner.
virtual void OnTransformOwner( const MbAttributeContainer & owner, const MbMatrix3D &, MbRegTransform * = NULL );
virtual void OnTransformOwner( const MbAttributeContainer & owner, const MbMatrix3D &, MbRegTransform * = c3d_null );
// \ru Выполнить действия при перемещении владельца. \en Perform actions when moving the owner.
virtual void OnMoveOwner( const MbAttributeContainer & owner, const MbVector3D &, MbRegTransform * = NULL );
virtual void OnMoveOwner( const MbAttributeContainer & owner, const MbVector3D &, MbRegTransform * = c3d_null );
// \ru Выполнить действия при вращении владельца. \en Perform actions when rotating the owner.
virtual void OnRotateOwner( const MbAttributeContainer & owner, const MbAxis3D &, double angle, MbRegTransform * = NULL );
virtual void OnRotateOwner( const MbAttributeContainer & owner, const MbAxis3D &, double angle, MbRegTransform * = c3d_null );
// \ru Выполнить действия при копировании владельца. \en Perform actions when copying the owner.
virtual void OnCopyOwner( const MbAttributeContainer & owner, MbAttributeContainer & other, MbRegDuplicate * = NULL );
virtual void OnCopyOwner( const MbAttributeContainer & owner, MbAttributeContainer & other, MbRegDuplicate * = c3d_null );
// \ru Выполнить действия при объединении владельца. \en Perform actions when merging the owner.
virtual void OnMergeOwner( const MbAttributeContainer & owner, MbAttributeContainer & other );
// \ru Выполнить действия при замене владельца. \en Perform actions when replacing the owner.
@@ -256,7 +256,7 @@ public:
/// \ru Выдать идентификатор атрибута. \en Get attribute identifier.
const MbUserAttribType & GetUserAttrId() const { return userAttrId; }
/// \ru Выдать атрибуты. \en Get attributes.
const MbAttribute * GetAttribute( size_t k ) const { return ((k < attributes.size()) ? attributes[k] : NULL); }
const MbAttribute * GetAttribute( size_t k ) const { return ((k < attributes.size()) ? attributes[k] : c3d_null); }
// \ru Выдать количество атрибутов. \en Get the number of attributes.
size_t AttributesCount() const { return attributes.size(); }
@@ -300,7 +300,7 @@ MbUserAttribute * UserAttrDefinition<AttrClass>::ReduceUserAttrib( const MbExter
MbUserAttribute * resAttr = new MbUserAttribute( _T("AttrClass"), attrId );
resAttr->InitActions( source );
{
const char * charBuf = NULL;
const char * charBuf = c3d_null;
size_t memLen = 0;
{
membuf memBuf;
@@ -330,7 +330,7 @@ MbUserAttribute * UserAttrDefinition<AttrClass>::ReduceUserAttrib( const MbExter
template <typename AttrClass>
MbExternalAttribute * UserAttrDefinition<AttrClass>::AdvanceUserAttrib( const MbUserAttribute & source )
{
AttrClass * resAttr = NULL;
AttrClass * resAttr = c3d_null;
MbUserAttribType attrId;
source.GetUserAttribId( attrId );
{
@@ -360,7 +360,7 @@ MbExternalAttribute * UserAttrDefinition<AttrClass>::AdvanceUserAttrib( const Mb
// ---
template <typename AttrClass>
MbFixAttrSet * UserAttrDefinition<AttrClass>::DisassembleUserAttrib( const MbExternalAttribute & /*source*/ ) {
return NULL;
return c3d_null;
}
@@ -379,7 +379,7 @@ bool UserAttrDefinition<AttrClass>::ReassembleUserAttrib( const MbFixAttrSet & /
template <typename AttrDefClass>
UserAttrDefinitionInstance<AttrDefClass>::UserAttrDefinitionInstance( const MbUserAttribType & type )
: AttrDefInstance( type )
, attrDef( NULL )
, attrDef( c3d_null )
{
}
@@ -390,7 +390,7 @@ UserAttrDefinitionInstance<AttrDefClass>::UserAttrDefinitionInstance( const MbUs
template <typename AttrDefClass>
UserAttrDefinitionInstance<AttrDefClass>::~UserAttrDefinitionInstance()
{
if ( attrDef != NULL )
if ( attrDef != c3d_null )
delete attrDef;
}
@@ -401,7 +401,7 @@ UserAttrDefinitionInstance<AttrDefClass>::~UserAttrDefinitionInstance()
template <typename AttrDefClass>
IAttrDefinition * UserAttrDefinitionInstance<AttrDefClass>::GetAttrDefinition()
{
if ( attrDef == NULL ) {
if ( attrDef == c3d_null ) {
ScopedLock ll( GetLock() );
attrDef = new AttrDefClass();
}
+5 -5
View File
@@ -290,7 +290,7 @@ public :
/// \ru Выдать подтип атрибута. \en Get subtype of an attribute.
virtual MbeAttributeType AttributeType() const = 0;
/// \ru Сделать копию элемента. \en Create a copy of the element.
virtual MbAttribute & Duplicate( MbRegDuplicate * iReg = NULL ) const = 0;
virtual MbAttribute & Duplicate( MbRegDuplicate * = c3d_null ) const = 0;
/** \brief \ru Определить, являются ли объекты равными.
\en Determine whether objects are equal. \~
\details \ru Равными считаются однотипные объекты, все данные которых одинаковы (равны).
@@ -335,7 +335,7 @@ public :
\en Perform actions when transforming the owner, \n
This function is called after transforming the owning object in a case when GetActionForTransform() == trn_Self.
The registrator of transformed objects may be passed as input parameter. \~ */
virtual void OnTransformOwner( const MbAttributeContainer & owner, const MbMatrix3D &, MbRegTransform * = NULL ) = 0;
virtual void OnTransformOwner( const MbAttributeContainer & owner, const MbMatrix3D &, MbRegTransform * = c3d_null ) = 0;
/**\ru Выполнить действия при перемещении владельца. \n
Вызывается после перемещения владеющего объекта при условии GetActionForTransform() == trn_Self.
@@ -343,7 +343,7 @@ public :
\en Perform actions when moving the owner. \n
This function is called after moving the owning object in a case when GetActionForTransform() == trn_Self.
The registrator of transformed objects may be passed as input parameter. \~ */
virtual void OnMoveOwner( const MbAttributeContainer & owner, const MbVector3D &, MbRegTransform * = NULL ) = 0;
virtual void OnMoveOwner( const MbAttributeContainer & owner, const MbVector3D &, MbRegTransform * = c3d_null ) = 0;
/**\ru Выполнить действия при вращении владельца. \n
Вызывается после вращения владеющего объекта при условии GetActionForTransform() == trn_Self.
@@ -351,7 +351,7 @@ public :
\en Perform actions when rotating the owner. \n
This function is called after rotating the owning object in a case when GetActionForTransform() == trn_Self.
The registrator of transformed objects may be passed as input parameter. \~ */
virtual void OnRotateOwner( const MbAttributeContainer & owner, const MbAxis3D &, double angle, MbRegTransform * = NULL ) = 0;
virtual void OnRotateOwner( const MbAttributeContainer & owner, const MbAxis3D &, double angle, MbRegTransform * = c3d_null ) = 0;
/**\ru Выполнить действия при копировании владельца. \n
Вызывается после копирования владеющего объекта при условии GetActionForCopy() == cpy_Self. \n
@@ -359,7 +359,7 @@ public :
\en Perform actions when copying the owner. \n
This function is called after copying the owning object in a case when GetActionForCopy() == cpy_Self. \n
The following objects are passed as input parameters: the owning object copy and registrator of copied objects. \~ */
virtual void OnCopyOwner( const MbAttributeContainer & owner, MbAttributeContainer & other, MbRegDuplicate * = NULL ) = 0;
virtual void OnCopyOwner( const MbAttributeContainer & owner, MbAttributeContainer & other, MbRegDuplicate * = c3d_null ) = 0;
/**\ru Выполнить действия при объединении владельца. \n
Вызывается перед слиянием владельца при условии GetActionForMerge() == mrg_Self. \n
+13 -8
View File
@@ -169,13 +169,13 @@ public:
/// \ru Выполнить действия при конвертации атрибутов. \en Perform actions when converting the attributes.
void AttributesConvert( MbAttributeContainer & other ) const;
/// \ru Выполнить действия при трансформировании атрибутов. \en Perform actions when transforming the attributes.
void AttributesTransform( const MbMatrix3D &, MbRegTransform * = NULL );
void AttributesTransform( const MbMatrix3D &, MbRegTransform * = c3d_null );
/// \ru Выполнить действия при перемещении атрибутов. \en Perform actions when moving the attributes.
void AttributesMove ( const MbVector3D &, MbRegTransform * = NULL );
void AttributesMove ( const MbVector3D &, MbRegTransform * = c3d_null );
/// \ru Выполнить действия при вращении атрибутов. \en Perform actions when rotating the attributes.
void AttributesRotate ( const MbAxis3D &, double angle, MbRegTransform * = NULL );
void AttributesRotate ( const MbAxis3D &, double angle, MbRegTransform * = c3d_null );
/// \ru Выполнить действия при копировании атрибутов. \en Perform actions when copying the attributes.
void AttributesCopy ( MbAttributeContainer & other, MbRegDuplicate * = NULL ) const;
void AttributesCopy ( MbAttributeContainer & other, MbRegDuplicate * = c3d_null ) const;
/// \ru Выполнить действия при объединении атрибутов. \en Perform actions when merging the attributes.
void AttributesMerge ( MbAttributeContainer & other );
/// \ru Выполнить действия при замене атрибутов. \en Perform actions when replacing the attributes.
@@ -226,7 +226,7 @@ public:
\return \ru true если есть такой атрибут \n false в противном случае
\en True if there is the attribute MbColor \n otherwise false. \~
*/
bool IsColored() const { return (GetSimpleAttribute( at_Color ) != NULL); }
bool IsColored() const { return (GetSimpleAttribute( at_Color ) != c3d_null); }
/// \ru Изменить цвет объекта. \en Change color of the object.
void SetColor( uint32 );
/// \ru Изменить цвет объекта (0-255). \en Change color of the object (0-255).
@@ -293,7 +293,9 @@ OBVIOUS_PRIVATE_COPY( MbAttributeContainer )
\ingroup Model_Attributes
*/
// ---
MATH_FUNC (bool) GetCommonAttributes( const MbAttributeContainer & attrItem, const c3d::string_t & attrPrompt, c3d::ConstAttrVector & resAttrs );
MATH_FUNC (bool) GetCommonAttributes( const MbAttributeContainer & attrItem,
const c3d::string_t & attrPrompt,
c3d::ConstAttrVector & resAttrs );
//------------------------------------------------------------------------------
@@ -316,8 +318,11 @@ MATH_FUNC (bool) GetCommonAttributes( const MbAttributeContainer & attrItem, con
\ingroup Model_Attributes
*/
// ---
MATH_FUNC (bool) AddCommonAttributes( const MbAttributeContainer & srcItem, MbeAttributeType attrType, const c3d::string_t & attrPrompt,
MbAttributeContainer & dstItem, c3d::AttrVector * bufAttrs = NULL );
MATH_FUNC (bool) AddCommonAttributes( const MbAttributeContainer & srcItem,
MbeAttributeType attrType,
const c3d::string_t & attrPrompt,
MbAttributeContainer & dstItem,
c3d::AttrVector * bufAttrs = c3d_null );
//------------------------------------------------------------------------------
/** \brief \ru Удалить обобщенные атрибуты.
+20 -11
View File
@@ -23,7 +23,7 @@ class MbHRepSolid;
*/
//----------------------------------------------------------------------------------------
/// \ru Объект набора для контроля столкновений. \en Object of the set for collision detection.
/// \ru Объект из набора контроля столкновений. \en Object from the set of collision detection.
//---
typedef const MbHRepSolid * cdet_item;
typedef MbResultType cdet_result; ///< \ru Код результата контроля столкновений. \en Result code of collision queries.
@@ -45,18 +45,28 @@ typedef const void * cdet_app_item;
//----------------------------------------------------------------------------------------
// Constants
//---
const cdet_item CDET_NULL = C3D_NULL_PTR; ///< \ru Пустой объект набора для контроля столкновений. \en Empty object of the collision query set.
const cdet_app_item CDET_APP_NULL = C3D_NULL_PTR; ///< \ru "Нулевой" объект модели приложения. \en "Null object" of the client app.
const cdet_item CDET_NULL = c3d_null; ///< \ru Пустой объект набора для контроля столкновений. \en Empty object of the collision query set.
const cdet_app_item CDET_APP_NULL = c3d_null; ///< \ru "Нулевой" объект модели приложения. \en "Null object" of the client app.
//----------------------------------------------------------------------------------------
// Base class to implement collision query details
/** \brief \ru Структура данных и обратных вызовов для запроса на поиск соударений.
\en Data structure and callbacks for the collision search request.
\details
\ru Базовый класс, предназначенный для реализации на стороне приложения структуры
запроса к алгоритму поиска соударений. С помощью обратных вызовов приложение
управляет поиском соударений и получает сведения o найденных пересечениях.
\en The base class intended to implement on the application side the structure of a query
to the collision search algorithm. The application uses a callback to control the collision
search and obtain details of detected interferencies.
*/
//---
struct cdet_query
{
enum cback_res ///< Result code of the callback function
{
CBACK_VOID
, CBACK_SUFFICIENT ///< This code means that an app stops collision query for given pair of lamps
, CBACK_SUFFICIENT ///< This code means that an app stops collision query for given pair of lumps
, CBACK_SKIP ///< Skip testing a given pair of the lumps
, CBACK_BREAK ///< Break search of all collisions of the set
, CBACK_SEARCH_MORE = CBACK_VOID ///< This code notifies a collision detector to continue working at cases CDET_INTERSECTED, CDET_TOUCHED.
@@ -77,8 +87,8 @@ struct cdet_query
const MbRefItem * refItem;
const MbMatrix3D * wMatrix;
geom_element()
: appItem( C3D_NULL_PTR )
, refItem( C3D_NULL_PTR )
: appItem( c3d_null )
, refItem( c3d_null )
, wMatrix( &MbMatrix3D::identity ) {}
};
@@ -117,7 +127,7 @@ struct cdet_query_result: public cdet_query
private:
static cback_res QueryFunc( cdet_query * query, message code, cback_data & )
{
C3D_ASSERT( C3D_NULL_PTR != query );
C3D_ASSERT( c3d_null != query );
cdet_query_result * q = static_cast<cdet_query_result*>( query );
switch( code )
{
@@ -162,7 +172,7 @@ private:
{
case CDET_QUERY_STARTED: // The collision query is started for all solids of the set
{
q->first = q->second = C3D_NULL_PTR;
q->first = q->second = c3d_null;
return CBACK_VOID;
}
case CDET_FINISHED: // A pair of solids is finished.
@@ -358,7 +368,7 @@ public:
MbCollisionFace( const MbFace & f )
: item( CDET_NULL )
, mathFace( &f )
, partFace( C3D_NULL_PTR )
, partFace( c3d_null )
{}
const MbFace & Face() const { return *mathFace; }
@@ -405,7 +415,6 @@ class MATH_CLASS MbProximityParameters
SPtr<const MbFace> plane;
public:
//cdet_item fstItem, sndItem; // \ru Дескрипторы
MbCartPoint3D fstPnt, sndPnt; // \ru Пара точек близости, принадлежащие триангуляционным сеткам. \en The points of the proximity belonging to the triangulation grids.
MbCartPoint thePar1, thePar2; // \ru Пара точек близости, заданная в поверхностных координатах граненй. \en The points of the proximity specified in the surface coordinates of the faces.
double theDistance; // \ru Расстояние. \en Distance.
+39 -31
View File
@@ -15,6 +15,7 @@
class MtRefItem;
class MbItem;
class MbSolid;
class MbMesh;
class MbAssembly;
struct MbLumpAndFaces;
class MbCollisionDetector;
@@ -34,7 +35,7 @@ class MbCollisionDetector;
\attention \ru Для гарантированно правильной работы детектора необходимо, чтобы объект
типа MbLumpAndFaces, добавляемый в рассмотрение посредством функции AddSolid, имел
правильную матрицу преобразования в мир в настоящем его положении, т.е. с самого начала.
\en For the ensure proper functionality of detector it is necessary that
\en For the ensure proper functionality of the detector it is necessary that
an object of type MbLumpAndFaces to be added in consideration by function AddSolid will
have a correct matrix of transformation to the world coordinate system in its current
state, i.e. from the beginning. \~
@@ -54,26 +55,54 @@ public:
\en Add a solid with given placement to the collision detection set. \~
\return \ru Дескриптор объекта для контроля столкновений. \en Descriptor of object for collision detection. \~
*/
cdet_item AddItem( const MbSolid & solid, const MbPlacement3D & place, cdet_app_item appItem = CDET_APP_NULL );
cdet_item AddItem( const MbSolid & solid, const MbPlacement3D & place, cdet_app_item appItem = CDET_APP_NULL );
/**
\brief \ru Добавить полигональный объект с заданным положением в набор для контроля столкновений.
\en Add a poligonal object with given placement to the collision detection set. \~
\return \ru Дескриптор объекта для контроля столкновений. \en Descriptor of object for collision detection. \~
*/
cdet_item AddMesh( const MbMesh & mesh, const MbPlacement3D & place, cdet_app_item appItem = CDET_APP_NULL );
/**
\brief \ru Добавить новый компонент контроля соударений и параметров близости.
\en Add a new component to track collisions and proximity parameters. \~
\details \ru Компонент позволяет объединять тела в геометрически-жесткие множества.
\en Component is able to unite solids into the rigid geometric sets.
*/
cdet_item AddComponent( cdet_app_item );
/**
\brief \ru Добавить новый экземпляр тела в компонент контроля соударений.
\en Add a new instance of a reused solid into the component. \~
\param[in] compItem - \ru Компонент, которому будет принадлежать экземпляр.
\en A component to witch the instance will belong.
\param[in] solidItem - \ru Оригинальное тело, добавленное методом #AddSolid, по которому изготавливается экземпляр.
\en An original solid added by the method #AddSolid by witch the instance is made.
\param[in] place - \ru Положение, которое занимает тело экземпляра в глобальной СК.
\en The placement that the instance solid takes in global space.
\return \ru Новый экземпляр тела, зарегистрированный с аппарате контроля соударений.
\en The new solid instance registered in the detector.
\note \ru Значение compItem может быть нулевым. Значит просто вставка не будет
принадлежать ни одному компоненту.
\en The value compItem can be CDET_NULL. This just means that the
instance does not belong to any component.
*/
cdet_item AddInstance( cdet_item compItem, cdet_item solidItem, const MbPlacement3D & place );
/**
\brief \ru Удалить геометрический объект из набора для контроля столкновений.
\en Remove a geometric object from the set of collision detection. \~
*/
void RemoveItem( cdet_item cdItem );
void RemoveItem( cdet_item cdItem );
/**
\brief \ru Поменять текущее положение геометрического объекта в наборе.
\en Change current position of a geometric object. \~
*/
void Reposition( cdet_item, const MbPlacement3D & );
void Reposition( cdet_item, const MbPlacement3D & );
/**
\brief \ru Проверить соударения между геометрическими объектами набора.
\en Check collisions between geometric objects of the set. \~
\return \ru Функция вернет CDET_RESULT_Intersected при обранужении хотя бы одной коллизии.
\en The function will return CDET_RESULT_Intersected if it detects at least one collision.
\en The function will return CDET_RESULT_Intersected if it detects at least one collision.
*/
cdet_result CheckCollisions( cdet_query & );
/**
\brief \ru Проверить соударения между геометрическими объектами набора.
\en Check collisions between geometric objects of the set. \~
@@ -98,28 +127,6 @@ public: // the functions below can be deprecated in future version.
cdet_item AddSolid( const MbLumpAndFaces & );
/// \ru Добавить тело с заданным положением. \en Add a solid with a given placement.
cdet_item AddSolid( const MbSolid &, const MbPlacement3D &, cdet_app_item = CDET_APP_NULL );
/**
\brief \ru Добавить новый компонент контроля соударений и параметров близости.
\en Add a new component to track collisions and proximity parameters. \~
*/
cdet_item AddComponent( cdet_app_item );
/**
\brief \ru Добавить новый экземпляр тела в компонент контроля соударений.
\en Add a new instance of a reused solid into the component. \~
\param[in] compItem - \ru Компонент, которому будет принадлежать экземпляр.
\en A component to witch the instance will belong.
\param[in] solidItem - \ru Оригинальное тело, добавленное методом #AddSolid, по которому изготавливается экземпляр.
\en An original solid added by the method #AddSolid by witch the instance is made.
\param[in] place - \ru Положение, которое занимает тело экземпляра в глобальной СК.
\en The placement that the instance solid takes in global space.
\return \ru Новый экземпляр тела, зарегистрированный с аппарате контроля соударений.
\en The new solid instance registered in the detector.
\note \ru Значение compItem может быть нулевым. Значит просто вставка не будет
принадлежать ни одному компоненту.
\en The value compItem can be CDET_NULL. This just means that the
instance does not belong to any component.
*/
cdet_item AddInstance( cdet_item compItem, cdet_item solidItem, const MbPlacement3D & place );
/// \ru Удалить твердотельную модель из детектора столкновений. \en Remove a solid model from a collision detector.
void RemoveSolid( cdet_item );
/// \ru Выдать количество добавленных твердотельных моделей. \en Get number of added solid models.
@@ -155,7 +162,7 @@ public: /*
// Use AppItem() insead this
cdet_app_item Component( size_t solIdx ) const;
// The func is deprecated. Instead, use CheckCollisions
cdet_result InterferenceDetect( void * formalPar = C3D_NULL_PTR ) const;
cdet_result InterferenceDetect( void * formalPar = c3d_null ) const;
// The func is deprecated. Use SetDistanceTracking instead.
void SetDistanceComputationObjects( const MbLumpAndFaces &, const MbLumpAndFaces & );
// The func is deprecated. Use AddSolid/AddItem instead.
@@ -166,6 +173,7 @@ public: /*
const MtRefItem * _ComputeBVTree( cdet_item );
private:
/*
\brief \ru Добавить объект геометрической модели в набор для контроля столкновений.
\en Add an object of geometric model to the set of collision detection control. \~
@@ -189,7 +197,7 @@ inline cdet_result MbCollisionDetectionUtility::CheckCollisions()
/// \ru Узел дерева объемов. \en A node of the bounding volume tree.
typedef const MtRefItem * cdet_bvt_node;
/// \ru Пустое дерево объемов. \en An empty bounding volume tree.
const cdet_bvt_node CDET_BVT_NULL = C3D_NULL_PTR;
const cdet_bvt_node CDET_BVT_NULL = c3d_null;
/// \ru Пара ветвей поддерева объемов. \en A pair of branches of the bounding volume subtree.
typedef std::pair<cdet_bvt_node,cdet_bvt_node> cdet_bvt_pair;
+51 -25
View File
@@ -70,13 +70,13 @@ public:
public:
/// \ru Пересечение - есть тело. \en Intersection is a solid.
bool IsSolid() const { return ((solid != NULL) || (isSolid && !edges.empty())); }
bool IsSolid() const { return ((solid != c3d_null) || (isSolid && !edges.empty())); }
/// \ru Пересечение касательной областью поверхности. \en Intersection by a tangent region of a surface.
bool IsSurface() const { return !isTangentCurve && !edges.empty(); }
/// \ru Пересечение вдоль касательной линии. \en Intersection along a tangent line.
bool IsCurve() const { return isTangentCurve && !edges.empty(); }
/// \ru Пересечение точкой (еще не реализовано). \en Intersection is a point (not implemented yet).
bool IsPoint() const { return ((pointFrame != NULL) && (pointFrame->GetVerticesCount() > 0)); }
bool IsPoint() const { return ((pointFrame != c3d_null) && (pointFrame->GetVerticesCount() > 0)); }
/// \ru Установить флаг пересечения вдоль касательной линии. \en Set the flag of intersection along a tangent line.
//void SetTangent( bool b ) { isTangentCurve = b; }
@@ -92,7 +92,7 @@ public:
template <class EdgesVector>
void GetCurves( EdgesVector & curves ) const;
/// \ru Получить указатель на кривую пересечения по индексу. \en Get a pointer to an intersection curve by the index.
const MbCurveEdge * GetCurve( size_t k ) const { return ((k < edges.size()) ? edges[k].get() : NULL); }
const MbCurveEdge * GetCurve( size_t k ) const { return ((k < edges.size()) ? edges[k].get() : c3d_null); }
/// \ru Получить номера касающихся граней первого/второго тела. \en Get numbers concerning faces of the first/second solid.
template <class OutputIndicesVector>
void GetFaceNumbers( bool first, OutputIndicesVector & ) const;
@@ -101,7 +101,7 @@ public:
void GetFaceNumbersPairs( OutputIndicesPairsVector & ) const;
/// \ru Количество точек касания. \en The number of touch points.
size_t GetPointsCount() const { return ((pointFrame != NULL) ? pointFrame->GetVerticesCount() : 0); }
size_t GetPointsCount() const { return ((pointFrame != c3d_null) ? pointFrame->GetVerticesCount() : 0); }
/// \ru Получить набор точек касания. \en Get a set of touch points.
const MbPointFrame * GetPointFrame() const { return pointFrame; }
@@ -117,8 +117,8 @@ MbShellsIntersectionData::MbShellsIntersectionData( const EdgesVector & initEdge
: edges ( )
, faceIndices1 ( )
, faceIndices2 ( )
, solid ( NULL )
, pointFrame ( NULL )
, solid ( c3d_null )
, pointFrame ( c3d_null )
, isTangentCurve( false )
, isSolid ( isSolidEgdes )
{
@@ -127,7 +127,7 @@ MbShellsIntersectionData::MbShellsIntersectionData( const EdgesVector & initEdge
c3d::EdgeSPtr edge;
edges.reserve( addCnt );
for ( size_t k = 0; k < addCnt; ++k ) {
if ( initEdges[k] != NULL ) {
if ( initEdges[k] != c3d_null ) {
edge = const_cast<MbCurveEdge *>( &(*initEdges[k]) );
edges.push_back( edge );
}
@@ -146,8 +146,8 @@ MbShellsIntersectionData::MbShellsIntersectionData( const EdgesVector & in
: edges ( )
, faceIndices1 ( )
, faceIndices2 ( )
, solid ( NULL )
, pointFrame ( NULL )
, solid ( c3d_null )
, pointFrame ( c3d_null )
, isTangentCurve( false )
, isSolid ( false )
{
@@ -157,7 +157,7 @@ MbShellsIntersectionData::MbShellsIntersectionData( const EdgesVector & in
c3d::EdgeSPtr edge;
edges.reserve( edgesCnt );
for ( size_t k = 0; k < edgesCnt; ++k ) {
if ( initEdges[k] != NULL ) {
if ( initEdges[k] != c3d_null ) {
edge = const_cast<MbCurveEdge *>(&(*initEdges[k]));
edges.push_back( edge );
}
@@ -177,8 +177,8 @@ MbShellsIntersectionData::MbShellsIntersectionData( const EdgesVector &
: edges ( )
, faceIndices1 ( )
, faceIndices2 ( )
, solid ( NULL )
, pointFrame ( NULL )
, solid ( c3d_null )
, pointFrame ( c3d_null )
, isTangentCurve( false )
, isSolid ( false )
{
@@ -189,7 +189,7 @@ MbShellsIntersectionData::MbShellsIntersectionData( const EdgesVector &
edges.reserve( edgesCnt );
size_t k;
for ( k = 0; k < edgesCnt; ++k ) {
if ( initEdges[k] != NULL ) {
if ( initEdges[k] != c3d_null ) {
edge = const_cast<MbCurveEdge *>(&(*initEdges[k]));
edges.push_back( edge );
}
@@ -340,9 +340,9 @@ bool CheckBoundaryEdges( const Edges & allEdges, Edges * boundaryEdges )
if ( boundaryEdges != &allEdges ) {
for ( size_t i = 0, cnt = allEdges.size(); i < cnt; ++i ) {
if ( allEdges[i] != NULL && allEdges[i]->IsBoundaryFace( METRIC_PRECISION ) ) {
if ( allEdges[i] != c3d_null && allEdges[i]->IsBoundaryFace( METRIC_PRECISION ) ) {
isBoundary = true;
if ( boundaryEdges != NULL )
if ( boundaryEdges != c3d_null )
boundaryEdges->push_back( allEdges[i] );
else
break;
@@ -415,9 +415,9 @@ bool CheckInexactVertices( const Vertices & vertArr, double mAcc, Vertices * ine
if ( inexactVerts != &vertArr ) {
for ( size_t i = 0, icnt = vertArr.size(); i < icnt; ++i ) {
MbVertex * v = vertArr[i];
if ( v != NULL && v->GetTolerance() > mAcc ) {
if ( v != c3d_null && v->GetTolerance() > mAcc ) {
isInexactVertex = true;
if ( inexactVerts != NULL )
if ( inexactVerts != c3d_null )
inexactVerts->push_back( v );
else
break;
@@ -480,12 +480,12 @@ bool CheckInexactEdges( const Edges & allEdges, double mAcc, Edges * inexactEdge
bool isInexactEdge = false;
for ( size_t i = 0, icnt = allEdges.size(); i < icnt; ++i ) {
if ( allEdges[i] != NULL) {
if ( allEdges[i] != c3d_null) {
bool isSpaceNear = !::IsInexactEdge( *allEdges[i], mAcc );
if ( !isSpaceNear ) {
isInexactEdge = true;
if ( inexactEdges != NULL )
if ( inexactEdges != c3d_null )
inexactEdges->push_back( allEdges[i] );
else
break;
@@ -498,7 +498,7 @@ bool CheckInexactEdges( const Edges & allEdges, double mAcc, Edges * inexactEdge
double mLen = allEdges[i]->GetLengthEvaluation();
if ( mLen > METRIC_PRECISION && mLen > mTol + METRIC_PRECISION ) {
isInexactEdge = true;
if ( inexactEdges != NULL )
if ( inexactEdges != c3d_null )
inexactEdges->push_back( allEdges[i] );
else
break;
@@ -797,16 +797,42 @@ MATH_FUNC( bool ) RepairEdges( MbFaceShell & shell, bool updateFacesBounds = tru
//------------------------------------------------------------------------------
/** \brief \ru Устранить наличие общих подложек поверхностей.
\en Remove common surface substrates. \~
\details \ru Устранить наличие общих подложек поверхностей. \n
\en Remove common surface substrates. \n \~
\param[in] shell - \ru Оболочка.
\en A shell. \~
\details \ru Найти и устранить общие поверхности-подложки в гранях оболочки. \n
Функция устарела и будет удалена. Замените вызовы на RemoveCommonSurfaceSubstrates. \n
\en Find and eliminate common underlying surfaces of a shell faces. \n
The function is deprecated and will be removed. Replace calls with RemoveCommonSurfaceSubstrates. \~
\param[in] shell - \ru Модифицируемая оболочка.
\en A shell to be modified. \~
\return \ru Возвращает true, если была выполнена модификация оболочки.
\en Returns true if the shell modification was performed. \~
\ingroup Algorithms_3D
*/
// ---
DEPRECATE_DECLARE
MATH_FUNC( bool ) CheckIdenticalBaseSufaces( MbFaceShell & shell );
//------------------------------------------------------------------------------
/** \brief \ru Устранить наличие общих подложек поверхностей.
\en Remove common surface substrates. \~
\details \ru Найти и устранить общие поверхности-подложки в гранях оболочки. \n
\en Find and eliminate common underlying surfaces of a shell faces. \n \~
\param[in] shell - \ru Модифицируемая оболочка.
\en A shell to be modified. \~
\param[in] checkEdges - \ru Выполнить замену в ребрах.
\en Replace in shell edges. \~
\return \ru Возвращает true, если была выполнена модификация оболочки.
\en Returns true if the shell modification was performed. \~
\ingroup Algorithms_3D
*/
//---
MATH_FUNC( bool ) RemoveCommonSurfaceSubstrates( MbFaceShell & shell );
MATH_FUNC( bool ) RemoveCommonSurfaceSubstrates( MbFaceShell & shell, bool checkEdges = true );
//------------------------------------------------------------------------------
// проверка ориентированности оболочки наружу по угловым точкам расширенного габарита
//---
MATH_FUNC( ThreeStates ) IsOrientedOutward( const MbFaceShell & shell );
#endif // __CHECK_GEOMETRY_H
+4 -4
View File
@@ -84,10 +84,10 @@ public:
// \ru Общие функции геометрического объекта \en Common functions of a geometric object
virtual MbeSpaceType IsA() const; // \ru Тип объекта. \en A type of an object.
virtual MbeSpaceType Type() const; // \ru Групповой тип объекта. \en Group type of object.
virtual MbSpaceItem & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Создать копию. \en Create a copy.
virtual void Transform( const MbMatrix3D &, MbRegTransform * = NULL ); // \ru Преобразовать согласно матрице. \en Transform according to the matrix.
virtual void Move ( const MbVector3D &, MbRegTransform * = NULL ); // \ru Сдвинуть вдоль вектора. \en Translate along a vector.
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси. \en Rotate about an axis.
virtual MbSpaceItem & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Создать копию. \en Create a copy.
virtual void Transform( const MbMatrix3D &, MbRegTransform * = c3d_null ); // \ru Преобразовать согласно матрице. \en Transform according to the matrix.
virtual void Move ( const MbVector3D &, MbRegTransform * = c3d_null ); // \ru Сдвинуть вдоль вектора. \en Translate along a vector.
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси. \en Rotate about an axis.
virtual bool IsSame ( const MbSpaceItem & init, double accuracy = LENGTH_EPSILON ) const; // \ru Являются ли объекты равными? \en Are the objects equal?
virtual bool SetEqual ( const MbSpaceItem & init ); // \ru Сделать объекты равным. \en Make the objects equal.
virtual double DistanceToPoint ( const MbCartPoint3D & ) const; // \ru Вычислить расстояние до точки. \en Calculate the distance to a point.
+3 -3
View File
@@ -42,8 +42,8 @@ public:
public:
MtGeomArgument( const MbRefItem * p, const MbItem * h );
MtGeomArgument( const MtGeomArgument & );
MtGeomArgument() : propItem( NULL ), propName( c3d::UNDEFINED_SNAME )
, hash( c3d::UNDEFINED_SNAME ), item( NULL ), root( NULL ) {}
MtGeomArgument() : propItem( c3d_null ), propName( c3d::UNDEFINED_SNAME )
, hash( c3d::UNDEFINED_SNAME ), item( c3d_null ), root( c3d_null ) {}
public:
/** \brief \ru Получить непосредственный объект сборки, содержащий ссылочный объект.
@@ -106,7 +106,7 @@ public:
public:
/// \ru Возвращает true, если ограничение не действительно. \en Return true if the constraint is invalid.
bool IsNull() const { return m_cItem == NULL; }
bool IsNull() const { return m_cItem == c3d_null; }
/// \ru Тип сопряжения (геометрического ограничения). \en Type of geometric constraint.
MtMateType ConstraintType() const;
/// \ru Текущее значение размера. \en Current value of the dimension.
+10 -10
View File
@@ -38,8 +38,8 @@ public:
/// \ru Конструктор по точке. \en Constructor by point.
MpVertex( const MbCartPoint & initP )
: point( initP )
, begEdge( NULL )
, endEdge( NULL )
, begEdge( c3d_null )
, endEdge( c3d_null )
{}
/// \ru Деструктор. \en Destructor.
@@ -398,7 +398,7 @@ public:
/// \ru Построить вершины. \en Construct vertices.
void CreateVertices();
/// \ru Создать контур по циклу. \en Create a contour by the loop.
MbContour * MakeContour() const;
MbContour * MakeContour( double epsilon = METRIC_ACCURACY ) const;
/** \} */
/**\ru \name Операции преобразования.
@@ -737,7 +737,7 @@ IMPL_PERSISTENT_OPS( MpGraph )
*/ // ---
inline void DeleteVertex( MpVertex *& vertex ) {
delete vertex;
vertex = NULL;
vertex = c3d_null;
}
@@ -751,7 +751,7 @@ inline void DeleteVertex( MpVertex *& vertex ) {
*/ // ---
inline void DeleteEdge( MpEdge *& edge ) {
delete edge;
edge = NULL;
edge = c3d_null;
}
@@ -765,7 +765,7 @@ inline void DeleteEdge( MpEdge *& edge ) {
*/ // ---
inline void DeleteLoop( MpLoop *& loop ) {
delete loop;
loop = NULL;
loop = c3d_null;
}
@@ -779,7 +779,7 @@ inline void DeleteLoop( MpLoop *& loop ) {
*/ // ---
inline void DeleteGraph( MpGraph *& graph ) {
delete graph;
graph = NULL;
graph = c3d_null;
}
@@ -848,7 +848,7 @@ MATH_FUNC (MpGraph *) EncloseContoursBuilder( const RPArray<MbCurve> & curveLi
double accuracy,
bool strict,
VERSION version,
IProgressIndicator * progInd = NULL );
IProgressIndicator * progInd = c3d_null );
//------------------------------------------------------------------------------
@@ -886,7 +886,7 @@ MATH_FUNC (MpGraph *) OuterContoursBuilder( const RPArray<MbCurve> & curveList,
double accuracy,
bool strict,
VERSION version,
IProgressIndicator * progInd = NULL );
IProgressIndicator * progInd = c3d_null );
//------------------------------------------------------------------------------
/** \brief \ru Перестроить контуры, построенные ранее вокруг точки.
@@ -924,7 +924,7 @@ MATH_FUNC (MpGraph *) ContoursReconstructor( const RPArray<MbCurve> & curveLis
double accuracy,
bool strict,
VERSION version,
IProgressIndicator * progInd = NULL );
IProgressIndicator * progInd = c3d_null );
#endif // __CONTOUR_GRAPH_H
File diff suppressed because it is too large Load Diff
+23 -23
View File
@@ -1,24 +1,24 @@
////////////////////////////////////////////////////////////////////////////////
//
////////////////////////////////////////////////////////////////////////////////
#ifndef __BINOBJ_H
#define __BINOBJ_H
//------------------------------------------------------------------------------
// бинарный объект
// ---
struct BinaryObj {
void * p;
void * pSort;
BinaryObj( void *otherId, void *otherP ) : p( otherId ), pSort( otherP ) {}
bool operator == ( const BinaryObj &o ) const { return pSort == o.pSort; }
bool operator < ( const BinaryObj &o ) const { return pSort < o.pSort; }
};
////////////////////////////////////////////////////////////////////////////////
//
////////////////////////////////////////////////////////////////////////////////
#ifndef __BINOBJ_H
#define __BINOBJ_H
//------------------------------------------------------------------------------
// бинарный объект
// ---
struct BinaryObj {
void * p;
void * pSort;
BinaryObj( void *otherId, void *otherP ) : p( otherId ), pSort( otherP ) {}
bool operator == ( const BinaryObj &o ) const { return pSort == o.pSort; }
bool operator < ( const BinaryObj &o ) const { return pSort < o.pSort; }
};
#endif
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+827
View File
@@ -0,0 +1,827 @@
////////////////////////////////////////////////////////////////////////////////
/**
\file
\brief \ru API для передачи моделей, прочитанных сторонним модулем.
\en API for models read by 3d party component.\~
\details \ru Определен интерфейс, который должен реализовать модуль и структуры
для передачи информации о модели, топологии, геометрии.
\en Declared API the module has to implement and structures for structure,
topology and geomentry transmission.\~
*/
////////////////////////////////////////////////////////////////////////////////
#ifndef __CONV_PUGIN_IMPORT_H
#define __CONV_PUGIN_IMPORT_H
#include <wchar.h>
////////////////////////////////////////////////////////////////////////////////
//
// Dynamic-link library API
//
////////////////////////////////////////////////////////////////////////////////
//------------------------------------------------------------------------------
/** \brief \ru Имена функций инициализации и завершения работы плагина.
\en Initialize and release functions of plugin.\~
\ingroup Data_Interface
*/
// ---
#define C3D_PLUGIN_INIT_SOURCE InitSource
#define C3D_PLUGIN_C_SET_PLUGIN_OPTION CSetPluginOption
#define C3D_PLUGIN_W_SET_PLUGIN_OPTION WSetPluginOption
#define C3D_PLUGIN_RELEASE_SOURCE ReleaseSource
//------------------------------------------------------------------------------
/** \brief \ru Имена функций инициализации и завершения работы плагина.
\en Initialize and release functions of plugin.\~
\ingroup Data_Interface
*/
// ---
#define C3D_PLUGIN_INIT_SOURCE_NAME "InitSource"
#define C3D_PLUGIN_C_SET_PLUGIN_OPTION_NAME "CSetPluginOption"
#define C3D_PLUGIN_W_SET_PLUGIN_OPTION_NAME "WSetPluginOption"
#define C3D_PLUGIN_RELEASE_SOURCE_NAME "ReleaseSource"
struct ObModelSource;
//------------------------------------------------------------------------------
/** \brief \ru Объявление функций инициализации и завершения работы плагина.
\en Declare initialize and release functions of plugin.\~
\ingroup Data_Interface
*/
// ---
#ifdef WIN32
#define C3D_PLUGIN_INIT_EXPORT_DECLARE extern "C" __declspec( dllexport ) ObModelSource* _cdecl C3D_PLUGIN_INIT_SOURCE ( const char*, const char* );
#define C3D_PLUGIN_C_SET_PLUGIN_OPTION_DECLARE extern "C" __declspec( dllexport ) void _cdecl C3D_PLUGIN_C_SET_PLUGIN_OPTION ( const char*, const char* );
#define C3D_PLUGIN_W_SET_PLUGIN_OPTION_DECLARE extern "C" __declspec( dllexport ) void _cdecl C3D_PLUGIN_W_SET_PLUGIN_OPTION ( const wchar_t*, const wchar_t* );
#define C3D_PLUGIN_RELEASE_EXPORT_DECLARE extern "C" __declspec( dllexport ) void _cdecl C3D_PLUGIN_RELEASE_SOURCE ( ObModelSource* );
#else
#define C3D_PLUGIN_INIT_EXPORT_DECLARE ObModelSource* C3D_PLUGIN_INIT_SOURCE ( const char*, const char* );
#define C3D_PLUGIN_C_SET_PLUGIN_OPTION_DECLARE void C3D_PLUGIN_C_SET_PLUGIN_OPTION ( const char*, const char* );
#define C3D_PLUGIN_W_SET_PLUGIN_OPTION_DECLARE void C3D_PLUGIN_W_SET_PLUGIN_OPTION ( const wchar_t*, const wchar_t* );
#define C3D_PLUGIN_RELEASE_EXPORT_DECLARE void C3D_PLUGIN_RELEASE_SOURCE ( ObModelSource* );
#endif // WIN32
//------------------------------------------------------------------------------
/** \brief \ru Объявление типа функций инициализации и завершения работы плагина.
\en Declare types of initialize and release functions of plugin.\~
\ingroup Data_Interface
*/
// ---
#ifdef WIN32
typedef ObModelSource* ( _cdecl* C3D_PLUGIN_INIT_SOURCE_CALL ) ( const char*, const char* );
typedef void ( _cdecl* C3D_PLUGIN_C_SET_OPTION_CALL ) ( const char*, const char* );
typedef void ( _cdecl* C3D_PLUGIN_W_SET_OPTION_CALL ) ( const wchar_t*, const wchar_t* );
typedef void ( _cdecl* C3D_PLUGIN_RELEASE_SOURCE_CALL )( ObModelSource* );
#else
typedef ObModelSource* ( * C3D_PLUGIN_INIT_SOURCE_CALL ) ( const char*, const char* );
typedef void ( * C3D_PLUGIN_C_SET_OPTION_CALL ) ( const char*, const char* );
typedef void ( * C3D_PLUGIN_W_SET_OPTION_CALL ) ( const wchar_t*, const wchar_t* );
typedef void ( * C3D_PLUGIN_RELEASE_SOURCE_CALL ) ( ObModelSource* );
#endif // WIN32
////////////////////////////////////////////////////////////////////////////////
//
// Plugin types
//
////////////////////////////////////////////////////////////////////////////////
//------------------------------------------------------------------------------
/** \brief \ru Объявление булевых значений.
\en Declare boolean values.\~
\ingroup Data_Interface
*/
// ---
#define C3D_PLUGIN_BOOL int
#define C3D_PLUGIN_TRUE 1
#define C3D_PLUGIN_FALSE 0
//#define C3D_SYMBOL_COMPOSITE_TEXT 3
#define C3D_SYMBOL_TEXT_LINE 0
//#define C3D_SYMBOL_PRREDEFINED 1
#define C3D_SYMBOL_ARC_LENGTH 1
#define C3D_SYMBOL_CONICAL_TAPER 2
#define C3D_SYMBOL_COUNTERBORE 3
#define C3D_SYMBOL_COUNTERSINK 4
#define C3D_SYMBOL_DEPTH 5
#define C3D_SYMBOL_DIAMETER 6
#define C3D_SYMBOL_PLUS_MINUS 7
#define C3D_SYMBOL_SLOPE 8
#define C3D_SYMBOL_SPHERICAL_DIAMETER 9
#define C3D_SYMBOL_SPHERICAL_RADIUS 10
#define C3D_SYMBOL_SQUARE 11
#define C3D_SYMBOL_ANGULARITY 12
#define C3D_SYMBOL_CIRCULAR_RUNOUT 13
#define C3D_SYMBOL_CIRCULARITY 14
#define C3D_SYMBOL_CONCENTRICITY 15
#define C3D_SYMBOL_CYLINDRICITY 16
#define C3D_SYMBOL_FLATNESS 17
#define C3D_SYMBOL_PARALLELISM 18
#define C3D_SYMBOL_PERPENDICULARITY 19
#define C3D_SYMBOL_POSITION 20
#define C3D_SYMBOL_LINE_PROFILE 21
#define C3D_SYMBOL_SURFACE_PROFILE 22
#define C3D_SYMBOL_STRAIGHTNESS 23
#define C3D_SYMBOL_SYMMETRY 24
#define C3D_SYMBOL_TOTAL_RUNOUT 25
#define C3D_CALLOUT_GENERAL 0
#define C3D_CALLOUT_DIMENSION 1
#define C3D_CALLOUT_PROJECTION 2
#define C3D_TERMINATOR_EMPTY 0
#define C3D_TERMINATOR_BLANKED_ARROW 1
#define C3D_TERMINATOR_BLANKED_BOX 2
#define C3D_TERMINATOR_BLANKED_DOT 3
#define C3D_TERMINATOR_DIMENSION_ORIGIN 4
#define C3D_TERMINATOR_FILLED_ARROW 5
#define C3D_TERMINATOR_FILLED_BOX 6
#define C3D_TERMINATOR_FILLED_DOT 7
#define C3D_TERMINATOR_INTEGRAL_SYMBOL 8
#define C3D_TERMINATOR_OPEN_ARROW 9
#define C3D_TERMINATOR_SLASH 10
#define C3D_TERMINATOR_UNFILLED_ARROW 11
#define C3D_DIMENSION_GENERAL 0
#define C3D_DIMENSION_LINEAR 1
#define C3D_DIMENSION_ANGULAR 2
////////////////////////////////////////////////////////////////////////////////
//
// Curves
//
////////////////////////////////////////////////////////////////////////////////
//------------------------------------------------------------------------------
/** \brief \ru Примитив трехмерного пространства (точка либо вектор).
\en Spatial primitive (point or vector).\~
\ingroup Data_Interface
*/
// ---
struct ObPrimitive3D {
double x, y, z;
ObPrimitive3D()
: x( 0.0 ), y( 0.0 ), z( 0.0 )
{}
};
//------------------------------------------------------------------------------
// Инициализировать примитив
// ---
inline void SetObPrimitiveZero( ObPrimitive3D& ob ) {
ob.x = ob.y = ob.z = 0.0;
}
//------------------------------------------------------------------------------
// Инициализировать примитив
// ---
inline bool IsObPrimitiveZero( const ObPrimitive3D& ob ) {
return (ob.x == 0.0) && (ob.y == 0.0) && (ob.z == 0.0);
}
//------------------------------------------------------------------------------
/** \brief \ru Локальная система координат в трехмерном пространстве.
\en Spatial placement.\~
\ingroup Data_Interface
*/
// ---
struct ObLocation3D {
ObPrimitive3D origin, axisX, axisY, axisZ;
ObLocation3D()
: origin(), axisX(), axisY(), axisZ()
{}
};
//------------------------------------------------------------------------------
/** \brief \ru Одномерный диапазон.
\en One dimensional range.\~
\ingroup Data_Interface
*/
// ---
struct ObRange1D {
double start, end;
ObRange1D()
: start( 0.0 ), end( 0.0 )
{}
};
//------------------------------------------------------------------------------
/** \brief \ru Трехмерный отрезок.
\en Spatial line segment.\~
\ingroup Data_Interface
*/
// ---
struct ObSegment3D {
static const int CurveType = 1;
ObRange1D domain;
ObPrimitive3D start, end;
ObSegment3D()
: domain(), start(), end()
{}
};
//------------------------------------------------------------------------------
/** \brief \ru Трехмерная полилиния.
\en Spatial polyline.\~
\ingroup Data_Interface
*/
// ---
struct ObPolyline3D {
static const int CurveType = 2;
int pointsArrayId;
ObPolyline3D()
: pointsArrayId( 0 )
{}
};
//------------------------------------------------------------------------------
/** \brief \ru Трехмерная дуга.
\en Spatial arc.\~
\ingroup Data_Interface
*/
// ---
struct ObArc3D {
static const int CurveType = 3;
ObLocation3D location;
double majorAxis, minorAxis;
ObRange1D domain;
ObArc3D()
: location(), majorAxis( 0.0 ), minorAxis( 0.0 ), domain()
{}
};
//------------------------------------------------------------------------------
/** \brief \ru Трехмерная парабола.
\en Spatial parabola.\~
\ingroup Data_Interface
*/
// ---
struct ObParabola3D {
static const int CurveType = 4;
ObLocation3D location;
double focalLength;
ObRange1D domain;
ObParabola3D()
: location(), focalLength( 0.0 ), domain()
{}
};
//------------------------------------------------------------------------------
/** \brief \ru Трехмерная дуга.
\en Spatial arc.\~
\ingroup Data_Interface
*/
// ---
struct ObHyperbola3D {
static const int CurveType = 5;
ObLocation3D location;
double majorSemiAxis, minorSemiAxis;
ObRange1D domain;
ObHyperbola3D()
: location(), majorSemiAxis( 0.0 ), minorSemiAxis( 0.0 ), domain()
{}
};
//------------------------------------------------------------------------------
/** \brief \ru Трехмерный сплайн.
\en Spatial spline.\~
\ingroup Data_Interface
*/
// ---
struct ObSplineCurve3D {
static const int CurveType = 6;
int knotsId, vertcisId;
int degree;
int closed;
ObSplineCurve3D()
: knotsId( 0 ), vertcisId( 0 ), degree( 0 ), closed( 0 )
{}
};
//------------------------------------------------------------------------------
/** \brief \ru Трехмерный NURBS.
\en Spatial NURBS.\~
\ingroup Data_Interface
*/
// ---
struct ObNURBSCurve3D {
static const int CurveType = 7;
int knotsId, vertcisId, weightsId;
int degree;
C3D_PLUGIN_BOOL closed;
ObRange1D domain;
ObNURBSCurve3D()
: knotsId( 0 ), vertcisId( 0 ), weightsId( 0 ), degree( 0 ), closed( 0 ), domain()
{}
};
//------------------------------------------------------------------------------
/** \brief \ru Трехмерная составная кривая.
\en Spatial composite curve.\~
\ingroup Data_Interface
*/
// ---
struct ObCompositeCurve3D {
static const int CurveType = 8;
int segmentsArrIndicis;
ObCompositeCurve3D()
: segmentsArrIndicis( 0 )
{}
};
////////////////////////////////////////////////////////////////////////////////
//
// Surfaces
//
////////////////////////////////////////////////////////////////////////////////
//------------------------------------------------------------------------------
/** \brief \ru Плоскость.
\en Plane.\~
\ingroup Data_Interface
*/
// ---
struct ObPlane {
static const int SurfaceType = 1;
ObLocation3D location;
ObRange1D uDomain, vDomain;
ObPlane()
: location(), uDomain(), vDomain()
{}
};
//------------------------------------------------------------------------------
/** \brief \ru Цилиндрическая поверхность.
\en Cylinder surface.\~
\ingroup Data_Interface
*/
// ---
struct ObCylinder {
static const int SurfaceType = 2;
ObLocation3D location;
double r, h;
ObRange1D uDomain, vDomain;
ObCylinder()
: location(), r( 0.0 ), h( 0.0 ), uDomain(), vDomain()
{}
};
//------------------------------------------------------------------------------
/** \brief \ru Коническая поверхность.
\en Cone surface.\~
\ingroup Data_Interface
*/
// ---
struct ObCone {
static const int SurfaceType = 3;
ObLocation3D location;
double r, h, halfAngle;
ObRange1D uDomain, vDomain;
ObCone()
: location(), r( 0.0 ), h( 0.0 ), halfAngle( 0.0 ), uDomain(), vDomain()
{}
};
//------------------------------------------------------------------------------
/** \brief \ru Сферическая поверхность.
\en Sphere surface.\~
\ingroup Data_Interface
*/
// ---
struct ObSphere {
static const int SurfaceType = 4;
ObLocation3D location;
double r;
ObRange1D uDomain, vDomain;
ObSphere()
: location(), r( 0.0 ), uDomain(), vDomain()
{}
};
//------------------------------------------------------------------------------
/** \brief \ru Тороидальная поверхность.
\en Torus surface.\~
\ingroup Data_Interface
*/
// ---
struct ObTorus {
static const int SurfaceType = 5;
ObLocation3D location;
double rMin, rMax;
ObRange1D uDomain, vDomain;
ObTorus()
: location(), rMin( 0.0 ), rMax( 0.0 ), uDomain(), vDomain()
{}
};
//------------------------------------------------------------------------------
/** \brief \ru Поверхность выдавливания.
\en Extrusion surface.\~
\ingroup Data_Interface
*/
// ---
struct ObExtrusion {
static const int SurfaceType = 6;
int curve;
ObPrimitive3D direction;
ObExtrusion()
: curve( 0 ), direction()
{}
};
//------------------------------------------------------------------------------
/** \brief \ru Поверхность вращения.
\en Revolution surface.\~
\ingroup Data_Interface
*/
// ---
struct ObRevolution {
static const int SurfaceType = 7;
int curveId;
ObPrimitive3D axisOrigin, axisDirection;
ObRange1D vRange;
ObRevolution()
: curveId( 0 ), axisOrigin(), axisDirection(), vRange()
{}
};
//------------------------------------------------------------------------------
/** \brief \ru Линейчатая поверхность.
\en Ruled surface.\~
\ingroup Data_Interface
*/
// ---
struct ObRuled {
static const int SurfaceType = 8;
int curve1, curve2;
ObRuled()
: curve1( 0 ), curve2( 0 )
{}
};
//------------------------------------------------------------------------------
/** \brief \ru Сплайновая поверхность.
\en Spline surface.\~
\ingroup Data_Interface
*/
// ---
struct ObSplineSurface {
static const int SurfaceType = 9;
int knotsUId, knotsVId, verticisListId;
int degreeU, degreeV;
int closedU, closedV;
ObSplineSurface()
: knotsUId( 0 ), knotsVId( 0 ), verticisListId( 0 ), degreeU( 0 ), degreeV( 0 ), closedU( 0 ), closedV( 0 )
{}
};
//------------------------------------------------------------------------------
/** \brief \ru Сплайновая поверхность.
\en Spline surface.\~
\ingroup Data_Interface
*/
// ---
struct ObNURBSSurface {
static const int SurfaceType = 10;
int knotsUId, knotsVId, verticisListListId, weightsListListId;
int degreeU, degreeV;
C3D_PLUGIN_BOOL closedU, closedV;
ObNURBSSurface()
: knotsUId( 0 ), knotsVId( 0 ), verticisListListId( 0 ), weightsListListId( 0 ), degreeU( 0 ), degreeV( 0 ), closedU( 0 ), closedV( 0 )
{}
};
//------------------------------------------------------------------------------
/** \brief \ru Смещённая поверхность.
\en Offset surface.\~
\ingroup Data_Interface
*/
// ---
struct ObOffsetSurface {
static const int SurfaceType = 11;
int baseSurface;
double offset;
ObOffsetSurface()
: baseSurface( 0 ), offset( 0.0 )
{}
};
//------------------------------------------------------------------------------
/** \brief \ru Цвет.
\en Colour.\~
\ingroup Data_Interface
*/
// ---
struct ObColour {
double red, green, blue;
ObColour()
: red( 0.0 ), green( 0.0 ), blue( 0.0 )
{}
};
//------------------------------------------------------------------------------
/** \brief \ru Неопределённый компонент цвета.
\en Undefined component of colour.\~
\ingroup Data_Interface
*/
// ---
const double ObUndefinedColourComponent = -1.0;
//------------------------------------------------------------------------------
/** \brief \ru Элемент аннотации.
\en PMI item.\~
\ingroup Data_Interface
*/
// ---
struct ObPMI {
ObLocation3D location;
int visualArray;
int textBlockIdArray;
ObPMI()
: location(), visualArray( 0 ), textBlockIdArray( 0 )
{}
};
//------------------------------------------------------------------------------
/** \brief \ru Элемент текста.
\en Text item.\~
\ingroup Data_Interface
*/
// ---
struct ObTextBlock {
double originX, originY;
double dirX, dirY;
double extentX, extentY;
ObTextBlock()
: originX( 0.0 ), originY( 0.0 ), dirX( 0.0 ), dirY( 0.0 ), extentX( 0.0 ), extentY( 0.0 )
{}
};
//------------------------------------------------------------------------------
/** \brief \ru Размер.
\en Dimension.\~
\ingroup Data_Interface
*/
// ---
struct ObDimension {
double value;
double deviationMin, deviationMax;
int type;
int calloutArrId;
ObDimension()
: value( 0.0 ), deviationMin( 0.0 ), deviationMax( 0.0 ), type( 0 ), calloutArrId( 0 )
{}
};
//------------------------------------------------------------------------------
/** \brief \ru Особая линия.
\en Special line.\~
\ingroup Data_Interface
*/
// ---
struct ObPMICallout {
int type;
//int geometry;
ObPrimitive3D head, tail;
bool isArc;
ObPrimitive3D center;
int terminatorHead;
int terminatorTail;
ObPMICallout()
: type( 0 ), head(), tail(), isArc( false ), center(), terminatorHead( 0 ), terminatorTail( 0 )
{}
};
////////////////////////////////////////////////////////////////////////////////
//
// Model source plugin. Basic interface.
//
////////////////////////////////////////////////////////////////////////////////
//------------------------------------------------------------------------------
/** \brief \ru Источник данных модели.
\en Model source.\~
\ingroup Data_Interface
*/
// ---
struct ObModelSource {
virtual ~ObModelSource() {};
virtual C3D_PLUGIN_BOOL LastOperationSuccess() = 0;
// Операции с файлом
virtual C3D_PLUGIN_BOOL IsPathWCS() = 0;
virtual C3D_PLUGIN_BOOL Open( const char* ) = 0;
virtual C3D_PLUGIN_BOOL Open( const wchar_t* ) = 0;
virtual void Close() = 0;
// Значение неопределённого идентификатора.
virtual int UndefinedId() = 0;
// Управление трассировкой событий
virtual void EnableLog() = 0;
virtual void DisableLog() = 0;
// Контейнеры
virtual unsigned int ArrayCount ( int arrayId ) = 0;
virtual int ArrayIdentifier ( int arrayId, unsigned int index ) = 0;
virtual double ArrayFloat ( int arrayId, unsigned int index ) = 0;
virtual ObPrimitive3D ArrayPrimitive ( int arrayId, unsigned int index ) = 0;
virtual ObColour ItemColour( int itemId ) = 0;
// Модель
virtual int ModelPart() = 0;
virtual unsigned int PartInstanceCount( int partId ) = 0;
virtual int PartInstance( int partId, unsigned int inst ) = 0;
virtual const wchar_t* WPartName( int partId ) = 0;
virtual const wchar_t* WPartLabel( int partId ) = 0;
virtual const wchar_t* WPartAuthor( int partId ) = 0;
virtual const wchar_t* WPartOrganization( int partId ) = 0;
virtual const wchar_t* WPartDescription( int partId ) = 0;
virtual const char* CPartName( int partId ) = 0;
virtual const char* CPartLabel( int partId ) = 0;
virtual const char* CPartAuthor( int partId ) = 0;
virtual const char* CPartOrganization( int partId ) = 0;
virtual const char* CPartDescription( int partId ) = 0;
virtual int InstancePart( int instanceId ) = 0;
virtual ObLocation3D InstanceLocation( int instanceId ) = 0;
virtual unsigned int SolidsCount( int partId ) = 0;
// Топология граничного представления
virtual int Solid( int partId, unsigned int solid ) = 0;
virtual ObLocation3D SolidLocation( int solidId ) = 0;
virtual unsigned int SpaceCurvesCount( int partId ) = 0;
virtual int SpaceCurve( int partId, unsigned int curve ) = 0;
virtual unsigned int ShellsCount( int solidId ) = 0;
virtual int Shell( int solid, unsigned int shell ) = 0;
virtual C3D_PLUGIN_BOOL ShellClosed( int shellId ) = 0;
virtual unsigned int ShellFacesCount( int shellId ) = 0;
virtual int ShellFace( int shellId, unsigned int face ) = 0;
virtual unsigned int FaceBoundsCount( int faceId ) = 0;
virtual int FaceBound( int faceId, unsigned int bound ) = 0;
virtual C3D_PLUGIN_BOOL FaceSurfaceSameOriented( int faceId ) = 0;
virtual int BoundType( int boundId ) = 0;
virtual unsigned int BoundCoedgesCount( int boundId ) = 0;
virtual int BoundCoedge( int boundId, unsigned int coedge ) = 0;
virtual int CoedgeEdge( int coedgeId ) = 0;
virtual C3D_PLUGIN_BOOL CoedgeEdgeSameOriented( int coedgeId ) = 0;
virtual int EdgeStartVertex( int edgeId ) = 0;
virtual int EdgeEndVertex( int edgeId ) = 0;
// Методы получения геометрии
virtual int FaceGeometry( int faceId ) = 0;
virtual int EdgeGeometry( int edgeId ) = 0;
virtual ObPrimitive3D VertexGeometry( int vertexId ) = 0;
// Типы геометрических объектов
virtual int SurfaceType( int surfaceId ) = 0;
virtual int Curve3DType( int curveId ) = 0;
// Данные геометрии
// Пространственные кривые
virtual ObSegment3D LineSegment3D( int curveId ) = 0;
virtual ObPolyline3D Polyline3D( int curveId ) = 0;
virtual ObArc3D Arc3D( int curveId ) = 0;
virtual ObParabola3D Parabola3D( int curveId ) = 0;
virtual ObHyperbola3D Hyperbola3D( int curveId ) = 0;
virtual ObSplineCurve3D SplineCurve3D( int curveId ) = 0;
virtual ObNURBSCurve3D NURBSCurve3D( int curveId ) = 0;
virtual ObCompositeCurve3D CompositeCurve3D( int curveId ) = 0;
virtual unsigned int CompositeCurveSegmentsCount( int curveId ) = 0;
virtual int CompositeCurveSegment( int curveId, unsigned int index ) = 0;
virtual C3D_PLUGIN_BOOL CompositeCurveSegmentsSameOriented( int curveId, unsigned int index ) = 0;
// Поверхности
virtual ObPlane Plane( int surfaceId ) = 0;
virtual ObCylinder Cylinder( int surfaceId ) = 0;
virtual ObCone Cone( int surfaceId ) = 0;
virtual ObSphere Sphere( int surfaceId ) = 0;
virtual ObTorus Torus( int surfaceId ) = 0;
virtual ObExtrusion Extrusion( int surfaceId ) = 0;
virtual ObRevolution Revolution( int surfaceId ) = 0;
virtual ObRuled Ruled( int surfaceId ) = 0;
virtual ObSplineSurface SplineSurface( int surfaceId ) = 0;
virtual ObNURBSSurface NURBSSurface( int surfaceId ) = 0;
virtual ObOffsetSurface OffsetSurface( int surfaceId ) = 0;
virtual unsigned int PartPMICount( int partIdId ) = 0;
virtual int PartPMI( int partId, unsigned int index ) = 0;
virtual ObPMI PMI( int pmiId ) = 0;
virtual bool IsDimension( int pmiId ) = 0;
virtual bool Dimension( int pmiId, ObDimension& dim ) = 0;
virtual ObPMICallout PMICallout( int calloutId ) = 0;
virtual unsigned int PMITextCount( int textId ) = 0;
virtual int PMIText( int textId, unsigned int index ) = 0;
virtual int PMITextType( int textBlockId ) = 0;
virtual ObTextBlock PMITextLocation( int textBlockId ) = 0;
virtual int PMITextSymbol( int textBlockId ) = 0;
virtual const wchar_t* WPMIText( int textId ) = 0;
virtual const char* CPMIText( int textBlockId ) = 0;
virtual unsigned int CompositeTextCount( int textId ) = 0;
virtual int CompositeText( int textId, unsigned int index ) = 0;
virtual unsigned int PMICalloutCount( int pmiId ) = 0;
virtual ObPMICallout PMICallout( int pmiId, unsigned int index ) = 0;
};
#endif // __CONV_PUGIN_IMPORT_H
+150 -150
View File
@@ -1,151 +1,151 @@
////////////////////////////////////////////////////////////////////////////////
/**
\file
\brief \ru Перечисления, используемые при импорте и экспорте.
\en Enumerations for import/export operations.\~
\details \ru Определены перечисления, определяющие результат конвертирования,
разрешение на чтение и запись различных объектов и передаваемых черезх конвертер строк.
\en Converting result, objects and properties filters, special strings
of enumerations are defined.\~
*/
////////////////////////////////////////////////////////////////////////////////
#ifndef __CONV_ERROR_RESULT_H
#define __CONV_ERROR_RESULT_H
#include <mb_enum.h>
//------------------------------------------------------------------------------
/** \brief \ru Представление текста при экспорте.
\en Representation of exported text.\~
\ingroup Data_Exchange
*/
// ---
enum eTextForm {
exf_TextOnly, ///< \ru Только текст. \en Text only.
exf_GeometryOnly, ///< \ru Только геометрия. \en Geometry only.
};
//------------------------------------------------------------------------------
/** \brief \ru Предопределённые ключи атрибутов для передачи контрольных параметров.
\en Predefined key of attributes used for validation properties' exchange.\~
\ingroup Data_Interface
*/
// ---
/// \ru Объём. \en Volume.
#define C3D_CAD_VALIDATION_PROPERTY_VOLUME c3d::c3dStr_ValidationPropertyVolumeExchange
/// \ru Площать поверхости. \en Surface area.
#define C3D_CAD_VALIDATION_PROPERTY_AREA c3d::c3dStr_ValidationPropertySurfaceAreaExchange
/// \ru Масса. \en Mass.
#define C3D_CAD_VALIDATION_PROPERTY_MASS c3d::c3dStr_ValidationPropertyMassExchange
/// \ru Идентификатор элемента. \en Item Identifier.
#define C3D_CAD_ITEM_IDENTIFIER c3d::c3dStr_ItemIdentifierExchange
//------------------------------------------------------------------------------
/** \brief \ru Типы линий, передаваемых через конвертер.
\en Types of lines passed via converter. \~
\ingroup Data_Interface
*/
// ---
enum MbeLineFontPattern {
lfp_BEGIN = 0, ///< \ru Для удобства перебора. \en For the convenient search.
lfp_STEPcontinuous, ///< \ru Непрерывная в конвертерах STEP и IGES. \en Continuous line in STEP and IGES (Solid) converters.
lfp_STEPchain, ///< \ru Штрих-пунктирная в конвертерах STEP и IGES. \en Chain line( dash-dotted) in STEP and IGES converters.
lfp_STEPchainDoubleDash, ///< \ru Штриховая с двумя пунктирами в конвертерах STEP и IGES. \en Dash-double-dot line in STEP and IGES (Phantom) converter.
lfp_STEPdashed, ///< \ru Штриховая в конвертерах STEP и IGES. \en Dash line in STEP and IGES converters.
lfp_STEPdotted, ///< \ru Пунктирная в конвертерах STEP и IGES. \en Dotted line in STEP and IGES converters.
lfp_END ///< \ru Для удобства перебора. \en For search
};
//------------------------------------------------------------------------------
/** \brief \ru Отображение точек, передаваемых через конвертер.
\en Representation of points passed via converter. \~
\ingroup Data_Interface
*/
// ---
enum MbeDotMarkerSymbol {
dms_BEGIN = 0, ///< \ru Для удобства перебора. \en For the convenient search.
dms_STEPdot, ///< \ru Точка. \en A point.
dms_STEPx, ///< \ru Косой крест. \en x - cross.
dms_STEPplus, ///< \ru Прямой крест. \en Plus.
dms_STEPasterisk, ///< \ru Звёздочка. \en Asterisk.
dms_STEPring, ///< \ru Кольцо. \en Ring.
dms_STEPsquare, ///< \ru Квадрат. \en Square.
dms_STEPtriangle, ///< \ru Треугольник. \en Triangle.
dms_END ///< \ru Для удобства перебора. \en For the convenient search.
};
//------------------------------------------------------------------------------
/** \brief \ru Ключи строк, соответствующих названию специальных атрибутов.
\en Keys of the strings, which mark special attributes.\~
\ingroup Data_Interface
*/
// ---
enum ePromtAttributeKey {
pac_GConverterInternalIsDummy, ///< \ru Является ли элемент пустышкой.\~
pac_GeneralIsAssembly, ///< \ru Является ли элемент сборкой. \en Is item assembly.\~
pac_GeneralFileName, ///< \ru Имя файла. \en File name.\~
pac_STEPHeader, ///< \ru Заголовок STEP. \en STEP header.\~
pac_STEPProduct, ///< \ru Изделие STEP. \en STEP product.\~
pac_STEPPersonOrganization, ///< \ru Лицо и организация STEP. \en STEP person and organization.\~
pac_STEPAssignedRole ///< \ru Назначенная роль STEP. \en The role, assigned to the person.\~
};
//------------------------------------------------------------------------------
/** \brief \ru Идентификаторы сообщений индикатора прогресса выполнения конвертации данных.
\en Identifiers of the execution progress indicator messages converters data exchange \~
\ingroup Data_Exchange
*/
//---
enum MbeProgBarId_Converters {
pbarId_Cnv_Beg = pbarId_PointsSurface_End + 1,
pbarId_Cnv_Parse_Data, // \ru Синтаксический анализ... \en Syntactic analysis...
pbarId_Cnv_Create_Objects, // \ru Создание объектов... \en Creation of objects...
pbarId_Cnv_Process_Surfaces, // \ru Обработка поверхностей... \en Surfaces processing...
pbarId_Cnv_Process_Annotation,// \ru Обработка аннотации... \en Annotation processing...
pbarId_Cnv_Create_Model, // \ru Создание модели... \en Creation of model...
pbarId_Cnv_Write_Model, // \ru Запись модели... \en Writing of model...
pbarId_Cnv_End,
};
//------------------------------------------------------------------------------
/** \brief \ru Идентификаторы сообщений индикатора прогресса выполнения триангуляции при выполнении конвертации данных.
\en Identifiers of the execution progress indicator messages triangulation. \~
\ingroup Data_Exchange
*/
//---
enum MbeProgBarId_Triangulation {
pbarId_Triangulation_Beg = pbarId_Cnv_End + 1,
pbarId_Calc_Triangulation, // \ru Расчет триангуляции \en Calculating of triangulation
pbarId_Triangulation_End,
};
//------------------------------------------------------------------------------
/** \brief \ru Идентификаторы сообщений индикатора прогресса выполнения расчёта
масс-инерционные характеристики детали или сборки при выполнении конвертации данных.
\en Identifiers of the execution progress indicator messages of mass-inertial properties of assembly or a detail. \~
\ingroup Data_Exchange
*/
//---
enum MbeProgBarId_MassInertiaProperties {
pbarId_MassInertiaProperties_Beg = pbarId_Triangulation_End + 1,
pbarId_Calc_MassInertiaProperties, // \ru Расчет масс-инерционных характеристик \en Mass-inertial properties calculation
pbarId_MassInertiaProperties_End,
};
////////////////////////////////////////////////////////////////////////////////
/**
\file
\brief \ru Перечисления, используемые при импорте и экспорте.
\en Enumerations for import/export operations.\~
\details \ru Определены перечисления, определяющие результат конвертирования,
разрешение на чтение и запись различных объектов и передаваемых черезх конвертер строк.
\en Converting result, objects and properties filters, special strings
of enumerations are defined.\~
*/
////////////////////////////////////////////////////////////////////////////////
#ifndef __CONV_ERROR_RESULT_H
#define __CONV_ERROR_RESULT_H
#include <mb_enum.h>
//------------------------------------------------------------------------------
/** \brief \ru Представление текста при экспорте.
\en Representation of exported text.\~
\ingroup Data_Exchange
*/
// ---
enum eTextForm {
exf_TextOnly, ///< \ru Только текст. \en Text only.
exf_GeometryOnly, ///< \ru Только геометрия. \en Geometry only.
};
//------------------------------------------------------------------------------
/** \brief \ru Предопределённые ключи атрибутов для передачи контрольных параметров.
\en Predefined key of attributes used for validation properties' exchange.\~
\ingroup Data_Interface
*/
// ---
/// \ru Объём. \en Volume.
#define C3D_CAD_VALIDATION_PROPERTY_VOLUME c3d::c3dStr_ValidationPropertyVolumeExchange
/// \ru Площать поверхости. \en Surface area.
#define C3D_CAD_VALIDATION_PROPERTY_AREA c3d::c3dStr_ValidationPropertySurfaceAreaExchange
/// \ru Масса. \en Mass.
#define C3D_CAD_VALIDATION_PROPERTY_MASS c3d::c3dStr_ValidationPropertyMassExchange
/// \ru Идентификатор элемента. \en Item Identifier.
#define C3D_CAD_ITEM_IDENTIFIER c3d::c3dStr_ItemIdentifierExchange
//------------------------------------------------------------------------------
/** \brief \ru Типы линий, передаваемых через конвертер.
\en Types of lines passed via converter. \~
\ingroup Data_Interface
*/
// ---
enum MbeLineFontPattern {
lfp_BEGIN = 0, ///< \ru Для удобства перебора. \en For the convenient search.
lfp_STEPcontinuous, ///< \ru Непрерывная в конвертерах STEP и IGES. \en Continuous line in STEP and IGES (Solid) converters.
lfp_STEPchain, ///< \ru Штрих-пунктирная в конвертерах STEP и IGES. \en Chain line( dash-dotted) in STEP and IGES converters.
lfp_STEPchainDoubleDash, ///< \ru Штриховая с двумя пунктирами в конвертерах STEP и IGES. \en Dash-double-dot line in STEP and IGES (Phantom) converter.
lfp_STEPdashed, ///< \ru Штриховая в конвертерах STEP и IGES. \en Dash line in STEP and IGES converters.
lfp_STEPdotted, ///< \ru Пунктирная в конвертерах STEP и IGES. \en Dotted line in STEP and IGES converters.
lfp_END ///< \ru Для удобства перебора. \en For search
};
//------------------------------------------------------------------------------
/** \brief \ru Отображение точек, передаваемых через конвертер.
\en Representation of points passed via converter. \~
\ingroup Data_Interface
*/
// ---
enum MbeDotMarkerSymbol {
dms_BEGIN = 0, ///< \ru Для удобства перебора. \en For the convenient search.
dms_STEPdot, ///< \ru Точка. \en A point.
dms_STEPx, ///< \ru Косой крест. \en x - cross.
dms_STEPplus, ///< \ru Прямой крест. \en Plus.
dms_STEPasterisk, ///< \ru Звёздочка. \en Asterisk.
dms_STEPring, ///< \ru Кольцо. \en Ring.
dms_STEPsquare, ///< \ru Квадрат. \en Square.
dms_STEPtriangle, ///< \ru Треугольник. \en Triangle.
dms_END ///< \ru Для удобства перебора. \en For the convenient search.
};
//------------------------------------------------------------------------------
/** \brief \ru Ключи строк, соответствующих названию специальных атрибутов.
\en Keys of the strings, which mark special attributes.\~
\ingroup Data_Interface
*/
// ---
enum ePromtAttributeKey {
pac_GConverterInternalIsDummy, ///< \ru Является ли элемент пустышкой.\~
pac_GeneralIsAssembly, ///< \ru Является ли элемент сборкой. \en Is item assembly.\~
pac_GeneralFileName, ///< \ru Имя файла. \en File name.\~
pac_STEPHeader, ///< \ru Заголовок STEP. \en STEP header.\~
pac_STEPProduct, ///< \ru Изделие STEP. \en STEP product.\~
pac_STEPPersonOrganization, ///< \ru Лицо и организация STEP. \en STEP person and organization.\~
pac_STEPAssignedRole ///< \ru Назначенная роль STEP. \en The role, assigned to the person.\~
};
//------------------------------------------------------------------------------
/** \brief \ru Идентификаторы сообщений индикатора прогресса выполнения конвертации данных.
\en Identifiers of the execution progress indicator messages converters data exchange \~
\ingroup Data_Exchange
*/
//---
enum MbeProgBarId_Converters {
pbarId_Cnv_Beg = pbarId_PointsSurface_End + 1,
pbarId_Cnv_Parse_Data, // \ru Синтаксический анализ... \en Syntactic analysis...
pbarId_Cnv_Create_Objects, // \ru Создание объектов... \en Creation of objects...
pbarId_Cnv_Process_Surfaces, // \ru Обработка поверхностей... \en Surfaces processing...
pbarId_Cnv_Process_Annotation,// \ru Обработка аннотации... \en Annotation processing...
pbarId_Cnv_Create_Model, // \ru Создание модели... \en Creation of model...
pbarId_Cnv_Write_Model, // \ru Запись модели... \en Writing of model...
pbarId_Cnv_End,
};
//------------------------------------------------------------------------------
/** \brief \ru Идентификаторы сообщений индикатора прогресса выполнения триангуляции при выполнении конвертации данных.
\en Identifiers of the execution progress indicator messages triangulation. \~
\ingroup Data_Exchange
*/
//---
enum MbeProgBarId_Triangulation {
pbarId_Triangulation_Beg = pbarId_Cnv_End + 1,
pbarId_Calc_Triangulation, // \ru Расчет триангуляции \en Calculating of triangulation
pbarId_Triangulation_End,
};
//------------------------------------------------------------------------------
/** \brief \ru Идентификаторы сообщений индикатора прогресса выполнения расчёта
масс-инерционные характеристики детали или сборки при выполнении конвертации данных.
\en Identifiers of the execution progress indicator messages of mass-inertial properties of assembly or a detail. \~
\ingroup Data_Exchange
*/
//---
enum MbeProgBarId_MassInertiaProperties {
pbarId_MassInertiaProperties_Beg = pbarId_Triangulation_End + 1,
pbarId_Calc_MassInertiaProperties, // \ru Расчет масс-инерционных характеристик \en Mass-inertial properties calculation
pbarId_MassInertiaProperties_End,
};
#endif // __CONV_ERROR_RESULT_H
+35 -35
View File
@@ -1,35 +1,35 @@
////////////////////////////////////////////////////////////////////////////////
/**
\file
\brief \ru Интерфейс запроса масштаба. Интерфейс запроса сшивки.
\en Interface of scale request. Interface of stitching request. \~
*/
////////////////////////////////////////////////////////////////////////////////
#ifndef __CONV_REQUESTOR_H
#define __CONV_REQUESTOR_H
#include <reference_item.h>
//------------------------------------------------------------------------------
/// \ru Интерфейс запроса масштаба. \en Interface of scale request.
// ---
struct IScaleRequestor : public MbRefItem
{
virtual double ScaleRequest() = 0;
};
//------------------------------------------------------------------------------
/// \ru Интерфейс запроса сшивки. \en Interface of stitching request.
// ---
struct IStitchRequestor : public MbRefItem
{
virtual bool StitchRequest() = 0;
};
#endif // __CONV_REQUESTOR_H
////////////////////////////////////////////////////////////////////////////////
/**
\file
\brief \ru Интерфейс запроса масштаба. Интерфейс запроса сшивки.
\en Interface of scale request. Interface of stitching request. \~
*/
////////////////////////////////////////////////////////////////////////////////
#ifndef __CONV_REQUESTOR_H
#define __CONV_REQUESTOR_H
#include <reference_item.h>
//------------------------------------------------------------------------------
/// \ru Интерфейс запроса масштаба. \en Interface of scale request.
// ---
struct IScaleRequestor : public MbRefItem
{
virtual double ScaleRequest() = 0;
};
//------------------------------------------------------------------------------
/// \ru Интерфейс запроса сшивки. \en Interface of stitching request.
// ---
struct IStitchRequestor : public MbRefItem
{
virtual bool StitchRequest() = 0;
};
#endif // __CONV_REQUESTOR_H
+90 -90
View File
@@ -1,90 +1,90 @@
////////////////////////////////////////////////////////////////////////////////
/**
\file
\brief Преобразователь сетки к форме, сохраняющей связи граней и полигонов.
*/
////////////////////////////////////////////////////////////////////////////////
#ifndef __CONV_TOPO_MESH_H
#define __CONV_TOPO_MESH_H
#include <mb_cart_point3d.h>
#include <reference_item.h>
#include <templ_sptr.h>
#include <vector>
#include <list>
class MbMesh;
namespace JTC {
class TopoMesh;
class TopoGrid;
class TopoLoop;
class TopoVertex;
class MeshVertex;
class MeshPolygon;
typedef SPtr<TopoMesh> TopoMeshPtr;
typedef SPtr<TopoGrid> TopoGridPtr;
typedef SPtr<TopoLoop> TopoLoopPtr;
typedef SPtr<TopoVertex> TopoVertexPtr;
typedef SPtr<MeshVertex> MeshVertexPtr;
typedef SPtr<MeshPolygon> MeshPolygonPtr;
typedef std::vector<TopoGrid*> RawTopoGridVector;
typedef std::vector<TopoGridPtr> TopoGridVector;
typedef std::vector<TopoLoopPtr> TopoLoopVector;
typedef std::vector<TopoVertexPtr> TopoVertexVector;
typedef std::vector<MeshVertexPtr> MeshVertexVector;
typedef std::vector<MeshPolygonPtr> MeshPolygonVector;
//------------------------------------------------------------------------------
// Сетка с топологической информацией
// ---
class CONV_CLASS TopoMesh : public MbRefItem {
SPtr<const MbMesh> mesh;
TopoGridVector grids;
MeshVertexVector ownPoints;
MeshPolygonVector ownFacePolygons;
std::map< size_t, std::vector<size_t> > degeneratedTriangles;
std::vector<MbCartPoint3D> boundaryPoints;
double metricTolerance;
public:
TopoMesh(); // Конструктор
virtual ~TopoMesh(); //Деструктор
bool Init( const MbMesh& mesh, bool enableDiagnostics = false ); // Инициализировать
const MbMesh* GetMesh() const; // Получить сетку
size_t MeshPolygonsCount() const; // Число полигонов
MeshPolygonPtr Polygon( size_t index ) const; // Получить полигон
size_t MeshVerticisCount() const; // Число вершин
MeshVertexPtr Vertex( size_t index ) const; // Получить вершину
std::map< size_t, std::vector<size_t> > GetDegeneratedTriangles() const; // Получить вырожденные треуголники
std::vector<MbCartPoint3D> GetBoundaryPoints() const; // Получить граничные точки сетки
void Reset(); // Сбросить все данные
size_t NextBoundaryVertex( size_t indexBoundaryVertex, const std::vector<size_t>& allBoundary ) const; // Получить следующую в цепочке граничную вершину.
bool InitVoidBoundFrom( std::vector<size_t>& freeBoundaryVerticis ); // Сформировать внешнюю границу начиная с указанной вершины.
double MetricTolerance() const; // Получить точность задания расстояния.
OBVIOUS_PRIVATE_COPY( TopoMesh )
};
};
#endif // !__CONV_TOPO_MESH_H
////////////////////////////////////////////////////////////////////////////////
/**
\file
\brief Преобразователь сетки к форме, сохраняющей связи граней и полигонов.
*/
////////////////////////////////////////////////////////////////////////////////
#ifndef __CONV_TOPO_MESH_H
#define __CONV_TOPO_MESH_H
#include <mb_cart_point3d.h>
#include <reference_item.h>
#include <templ_sptr.h>
#include <vector>
#include <list>
class MbMesh;
namespace JTC {
class TopoMesh;
class TopoGrid;
class TopoLoop;
class TopoVertex;
class MeshVertex;
class MeshPolygon;
typedef SPtr<TopoMesh> TopoMeshPtr;
typedef SPtr<TopoGrid> TopoGridPtr;
typedef SPtr<TopoLoop> TopoLoopPtr;
typedef SPtr<TopoVertex> TopoVertexPtr;
typedef SPtr<MeshVertex> MeshVertexPtr;
typedef SPtr<MeshPolygon> MeshPolygonPtr;
typedef std::vector<TopoGrid*> RawTopoGridVector;
typedef std::vector<TopoGridPtr> TopoGridVector;
typedef std::vector<TopoLoopPtr> TopoLoopVector;
typedef std::vector<TopoVertexPtr> TopoVertexVector;
typedef std::vector<MeshVertexPtr> MeshVertexVector;
typedef std::vector<MeshPolygonPtr> MeshPolygonVector;
//------------------------------------------------------------------------------
// Сетка с топологической информацией
// ---
class CONV_CLASS TopoMesh : public MbRefItem {
SPtr<const MbMesh> mesh;
TopoGridVector grids;
MeshVertexVector ownPoints;
MeshPolygonVector ownFacePolygons;
std::map< size_t, std::vector<size_t> > degeneratedTriangles;
std::vector<MbCartPoint3D> boundaryPoints;
double metricTolerance;
public:
TopoMesh(); // Конструктор
virtual ~TopoMesh(); //Деструктор
bool Init( const MbMesh& mesh, bool enableDiagnostics = false ); // Инициализировать
const MbMesh* GetMesh() const; // Получить сетку
size_t MeshPolygonsCount() const; // Число полигонов
MeshPolygonPtr Polygon( size_t index ) const; // Получить полигон
size_t MeshVerticisCount() const; // Число вершин
MeshVertexPtr Vertex( size_t index ) const; // Получить вершину
std::map< size_t, std::vector<size_t> > GetDegeneratedTriangles() const; // Получить вырожденные треуголники
std::vector<MbCartPoint3D> GetBoundaryPoints() const; // Получить граничные точки сетки
void Reset(); // Сбросить все данные
size_t NextBoundaryVertex( size_t indexBoundaryVertex, const std::vector<size_t>& allBoundary ) const; // Получить следующую в цепочке граничную вершину.
bool InitVoidBoundFrom( std::vector<size_t>& freeBoundaryVerticis ); // Сформировать внешнюю границу начиная с указанной вершины.
double MetricTolerance() const; // Получить точность задания расстояния.
OBVIOUS_PRIVATE_COPY( TopoMesh )
};
};
#endif // !__CONV_TOPO_MESH_H
+6 -6
View File
@@ -70,20 +70,20 @@ public:
~MbAttributeProvider();
virtual MbeCreatorType IsA() const; // \ru Выдать тип элемента. \en Get an element type.
virtual void Transform( const MbMatrix3D & matr, MbRegTransform * = NULL ); // \ru Преобразовать элемент согласно матрице. \en Transform element according to the matrix.
virtual void Move( const MbVector3D & to, MbRegTransform * = NULL ); // \ru Сдвинуть вдоль вектора. \en Move along a vector.
virtual void Rotate( const MbAxis3D & axis, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси. \en Rotate about an axis.
virtual void Transform( const MbMatrix3D & matr, MbRegTransform * = c3d_null ); // \ru Преобразовать элемент согласно матрице. \en Transform element according to the matrix.
virtual void Move( const MbVector3D & to, MbRegTransform * = c3d_null ); // \ru Сдвинуть вдоль вектора. \en Move along a vector.
virtual void Rotate( const MbAxis3D & axis, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси. \en Rotate about an axis.
virtual bool IsSame( const MbCreator &, double accuracy ) const; // \ru Являются ли объекты равными? \en Determine whether an object is equal?
virtual bool IsSimilar( const MbCreator & ) const; // \ru Определить, являются ли объекты подобными. \en Determine whether the objects are similar.
virtual bool SetEqual( const MbCreator & ); // \ru Сделать равным. \en Make equal.
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию. \en Create a copy.
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию. \en Create a copy.
virtual void GetProperties( MbProperties & ); // \ru Выдать свойства объекта. \en Get properties of the object.
virtual void SetProperties( const MbProperties & ); // \ru Записать свойства объекта. \en Set properties of the object.
virtual MbePrompt GetPropertyName(); // \ru Выдать заголовок свойства объекта. \en Get a name of object property.
virtual bool CreateShell( MbFaceShell *& shell, MbeCopyMode sameShell,
RPArray<MbSpaceItem> * items = NULL ); // \ru Построение \en Construction.
RPArray<MbSpaceItem> * items = c3d_null ); // \ru Построение \en Construction.
// \ru Добавить отдельный атрибут (забрать во владение) \en Add a separate attribute.
void AddAttribute( const MbName & name, MbAttribute * attr );
@@ -125,7 +125,7 @@ public:
/// \ru Записать полученные атрибуты. \en Save the received attributes.
void ReceiveAttributes ( c3d::AttrVector & attrs );
/// \ru Скопировать атрибуты. \en Copy attributes.
void DuplicateAttributes( c3d::AttrVector & attrs, MbRegDuplicate * iReg = NULL ) const;
void DuplicateAttributes( c3d::AttrVector & attrs, MbRegDuplicate * iReg = c3d_null ) const;
/// \ru Дать количество атрибутов. \en Get the attributes count.
size_t AttributesCount() const { return attributes.size(); }
/// \ru Добавить атрибут. \en Add an attribute.
+6 -6
View File
@@ -67,10 +67,10 @@ public :
// \ru Общие функции математического объекта \en Common functions of the mathematical object
virtual MbeCreatorType IsA() const; // \ru Тип элемента. \en A type of element.
virtual void Transform( const MbMatrix3D &, MbRegTransform * ireg = NULL ); // \ru Преобразовать элемент согласно матрице. \en Transform element according to the matrix.
virtual void Move ( const MbVector3D &, MbRegTransform * ireg = NULL ); // \ru Сдвиг. \en Translation.
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * ireg = NULL ); // \ru Повернуть вокруг оси. \en Rotate around an axis.
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const ; // \ru Сделать копию \en Create a copy
virtual void Transform( const MbMatrix3D &, MbRegTransform * ireg = c3d_null ); // \ru Преобразовать элемент согласно матрице. \en Transform element according to the matrix.
virtual void Move ( const MbVector3D &, MbRegTransform * ireg = c3d_null ); // \ru Сдвиг. \en Translation.
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * ireg = c3d_null ); // \ru Повернуть вокруг оси. \en Rotate around an axis.
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const ; // \ru Сделать копию \en Create a copy
virtual MbePrompt GetPropertyName(); // \ru Выдать заголовок свойства объекта \en Get a name of object property.
virtual void GetProperties( MbProperties & ); // \ru Выдать свойства объекта. \en Get properties of the object.
@@ -90,7 +90,7 @@ public :
// \ru Общие функции твердого тела. \en Common functions of solid.
virtual bool CreateShell( MbFaceShell *& shell, MbeCopyMode sameShell,
RPArray<MbSpaceItem> * items = NULL ); // \ru Построение \en Construction
RPArray<MbSpaceItem> * items = c3d_null ); // \ru Построение \en Construction
virtual void SetYourVersion( VERSION version, bool forAll );
@@ -107,7 +107,7 @@ public:
/// \ru Общее количество строителей. \en Total count of creators.
size_t GetCreatorsCount() const { return creators.size(); }
/// \ru Дать строитель. \en Get the creator.
const MbCreator * GetCreator( size_t k ) const { return ( (k < creators.size()) ? creators[k] : NULL ); }
const MbCreator * GetCreator( size_t k ) const { return ( (k < creators.size()) ? creators[k] : c3d_null ); }
/// \ru Удалить из журнала строители первого тела. \en Delete first-solid creators from the history tree.
bool DeleteFirstCreators();
private :
+2 -2
View File
@@ -39,7 +39,7 @@ public :
// \ru Общие функции математического объекта \en Common functions of the mathematical object
virtual MbeCreatorType IsA() const; // \ru Тип элемента \en A type of element
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const ; // \ru Сделать копию \en Create a copy
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const ; // \ru Сделать копию \en Create a copy
virtual void GetProperties( MbProperties &properties ); // \ru Выдать свойства объекта \en Get properties of the object
virtual void SetProperties( const MbProperties &properties ); // \ru Записать свойства объекта \en Set properties of the object
@@ -51,7 +51,7 @@ public :
// \ru Общие функции твердого тела \en Common functions of solid
virtual bool CreateShell( MbFaceShell *&shell, MbeCopyMode sameShell,
RPArray<MbSpaceItem> * items = NULL ); // \ru Построение \en Construction
RPArray<MbSpaceItem> * items = c3d_null ); // \ru Построение \en Construction
private :
virtual void ReadDistances ( reader &in );
+10 -10
View File
@@ -59,15 +59,15 @@ public :
// \ru Общие функции строителя \en The common functions of the creator
virtual MbeCreatorType IsA() const; // \ru Тип элемента \en A type of element
virtual MbCreator & Duplicate( MbRegDuplicate * iReg = NULL ) const; // \ru Сделать копию \en Create a copy
virtual MbCreator & Duplicate( MbRegDuplicate * iReg = c3d_null ) const; // \ru Сделать копию \en Create a copy
virtual bool IsSame ( const MbCreator &, double accuracy ) const; // \ru Являются ли объекты равными? \en Determine whether an object is equal?
virtual bool IsSimilar( const MbCreator & ) const; // \ru Являются ли объекты подобными \en Whether the objects are similar
virtual bool SetEqual ( const MbCreator & ); // \ru Сделать равным \en Make equal
virtual void Transform( const MbMatrix3D &, MbRegTransform * = NULL ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = NULL ); // \ru Сдвиг \en Translation
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси \en Rotate about an axis
virtual void Transform( const MbMatrix3D &, MbRegTransform * = c3d_null ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = c3d_null ); // \ru Сдвиг \en Translation
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate about an axis
virtual MbePrompt GetPropertyName(); // \ru Дать имя свойства объекта \en Get the object property name
virtual void GetProperties( MbProperties & ); // \ru Выдать свойства объекта \en Get properties of the object
@@ -77,7 +77,7 @@ public :
virtual void SetBasisPoints( const MbControlData3D & ); // \ru Изменить объект по контрольным точкам. \en Change the object by control points.
// \ru Построить кривую по журналу построения \en Create a curve from the history tree
virtual bool CreateSpaceCurve( MbWireFrame *&, MbeCopyMode, RPArray<MbSpaceItem> * items = NULL );
virtual bool CreateSpaceCurve( MbWireFrame *&, MbeCopyMode, RPArray<MbSpaceItem> * items = c3d_null );
/** \} */
@@ -97,13 +97,13 @@ IMPL_PERSISTENT_OPS( MbConnectingCurveCreator )
\en Create two curves fillet constructor.\n \~
\param[in] curve1 - \ru Кривая 1.
\en Curve 1. \~
\param[in/out] t1 - \ru Параметр точки на кривой 1 соединения с кривой соединения.
\param[in,out] t1 - \ru Параметр точки на кривой 1 соединения с кривой соединения.
\en A point parameter on curve 1 of connection with fillet curve. \~
\param[in] curve2 - \ru Кривая 2.
\en Curve 2. \~
\param[in/out] t2 - \ru Параметр точки на кривой 2 соединения с кривой соединения.
\param[in,out] t2 - \ru Параметр точки на кривой 2 соединения с кривой соединения.
\en A point parameter on curve 2 of connection with fillet curve. \~
\param[in/out] radius - \ru Радиус дуги или цилиндра.
\param[in,out] radius - \ru Радиус дуги или цилиндра.
\en The radius of an arc or a cylinder. \~
\param[in] type - \ru Тип скругления.
\en The fillet type. \~
@@ -111,8 +111,8 @@ IMPL_PERSISTENT_OPS( MbConnectingCurveCreator )
\en An object defining the edges names. \~
\param[out] res - \ru Код результата операции.
\en Operation result code. \~
\param[out] surface - \ru Поверхность, которая будет создана и на которой базируется соединительная кривая, (может быть возращён NULL).
\en A surface on which the fillet curve is based on, it will be created by the method (can be NULL). \~
\param[out] surface - \ru Поверхность, которая будет создана и на которой базируется соединительная кривая, (может быть возращён c3d_null).
\en A surface on which the fillet curve is based on, it will be created by the method (can be c3d_null). \~
\result \ru Возвращает строитель.
\en Returns the constructor. \~
\ingroup Curve3D_Modeling
+5 -5
View File
@@ -66,10 +66,10 @@ public :
// \ru Общие функции математического объекта \en Common functions of the mathematical object
virtual MbeCreatorType IsA() const; // \ru Тип элемента \en A type of element
virtual void Transform( const MbMatrix3D &, MbRegTransform * = NULL ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move( const MbVector3D &, MbRegTransform * = NULL ); // \ru Сдвиг \en Translation
virtual void Rotate( const MbAxis3D &, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси \en Rotate around an axis
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию \en Create a copy
virtual void Transform( const MbMatrix3D &, MbRegTransform * = c3d_null ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move( const MbVector3D &, MbRegTransform * = c3d_null ); // \ru Сдвиг \en Translation
virtual void Rotate( const MbAxis3D &, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate around an axis
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию \en Create a copy
virtual MbePrompt GetPropertyName(); // \ru Выдать заголовок свойства объекта \en Get a name of object property
virtual void GetProperties( MbProperties & ); // \ru Выдать свойства объекта \en Get properties of the object
@@ -85,7 +85,7 @@ public :
// \ru Общие функции твердого тела \en Common functions of solid
virtual bool CreateShell( MbFaceShell *&, MbeCopyMode sameShell,
RPArray<MbSpaceItem> * = NULL ); // \ru Построение \en Construction
RPArray<MbSpaceItem> * = c3d_null ); // \ru Построение \en Construction
// \ru Оставляемая часть (если part больше 0, то оставляем часть тела со стороны нормали поверхности). \en A part to be kept (if part is bigger than 0, then keep a part of solid from the side of surface normal).
ThreeStates GetPart() const { return part; }
+6 -6
View File
@@ -42,10 +42,10 @@ public :
\en \name Common functions of the mathematical object.
\{ */
virtual MbeCreatorType IsA() const; // \ru Тип элемента \en Type of element
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const ; // \ru Сделать копию \en Create a copy
virtual void Transform( const MbMatrix3D & matr, MbRegTransform * = NULL ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move( const MbVector3D & to, MbRegTransform * = NULL ); // \ru Сдвиг \en Translation
virtual void Rotate( const MbAxis3D & axis, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси \en Rotate about an axis
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const ; // \ru Сделать копию \en Create a copy
virtual void Transform( const MbMatrix3D & matr, MbRegTransform * = c3d_null ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move( const MbVector3D & to, MbRegTransform * = c3d_null ); // \ru Сдвиг \en Translation
virtual void Rotate( const MbAxis3D & axis, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate about an axis
virtual void GetProperties( MbProperties & properties ); // \ru Выдать свойства объекта \en Get properties of the object
virtual void SetProperties( const MbProperties & properties ); // \ru Записать свойства объекта \en Set properties of the object
@@ -56,7 +56,7 @@ public :
virtual bool SetEqual ( const MbCreator & ); // \ru Сделать равным. \en Make equal.
virtual bool CreateShell( MbFaceShell *& shell, MbeCopyMode sameShell,
RPArray<MbSpaceItem> * items = NULL ); // \ru Построение \en Construction
RPArray<MbSpaceItem> * items = c3d_null ); // \ru Построение \en Construction
/** \} */
/** \ru \name Функции строителя, разделяющие отдельные части оболочки.
\en \name Functions of the creator subdividing separate parts of the shell.
@@ -183,7 +183,7 @@ MbCreator * CreateDetach( MbFaceShell & solid,
MbResultType & res )
{
res = rt_Error;
MbCreator * result = NULL;
MbCreator * result = c3d_null;
::MakeDetachShells( solid, partSolid, sort );
+214
View File
@@ -0,0 +1,214 @@
////////////////////////////////////////////////////////////////////////////////
/**
\file
\brief \ru Строители перемещения объектов в пространстве.
\en Constructors of displacement of an object.
*/
////////////////////////////////////////////////////////////////////////////////
#ifndef __CR_DISPLACE_CREATOR_H
#define __CR_DISPLACE_CREATOR_H
#include <creator.h>
#include <mb_matrix3d.h>
#include <mb_axis3d.h>
//------------------------------------------------------------------------------
/** \brief \ru Перемещение объекта вдоль вектора.
\en The shift of an object. \~
\details \ru Строитель перемещает объект вдоль вектора на его длину. \n
\en Constructor displaces an object along the vector by its length. \n \~
\ingroup Model_Creators
*/
// ---
class MATH_CLASS MbMotionMaker : public MbCreator {
protected:
MbVector3D vector; ///< \ru Вектор перемещения. \en The displacement vector.
public: // \ru Конструктор по параметрам. \en Constructor by parameters.
MbMotionMaker( const MbVector3D & );
private: // \ru Конструктор дублирующий. \en Duplication constructor.
MbMotionMaker( const MbMotionMaker &, MbRegDuplicate * ireg );
// \ru Объявление конструктора копирования без реализации, чтобы не было копирования по умолчанию. \en Declaration without implementation of the copy-constructor to prevent copying by default.
MbMotionMaker( const MbMotionMaker & );
public: // \ru Деструктор \en Destructor
~MbMotionMaker();
public: // \ru Общие функции математического объекта \en Common functions of the mathematical object
virtual MbeCreatorType IsA() const; // \ru Тип элемента \en A type of element
virtual MbeCreatorType Type() const; // \ru Получить групповой тип объекта. \en Get the group type of the object.
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию \en Create a copy
virtual bool IsSame( const MbCreator & other, double accuracy ) const; // \ru Являются ли объекты равными? \en Determine whether an object is equal?
virtual bool SetEqual ( const MbCreator & ); // \ru Сделать равным \en Make equal
virtual void Transform( const MbMatrix3D &, MbRegTransform * = c3d_null ); // \ru Преобразовать по матрице \en Transform according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = c3d_null ); // \ru Сдвиг по вектору \en Translation by a vector
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate around an axis
virtual MbePrompt GetPropertyName(); // \ru Выдать заголовок свойства объекта \en Get a name of object property
virtual void GetProperties( MbProperties & ); // \ru Выдать свойства объекта \en Get properties of the object
virtual void SetProperties( const MbProperties & ); // \ru Записать свойства объекта \en Set properties of the object
/// \ru Построение оболочки \en Creation of a shell.
virtual bool CreateShell( MbFaceShell *& shell, MbeCopyMode sameShell,
RPArray<MbSpaceItem> * items = c3d_null );
/// \ru Построение каркаса кривых. \en Creation of a wire-frame.
virtual bool CreateWireFrame( MbWireFrame *& frame, MbeCopyMode sameShell,
RPArray<MbSpaceItem> * items = c3d_null );
/// \ru Построение каркаса точек. \en Creation of a point-frame.
virtual bool CreatePointFrame( MbPointFrame *& frame, MbeCopyMode sameShell,
RPArray<MbSpaceItem> * items = c3d_null );
/// \ru Переместить строитель. \en Displace the creator.
virtual bool Perform( MbCreator * ) const;
// \ru Добавить перемещение объекта вдоль вектора. \en Add a displacement vector.
void AddVector( const MbVector3D & );
// \ru Дать параметры. \en Get the parameters.
void GetVector( MbVector3D & m ) const { m = vector; }
// \ru Установить параметры. \en Set the parameters.
void SetVector( const MbVector3D & m ) { vector = m; }
private:
// \ru Объявление оператора присваивания без реализации, чтобы не было присваивания по умолчанию. \en The declaration of the assignment operator without implementation to prevent an assignment by default.
void operator = ( const MbMotionMaker & );
DECLARE_PERSISTENT_CLASS_NEW_DEL( MbMotionMaker )
};
IMPL_PERSISTENT_OPS( MbMotionMaker )
//------------------------------------------------------------------------------
/** \brief \ru Поворот объекта вокруг оси.
\en Rotate an object around an axis. \~
\details \ru Строитель поворачивает объект вокруг оси на заданный угол. \n
\en Constructor rotates an object around the axis by the specified angle. \n \~
\ingroup Model_Creators
*/
// ---
class MATH_CLASS MbRotationMaker : public MbCreator {
protected:
MbAxis3D axis; ///< \ru Ось вращения. \en The axis.
double angle; ///< \ru Угол поворота. \en The angle of rotatation.
public: // \ru Конструктор по параметрам. \en Constructor by parameters.
MbRotationMaker( const MbAxis3D & ax, double an );
private: // \ru Конструктор дублирующий. \en Duplication constructor.
MbRotationMaker( const MbRotationMaker &, MbRegDuplicate * ireg );
// \ru Объявление конструктора копирования без реализации, чтобы не было копирования по умолчанию. \en Declaration without implementation of the copy-constructor to prevent copying by default.
MbRotationMaker( const MbRotationMaker & );
public: // \ru Деструктор \en Destructor
~MbRotationMaker();
public: // \ru Общие функции математического объекта \en Common functions of the mathematical object
virtual MbeCreatorType IsA() const; // \ru Тип элемента \en A type of element
virtual MbeCreatorType Type() const; // \ru Получить групповой тип объекта. \en Get the group type of the object.
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию \en Create a copy
virtual bool IsSame( const MbCreator & other, double accuracy ) const; // \ru Являются ли объекты равными? \en Determine whether an object is equal?
virtual bool SetEqual ( const MbCreator & ); // \ru Сделать равным \en Make equal
virtual void Transform( const MbMatrix3D &, MbRegTransform * = c3d_null ); // \ru Преобразовать по матрице \en Transform according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = c3d_null ); // \ru Сдвиг по вектору \en Translation by a vector
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate around an axis
virtual MbePrompt GetPropertyName(); // \ru Выдать заголовок свойства объекта \en Get a name of object property
virtual void GetProperties( MbProperties & ); // \ru Выдать свойства объекта \en Get properties of the object
virtual void SetProperties( const MbProperties & ); // \ru Записать свойства объекта \en Set properties of the object
/// \ru Построение оболочки \en Creation of a shell.
virtual bool CreateShell( MbFaceShell *& shell, MbeCopyMode sameShell,
RPArray<MbSpaceItem> * items = c3d_null );
/// \ru Построение каркаса кривых. \en Creation of a wire-frame.
virtual bool CreateWireFrame( MbWireFrame *& frame, MbeCopyMode sameShell,
RPArray<MbSpaceItem> * items = c3d_null );
/// \ru Построение каркаса точек. \en Creation of a point-frame.
virtual bool CreatePointFrame( MbPointFrame *& frame, MbeCopyMode sameShell,
RPArray<MbSpaceItem> * items = c3d_null );
/// \ru Переместить строитель. \en Displace the creator.
virtual bool Perform( MbCreator * ) const;
// \ru Добавить поворот вокруг оси. \en Add an angle of rotatation.
bool AddAngle( const MbAxis3D & ax, double an );
// \ru Дать параметры. \en Get the parameters.
void GetAxis3D( MbAxis3D & m ) const { m = axis; }
// \ru Установить параметры. \en Set the parameters.
void SetAxis3D( const MbAxis3D & m ) { axis = m; }
private:
// \ru Объявление оператора присваивания без реализации, чтобы не было присваивания по умолчанию. \en The declaration of the assignment operator without implementation to prevent an assignment by default.
void operator = ( const MbRotationMaker & );
DECLARE_PERSISTENT_CLASS_NEW_DEL( MbRotationMaker )
};
IMPL_PERSISTENT_OPS( MbRotationMaker )
//------------------------------------------------------------------------------
/** \brief \ru Трансформация объекта по матрице.
\en Transformation of an object by matrix. \~
\details \ru Строитель трансформирует объект по матрице. \n
\en Constructor transforms an object by the matrix. \n \~
\ingroup Model_Creators
*/
// ---
class MATH_CLASS MbTransformationMaker : public MbCreator {
protected:
MbMatrix3D matrix; ///< \ru Матрица преобразования. \en The transform matrix.
public: // \ru Конструктор по параметрам. \en Constructor by parameters.
MbTransformationMaker( const MbMatrix3D & );
private: // \ru Конструктор дублирующий. \en Duplication constructor.
MbTransformationMaker( const MbTransformationMaker &, MbRegDuplicate * ireg );
// \ru Объявление конструктора копирования без реализации, чтобы не было копирования по умолчанию. \en Declaration without implementation of the copy-constructor to prevent copying by default.
MbTransformationMaker( const MbTransformationMaker & );
public: // \ru Деструктор \en Destructor
~MbTransformationMaker();
public: // \ru Общие функции математического объекта \en Common functions of the mathematical object
virtual MbeCreatorType IsA() const; // \ru Тип элемента \en A type of element
virtual MbeCreatorType Type() const; // \ru Получить групповой тип объекта. \en Get the group type of the object.
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию \en Create a copy
virtual bool IsSame( const MbCreator & other, double accuracy ) const; // \ru Являются ли объекты равными? \en Determine whether an object is equal?
virtual bool SetEqual ( const MbCreator & ); // \ru Сделать равным \en Make equal
virtual void Transform( const MbMatrix3D &, MbRegTransform * = c3d_null ); // \ru Преобразовать по матрице \en Transform according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = c3d_null ); // \ru Сдвиг по вектору \en Translation by a vector
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate around an axis
virtual MbePrompt GetPropertyName(); // \ru Выдать заголовок свойства объекта \en Get a name of object property
virtual void GetProperties( MbProperties & ); // \ru Выдать свойства объекта \en Get properties of the object
virtual void SetProperties( const MbProperties & ); // \ru Записать свойства объекта \en Set properties of the object
/// \ru Построение оболочки \en Creation of a shell.
virtual bool CreateShell( MbFaceShell *& shell, MbeCopyMode sameShell,
RPArray<MbSpaceItem> * items = c3d_null );
/// \ru Построение каркаса кривых. \en Creation of a wire-frame.
virtual bool CreateWireFrame( MbWireFrame *& frame, MbeCopyMode sameShell,
RPArray<MbSpaceItem> * items = c3d_null );
/// \ru Построение каркаса точек. \en Creation of a point-frame.
virtual bool CreatePointFrame( MbPointFrame *& frame, MbeCopyMode sameShell,
RPArray<MbSpaceItem> * items = c3d_null );
/// \ru Переместить строитель. \en Displace the creator.
virtual bool Perform( MbCreator * ) const;
// \ru Добавить модификацию по матрице \en Add a modification by a matrix
void AddMatrix( const MbMatrix3D & );
// \ru Дать параметры. \en Get the parameters.
void GetMatrix( MbMatrix3D & m ) const { m = matrix; }
// \ru Установить параметры. \en Set the parameters.
void SetMatrix( const MbMatrix3D & m ) { matrix = m; }
private:
// \ru Объявление оператора присваивания без реализации, чтобы не было присваивания по умолчанию. \en The declaration of the assignment operator without implementation to prevent an assignment by default.
void operator = ( const MbTransformationMaker & );
DECLARE_PERSISTENT_CLASS_NEW_DEL( MbTransformationMaker )
};
IMPL_PERSISTENT_OPS( MbTransformationMaker )
#endif // __CR_DISPLACE_CREATOR_H
+7 -7
View File
@@ -47,7 +47,7 @@ public:
, fp ( faceProp )
, np ( new MbPlacement3D( nPlace ) )
, edgeNb ( -1 )
, pl ( NULL )
, pl ( c3d_null )
, reverse ( rev )
, step ( false )
{
@@ -65,7 +65,7 @@ public:
, angle ( ang )
, faceIndices( )
, fp ( faceProp )
, np ( nPlace ? new MbPlacement3D( *nPlace ) : NULL )
, np ( nPlace ? new MbPlacement3D( *nPlace ) : c3d_null )
, edgeNb ( edgeInd )
, pl ( new SArray<ptrdiff_t>( partLines ) )
, reverse ( rev )
@@ -82,10 +82,10 @@ public :
// \ru Общие функции математического объекта \en Common functions of the mathematical object
virtual MbeCreatorType IsA() const; // \ru Тип элемента \en A type of element
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const;
virtual void Transform( const MbMatrix3D &, MbRegTransform * = NULL ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = NULL ); // \ru Сдвиг \en Translation
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси \en Rotate around an axis
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const;
virtual void Transform( const MbMatrix3D &, MbRegTransform * = c3d_null ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = c3d_null ); // \ru Сдвиг \en Translation
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate around an axis
virtual void GetProperties( MbProperties & ); // \ru Выдать свойства объекта \en Get properties of the object
virtual void SetProperties( const MbProperties & ); // \ru Записать свойства объекта \en Set properties of the object
@@ -98,7 +98,7 @@ public :
// \ru Общие функции твердого тела \en Common functions of solid
virtual bool CreateShell( MbFaceShell *&, MbeCopyMode sameShell,
RPArray<MbSpaceItem> * = NULL ); // \ru Построение \en Construction
RPArray<MbSpaceItem> * = c3d_null ); // \ru Построение \en Construction
private :
// \ru Объявление оператора присваивания без реализации, чтобы не было присваивания по умолчанию. \en The declaration of the assignment operator without implementation to prevent an assignment by default.
+5 -5
View File
@@ -46,10 +46,10 @@ public:
\{ */
/// \ru Получить регистрационный тип (для копирования, дублирования). \en Get the registration type (for copying, duplication).
virtual MbeCreatorType IsA() const;
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const ; // \ru сделать копию \en create a copy
virtual void Transform( const MbMatrix3D &, MbRegTransform * = NULL ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move( const MbVector3D &, MbRegTransform * = NULL ); // \ru Сдвиг \en Translation
virtual void Rotate( const MbAxis3D &, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси \en Rotate about an axis
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const ; // \ru сделать копию \en create a copy
virtual void Transform( const MbMatrix3D &, MbRegTransform * = c3d_null ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move( const MbVector3D &, MbRegTransform * = c3d_null ); // \ru Сдвиг \en Translation
virtual void Rotate( const MbAxis3D &, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate about an axis
virtual void GetProperties( MbProperties & ); // \ru выдать свойства объекта \en get properties of the object
virtual void SetProperties( const MbProperties & ); // \ru записать свойства объекта \en set properties of the object
@@ -60,7 +60,7 @@ public:
virtual bool SetEqual ( const MbCreator & ); // \ru сделать равным \en make equal
virtual bool CreateShell( MbFaceShell *&, MbeCopyMode sameShell,
RPArray<MbSpaceItem> * items = NULL ); // \ru Построение \en Construction
RPArray<MbSpaceItem> * items = c3d_null ); // \ru Построение \en Construction
/** \} */
private :
+58 -28
View File
@@ -10,11 +10,9 @@
#ifndef __CR_ELEMENTARY_SOLID_H
#define __CR_ELEMENTARY_SOLID_H
#include <creator.h>
#include <mb_enum.h>
class MATH_CLASS MbElementarySurface;
@@ -46,17 +44,17 @@ class MATH_CLASS MbElementarySurface;
// ---
class MATH_CLASS MbElementarySolid : public MbCreator {
protected :
SArray<MbCartPoint3D> points; ///< \ru Опорные точки оболочки тела. \en Support points of a solid shell.
ElementaryShellType type; ///< \ru Тип тела. \en Type of a solid.
MbPlacement3D position; ///< \ru Локальная система координат тела. \en Local coordinate system оf a solid.
double radius; ///< \ru Радиус основания тела. \en Radius of the base of the solid.
double minorRadius; ///< \ru Малый радиус основания тела. \en Small radius of the base of the solid.
double height; ///< \ru Высота тела. \en Height of a solid.
double length; ///< \ru Длина тела. \en Length of a solid.
double minorLength; ///< \ru Малая длина тела. \en Small length of a solid.
double width; ///< \ru Ширина тела. \en Width of a solid.
double angle; ///< \ru Угол между осью position.axisZ и боковой образующей. \en Angle between position.axisZ axis and lateral generatrix.
double ratio; ///< \ru Коэффициент растяжения. \en Stretch factor.
SArray<MbCartPoint3D> points; ///< \ru Опорные точки оболочки тела. \en Support points of a solid shell.
ElementaryShellType type; ///< \ru Тип тела. \en Type of a solid.
MbPlacement3D position; ///< \ru Локальная система координат тела. \en Local coordinate system оf a solid.
double radius; ///< \ru Радиус основания тела. \en Radius of the base of the solid.
double minorRadius; ///< \ru Малый радиус основания тела. \en Small radius of the base of the solid.
double height; ///< \ru Высота тела. \en Height of a solid.
double length; ///< \ru Длина тела. \en Length of a solid.
double minorLength; ///< \ru Малая длина тела. \en Small length of a solid.
double width; ///< \ru Ширина тела. \en Width of a solid.
double angle; ///< \ru Угол между осью position.axisZ и боковой образующей. \en Angle between position.axisZ axis and lateral generatrix.
double ratio; ///< \ru Коэффициент растяжения. \en Stretch factor.
public :
/** \brief \ru Конструктор.
\en Constructor. \~
@@ -97,13 +95,13 @@ public :
\param[in] n - \ru Именователь операции.
\en An object defining names generation in the operation. \~
*/
template<class Points>
MbElementarySolid( const Points & pnts, ElementaryShellType t, const MbSNameMaker & n );
template<class PointsVector>
MbElementarySolid( const PointsVector & pnts, ElementaryShellType t, const MbSNameMaker & n );
private :
MbElementarySolid( const MbElementarySolid &, MbRegDuplicate * iReg ); // \ru Конструктор копирования с регистратором \en Copy-constructor with the registrator
// \ru Объявление конструктора копирования без реализации, чтобы не было копирования по умолчанию. \en Declaration without implementation of the copy-constructor to prevent copying by default.
/// \ru Конструктор копирования с регистратором. \en Copy-constructor with the registrator.
MbElementarySolid( const MbElementarySolid &, MbRegDuplicate * );
/// \ru Объявление конструктора копирования без реализации, чтобы не было копирования по умолчанию. \en Declaration without implementation of the copy-constructor to prevent copying by default.
MbElementarySolid( const MbElementarySolid & );
public :
/// \ru Деструктор. \en Destructor.
@@ -113,15 +111,15 @@ public :
\en \name Common functions of the shell creator.
\{ */
virtual MbeCreatorType IsA() const; // \ru Тип элемента \en Type of element
virtual void Transform( const MbMatrix3D &, MbRegTransform * = NULL ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move( const MbVector3D &, MbRegTransform * = NULL ); // \ru Сдвиг \en Translation
virtual void Rotate( const MbAxis3D &, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси \en Rotate about an axis
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию \en Create a copy
virtual void Transform( const MbMatrix3D &, MbRegTransform * = c3d_null ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move( const MbVector3D &, MbRegTransform * = c3d_null ); // \ru Сдвиг \en Translation
virtual void Rotate( const MbAxis3D &, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate about an axis
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию \en Create a copy
virtual MbePrompt GetPropertyName(); // \ru Выдать заголовок свойства объекта \en Get a name of object property
virtual void GetProperties( MbProperties & properties ); // \ru Выдать свойства объекта \en Get properties of the object
virtual void SetProperties( const MbProperties & properties ); // \ru Записать свойства объекта \en Set properties of the object
virtual void GetBasisItems( RPArray<MbSpaceItem> & s ); // \ru Дать базовые объекты \en Get the basis objects
virtual void GetProperties( MbProperties & ); // \ru Выдать свойства объекта \en Get properties of the object
virtual void SetProperties( const MbProperties & ); // \ru Записать свойства объекта \en Set properties of the object
virtual void GetBasisItems( RPArray<MbSpaceItem> & ); // \ru Дать базовые объекты \en Get the basis objects
virtual void GetBasisPoints( MbControlData3D & ) const; // \ru Выдать контрольные точки объекта. \en Get control points of object.
virtual void SetBasisPoints( const MbControlData3D & ); // \ru Изменить объект по контрольным точкам. \en Change the object by control points.
@@ -130,9 +128,12 @@ public :
virtual bool SetEqual( const MbCreator & ); // \ru Сделать равным \en Make equal
virtual bool CreateShell( MbFaceShell *&, MbeCopyMode sameShell,
RPArray<MbSpaceItem> * = NULL ); // \ru Построение \en Construction
RPArray<MbSpaceItem> * = c3d_null ); // \ru Построение \en Construction
/** \} */
private:
/// \ru Установить параметры по типу и набору точек. \en Set parameters by type and points.
bool SetParameters();
private :
// \ru Объявление оператора присваивания без реализации, чтобы не было присваивания по умолчанию. \en The declaration of the assignment operator without implementation to prevent an assignment by default.
void operator = ( const MbElementarySolid & );
@@ -142,6 +143,35 @@ private :
IMPL_PERSISTENT_OPS( MbElementarySolid )
//------------------------------------------------------------------------------
// \ru Конструктор по точкам и типу тела. При этом, по массиву точек тела и его типу, заполняются соответствующие его параметры.
// \en Constructor by points and type of solid.
// ---
template<class PointsVector>
MbElementarySolid::MbElementarySolid( const PointsVector & pnts, ElementaryShellType t, const MbSNameMaker & n )
: MbCreator ( n )
, points ( )
, type ( t )
, position ( )
, radius ( 0.0 )
, minorRadius( 0.0 )
, height ( 0.0 )
, length ( 0.0 )
, minorLength( 0.0 )
, width ( 0.0 )
, angle ( 0.0 )
, ratio ( 0.0 )
{
size_t cnt = pnts.size();
points.reserve( cnt );
for ( size_t k = 0; k < cnt; ++k ) {
points.push_back( pnts[k] );
}
SetParameters();
}
//------------------------------------------------------------------------------
/** \brief \ru Создать оболочку элементарного тела.
\en Create a shell of an elementary solid. \~
@@ -186,7 +216,7 @@ MATH_FUNC (MbCreator *) CreateElementary( const SArray<MbCartPoint3D> & points,
const ElementaryShellType t,
const MbSNameMaker & n,
MbResultType & res,
MbFaceShell *& shell );
c3d::ShellSPtr & shell );
//------------------------------------------------------------------------------
@@ -214,7 +244,7 @@ MATH_FUNC (MbCreator *) CreateElementary( const SArray<MbCartPoint3D> & points,
MATH_FUNC (MbCreator *) CreateElementary( const MbElementarySurface & surface,
const MbSNameMaker & n,
MbResultType & res,
MbFaceShell *& shell );
c3d::ShellSPtr & shell );
#endif // __CR_ELEMENTARY_SOLID_H
+5 -5
View File
@@ -27,7 +27,7 @@ class MATH_CLASS MbCurveEvolutionSolid : public MbCurveSweptSolid {
protected :
MbSweptData sweptData; ///< \ru Данные об образующей. \en Generating curve data.
SPtr<MbCurve3D> spineCurve; ///< \ru Направляющая кривая. \en Spine curve.
SPtr<MbCurve3D> directionCurve; ///< \ru Кривая вектора ориентации матрицы преобразования (может быть NULL для простой траектории). \en A curve of the transformation matrix orientation (it may be NULL for a simple trajectory).
SPtr<MbCurve3D> directionCurve; ///< \ru Кривая вектора ориентации матрицы преобразования (может быть c3d_null для простой траектории). \en A curve of the transformation matrix orientation (it may be c3d_null for a simple trajectory).
MbVector3D direction; ///< \ru Вектор ориентации матрицы преобразования (может быть нулевой, в случае автоопределения). \en Vector of transformation matrix orientation (it's equal zero in the mode of automatic direction calculation).
SPtr<MbSNameMaker> spineNames; ///< \ru Именователь направляющей. \en An object defining the name of the spine curve.
EvolutionValues parameters; ///< \ru Параметры. \en Parameters.
@@ -128,10 +128,10 @@ public :
\en \name Common functions of the mathematical object.
\{ */
virtual MbeCreatorType IsA() const; // \ru Тип элемента \en A type of element
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const ; // \ru Сделать копию \en Create a copy
virtual void Transform( const MbMatrix3D &, MbRegTransform * = NULL ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = NULL ); // \ru Сдвиг \en Translation
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси \en Rotate around an axis
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const ; // \ru Сделать копию \en Create a copy
virtual void Transform( const MbMatrix3D &, MbRegTransform * = c3d_null ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = c3d_null ); // \ru Сдвиг \en Translation
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate around an axis
virtual void GetProperties( MbProperties & ); // \ru Выдать свойства объекта \en Get properties of the object
virtual void SetProperties( const MbProperties & ); // \ru Записать свойства объекта \en Set properties of the object
+5 -5
View File
@@ -46,10 +46,10 @@ public :
// \ru Общие функции математического объекта \en Common functions of the mathematical object
virtual MbeCreatorType IsA() const; // \ru Тип элемента \en Type of element
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию \en Create a copy
virtual void Transform( const MbMatrix3D & matr, MbRegTransform * = NULL ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move( const MbVector3D & to, MbRegTransform * = NULL ); // \ru Сдвиг \en Translation
virtual void Rotate( const MbAxis3D & axis, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси \en Rotate about an axis
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию \en Create a copy
virtual void Transform( const MbMatrix3D & matr, MbRegTransform * = c3d_null ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move( const MbVector3D & to, MbRegTransform * = c3d_null ); // \ru Сдвиг \en Translation
virtual void Rotate( const MbAxis3D & axis, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate about an axis
virtual void GetProperties( MbProperties & properties ); // \ru Выдать свойства объекта \en Get properties of the object
virtual void SetProperties( const MbProperties & properties ); // \ru Записать свойства объекта \en Set properties of the object
@@ -62,7 +62,7 @@ public :
// \ru Общие функции твердого тела \en Common functions of solid solid
virtual bool CreateShell( MbFaceShell *& shell, MbeCopyMode sameShell,
RPArray<MbSpaceItem> * items = NULL ); // \ru Построение \en Construction
RPArray<MbSpaceItem> * items = c3d_null ); // \ru Построение \en Construction
// \ru Дать параметры. \en Get the parameters.
void GetParameters( ExtensionValues & params ) const { params = parameters; }
+7 -7
View File
@@ -59,7 +59,7 @@ public :
OperationType oType,
const MbSNameMaker & operNames,
const RPArray<MbSNameMaker> & contoursNames,
const c3d::CreatorsSPtrVector * creators = NULL,
const c3d::CreatorsSPtrVector * creators = c3d_null,
bool sameCreators = true );
private :
@@ -73,10 +73,10 @@ public :
\en \name Common functions of the mathematical object.
\{ */
virtual MbeCreatorType IsA() const; // \ru Тип элемента. \en A type of element.
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Cделать копию. \en Make a copy.
virtual void Transform( const MbMatrix3D &, MbRegTransform * = NULL ); // \ru Преобразовать элемент согласно матрице. \en Transform element according to the matrix.
virtual void Move( const MbVector3D &, MbRegTransform * = NULL ); // \ru Сдвиг. \en Move.
virtual void Rotate( const MbAxis3D &, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси. \en Rotate around an axis.
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Cделать копию. \en Make a copy.
virtual void Transform( const MbMatrix3D &, MbRegTransform * = c3d_null ); // \ru Преобразовать элемент согласно матрице. \en Transform element according to the matrix.
virtual void Move( const MbVector3D &, MbRegTransform * = c3d_null ); // \ru Сдвиг. \en Move.
virtual void Rotate( const MbAxis3D &, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси. \en Rotate around an axis.
virtual void GetProperties( MbProperties & ); // \ru Выдать свойства объекта. \en Get properties of the object.
virtual void SetProperties( const MbProperties & ); // \ru Записать свойства объекта. \en Set properties of the object.
@@ -94,7 +94,7 @@ public :
\en \name Common functions of the rigid solid (forming operations).
\{ */
virtual bool CreateShell( MbFaceShell *& shell, MbeCopyMode sameShell,
RPArray<MbSpaceItem> * items = NULL ); // \ru Построение. \en Construction.
RPArray<MbSpaceItem> * items = c3d_null ); // \ru Построение. \en Construction.
virtual MbFaceShell * InitShell( bool in );
virtual void InitBasis( RPArray<MbSpaceItem> & items );
@@ -139,7 +139,7 @@ IMPL_PERSISTENT_OPS( MbCurveExtrusionSolid )
\en Face set the construction is complemented with respect to. \~
\param[in] sameShell - \ru Способ копирования граней.
\en The method of copying faces. \~
\param[in] creators - \ru Строители тела solid.
\param[in] solidCreators - \ru Строители тела solid.
\en Creators of the solid. \~
\param[in] sweptData - \ru Данные об образующей.
\en The generating curve data. \~
+5 -5
View File
@@ -60,10 +60,10 @@ public :
// \ru Общие функции математического объекта. \en Common functions of the mathematical object.
virtual MbeCreatorType IsA() const; // \ru Тип элемента. \en A type of element.
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const ; // \ru Сделать копию \en Create a copy
virtual void Transform( const MbMatrix3D &matr, MbRegTransform * = NULL ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move( const MbVector3D &to, MbRegTransform * = NULL ); // \ru Сдвиг \en Translation
virtual void Rotate( const MbAxis3D &axis, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси \en Rotate around an axis
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const ; // \ru Сделать копию \en Create a copy
virtual void Transform( const MbMatrix3D &matr, MbRegTransform * = c3d_null ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move( const MbVector3D &to, MbRegTransform * = c3d_null ); // \ru Сдвиг \en Translation
virtual void Rotate( const MbAxis3D &axis, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate around an axis
virtual void GetProperties( MbProperties & properties ); // \ru Выдать свойства объекта. \en Get properties of the object.
virtual void SetProperties( const MbProperties & properties ); // \ru Записать свойства объекта. \en Set properties of the object.
@@ -76,7 +76,7 @@ public :
// \ru Общие функции твердого тела \en Common functions of solid
virtual bool CreateShell( MbFaceShell *& shell, MbeCopyMode sameShell,
RPArray<MbSpaceItem> * items = NULL ); // \ru Построение \en Construction
RPArray<MbSpaceItem> * items = c3d_null ); // \ru Построение \en Construction
private :
virtual void ReadDistances ( reader &in );
+5 -5
View File
@@ -69,10 +69,10 @@ public :
// \ru Переопределение функций базового класса \en The base class functions override
virtual MbeCreatorType IsA() const; // \ru Тип элемента \en A type of element
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const ; // \ru Сделать копию \en Create a copy
virtual void Transform( const MbMatrix3D & matr, MbRegTransform * = NULL ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move( const MbVector3D & to, MbRegTransform * = NULL ); // \ru Сдвиг \en Translation
virtual void Rotate( const MbAxis3D & axis, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси \en Rotate around an axis
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const ; // \ru Сделать копию \en Create a copy
virtual void Transform( const MbMatrix3D & matr, MbRegTransform * = c3d_null ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move( const MbVector3D & to, MbRegTransform * = c3d_null ); // \ru Сдвиг \en Translation
virtual void Rotate( const MbAxis3D & axis, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate around an axis
virtual void GetProperties( MbProperties & properties ); // \ru Выдать свойства объекта \en Get properties of the object
virtual void SetProperties( const MbProperties & properties ); // \ru Записать свойства объекта \en Set properties of the object
@@ -88,7 +88,7 @@ public :
// \ru Общие функции твердого тела \en Common functions of solid
virtual bool CreateShell( MbFaceShell *& shell, MbeCopyMode sameShell,
RPArray<MbSpaceItem> * items = NULL ); // \ru Построение \en Construction
RPArray<MbSpaceItem> * items = c3d_null ); // \ru Построение \en Construction
virtual MbFaceShell * InitShell( bool in );
virtual void InitBasis( RPArray<MbSpaceItem> & items );
+5 -5
View File
@@ -39,15 +39,15 @@ public:
// \ru Общие функции строителя. \en The common functions of the creator.
virtual MbeCreatorType IsA() const; // \ru Тип элемента \en A type of element
virtual MbCreator & Duplicate( MbRegDuplicate * iReg = NULL ) const; // \ru Сделать копию \en Create a copy
virtual MbCreator & Duplicate( MbRegDuplicate * iReg = c3d_null ) const; // \ru Сделать копию \en Create a copy
virtual bool IsSame ( const MbCreator &, double accuracy ) const; // \ru Являются ли объекты равными? \en Determine whether an object is equal?
virtual bool IsSimilar( const MbCreator & ) const; // \ru Являются ли объекты подобными \en Whether the objects are similar
virtual bool SetEqual ( const MbCreator & ); // \ru Сделать равным \en Make equal
virtual void Transform( const MbMatrix3D &, MbRegTransform * = NULL ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = NULL ); // \ru Сдвиг \en Translation
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси \en Rotate about an axis
virtual void Transform( const MbMatrix3D &, MbRegTransform * = c3d_null ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = c3d_null ); // \ru Сдвиг \en Translation
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate about an axis
virtual MbePrompt GetPropertyName(); // \ru Дать имя свойства объекта \en Get the object property name
virtual void GetProperties( MbProperties & ); // \ru Выдать свойства объекта \en Get properties of the object
@@ -57,7 +57,7 @@ public:
virtual void SetBasisPoints( const MbControlData3D & ); // \ru Изменить объект по контрольным точкам. \en Change the object by control points.
// \ru Построить кривую по журналу построения \en Create a curve from the history tree
virtual bool CreateWireFrame( MbWireFrame *&, MbeCopyMode, RPArray<MbSpaceItem> * items = NULL );
virtual bool CreateWireFrame( MbWireFrame *&, MbeCopyMode, RPArray<MbSpaceItem> * items = c3d_null );
/** \} */
+5 -5
View File
@@ -39,10 +39,10 @@ public :
// \ru Общие функции математического объекта \en Common functions of the mathematical object
virtual MbeCreatorType IsA () const; ///< \ru Тип элемента \en Element type
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const; ///< \ru Сделать копию \en Make a copy
virtual void Transform( const MbMatrix3D &, MbRegTransform * = NULL ); ///< \ru Преобразовать элемент согласно матрице \en Transform an element according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = NULL ); ///< \ru Сдвиг \en Translation
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = NULL ); ///< \ru Поворот вокруг оси \en Rotation about an axis
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const; ///< \ru Сделать копию \en Make a copy
virtual void Transform( const MbMatrix3D &, MbRegTransform * = c3d_null ); ///< \ru Преобразовать элемент согласно матрице \en Transform an element according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = c3d_null ); ///< \ru Сдвиг \en Translation
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = c3d_null ); ///< \ru Поворот вокруг оси \en Rotation about an axis
virtual bool IsSame( const MbCreator &, double accuracy ) const; // \ru Являются ли объекты равными? \en Determine whether an object is equal?
virtual bool IsSimilar( const MbCreator & ) const; // \ru Являются ли объекты подобными. \en Whether the objects are similar
@@ -58,7 +58,7 @@ public :
// \ru Общие функции твердого тела \en Common functions of solid solid
virtual bool CreateShell( MbFaceShell *& shell, MbeCopyMode sameShell,
RPArray<MbSpaceItem> * items = NULL ); ///< \ru Построение \en Construction
RPArray<MbSpaceItem> * items = c3d_null ); ///< \ru Построение \en Construction
// \ru Дать параметры. \en Get the parameters.
+5 -5
View File
@@ -29,7 +29,7 @@ protected :
RPArray<MbContourOnSurface> curves; ///< \ru Плоские сечения. \en Plane sections.
SPtr<MbCurve3D> spine; ///< \ru Осевая линия (может отсутствовать). \en Spine curve (can be absent).
LoftedValues parameters; ///< \ru Параметры. \en Parameters.
RPArray<MbCurve3D> * guideCurves; ///< \ru Массив направляющих кривых (может быть NULL). \en An array of guide curves (can be NULL).
RPArray<MbCurve3D> * guideCurves; ///< \ru Массив направляющих кривых (может быть c3d_null). \en An array of guide curves (can be c3d_null).
SArray<MbCartPoint3D> * userPnts; ///< \ru Пользовательские точки на сечениях. \en Custom points on the sections.
public:
@@ -64,10 +64,10 @@ public :
// \ru Общие функции математического объекта \en Common functions of the mathematical object
virtual MbeCreatorType IsA() const; // \ru Тип элемента \en A type of element
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const ; // \ru Сделать копию \en Create a copy
virtual void Transform( const MbMatrix3D &, MbRegTransform * = NULL ); // \ru Преобразовать \en Transform
virtual void Move ( const MbVector3D &, MbRegTransform * = NULL ); // \ru Сдвиг \en Translation
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси \en Rotate around an axis
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const ; // \ru Сделать копию \en Create a copy
virtual void Transform( const MbMatrix3D &, MbRegTransform * = c3d_null ); // \ru Преобразовать \en Transform
virtual void Move ( const MbVector3D &, MbRegTransform * = c3d_null ); // \ru Сдвиг \en Translation
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate around an axis
virtual void GetProperties( MbProperties & ); // \ru Выдать свойства объекта \en Get properties of the object
virtual void SetProperties( const MbProperties & ); // \ru Записать свойства объекта \en Set properties of the object
+6 -6
View File
@@ -48,13 +48,13 @@ private:
public:
virtual MbeCreatorType IsA() const; // \ru Тип элемента \en Type of element
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию \en Create a copy
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию \en Create a copy
virtual bool IsSame( const MbCreator &, double accuracy ) const; // \ru Являются ли объекты равными? \en Determine whether an object is equal?
virtual bool IsSimilar( const MbCreator & ) const; // \ru Являются ли объекты подобными \en Whether the objects are similar
virtual bool SetEqual ( const MbCreator & ); // \ru Сделать равным \en Make equal
virtual void Transform( const MbMatrix3D &, MbRegTransform * = NULL ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = NULL ); // \ru Сдвиг \en Translation
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси \en Rotate about an axis
virtual void Transform( const MbMatrix3D &, MbRegTransform * = c3d_null ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = c3d_null ); // \ru Сдвиг \en Translation
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate about an axis
virtual void GetProperties( MbProperties & properties ); // \ru Выдать свойства объекта \en Get properties of the object
virtual void SetProperties( const MbProperties & properties ); // \ru Записать свойства объекта \en Set properties of the object
@@ -62,7 +62,7 @@ public:
// \ru Построение оболочки по исходным данным \en Construction of a shell from the given data
virtual bool CreateShell( MbFaceShell *& shell, MbeCopyMode sameShell,
RPArray<MbSpaceItem> * items = NULL );
RPArray<MbSpaceItem> * items = c3d_null );
/// \ru Дать параметры. \en Get the parameters.
void GetParameters( MedianShellValues & params ) const { params = parameters; }
@@ -89,7 +89,7 @@ IMPL_PERSISTENT_OPS( MbMedianShell )
The function simultaneously creates the shell and its constructor.\n \~
\param[in] solid - \ru Исходное тело.
\en The initial solid. \~
\param[in] faces - \ru Выбранные пары граней.
\param[in] faceIndexes - \ru Выбранные пары граней.
\en Selected face pairs. \~
\param[in] parameters - \ru Параметры операции.
\en Parameters of operation. \~
+5 -5
View File
@@ -42,12 +42,12 @@ public:
public: // \ru Общие функции математического объекта \en Common functions of the mathematical object
virtual MbeCreatorType IsA() const; ///< \ru Тип элемента \en Element type
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const; ///< \ru Сделать копию \en Make a copy
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const; ///< \ru Сделать копию \en Make a copy
virtual bool IsSame( const MbCreator &, double accuracy ) const; // \ru Являются ли объекты равными? \en Determine whether an object is equal?
virtual bool SetEqual ( const MbCreator & ); ///< \ru Сделать равным \en Make equal
virtual void Transform( const MbMatrix3D &, MbRegTransform * = NULL ); ///< \ru Преобразовать по матрице \en Transform according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = NULL ); ///< \ru Сдвиг по вектору \en Translation by the vector
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = NULL ); ///< \ru Поворот вокруг оси \en Rotation about an axis
virtual void Transform( const MbMatrix3D &, MbRegTransform * = c3d_null ); ///< \ru Преобразовать по матрице \en Transform according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = c3d_null ); ///< \ru Сдвиг по вектору \en Translation by the vector
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = c3d_null ); ///< \ru Поворот вокруг оси \en Rotation about an axis
virtual MbePrompt GetPropertyName(); ///< \ru Выдать заголовок свойства объекта \en Get name of object property
virtual void GetProperties( MbProperties & ); ///< \ru Выдать свойства объекта \en Get properties of the object
@@ -59,7 +59,7 @@ public: // \ru Общие функции математического объе
public:
/// \ru Построение оболочки \en Creation of a shell
virtual bool CreateShell( MbFaceShell *& shell, MbeCopyMode sameShell,
RPArray<MbSpaceItem> * items = NULL );
RPArray<MbSpaceItem> * items = c3d_null );
// \ru Дать параметры. \en Get the parameters.
void GetParameters( MeshSurfaceValues & params ) const;
// \ru Установить параметры. \en Set the parameters.
+10 -10
View File
@@ -41,12 +41,12 @@ public: // \ru деструктор \en destructor
public: // \ru Общие функции математического объекта \en Common functions of the mathematical object
virtual MbeCreatorType IsA() const; // \ru Тип элемента \en A type of element
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const; // \ru сделать копию \en create a copy
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru сделать копию \en create a copy
virtual bool IsSame( const MbCreator & other, double accuracy ) const; // \ru Являются ли объекты равными? \en Determine whether an object is equal?
virtual bool SetEqual ( const MbCreator & ); // \ru сделать равным \en make equal
virtual void Transform( const MbMatrix3D &, MbRegTransform * = NULL ); // \ru Преобразовать по матрице \en Transform according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = NULL ); // \ru сдвиг по вектору \en translation by a vector
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси \en Rotate around an axis
virtual void Transform( const MbMatrix3D &, MbRegTransform * = c3d_null ); // \ru Преобразовать по матрице \en Transform according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = c3d_null ); // \ru сдвиг по вектору \en translation by a vector
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate around an axis
virtual MbePrompt GetPropertyName(); // \ru выдать заголовок свойства объекта \en get a name of object property
virtual void GetProperties( MbProperties & properties ); // \ru выдать свойства объекта \en get properties of the object
@@ -56,7 +56,7 @@ public: // \ru Общие функции математического объе
/// \ru Построение оболочки. \en creation of a shell
virtual bool CreateShell( MbFaceShell *& shell, MbeCopyMode sameShell,
RPArray<MbSpaceItem> * items = NULL );
RPArray<MbSpaceItem> * items = c3d_null );
virtual void Refresh( MbFaceShell & outer ); ///< \ru обновить форму оболочки \en update shape of the shell
// \ru Выдать базовые объекты. \en Get basis objects.
virtual void GetBasisItems( RPArray<MbSpaceItem> & s );
@@ -106,12 +106,12 @@ public: // \ru деструктор \en destructor
public: // \ru Общие функции математического объекта \en Common functions of the mathematical object
virtual MbeCreatorType IsA() const; // \ru Тип элемента \en A type of element
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const; // \ru сделать копию \en create a copy
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru сделать копию \en create a copy
virtual bool IsSame( const MbCreator & other, double accuracy ) const; // \ru Являются ли объекты равными? \en Determine whether an object is equal?
virtual bool SetEqual ( const MbCreator & ); // \ru сделать равным \en make equal
virtual void Transform( const MbMatrix3D &, MbRegTransform * = NULL ); // \ru Преобразовать по матрице \en Transform according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = NULL ); // \ru сдвиг по вектору \en translation by a vector
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси \en Rotate around an axis
virtual void Transform( const MbMatrix3D &, MbRegTransform * = c3d_null ); // \ru Преобразовать по матрице \en Transform according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = c3d_null ); // \ru сдвиг по вектору \en translation by a vector
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate around an axis
virtual MbePrompt GetPropertyName(); // \ru выдать заголовок свойства объекта \en get a name of object property
virtual void GetProperties( MbProperties & properties ); // \ru выдать свойства объекта \en get properties of the object
@@ -121,7 +121,7 @@ public: // \ru Общие функции математического объе
/// \ru построение оболочки \en creation of a shell
virtual bool CreateShell( MbFaceShell *& shell, MbeCopyMode sameShell,
RPArray<MbSpaceItem> * items = NULL );
RPArray<MbSpaceItem> * items = c3d_null );
virtual void Refresh( MbFaceShell & outer ); ///< \ru обновить форму оболочки \en update shape of the shell
// \ru Выдать базовые объекты. \en Get basis objects.
virtual void GetBasisItems( RPArray<MbSpaceItem> & s );
+5 -5
View File
@@ -62,12 +62,12 @@ public:
// \ru Общие функции математического объекта \en Common functions of the mathematical object
virtual MbeCreatorType IsA() const; // \ru Тип элемента \en A type of element
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию \en Create a copy
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию \en Create a copy
virtual bool IsSame( const MbCreator & other, double accuracy ) const; // \ru Являются ли объекты равными? \en Determine whether an object is equal?
virtual bool SetEqual ( const MbCreator & ); // \ru Сделать равным \en Make equal
virtual void Transform( const MbMatrix3D &, MbRegTransform * = NULL ); // \ru Преобразовать по матрице \en Transform according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = NULL ); // \ru Сдвиг по вектору \en Translation by the vector
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси \en Rotate around an axis
virtual void Transform( const MbMatrix3D &, MbRegTransform * = c3d_null ); // \ru Преобразовать по матрице \en Transform according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = c3d_null ); // \ru Сдвиг по вектору \en Translation by the vector
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate around an axis
virtual MbePrompt GetPropertyName(); // \ru Выдать заголовок свойства объекта \en Get a name of object property
virtual void GetProperties( MbProperties & properties ); // \ru Выдать свойства объекта \en Get properties of the object
@@ -77,7 +77,7 @@ public:
/// \ru Построение оболочки \en Creation of a shell
virtual bool CreateShell( MbFaceShell *& shell, MbeCopyMode sameShell,
RPArray<MbSpaceItem> * items = NULL );
RPArray<MbSpaceItem> * items = c3d_null );
virtual void Refresh( MbFaceShell & outer ); ///< \ru Обновить форму оболочки \en Update shape of the shell
// \ru Дать параметры. \en Get the parameters.
+31 -29
View File
@@ -11,6 +11,7 @@
#include <creator.h>
#include <mb_vector3d.h>
#include <cur_nurbs3d.h>
@@ -24,14 +25,14 @@
// ---
class MATH_CLASS MbNurbs3DCreator : public MbCreator {
private:
SArray<MbCartPoint3D> points; // \ru Точки, через которые проходит сплайн \en Points which the spline passes through
SArray<double> weights; // \ru Веса \en Weights
SArray<double> knots; // \ru Узлы \en Knots
RPArray< MbPntMatingData<MbVector3D> > matingData; // \ru Данные сопряжения в точках \en Data about mating in the points
MbeSplineParamType paramType; // \ru Тип параметризации \en Parametrization type
size_t degree; // \ru Степень сплайна \en Spline degree
bool closed; // \ru Замкнутость сплайна \en Spline closedness
bool throughPnts; // \ru через точки \en Through points
SArray<MbCartPoint3D> points; // \ru Точки, через которые проходит сплайн \en Points which the spline passes through
SArray<double> weights; // \ru Веса \en Weights
SArray<double> knots; // \ru Узлы \en Knots
RPArray<c3d::PntMatingData3D> matingData; // \ru Данные сопряжения в точках \en Data about mating in the points
MbeSplineParamType paramType; // \ru Тип параметризации \en Parametrization type
size_t degree; // \ru Степень сплайна \en Spline degree
bool closed; // \ru Замкнутость сплайна \en Spline closedness
bool throughPnts; // \ru через точки \en Through points
protected:
MbNurbs3DCreator( const MbNurbs3DCreator &, MbRegDuplicate * iReg ); // \ru Конструктор копирования \en Copy-constructor
@@ -42,24 +43,24 @@ public:
MbeSplineParamType paramType, size_t degree, bool closed,
const SArray<double> * weights,
const SArray<double> * knots,
const RPArray< MbPntMatingData<MbVector3D> > & matingData,
const RPArray<c3d::PntMatingData3D> & matingData,
const MbSNameMaker & snMaker );
public:
virtual ~MbNurbs3DCreator();
// \ru Общие функции строителя. \en The common functions of the creator.
virtual MbeCreatorType IsA() const; // \ru Тип элемента \en A type of element
virtual MbCreator & Duplicate( MbRegDuplicate * iReg = NULL ) const; // \ru Сделать копию \en Create a copy
virtual MbCreator & Duplicate( MbRegDuplicate * iReg = c3d_null ) const; // \ru Сделать копию \en Create a copy
virtual bool IsSame ( const MbCreator &, double accuracy ) const; // \ru Являются ли объекты равными? \en Determine whether an object is equal?
virtual bool IsSimilar( const MbCreator & ) const; // \ru Являются ли объекты подобными \en Whether the objects are similar
virtual bool SetEqual ( const MbCreator & ); // \ru Сделать равным \en Make equal
virtual void Transform( const MbMatrix3D &, MbRegTransform * = NULL ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = NULL ); // \ru Сдвиг \en Translation
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси \en Rotate about an axis
virtual void Transform( const MbMatrix3D &, MbRegTransform * = c3d_null ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = c3d_null ); // \ru Сдвиг \en Translation
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate about an axis
virtual MbePrompt GetPropertyName(); // \ru Дать имя свойства объекта \en Get the object property name
virtual MbePrompt GetPropertyName(); // \ru Дать имя свойства объекта \en Get the object property name
virtual void GetProperties( MbProperties & ); // \ru Выдать свойства объекта \en Get properties of the object
virtual void SetProperties( const MbProperties & ); // \ru Записать свойства объекта \en Set properties of the object
virtual void GetBasisItems ( RPArray<MbSpaceItem> & ); // \ru Дать базовые объекты \en Get the basis objects
@@ -67,7 +68,7 @@ public:
virtual void SetBasisPoints( const MbControlData3D & ); // \ru Изменить объект по контрольным точкам. \en Change the object by control points.
// \ru Построить кривую по журналу построения \en Create a curve from the history tree
virtual bool CreateWireFrame( MbWireFrame *&, MbeCopyMode, RPArray<MbSpaceItem> * items = NULL );
virtual bool CreateWireFrame( MbWireFrame *&, MbeCopyMode, RPArray<MbSpaceItem> * items = c3d_null );
/** \} */
@@ -80,6 +81,7 @@ private:
IMPL_PERSISTENT_OPS( MbNurbs3DCreator )
//------------------------------------------------------------------------------
/** \brief \ru Создать пространственный сплайн через точки и с сопряжениями.
\en Create a spatial spline through points and with the given tangents. \~
@@ -94,14 +96,14 @@ IMPL_PERSISTENT_OPS( MbNurbs3DCreator )
\ingroup Curve3D_Modeling
*/
//---
MATH_FUNC (MbCreator *) CreateSplineThrough( const SArray<MbCartPoint3D> & points, // \ru Точки \en Points
MbeSplineParamType paramType, // \ru Тип параметризации \en Parametrization type
size_t degree, // \ru Порядок сплайна \en Spline degree
bool closed, // \ru Замкнуть \en Make close
RPArray< MbPntMatingData<MbVector3D> > & transitions, // \ru Сопряжения \en Tangents
const MbSNameMaker & snMaker, // \ru Именователь \en An object for naming the new objects
MbResultType & resType,
MbCurve3D *& resCurve );
MATH_FUNC (MbCreator *) CreateSplineThrough( const SArray<MbCartPoint3D> & points, // \ru Точки \en Points
MbeSplineParamType paramType, // \ru Тип параметризации \en Parametrization type
size_t degree, // \ru Порядок сплайна \en Spline degree
bool closed, // \ru Замкнуть \en Make close
RPArray<c3d::PntMatingData3D> & transitions, // \ru Сопряжения \en Tangents
const MbSNameMaker & snMaker, // \ru Именователь \en An object for naming the new objects
MbResultType & resType,
MbCurve3D *& resCurve );
//------------------------------------------------------------------------------
@@ -115,15 +117,15 @@ MATH_FUNC (MbCreator *) CreateSplineThrough( const SArray<MbCartPoint3D> & point
*/
//---
MATH_FUNC (MbCreator *) CreateSplineBy( const SArray<MbCartPoint3D> & points, // \ru Точки \en Points
size_t degree, // \ru Порядок сплайна \en Spline degree
bool closed, // \ru Замкнуть \en Make close
size_t degree, // \ru Порядок сплайна \en Spline degree
bool closed, // \ru Замкнуть \en Make close
const SArray<double> * weights, // \ru Веса \en Weights
const SArray<double> * knots, // \ru Узлы \en Knots
MbPntMatingData<MbVector3D> * begData, // \ru Сопряжение в начале \en Tangent at the start point
MbPntMatingData<MbVector3D> * endData, // \ru Сопряжение в конце \en Tangent at the end point
c3d::PntMatingData3D * begData, // \ru Сопряжение в начале \en Tangent at the start point
c3d::PntMatingData3D * endData, // \ru Сопряжение в конце \en Tangent at the end point
const MbSNameMaker & snMaker, // \ru Именователь \en An object for naming the new objects
MbResultType & resType,
MbCurve3D *& resCurve );
MbResultType & resType,
MbCurve3D *& resCurve );
#endif // __CR_NURBS3D_H
+5 -5
View File
@@ -40,12 +40,12 @@ public: // \ru Деструктор \en Destructor
public: // \ru Общие функции математического объекта \en Common functions of the mathematical object
virtual MbeCreatorType IsA() const; // \ru Тип элемента \en A type of element
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию \en Create a copy
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию \en Create a copy
virtual bool IsSame( const MbCreator & other, double accuracy ) const; // \ru Являются ли объекты равными? \en Determine whether an object is equal?
virtual bool SetEqual ( const MbCreator & ); // \ru Сделать равным \en Make equal
virtual void Transform( const MbMatrix3D &, MbRegTransform * = NULL ); // \ru Преобразовать по матрице \en Transform according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = NULL ); // \ru Сдвиг по вектору \en Translation by a vector
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси \en Rotate around an axis
virtual void Transform( const MbMatrix3D &, MbRegTransform * = c3d_null ); // \ru Преобразовать по матрице \en Transform according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = c3d_null ); // \ru Сдвиг по вектору \en Translation by a vector
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate around an axis
virtual MbePrompt GetPropertyName(); // \ru Выдать заголовок свойства объекта \en Get a name of object property
virtual void GetProperties( MbProperties & properties ); // \ru Выдать свойства объекта \en Get properties of the object
@@ -57,7 +57,7 @@ public: // \ru Общие функции математического объе
public:
/// \ru Построение оболочки \en Creation of a shell
virtual bool CreateShell( MbFaceShell *& shell, MbeCopyMode sameShell,
RPArray<MbSpaceItem> * items = NULL );
RPArray<MbSpaceItem> * items = c3d_null );
virtual void Refresh( MbFaceShell & outer ); ///< \ru Обновить форму оболочки \en Update shape of the shell
private:
+18 -20
View File
@@ -24,38 +24,36 @@ class IProgressIndicator;
\en Construct a shell from NURBS-surfaces. \~
\details \ru Построить оболочку из NURBS-поверхностей MbSplineSurface по заданному множеству точек условно расположенных в узлах четырехугольной сетки. \n
\en Construct a shell from NURBS-surfaces MbSplineSurface by a given set of points conventionally located at the nodes of a quadrangle grid. \n \~
\param[in] parameters - \ru Параметры построения.
\en Parameters of a shell creation. \~
\param[in] params - \ru Параметры построения.
\en Parameters of a shell creation. \~
\param[in] operNames - \ru Именователь граней.
\en An object for naming faces. \~
\param[in] isPhantom - \ru Режим создания фантома.
\en Create in the phantom mode. \~
\param[out] res - \ru Код результата операции.
\en Operation result code. \~
\param[out] shell - \ru Построенная оболочка.
\en The resultant shell. \~
\param[out] indicator - \ru Индикатор хода построения позволяющий прервать построение.
\en Construction process indicator which allow to interrupt the construction. \~
\result \ru Возвращает оболочку.
\en Returns the constructуed shell. \~
\result \ru Возвращает построенную оболочку.
\en Returns the constructed shell. \~
\ingroup Model_Creators
*/
// ---
MATH_FUNC (MbFaceShell *) CreateNurbsSurfacesShell( NurbsSurfaceValues & params,
const MbSNameMaker & operNames,
bool isPhantom,
MbResultType & res,
IProgressIndicator * = NULL );
MATH_FUNC (MbFaceShell *) CreateNurbsSurfacesShell( NurbsSurfaceValues & params,
const MbSNameMaker & operNames,
bool isPhantom,
MbResultType & res,
IProgressIndicator * indicator = c3d_null );
//------------------------------------------------------------------------------
// проверить оболочку из нурбс-поверхностей
/** \brief \ru Построить оболочку из NURBS-поверхностей.
\en Construct a shell from NURBS-surfaces. \~
\details \ru Построить оболочку из NURBS-поверхностей MbSplineSurface по заданному множеству точек условно расположенных в узлах четырехугольной сетки. \n
\en Construct a shell from NURBS-surfaces MbSplineSurface by a given set of points conventionally located at the nodes of a quadrangle grid. \n \~
\param[in] parameters - \ru Параметры построения.
\en Parameters of a shell creation. \~
// Проверить оболочку из нурбс-поверхностей
/** \brief \ru Проверить оболочку из NURBS-поверхностей.
\en Check a shell from NURBS-surfaces. \~
\details \ru Проверить построенную оболочку из NURBS-поверхностей MbSplineSurface по заданному множеству точек условно расположенных в узлах четырехугольной сетки. \n
\en Check a constructed shell from NURBS-surfaces MbSplineSurface by a given set of points conventionally located at the nodes of a quadrangle grid. \n \~
\param[in] params - \ru Параметры построения.
\en Parameters of a shell creation. \~
\param[in] shell - \ru Оболочка, построенная по заданным параметрам.
\en The shell constructed by given parameters. \~
\param[out] indicator - \ru Индикатор хода построения позволяющий прервать построение.
@@ -66,8 +64,8 @@ MATH_FUNC (MbFaceShell *) CreateNurbsSurfacesShell( NurbsSurfaceValues & params,
*/
// ---
MATH_FUNC (MbResultType) CheckNurbsSurfacesShell( const NurbsSurfaceValues & params,
const MbFaceShell & shell,
IProgressIndicator * = NULL );
const MbFaceShell & shell,
IProgressIndicator * indicator = c3d_null );
#endif // __NURBS_SURFACES_SHELL_H
+6 -6
View File
@@ -50,12 +50,12 @@ public:
public: // \ru Общие функции математического объекта \en Common functions of the mathematical object
virtual MbeCreatorType IsA() const; // \ru Тип элемента \en Type of element
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const; // \ru сделать копию \en create a copy
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru сделать копию \en create a copy
virtual bool IsSame( const MbCreator &, double accuracy ) const; // \ru Являются ли объекты равными? \en Determine whether an object is equal?
virtual bool SetEqual ( const MbCreator & ); // \ru сделать равным \en make equal
virtual void Transform( const MbMatrix3D &, MbRegTransform * = NULL ); // \ru Преобразовать по матрице \en Transform according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = NULL ); // \ru сдвиг по вектору \en translation by a vector
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси \en Rotate about an axis
virtual void Transform( const MbMatrix3D &, MbRegTransform * = c3d_null ); // \ru Преобразовать по матрице \en Transform according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = c3d_null ); // \ru сдвиг по вектору \en translation by a vector
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate about an axis
virtual MbePrompt GetPropertyName(); // \ru выдать заголовок свойства объекта \en get a name of object property
virtual void GetProperties( MbProperties & properties ); // \ru выдать свойства объекта \en get properties of the object
@@ -67,7 +67,7 @@ public: // \ru Общие функции математического объе
public:
/// \ru построение оболочки \en creation of a shell
virtual bool CreateShell( MbFaceShell *& shell, MbeCopyMode sameShell,
RPArray<MbSpaceItem> * items = NULL );
RPArray<MbSpaceItem> * items = c3d_null );
virtual void Refresh( MbFaceShell & outer ); ///< \ru обновить форму оболочки \en update shape of the shell
// \ru Дать параметры. \en Get the parameters.
@@ -110,7 +110,7 @@ MATH_FUNC (MbCreator *) CreateNurbsShell( NurbsSurfaceValues & parameters,
bool isPhantom,
MbResultType & res,
MbFaceShell *& shell,
IProgressIndicator * indicator = NULL );
IProgressIndicator * indicator = c3d_null );
#endif // __CR_NURBS_SURFACES_SOLID_H
+72 -65
View File
@@ -12,6 +12,7 @@
#include <creator.h>
#include <templ_sptr.h>
#include <op_curve_parameter.h>
#include <vector>
@@ -29,46 +30,74 @@ class MATH_CLASS MbCurve3D;
class MATH_CLASS MbOffsetCurveCreator : public MbCreator {
private:
// \ru Основные параметры \en The basic parameters
SPtr<MbCurve3D> curve; // \ru Исходная кривая. \en The initial curve.
MbVector3D dir; // \ru Направление смещения. \en The offset direction.
double dist; // \ru Величина смещения. \en The offset distance.
bool fromBeg; // \ru Вектор смещения привязан к началу кривой (иначе к концу). \en The translation vector is associated with the beginning (with the end otherwise).
c3d::SpaceCurveSPtr curve; ///< \ru Исходная кривая. \en The initial curve.
MbVector3D dir; ///< \ru Направление смещения. \en The offset direction.
double dist; ///< \ru Величина смещения. \en The offset distance.
bool fromBeg; ///< \ru Вектор смещения привязан к началу кривой (иначе к концу). \en The translation vector is associated with the beginning (with the end otherwise).
// \ru Дополнительные параметры (эквидистанта в пространстве) \en Auxiliary parameters (spatial offset)
bool useFillet; // \ru Заполнять ли разрывы скруглениями (иначе продлять сегменты). \en Whether to fill the gaps with fillets (extend segments otherwise).
bool keepRadius; // \ru Сохранять ли радиусы в скруглениях. \en Whether to keep the radii at fillets.
bool bluntAngle; // \ru Притуплять острые углы стыков сегментов \en Whether to blunt the sharp edges of segments joints.
bool useFillet; ///< \ru Заполнять ли разрывы скруглениями (иначе продлять сегменты). \en Whether to fill the gaps with fillets (extend segments otherwise).
bool keepRadius; ///< \ru Сохранять ли радиусы в скруглениях. \en Whether to keep the radii at fillets.
bool bluntAngle; ///< \ru Притуплять острые углы стыков сегментов \en Whether to blunt the sharp edges of segments joints.
bool bySurfaceNormal; ///< \ru Эквидистанта согласована с нормалью к поверхности. \en Offset point is moved according to surface normal.
c3d::SurfaceSPtr surface; ///< \ru Поверхность кривой или подобная ей. \en Curve's surface or similar to such surface.
// \ru Дополнительные параметры (эквидистанта на поверхности грани оболочки) \en Auxiliary parameters (offset on the shell face surface)
c3d::CreatorsSPtrVector shellCreators; // \ru Журнал построения оболочки. \en The shell history tree.
c3d::CreatorsSPtrVector shellCreators; ///< \ru Журнал построения оболочки. \en The shell history tree.
protected:
MbOffsetCurveCreator( const MbOffsetCurveCreator &, MbRegDuplicate * iReg ); // \ru Конструктор копирования \en Copy-constructor
MbOffsetCurveCreator( const MbOffsetCurveCreator & ); // \ru Не реализовано \en Not implemented
MbOffsetCurveCreator(); // \ru Не реализовано \en Not implemented
public:
// \ru Конструктор эквидистанты в пространстве \en Constructor of offset in the space
MbOffsetCurveCreator( const MbCurve3D &, bool fromBeg, const MbVector3D & dir, double dist,
bool useFillet, bool keepRadius, bool bluntAngle,
const MbSNameMaker & snMaker );
// \ru Конструктор эквидистанты на поверхности грани оболочки \en Constructor of offset on the shell face surface
MbOffsetCurveCreator( const MbCurve3D &, bool fromBeg, const MbVector3D & dir, double dist,
const RPArray<MbCreator> & shellCreators, bool sameCreators,
const MbSNameMaker & snMaker );
/** \brief \ru Конструктор эквидистанты в пространстве.
\en Constructor of offset in the space. \~
\details \ru Конструктор эквидистанты в пространстве. \n
\en Constructor of offset in the space. \n \~
\param[in] curve - \ru Базовая кривая.
\en The base curve. \~
\param[in] params - \ru Параметры.
\en Parameters. \~
\param[in] snMaker - \ru Именователь с версия исполнения.
\en Names makers with a version. \~
*/
MbOffsetCurveCreator( const MbCurve3D & curve,
const MbSpatialOffsetCurveParams & params,
const MbSNameMaker & snMaker );
/** \brief \ru Конструктор эквидистанты на поверхности грани оболочки.
\en Constructor of offset on the shell face surface. \~
\details \ru Конструктор эквидистанты на поверхности грани оболочки. \n
\en Constructor of offset on the shell face surface. \n \~
\param[in] curve - \ru Базовая кривая.
\en The base curve. \~
\param[in] params - \ru Параметры.
\en Parameters. \~
\param[in] shellCreators - \ru Построители тела.
\en Creators of a solid. \~
\param[in] sameCreators - \ru Признак использования оригиналов построителей.
\en Flag of using the original creators. \~
\param[in] snMaker - \ru Именователь с версия исполнения.
\en Names makers with a version. \~
*/
MbOffsetCurveCreator( const MbCurve3D & curve,
const MbSurfaceOffsetCurveParams & params,
const c3d::CreatorsSPtrVector & shellCreators,
bool sameCreators,
const MbSNameMaker & snMaker );
public :
virtual ~MbOffsetCurveCreator();
// \ru Общие функции строителя. \en The common functions of the creator.
virtual MbeCreatorType IsA() const; // \ru Тип элемента \en A type of element
virtual MbCreator & Duplicate( MbRegDuplicate * iReg = NULL ) const; // \ru Сделать копию \en Create a copy
virtual MbCreator & Duplicate( MbRegDuplicate * iReg = c3d_null ) const; // \ru Сделать копию \en Create a copy
virtual bool IsSame ( const MbCreator &, double accuracy ) const; // \ru Являются ли объекты равными? \en Determine whether an object is equal?
virtual bool IsSimilar( const MbCreator & ) const; // \ru Являются ли объекты подобными \en Whether the objects are similar
virtual bool SetEqual ( const MbCreator & ); // \ru Сделать равным \en Make equal
virtual void Transform( const MbMatrix3D &, MbRegTransform * = NULL ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = NULL ); // \ru Сдвиг \en Translation
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси \en Rotate about an axis
virtual void Transform( const MbMatrix3D &, MbRegTransform * = c3d_null ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = c3d_null ); // \ru Сдвиг \en Translation
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate about an axis
virtual MbePrompt GetPropertyName(); // \ru Дать имя свойства объекта \en Get the object property name
virtual void GetProperties( MbProperties & ); // \ru Выдать свойства объекта \en Get properties of the object
@@ -81,7 +110,7 @@ public :
virtual bool SetInternalCreators( MbeCreatorType, c3d::CreatorsSPtrVector & ); // \ru Получить внутренние построители по типу. \en Get internal creators by type.
// \ru Построить кривую по журналу построения \en Create a curve from the history tree
virtual bool CreateWireFrame( MbWireFrame *&, MbeCopyMode, RPArray<MbSpaceItem> * items = NULL );
virtual bool CreateWireFrame( MbWireFrame *&, MbeCopyMode, RPArray<MbSpaceItem> * items = c3d_null );
/** \} */
@@ -89,7 +118,7 @@ private:
// \ru Объявление оператора присваивания без реализации, чтобы не было присваивания по умолчанию. \en The declaration of the assignment operator without implementation, to prevent an assignment by default.
void operator = ( const MbOffsetCurveCreator & ); // \ru Не реализовано!!! \en Not implemented!!!
DECLARE_PERSISTENT_CLASS_NEW_DEL( MbOffsetCurveCreator )
DECLARE_PERSISTENT_CLASS_NEW_DEL( MbOffsetCurveCreator )
};
IMPL_PERSISTENT_OPS( MbOffsetCurveCreator )
@@ -97,22 +126,14 @@ IMPL_PERSISTENT_OPS( MbOffsetCurveCreator )
//------------------------------------------------------------------------------
/** \brief \ru Создать офсетную кривую по трехмерной кривой и вектору направления.
\en Create an offset curve from three-dimensional curve and direction. \~
\details \ru Создать офсетную кривую по трехмерной кривой и вектору направления. \n
\en Create an offset curve from three-dimensional curve and direction. \n \~
\param[in] initCurve - \ru Постранственная кривая, к которой строится эквидистантная.
\details \ru Создать офсетную кривую в пространстве по трехмерной кривой и вектору направления. \n
\en Create an offset curve in space from three-dimensional curve and direction. \n \~
\param[in] initCurve - \ru Пространственная кривая, к которой строится эквидистантная.
\en A space curve for which to construct the offset curve. \~
\param[in] offsetVect - \ru Вектор, задающий смещение в точке кривой.
\en The displacement vector at a point of the curve. \~
\param[in] useFillet - \ru Если true, то разрывы заполнять скруглением, иначе продолженными кривыми.
\en If 'true', the gaps are to be filled with fillet, otherwise with the extended curves. \~
\param[in] keepRadius - \ru Если true, то в существующих скруглениях сохранять радиусы.
\en If 'true', the existent fillet radii are to be kept. \~
\param[in] fromBeg - \ru Вектор смещения привязан к началу.
\en The translation vector is associated with the beginning. \~
\param[in] snMaker - \ru Именователь кривых каркаса.
\en An object defining the frame curves names. \~
\param[out] resType - \ru Код результата операции
\en Operation result code \~
\param[in] params - \ru Параметры.
\en Parameters. \~
\param[out] resType - \ru Код результата операции
\en Operation result code \~
\param[out] resCurve - \ru Эквидистантная кривая.
\en The offset curve. \~
\return \ru Возвращает строитель.
@@ -120,15 +141,10 @@ IMPL_PERSISTENT_OPS( MbOffsetCurveCreator )
\ingroup Curve3D_Modeling
*/
//---
MATH_FUNC (MbCreator *) CreateOffsetCurve( const MbCurve3D & initCurve,
const MbVector3D & offsetVect,
const bool useFillet,
const bool keepRadius,
const bool bluntAngle,
const bool fromBeg,
const MbSNameMaker & snMaker,
MbResultType & resType,
MbCurve3D *& resCurve );
MATH_FUNC (MbCreator *) CreateOffsetCurve( const MbCurve3D & initCurve,
const MbSpatialOffsetCurveParams & params,
MbResultType & resType,
MbCurve3D *& resCurve );
//------------------------------------------------------------------------------
@@ -136,18 +152,12 @@ MATH_FUNC (MbCreator *) CreateOffsetCurve( const MbCurve3D & initCurve,
\en Create an offset curve from a spatial curve and offset value. \~
\details \ru Создать офсетную кривую по поверхностной кривой и значению смещения. \n
\en Create an offset curve from a spatial curve and offset value. \n \~
\param[in] curve - \ru Кривая на поверхности грани face.
\en A curve on face 'face' surface. \~
\param[in] face - \ru Грань, на которой строится эквидистанта.
\en The edge on which to build the offset curve. \~
\param[in] dirAxis - \ru Направление смещения с точкой приложения.
\en The offset direction with a point of application. \~
\param[in] dist - \ru Величина смещения.
\en The offset distance. \~
\param[in] snMaker - \ru Именователь кривых каркаса.
\en An object defining the frame curves names. \~
\param[out] resType - \ru Код результата операции
\en Operation result code \~
\param[in] curve - \ru Кривая на поверхности грани face.
\en A curve on face 'face' surface. \~
\param[in] params - \ru Параметры.
\en Parameters. \~
\param[out] resType - \ru Код результата операции
\en Operation result code \~
\param[out] resCurves - \ru Множество эквидистантных кривых.
\en Offset curve array. \~
\return \ru Возвращает строитель.
@@ -155,13 +165,10 @@ MATH_FUNC (MbCreator *) CreateOffsetCurve( const MbCurve3D & initCurve,
\ingroup Curve3D_Modeling
*/
//---
MATH_FUNC (MbCreator *) CreateOffsetCurve( const MbCurve3D & curve,
const MbFace & face,
const MbAxis3D & dirAxis,
double dist,
const MbSNameMaker & snMaker,
MbResultType & resType,
RPArray<MbCurve3D> & resCurves );
MATH_FUNC (MbCreator *) CreateOffsetCurve( const MbCurve3D & curve,
const MbSurfaceOffsetCurveParams & params,
MbResultType & resType,
RPArray<MbCurve3D> & resCurves );
#endif // __CR_OFFSET_CURVE_H
+12 -12
View File
@@ -54,10 +54,10 @@ public :
// \ru Общие функции математического объекта \en Common functions of the mathematical object
virtual MbeCreatorType IsA() const; // \ru Тип элемента \en Type of element
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const ;
virtual void Transform( const MbMatrix3D &, MbRegTransform * = NULL );
virtual void Move ( const MbVector3D &, MbRegTransform * = NULL );
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = NULL );
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const ;
virtual void Transform( const MbMatrix3D &, MbRegTransform * = c3d_null );
virtual void Move ( const MbVector3D &, MbRegTransform * = c3d_null );
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = c3d_null );
virtual MbePrompt GetPropertyName(); // \ru Выдать заголовок свойства объекта \en Get a name of object property
virtual void GetProperties( MbProperties & ); // \ru Выдать свойства объекта \en Get properties of the object
@@ -72,7 +72,7 @@ public :
// \ru Построение оболочки по исходным данным \en Construction of a shell from the given data
virtual bool CreateShell( MbFaceShell *& shell, MbeCopyMode sameShell,
RPArray<MbSpaceItem> * items = NULL );
RPArray<MbSpaceItem> * items = c3d_null );
// \ru Дать параметры. \en Get the parameters.
void GetParameters( PatchValues & params ) const { params = parameters; }
@@ -145,8 +145,8 @@ MATH_FUNC (MbCreator *) CreatePatchSet( const RPArray<MbPatchCurve> & initEdges,
Одновременно с построением оболочки функция создает её строитель.\n
\en Construct a patch-shaped shell from the given curves.
The function simultaneously creates the shell and its constructor.\n \~
\param[in] initEdges - \ru Кривые, определяющие края заплатки.
\en Curves determining the bounds of the patch. \~
\param[in] initCurves - \ru Кривые, определяющие края заплатки.
\en Curves determining the bounds of the patch. \~
\param[in] parameters - \ru Параметры построения.
\en Parameters of shell creation. \~
\param[in] operNames - \ru Именователь граней.
@@ -160,11 +160,11 @@ MATH_FUNC (MbCreator *) CreatePatchSet( const RPArray<MbPatchCurve> & initEdges,
\ingroup Model_Creators
*/
// ---
MATH_FUNC (MbCreator *)CreatePatchSet( const RPArray<MbCurve3D> & initCurves,
const PatchValues & parameters,
const MbSNameMaker & operNames,
MbResultType & res,
MbFaceShell *& shell );
MATH_FUNC (MbCreator *) CreatePatchSet( const RPArray<MbCurve3D> & initCurves,
const PatchValues & parameters,
const MbSNameMaker & operNames,
MbResultType & res,
MbFaceShell *& shell );
#endif // __CR_PATCH_CREATOR_H
+5 -5
View File
@@ -49,15 +49,15 @@ public:
// \ru Общие функции строителя. \en The common functions of the creator.
virtual MbeCreatorType IsA() const; // \ru Тип элемента \en A type of element
virtual MbCreator & Duplicate( MbRegDuplicate * iReg = NULL ) const; // \ru Сделать копию \en Create a copy
virtual MbCreator & Duplicate( MbRegDuplicate * iReg = c3d_null ) const; // \ru Сделать копию \en Create a copy
virtual bool IsSame ( const MbCreator &, double accuracy ) const; // \ru Являются ли объекты равными? \en Determine whether an object is equal?
virtual bool IsSimilar( const MbCreator & ) const; // \ru Являются ли объекты подобными \en Whether the objects are similar
virtual bool SetEqual ( const MbCreator & ); // \ru Сделать равным \en Make equal
virtual void Transform( const MbMatrix3D &, MbRegTransform * = NULL ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = NULL ); // \ru Сдвиг \en Translation
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси \en Rotate about an axis
virtual void Transform( const MbMatrix3D &, MbRegTransform * = c3d_null ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = c3d_null ); // \ru Сдвиг \en Translation
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate about an axis
virtual MbePrompt GetPropertyName(); // \ru Дать имя свойства объекта \en Get the object property name
virtual void GetProperties( MbProperties & ); // \ru Выдать свойства объекта \en Get properties of the object
@@ -70,7 +70,7 @@ public:
virtual bool SetInternalCreators( MbeCreatorType, c3d::CreatorsSPtrVector & ); // \ru Получить внутренние построители по типу. \en Get internal creators by type.
// \ru Построить кривую по журналу построения \en Create a curve from the history tree
virtual bool CreateWireFrame( MbWireFrame *&, MbeCopyMode, RPArray<MbSpaceItem> * items = NULL );
virtual bool CreateWireFrame( MbWireFrame *&, MbeCopyMode, RPArray<MbSpaceItem> * items = c3d_null );
/** \} */
+5 -5
View File
@@ -65,10 +65,10 @@ public :
\en \name Common functions of the mathematical object.
\{ */
virtual MbeCreatorType IsA() const; // \ru Тип элемента \en A type of element
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const ; // \ru Сделать копию \en Create a copy
virtual void Transform( const MbMatrix3D &, MbRegTransform * = NULL ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move( const MbVector3D &, MbRegTransform * = NULL ); // \ru Сдвиг \en Translation
virtual void Rotate( const MbAxis3D &, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси \en Rotate around an axis
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const ; // \ru Сделать копию \en Create a copy
virtual void Transform( const MbMatrix3D &, MbRegTransform * = c3d_null ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move( const MbVector3D &, MbRegTransform * = c3d_null ); // \ru Сдвиг \en Translation
virtual void Rotate( const MbAxis3D &, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate around an axis
virtual void GetProperties( MbProperties & ); // \ru Выдать свойства объекта \en Get properties of the object
virtual void SetProperties( const MbProperties & ); // \ru Записать свойства объекта \en Set properties of the object
@@ -156,7 +156,7 @@ MATH_FUNC (MbCreator *) CreateCurveRevolution( MbFaceShell * sol
const MbSNameMaker & operNames,
const RPArray<MbSNameMaker> & contoursNames,
MbResultType & resType,
MbFaceShell *& shell );
c3d::ShellSPtr & shell );
#endif // __CR_REVOLUTION_SOLID_H
+5 -5
View File
@@ -43,10 +43,10 @@ public :
// \ru Общие функции математического объекта \en Common functions of the mathematical object
virtual MbeCreatorType IsA () const; // \ru Тип элемента \en A type of element
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию \en Create a copy
virtual void Transform ( const MbMatrix3D & matr, MbRegTransform * = NULL ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move ( const MbVector3D & to, MbRegTransform * = NULL ); // \ru Сдвиг \en Translation
virtual void Rotate ( const MbAxis3D & axis, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси \en Rotate around an axis
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию \en Create a copy
virtual void Transform ( const MbMatrix3D & matr, MbRegTransform * = c3d_null ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move ( const MbVector3D & to, MbRegTransform * = c3d_null ); // \ru Сдвиг \en Translation
virtual void Rotate ( const MbAxis3D & axis, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate around an axis
virtual void GetProperties( MbProperties & properties ); // \ru Выдать свойства объекта \en Get properties of the object
virtual void SetProperties( const MbProperties & properties ); // \ru Записать свойства объекта \en Set properties of the object
@@ -59,7 +59,7 @@ public :
// \ru Общие функции твердого тела \en Common functions of solid
virtual bool CreateShell( MbFaceShell *&shell, MbeCopyMode sameShell,
RPArray <MbSpaceItem> *items = NULL ); // \ru Построение \en Construction
RPArray <MbSpaceItem> *items = c3d_null ); // \ru Построение \en Construction
// \ru Дать параметры. \en Get the parameters.
void GetParameters( RibValues & params ) const { params = parameters; }
+5 -5
View File
@@ -46,12 +46,12 @@ public:
public: // \ru Общие функции математического объекта \en Common functions of the mathematical object
virtual MbeCreatorType IsA() const; ///< \ru Тип элемента \en Element type
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const; ///< \ru Сделать копию \en Make a copy
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const; ///< \ru Сделать копию \en Make a copy
virtual bool IsSame( const MbCreator &, double accuracy ) const; // \ru Являются ли объекты равными? \en Determine whether an object is equal?
virtual bool SetEqual ( const MbCreator & ); ///< \ru Сделать равным \en Make equal
virtual void Transform( const MbMatrix3D &, MbRegTransform * = NULL ); ///< \ru Преобразовать по матрице \en Transform according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = NULL ); ///< \ru Сдвиг по вектору \en Translation by the vector
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = NULL ); ///< \ru Поворот вокруг оси \en Rotation about an axis
virtual void Transform( const MbMatrix3D &, MbRegTransform * = c3d_null ); ///< \ru Преобразовать по матрице \en Transform according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = c3d_null ); ///< \ru Сдвиг по вектору \en Translation by the vector
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = c3d_null ); ///< \ru Поворот вокруг оси \en Rotation about an axis
virtual void GetProperties( MbProperties & properties ); ///< \ru Выдать свойства объекта \en Get properties of the object
virtual void SetProperties( const MbProperties & properties ); ///< \ru Записать свойства объекта \en Write properties of the object
@@ -63,7 +63,7 @@ public: // \ru Общие функции математического объе
public:
/// \ru Построение оболочки \en Creation of a shell
virtual bool CreateShell( MbFaceShell *& shell, MbeCopyMode sameShell,
RPArray<MbSpaceItem> * items = NULL );
RPArray<MbSpaceItem> * items = c3d_null );
// \ru Дать параметры. \en Get the parameters.
void GetParameters( RuledSurfaceValues & params ) const;
// \ru Установить параметры. \en Set the parameters.
+12 -12
View File
@@ -2,7 +2,7 @@
/**
\file
\brief \ru Строитель оболочки на поверхности переменного сечения.
\en Constructor of shell of evolution solid. \~
\en Constructor of shell on mutable section surface. \~
*/
////////////////////////////////////////////////////////////////////////////////
@@ -22,7 +22,7 @@ class MATH_CLASS MbFaceShell;
//------------------------------------------------------------------------------
/** \brief \ru Строитель оболочки на поверхности переменного сечения.
\en Constructor of the shell on swept mutable section surface. \~
\en Constructor of the shell on mutable section surface. \~
\details \ru Грань оболочки строится путём движения переменного сечения по опорной кривой. \n
\en Constructor of face by moving generating curve along a reference spine curve. \n \~
\ingroup Model_Creators
@@ -30,13 +30,13 @@ class MATH_CLASS MbFaceShell;
// ---
class MATH_CLASS MbSectionShell : public MbCreator {
protected :
MbSectionData sectionData; ///< \ru Данные о поверхности переменного сечения. \en Data about swept mutable section surface.
MbSectionCode sectionCode; ///< \ru Данные о поверхности переменного сечения. \en Data about swept mutable section surface.
MbSectionData sectionData; ///< \ru Данные о поверхности переменного сечения. \en Data about mutable section surface.
MbSectionCode sectionCode; ///< \ru Данные о поверхности переменного сечения. \en Data about mutable section surface.
/** \brief \ru Конструктор.
\en Constructor. \~
\param[in] data - \ru Данные о поверхности переменного сечения.
\en Data about swept mutable section surface. \~
\en Data about mutable section surface. \~
\param[in] names - \ru Именователь грани оболочки.
\en Generating face names. \~
*/
@@ -54,10 +54,10 @@ public :
\en \name Common functions of the mathematical object.
\{ */
virtual MbeCreatorType IsA() const; // \ru Тип элемента \en A type of element
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const ; // \ru Сделать копию \en Create a copy
virtual void Transform( const MbMatrix3D &, MbRegTransform * = NULL ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = NULL ); // \ru Сдвиг \en Translation
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси \en Rotate around an axis
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const ; // \ru Сделать копию \en Create a copy
virtual void Transform( const MbMatrix3D &, MbRegTransform * = c3d_null ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = c3d_null ); // \ru Сдвиг \en Translation
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate around an axis
virtual void GetProperties( MbProperties & ); // \ru Выдать свойства объекта \en Get properties of the object
virtual void SetProperties( const MbProperties & ); // \ru Записать свойства объекта \en Set properties of the object
@@ -75,7 +75,7 @@ public :
\en \name Common functions of the rigid solid (forming operations).
\{ */
virtual bool CreateShell( MbFaceShell *& shell, MbeCopyMode sameShell,
RPArray<MbSpaceItem> * items = NULL ); // \ru Построение \en Construction
RPArray<MbSpaceItem> * items = c3d_null ); // \ru Построение \en Construction
virtual void SetYourVersion( VERSION version );
/** \} */
@@ -94,7 +94,7 @@ public :
/** \} */
/** \brief \ru Создать оболочку на поверхности переменного сечения.
\en Create a shell on swept mutable section surface. \~
\en Create a shell on mutable section surface. \~
\details \ru Построить оболочку путём движения образующей кривой по направляющей кривой
и выполнить булеву операцию с оболочкой, если последняя задана. \n
Одновременно с построением оболочки функция создаёт её строитель.\n
@@ -106,7 +106,7 @@ public :
\param[in] sameShell - \ru Способ копирования граней.
\en The method of copying faces. \~
\param[in] data - \ru Данные о поверхности переменного сечения.
\en Data about swept mutable section surface. \~
\en Data about mutable section surface. \~
\param[in] names - \ru Именователь грани оболочки.
\en Generating face names. \~
\param[out] res - \ru Код результата операции.
+5 -5
View File
@@ -47,15 +47,15 @@ public:
// \ru Общие функции математического объекта \en Common functions of the mathematical object
virtual MbeCreatorType IsA() const; // \ru Тип элемента \en Type of element
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию \en Create a copy
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию \en Create a copy
virtual bool IsSame ( const MbCreator & other, double accuracy ) const; // \ru Являются ли объекты равными? \en Determine whether an object is equal?
virtual bool IsSimilar( const MbCreator & item ) const; // \ru Являются ли объекты подобными? \en Determine whether an object is similar?
virtual bool SetEqual ( const MbCreator & ); // \ru Сделать равным \en Make equal
virtual void Transform( const MbMatrix3D &, MbRegTransform * = NULL ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = NULL ); // \ru Сдвиг \en Translation
virtual void Rotate ( const MbAxis3D &, double, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси \en Rotate about an axis
virtual void Transform( const MbMatrix3D &, MbRegTransform * = c3d_null ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = c3d_null ); // \ru Сдвиг \en Translation
virtual void Rotate ( const MbAxis3D &, double, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate about an axis
virtual void GetProperties( MbProperties & properties ); // \ru Выдать свойства объекта \en Get properties of the object
virtual void SetProperties( const MbProperties & properties ); // \ru Записать свойства объекта \en Set properties of the object
@@ -65,7 +65,7 @@ public:
virtual bool CreateShell( MbFaceShell *& shell,
MbeCopyMode sameShell,
RPArray<MbSpaceItem> * items = NULL ); // \ru Построение \en Construction
RPArray<MbSpaceItem> * items = c3d_null ); // \ru Построение \en Construction
private:
// \ru Объявление оператора присваивания без реализации, чтобы не было присваивания по умолчанию. \en The declaration of the assignment operator without implementation to prevent an assignment by default.
+5 -5
View File
@@ -58,14 +58,14 @@ public:
// \ru Общие функции математического объекта \en Common functions of the mathematical object
virtual MbeCreatorType IsA() const; // \ru Тип элемента \en Type of element
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию \en Create a copy
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию \en Create a copy
virtual bool IsSame ( const MbCreator & other, double accuracy ) const; // \ru Являются ли объекты равными? \en Determine whether an object is equal?
virtual bool IsSimilar( const MbCreator & item ) const; // \ru Являются ли объекты подобными? \en Determine whether an object is similar?
virtual bool SetEqual ( const MbCreator & ); // \ru Сделать равным \en Make equal
virtual void Transform( const MbMatrix3D & matr, MbRegTransform * = NULL ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move ( const MbVector3D & to, MbRegTransform * = NULL ); // \ru Сдвиг \en Translation
virtual void Rotate ( const MbAxis3D & axis, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси \en Rotate about an axis
virtual void Transform( const MbMatrix3D & matr, MbRegTransform * = c3d_null ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move ( const MbVector3D & to, MbRegTransform * = c3d_null ); // \ru Сдвиг \en Translation
virtual void Rotate ( const MbAxis3D & axis, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate about an axis
virtual void GetProperties( MbProperties & properties ); // \ru Выдать свойства объекта \en Get properties of the object
virtual void SetProperties( const MbProperties & properties ); // \ru Записать свойства объекта \en Set properties of the object
@@ -76,7 +76,7 @@ public:
virtual bool CreateShell( MbFaceShell *& shell,
MbeCopyMode sameShell,
RPArray<MbSpaceItem> * items = NULL ); // \ru Построение \en Construction
RPArray<MbSpaceItem> * items = c3d_null ); // \ru Построение \en Construction
// \ru Дать параметры. \en Get the parameters.
void GetParameters( MbBendByEdgeValues & params ) const { params = parameters; }
+5 -5
View File
@@ -49,15 +49,15 @@ public:
// \ru Общие функции математического объекта \en Common functions of the mathematical object
virtual MbeCreatorType IsA() const; // \ru Тип элемента \en Type of element
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию \en Create a copy
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию \en Create a copy
virtual bool IsSame ( const MbCreator & other, double accuracy ) const; // \ru Являются ли объекты равными? \en Determine whether an object is equal?
virtual bool IsSimilar( const MbCreator & item ) const; // \ru Являются ли объекты подобными? \en Determine whether an object is similar?
virtual bool SetEqual ( const MbCreator & ); // \ru Сделать равным \en Make equal
virtual void Transform( const MbMatrix3D &, MbRegTransform * = NULL ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = NULL ); // \ru Сдвиг \en Translation
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси \en Rotate about an axis
virtual void Transform( const MbMatrix3D &, MbRegTransform * = c3d_null ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = c3d_null ); // \ru Сдвиг \en Translation
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate about an axis
virtual MbePrompt GetPropertyName(); // \ru Выдать заголовок свойства объекта \en Get a name of object property
virtual void GetProperties( MbProperties & properties ); // \ru Выдать свойства объекта \en Get properties of the object
@@ -69,7 +69,7 @@ public:
// \ru Общие функции твердого тела \en Common functions of solid solid
virtual bool CreateShell( MbFaceShell *& shell, MbeCopyMode sameShell,
RPArray<MbSpaceItem> * items = NULL ); // \ru Построение \en Construction
RPArray<MbSpaceItem> * items = c3d_null ); // \ru Построение \en Construction
// \ru Дать параметры. \en Get the parameters.
void GetParameters( MbBendOverSegValues & params ) const { params = parameters; }
+6 -6
View File
@@ -50,15 +50,15 @@ public:
// \ru Общие функции математического объекта \en Common functions of the mathematical object
virtual MbeCreatorType IsA() const; // \ru Тип элемента \en Type of element
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию \en Create a copy
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию \en Create a copy
virtual bool IsSame ( const MbCreator & other, double accuracy ) const; // \ru Являются ли объекты равными? \en Determine whether an object is equal?
virtual bool IsSimilar( const MbCreator & item ) const; // \ru Являются ли объекты подобными? \en Determine whether an object is similar?
virtual bool SetEqual ( const MbCreator & ); // \ru Сделать равным \en Make equal
virtual void Transform( const MbMatrix3D & matr, MbRegTransform * = NULL ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move ( const MbVector3D & to, MbRegTransform * = NULL ); // \ru Сдвиг \en Translation
virtual void Rotate ( const MbAxis3D & axis, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси \en Rotate about an axis
virtual void Transform( const MbMatrix3D & matr, MbRegTransform * = c3d_null ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move ( const MbVector3D & to, MbRegTransform * = c3d_null ); // \ru Сдвиг \en Translation
virtual void Rotate ( const MbAxis3D & axis, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate about an axis
virtual void GetProperties( MbProperties & properties ); // \ru Выдать свойства объекта \en Get properties of the object
virtual void SetProperties( const MbProperties & properties ); // \ru Записать свойства объекта \en Set properties of the object
@@ -68,7 +68,7 @@ public:
virtual bool CreateShell( MbFaceShell *& shell,
MbeCopyMode sameShell,
RPArray<MbSpaceItem> * items = NULL ); // \ru Построение \en Construction
RPArray<MbSpaceItem> * items = c3d_null ); // \ru Построение \en Construction
private:
// \ru Объявление оператора присваивания без реализации, чтобы не было присваивания по умолчанию. \en The declaration of the assignment operator without implementation to prevent an assignment by default.
@@ -122,7 +122,7 @@ MATH_FUNC (MbCreator *) CreateBendUnbend( SPtr<MbFaceShell> & init
const MbSNameMaker & names,
MbResultType & res,
MbFaceShell *& shell,
RPArray<MbContour3D> * ribContours = NULL );
RPArray<MbContour3D> * ribContours = c3d_null );
+113 -113
View File
@@ -1,114 +1,114 @@
////////////////////////////////////////////////////////////////////////////////
/**
\file
\brief \ru Строитель оболочки из листового материала на основе произвольного тела.
\en Constructor of the sheet metal shell based on an arbitrary solid.
*/
////////////////////////////////////////////////////////////////////////////////
#ifndef __CR_SHEET_BUILDER_SOLID_H
#define __CR_SHEET_BUILDER_SOLID_H
#include <creator.h>
#include <sheet_metal_param.h>
//------------------------------------------------------------------------------
/** \brief \ru Строитель оболочки из листового материала на основе произвольного тела.
\en Constructor of the sheet metal shell based on an arbitrary solid. \~
\details \ru Строитель оболочки из листового материала на основе граней и ребер произвольного тела.\n
Оболочка строится на базе исходной плоской грани и указанных ребер сгиба и разреза.
\en Constructor of the sheet metal shell based on faces and edges of an arbitrary solid. \n
Shell builds based on initial planar face and given edges of bend and corner enclosure. \~
\ingroup Model_Creators
*/
// ---
class MATH_CLASS MbBuildSheetMetalSolid : public MbCreator {
private:
MbItemIndex faceIndex; ///< \ru Индекс исходной грани для построения листового тела. \en Index of initial face for sheet metal solid creation.
bool sense; ///< \ru Признак совпадения придания толщины с нормалью исходной грани. \en Attribute of coincidence of extrusion direction to the normal of the initial face.
MbSolidToSheetMetalValues parameters; ///< \ru Параметры построения листового тела по произвольному телу. \en The parameters of sheet metal solid building based on an arbitrary solid.
public :
MbBuildSheetMetalSolid( const MbItemIndex & faceIndex,
const bool sense,
const MbSolidToSheetMetalValues & params,
const MbSNameMaker & names );
private:
MbBuildSheetMetalSolid( const MbBuildSheetMetalSolid &, MbRegDuplicate * iReg );
public:
virtual ~MbBuildSheetMetalSolid();
// \ru Общие функции математического объекта. \en Common functions of the mathematical object.
virtual MbeCreatorType IsA() const; // \ru Тип элемента. \en A type of element.
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию. \en Create a copy.
virtual bool IsSame ( const MbCreator & other, double accuracy ) const; // \ru Являются ли объекты равными? \en Determine whether an object is equal?
virtual bool IsSimilar( const MbCreator & item ) const; // \ru Являются ли объекты подобными? \en Determine whether an object is similar?
virtual bool SetEqual ( const MbCreator & ); // \ru Сделать равным. \en Make equal.
virtual void Transform( const MbMatrix3D &, MbRegTransform * = NULL ); // \ru Преобразовать элемент согласно матрице. \en Transform element according to the matrix.
virtual void Move ( const MbVector3D &, MbRegTransform * = NULL ); // \ru Сдвиг. \en Translation.
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси. \en Rotate around an axis.
virtual void GetProperties ( MbProperties & properties ); // \ru Выдать свойства объекта. \en Get properties of the object.
virtual void SetProperties ( const MbProperties & properties ); // \ru Записать свойства объекта. \en Set properties of the object.
virtual MbePrompt GetPropertyName(); // \ru Выдать заголовок свойства объекта. \en Get a name of object property.
// \ru Общие функции твердого тела. \en Common functions of solid.
// \ru Построение оболочки листового тела. \en Construction of a sheet metal shell.
virtual bool CreateShell( MbFaceShell *& shell, MbeCopyMode sameShell, RPArray <MbSpaceItem> *items = NULL );
// \ru Получить параметры. \en Get the parameters.
void GetParameters( MbSolidToSheetMetalValues & params ) const { params = parameters; }
// \ru Установить параметры. \en Set the parameters.
void SetParameters( const MbSolidToSheetMetalValues & params ) { parameters = params; }
private:
OBVIOUS_PRIVATE_COPY( MbBuildSheetMetalSolid )
DECLARE_PERSISTENT_CLASS_NEW_DEL( MbBuildSheetMetalSolid )
};
IMPL_PERSISTENT_OPS( MbBuildSheetMetalSolid )
//------------------------------------------------------------------------------
/** \brief \ru Строитель оболочки из листового материала на основе произвольного тела.
\en Constructor of the sheet metal shell based on an arbitrary solid. \~
\details \ru На базе исходной произвольной оболочки построить оболочку из листового материала. \n
Одновременно с построением оболочки функция создаёт её строитель.\n
\en A shell is to be constructed on the basis of the source arbitary shell. \n
The function simultaneously creates the shell and its constructor.\n \~
\param[in] solid - \ru Исходная оболочка.
\en The source shell. \~
\param[in] sameShell - \ru Режим копирования исходной оболочки.
\en Mode of copying the source shell. \~
\param[in] initFace - \ru Исходная грань для построения листового тела.
\en The initial face for sheet metal solid construction. \~
\param[in] sense - \ru Признак совпадения направления придания толщины с нормалью исходной грани.
\en Attribute of coincidence of extrusion direction to the normal of the initial face. \~
\param[in] params - \ru Параметры построения листового тела по произвольному телу.
\en The parameters of sheet metal solid building based on an arbitrary solid. \~
\param[in] nameMaker - \ru Именователь.
\en An object for naming the new objects. \~
\param[out] result - \ru Результирующее тело.
\en The resultant solid. \~
\result \ru Возвращает строитель оболочки.
\en Returns the shell constructor. \~
\ingroup Model_Creators
*/
// ---
MATH_FUNC (MbCreator *) ConvertShellToSheetMetall( MbFaceShell * initialShell, // Исходная оболочка,
const MbeCopyMode sameShell, // флаг способа использования исходной оболочки,
const MbFace & initFace, // базовая грань, относительно которой будет строиться листовое тело,
bool sense, // признак совпадения придания толщины с нормалью базовой грани,
MbSolidToSheetMetalValues & params, // параметры построения листового тела,
const MbSNameMaker & nameMaker, // именователь,
MbResultType & res, // флаг успешности операции,
SPtr<MbFaceShell> & resultShell ); // результирующая оболочка.
////////////////////////////////////////////////////////////////////////////////
/**
\file
\brief \ru Строитель оболочки из листового материала на основе произвольного тела.
\en Constructor of the sheet metal shell based on an arbitrary solid.
*/
////////////////////////////////////////////////////////////////////////////////
#ifndef __CR_SHEET_BUILDER_SOLID_H
#define __CR_SHEET_BUILDER_SOLID_H
#include <creator.h>
#include <sheet_metal_param.h>
//------------------------------------------------------------------------------
/** \brief \ru Строитель оболочки из листового материала на основе произвольного тела.
\en Constructor of the sheet metal shell based on an arbitrary solid. \~
\details \ru Строитель оболочки из листового материала на основе граней и ребер произвольного тела.\n
Оболочка строится на базе исходной плоской грани и указанных ребер сгиба и разреза.
\en Constructor of the sheet metal shell based on faces and edges of an arbitrary solid. \n
Shell builds based on initial planar face and given edges of bend and corner enclosure. \~
\ingroup Model_Creators
*/
// ---
class MATH_CLASS MbBuildSheetMetalSolid : public MbCreator {
private:
MbItemIndex faceIndex; ///< \ru Индекс исходной грани для построения листового тела. \en Index of initial face for sheet metal solid creation.
bool sense; ///< \ru Признак совпадения придания толщины с нормалью исходной грани. \en Attribute of coincidence of extrusion direction to the normal of the initial face.
MbSolidToSheetMetalValues parameters; ///< \ru Параметры построения листового тела по произвольному телу. \en The parameters of sheet metal solid building based on an arbitrary solid.
public :
MbBuildSheetMetalSolid( const MbItemIndex & faceIndex,
const bool sense,
const MbSolidToSheetMetalValues & params,
const MbSNameMaker & names );
private:
MbBuildSheetMetalSolid( const MbBuildSheetMetalSolid &, MbRegDuplicate * iReg );
public:
virtual ~MbBuildSheetMetalSolid();
// \ru Общие функции математического объекта. \en Common functions of the mathematical object.
virtual MbeCreatorType IsA() const; // \ru Тип элемента. \en A type of element.
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию. \en Create a copy.
virtual bool IsSame ( const MbCreator & other, double accuracy ) const; // \ru Являются ли объекты равными? \en Determine whether an object is equal?
virtual bool IsSimilar( const MbCreator & item ) const; // \ru Являются ли объекты подобными? \en Determine whether an object is similar?
virtual bool SetEqual ( const MbCreator & ); // \ru Сделать равным. \en Make equal.
virtual void Transform( const MbMatrix3D &, MbRegTransform * = c3d_null ); // \ru Преобразовать элемент согласно матрице. \en Transform element according to the matrix.
virtual void Move ( const MbVector3D &, MbRegTransform * = c3d_null ); // \ru Сдвиг. \en Translation.
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси. \en Rotate around an axis.
virtual void GetProperties ( MbProperties & properties ); // \ru Выдать свойства объекта. \en Get properties of the object.
virtual void SetProperties ( const MbProperties & properties ); // \ru Записать свойства объекта. \en Set properties of the object.
virtual MbePrompt GetPropertyName(); // \ru Выдать заголовок свойства объекта. \en Get a name of object property.
// \ru Общие функции твердого тела. \en Common functions of solid.
// \ru Построение оболочки листового тела. \en Construction of a sheet metal shell.
virtual bool CreateShell( MbFaceShell *& shell, MbeCopyMode sameShell, RPArray <MbSpaceItem> *items = c3d_null );
// \ru Получить параметры. \en Get the parameters.
void GetParameters( MbSolidToSheetMetalValues & params ) const { params = parameters; }
// \ru Установить параметры. \en Set the parameters.
void SetParameters( const MbSolidToSheetMetalValues & params ) { parameters = params; }
private:
OBVIOUS_PRIVATE_COPY( MbBuildSheetMetalSolid )
DECLARE_PERSISTENT_CLASS_NEW_DEL( MbBuildSheetMetalSolid )
};
IMPL_PERSISTENT_OPS( MbBuildSheetMetalSolid )
//------------------------------------------------------------------------------
/** \brief \ru Строитель оболочки из листового материала на основе произвольного тела.
\en Constructor of the sheet metal shell based on an arbitrary solid. \~
\details \ru На базе исходной произвольной оболочки построить оболочку из листового материала. \n
Одновременно с построением оболочки функция создаёт её строитель.\n
\en A shell is to be constructed on the basis of the source arbitary shell. \n
The function simultaneously creates the shell and its constructor.\n \~
\param[in] solid - \ru Исходная оболочка.
\en The source shell. \~
\param[in] sameShell - \ru Режим копирования исходной оболочки.
\en Mode of copying the source shell. \~
\param[in] initFace - \ru Исходная грань для построения листового тела.
\en The initial face for sheet metal solid construction. \~
\param[in] sense - \ru Признак совпадения направления придания толщины с нормалью исходной грани.
\en Attribute of coincidence of extrusion direction to the normal of the initial face. \~
\param[in] params - \ru Параметры построения листового тела по произвольному телу.
\en The parameters of sheet metal solid building based on an arbitrary solid. \~
\param[in] nameMaker - \ru Именователь.
\en An object for naming the new objects. \~
\param[out] result - \ru Результирующее тело.
\en The resultant solid. \~
\result \ru Возвращает строитель оболочки.
\en Returns the shell constructor. \~
\ingroup Model_Creators
*/
// ---
MATH_FUNC (MbCreator *) ConvertShellToSheetMetall( MbFaceShell * initialShell, // Исходная оболочка,
const MbeCopyMode sameShell, // флаг способа использования исходной оболочки,
const MbFace & initFace, // базовая грань, относительно которой будет строиться листовое тело,
bool sense, // признак совпадения придания толщины с нормалью базовой грани,
MbSolidToSheetMetalValues & params, // параметры построения листового тела,
const MbSNameMaker & nameMaker, // именователь,
MbResultType & res, // флаг успешности операции,
SPtr<MbFaceShell> & resultShell ); // результирующая оболочка.
#endif // __CR_SHEET_BUILDER_SOLID_H
+5 -5
View File
@@ -50,15 +50,15 @@ public:
// \ru Общие функции математического объекта \en Common functions of the mathematical object
virtual MbeCreatorType IsA() const; // \ru Тип элемента \en Type of element
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию \en Create a copy
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию \en Create a copy
virtual bool IsSame ( const MbCreator & other, double accuracy ) const; // \ru Являются ли объекты равными? \en Determine whether an object is equal?
virtual bool IsSimilar( const MbCreator & item ) const; // \ru Являются ли объекты подобными? \en Determine whether an object is similar?
virtual bool SetEqual ( const MbCreator & ); // \ru Сделать равным \en Make equal
virtual void Transform( const MbMatrix3D &, MbRegTransform * = NULL ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = NULL ); // \ru Сдвиг \en Translation
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси \en Rotate about an axis
virtual void Transform( const MbMatrix3D &, MbRegTransform * = c3d_null ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = c3d_null ); // \ru Сдвиг \en Translation
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate about an axis
virtual void GetProperties( MbProperties & properties ); // \ru Выдать свойства объекта \en Get properties of the object
virtual void SetProperties( const MbProperties & properties ); // \ru Записать свойства объекта \en Set properties of the object
@@ -68,7 +68,7 @@ public:
virtual bool CreateShell( MbFaceShell *& shell,
MbeCopyMode sameShell,
RPArray<MbSpaceItem> * items = NULL ); // \ru Построение \en Construction
RPArray<MbSpaceItem> * items = c3d_null ); // \ru Построение \en Construction
// \ru Дать параметры. \en Get the parameters.
void GetParameters( MbClosedCornerValues & params ) const { params = parameters; }
+5 -5
View File
@@ -57,15 +57,15 @@ public:
// \ru Общие функции математического объекта \en Common functions of the mathematical object
virtual MbeCreatorType IsA() const; // \ru Тип элемента \en Type of element
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию \en Create a copy
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию \en Create a copy
virtual bool IsSame ( const MbCreator & other, double accuracy ) const; // \ru Являются ли объекты равными? \en Determine whether an object is equal?
virtual bool IsSimilar( const MbCreator & item ) const; // \ru Являются ли объекты подобными? \en Determine whether an object is similar?
virtual bool SetEqual ( const MbCreator & ); // \ru Сделать равным \en Make equal
virtual void Transform( const MbMatrix3D & matr, MbRegTransform * = NULL ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move ( const MbVector3D & to, MbRegTransform * = NULL ); // \ru Сдвиг \en Translation
virtual void Rotate ( const MbAxis3D & axis, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси \en Rotate about an axis
virtual void Transform( const MbMatrix3D & matr, MbRegTransform * = c3d_null ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move ( const MbVector3D & to, MbRegTransform * = c3d_null ); // \ru Сдвиг \en Translation
virtual void Rotate ( const MbAxis3D & axis, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate about an axis
virtual void GetProperties( MbProperties & properties ); // \ru Выдать свойства объекта \en Get properties of the object
virtual void SetProperties( const MbProperties & properties ); // \ru Записать свойства объекта \en Set properties of the object
@@ -74,7 +74,7 @@ public:
// \ru Общие функции твердого тела \en Common functions of solid solid
virtual bool CreateShell( MbFaceShell *& shell,
MbeCopyMode sameShell,
RPArray<MbSpaceItem> * items = NULL ); // \ru Построение \en Construction
RPArray<MbSpaceItem> * items = c3d_null ); // \ru Построение \en Construction
// \ru Дать параметры. \en Get the parameters.
void GetParameters( MbJointBendValues & params ) const { params = parameters; }
+5 -5
View File
@@ -82,10 +82,10 @@ public :
// \ru Общие функции математического объекта \en Common functions of the mathematical object
virtual MbeCreatorType IsA() const; // \ru Тип элемента \en Type of element
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию \en Create a copy
virtual void Transform( const MbMatrix3D & matr, MbRegTransform * = NULL ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move( const MbVector3D & to, MbRegTransform * = NULL ); // \ru Сдвиг \en Translation
virtual void Rotate( const MbAxis3D & axis, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси \en Rotate about an axis
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию \en Create a copy
virtual void Transform( const MbMatrix3D & matr, MbRegTransform * = c3d_null ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move( const MbVector3D & to, MbRegTransform * = c3d_null ); // \ru Сдвиг \en Translation
virtual void Rotate( const MbAxis3D & axis, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate about an axis
virtual MbePrompt GetPropertyName(); // \ru Выдать заголовок свойства объекта \en Get a name of object property
virtual void GetProperties( MbProperties & properties ); // \ru Выдать свойства объекта \en Get properties of the object
@@ -101,7 +101,7 @@ public :
// \ru Общие функции твердого тела \en Common functions of solid solid
virtual bool CreateShell( MbFaceShell *& shell, MbeCopyMode sameShell,
RPArray<MbSpaceItem> * items = NULL ); // \ru Построение \en Construction
RPArray<MbSpaceItem> * items = c3d_null ); // \ru Построение \en Construction
virtual MbFaceShell * InitShell( bool in );
+5 -5
View File
@@ -45,15 +45,15 @@ public:
// \ru Общие функции математического объекта \en Common functions of the mathematical object
virtual MbeCreatorType IsA() const; // \ru Тип элемента \en Type of element
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию \en Create a copy
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию \en Create a copy
virtual bool IsSame ( const MbCreator & other, double accuracy ) const; // \ru Являются ли объекты равными? \en Determine whether an object is equal?
virtual bool IsSimilar( const MbCreator & item ) const; // \ru Являются ли объекты подобными? \en Determine whether an object is similar?
virtual bool SetEqual ( const MbCreator & ); // \ru Сделать равным \en Make equal
virtual void Transform( const MbMatrix3D & matr, MbRegTransform * = NULL ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move ( const MbVector3D & to, MbRegTransform * = NULL ); // \ru Сдвиг \en Translation
virtual void Rotate ( const MbAxis3D & axis, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси \en Rotate about an axis
virtual void Transform( const MbMatrix3D & matr, MbRegTransform * = c3d_null ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move ( const MbVector3D & to, MbRegTransform * = c3d_null ); // \ru Сдвиг \en Translation
virtual void Rotate ( const MbAxis3D & axis, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate about an axis
virtual void GetProperties( MbProperties & properties ); // \ru Выдать свойства объекта \en Get properties of the object
virtual void SetProperties( const MbProperties & properties ); // \ru Записать свойства объекта \en Set properties of the object
@@ -63,7 +63,7 @@ public:
virtual bool CreateShell( MbFaceShell *& shell,
MbeCopyMode sameShell,
RPArray<MbSpaceItem> * items = NULL ); // \ru Построение \en Construction
RPArray<MbSpaceItem> * items = c3d_null ); // \ru Построение \en Construction
private:
// \ru Объявление оператора присваивания без реализации, чтобы не было присваивания по умолчанию. \en The declaration of the assignment operator without implementation to prevent an assignment by default.
+5 -5
View File
@@ -42,15 +42,15 @@ public:
// \ru Общие функции математического объекта \en Common functions of the mathematical object
virtual MbeCreatorType IsA() const; // \ru Тип элемента \en Type of element
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию \en Create a copy
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию \en Create a copy
virtual bool IsSame ( const MbCreator & other, double accuracy ) const; // \ru Являются ли объекты равными? \en Determine whether an object is equal?
virtual bool IsSimilar( const MbCreator & item ) const; // \ru Являются ли объекты подобными? \en Determine whether an object is similar?
virtual bool SetEqual ( const MbCreator & ); // \ru Сделать равным \en Make equal
virtual void Transform( const MbMatrix3D &, MbRegTransform * = NULL ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = NULL ); // \ru Сдвиг \en Translation
virtual void Rotate ( const MbAxis3D &, double, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси \en Rotate about an axis
virtual void Transform( const MbMatrix3D &, MbRegTransform * = c3d_null ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = c3d_null ); // \ru Сдвиг \en Translation
virtual void Rotate ( const MbAxis3D &, double, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate about an axis
virtual void GetProperties( MbProperties & properties ); // \ru Выдать свойства объекта \en Get properties of the object
virtual void SetProperties( const MbProperties & properties ); // \ru Записать свойства объекта \en Set properties of the object
@@ -60,7 +60,7 @@ public:
virtual bool CreateShell( MbFaceShell *& shell,
MbeCopyMode sameShell,
RPArray<MbSpaceItem> * items = NULL ); // \ru Построение \en Construction
RPArray<MbSpaceItem> * items = c3d_null ); // \ru Построение \en Construction
private:
// \ru Объявление оператора присваивания без реализации, чтобы не было присваивания по умолчанию. \en The declaration of the assignment operator without implementation to prevent an assignment by default.
+5 -5
View File
@@ -43,10 +43,10 @@ public :
// \ru Общие функции математического объекта \en Common functions of the mathematical object
virtual MbeCreatorType IsA() const; // \ru Тип элемента \en Type of element
virtual void Transform( const MbMatrix3D &, MbRegTransform * ireg = NULL ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * ireg = NULL ); // \ru Сдвиг \en Translation
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * ireg = NULL ); // \ru Повернуть вокруг оси \en Rotate about an axis
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const ; // \ru Сделать копию \en Create a copy
virtual void Transform( const MbMatrix3D &, MbRegTransform * ireg = c3d_null ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * ireg = c3d_null ); // \ru Сдвиг \en Translation
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * ireg = c3d_null ); // \ru Повернуть вокруг оси \en Rotate about an axis
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const ; // \ru Сделать копию \en Create a copy
virtual MbePrompt GetPropertyName(); // \ru Выдать заголовок свойства объекта \en Get a name of object property
virtual void GetProperties( MbProperties & properties ); // \ru Выдать свойства объекта \en Get properties of the object
@@ -62,7 +62,7 @@ public :
// \ru Общие функции твердого тела \en Common functions of solid
virtual bool CreateShell( MbFaceShell *& shell, MbeCopyMode sameShell,
RPArray<MbSpaceItem> * items = NULL ); // \ru Построение \en Construction
RPArray<MbSpaceItem> * items = c3d_null ); // \ru Построение \en Construction
virtual void SetYourVersion( VERSION version, bool forAll );
+14 -14
View File
@@ -68,10 +68,10 @@ public :
\en \name Common functions of the shell creator.
\{ */
virtual MbeCreatorType IsA() const; // \ru Тип элемента \en Type of element
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const ; // \ru Сделать копию \en Create a copy
virtual void Transform( const MbMatrix3D &, MbRegTransform * = NULL ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = NULL ); // \ru Сдвиг \en Translation
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси \en Rotate about an axis
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const ; // \ru Сделать копию \en Create a copy
virtual void Transform( const MbMatrix3D &, MbRegTransform * = c3d_null ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = c3d_null ); // \ru Сдвиг \en Translation
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate about an axis
virtual MbePrompt GetPropertyName(); // \ru Выдать заголовок свойства объекта \en Get a name of object property
virtual void GetProperties( MbProperties & ); // \ru Выдать свойства объекта \en Get properties of the object
@@ -85,7 +85,7 @@ public :
virtual bool SetEqual( const MbCreator & ); // \ru Сделать равным \en Make equal
virtual bool CreateShell( MbFaceShell *&shell, MbeCopyMode sameShell,
RPArray<MbSpaceItem> * items = NULL ); // \ru Построение \en Construction
RPArray<MbSpaceItem> * items = c3d_null ); // \ru Построение \en Construction
/** \} */
const MbFaceShell * GetShell() const { return outer; } /// \ru Дать оболочку. \en Get a shell.
@@ -158,7 +158,7 @@ bool MbSimpleCreator::DeleteShellCopies( const CreatorsVector & creators )
size_t i;
for ( i = 0; i < creatorsCnt; ++i ) {
MbCreator * creator = creators[i];
if ( creator != NULL ) {
if ( creator != c3d_null ) {
if ( creator->IsA() == ct_SimpleCreator ) {
MbSimpleCreator * simpleCreator = static_cast<MbSimpleCreator *>(creator);
simpleShells.push_back( std::make_pair( i, simpleCreator->GetShell() ) );
@@ -184,7 +184,7 @@ bool MbSimpleCreator::DeleteShellCopies( const CreatorsVector & creators )
if ( shell1 && shell2 && (shell1 != shell2) ) {
if ( shell1->IsSame( *shell2, LENGTH_EPSILON ) ) {
sc2.SetShell( *shell1 );
simpleShells[j].second = NULL;
simpleShells[j].second = c3d_null;
isReplaced = true;
}
}
@@ -194,7 +194,7 @@ bool MbSimpleCreator::DeleteShellCopies( const CreatorsVector & creators )
std::sort( simpleShells.begin(), simpleShells.end(), ::SortByShellPointers );
simpleShells.erase( std::unique( simpleShells.begin(), simpleShells.end(), ::AreEqualShellPointers ), simpleShells.end() );
if ( simpleShells.size() > 1 ) {
if ( simpleShells.front().second == NULL )
if ( simpleShells.front().second == c3d_null )
simpleShells.erase( simpleShells.begin() );
}
}
@@ -215,7 +215,7 @@ bool MbSimpleCreator::IsThisShell( const MbFaceShell & shell, const CreatorsVect
if ( creators.size() > 0 ) {
for ( size_t i = creators.size(); i--; ) {
const MbCreator * creator = creators[i];
if ( (creator != NULL) && (creator->IsA() == ct_SimpleCreator) ) {
if ( (creator != c3d_null) && (creator->IsA() == ct_SimpleCreator) ) {
const MbSimpleCreator & simpleCreator = static_cast<const MbSimpleCreator &>(*creator);
if ( simpleCreator.GetShell() == &shell ) {
res = true;
@@ -253,10 +253,10 @@ public :
\en \name Common functions of the shell creator.
\{ */
virtual MbeCreatorType IsA() const; // \ru Тип элемента \en Type of element
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const ; // \ru Сделать копию \en Create a copy
virtual void Transform( const MbMatrix3D &, MbRegTransform * = NULL ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = NULL ); // \ru Сдвиг \en Translation
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси \en Rotate about an axis
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const ; // \ru Сделать копию \en Create a copy
virtual void Transform( const MbMatrix3D &, MbRegTransform * = c3d_null ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = c3d_null ); // \ru Сдвиг \en Translation
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate about an axis
virtual MbePrompt GetPropertyName(); // \ru Выдать заголовок свойства объекта \en Get a name of object property
virtual void GetProperties( MbProperties & ); // \ru Выдать свойства объекта \en Get properties of the object
@@ -267,7 +267,7 @@ public :
virtual bool IsSimilar ( const MbCreator & ) const; // \ru Являются ли объекты подобными \en Whether the objects are similar
virtual bool CreateShell( MbFaceShell *& shell, MbeCopyMode sameShell,
RPArray<MbSpaceItem> * items = NULL ); // \ru Построение \en Construction
RPArray<MbSpaceItem> * items = c3d_null ); // \ru Построение \en Construction
/** \} */
DECLARE_PERSISTENT_CLASS_NEW_DEL( MbReverseCreator )
+5 -5
View File
@@ -42,10 +42,10 @@ public :
virtual MbeCreatorType IsA() const = 0; // \ru Тип элемента \en A type of element
virtual MbeCreatorType Type() const; // \ru Тип элемента \en A type of element
virtual MbCreator & Duplicate( MbRegDuplicate *iReg = NULL ) const = 0; // \ru Сделать копию \en Create a copy
virtual void Transform( const MbMatrix3D &matr, MbRegTransform * = NULL ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move( const MbVector3D &to, MbRegTransform * = NULL ); // \ru Сдвиг \en Translation
virtual void Rotate( const MbAxis3D &axis, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси \en Rotate around an axis
virtual MbCreator & Duplicate( MbRegDuplicate *iReg = c3d_null ) const = 0; // \ru Сделать копию \en Create a copy
virtual void Transform( const MbMatrix3D &matr, MbRegTransform * = c3d_null ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move( const MbVector3D &to, MbRegTransform * = c3d_null ); // \ru Сдвиг \en Translation
virtual void Rotate( const MbAxis3D &axis, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate around an axis
virtual void GetProperties( MbProperties & ) = 0; // \ru Выдать свойства объекта \en Get properties of the object
virtual void SetProperties( const MbProperties & ) = 0; // \ru Записать свойства объекта \en Set properties of the object
@@ -58,7 +58,7 @@ public :
// \ru Общие функции твердого тела \en Common functions of solid
virtual bool CreateShell( MbFaceShell *&shell, MbeCopyMode sameShell,
RPArray<MbSpaceItem> * items = NULL ) = 0; // \ru Построение \en Construction
RPArray<MbSpaceItem> * items = c3d_null ) = 0; // \ru Построение \en Construction
/// \ru Дать параметры. \en Get the parameters.
void GetParameters( SmoothValues & params ) const { params = parameters; }
+27 -27
View File
@@ -91,7 +91,7 @@ public:
, spaceCurves ( )
, surfaces ( )
, creators ( )
, solidShell ( NULL )
, solidShell ( c3d_null )
{
}
/// \ru Конструктор по двумерному контуру в локальной системе координат. \en Constructor by two-dimensional contour in the local coordinate system.
@@ -103,7 +103,7 @@ public:
, spaceCurves ( )
, surfaces ( )
, creators ( )
, solidShell ( NULL )
, solidShell ( c3d_null )
{
SPtr<MbContour> sketchContour;
sketchContour = same ? const_cast<MbContour *>(&item) : static_cast<MbContour *>(&item.Duplicate());
@@ -118,7 +118,7 @@ public:
, spaceCurves ( )
, surfaces ( )
, creators ( )
, solidShell ( NULL )
, solidShell ( c3d_null )
{
C3D_ASSERT( (direction.MaxFactor() < LENGTH_EPSILON) || !direction.Orthogonal( place.GetAxisZ(), ANGLE_EPSILON ) );
@@ -136,7 +136,7 @@ public:
, spaceCurves ( )
, surfaces ( )
, creators ( )
, solidShell ( NULL )
, solidShell ( c3d_null )
{
::AddRefItems( items, same, sketchContours );
}
@@ -150,7 +150,7 @@ public:
, spaceCurves ( )
, surfaces ( )
, creators ( )
, solidShell ( NULL )
, solidShell ( c3d_null )
{
C3D_ASSERT( (direction.MaxFactor() < LENGTH_EPSILON) || !direction.Orthogonal( place.GetAxisZ(), ANGLE_EPSILON ) );
@@ -165,7 +165,7 @@ public:
, spaceCurves ( )
, surfaces ( )
, creators ( )
, solidShell ( NULL )
, solidShell ( c3d_null )
{
::AddRefItems( items, same, spaceCurves );
}
@@ -178,7 +178,7 @@ public:
, spaceCurves ( )
, surfaces ( )
, creators ( )
, solidShell ( NULL )
, solidShell ( c3d_null )
{
::AddRefItems( items, same, spaceCurves );
}
@@ -191,7 +191,7 @@ public:
, spaceCurves ( )
, surfaces ( )
, creators ( )
, solidShell ( NULL )
, solidShell ( c3d_null )
{
SPtr<MbSurface> surface;
surface = same ? const_cast<MbSurface *>(&item) : static_cast<MbSurface *>(&item.Duplicate());
@@ -206,7 +206,7 @@ public:
, spaceCurves ( )
, surfaces ( )
, creators ( )
, solidShell ( NULL )
, solidShell ( c3d_null )
{
::AddRefItems( items, same, surfaces );
}
@@ -219,7 +219,7 @@ public:
, spaceCurves ( )
, surfaces ( )
, creators ( )
, solidShell ( NULL )
, solidShell ( c3d_null )
{
::AddRefItems( items, same, surfaces );
}
@@ -322,12 +322,12 @@ public:
DeleteItems();
size_t creatorsCnt = solidCreators.size();
if ( creatorsCnt > 0 ) {
MbRegDuplicate * iReg = NULL;
MbRegDuplicate * iReg = c3d_null;
MbAutoRegDuplicate autoReg( iReg );
SPtr<MbCreator> creator;
creators.reserve( creatorsCnt );
for ( size_t k = 0; k < creatorsCnt; ++k ) {
if ( solidCreators[k] != NULL ) {
if ( solidCreators[k] != c3d_null ) {
creator = sameCreators ? &const_cast<MbCreator &>( *solidCreators[k] ) : static_cast<MbCreator *>( &solidCreators[k]->Duplicate( iReg ) );
creators.push_back( creator );
::DetachItem( creator );
@@ -343,17 +343,17 @@ public:
/// \ru Являются ли объекты подобными. \en Determine whether the objects are similar.
bool IsSimilar( const MbSplitData & ) const;
/// \ru Преобразовать элемент согласно матрице. \en Transform element according to the matrix.
void Transform( const MbMatrix3D &, MbRegTransform * = NULL );
void Transform( const MbMatrix3D &, MbRegTransform * = c3d_null );
/// \ru Сдвинуть по вектору. \en Shift by a vector.
void Move ( const MbVector3D &, MbRegTransform * = NULL );
void Move ( const MbVector3D &, MbRegTransform * = c3d_null );
/// \ru Повернуть вокруг оси. \en Rotate about an axis.
void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = NULL );
void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = c3d_null );
/// \ru Отсутствуют ли объекты? \en Are the objects absent?
bool IsEmpty() const {
return ( sketchContours.empty() &&
spaceCurves.empty() &&
surfaces.empty() &&
(creators.empty() && (solidShell == NULL)) ); }
(creators.empty() && (solidShell == c3d_null)) ); }
/// \ru Являются ли объекты равными? \en Determine whether an object is equal?
bool IsSame( const MbSplitData &, double accuracy ) const;
@@ -377,9 +377,9 @@ public:
/// \ru Установить направление выдавливания двумерных кривых. \en Set extrusion direction of two-dimensional curves.
void SetSketchSense( MbeSenseValue zdir ) { sense = zdir; }
/// \ru Получить двумерную кривую по индексу. \en Get two-dimensional curve by index.
const MbContour * GetSketchCurve( size_t k ) const { return ((k < sketchContours.size()) ? sketchContours[k].get() : NULL ); }
const MbContour * GetSketchCurve( size_t k ) const { return ((k < sketchContours.size()) ? sketchContours[k].get() : c3d_null ); }
/// \ru Получить двумерную кривую по индексу. \en Get two-dimensional curve by index.
MbContour * SetSketchCurve( size_t k ) { return ((k < sketchContours.size()) ? sketchContours[k].get() : NULL ); }
MbContour * SetSketchCurve( size_t k ) { return ((k < sketchContours.size()) ? sketchContours[k].get() : c3d_null ); }
/// \ru Получить все двумерные кривые. \en Get all two-dimensional curves.
template <class PlaneContoursVector>
void GetSketchCurves( PlaneContoursVector & curvs ) const
@@ -401,9 +401,9 @@ public:
/// \ru Выдать количество пространственных кривых. \en Get number of spatial curves.
size_t GetSpaceCurvesCount() const { return spaceCurves.size(); }
/// \ru Получить пространственную кривую по индексу. \en Get a spatial curve by index.
const MbCurve3D * GetSpaceCurve( size_t k ) const { return ((k < spaceCurves.size()) ? spaceCurves[k].get() : NULL ); }
const MbCurve3D * GetSpaceCurve( size_t k ) const { return ((k < spaceCurves.size()) ? spaceCurves[k].get() : c3d_null ); }
/// \ru Получить пространственную кривую по индексу. \en Get a spatial curve by index.
MbCurve3D * SetSpaceCurve( size_t k ) { return ((k < spaceCurves.size()) ? spaceCurves[k].get() : NULL ); }
MbCurve3D * SetSpaceCurve( size_t k ) { return ((k < spaceCurves.size()) ? spaceCurves[k].get() : c3d_null ); }
/// \ru Получить все пространственные кривые. \en Get all spatial curves.
template <class SpaceCurvesVector>
void GetSpaceCurves( SpaceCurvesVector & curvs ) const
@@ -425,9 +425,9 @@ public:
/// \ru Выдать количество поверхностей. \en Get number of surfaces.
size_t GetSurfacesCount() const { return surfaces.size(); }
/// \ru Получить поверхность по индексу. \en Get a surface by index.
const MbSurface * GetSurface( size_t k ) const { return ((k < surfaces.size()) ? surfaces[k].get() : NULL); }
const MbSurface * GetSurface( size_t k ) const { return ((k < surfaces.size()) ? surfaces[k].get() : c3d_null); }
/// \ru Получить поверхность по индексу. \en Get a surface by index.
MbSurface * SetSurface( size_t k ) { return ((k < surfaces.size()) ? surfaces[k].get() : NULL); }
MbSurface * SetSurface( size_t k ) { return ((k < surfaces.size()) ? surfaces[k].get() : c3d_null); }
/// \ru Получить все поверхности. \en Get all surfaces.
template <class SurfacesVector>
void GetSurfaces( SurfacesVector & surfs ) const
@@ -449,9 +449,9 @@ public:
/// \ru Выдать количество строителей тела. \en Get number of solid creators.
size_t GetCreatorsCount() const { return creators.size(); }
/// \ru Получить строитель по индексу. \en Get constructor by index.
const MbCreator * GetCreator( size_t k ) const { return ((k < creators.size()) ? creators[k].get() : NULL ); }
const MbCreator * GetCreator( size_t k ) const { return ((k < creators.size()) ? creators[k].get() : c3d_null ); }
/// \ru Получить строитель по индексу. \en Get constructor by index.
MbCreator * SetCreator( size_t k ) { return ((k < creators.size()) ? creators[k].get() : NULL ); }
MbCreator * SetCreator( size_t k ) { return ((k < creators.size()) ? creators[k].get() : c3d_null ); }
/// \ru Получить все строители. \en Get all creators.
template <class CreatorsVector>
void GetCreators( CreatorsVector & crs ) const
@@ -468,17 +468,17 @@ public:
template <class CreatorsVector>
void GetCreatorsCopies( CreatorsVector & crs ) const
{
MbRegDuplicate * iReg = NULL;
MbRegDuplicate * iReg = c3d_null;
MbAutoRegDuplicate autoReg( iReg );
crs.reserve( crs.size() + creators.size() );
c3d::CreatorSPtr creator;
for ( size_t k = 0, addCnt = creators.size(); k < addCnt; ++k ) {
if ( creators[k] != NULL )
if ( creators[k] != c3d_null )
creator = static_cast<MbCreator *>( &creators[k]->Duplicate( iReg ) );
crs.push_back( creator );
::DetachItem( creator );
creator = NULL;
creator = c3d_null;
}
}
/// \ru Получить все строители. \en Get all creators.
+5 -5
View File
@@ -41,10 +41,10 @@ public :
// \ru Общие функции математического объекта \en Common functions of the mathematical object
virtual MbeCreatorType IsA () const; // \ru Тип элемента \en A type of element
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const;
virtual void Transform( const MbMatrix3D &, MbRegTransform * = NULL ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = NULL ); // \ru Сдвиг \en Translation
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси \en Rotate around an axis
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const;
virtual void Transform( const MbMatrix3D &, MbRegTransform * = c3d_null ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = c3d_null ); // \ru Сдвиг \en Translation
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate around an axis
virtual MbePrompt GetPropertyName(); // \ru Выдать заголовок свойства объекта \en Get a name of object property
virtual void GetProperties( MbProperties & ); // \ru Выдать свойства объекта \en Get properties of the object
@@ -58,7 +58,7 @@ public :
// \ru Общие функции твердого тела \en Common functions of solid
virtual bool CreateShell( MbFaceShell *& shell, MbeCopyMode sameShell,
RPArray<MbSpaceItem> * items = NULL ); // \ru Построение \en Construction
RPArray<MbSpaceItem> * items = c3d_null ); // \ru Построение \en Construction
private: // \ru Не реализовано \en Not implemented
// \ru Объявление конструктора копирования без реализации, чтобы не было копирования по умолчанию. \en Declaration without implementation of the copy-constructor to prevent copying by default.
+5 -5
View File
@@ -67,15 +67,15 @@ public:
// \ru Общие функции математического объекта \en Common functions of the mathematical object
virtual MbeCreatorType IsA () const; // \ru Тип элемента \en A type of element
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию \en Create a copy
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию \en Create a copy
virtual bool IsSame ( const MbCreator & other, double accuracy ) const; // \ru Являются ли объекты равными? \en Determine whether an object is equal?
virtual bool IsSimilar( const MbCreator & item ) const; // \ru Являются ли объекты подобными? \en Determine whether an object is similar?
virtual bool SetEqual ( const MbCreator & ); // \ru Сделать равным \en Make equal
virtual void Transform( const MbMatrix3D &, MbRegTransform * = NULL ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = NULL ); // \ru Сдвиг \en Translation
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси \en Rotate around an axis
virtual void Transform( const MbMatrix3D &, MbRegTransform * = c3d_null ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = c3d_null ); // \ru Сдвиг \en Translation
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate around an axis
virtual MbePrompt GetPropertyName(); // \ru Выдать заголовок свойства объекта \en Get a name of object property
virtual void GetProperties ( MbProperties &properties ); // \ru Выдать свойства объекта \en Get properties of the object
@@ -87,7 +87,7 @@ public:
// \ru Общие функции твердого тела \en Common functions of solid
virtual bool CreateShell( MbFaceShell *& shell, MbeCopyMode sameShell,
RPArray<MbSpaceItem> * items = NULL ); // \ru Построение \en Construction
RPArray<MbSpaceItem> * items = c3d_null ); // \ru Построение \en Construction
// \ru Дать параметры. \en Get the parameters.
void GetParameters( MbBeadValues & params ) const { params = parameters; }

Some files were not shown because too many files have changed in this diff Show More