This commit is contained in:
DarioS
2021-12-06 16:51:49 +01:00
354 changed files with 4853 additions and 4678 deletions
+9 -9
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 );
MATH_FUNC (size_t) DetachShells( MbFaceShell & shell, RPArray<MbFaceShell> & parts, bool sort, c3d::IndicesVector * partIndices = nullptr );
//------------------------------------------------------------------------------
@@ -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 );
MATH_FUNC (size_t) DetachShells( MbFaceShell & shell, c3d::ShellsVector & parts, bool sort, c3d::IndicesVector * partIndices = nullptr );
//------------------------------------------------------------------------------
@@ -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 );
MATH_FUNC (size_t) DetachShells( MbFaceShell & shell, c3d::ShellsSPtrVector & parts, bool sort, c3d::IndicesVector * partIndices = nullptr );
//------------------------------------------------------------------------------
@@ -153,7 +153,7 @@ size_t CreateShells( const MbFaceShell & shell, ShellsVector & parts, bool sort
{
c3d::ShellSPtr outer( new MbFaceShell( shell ) ); // new shell on the same faces (новая оболочка с теми же гранями)
c3d::IndicesVector * partIndices = c3d_null;
c3d::IndicesVector * partIndices = nullptr;
if ( ::DetachShells( *outer, parts, sort, partIndices ) > 0 ) {
parts.push_back( outer );
@@ -1350,13 +1350,13 @@ c3d::SolidSPtr GetTransformedSolid( c3d::SolidSPtr & solid, MbeCopyMode & copyMo
{
c3d::SolidSPtr resSolid( solid );
if ( (resSolid != c3d_null) && !matr.IsSingle() ) {
if ( (resSolid != nullptr) && !matr.IsSingle() ) {
MbSNameMaker n( transformedMainName, MbSNameMaker::i_SideNone, 0 );
MbSolid * resSolidPtr = c3d_null;
MbSolid * resSolidPtr = nullptr;
TransformValues tv( matr );
::TransformedSolid( *solid, cm_Copy, tv, n, resSolidPtr );
if ( resSolidPtr != c3d_null ) {
if ( resSolidPtr != nullptr ) {
resSolid = resSolidPtr;
copyMode = cm_Same;
}
@@ -1380,10 +1380,10 @@ c3d::SolidSPtr GetTransformedSolid( c3d::SolidSPtr & solid, MbeCopyMode & copyMo
*/
// ---
template <class Item>
SPtr<Item> GetTransformedItem( SPtr<Item> & item, const MbMatrix3D & matr, MbRegDuplicate * iDupReg = c3d_null, MbRegTransform * iTransReg = c3d_null )
SPtr<Item> GetTransformedItem( SPtr<Item> & item, const MbMatrix3D & matr, MbRegDuplicate * iDupReg = nullptr, MbRegTransform * iTransReg = nullptr )
{
SPtr<Item> resItem( item );
if ( (resItem != c3d_null) && !matr.IsSingle() ) {
if ( (resItem != nullptr) && !matr.IsSingle() ) {
resItem = static_cast<Item *>( &item->Duplicate( iDupReg ) );
resItem->Transform( matr, iTransReg );
}
+69 -78
View File
@@ -60,7 +60,7 @@ typedef void( *SurfaceFunction )( const MbSurface & surf, // Поверхно
MATH_FUNC( void ) MinSurfaceCurvature( const MbSurface & surf,
const MbCartPoint & pnt,
double & func,
MbVector * der = c3d_null );
MbVector * der = nullptr );
//------------------------------------------------------------------------------
@@ -81,7 +81,7 @@ MATH_FUNC( void ) MinSurfaceCurvature( const MbSurface & surf,
MATH_FUNC( void ) MaxSurfaceCurvature( const MbSurface & surf,
const MbCartPoint & pnt,
double & func,
MbVector * der = c3d_null );
MbVector * der = nullptr );
//------------------------------------------------------------------------------
@@ -102,7 +102,7 @@ MATH_FUNC( void ) MaxSurfaceCurvature( const MbSurface & surf,
MATH_FUNC( void ) GaussCurvature( const MbSurface & surf,
const MbCartPoint & pnt,
double & func,
MbVector * der = c3d_null );
MbVector * der = nullptr );
//------------------------------------------------------------------------------
@@ -123,7 +123,7 @@ MATH_FUNC( void ) GaussCurvature( const MbSurface & surf,
MATH_FUNC( void ) MeanCurvature( const MbSurface & surf,
const MbCartPoint & pnt,
double & func,
MbVector * der = c3d_null );
MbVector * der = nullptr );
//------------------------------------------------------------------------------
@@ -144,7 +144,7 @@ MATH_FUNC( void ) MeanCurvature( const MbSurface & surf,
MATH_FUNC( void ) UNormalCurvature( const MbSurface & surf,
const MbCartPoint & pnt,
double & func,
MbVector * der = c3d_null );
MbVector * der = nullptr );
//------------------------------------------------------------------------------
@@ -165,7 +165,7 @@ MATH_FUNC( void ) UNormalCurvature( const MbSurface & surf,
MATH_FUNC( void ) VNormalCurvature( const MbSurface & surf,
const MbCartPoint & pnt,
double & func,
MbVector * der = c3d_null );
MbVector * der = nullptr );
//------------------------------------------------------------------------------
@@ -322,7 +322,7 @@ MATH_FUNC( void ) FacesMinMaxCurvature( const RPArray<MbFace> & faces,
*/
MATH_FUNC( double ) CurveOrientedCurvature( const MbCurve3D & curve,
double & param,
const MbVector3D * planeNorm = c3d_null );
const MbVector3D * planeNorm = nullptr );
//------------------------------------------------------------------------------
@@ -359,10 +359,10 @@ MATH_FUNC( void ) CurveMinMaxCurvature( const MbCurve3D & curve,
double & maxParam,
double & minCurv,
double & minParam,
c3d::DoubleVector * bendPoints = c3d_null,
c3d::DoubleVector * maxPoints = c3d_null,
c3d::DoubleVector * minPoints = c3d_null,
c3d::DoublePairsVector * rapPoints = c3d_null );
c3d::DoubleVector * bendPoints = nullptr,
c3d::DoubleVector * maxPoints = nullptr,
c3d::DoubleVector * minPoints = nullptr,
c3d::DoublePairsVector * rapPoints = nullptr );
//------------------------------------------------------------------------------
@@ -407,12 +407,14 @@ protected:
private:
const MbSNameMaker & snMaker; ///< \ru Именователь с версией операции. \en Names maker with operation version.
public:
/** \brief \ru Конструктор.
\en Constructor. \~
\details \ru Конструктор по параметрам.
/** \brief \ru Конструктор по параметрам.
\en Constructor by parameters. \~
\details \ru Конструктор по кривой пересечения.
\en Constructor by . \~
\param[in] intCrv - \ru Кривая пересечения поверхностей.
\en Surfaces intersection curve. \~
\param[in] nm - \ru Именователь с версией операции.
\en Names maker with operation version. \~
*/
MbNormalsMinMaxAnglesParams( const MbSurfaceIntersectionCurve & intCrv, const MbSNameMaker & nm )
: intCurve ( &intCrv )
@@ -422,75 +424,53 @@ public:
, calcMode ( om_FuncDerCos2 )
, snMaker ( nm )
{}
/** \brief \ru Конструктор.
\en Constructor. \~
\details \ru Конструктор по параметрам.
/** \brief \ru Конструктор по параметрам.
\en Constructor by parameters. \~
\param[in] intCrv - \ru Кривая пересечения поверхностей.
\en Surfaces intersection curve. \~
\details \ru Конструктор по ребру.
\en Constructor by edge. \~
\param[in] edge - \ru Ребро.
\en Edge. \~
\param[in] nm - \ru Именователь с версией операции.
\en Names maker with operation version. \~
*/
MbNormalsMinMaxAnglesParams( const MbCurveEdge & edge, const MbSNameMaker & nm )
: intCurve ( &edge.GetIntersectionCurve() )
, sameSense1( true )
, sameSense2( true )
, dirMatch ( ts_neutral )
, calcMode ( om_FuncDerCos2 )
, snMaker ( nm )
{
Init( edge );
}
/** \brief \ru Конструктор по параметрам.
\en Constructor by parameters. \~
\details \ru Конструктор по двум ребрам.
\en Constructor by two edges. \~
\param[in] edge1 - \ru Ребро 1.
\en Edge 1. \~
\param[in] edge2 - \ru Ребро 2.
\en Edge 2. \~
\param[in] аccuracy - \ru Заявленная точность совпадения ребер.
\en Claimed edges matching accuracy. \~
\param[in] nm - \ru Именователь с версией операции.
\en Names maker with operation version. \~
*/
MbNormalsMinMaxAnglesParams( const MbCurveEdge & edge1, const MbFace & face1,
const MbCurveEdge & edge2, const MbFace & face2,
double accuracy, const MbSNameMaker & nm )
: intCurve ( nullptr )
, sameSense1( true )
, sameSense2( true )
, dirMatch ( ts_neutral )
, calcMode ( om_FuncDerCos2 )
, snMaker ( nm )
{
const MbSurface & surface1 = intCurve->GetCurveOneSurface().GetSurface();
const MbSurface & surface2 = intCurve->GetCurveTwoSurface().GetSurface();
const MbFace * fp = edge.GetFacePlus();
const MbFace * fm = edge.GetFaceMinus();
if ( fp != c3d_null && fm != c3d_null ) {
const MbSurface & sp = fp->GetSurface().GetSurface();
const MbSurface & sm = fm->GetSurface().GetSurface();
if ( &sp == &surface1 && &sm == &surface2 ) {
sameSense1 = fp->IsSameSense();
sameSense2 = fm->IsSameSense();
dirMatch = ts_positive;
}
else if ( &sp == &surface2 && &sm == &surface1 ) {
sameSense1 = fm->IsSameSense();
sameSense2 = fp->IsSameSense();
dirMatch = ts_negative;
}
else {
intCurve = c3d_null; // parameter error
}
}
else if ( (fp != c3d_null) || (fm != c3d_null) ) {
const MbFace * f = (fp != c3d_null) ? fp : fm;
const MbSurface & s = f->GetSurface().GetSurface();
if ( &s == &surface1 && &s == &surface2 ) {
sameSense1 = f->IsSameSense();
sameSense2 = sameSense1;
dirMatch = ts_positive;
}
else if ( &s == &surface1 ) {
const MbCurve & pCurve1 = intCurve->GetCurveOneCurve();
intCurve = new MbSurfaceIntersectionCurve( surface1, pCurve1, surface1, pCurve1, cbt_Boundary, true, true );
sameSense1 = f->IsSameSense();
sameSense2 = sameSense1;
dirMatch = ts_positive;
}
else if ( &s == &surface2 ) {
const MbCurve & pCurve2 = intCurve->GetCurveOneCurve();
intCurve = new MbSurfaceIntersectionCurve( surface2, pCurve2, surface2, pCurve2, cbt_Boundary, true, true );
sameSense1 = f->IsSameSense();
sameSense2 = sameSense1;
dirMatch = ts_negative;
}
else {
intCurve = c3d_null; // parameter error
}
}
Init( edge1, face1, edge2, face2, accuracy );
}
public:
/// \ru Есть ли кривая пересечения? \en Does an intersection curve exist?
bool IsCurve() const { return (intCurve != c3d_null); }
bool IsCurve() const { return (intCurve != nullptr); }
/// \ru Получить кривую пересечения? \en Get intersection curve.
c3d::ConstIntersectionCurveSPtr GetCurve() const { return intCurve; }
/// \ru Признак совпадения нормали первой поверхности и грани. \en The flag of the coincidence of the normal of the first surface and the corresponding face .
@@ -502,6 +482,14 @@ public:
/// \ru Получить ссылку на именователь. \en Get names maker reference.
const MbSNameMaker & GetNameMaker() const { return snMaker; }
private:
/// \ru Инциализация по ребру. \en Initialize by edge.
bool Init( const MbCurveEdge & );
/// \ru Инциализация по двум ребрам. \en Initialize by edges pair.
bool Init( const MbCurveEdge & edge1, const MbFace & face1,
const MbCurveEdge & edge2, const MbFace & face2,
double edgesMatchingAccuracy );
OBVIOUS_PRIVATE_COPY( MbNormalsMinMaxAnglesParams)
};
@@ -524,12 +512,12 @@ public:
double a; ///< \ru Угол между нормалями поверхностей в кривой пересечения. \en Angle between surfaces normals in the intersection curve.
ThreeStates isMin; ///< \ru Локальный минимум, максимум или неопределенное состояние. \en Local minimum, maximum or undefined state.
public:
Data() : t( UNDEFINED_DBL ), f( UNDEFINED_DBL ), a( UNDEFINED_DBL ), isMin( ts_neutral ) {}
Data( double f0 ) : t( UNDEFINED_DBL ), f( f0 ), a( UNDEFINED_DBL ), isMin( ts_neutral ) {}
Data( double t0, double f0 ) : t( t0 ), f( f0 ), a( UNDEFINED_DBL ), isMin( ts_neutral ) {}
Data( double t0, double f0, double a0 ) : t( t0 ), f( f0 ), a( a0 ), isMin( ts_neutral ) {}
Data( double t0, double f0, double a0, ThreeStates s ) : t( t0 ), f( f0 ), a( a0 ), isMin( s ) {}
Data( const Data & d ) : t( d.t ), f( d.f ), a( d.a ), isMin( d.isMin ) {}
Data() : t( UNDEFINED_DBL ), f( UNDEFINED_DBL ), a( UNDEFINED_DBL ), isMin( ts_neutral ) {}
Data( double f0 ) : t( UNDEFINED_DBL ), f( f0 ), a( UNDEFINED_DBL ), isMin( ts_neutral ) {}
Data( double t0, double f0 ) : t( t0 ), f( f0 ), a( UNDEFINED_DBL ), isMin( ts_neutral ) {}
Data( double t0, double f0, double a0 ) : t( t0 ), f( f0 ), a( a0 ), isMin( ts_neutral ) {}
Data( double t0, double f0, double a0, ThreeStates s ) : t( t0 ), f( f0 ), a( a0 ), isMin( s ) {}
Data( const Data & d ) : t( d.t ), f( d.f ), a( d.a ), isMin( d.isMin ) {}
public:
const Data & operator = ( const Data & d ) { t = d.t; f = d.f; a = d.a; isMin = d.isMin; return *this; }
public:
@@ -542,13 +530,16 @@ public:
Data minParamValue; ///< \ru Глобальный минимальный угол. \en Global minimum angle.
Data maxParamValue; ///< \ru Глобальный максимальный угол. \en Global maximum angle.
MbResultType resType; ///< \ru Код результата операции. \en Operation result code.
public:
/// \ru Конструктор. \en Constructor.
MbNormalsMinMaxAnglesResults() : allParamValues(), minParamValues(), maxParamValues(), minParamValue( MB_MAXDOUBLE ), maxParamValue( -MB_MAXDOUBLE ) {}
public:
/// \ru Определен ли глобальный минимум. \en Whether a global minimum value is defined.
bool IsDefinedMinValue() const;
/// \ru Определен ли глобальный максимум. \en Whether a global maximum value is defined.
bool IsDefinedMaxValue() const;
/// \ru Очистка данных. \en Data cleaning.
void Clear() { allParamValues.clear(); minParamValues.clear(); maxParamValues.clear(); minParamValue.Reset(); maxParamValue.Reset(); }
void Clear() { allParamValues.clear(); minParamValues.clear(); maxParamValues.clear(); minParamValue.Reset(); maxParamValue.Reset(); }
OBVIOUS_PRIVATE_COPY( MbNormalsMinMaxAnglesResults )
};
+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 Возвращает указатель на поверхность для сегмента, если поверхность определена, иначе - c3d_null.
\en Returns pointer to segment surface if it exists, else - c3d_null. \~
\return \ru Возвращает указатель на поверхность для сегмента, если поверхность определена, иначе - nullptr.
\en Returns pointer to segment surface if it exists, else - nullptr. \~
\ingroup Polygonal_Objects
*/
virtual const MbSurface * GetSegmentSurface( size_t idxSegment ) const = 0;
+26 -6
View File
@@ -443,7 +443,7 @@ MATH_FUNC (MbCurve *) DuplicateCurve( const MbCurve & curve, VERSION version = M
DEPRECATE_DECLARE
MATH_FUNC (MbContour *) DuplicateContour( const MbContour & cntr,
bool modifySegments,
MbSNameMaker * names = c3d_null );
MbSNameMaker * names = nullptr );
//------------------------------------------------------------------------------
@@ -469,7 +469,7 @@ MATH_FUNC (MbContour *) DuplicateContour( const MbContour & cntr,
MATH_FUNC (MbContour *) DuplicateContour( const MbContour & cntr,
bool modifySegments,
VERSION version,
MbSNameMaker * names = c3d_null );
MbSNameMaker * names = nullptr );
//------------------------------------------------------------------------------
@@ -593,13 +593,15 @@ MATH_FUNC (bool) CurveTrim( MbCurve & curve,
Если toEnd == false, то добавить в начало. \n
\en Add a curve to a composite curve (a contour) 'contour'. \n
If toEnd == true, the curve is to be added to the end. \n
If toEnd == true, the curve is to be added to the beginning. \n \~
If toEnd == false, the curve is to be added to the beginning. \n \~
\param[in] curve - \ru Добавляемая кривая
\en A curve to be added. \~
\param[in,out] contour - \ru Модифицируемый контур.
\en A contour to be modified. \~
\param[in] toEnd - \ru Флаг места добавления кривой.
\en The flag determines the place of the curve in the contour. \~
\param[in] epsilon - \ru Близость точек стыка при добавлении кривой.
\en The Proximity of the junction points. \~
\return \ru Возвращает код результата операции.
\en Returns operation result code. \~
\ingroup Curve_Modeling
@@ -607,7 +609,25 @@ MATH_FUNC (bool) CurveTrim( MbCurve & curve,
//---
MATH_FUNC (MbResultType) AddCurveToContour( MbCurve & curve,
MbContour & contour,
bool toEnd );
bool toEnd,
double epsilon = METRIC_REGION );
//------------------------------------------------------------------------------
/** \brief \ru Создать контур из кривых.
\en Create a contour by curves. \~
\details \ru В контур будут добавлены кривые curves, возможно инвертирование направления некоторых кривых. Неиспользованные кривые будут удалены. \n
\en Curves will be added to the contour, it is possible to invert the direction of some curves. Unused curves will be deleted. \n
\param[in] curve - \ru Кривые для построения контура.
\en Curves of the contour. \~
\param[in] accuracy - \ru Максимальное расстояние точек сегментов в стыке.
\en The maximum distance of segment points at the junction. \~
\return \ru Возвращает контур или nullptr.
\en Returns contour or nullptr. \~
\ingroup Curve_Modeling
*/
//---
MATH_FUNC (MbContour *) CreateContour( std::vector<MbCurve *> & curves, double accuracy );
//------------------------------------------------------------------------------
@@ -802,7 +822,7 @@ MATH_FUNC (bool) IsLikeStraightLine( const MbCurve & curve, double eps );
DEPRECATE_DECLARE
MATH_FUNC( MbContour * ) DeleteDegenerateSegments( const MbContour & cntr,
bool modifySegments,
MbSNameMaker * names = c3d_null );
MbSNameMaker * names = nullptr );
//------------------------------------------------------------------------------
/** \brief \ru Удалить вырожденные сегменты из контура.
@@ -825,7 +845,7 @@ MATH_FUNC( MbContour * ) DeleteDegenerateSegments( const MbContour & cntr,
MATH_FUNC( MbContour * ) DeleteDegenerateSegments( const MbContour & cntr,
bool modifySegments,
VERSION verison,
MbSNameMaker * names = c3d_null );
MbSNameMaker * names = nullptr );
//------------------------------------------------------------------------------
+33 -5
View File
@@ -35,6 +35,8 @@ class MATH_CLASS MbWireFrame;
class MATH_CLASS MbItem;
class MATH_CLASS MbName;
class MATH_CLASS MbSweptData;
class MATH_CLASS MbCurveExtensionParameters;
class MATH_CLASS MbSNameMaker;
struct MATH_CLASS EvolutionValues;
@@ -283,11 +285,11 @@ MATH_FUNC (MbResultType) SpiralCurve( const MbPlacement3D & place,
\details \ru Создать спираль. \n
Если spiralAxis == true, то lawCurve - определяет плоскую ось спирали. \n
Если spiralAxis == false, то lawCurve - определяет закон изменения радиуса спирали. \n
Если lawCurve == c3d_null, то строится коническая спираль с углом конусности angle. \n
Если lawCurve == nullptr, то строится коническая спираль с углом конусности 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 == c3d_null, a conical spiral is created with the specified taper angle. \n \~
If lawCurve == nullptr, 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 ЛСК.
@@ -644,7 +646,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 = c3d_null );
std::vector< SPtr<MbCurve3D> > * curves = nullptr );
//-------------------------------------------------------------------------------
@@ -666,9 +668,9 @@ MATH_FUNC (bool) GetSpaceCurve( const MbItem & item,
\param[in] deviationAngle - \ru Параметру точности.
\en The parameter of accuracy. \~
\return \ru Возвращает указатель на построенную кривую с нулевум счетчиком ссылок \n
или c3d_null, если не удалось построить развертку для заданных параметров.
или nullptr, если не удалось построить развертку для заданных параметров.
\en The pointer to the constructed curve with zero counter of references\n
return c3d_null, if unwrap curve can't be construvted for this parameters
return nullptr, if unwrap curve can't be construvted for this parameters
\ingroup Curve3D_Modeling
*/
// ---
@@ -1362,4 +1364,30 @@ MATH_FUNC ( MbCurve3D * ) SetProportionalParametrization( MbCurve3D * curve,
double tMin, double tMax);
//------------------------------------------------------------------------------
/** \brief \ru Продлить заданную кривую.
\en Extend the given curve. \~
\details \ru Продлить заданную кривую в соответствии с заданными параметрами. \n
\en Extend the given curve according to the given parameters. \~ \n
\param[in] sourceCurve - \ru Исходная (удлиняемая) кривая.
\en Source (extended) curve. \~
\param[in] parameters - \ru Параметры продления.
\en Parameters of extension. \~
\param[in] snMaker - \ru Именователь построенного ребра.
\en An object defining the edges names. \~
\param[out] resFrame - \ru Результирующая кривая внутри каркаса.
\en Result curve in the wire-frame. \~
\return \ru Возвращает код результата операции. В случае успеха всегда вернется ненулевая кривая (возможно, она будет совпадать с исходной кривой).
\en Returns the code of the operation result. In case of success, the result curve cannot be nullptr (it will be possibly the same as the source one).
\ingroup Curve3D_Modeling
\warning \ru В разработке.
\en Under development. \~
*/
// ---
MATH_FUNC( MbResultType ) ExtendCurve( const MbCurve3D & sourceCurve,
const MbCurveExtensionParameters & parameters,
const MbSNameMaker & snMaker,
MbWireFrame *& resFrame );
#endif // __ACTION_CURVE3D_H
+39 -3
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 Двумерный объект (если c3d_null, то объект не создаётся).
\en Two-dimensional object (if c3d_null, object isn't created). \~
\param[in] obj - \ru Двумерный объект (если nullptr, то объект не создаётся).
\en Two-dimensional object (if nullptr, object isn't created). \~
\param[in] plane - \ru Локальная система координат.
\en A local coordinate system. \~
\param[in] sag - \ru Максимальное отклонение полигонального объекта от оригинала по прогибу.
@@ -417,10 +417,31 @@ MATH_FUNC( MbResultType ) MeshMeshIntersection( const MbMesh & mesh1,
const MbMesh & mesh2,
std::vector< SPtr<MbCurve3D> > & polylines );
//------------------------------------------------------------------------------
/** \brief \ru Создать полигональный объект булевой операции.
\en Create a polygon object of Boolean operation. \~
\details \ru Построить полигональный объект как результат булевой операции над полигональными объектами.
\en Create a polygon object as a result of Boolean operation on the given polygon objects.
\param[in] mesh1 - \ru Первый полигональный объект.
\en The first polygon object. \~
\param[in] mesh1 - \ru Второй полигональный объект.
\en The second polygon object. \~
\param[in] operation - \ru Тип булевой операции.
\en A Boolean operation type. \~
\param[out] newMesh - \ru Построенный полигональный объект.
\en Constructed polygon object. \~
\result \ru Возвращает код результата операции.
\en Returns the operation result code. \~
\ingroup Model_Creators
*/
// ---
MATH_FUNC( MbResultType ) CreateBoolean( const MbMesh & mesh1, const MbMesh & mesh2,
OperationType operation,
SPtr<MbMesh> & newMesh );
//------------------------------------------------------------------------------
/** \brief \ru Построить триангуляцию по облаку точек на основе алгоритма поворотного шара.
\en Build a triangulation by point cloud with Ball Pivoting algorithm. \~
\en Build a triangulation by point cloud with Ball Pivoting algorithm. \~
\param[in] collection - \ru Коллекция трехмерных элементов.
\en Collection of 3d elements. \~
\param[in] radius - \ru Радиус поворотного шара, если radius==0 будет предпринята попытка его автоопределения.
@@ -442,4 +463,19 @@ MATH_FUNC (MbResultType) CalculateBallPivotingGrid( const MbCollection & collect
double angle,
MbMesh *& result );
//------------------------------------------------------------------------------
/** \brief \ru Исправить несовместную ориентацию полигонов сетки по отношению друг к другу.
\en Repair inconsistent orientation of mesh polygons with respect to each other. \~
\param[out] result - \ru Полигональный объект.
\en The polygonal object. \~
\return \ru Возвращает код результата операции.
\en Returns operation result code. \~
\ingroup Polygonal_Objects
\warning \ru В разработке.
\en Under development. \~
*/
// ---
MATH_FUNC (MbResultType) RepairInconsistentMesh( MbMesh & mesh );
#endif // __ACTION_MESH_H
+3 -3
View File
@@ -184,7 +184,7 @@ MATH_FUNC (MbResultType) OffsetPhantom( const MbSolid & solid,
const SweptValues & params,
const MbSNameMaker & operNames,
MbFaceShell *& result,
size_t * hpShellFaceInd = c3d_null ); // \ru Номер грани в исходной оболочки для построения хот-точки); \en The face number in the initial shell for a hot-point creation);
size_t * hpShellFaceInd = nullptr ); // \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 = c3d_null );
const MbCurveEdge * dimensionEdge = nullptr );
//------------------------------------------------------------------------------
@@ -293,7 +293,7 @@ MATH_FUNC (MbResultType) SmoothPositionData( const MbSolid & sol
const SmoothValues & params,
RPArray<MbPositionData> & result,
double edgeParam = 0.5,
const MbCurveEdge * dimensionEdge = c3d_null );
const MbCurveEdge * dimensionEdge = nullptr );
//------------------------------------------------------------------------------
+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 Возвращает массив элементов, если он создан, или c3d_null в противном случае.
\en Returns an array of elements if it has been created, otherwise returns c3d_null. \~
\return \ru Возвращает массив элементов, если он создан, или nullptr в противном случае.
\en Returns an array of elements if it has been created, otherwise returns nullptr. \~
\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 != c3d_null && arr->GetAddr() == c3d_null ) {
if ( arr != nullptr && arr->GetAddr() == nullptr ) {
delete arr;
arr = c3d_null;
arr = nullptr;
}
if ( arr == c3d_null )
if ( arr == nullptr )
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() == c3d_null ) {
if ( arr.GetAddr() == nullptr ) {
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() == c3d_null ) {
if ( arr.GetAddr() == nullptr ) {
res = rt_TooManyPoints;
return false;
}
+25 -1
View File
@@ -640,7 +640,7 @@ MATH_FUNC (MbResultType) UnbendSheetSolid( MbSolid & sol
const MbCartPoint & fixedPoint,
const MbSNameMaker & nameMaker,
MbSolid *& result,
RPArray<MbContour3D> * ribContours = c3d_null );
RPArray<MbContour3D> * ribContours = nullptr );
//------------------------------------------------------------------------------
@@ -1033,6 +1033,30 @@ MATH_FUNC(MbResultType) CreateStampWithToolSolidParts( MbSolid &
MbSolid * & partsToSubtract );
//------------------------------------------------------------------------------
/** \brief \ru Нормализовать кромки выреза листового тела.
\en Normalize cut sides of the sheet solid. \~
\details \ru Нормализовать кромки выреза листового тела. \n
\en Normalize cut sides of the sheet solid. \n \~
\param[in] solid - \ru Исходное тело.
\en The source solid. \~
\param[in] sameShell - \ru Флаг удаления оболочки исходного тела.
\en Whether to delete the shell of the source solid. \~
\param[in] nameMaker - \ru Именователь.
\en An object for naming the new objects. \~
\param[out] result - \ru Результирующее тело.
\en The resultant solid. \~
\result \ru - Код результата операции.
\en - The operation result code. \~
\ingroup Sheet_Metal_Modeling
*/
// ---
MATH_FUNC(MbResultType) NormalizeCutSides ( MbSolid & solid,
MbeCopyMode sameShell,
const MbSNameMaker & nameMaker,
MbSolid *& result );
//------------------------------------------------------------------------------
/** \brief \ru Штамповка.
\en Stamping. \~
+20 -20
View File
@@ -180,7 +180,7 @@ MATH_FUNC (MbResultType) MeshSolid( const MbMesh & mesh,
const GridsToShellValues & params,
const MbSNameMaker & names,
MbSolid *& result,
IProgressIndicator * prog = c3d_null );
IProgressIndicator * prog = nullptr );
//------------------------------------------------------------------------------
@@ -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 = c3d_null );
IProgressIndicator * prog = nullptr );
//------------------------------------------------------------------------------
@@ -227,7 +227,7 @@ MATH_FUNC (MbResultType) GridSolid( const MbGrid & grid,
const GridsToShellValues & params,
const MbSNameMaker & names,
MbSolid *& result,
IProgressIndicator * prog = c3d_null );
IProgressIndicator * prog = nullptr );
//------------------------------------------------------------------------------
@@ -249,7 +249,7 @@ MATH_FUNC (MbResultType) GridSolid( const MbGrid & grid,
MATH_FUNC (MbResultType) CollectionSolid( const MbCollection & grid,
const MbSNameMaker & names,
MbSolid *& result,
IProgressIndicator * progBar = c3d_null );
IProgressIndicator * progBar = nullptr );
//------------------------------------------------------------------------------
@@ -636,8 +636,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 Направляющая кривая (может быть c3d_null).
\en A guide curve (can be c3d_null). \~
\param[in] spine - \ru Направляющая кривая (может быть nullptr).
\en A guide curve (can be nullptr). \~
\param[in] params - \ru Параметры операции.
\en The operation parameters. \~
\param[in] ps - \ru Множество точек на образующих контурах, задающий их начальные точки.
@@ -672,8 +672,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 Осевая кривая (может быть c3d_null).
\en A guide curve (can be c3d_null). \~
\param[in] spine - \ru Осевая кривая (может быть nullptr).
\en A guide curve (can be nullptr). \~
\param[in] params - \ru Параметры операции.
\en The operation parameters. \~
\param[in] guideCurves - \ru Множество направляющих кривых, задающих траектории соответствующих точек контуров.
@@ -693,7 +693,7 @@ MATH_FUNC (MbResultType) LoftedSolid( SArray<MbPlacement3D> & pl,
// ---
MATH_FUNC (MbResultType) LoftedSolid( SArray<MbPlacement3D> & pl,
RPArray<MbContour> & c,
const MbCurve3D * spine, // осевая линия может быть c3d_null
const MbCurve3D * spine, // осевая линия может быть nullptr
const LoftedValues & params,
RPArray<MbCurve3D> * guideCurves,
SArray<MbCartPoint3D> * ps,
@@ -711,8 +711,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 Осевая кривая (может быть c3d_null).
\en A guide curve (can be c3d_null). \~
\param[in] spine - \ru Осевая кривая (может быть nullptr).
\en A guide curve (can be nullptr). \~
\param[in] params - \ru Параметры операции.
\en The operation parameters. \~
\param[in] guideCurves - \ru Множество направляющих кривых, задающих траектории соответствующих точек контуров.
@@ -732,7 +732,7 @@ MATH_FUNC (MbResultType) LoftedSolid( SArray<MbPlacement3D> & pl,
// ---
MATH_FUNC (MbResultType) LoftedSolid( RPArray<MbSurface> & surfs,
RPArray<MbContour> & c,
const MbCurve3D * spine, // осевая линия может быть c3d_null
const MbCurve3D * spine, // осевая линия может быть nullptr
const LoftedValues & params,
RPArray<MbCurve3D> * guideCurves,
SArray<MbCartPoint3D> * ps,
@@ -967,8 +967,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 Направляющая кривая (может быть c3d_null).
\en A guide curve (can be c3d_null). \~
\param[in] spine - \ru Направляющая кривая (может быть nullptr).
\en A guide curve (can be nullptr). \~
\param[in] params - \ru Параметры операции.
\en The operation parameters. \~
\param[in] oType - \ru Тип булевой операции.
@@ -1020,8 +1020,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 Осевая кривая (может быть c3d_null).
\en A guide curve (can be c3d_null). \~
\param[in] spine - \ru Осевая кривая (может быть nullptr).
\en A guide curve (can be nullptr). \~
\param[in] params - \ru Параметры операции.
\en The operation parameters. \~
\param[in] oType - \ru Тип булевой операции.
@@ -1989,7 +1989,7 @@ MATH_FUNC (MbResultType) UnionResult( MbSolid * solid,
const MbSNameMaker & names,
bool isArray,
MbSolid *& result,
RPArray<MbSolid> * notGluedSolids = c3d_null );
RPArray<MbSolid> * notGluedSolids = nullptr );
//------------------------------------------------------------------------------
@@ -2032,7 +2032,7 @@ MATH_FUNC (MbResultType) UnionSolid( RPArray<MbSolid> & solids,
const MbSNameMaker & names,
bool isArray,
MbSolid *& result,
RPArray<MbSolid> * notGluedSolids = c3d_null );
RPArray<MbSolid> * notGluedSolids = nullptr );
//------------------------------------------------------------------------------
@@ -2392,8 +2392,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==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 \~
\details \ru Cоздать отверстие, карман, фигурный паз в теле или создать cверло, бобышку, если solid==nullptr. \n
\en Create a hole, a pocket, a groove in the solid or create a drill, a boss if 'solid' == nullptr. \n \~
\param[in] solid - \ru Исходное тело.
\en The source solid. \~
\param[in] sameShell - \ru Режим копирования тела.
+19 -21
View File
@@ -694,28 +694,26 @@ MATH_FUNC (MbResultType) TriBezierSurface( ptrdiff_t k,
\en Create a triangular B-spline surface. \~
\details \ru Создать треугольную В-сплайн поверхность по 3 точкам. \n
\en Create a triangular B-spline surface from three points. \n \~
\param[in] p0 - \ru Первая точка.
\en The first point. \~
\param[in] p1 - \ru Вторая точка.
\en The second point. \~
\param[in] p2 - \ru Третья точка.
\en The third point. \~
\param[in] d - \ru Порядок поверхности.
\en The surface order. \~
\param[out] resSurface - \ru Треугольная В-сплайн поверхность.
\en The triangular B-spline surface. \~
\param[in] surface - \ru Исходная поверхность.
\en The initial surface. \~
\param[in] degree - \ru Порядок поверхности.
\en The surface order. \~
\param[in] uCount - \ru Число элементов вдоль первого направления.
\en The elements count along first direction. \~
\param[in] vCount - \ru Число элементов вдоль второго направления.
\en The elements count along second direction. \~
\param[out] result - \ru Симплексная поверхность.
\en The simplex surface. \~
\result \ru Возвращает код результата операции.
\en Returns operation result code. \~
\ingroup Surface_Modeling
*/
// ---
MATH_FUNC (MbResultType) TriSplineSurface( const MbCartPoint3D & p0,
const MbCartPoint3D & p1,
const MbCartPoint3D & p2,
const MbCartPoint3D & p3,
ptrdiff_t d,
ptrdiff_t count,
MbSurface *& resSurface );
MATH_FUNC (MbResultType) SimplexSurface( const MbSurface & surface,
size_t degree,
size_t uCount,
size_t vCount,
MbSurface *& result );
//------------------------------------------------------------------------------
@@ -723,10 +721,10 @@ MATH_FUNC (MbResultType) TriSplineSurface( const MbCartPoint3D & p0,
\en Create a characteristic polyline of a spline surface. \~
\details \ru Построить характеристическую ломаную сплайновой поверхности. \n
Функция работает с поверхностями типа st_SplineSurface, st_HermitSurface,
st_TriBezierSurface, st_TriSplineSurface. \n
st_TriBezierSurface, st_SimplexSurface. \n
\en Create a characteristic polyline of a spline surface. \n
The function accepts the surfaces of types st_SplineSurface, st_HermitSurface,
st_TriBezierSurface, st_TriSplineSurface. \n \~
st_TriBezierSurface, st_SimplexSurface. \n \~
\param[in] surf - \ru Поверхность.
\en The surface. \~
\param[out] segments - \ru Сегменты характеристической ломаной.
@@ -798,8 +796,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 Дополнительная направляющая кривая (может быть c3d_null).
\en The additional guide curve (may be c3d_null). \~
\param[in] c0 - \ru Дополнительная направляющая кривая (может быть nullptr).
\en The additional guide curve (may be nullptr). \~
\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).
+47 -23
View File
@@ -224,8 +224,8 @@ MATH_FUNC (MbResultType) OffsetCurve( const MbCurve3D & curve,
//------------------------------------------------------------------------------
/** \brief \ru Создать проекцию кривой на поверхность.
\en Create a curve projection onto the surface. \~
\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 \~
\details \ru Создать проекцию кривой curve на поверхность surface (направление проецирования direction может быть nullptr). \n
\en Create the projection of a curve onto surface 'surface' (the projection direction 'direction' can be nullptr). \n \~
\param[in] surface - \ru Поверхность для проецирования.
\en The surface to project onto. \~
\param[in] curve - \ru Проецируемая кривая.
@@ -257,8 +257,8 @@ MATH_FUNC (MbResultType) CurveProjection( const MbSurface & surface,
//------------------------------------------------------------------------------
/** \brief \ru Создать проекцию кривой на поверхность.
\en Create a curve projection onto the surface. \~
\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 \~
\details \ru Создать проекцию кривой curve на поверхность surface (направление проецирования direction может быть nullptr). \n
\en Create the projection of a curve onto surface 'surface' (the projection direction 'direction' can be nullptr). \n \~
\param[in] surface - \ru Поверхность для проецирования.
\en The surface to project onto. \~
\param[in] curve - \ru Проецируемая кривая.
@@ -1159,7 +1159,7 @@ MATH_FUNC (MbResultType) ConnectingSpline( const MbCurve3D & curve1, double t1,
что начало кривой сопряжения будет находится в точке с параметором t1,
t1 и t2 - параметры кривых curve1 и curve2, в соответствующих точках которых начинается и заканчивается скругление. \n
Параметр sense - прямое или обратное направление кривой скругления. \n
Кривая filletCurve - это кривая сопряжения, дуга (когда surface == c3d_null) или кривая на поверхности цилиндра surface. \n
Кривая filletCurve - это кривая сопряжения, дуга (когда surface == nullptr) или кривая на поверхности цилиндра surface. \n
Поверхность surface - это цилиндрическая поверхность, на которой строится кривая сопряжения в общем случае.
Для управления жизненным циклом поверхномти следует миспользовать методы ::AddRefItem(surface) и ::ReleaseItem(surface). \n
\en Create a fillet curve for curves. \n
@@ -1175,7 +1175,7 @@ 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' == c3d_null) or a curve on a cylindric surface 'surface'. \n
Curve filletCurve is a fillet curve, an arc (when 'surface' == nullptr) 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.
@@ -1200,8 +1200,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 Поверхность, которая будет создана и на которой базируется соединительная кривая, (может быть возращён 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] surface - \ru Поверхность, которая будет создана и на которой базируется соединительная кривая, (может быть возращён nullptr).
\en A surface on which the fillet curve is based on, it will be created by the method (can be nullptr). \~
\param[out] result - \ru Каркас с построенными кривыми.
\en The frame with the constructed curves. \~
\return \ru Возвращает код результата операции.
@@ -1309,29 +1309,53 @@ MATH_FUNC (MbResultType) CreateContourFillets( const MbContour3D & contour,
угол между координатными кривыми "X" на плоскости и "U" на поверхности был бы равен angle. \n
\en Construction of curves that wrap the surface, so that the point xy of the plane would be coincides with the point uv of the surface
and the angle between the coordinate curves "X" on the plane and "U" on the surface would be equal to angle. \n \~
\param[in] curves - \ru Двумерные кривые на плоскости "XY" локальной системы коорданат.
\en Two-dimensional curves on the "XY" plane of the local coordinate system. \~
\param[in] place - \ru Локальная система коорданат (ЛСК).
\en The local coordinate system (LCS). \~
\param[in] xy - \ru Точка на плоскости "XY" локальной системы координат.
\en A point on the "XY" plane of the local coordinate system. \~
\param[in] surface - \ru Поверхность.
\en The surface. \~
\param[in] uv - \ru Точка на параметрической плоскости "UV" поверхности.
\en A point on the parametric plane " UV " of the surface. \~
\param[in] angle - \ru Угол поворота плоскости "XY" ЛСК и параметрической плоскости "UV" поверхности.
\en The angle of rotation of the LSC "XY" plane and the parametric "UV" plane of the surface. \~
\param[in] sense - \ru Совпадение направлений оси "X" ЛСК и оси "U" поверхности.
\en The coincidence of the directions of the "X" axis of the LSC and the "U" axis of the surface. \~
\param[in] curves - \ru Двумерные кривые на плоскости "XY" локальной системы коорданат.
\en Two-dimensional curves on the "XY" plane of the local coordinate system. \~
\param[in] place - \ru Локальная система коорданат (ЛСК).
\en The local coordinate system (LCS). \~
\param[in] xy - \ru Точка на плоскости "XY" локальной системы координат.
\en A point on the "XY" plane of the local coordinate system. \~
\param[in] surface - \ru Поверхность.
\en The surface. \~
\param[in] uv - \ru Точка на параметрической плоскости "UV" поверхности.
\en A point on the parametric plane " UV " of the surface. \~
\param[in] angle - \ru Угол поворота плоскости "XY" ЛСК и параметрической плоскости "UV" поверхности.
\en The angle of rotation of the LSC "XY" plane and the parametric "UV" plane of the surface. \~
\param[in] sense - \ru Совпадение направлений оси "X" ЛСК и оси "U" поверхности.
\en The coincidence of the directions of the "X" axis of the LSC and the "U" axis of the surface. \~
\param[in] keepLeng - \ru Соответствует ли длина кривых оригиналам на криволинейных поверхностях?.
\en Does the curves length correspond to the originals on curved surfaces? \~
\param[out] surfaceCurves - \ru Построенные кривые на поверхности.
\en Constructed curves on the surface. \~
\return \ru true - если построение выполнено успешно, false - в противном случае. \n
\en true - if the build is successful, false - otherwise. \n
\ingroup Curve3D_Modeling
*/
// ---
MATH_FUNC (MbResultType) CurvesWrapping( const std::vector<const MbCurve *> & curves, const MbPlacement3D & place, const MbCartPoint & xy,
const MbSurface & surface, const MbCartPoint & uv, double angle, bool sense,
const MbSurface & surface, const MbCartPoint & uv, double angle, bool sense, bool keepLength,
std::vector<MbSurfaceCurve *> & surfaceCurves );
//------------------------------------------------------------------------------
/** \brief \ru Создать кривую или контур на поверхности грани по заданным рёбрам.
\en Construct a curve or contour on the surface of a face along the specified edges. \~
\details \ru Строится кривая или контур на поверхности грани по копиям соответствующих двумерных кривых, лежащих в кривых пересечения рёбер. \n
\en A curve or contour is constructed on the surface of a face based on copies of the corresponding two-dimensional curves lying in the intersection curves of edges. \n \~
\param[in] face - \ru Общая для рёбер грань.
\en The face common to the edges. \~
\param[in] edges - \ru Рёбра.
\en The edges. \~
\param[in] accuracy - \ru Максимальное расстояние точек сегментов в стыке.
\en The maximum distance of segment points at the junction. \~
\return \ru Возвращает кривую или контур на поверхности (nullptr - в случае неудачи).
\en Returns a curve or contour on a surface (nullptr - in case of failure). \~
\ingroup Curve3D_Modeling
*/
// ---
MATH_FUNC (MbCurve3D *) MakeCurveOnSurface( const MbFace & face,
const std::vector<const MbCurveEdge *> & edges,
double accuracy );
#endif // __ACTION_SURFACE_CURVE_H
+20 -1
View File
@@ -603,7 +603,7 @@ bool IsPlanar( const SpacePointsVector & pnts, MbPlacement3D * place, double mEp
}
}
}
if ( isPlanar && place != c3d_null )
if ( isPlanar && place != nullptr )
place->Init( wrkPlace );
}
}
@@ -759,6 +759,25 @@ template <class DoubleParamsVector>
MATH_FUNC (void) SortArray( DoubleParamsVector & tt0, double eps, bool checkCoincidentParams );
//------------------------------------------------------------------------------
/** \brief \ru Перебросить параметр на период.
\en Re-roll the parameter for a period. \~
\details \ru Перебросить параметр на период. Переброс происходит в сторону начального приближения.
\en Re-roll the parameter for a period. The transfer occurs towards the initial approximation. \~
\param[in] period - \ru Период.
\en Period. \~
\param[in] p0 - \ru Начальное приближение параметра.
\en Initial approximation of the parameter. \~
\param[in,out] p - \ru Уточняемый параметр.
\en The parameter to refine. \~
\return \ru Возвращает true, если переброс был выполнен, \n иначе - false.
\en True if a parameter was changed, \n otherwise - false. \~
\ingroup Base_Algorithms
*/ // ---
MATH_FUNC( bool ) CorrectCiclicParameter( double period, double p0, double & p );
//------------------------------------------------------------------------------
/** \brief \ru Уточнить параметр.
\en Refine the parameter. \~
+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 Всегда c3d_null.
\en This value is always c3d_null. \~
\param[in, out] part2 - \ru Всегда nullptr.
\en This value is always nullptr. \~
\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 Всегда c3d_null.
\en This value is always c3d_null. \~
\param[in, out] part2 - \ru Всегда nullptr.
\en This value is always nullptr. \~
\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 Всегда c3d_null.
\en This value is always c3d_null. \~
\param[in, out] part2 - \ru Всегда nullptr.
\en This value is always nullptr. \~
\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 = c3d_null,
bool * isEqualCurve = c3d_null,
SArray<MbCrossPoint> * cross = nullptr,
bool * isEqualCurve = nullptr,
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 = c3d_null );
IProgressIndicator * indicator = nullptr );
#endif // __ALG_DIMENSION_H
+1 -1
View File
@@ -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] != c3d_null ) {
if ( edges[k] != nullptr ) {
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 *>( c3d_null ) ///< \ru Создание пустой строки \en Creation of an empty string
#define EMPTY_STR StrData<const TCHAR *>( nullptr ) ///< \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 != c3d_null и удалось задать имя процесса.
\return \ru true, если progBar != nullptr и удалось задать имя процесса.
\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 != c3d_null )
if ( progBar != nullptr )
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 != c3d_null && !progBar->IsCancel() )
if ( progBar != nullptr && !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 != c3d_null ) {
if ( progBar != nullptr ) {
if ( progBar->IsCancel() ) progBar->Stop();
else progBar->Success();
}
@@ -347,7 +347,7 @@ inline void FinishProgressBar( ProgressBarWrapper * progBar )
// ---
inline bool StopProgressBar( ProgressBarWrapper * progBar )
{
if ( progBar != c3d_null && progBar->IsCancel() ) {
if ( progBar != nullptr && 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 != c3d_null.
\return \ru true, если progBar != nullptr.
\en true if 'progBar' is not null. \~
\ingroup Base_Items
*/
// ---
inline bool UseParentName( ProgressBarWrapper * progBar, bool useParentName )
{
if ( progBar != c3d_null ) {
if ( progBar != nullptr ) {
progBar->UseParentName( useParentName );
return true;
}
@@ -389,7 +389,7 @@ inline bool UseParentName( ProgressBarWrapper * progBar, bool useParentName )
// ---
inline bool IsParentNameUsed( const ProgressBarWrapper * progBar )
{
if ( progBar != c3d_null )
if ( progBar != nullptr )
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 = c3d_null );
IProgressIndicator * progBar = nullptr );
//------------------------------------------------------------------------------
@@ -86,7 +86,7 @@ MbFaceShell * ConvertMeshToShell( const MbMesh & mesh,
const GridsToShellValues & params,
const MbSNameMaker & snMaker,
MbResultType & res,
IProgressIndicator * progBar = c3d_null );
IProgressIndicator * progBar = nullptr );
//------------------------------------------------------------------------------
+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
c3d_null, если не удалось построить конику для заданных параметров.
nullptr, если не удалось построить конику для заданных параметров.
\en The pointer to the constructed curve \n
is c3d_null if a try to construct a conic for a given parameters has failed. \~
is nullptr 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
c3d_null, если не удалось построить конику для заданных параметров.
nullptr, если не удалось построить конику для заданных параметров.
\en The pointer to the constructed curve \n
is c3d_null if a try to construct a conic for a given parameters has failed. \~
is nullptr 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
c3d_null, если не удалось постороить конику для заданных параметров.
nullptr, если не удалось постороить конику для заданных параметров.
\en The pointer to the constructed curve \n
is c3d_null if a try to construct a conic for given parameters has failed. \~
is nullptr 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
c3d_null, если не удалось постороить конику для заданных параметров.
nullptr, если не удалось постороить конику для заданных параметров.
\en The pointer to the constructed curve \n
is c3d_null if a try to construct a conic for given parameters has failed. \~
is nullptr 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
c3d_null, если не удалось постороить конику для заданных параметров.
nullptr, если не удалось постороить конику для заданных параметров.
\en The pointer to the constructed curve \n
is c3d_null if a try to construct a conic for given parameters has failed. \~
is nullptr 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
c3d_null, если не удалось постороить конику для заданных параметров.
nullptr, если не удалось постороить конику для заданных параметров.
\en The pointer to the constructed curve \n
is c3d_null if a try to construct a conic for given parameters has failed. \~
is nullptr 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
c3d_null, если не удалось построить конику для заданных параметров.
nullptr, если не удалось построить конику для заданных параметров.
\en The pointer to the constructed curve \n
is c3d_null if a try to construct a conic for given parameters has failed. \~
is nullptr 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
c3d_null, если не удалось построить конику для заданных параметров.
nullptr, если не удалось построить конику для заданных параметров.
\en The pointer to the constructed curve \n
is c3d_null if a try to construct a conic for given parameters has failed. \~
is nullptr 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
c3d_null, если не удалось постороить конику для заданных параметров.
nullptr, если не удалось постороить конику для заданных параметров.
\en The pointer to the constructed curve \n
is c3d_null if a try to construct a conic for given parameters has failed. \~
is nullptr 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
c3d_null, если не удалось постороить конику для заданных параметров.
nullptr, если не удалось постороить конику для заданных параметров.
\en The pointer to the constructed curve \n
is c3d_null if a try to construct a conic for given parameters has failed. \~
is nullptr 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
c3d_null, если не удалось постороить конику для заданных параметров.
nullptr, если не удалось постороить конику для заданных параметров.
\en The pointer to the constructed curve \n
is c3d_null if a try to construct a conic for given parameters has failed. \~
is nullptr 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
c3d_null, если не удалось постороить конику для заданных параметров.
nullptr, если не удалось постороить конику для заданных параметров.
\en The pointer to the constructed curve \n
is c3d_null if a try to construct a conic for given parameters has failed. \~
is nullptr 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 - дуга скругления в данной точке.
Если какой-то сегмент был полностью удален или не создан, то его указатель должен быть c3d_null.
Если какой-то сегмент был полностью удален или не создан, то его указатель должен быть nullptr.
Объектами 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 c3d_null.
If a segment has been fully deleted or it was not created then the pointer should be nullptr.
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 ( c3d_null )
, m_arcSeg ( c3d_null )
, m_lineSeg ( nullptr )
, m_arcSeg ( nullptr )
{}
/// \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. Если не удалось
аппроксимировать с заданной точностью функция вернет c3d_null.
аппроксимировать с заданной точностью функция вернет nullptr.
\en It works for the two types: 'pt_LineSegment' and 'pt_Arc'. If approximation with the given tolerance has failed
then the function returns c3d_null. \~
then the function returns nullptr. \~
\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 = c3d_null, VERSION version = Math::DefaultMathVersion() );
MbRect1D * pRgn = nullptr, VERSION version = Math::DefaultMathVersion() );
//------------------------------------------------------------------------------
+18 -11
View File
@@ -95,10 +95,10 @@ public:
// \ru Общие функции геометрического объекта \en Common functions of a geometric object
virtual MbeSpaceType IsA() const; // \ru Тип объекта. \en An object type.
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 MbSpaceItem & Duplicate( MbRegDuplicate * iReg = nullptr ) const; // \ru Создать копию. \en Create a copy.
virtual void Transform( const MbMatrix3D &, MbRegTransform * iReg = nullptr ); // \ru Преобразовать согласно матрице. \en Transform according to the matrix.
virtual void Move( const MbVector3D &, MbRegTransform * iReg = nullptr ); // \ru Сдвинуть вдоль вектора. \en Move along a vector.
virtual void Rotate( const MbAxis3D &, double angle, MbRegTransform * iReg = nullptr ); // \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
@@ -152,11 +152,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 = c3d_null );
virtual void TransformSelected( const MbMatrix3D & matr, MbRegTransform * iReg = nullptr );
// \ru Сдвинуть вдоль вектора с использованием регистратора селектированные содержимые объекты. \en Move selected objects along the vector using the registrator.
virtual void MoveSelected( const MbVector3D & to, MbRegTransform * iReg = c3d_null );
virtual void MoveSelected( const MbVector3D & to, MbRegTransform * iReg = nullptr );
// \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 = c3d_null );
virtual void RotateSelected( const MbAxis3D & axis, double angle, MbRegTransform * iReg = nullptr );
/// \ru Отдать селектированные содержимые объекты. \en Get selected objects.
bool DetachSelected( RPArray<MbItem> & items, SArray<MbMatrix3D> & matrs, bool selected = true );
/// \ru Отцепить все видимые или невидимые объекты. \en Detach all visible or invisible objects. \~
@@ -248,6 +248,11 @@ public:
void SetReactor( ItAssemblyReactor * ) const;
/// \ru Импортировать систему ограничений из приложения САПР. \ru Import the constraint system from CAD application.
bool Import( ItAssemblyImportData & );
/**
\brief \ru Включить журналирование и назначить файл для записи журнала вызовов C3D Solver.
\en Switch on the journaling and specify the file for recording a journal of C3D Solver calls. \~
*/
bool SetJournal( const char * fName );
public:
/** \} */
@@ -273,6 +278,8 @@ private:
SimpleName _NewItemName() const;
/// \ru Добавить в сборку объекты сборки без трансформации. \en Add assembly items to the assembly without transformation.
bool _AddAssemblyItems( MbAssembly & );
// Access to non-const reference of the constraint system.
MbConstraintSystem & _System();
OBVIOUS_PRIVATE_COPY( MbAssembly );
}; // MbAssembly
@@ -313,8 +320,8 @@ template <class ItemsVector>
MbAssembly::MbAssembly( const ItemsVector & items )
: MbItem()
, assemblyItems()
, constraintSystem( c3d_null )
, m_reactor( c3d_null )
, constraintSystem( nullptr )
, m_reactor( nullptr )
{
#ifdef C3D_DEBUG
// Check a condition of the single owner.
@@ -339,7 +346,7 @@ MbAssembly::MbAssembly( const ItemsVector & items )
template <class ItemsVector>
void MbAssembly::_Init( const ItemsVector & items )
{
C3D_ASSERT( assemblyItems.empty() && (constraintSystem == c3d_null) );
C3D_ASSERT( assemblyItems.empty() && (constraintSystem == nullptr) );
SimpleName idCounter = 0;
for ( size_t i = 0, iCount = items.size(); i < iCount; ++i )
@@ -386,7 +393,7 @@ void MbAssembly::GetFacesSet( FacesVector & faces ) const
template <class FacesVector>
void MbInstance::GetFacesSet( FacesVector & faces ) const
{
if ( item != c3d_null ) {
if ( item != nullptr ) {
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 * = 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 MbSpaceItem & Duplicate( MbRegDuplicate * = nullptr ) const; // \ru Создать копию. \en Create a copy.
virtual void Transform( const MbMatrix3D &, MbRegTransform * = nullptr ); // \ru Преобразовать согласно матрице. \en Transform according to the matrix.
virtual void Move ( const MbVector3D &, MbRegTransform * = nullptr ); // \ru Сдвинуть вдоль вектора. \en Move along a vector.
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = nullptr ); // \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.
+5 -5
View File
@@ -185,7 +185,7 @@ public :
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 MbAttribute & Duplicate( MbRegDuplicate * = nullptr ) 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.
@@ -234,7 +234,7 @@ public :
// \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 MbAttribute & Duplicate( MbRegDuplicate * = nullptr ) 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.
@@ -280,7 +280,7 @@ public :
// \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 MbAttribute & Duplicate( MbRegDuplicate * = nullptr ) 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.
@@ -333,7 +333,7 @@ public :
// \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 MbAttribute & Duplicate( MbRegDuplicate * = nullptr ) 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.
@@ -414,7 +414,7 @@ public :
// \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 MbAttribute & Duplicate( MbRegDuplicate * = nullptr ) 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.
+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 * = c3d_null ) const = 0; // \ru Сделать копию элемента. \en Create a copy of the element.
virtual MbAttribute & Duplicate( MbRegDuplicate * = nullptr ) 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 * = c3d_null );
virtual void OnTransformOwner( const MbAttributeContainer & owner, const MbMatrix3D &, MbRegTransform * = nullptr );
// \ru Выполнить действия при перемещении владельца. \en Perform actions when moving the owner.
virtual void OnMoveOwner( const MbAttributeContainer & owner, const MbVector3D &, MbRegTransform * = c3d_null );
virtual void OnMoveOwner( const MbAttributeContainer & owner, const MbVector3D &, MbRegTransform * = nullptr );
// \ru Выполнить действия при вращении владельца. \en Perform actions when rotating the owner.
virtual void OnRotateOwner( const MbAttributeContainer & owner, const MbAxis3D &, double angle, MbRegTransform * = c3d_null );
virtual void OnRotateOwner( const MbAttributeContainer & owner, const MbAxis3D &, double angle, MbRegTransform * = nullptr );
// \ru Выполнить действия при копировании владельца. \en Perform actions when copying the owner.
virtual void OnCopyOwner( const MbAttributeContainer & owner, MbAttributeContainer & other, MbRegDuplicate * = c3d_null );
virtual void OnCopyOwner( const MbAttributeContainer & owner, MbAttributeContainer & other, MbRegDuplicate * = nullptr );
// \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 * = c3d_null ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
virtual MbAttribute & Duplicate( MbRegDuplicate * = nullptr ) 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 * = c3d_null ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
virtual MbAttribute & Duplicate( MbRegDuplicate * = nullptr ) 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 * = c3d_null ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
virtual MbAttribute & Duplicate( MbRegDuplicate * = nullptr ) 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 * = c3d_null ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
virtual MbAttribute & Duplicate( MbRegDuplicate * = nullptr ) 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 * = c3d_null ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
virtual MbAttribute & Duplicate( MbRegDuplicate * = nullptr ) 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 * = c3d_null ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
virtual MbAttribute & Duplicate( MbRegDuplicate * = nullptr ) 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.
+4 -4
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 * = c3d_null ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
virtual MbAttribute & Duplicate( MbRegDuplicate * = nullptr ) 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 * = c3d_null ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
virtual MbAttribute & Duplicate( MbRegDuplicate * = nullptr ) 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 * = c3d_null ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
virtual MbAttribute & Duplicate( MbRegDuplicate * = nullptr ) 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.
@@ -184,7 +184,7 @@ public :
// \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 MbAttribute & Duplicate( MbRegDuplicate * = nullptr ) 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 * = c3d_null ) const = 0; // \ru Сделать копию элемента \en Create a copy of the element.
virtual MbAttribute & Duplicate( MbRegDuplicate * = nullptr ) 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 * = c3d_null );
virtual void OnTransformOwner( const MbAttributeContainer & owner, const MbMatrix3D &, MbRegTransform * = nullptr );
// \ru Действия при перемещении владельца. \en Actions when moving the owner.
virtual void OnMoveOwner( const MbAttributeContainer & owner, const MbVector3D &, MbRegTransform * = c3d_null );
virtual void OnMoveOwner( const MbAttributeContainer & owner, const MbVector3D &, MbRegTransform * = nullptr );
// \ru Действия при вращении владельца. \en Actions when rotating the owner.
virtual void OnRotateOwner( const MbAttributeContainer & owner, const MbAxis3D &, double angle, MbRegTransform * = c3d_null );
virtual void OnRotateOwner( const MbAttributeContainer & owner, const MbAxis3D &, double angle, MbRegTransform * = nullptr );
// \ru Действия при копировании владельца. \en Actions when copying the owner.
virtual void OnCopyOwner( const MbAttributeContainer & owner, MbAttributeContainer & other, MbRegDuplicate * = c3d_null );
virtual void OnCopyOwner( const MbAttributeContainer & owner, MbAttributeContainer & other, MbRegDuplicate * = nullptr );
// \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 * = c3d_null ) const;
virtual MbAttribute & Duplicate( MbRegDuplicate * = nullptr ) 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 * = c3d_null );
virtual void OnTransformOwner( const MbAttributeContainer & owner, const MbMatrix3D &, MbRegTransform * = nullptr );
// \ru Выполнить действия при перемещении владельца. \en Perform actions when moving the owner.
virtual void OnMoveOwner( const MbAttributeContainer & owner, const MbVector3D &, MbRegTransform * = c3d_null );
virtual void OnMoveOwner( const MbAttributeContainer & owner, const MbVector3D &, MbRegTransform * = nullptr );
// \ru Выполнить действия при вращении владельца. \en Perform actions when rotating the owner.
virtual void OnRotateOwner( const MbAttributeContainer & owner, const MbAxis3D &, double angle, MbRegTransform * = c3d_null );
virtual void OnRotateOwner( const MbAttributeContainer & owner, const MbAxis3D &, double angle, MbRegTransform * = nullptr );
// \ru Выполнить действия при копировании владельца. \en Perform actions when copying the owner.
virtual void OnCopyOwner( const MbAttributeContainer & owner, MbAttributeContainer & other, MbRegDuplicate * = c3d_null );
virtual void OnCopyOwner( const MbAttributeContainer & owner, MbAttributeContainer & other, MbRegDuplicate * = nullptr );
// \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 * = c3d_null ) const;
virtual MbAttribute & Duplicate( MbRegDuplicate * = nullptr ) 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 * = c3d_null );
virtual void OnTransformOwner( const MbAttributeContainer & owner, const MbMatrix3D &, MbRegTransform * = nullptr );
// \ru Выполнить действия при перемещении владельца. \en Perform actions when moving the owner.
virtual void OnMoveOwner( const MbAttributeContainer & owner, const MbVector3D &, MbRegTransform * = c3d_null );
virtual void OnMoveOwner( const MbAttributeContainer & owner, const MbVector3D &, MbRegTransform * = nullptr );
// \ru Выполнить действия при вращении владельца. \en Perform actions when rotating the owner.
virtual void OnRotateOwner( const MbAttributeContainer & owner, const MbAxis3D &, double angle, MbRegTransform * = c3d_null );
virtual void OnRotateOwner( const MbAttributeContainer & owner, const MbAxis3D &, double angle, MbRegTransform * = nullptr );
// \ru Выполнить действия при копировании владельца. \en Perform actions when copying the owner.
virtual void OnCopyOwner( const MbAttributeContainer & owner, MbAttributeContainer & other, MbRegDuplicate * = c3d_null );
virtual void OnCopyOwner( const MbAttributeContainer & owner, MbAttributeContainer & other, MbRegDuplicate * = nullptr );
// \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 * = c3d_null ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
virtual MbAttribute & Duplicate( MbRegDuplicate * = nullptr ) 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 * = c3d_null ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
virtual MbAttribute & Duplicate( MbRegDuplicate * = nullptr ) 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 * = c3d_null ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
virtual MbAttribute & Duplicate( MbRegDuplicate * = nullptr ) 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 * = c3d_null ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
virtual MbAttribute & Duplicate( MbRegDuplicate * = nullptr ) 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 * = c3d_null );
virtual void OnTransformOwner( const MbAttributeContainer & owner, const MbMatrix3D &, MbRegTransform * = nullptr );
// \ru Выполнить действия при перемещении владельца. \en Perform actions when moving the owner.
virtual void OnMoveOwner( const MbAttributeContainer & owner, const MbVector3D &, MbRegTransform * = c3d_null );
virtual void OnMoveOwner( const MbAttributeContainer & owner, const MbVector3D &, MbRegTransform * = nullptr );
// \ru Выполнить действия при вращении владельца. \en Perform actions when rotating the owner.
virtual void OnRotateOwner( const MbAttributeContainer & owner, const MbAxis3D &, double angle, MbRegTransform * = c3d_null );
virtual void OnRotateOwner( const MbAttributeContainer & owner, const MbAxis3D &, double angle, MbRegTransform * = nullptr );
// \ru Выполнить действия при копировании владельца. \en Perform actions when copying the owner.
virtual void OnCopyOwner( const MbAttributeContainer & owner, MbAttributeContainer & other, MbRegDuplicate * = c3d_null );
virtual void OnCopyOwner( const MbAttributeContainer & owner, MbAttributeContainer & other, MbRegDuplicate * = nullptr );
// \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 * = c3d_null ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
virtual MbAttribute & Duplicate( MbRegDuplicate * = nullptr ) 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 * = c3d_null ) const = 0;
virtual MbAttribute & Duplicate( MbRegDuplicate * = nullptr ) 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 * = c3d_null );
virtual void OnTransformOwner( const MbAttributeContainer & owner, const MbMatrix3D &, MbRegTransform * = nullptr );
// Действия при перемещении владельца.
virtual void OnMoveOwner( const MbAttributeContainer & owner, const MbVector3D &, MbRegTransform * = c3d_null );
virtual void OnMoveOwner( const MbAttributeContainer & owner, const MbVector3D &, MbRegTransform * = nullptr );
// Действия при вращении владельца.
virtual void OnRotateOwner( const MbAttributeContainer & owner, const MbAxis3D &, double angle, MbRegTransform * = c3d_null );
virtual void OnRotateOwner( const MbAttributeContainer & owner, const MbAxis3D &, double angle, MbRegTransform * = nullptr );
// Действия при копировании владельца.
virtual void OnCopyOwner( const MbAttributeContainer & owner, MbAttributeContainer & other, MbRegDuplicate * = c3d_null );
virtual void OnCopyOwner( const MbAttributeContainer & owner, MbAttributeContainer & other, MbRegDuplicate * = nullptr );
// Действия при объединении владельца.
virtual void OnMergeOwner( const MbAttributeContainer & owner, MbAttributeContainer & other );
// Действия при замене владельца.
@@ -100,7 +100,7 @@ public :
// Выдать подтип атрибута (временно).
virtual MbeAttributeType AttributeType() const;
// Сделать копию элемента.
virtual MbAttribute & Duplicate( MbRegDuplicate * = c3d_null ) const;
virtual MbAttribute & Duplicate( MbRegDuplicate * = nullptr ) const;
virtual bool IsSame( const MbAttribute &, double accuracy ) const; // Определить, являются ли объекты равными.
// Инициализировать данные по присланным.
virtual bool Init( const MbAttribute & ) ;
@@ -326,7 +326,7 @@ public :
// Выдать подтип атрибута (временно).
virtual MbeAttributeType AttributeType() const;
// Сделать копию элемента.
virtual MbAttribute & Duplicate( MbRegDuplicate * = c3d_null ) const ;
virtual MbAttribute & Duplicate( MbRegDuplicate * = nullptr ) 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 * = c3d_null ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
virtual MbAttribute & Duplicate( MbRegDuplicate * = nullptr ) 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 * = c3d_null ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
virtual MbAttribute & Duplicate( MbRegDuplicate * = nullptr ) 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 * = c3d_null ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
virtual MbAttribute & Duplicate( MbRegDuplicate * = nullptr ) 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 * = c3d_null ) const;
virtual MbAttribute & Duplicate( MbRegDuplicate * = nullptr ) 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 * = c3d_null );
virtual void OnTransformOwner( const MbAttributeContainer & owner, const MbMatrix3D &, MbRegTransform * = nullptr );
// \ru Выполнить действия при перемещении владельца. \en Perform actions when moving the owner.
virtual void OnMoveOwner( const MbAttributeContainer & owner, const MbVector3D &, MbRegTransform * = c3d_null );
virtual void OnMoveOwner( const MbAttributeContainer & owner, const MbVector3D &, MbRegTransform * = nullptr );
// \ru Выполнить действия при вращении владельца. \en Perform actions when rotating the owner.
virtual void OnRotateOwner( const MbAttributeContainer & owner, const MbAxis3D &, double angle, MbRegTransform * = c3d_null );
virtual void OnRotateOwner( const MbAttributeContainer & owner, const MbAxis3D &, double angle, MbRegTransform * = nullptr );
// \ru Выполнить действия при копировании владельца. \en Perform actions when copying the owner.
virtual void OnCopyOwner( const MbAttributeContainer & owner, MbAttributeContainer & other, MbRegDuplicate * = c3d_null );
virtual void OnCopyOwner( const MbAttributeContainer & owner, MbAttributeContainer & other, MbRegDuplicate * = nullptr );
// \ru Выполнить действия при объединении владельца. \en Perform actions when merging the owner.
virtual void OnMergeOwner( const MbAttributeContainer & owner, MbAttributeContainer & other );
+18 -18
View File
@@ -89,7 +89,7 @@ public:
\ingroup Model_Attributes
*/
class MATH_CLASS MbUserAttribute : public MbAttribute, public MbSyncItem {
typedef std_unique_ptr<membuf> UniqueMembufPtr;
typedef std::unique_ptr<membuf> UniqueMembufPtr;
protected :
MbUserAttribType userType_; ///< \ru Тип пользовательского атрибута. \en Type of user attribute.
c3d::string_t prompt_; ///< \ru Строка описания. \en String of description.
@@ -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 * = c3d_null ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
virtual MbAttribute & Duplicate( MbRegDuplicate * = nullptr ) 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 * = c3d_null );
virtual void OnTransformOwner( const MbAttributeContainer & owner, const MbMatrix3D &, MbRegTransform * = nullptr );
// \ru Выполнить действия при перемещении владельца. \en Perform actions when moving the owner.
virtual void OnMoveOwner( const MbAttributeContainer & owner, const MbVector3D &, MbRegTransform * = c3d_null );
virtual void OnMoveOwner( const MbAttributeContainer & owner, const MbVector3D &, MbRegTransform * = nullptr );
// \ru Выполнить действия при вращении владельца. \en Perform actions when rotating the owner.
virtual void OnRotateOwner( const MbAttributeContainer & owner, const MbAxis3D &, double angle, MbRegTransform * = c3d_null );
virtual void OnRotateOwner( const MbAttributeContainer & owner, const MbAxis3D &, double angle, MbRegTransform * = nullptr );
// \ru Выполнить действия при копировании владельца \en Perform actions when copying the owner.
virtual void OnCopyOwner( const MbAttributeContainer & owner, MbAttributeContainer & other, MbRegDuplicate * = c3d_null );
virtual void OnCopyOwner( const MbAttributeContainer & owner, MbAttributeContainer & other, MbRegDuplicate * = nullptr );
// \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 * = c3d_null ) const = 0; // \ru Сделать копию элемента. \en Create a copy of the element.
virtual MbAttribute & Duplicate( MbRegDuplicate * = nullptr ) 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 * = c3d_null );
virtual void OnTransformOwner( const MbAttributeContainer & owner, const MbMatrix3D &, MbRegTransform * = nullptr );
// \ru Выполнить действия при перемещении владельца. \en Perform actions when moving the owner.
virtual void OnMoveOwner( const MbAttributeContainer & owner, const MbVector3D &, MbRegTransform * = c3d_null );
virtual void OnMoveOwner( const MbAttributeContainer & owner, const MbVector3D &, MbRegTransform * = nullptr );
// \ru Выполнить действия при вращении владельца. \en Perform actions when rotating the owner.
virtual void OnRotateOwner( const MbAttributeContainer & owner, const MbAxis3D &, double angle, MbRegTransform * = c3d_null );
virtual void OnRotateOwner( const MbAttributeContainer & owner, const MbAxis3D &, double angle, MbRegTransform * = nullptr );
// \ru Выполнить действия при копировании владельца. \en Perform actions when copying the owner.
virtual void OnCopyOwner( const MbAttributeContainer & owner, MbAttributeContainer & other, MbRegDuplicate * = c3d_null );
virtual void OnCopyOwner( const MbAttributeContainer & owner, MbAttributeContainer & other, MbRegDuplicate * = nullptr );
// \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] : c3d_null); }
const MbAttribute * GetAttribute( size_t k ) const { return ((k < attributes.size()) ? attributes[k] : nullptr); }
// \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 = c3d_null;
const char * charBuf = nullptr;
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 = c3d_null;
AttrClass * resAttr = nullptr;
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 c3d_null;
return nullptr;
}
@@ -379,7 +379,7 @@ bool UserAttrDefinition<AttrClass>::ReassembleUserAttrib( const MbFixAttrSet & /
template <typename AttrDefClass>
UserAttrDefinitionInstance<AttrDefClass>::UserAttrDefinitionInstance( const MbUserAttribType & type )
: AttrDefInstance( type )
, attrDef( c3d_null )
, attrDef( nullptr )
{
}
@@ -390,7 +390,7 @@ UserAttrDefinitionInstance<AttrDefClass>::UserAttrDefinitionInstance( const MbUs
template <typename AttrDefClass>
UserAttrDefinitionInstance<AttrDefClass>::~UserAttrDefinitionInstance()
{
if ( attrDef != c3d_null )
if ( attrDef != nullptr )
delete attrDef;
}
@@ -401,7 +401,7 @@ UserAttrDefinitionInstance<AttrDefClass>::~UserAttrDefinitionInstance()
template <typename AttrDefClass>
IAttrDefinition * UserAttrDefinitionInstance<AttrDefClass>::GetAttrDefinition()
{
if ( attrDef == c3d_null ) {
if ( attrDef == nullptr ) {
ScopedLock ll( GetLock() );
attrDef = new AttrDefClass();
}
+5 -5
View File
@@ -291,7 +291,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 * = c3d_null ) const = 0;
virtual MbAttribute & Duplicate( MbRegDuplicate * = nullptr ) const = 0;
/** \brief \ru Определить, являются ли объекты равными.
\en Determine whether objects are equal. \~
\details \ru Равными считаются однотипные объекты, все данные которых одинаковы (равны).
@@ -336,7 +336,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 * = c3d_null ) = 0;
virtual void OnTransformOwner( const MbAttributeContainer & owner, const MbMatrix3D &, MbRegTransform * = nullptr ) = 0;
/**\ru Выполнить действия при перемещении владельца. \n
Вызывается после перемещения владеющего объекта при условии GetActionForTransform() == trn_Self.
@@ -344,7 +344,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 * = c3d_null ) = 0;
virtual void OnMoveOwner( const MbAttributeContainer & owner, const MbVector3D &, MbRegTransform * = nullptr ) = 0;
/**\ru Выполнить действия при вращении владельца. \n
Вызывается после вращения владеющего объекта при условии GetActionForTransform() == trn_Self.
@@ -352,7 +352,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 * = c3d_null ) = 0;
virtual void OnRotateOwner( const MbAttributeContainer & owner, const MbAxis3D &, double angle, MbRegTransform * = nullptr ) = 0;
/**\ru Выполнить действия при копировании владельца. \n
Вызывается после копирования владеющего объекта при условии GetActionForCopy() == cpy_Self. \n
@@ -360,7 +360,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 * = c3d_null ) = 0;
virtual void OnCopyOwner( const MbAttributeContainer & owner, MbAttributeContainer & other, MbRegDuplicate * = nullptr ) = 0;
/**\ru Выполнить действия при объединении владельца. \n
Вызывается перед слиянием владельца при условии GetActionForMerge() == mrg_Self. \n
+8 -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 * = c3d_null );
void AttributesTransform( const MbMatrix3D &, MbRegTransform * = nullptr );
/// \ru Выполнить действия при перемещении атрибутов. \en Perform actions when moving the attributes.
void AttributesMove ( const MbVector3D &, MbRegTransform * = c3d_null );
void AttributesMove ( const MbVector3D &, MbRegTransform * = nullptr );
/// \ru Выполнить действия при вращении атрибутов. \en Perform actions when rotating the attributes.
void AttributesRotate ( const MbAxis3D &, double angle, MbRegTransform * = c3d_null );
void AttributesRotate ( const MbAxis3D &, double angle, MbRegTransform * = nullptr );
/// \ru Выполнить действия при копировании атрибутов. \en Perform actions when copying the attributes.
void AttributesCopy ( MbAttributeContainer & other, MbRegDuplicate * = c3d_null ) const;
void AttributesCopy ( MbAttributeContainer & other, MbRegDuplicate * = nullptr ) const;
/// \ru Выполнить действия при объединении атрибутов. \en Perform actions when merging the attributes.
void AttributesMerge ( MbAttributeContainer & other );
/// \ru Выполнить действия при замене атрибутов. \en Perform actions when replacing the attributes.
@@ -195,7 +195,7 @@ public:
double GetDensity() const;
/// \ru Установить визуальные свойства объекта. \en Set visual properties of the object.
void SetVisual( float a, float d, float sp, float sh, float t, float e );
void SetVisual( float a, float d, float sp, float sh, float t, float e, uint rgb = 0 );
/** \brief \ru Выдать визуальные свойства объекта.
\en Get visual properties of the object. \~
\details \ru Выдать визуальные свойства объекта.
@@ -215,7 +215,7 @@ public:
\return \ru true если есть такой атрибут \n false в противном случае
\en True if there is the attribute MbVisual \n otherwise false. \~
*/
bool GetVisual( float & a, float & d, float & sp, float & sh, float & t, float & e ) const;
bool GetVisual( float & a, float & d, float & sp, float & sh, float & t, float & e, uint rgb = 0 ) const;
/// \ru Есть ли у объекта свой цвет. \en .
@@ -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 ) != c3d_null); }
bool IsColored() const { return (GetSimpleAttribute( at_Color ) != nullptr); }
/// \ru Изменить цвет объекта. \en Change color of the object.
void SetColor( uint32 );
/// \ru Изменить цвет объекта (0-255). \en Change color of the object (0-255).
@@ -322,7 +322,7 @@ MATH_FUNC (bool) AddCommonAttributes( const MbAttributeContainer & srcItem,
MbeAttributeType attrType,
const c3d::string_t & attrPrompt,
MbAttributeContainer & dstItem,
c3d::AttrVector * bufAttrs = c3d_null );
c3d::AttrVector * bufAttrs = nullptr );
//------------------------------------------------------------------------------
/** \brief \ru Удалить обобщенные атрибуты.
+7 -7
View File
@@ -45,8 +45,8 @@ typedef const void * cdet_app_item;
//----------------------------------------------------------------------------------------
// Constants
//---
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.
const cdet_item CDET_NULL = nullptr; ///< \ru Пустой объект набора для контроля столкновений. \en Empty object of the collision query set.
const cdet_app_item CDET_APP_NULL = nullptr; ///< \ru "Нулевой" объект модели приложения. \en "Null object" of the client app.
//----------------------------------------------------------------------------------------
/** \brief \ru Структура данных и обратных вызовов для запроса на поиск соударений.
@@ -87,8 +87,8 @@ struct cdet_query
const MbRefItem * refItem;
const MbMatrix3D * wMatrix;
geom_element()
: appItem( c3d_null )
, refItem( c3d_null )
: appItem( nullptr )
, refItem( nullptr )
, wMatrix( &MbMatrix3D::identity ) {}
};
@@ -127,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 != query );
C3D_ASSERT( nullptr != query );
cdet_query_result * q = static_cast<cdet_query_result*>( query );
switch( code )
{
@@ -172,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;
q->first = q->second = nullptr;
return CBACK_VOID;
}
case CDET_FINISHED: // A pair of solids is finished.
@@ -368,7 +368,7 @@ public:
MbCollisionFace( const MbFace & f )
: item( CDET_NULL )
, mathFace( &f )
, partFace( c3d_null )
, partFace( nullptr )
{}
const MbFace & Face() const { return *mathFace; }
+3 -3
View File
@@ -119,7 +119,7 @@ public:
public: // the functions below can be deprecated in future version.
/**
/*
\brief \ru Добавить модель тела, как набор граней и решеток.
\en Add a solid data as a set of faces and the grids. \~
\return \ru Внутренняя структура данных представляющая добавленную модель. \en Internal data structure representing added solid data. \~
@@ -162,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 ) const;
cdet_result InterferenceDetect( void * formalPar = nullptr ) const;
// The func is deprecated. Use SetDistanceTracking instead.
void SetDistanceComputationObjects( const MbLumpAndFaces &, const MbLumpAndFaces & );
// The func is deprecated. Use AddSolid/AddItem instead.
@@ -197,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;
const cdet_bvt_node CDET_BVT_NULL = nullptr;
/// \ru Пара ветвей поддерева объемов. \en A pair of branches of the bounding volume subtree.
typedef std::pair<cdet_bvt_node,cdet_bvt_node> cdet_bvt_pair;
+50 -20
View File
@@ -70,13 +70,13 @@ public:
public:
/// \ru Пересечение - есть тело. \en Intersection is a solid.
bool IsSolid() const { return ((solid != c3d_null) || (isSolid && !edges.empty())); }
bool IsSolid() const { return ((solid != nullptr) || (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 != c3d_null) && (pointFrame->GetVerticesCount() > 0)); }
bool IsPoint() const { return ((pointFrame != nullptr) && (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() : c3d_null); }
const MbCurveEdge * GetCurve( size_t k ) const { return ((k < edges.size()) ? edges[k].get() : nullptr); }
/// \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 != c3d_null) ? pointFrame->GetVerticesCount() : 0); }
size_t GetPointsCount() const { return ((pointFrame != nullptr) ? 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 ( c3d_null )
, pointFrame ( c3d_null )
, solid ( nullptr )
, pointFrame ( nullptr )
, 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] != c3d_null ) {
if ( initEdges[k] != nullptr ) {
edge = const_cast<MbCurveEdge *>( &(*initEdges[k]) );
edges.push_back( edge );
}
@@ -146,8 +146,8 @@ MbShellsIntersectionData::MbShellsIntersectionData( const EdgesVector & in
: edges ( )
, faceIndices1 ( )
, faceIndices2 ( )
, solid ( c3d_null )
, pointFrame ( c3d_null )
, solid ( nullptr )
, pointFrame ( nullptr )
, 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] != c3d_null ) {
if ( initEdges[k] != nullptr ) {
edge = const_cast<MbCurveEdge *>(&(*initEdges[k]));
edges.push_back( edge );
}
@@ -177,8 +177,8 @@ MbShellsIntersectionData::MbShellsIntersectionData( const EdgesVector &
: edges ( )
, faceIndices1 ( )
, faceIndices2 ( )
, solid ( c3d_null )
, pointFrame ( c3d_null )
, solid ( nullptr )
, pointFrame ( nullptr )
, 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] != c3d_null ) {
if ( initEdges[k] != nullptr ) {
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] != c3d_null && allEdges[i]->IsBoundaryFace( METRIC_PRECISION ) ) {
if ( allEdges[i] != nullptr && allEdges[i]->IsBoundaryFace( METRIC_PRECISION ) ) {
isBoundary = true;
if ( boundaryEdges != c3d_null )
if ( boundaryEdges != nullptr )
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 != c3d_null && v->GetTolerance() > mAcc ) {
if ( v != nullptr && v->GetTolerance() > mAcc ) {
isInexactVertex = true;
if ( inexactVerts != c3d_null )
if ( inexactVerts != nullptr )
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] != c3d_null) {
if ( allEdges[i] != nullptr) {
bool isSpaceNear = !::IsInexactEdge( *allEdges[i], mAcc );
if ( !isSpaceNear ) {
isInexactEdge = true;
if ( inexactEdges != c3d_null )
if ( inexactEdges != nullptr )
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 != c3d_null )
if ( inexactEdges != nullptr )
inexactEdges->push_back( allEdges[i] );
else
break;
@@ -707,6 +707,36 @@ MATH_FUNC (bool) FindLoopsSelfIntersections( const MbFace & face, const MbSNameM
MATH_FUNC (bool) CheckFacesConnection( const RPArray<MbFace> & faces );
//------------------------------------------------------------------------------
/** \brief \ru Проверка связности граней faces.
\en Check for connectivity of faces 'faces'. \~
\details \ru Проверка топологической связности граней faces. \n
\en Check for topological connectivity of faces 'faces'. \n \~
\param[in] faces - \ru Проверяемый набор граней.
\en Set of faces under check. \~
\return \ru Возвращает true, все грани топологически связаны.
\en Returns true if all the faces are topologically connected. \~
\ingroup Algorithms_3D
*/
//---
MATH_FUNC (bool) CheckFacesConnection( const c3d::FacesVector & faces );
//------------------------------------------------------------------------------
/** \brief \ru Проверка связности граней faces.
\en Check for connectivity of faces 'faces'. \~
\details \ru Проверка топологической связности граней faces. \n
\en Check for topological connectivity of faces 'faces'. \n \~
\param[in] faces - \ru Проверяемый набор граней.
\en Set of faces under check. \~
\return \ru Возвращает true, все грани топологически связаны.
\en Returns true if all the faces are topologically connected. \~
\ingroup Algorithms_3D
*/
//---
MATH_FUNC (bool) CheckFacesConnection( const c3d::ConstFacesVector & faces );
//------------------------------------------------------------------------------
/** \brief \ru Найти в исходной оболочке "родительские" грани производной оболочки.
\en Find "parent" faces of a derived shell in the initial shell. \~
+15 -13
View File
@@ -15,11 +15,13 @@
#include <mb_cube.h>
#include <mesh_triangle.h>
#include <model_item.h>
#include <templ_dptr.h>
#include <vector>
class MATH_CLASS MbMesh;
class MATH_CLASS MbGrid;
class MbGridTopology;
//------------------------------------------------------------------------------
@@ -62,7 +64,8 @@ private:
\details \ru Габаритный куб объекта рассчитывается только при запросе габарита объекта. Габаритный куб в конструкторе объекта и после модификации объекта принимает неопределенное значение.
\en Bounding box of object is calculated only at the request. Bounding box of object is undefined after object constructor and after object modifications \n \~
*/
mutable MbCube cube;
mutable MbCube cube;
mutable DPtr<MbGridTopology> topo; ///< \ru Дополнительная информация о топологии коллекции. \en Additional information about a topology of the collection.
private:
// \ru Объявление конструктора копирования без реализации, чтобы не было копирования по умолчанию. \en The copy constructor without implementation prevents from copying by default.
MbCollection( const MbCollection & init );
@@ -84,10 +87,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 * = 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 MbSpaceItem & Duplicate( MbRegDuplicate * = nullptr ) const; // \ru Создать копию. \en Create a copy.
virtual void Transform( const MbMatrix3D &, MbRegTransform * = nullptr ); // \ru Преобразовать согласно матрице. \en Transform according to the matrix.
virtual void Move ( const MbVector3D &, MbRegTransform * = nullptr ); // \ru Сдвинуть вдоль вектора. \en Translate along a vector.
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = nullptr ); // \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.
@@ -184,9 +187,7 @@ public:
/// \ru Удалить точки. \en Delete points.
void PointsRemove() { points.clear();
#ifdef C3D_STANDARD_CXX_11_PARTIAL
points.shrink_to_fit();
#endif
points.shrink_to_fit();
cube.SetEmpty(); }
/// \ru Удалить точку с заданным номером. \en Delete point by the given index.
void PointRemove ( size_t i ) { if ( i < points.size() ) points.erase( points.begin() + i ); cube.SetEmpty(); }
@@ -282,17 +283,13 @@ public:
/// \ru Удалить всю триангуляцию и освободить память. \en Delete all triangulation and free the memory.
void HardFlush() { points.clear(); normals.clear(); escorts.clear();
triangles.clear(); quadrangles.clear(); elements.clear(); segments.clear(); //grids.clear();
#ifdef C3D_STANDARD_CXX_11_PARTIAL
points.shrink_to_fit(); normals.shrink_to_fit(); escorts.shrink_to_fit();
triangles.shrink_to_fit(); quadrangles.shrink_to_fit(); elements.shrink_to_fit(); segments.shrink_to_fit(); //grids.shrink_to_fit();
#endif
cube.SetEmpty(); }
/// \ru Освободить лишнюю память. \en Free the unnecessary memory.
void Adjust() {
#ifdef C3D_STANDARD_CXX_11_PARTIAL
points.shrink_to_fit(); normals.shrink_to_fit(); escorts.shrink_to_fit();
triangles.shrink_to_fit(); quadrangles.shrink_to_fit(); elements.shrink_to_fit(); segments.shrink_to_fit(); //grids.shrink_to_fit();
#endif
}
/// \ru Инициализировать объект. \en Initialize object.
@@ -323,7 +320,12 @@ public:
void ConvertAllToTriangles();
/// \ru Удалить дублирующие с заданной точностью друг друга точки. \en Remove redundant points with a given tolerance (duplicates).
bool RemoveRedundantPoints( bool deleteNormals, double epsilon = LENGTH_EPSILON );
/// \ru Готова ли топология коллекции. \en Whether information about collection topology is ready.
bool IsGridTopologyReady() const { return topo != nullptr; }
/// \ru Создать новый временный объект информации о топологии. \en Create new temporary maintenance object information about collection topology.
const MbGridTopology * CreateGridTopology( bool keepExisting ) const;
/// \ru Удалить информацию о топологии. \en Delete a information about collection topology.
void ResetGridTopology() const;
/** \} */
private:
/// \ru Объявление оператора присваивания без реализации, чтобы не было присваивания по умолчанию. \en The declaration of the assignment operator without implementation to prevent an assignment by default.
+4 -4
View File
@@ -56,8 +56,8 @@ public:
public:
MtGeomArgument( const MbRefItem * p, const MbItem * h );
MtGeomArgument( const MtGeomArgument & );
MtGeomArgument() : propItem( c3d_null ), propName( c3d::UNDEFINED_SNAME )
, hash( c3d::UNDEFINED_SNAME ), item( c3d_null ), root( c3d_null ) {}
MtGeomArgument() : propItem( nullptr ), propName( c3d::UNDEFINED_SNAME )
, hash( c3d::UNDEFINED_SNAME ), item( nullptr ), root( nullptr ) {}
public:
/** \brief \ru Получить непосредственный объект сборки, содержащий ссылочный объект.
@@ -120,7 +120,7 @@ public:
public:
/// \ru Возвращает true, если ограничение не действительно. \en Return true if the constraint is invalid.
bool IsNull() const { return m_cItem == c3d_null; }
bool IsNull() const { return m_cItem == nullptr; }
/// \ru Тип сопряжения (геометрического ограничения). \en Type of geometric constraint.
MtMateType ConstraintType() const;
/// \ru Текущее значение размера. \en Current value of the dimension.
@@ -193,7 +193,7 @@ public:
virtual void EvaluationFailed( const MbAssembly * ) const {}
/// \ru Геометрический решатель нашел новую позицию под-объекта сборки. \en The geometric solver found a new position of a constrained sub-object belonging the assembly.
virtual void PositionChanged( const MbAssembly *, const MbItem * /*subItem*/ ) const {}
protected:
~ItAssemblyReactor() {}
}; // ItAssemblyReactor
+387 -16
View File
@@ -13,6 +13,7 @@
#include <templ_p_array.h>
#include <cur_contour.h>
#include <curve.h> // for PlaneCurveSPtr
class MATH_CLASS MpEdge;
@@ -38,8 +39,8 @@ public:
/// \ru Конструктор по точке. \en Constructor by point.
MpVertex( const MbCartPoint & initP )
: point( initP )
, begEdge( c3d_null )
, endEdge( c3d_null )
, begEdge( nullptr )
, endEdge( nullptr )
{}
/// \ru Деструктор. \en Destructor.
@@ -513,8 +514,9 @@ public:
\param[out] usedCurves - \ru Результат - использованные кривые.
\en The result are the used curves. \~
*/
void GetUsedCurves( const RPArray<MbCurve> & curveList, RPArray<MbCurve> & usedCurves );
template<class CurvesArray, class CurvesArray2>
void GetUsedCurves( const CurvesArray & curveList, CurvesArray2 & usedCurves );
/** \brief \ru Ориентация цикла по индексу.
\en The orientation of a loop by its index. \~
\details \ru Ориентация цикла по индексу без проверки индекса.\n
@@ -557,7 +559,8 @@ public:
\param[in] curvesNames - \ru Имена кривых.
\en Curves names. \n \~
*/
void SetAllName( const RPArray<MbCurve> & curveList, MpGraph * g, std::map<const MbCurve *, ptrdiff_t> & curvesNames );
template<class CurvesArray>
void SetAllName( const CurvesArray & curveList, MpGraph * g, std::map<const MbCurve *, ptrdiff_t> & curvesNames );
/** \brief \ru Дать имена ребрам.
\en Give names to edges. \~
@@ -568,8 +571,9 @@ public:
\param[in] curvesNames - \ru Имена кривых.
\en Curves names. \n \~
*/
void SetEdgeName( const RPArray<MbCurve> & curveList, std::map<const MbCurve *, ptrdiff_t> & curvesNames );
template<class CurvesArray>
void SetEdgeName( const CurvesArray & curveList, std::map<const MbCurve *, ptrdiff_t> & curvesNames );
/** \brief \ru Определить ориентацию контуров.
\en Determine the contours' orientation. \~
\details \ru Определить ориентацию контуров по их вложенности.\n
@@ -577,8 +581,9 @@ public:
\param[in] contourArray - \ru Список контуров, по которым строился граф.
\en List of contours the graph is built for. \~
*/
void SetLoopsOrientation( const RPArray<MbContour> & contourArray );
template<class ContourArray>
void SetLoopsOrientation( const ContourArray & contourArray );
/** \brief \ru Перевести параметры ребер в параметры кривых.
\en Convert edges' parameters to curves' parameters. \~
\details \ru Перевести параметры ребер в параметры кривых,
@@ -727,6 +732,254 @@ private:
IMPL_PERSISTENT_OPS( MpGraph )
//------------------------------------------------------------------------------
/** \brief \ru Запомнить неиспользованные ребра.
\en Store unused edges. \~
\details \ru Запомнить неиспользованные ребра, установив им имена.\n
\en Store unused edges giving names for them.\n \~
\param[in] curveList - \ru Список неиспользованных кривых для установки имен.
\en The list of unused curves for setting the names. \~
\param[in] g - \ru Граф для поиска неиспользованных ребер.\n
Если в нем или в его массиве неиспользованных ребер
нашлось ребро с именем неиспользованной кривой,
то оно запоминается в массиве неиспользованных ребер unusedEdges.\n
\en Graph for searching unused edges.\n
If there is an edge by the names of an unused curve
in the graph or its array of unused edges,
then it is stored in the array of unused edges unusedEdges.\n \~
\param[in] curvesNames - \ru Имена кривых.
\en Curves names. \n \~
*/
// ---
template<class CurvesArray>
void MpGraph::SetAllName( const CurvesArray & curveList, MpGraph * g, std::map<const MbCurve *, ptrdiff_t> & curvesNames )
{
ptrdiff_t i, j, j0, k;
MpLoop * loop = nullptr;
MpEdge * edge = nullptr;
bool s;
unusedEdges.Flush();
nameCount = curveList.size();
// Сначала именуются ребра.
for ( i = 0; i < (ptrdiff_t)loops.Count(); i++ ) {
loop = GetLoop( i );
for ( k = 0; k < (ptrdiff_t)loop->GetEdgesCount(); k++ ) {
edge = loop->GetEdge( k );
ptrdiff_t curveName = curvesNames[edge->GetCurve()]; // Это имя может быть у исходной кривой и у измененной в обработке наложений.
if ( curveName >= 0 && curveName <= nameCount ) {
edge->SetName( curveName );
edge->SetCurve( nullptr );
}
}
}
// Теперь ищутся неиспользованные ребра.
for ( j = 0; j < nameCount; j++ ) {
j0 = -1;
for ( i = 0; i < (ptrdiff_t)loops.Count(); i++ ) {
loop = GetLoop( i );
for ( k = 0; k < (ptrdiff_t)loop->GetEdgesCount(); k++ ) {
edge = loop->GetEdge( k );
if ( edge->GetName() == j )
j0 = 1; // Нашли кривую в новом графе.
// if ( curve0==edge->GetCurve() ) {
// edge->SetName( j );
// edge->SetCurve( nullptr );
// j0 = 1;
// }
}
}
if ( j0 < 0 && g != nullptr ) { // Этой кривой нет в новом графе this. Ищем ее в старом графе g.
for ( i = 0; i < (ptrdiff_t)g->loops.Count(); i++ ) {
loop = g->GetLoop( i );
for ( k = 0; k < (ptrdiff_t)loop->GetEdgesCount(); k++ ) {
edge = loop->GetEdge( k );
if ( j == edge->GetName() ) { // Это ребро построено на кривой curveList[j].
s = edge->GetSense();
if ( loop->GetMode() < 0 )
s = !s;
unusedEdges.Add( new MpEdge( edge->GetTBeg(), edge->GetTEnd(), s, j, edge->GetType() ) );
j0 = 1;
i = g->loops.Count();
break;
}
}
}
}
if ( j0 < 0 && g != nullptr ) { // Если не нашли, ищем в неиспользованных ребрах.
for ( k = 0; k < (ptrdiff_t)g->unusedEdges.Count(); k++ ) {
edge = g->unusedEdges[k];
if ( j == edge->GetName() ) {
s = edge->GetSense();
unusedEdges.Add( new MpEdge( edge->GetTBeg(), edge->GetTEnd(), s, j, edge->GetType() ) );
break;
}
}
}
}
}
//------------------------------------------------------------------------------
/** \brief \ru Дать имена ребрам.
\en Give names to edges. \~
\details \ru Дать имена ребрам по списку кривых.\n
\en Give names to edges by the list of curves.\n \~
\param[in] curveList - \ru Список кривых для именования.
\en The list of curves for naming. \~
\param[in] curvesNames - \ru Имена кривых.
\en Curves names. \n \~
*/
// ---
template<class CurvesArray>
void MpGraph::SetEdgeName( const CurvesArray & curveList, std::map<const MbCurve *, ptrdiff_t> & curvesNames )
{
// Именование ребер номерами кривых.
nameCount = curveList.size();
// for ( ptrdiff_t j = 0; j < nameCount; j++ ) {
// MbCurve *curve0 = curveList[j];
//
// for ( ptrdiff_t i = 0; i < (ptrdiff_t)loops.Count(); i++ ) {
// MpLoop *loop = GetLoop( i );
//
// for( ptrdiff_t k = 0; k < (ptrdiff_t)loop->edgeList.Count(); k++ ) {
// MpEdge *edge = loop->edgeList[k];
//
// if ( curve0==edge->GetCurve() ) {
// edge->SetName( j );
// edge->baseCurve = nullptr;
// }
// }
// }
// }
for ( ptrdiff_t i = 0; i < (ptrdiff_t)loops.Count(); i++ ) {
MpLoop * loop = GetLoop( i );
for ( ptrdiff_t k = 0; k < (ptrdiff_t)loop->GetEdgesCount(); k++ ) {
MpEdge * edge = loop->GetEdge( k );
ptrdiff_t curveName = curvesNames[edge->GetCurve()];
if ( curveName >= 0 && curveName <= nameCount ) {
edge->SetName( curveName );
edge->SetCurve( nullptr );
}
}
}
}
//------------------------------------------------------------------------------
/** \brief \ru Выдать использованные кривые.
\en Get used curves. \~
\details \ru Выдать использованные кривые и переименовать в соответствии с последними.\n
\en Get used curves and rename in compliance with the last ones.\n \~
\param[in] curveList - \ru Набор кривых.
\en Set of curves. \~
\param[out] usedCurves - \ru Результат - использованные кривые.
\en The result are the used curves. \~
*/
// ---
template<class CurvesArray, class CurvesArray2>
void MpGraph::GetUsedCurves( const CurvesArray & curveList, CurvesArray2 & usedCurves )
{
SArray<ptrdiff_t> curveName( 0, 1 );
GetEdgeName( curveName );
usedCurves.reserve( curveName.Count() );
for ( ptrdiff_t j = 0; j < (ptrdiff_t)curveName.Count(); j++ ) {
ptrdiff_t n = curveName[j];
if ( n < 0 || n >( ptrdiff_t )curveList.size() - 1 )
continue;
usedCurves.push_back( curveList[n] );
for ( ptrdiff_t i = 0; i < (ptrdiff_t)loops.Count(); i++ ) {
MpLoop * loop = GetLoop( i );
for ( ptrdiff_t k = 0; k < (ptrdiff_t)loop->GetEdgesCount(); k++ )
if ( loop->GetEdge( k )->GetName() == n )
loop->GetEdge( k )->SetName( j );
}
}
nameCount = curveName.Count();
}
//------------------------------------------------------------------------------
/** \brief \ru Определить ориентацию контуров.
\en Determine the contours' orientation. \~
\details \ru Определить ориентацию контуров по их вложенности.\n
\en Determine the contours' orientation by its inclusion.\n \~
\param[in] contourArray - \ru Список контуров, по которым строился граф.
\en List of contours the graph is built for. \~
*/
// ---
template<class ContourArray>
void MpGraph::SetLoopsOrientation( const ContourArray & contourArray )
{
ptrdiff_t count = loops.Count();
ptrdiff_t cnt = contourArray.size();
cnt -= count;
if ( cnt < 0 || count == 0 )
return;
double t;
MbContour * contour = nullptr;
MbContour * contour0 = nullptr;
MbCartPoint p, p1;
ptrdiff_t i, j;
MbeLocation loc, loc1;
const double kk = M_E / 8;
SArray<ptrdiff_t> numb( count, 2 );
for ( i = 0; i < count; i++ ) {
numb.Add( 0 );
contour = contourArray[cnt + i];
double tmin = contour->GetTMin();
double tmax = contour->GetTMax();
double dt = kk * ( tmax - tmin );
// Лучше брать иррациональный параметр BUG_24550 // t = contour->GetTMin();
t = tmin + dt;
contour->PointOn( t, p );
// Лучше брать иррациональный параметр BUG_24550 // t = (t+contour->GetTMax())*0.5;
t = tmax - dt;
contour->PointOn( t, p1 );
for ( j = 0; j < count; j++ ) {
if ( i == j )
continue;
contour0 = contourArray[cnt + j];
loc = contour0->PointLocation( p );
if ( loc == loc_Inside )
numb[i] = numb[i] + 1;
else {
if ( loc == loc_OnCurve ) {
loc1 = contour0->PointLocation( p1 );
if ( loc1 == loc_Inside )
numb[i] = numb[i] + 1;
else if ( loc1 == loc_OnCurve && i < j )
numb[i] = numb[i] + 1;
}
}
}
}
for ( i = 0; i < count; i++ )
loops[i]->SetOrientation( numb[i] % 2 == 0 );
}
//------------------------------------------------------------------------------
/** \brief \ru Удалить вершину.
\en Delete a vertex. \~
@@ -737,7 +990,7 @@ IMPL_PERSISTENT_OPS( MpGraph )
*/ // ---
inline void DeleteVertex( MpVertex *& vertex ) {
delete vertex;
vertex = c3d_null;
vertex = nullptr;
}
@@ -751,7 +1004,7 @@ inline void DeleteVertex( MpVertex *& vertex ) {
*/ // ---
inline void DeleteEdge( MpEdge *& edge ) {
delete edge;
edge = c3d_null;
edge = nullptr;
}
@@ -765,7 +1018,7 @@ inline void DeleteEdge( MpEdge *& edge ) {
*/ // ---
inline void DeleteLoop( MpLoop *& loop ) {
delete loop;
loop = c3d_null;
loop = nullptr;
}
@@ -779,7 +1032,7 @@ inline void DeleteLoop( MpLoop *& loop ) {
*/ // ---
inline void DeleteGraph( MpGraph *& graph ) {
delete graph;
graph = c3d_null;
graph = nullptr;
}
@@ -848,7 +1101,50 @@ MATH_FUNC (MpGraph *) EncloseContoursBuilder( const RPArray<MbCurve> & curveLi
double accuracy,
bool strict,
VERSION version,
IProgressIndicator * progInd = c3d_null );
IProgressIndicator * progInd = nullptr );
//------------------------------------------------------------------------------
/** \brief \ru Построить контуры вокруг заданной точки.
\en Create contours around the given point. \~
\details \ru Построить контуры вокруг заданной точки.
Строится один внешний и несколько внутренних контуров с одним уровнем вложенности.
На вход не должны приходить составные кривые (контуры и ломаные).
\en Create contours around the given point.
One outer and several inner loops are constructed with single nesting level.
Do not send composite curves (contours and polygons). Lay them on the components. \~
\param[in] curveList - \ru Список кривых для построения.
\en List of curves for construction. \~
\param[in] p - \ru Точка, вокруг которой строятся контуры.
\en A point the contours are constructed around. \~
\param[out] usedCurves - \ru Использованные кривые.
\en Used curves. \~
\param[out] contourArray - \ru Результат построения - набор контуров.
\en The result of construction is a set of contours. \~
\param[in] accuracy - \ru Погрешность определения пересечения и близости кривых.
\en The accuracy of determining the intersection of curves and proximity. \~
\param[in] strict - \ru Если false, сборка производится с загрубленной точностью.
\en If false, the construction is performed roughly. \~
\param[in] version - \ru Версия построения. Последняя версия Math::DefaultMathVersion().
\en The version of construction. The last version Math::DefaultMathVersion(). \~
\param[in] progInd - \ru Индикатора прогресса выполнения.
\en Execution progress indicator. \~
\return \ru Граф построения контуров.
\en Contours construction graph. \~
\warning \ru При использовании функций EncloseContoursBuilder, OuterContoursBuilder, ContoursReconstructor
состояние флага strict и версия version должно использоваться одно в одном процессе обработки.
\en While using functions EncloseContoursBuilder, OuterContoursBuilder, ContoursReconstructor,
a single state of 'strict' flag and version must be used in one treatment process. \~
\ingroup Algorithms_2D
*/
// ---
MATH_FUNC (MpGraph *) EncloseContoursBuilder( const c3d::PlaneCurvesSPtrVector & curveList,
const MbCartPoint & p,
c3d::PlaneCurvesSPtrVector & usedCurves,
c3d::PlaneContoursSPtrVector & contourArray,
double accuracy,
bool strict,
VERSION version,
IProgressIndicator * progInd = nullptr );
//------------------------------------------------------------------------------
@@ -886,7 +1182,44 @@ MATH_FUNC (MpGraph *) OuterContoursBuilder( const RPArray<MbCurve> & curveList,
double accuracy,
bool strict,
VERSION version,
IProgressIndicator * progInd = c3d_null );
IProgressIndicator * progInd = nullptr );
//------------------------------------------------------------------------------
/** \brief \ru Построить объемлющие контуры на основе заданных кривых.
\en Construct enclosing contours on the basis of the given curves. \~
\details \ru Построить объемлющие контуры на основе заданных кривых.
Строятся внешние и внутренние контуры с произвольным уровнем вложенности.
На вход не должны приходить составные кривые (контуры и ломаные).
\en Construct enclosing contours on the basis of the given curves.
Outer and inner loops are constructed with an arbitrary level of inclusion.
Do not send composite curves (contours and polygons). Lay them on the components. \~
\param[in] curveList - \ru Список кривых для построения.
\en List of curves for construction. \~
\param[out] contourArray - \ru Результат построения - набор контуров.
\en The result of construction is a set of contours. \~
\param[in] accuracy - \ru Погрешность определения пересечения и близости кривых.
\en The accuracy of determining the intersection of curves and proximity. \~
\param[in] strict - \ru Если false, сборка производится с загрубленной точностью.
\en If false, the construction is performed roughly. \~
\param[in] version - \ru Версия построения. Последняя версия Math::DefaultMathVersion().
\en The version of construction. The last version Math::DefaultMathVersion(). \~
\param[in] progInd - \ru Индикатора прогресса выполнения.
\en Execution progress indicator. \~
\return \ru Граф построения контуров.
\en Contours construction graph. \~
\warning \ru При использовании функций EncloseContoursBuilder, OuterContoursBuilder, ContoursReconstructor
состояние флага strict и версия version должно использоваться одно в одном процессе обработки.
\en While using functions EncloseContoursBuilder, OuterContoursBuilder, ContoursReconstructor,
a single state of 'strict' flag and version must be used in one treatment process. \~
\ingroup Algorithms_2D
*/
// ---
MATH_FUNC( MpGraph * ) OuterContoursBuilder( const c3d::PlaneCurvesSPtrVector & curveList,
c3d::PlaneContoursSPtrVector & contourArray,
double accuracy,
bool strict,
VERSION version,
IProgressIndicator * progInd = nullptr );
//------------------------------------------------------------------------------
/** \brief \ru Перестроить контуры, построенные ранее вокруг точки.
@@ -924,7 +1257,45 @@ MATH_FUNC (MpGraph *) ContoursReconstructor( const RPArray<MbCurve> & curveLis
double accuracy,
bool strict,
VERSION version,
IProgressIndicator * progInd = c3d_null );
IProgressIndicator * progInd = nullptr );
//------------------------------------------------------------------------------
/** \brief \ru Перестроить контуры, построенные ранее вокруг точки.
\en Reconstruct contours constructed around the point before. \~
\details \ru Перестроить контуры, построенные ранее вокруг точки.
Функция перестраивает граф, построенный функцией EncloseContoursBuilder.
\en Reconstruct contours constructed around the point before.
The function reconstructs the graph constructed by EncloseContoursBuilder function. \~
\param[in] curveList - \ru Список кривых для построения.
\en List of curves for construction. \~
\param[in] graph - \ru Граф для перестроения.
\en A graph to reconstruct. \~
\param[out] contourArray - \ru Результат построения - набор контуров.
\en The result of construction is a set of contours. \~
\param[in] accuracy - \ru Погрешность определения пересечения и близости кривых.
\en The accuracy of determining the intersection of curves and proximity. \~
\param[in] strict - \ru Если false, сборка производится с загрубленной точностью.
\en If false, the construction is performed roughly. \~
\param[in] version - \ru Версия построения. Последняя версия Math::DefaultMathVersion().
\en The version of construction. The last version Math::DefaultMathVersion(). \~
\param[in] progInd - \ru Индикатора прогресса выполнения.
\en Execution progress indicator. \~
\return \ru Граф построения контуров.
\en Contours construction graph. \~
\warning \ru При использовании функций EncloseContoursBuilder, OuterContoursBuilder, ContoursReconstructor
состояние флага strict и версия version должно использоваться одно в одном процессе обработки.
\en While using functions EncloseContoursBuilder, OuterContoursBuilder, ContoursReconstructor,
a single state of 'strict' flag and version must be used in one treatment process. \~
\ingroup Algorithms_2D
*/
// ---
MATH_FUNC( MpGraph * ) ContoursReconstructor( const c3d::PlaneCurvesSPtrVector & curveList,
MpGraph * graph,
c3d::PlaneContoursSPtrVector contourArray,
double accuracy,
bool strict,
VERSION version,
IProgressIndicator * progInd = nullptr );
#endif // __CONTOUR_GRAPH_H
+1 -1
View File
@@ -573,7 +573,7 @@ public:
/// \ru Задать диапазон. \en Set range.
void SetRange( double vPlus, double vMinus );
/// \ru Получить номинал. \en Get value.
bool GetValue( double& v );
bool GetValue( double& v ) const;
/// \ru Получить границы диапазона и значение, если они заданы. \en Get bounds of range and a value if they are specified.
bool GetRange( double& v, double& vPlus, double& vMinus ) const;
/// \ru Получить границы диапазона, если они заданы. \en Get bounds of the range if they are specified.
+29 -5
View File
@@ -36,6 +36,25 @@ class MbProductInfo;
#define LENGTH_UNIT_INCH 25.4
//------------------------------------------------------------------------------
/** \brief \ru Константы единиц массы.
\en Mass units constants.\~
\ingroup Data_Interface
*/
// ---
/// \ru Граммы. \en Grams.
#define MASS_UNIT_GM 1.0
/// \ru Килограммы. \en Kilograms.
#define MASS_UNIT_KG 1000.0
/// \ru Миллиграммы. \en Milligrams.
#define MASS_UNIT_MG 0.001
/// \ru Микрограммы. \en Micrograms.
#define MASS_UNIT_MKG 1e-6
/// \ru Унции. \en Ounces.
#define MASS_UNIT_OU 28.35
/// \ru Фунты. \en Pounds.
#define MASS_UNIT_PN 453.59
#define EXPORT_DEFAULT -1 ///< \ru По умолчанию для заданного формата. \en Default for specified format.
#define EXPORT_STEP_203 203 ///< \ru STEP прикладной протокол 203 ( Проектирование с управляемой конфигурацией ). \en STEP applied protocol STEP 203 (Configuration controlled design).
@@ -245,8 +264,9 @@ enum eMsgDetail {
emd_ErrorStringEncoding, ///< \ru Ошибка кодировки строки. \en String encoding error.
emd_WarningCurveParametrizationCorrected ///< \ru Исправлена параметризация кривой. \en Curve parameterization was corrected.
emd_WarningCurveParametrizationCorrected, ///< \ru Исправлена параметризация кривой. \en Curve parameterization was corrected.
emd_ErrorJTDuplicatedTriangles ///< \ru Сетка содержит дублирующиеся треугольники и не может быть записана. \en Mesh contains duplicate triangles and cannot be written.
};
@@ -275,11 +295,15 @@ struct C3DConverterDebugSettings {
*/
bool saveModelTwin;
/// \ru Включить вывод статистики импортируемых объектов. \en Enable logging the statistic of imported objects.
bool cerrOutImportStatistic;
/// \ru Конструктор. \en Conctuctor.
C3DConverterDebugSettings()
: enableCERRout(false)
, cerrOutUserTreeTraverse(false)
, cerrOutIntermediateTreeTraverse(false)
: enableCERRout( false )
, cerrOutUserTreeTraverse( false )
, cerrOutIntermediateTreeTraverse( false )
, cerrOutImportStatistic( false )
, saveModelTwin( false ) {
}
};
@@ -454,7 +478,7 @@ public:
virtual bool AttatchIdAttributes() const { return true; }
/// \ru Получить пользовательский преобразователь строк. \en Get user string transformer.
virtual SPtr<IC3DCharEncodingTransformer> GetUserCharEncodingTransformer() const { return SPtr<IC3DCharEncodingTransformer>(c3d_null); }
virtual SPtr<IC3DCharEncodingTransformer> GetUserCharEncodingTransformer() const { return SPtr<IC3DCharEncodingTransformer>(nullptr); }
}; // IConvertorProperty3D
+31 -25
View File
@@ -65,7 +65,7 @@ public:
/** \brief \ru Прообраз новой интерфейсной функции - получить наполнение.
\en Prototype of a new interface function - get the filling. \~
*/
virtual MbItem * GetContent() /*{ return c3d_null; }*/ = 0;
virtual MbItem * GetContent() /*{ return nullptr; }*/ = 0;
/** \brief \ru Создать документ с новой сборкой при импорте.
\en Create a document with a new assembly while importing. \~
@@ -75,8 +75,8 @@ public:
\en Assembly name. \~
\param[in] solids - \ru Тела, добавляемые в сборку.
\en Solids to add into the assembly. \~
\return \ru Экземпляр сборки, если операция прошла успешно, c3d_null в противном случае.
\en Instance of an assembly if the operation succeeded, c3d_null - otherwise. \~
\return \ru Экземпляр сборки, если операция прошла успешно, nullptr в противном случае.
\en Instance of an assembly if the operation succeeded, nullptr - otherwise. \~
*/
virtual ModelAssemblyPtr CreateAssembly( const c3d::ItemsSPtrVector & componentItems, const c3d::string_t& fileName ) = 0;
@@ -89,8 +89,8 @@ public:
\en Solids to add into a part. \~
\param[in] fileName - \ru Имя детали.
\en A part name. \~
\return \ru Экземпляр детали, если операция прошла успешно, c3d_null в противном случае.
\en Instance of the part if the operation succeeded, c3d_null - otherwise. \~
\return \ru Экземпляр детали, если операция прошла успешно, nullptr в противном случае.
\en Instance of the part if the operation succeeded, nullptr - otherwise. \~
*/
virtual ModelPartPtr CreatePart( const c3d::ItemsSPtrVector & componentItems, const c3d::string_t& fileName ) = 0;
@@ -98,8 +98,8 @@ public:
\en Get an assembly for export. \~
\details \ru Увеличить счётчик ссылок результирующей сборки на 1.
\en Increase the reference counter of the resultant assembly by 1. \~
\return \ru Экземпляр сборки, если операция прошла успешно, c3d_null в противном случае.
\en Instance of an assembly if the operation succeeded, c3d_null - otherwise. \~
\return \ru Экземпляр сборки, если операция прошла успешно, nullptr в противном случае.
\en Instance of an assembly if the operation succeeded, nullptr - otherwise. \~
*/
virtual ModelAssemblyPtr GetInstanceAssembly( ) = 0;
@@ -108,8 +108,8 @@ public:
\en Get the detail for export. \~
\details \ru Увеличить счётчик ссылок результирующей детали на 1.
\en Increase the reference counter of the resultant part by 1. \~
\return \ru Экземпляр детали, если операция прошла успешно, c3d_null в противном случае.
\en Instance of the part if the operation succeeded, c3d_null - otherwise. \~
\return \ru Экземпляр детали, если операция прошла успешно, nullptr в противном случае.
\en Instance of the part if the operation succeeded, nullptr - otherwise. \~
*/
virtual ModelPartPtr GetInstancePart( ) = 0;
@@ -157,6 +157,9 @@ public:
};
class MaAtributePostRemover;
//------------------------------------------------------------------------------
/** \brief \ru Формирователь геометрического представления PMI.
\en Generator of PMI's geometry shape. \~
@@ -168,11 +171,14 @@ public:
// ---
class CONV_CLASS C3DPmiToItem : public MbRefItem {
SPtr<C3DSymbolToItem> symToItem;
MaAtributePostRemover* tempAttributeManager;
public:
C3DPmiToItem( SPtr<C3DSymbolToItem> = SPtr<C3DSymbolToItem>() );
virtual SPtr<MbItem> operator() ( const MaAnnotationItem* ) const;
virtual SPtr<MaAnnotationItem> operator() ( const MbItem* ) const;
void AddPartItem( const MbItem& ); // Добавить элемент для установления связи PMI и элемента модели
virtual ~C3DPmiToItem();
};
@@ -341,8 +347,8 @@ public:
\en LCS of the assembly in the parent's model. \~
\param[in] fileName - \ru Имя сборки.
\en Assembly name. \~
\return \ru Экземпляр сборки, если операция прошла успешно, c3d_null в противном случае.
\en Instance of an assembly if the operation succeeded, c3d_null - otherwise. \~
\return \ru Экземпляр сборки, если операция прошла успешно, nullptr в противном случае.
\en Instance of an assembly if the operation succeeded, nullptr - otherwise. \~
*/
virtual ModelAssemblyPtr CreateAssembly( const MbPlacement3D &place, const c3d::ItemsSPtrVector & componentItems, const c3d::string_t& fileName ) = 0;
@@ -356,23 +362,23 @@ public:
\en Solids included in the part. \~
\param[in] fileName - \ru Название детали.
\en Solid's name. \~
\return \ru Экземпляр детали, если операция прошла успешно, c3d_null в противном случае.
\en Instance of the part if the operation succeeded, c3d_null - otherwise. \~
\return \ru Экземпляр детали, если операция прошла успешно, nullptr в противном случае.
\en Instance of the part if the operation succeeded, nullptr - otherwise. \~
*/
virtual ModelPartPtr CreatePart( const MbPlacement3D &place, const c3d::ItemsSPtrVector & componentItems, const c3d::string_t& fileName ) = 0;
/** \brief \ru Получить сборку для экспорта.
\en Get an assembly for export. \~
\return \ru Экземпляр сборки, если операция прошла успешно, c3d_null в противном случае.
\en Instance of an assembly if the operation succeeded, c3d_null - otherwise. \~
\return \ru Экземпляр сборки, если операция прошла успешно, nullptr в противном случае.
\en Instance of an assembly if the operation succeeded, nullptr - otherwise. \~
*/
virtual ModelAssemblyPtr GetInstanceAssembly( ) = 0;
/** \brief \ru Получить деталь для экспорта.
\en Get the detail for export. \~
\return \ru Экземпляр детали, если операция прошла успешно, c3d_null в противном случае.
\en Instance of the part if the operation succeeded, c3d_null - otherwise. \~
\return \ru Экземпляр детали, если операция прошла успешно, nullptr в противном случае.
\en Instance of the part if the operation succeeded, nullptr - otherwise. \~
*/
virtual ModelPartPtr GetInstancePart( ) = 0;
@@ -445,15 +451,15 @@ public:
\en Get an empty interface of the insertion for creation of subassembly or a part while importing. \~
\details \ru Увеличить счётчик ссылок на 1.
\en Increase the reference counter by 1. \~
\return \ru Интерфейс вставки, если операция прошла успешно или c3d_null в противном случае.
\en Interface of the instance if the operation succeeded and c3d_null otherwise. \~
\return \ru Интерфейс вставки, если операция прошла успешно или nullptr в противном случае.
\en Interface of the instance if the operation succeeded and nullptr otherwise. \~
*/
virtual ModelInstancePtr PrepareInstance() = 0;
/** \brief \ru Получить интерфейс следующей вставки для создания подсборки или детали при экспорте.
\en Get the interface of the next insertion for creation of a subassembly or a part while exporting. \~
\return \ru Интерфейс вставки, если операция прошла успешно или c3d_null в противном случае.
\en Interface of the insertion if the operation succeeded and c3d_null otherwise. \~
\return \ru Интерфейс вставки, если операция прошла успешно или nullptr в противном случае.
\en Interface of the insertion if the operation succeeded and nullptr otherwise. \~
*/
virtual ModelInstancePtr NextInstance( bool includeInvisible ) = 0;
@@ -524,15 +530,15 @@ public:
\en Get an empty interface of the insertion for creation of subassembly or a part while importing. \~
\details \ru Увеличить счётчик ссылок на 1.
\en Increase the reference counter by 1. \~
\return \ru Интерфейс вставки, если операция прошла успешно или c3d_null в противном случае.
\en Interface of the instance if the operation succeeded and c3d_null otherwise. \~
\return \ru Интерфейс вставки, если операция прошла успешно или nullptr в противном случае.
\en Interface of the instance if the operation succeeded and nullptr otherwise. \~
*/
virtual ModelInstancePtr PrepareInstance() = 0;
/** \brief \ru Получить интерфейс следующей вставки для создания подсборки или детали при экспорте.
\en Get the interface of the next insertion for creation of a subassembly or a part while exporting. \~
\return \ru Интерфейс вставки, если операция прошла успешно или c3d_null в противном случае.
\en Interface of the insertion if the operation succeeded and c3d_null otherwise. \~
\return \ru Интерфейс вставки, если операция прошла успешно или nullptr в противном случае.
\en Interface of the insertion if the operation succeeded and nullptr otherwise. \~
*/
virtual ModelInstancePtr NextInstance( bool includeInvisible ) = 0;
+60 -35
View File
@@ -26,6 +26,7 @@ class IScaleRequestor;
class ItModelDocument;
class IConvertorProperty3D;
class IConfigurationSelector;
class IAttributeNamesCollector;
/**
\addtogroup Exchange_Interface
@@ -102,8 +103,8 @@ namespace c3d {
*/
CONV_FUNC( MbeConvResType ) ImportFromFile( MbModel& model,
const path_string& fileName,
IConvertorProperty3D* prop = c3d_null,
IProgressIndicator* indicator = c3d_null );
IConvertorProperty3D* prop = nullptr,
IProgressIndicator* indicator = nullptr );
/** \brief \ru Прочитать файл обменного формата в элемент.
@@ -126,8 +127,8 @@ namespace c3d {
*/
CONV_FUNC( MbeConvResType ) ImportFromFile( c3d::ItemSPtr& item,
const path_string& filePath,
IConvertorProperty3D* prop = c3d_null,
IProgressIndicator* indicator = c3d_null );
IConvertorProperty3D* prop = nullptr,
IProgressIndicator* indicator = nullptr );
/** \brief \ru Прочитать файл обменного формата в модель.
\en Read a file of an exchange format into model. \~
@@ -149,8 +150,8 @@ namespace c3d {
*/
CONV_FUNC( MbeConvResType ) ImportFromFile( ItModelDocument& mDoc,
const path_string& filePath,
IConvertorProperty3D* prop = c3d_null,
IProgressIndicator* indicator = c3d_null );
IConvertorProperty3D* prop = nullptr,
IProgressIndicator* indicator = nullptr );
/** \brief \ru Записать модель в файл обменного формата.
\en Write the model into an exchange format file. \~
@@ -172,8 +173,8 @@ namespace c3d {
*/
CONV_FUNC( MbeConvResType ) ExportIntoFile( MbModel& model,
const path_string& filePath,
IConvertorProperty3D* prop = c3d_null,
IProgressIndicator* indicator = c3d_null );
IConvertorProperty3D* prop = nullptr,
IProgressIndicator* indicator = nullptr );
/** \brief \ru Записать модель в файл обменного формата.
\en Write the model into an exchange format file. \~
@@ -195,8 +196,8 @@ namespace c3d {
*/
CONV_FUNC( MbeConvResType ) ExportIntoFile( MbItem& item,
const path_string& filePath,
IConvertorProperty3D* prop = c3d_null,
IProgressIndicator* indicator = c3d_null );
IConvertorProperty3D* prop = nullptr,
IProgressIndicator* indicator = nullptr );
/** \brief \ru Записать модельный документ в файл обменного формата.
\en Write the model into an exchange format file. \~
@@ -218,8 +219,8 @@ namespace c3d {
*/
CONV_FUNC( MbeConvResType ) ExportIntoFile( ItModelDocument& mDoc,
const path_string& filePath,
IConvertorProperty3D* prop = c3d_null,
IProgressIndicator* indicator = c3d_null );
IConvertorProperty3D* prop = nullptr,
IProgressIndicator* indicator = nullptr );
/** \brief \ru Импортировать данные из буфера в модель.
@@ -241,8 +242,8 @@ namespace c3d {
CONV_FUNC( MbeConvResType ) ImportFromBuffer( MbModel& model,
const C3DExchangeBuffer& buffer,
MbeModelExchangeFormat modelFormat,
IConvertorProperty3D* prop = c3d_null,
IProgressIndicator* indicator = c3d_null );
IConvertorProperty3D* prop = nullptr,
IProgressIndicator* indicator = nullptr );
/** \brief \ru Импортировать данные из буфера в модель.
@@ -264,8 +265,8 @@ namespace c3d {
CONV_FUNC( MbeConvResType ) ImportFromBuffer( c3d::ItemSPtr& item,
const C3DExchangeBuffer& buffer,
MbeModelExchangeFormat modelFormat,
IConvertorProperty3D* prop = c3d_null,
IProgressIndicator* indicator = c3d_null );
IConvertorProperty3D* prop = nullptr,
IProgressIndicator* indicator = nullptr );
/** \brief \ru Экспортировать модель в буфер.
@@ -287,8 +288,8 @@ namespace c3d {
CONV_FUNC( MbeConvResType ) ExportIntoBuffer( MbModel& model,
MbeModelExchangeFormat modelFormat,
C3DExchangeBuffer& buffer,
IConvertorProperty3D* prop = c3d_null,
IProgressIndicator* indicator = c3d_null );
IConvertorProperty3D* prop = nullptr,
IProgressIndicator* indicator = nullptr );
/** \brief \ru Экспортировать модель в буфер.
@@ -310,8 +311,8 @@ namespace c3d {
CONV_FUNC( MbeConvResType ) ExportIntoBuffer( MbItem& item,
MbeModelExchangeFormat modelFormat,
C3DExchangeBuffer& buffer,
IConvertorProperty3D* prop = c3d_null,
IProgressIndicator* indicator = c3d_null );
IConvertorProperty3D* prop = nullptr,
IProgressIndicator* indicator = nullptr );
/** \brief \ru Экспортировать модельный документ в буфер.
\en Export model document into buffer. \~
@@ -332,8 +333,8 @@ namespace c3d {
CONV_FUNC( MbeConvResType ) ExportIntoBuffer( ItModelDocument& item,
MbeModelExchangeFormat modelFormat,
C3DExchangeBuffer& buffer,
IConvertorProperty3D* prop = c3d_null,
IProgressIndicator* indicator = c3d_null );
IConvertorProperty3D* prop = nullptr,
IProgressIndicator* indicator = nullptr );
//------------------------------------------------------------------------------
/** \brief \ru Буфер для обмена.
@@ -349,7 +350,7 @@ namespace c3d {
// \ru Конструктор. \en Constructor.
C3DExchangeBuffer()
: data( c3d_null )
: data( nullptr )
, count( 0 ) {
}
@@ -416,10 +417,10 @@ public:
\en Implementation of converter's properties interface. \~
\param[in] idoc - \ru Реализация интерфейса документа.
\en Implementation of document interface. \~
\param[in] stream - \ru Поток, из которого производится чтение (может быть c3d_null).
\en Stream from which reading is performed (can be c3d_null). \~
\param[in] indicator - \ru Индикатор хода процесса (может быть c3d_null).
\en The process progress indicator (can be c3d_null). \~
\param[in] stream - \ru Поток, из которого производится чтение (может быть nullptr).
\en Stream from which reading is performed (can be nullptr). \~
\param[in] indicator - \ru Индикатор хода процесса (может быть nullptr).
\en The process progress indicator (can be nullptr). \~
\param[in] qeuryStitch - \ru Диалог запроса на сшивку поверхностей.
\en Dialog of request for stitching the surfaces. \~
\return \ru Код завершения операции.
@@ -440,10 +441,10 @@ public:
\en Implementation of converter's properties interface. \~
\param[in] idoc - \ru Реализация интерфейса документа.
\en Implementation of document interface. \~
\param[in] stream - \ru Поток, в который производится запись (может быть c3d_null).
\en Stream in which the record is performed (can be c3d_null). \~
\param[in] indicator - \ru Индикатор хода процесса (может быть c3d_null).
\en The process progress indicator (can be c3d_null). \~
\param[in] stream - \ru Поток, в который производится запись (может быть nullptr).
\en Stream in which the record is performed (can be nullptr). \~
\param[in] indicator - \ru Индикатор хода процесса (может быть nullptr).
\en The process progress indicator (can be nullptr). \~
\return \ru Код завершения операции.
\en Code of the operation termination. \~
\ingroup ACIS_Exchange
@@ -800,6 +801,30 @@ public:
*/
virtual MbeConvResType ImportForeign( const c3d::path_string& path, ItModelDocument& idoc, IConvertorProperty3D* prop = 0, IProgressIndicator* indicator = 0 ) = 0;
/** \brief \ru Импортировать предварительные данные модели: список атрибутов и конфигураций.
\en Import preliminary model data: list of attributes and configurations . \~
\param[in] prop - \ru Реализация интерфейса свойств конвертера.
\en Implementation of converter's properties interface. \~
\param[in] indicator - \ru Индикатор хода процесса.
\return \ru Код завершения операции.
\en Code of the operation termination. \~
\ingroup Data_Exchange
*/
virtual MbeConvResType PreliminaryImport( IConvertorProperty3D& prop, IProgressIndicator* indicator = 0) = 0;
/** \brief \ru Задать параметры для сохранения данных на этапе предварительного импорта.
\en Set parameters to save datа at the stage of preliminary import. \~
\param[in] attrCollector - \ru Реализация интерфейса для сохранения имен атрибутов модели.
\en Implementation of the interface for collecting model attribute names. . \~
\param[in] configSelector - \ru Реализация интерфейса выбора конфигурации файла.
\en Implementation of the file configuration selection interface . \~
\note \ru ЭКСПЕРИМЕНТАЛЬНАЯ.
\en EXPEREIMENTAL \~.
\ingroup Data_Exchange
*/
virtual void SetPreliminaryCallbacks( IAttributeNamesCollector* attrCollector, IConfigurationSelector* configSelector) = 0;
}; // IConvertor3D
@@ -845,8 +870,8 @@ CONV_FUNC( MbeConvResType ) SATRead( IConvertorProperty3D& prop, ItModelDocument
\en Implementation of converter's properties interface. \~
\param[in] idoc - \ru Реализация интерфейса документа.
\en Implementation of document interface. \~
\param[in] indicator - \ru Индикатор хода процесса (может быть c3d_null).
\en The process progress indicator (can be c3d_null). \~
\param[in] indicator - \ru Индикатор хода процесса (может быть nullptr).
\en The process progress indicator (can be nullptr). \~
\return \ru Код завершения операции.
\en Code of the operation termination. \~
\ingroup ACIS_Exchange
@@ -1144,7 +1169,7 @@ namespace c3d {
const char* data,
size_t length,
MbeModelExchangeFormat modelFormat,
IConvertorProperty3D* prop = c3d_null, IProgressIndicator* indicator = c3d_null );
IConvertorProperty3D* prop = nullptr, IProgressIndicator* indicator = nullptr );
/** \brief \ru Экспортировать модель в буфер.
\en Export model into buffer. \~
@@ -1195,7 +1220,7 @@ namespace c3d {
DEPRECATE_DECLARE CONV_FUNC( MbeConvResType ) ExportIntoBuffer( MbItem& item, MbeModelExchangeFormat modelFormat,
char*& data,
size_t& length,
IConvertorProperty3D* prop = c3d_null, IProgressIndicator* indicator = c3d_null );
IConvertorProperty3D* prop = nullptr, IProgressIndicator* indicator = nullptr );
}
-872
View File
@@ -1,872 +0,0 @@
////////////////////////////////////////////////////////////////////////////////
/**
\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 Path where integration kit for external module is located.\~
\details \ru Путь должен содержать завершающий.
\en Path where integration kit for external module is located.\~
\ingroup Data_Interface
*/
// ---
#ifdef _UNICODE
#define C3D_PATH_TO_PLUGIN L"C3D_PATH_TO_PLUGIN"
#else
#define C3D_PATH_TO_PLUGIN "C3D_PATH_TO_PLUGIN"
#endif
//------------------------------------------------------------------------------
/** \brief \ru Актуальная версия API плагина.
\en Current API version of the plugin.\~
\ingroup Data_Interface
*/
// ---
#define CURRENT_API_VERSION_MAJOR "2"
//------------------------------------------------------------------------------
/** \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_W_SET_MODEL_CONFIGURATION_SELECT WSetModelConfigurationSelect
#define C3D_PLUGIN_RELEASE_SOURCE ReleaseSource
#define C3D_PLUGIN_MAJOR_API_VERSION MajorAPIVersion
//------------------------------------------------------------------------------
/** \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_W_SET_MODEL_CONFIGURATION_SELECT_NAME "WSetModelConfigurationSelect"
#define C3D_PLUGIN_RELEASE_SOURCE_NAME "ReleaseSource"
#define C3D_PLUGIN_MAJOR_API_VERSION_NAME "MajorAPIVersion"
struct ObModelSource;
struct IWSelectConfigurationCallback;
//------------------------------------------------------------------------------
/** \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_W_SET_MODEL_CONFIGURATION_SELECT_DECLARE extern "C" __declspec( dllexport ) void _cdecl C3D_PLUGIN_W_SET_MODEL_CONFIGURATION_SELECT ( IWSelectConfigurationCallback* );
#define C3D_PLUGIN_RELEASE_EXPORT_DECLARE extern "C" __declspec( dllexport ) void _cdecl C3D_PLUGIN_RELEASE_SOURCE ( ObModelSource* );
#define C3D_PLUGIN_MAJOR_API_VERSION_DECLARE extern "C" __declspec( dllexport ) const char* _cdecl C3D_PLUGIN_MAJOR_API_VERSION ();
#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_W_SET_MODEL_CONFIGURATION_SELECT_DECLARE void C3D_PLUGIN_W_SET_MODEL_CONFIGURATION_SELECT ( IWSelectConfigurationCallback* );
#define C3D_PLUGIN_RELEASE_EXPORT_DECLARE void C3D_PLUGIN_RELEASE_SOURCE ( ObModelSource* );
#define C3D_PLUGIN_MAJOR_API_VERSION_DECLARE const char* C3D_PLUGIN_MAJOR_API_VERSION ();
#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_W_SET_MODEL_CONFIGURATION_SELECT_CALL ) ( IWSelectConfigurationCallback* );
typedef void ( _cdecl* C3D_PLUGIN_RELEASE_SOURCE_CALL )( ObModelSource* );
typedef const char* ( _cdecl* C3D_PLUGIN_MAJOR_API_VERSION_CALL ) ( );
#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_W_SET_MODEL_CONFIGURATION_SELECT_CALL ) ( IWSelectConfigurationCallback* );
typedef void ( * C3D_PLUGIN_RELEASE_SOURCE_CALL ) ( ObModelSource* );
typedef const char* ( * C3D_PLUGIN_MAJOR_API_VERSION_CALL ) ( );
#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 2
#define C3D_SYMBOL_PRREDEFINED 1
#define C3D_SYMBOL_ARC_LENGTH "C3D_SYMBOL_ARC_LENGTH"
#define C3D_SYMBOL_CONICAL_TAPER "C3D_SYMBOL_CONICAL_TAPER"
#define C3D_SYMBOL_COUNTERBORE "C3D_SYMBOL_COUNTERBORE"
#define C3D_SYMBOL_COUNTERSINK "C3D_SYMBOL_COUNTERSINK"
#define C3D_SYMBOL_DEPTH "C3D_SYMBOL_DEPTH"
#define C3D_SYMBOL_DIAMETER "C3D_SYMBOL_DIAMETER"
#define C3D_SYMBOL_PLUS_MINUS "C3D_SYMBOL_PLUS_MINUS"
#define C3D_SYMBOL_SLOPE "C3D_SYMBOL_SLOPE"
#define C3D_SYMBOL_SPHERICAL_DIAMETER "C3D_SYMBOL_SPHERICAL_DIAMETER"
#define C3D_SYMBOL_SPHERICAL_RADIUS "C3D_SYMBOL_SPHERICAL_RADIUS"
#define C3D_SYMBOL_SQUARE "C3D_SYMBOL_SQUARE"
#define C3D_SYMBOL_ANGULARITY "C3D_SYMBOL_ANGULARITY"
#define C3D_SYMBOL_CIRCULAR_RUNOUT "C3D_SYMBOL_CIRCULAR_RUNOUT"
#define C3D_SYMBOL_CIRCULARITY "C3D_SYMBOL_CIRCULARITY"
#define C3D_SYMBOL_CONCENTRICITY "C3D_SYMBOL_CONCENTRICITY"
#define C3D_SYMBOL_CYLINDRICITY "C3D_SYMBOL_CYLINDRICITY"
#define C3D_SYMBOL_FLATNESS "C3D_SYMBOL_FLATNESS"
#define C3D_SYMBOL_PARALLELISM "C3D_SYMBOL_PARALLELISM"
#define C3D_SYMBOL_PERPENDICULARITY "C3D_SYMBOL_PERPENDICULARITY"
#define C3D_SYMBOL_POSITION "C3D_SYMBOL_POSITION"
#define C3D_SYMBOL_LINE_PROFILE "C3D_SYMBOL_LINE_PROFILE"
#define C3D_SYMBOL_SURFACE_PROFILE "C3D_SYMBOL_SURFACE_PROFILE"
#define C3D_SYMBOL_STRAIGHTNESS "C3D_SYMBOL_STRAIGHTNESS"
#define C3D_SYMBOL_SYMMETRY "C3D_SYMBOL_SYMMETRY"
#define C3D_SYMBOL_TOTAL_RUNOUT "C3D_SYMBOL_TOTAL_RUNOUT"
#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 C3D_PLUGIN_BOOL IsDimension( int pmiId ) = 0;
virtual ObDimension Dimension( int pmiId ) = 0;
virtual ObPMICallout PMICallout( int calloutId ) = 0;
virtual int PMITextType( int textBlockId ) = 0;
virtual ObTextBlock PMITextLocation( int textBlockId ) = 0;
virtual const char* 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;
virtual double LengthUnitsFactor() = 0;
};
struct IWSelectConfigurationCallback {
virtual void AddConfiguration( const wchar_t* ) = 0;
virtual void SetActiveConfiguration( int ) = 0;
virtual int SelectConfiguration() const = 0;
};
#endif // __CONV_PUGIN_IMPORT_H
+20
View File
@@ -34,6 +34,26 @@ public:
};
//------------------------------------------------------------------------------
/**
\brief \ru Интерфейс для сохранения списка имен атрибутов модели.
\en Interface for collecting model attribute names. \~
\details \ru Вызывается во время импорта предварительных данных модели
для задания списка имен атрибутов модели.
\en Called during import of preliminary model data to specify
a list of model attribute names . \~
\note \ru ЭКСПЕРИМЕНТАЛЬНАЯ.
\en EXPEREIMENTAL. \~
*/
// ---
class IAttributeNamesCollector : public MbRefItem
{
public:
virtual void AddAttributeName( const c3d::string_t& configurationName ) = 0;
};
//------------------------------------------------------------------------------
///
/**
+28 -14
View File
@@ -54,33 +54,47 @@ namespace JTC {
std::vector<MbCartPoint3D> boundaryPoints;
double metricTolerance;
public:
TopoMesh(); // Конструктор
/// Конструктор
TopoMesh();
virtual ~TopoMesh(); //Деструктор
/// Деструктор
virtual ~TopoMesh();
bool Init( const MbMesh& mesh, bool enableDiagnostics = false ); // Инициализировать
/// Инициализировать
bool Init( const MbMesh& mesh, bool enableDiagnostics = false );
const MbMesh* GetMesh() const; // Получить сетку
/// Получить сетку
const MbMesh* GetMesh() const;
size_t MeshPolygonsCount() const; // Число полигонов
/// Число полигонов
size_t MeshPolygonsCount() const;
MeshPolygonPtr Polygon( size_t index ) const; // Получить полигон
/// Получить полигон
MeshPolygonPtr Polygon( size_t index ) const;
size_t MeshVerticisCount() const; // Число вершин
/// Число вершин
size_t MeshVerticisCount() const;
MeshVertexPtr Vertex( size_t index ) const; // Получить вершину
/// Получить вершину
MeshVertexPtr Vertex( size_t index ) const;
std::map< size_t, std::vector<size_t> > GetDegeneratedTriangles() const; // Получить вырожденные треуголники
/// Получить вырожденные треуголники
std::map< size_t, std::vector<size_t> > GetDegeneratedTriangles() const;
std::vector<MbCartPoint3D> GetBoundaryPoints() const; // Получить граничные точки сетки
/// Получить граничные точки сетки
std::vector<MbCartPoint3D> GetBoundaryPoints() const;
void Reset(); // Сбросить все данные
/// Сбросить все данные
void Reset();
size_t NextBoundaryVertex( size_t indexBoundaryVertex, const std::vector<size_t>& allBoundary ) const; // Получить следующую в цепочке граничную вершину.
/// Получить следующую в цепочке граничную вершину.
size_t NextBoundaryVertex( size_t indexBoundaryVertex, const std::vector<size_t>& allBoundary ) const;
bool InitVoidBoundFrom( std::vector<size_t>& freeBoundaryVerticis ); // Сформировать внешнюю границу начиная с указанной вершины.
/// Сформировать внешнюю границу начиная с указанной вершины.
bool InitVoidBoundFrom( std::vector<size_t>& freeBoundaryVerticis );
double MetricTolerance() const; // Получить точность задания расстояния.
/// Получить точность задания расстояния.
double MetricTolerance() const;
OBVIOUS_PRIVATE_COPY( TopoMesh )
};
+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 * = 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 void Transform( const MbMatrix3D & matr, MbRegTransform * = nullptr ); // \ru Преобразовать элемент согласно матрице. \en Transform element according to the matrix.
virtual void Move( const MbVector3D & to, MbRegTransform * = nullptr ); // \ru Сдвинуть вдоль вектора. \en Move along a vector.
virtual void Rotate( const MbAxis3D & axis, double angle, MbRegTransform * = nullptr ); // \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 * = c3d_null ) const; // \ru Сделать копию. \en Create a copy.
virtual MbCreator & Duplicate( MbRegDuplicate * = nullptr ) 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 = c3d_null ); // \ru Построение \en Construction.
RPArray<MbSpaceItem> * items = nullptr ); // \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 = c3d_null ) const;
void DuplicateAttributes( c3d::AttrVector & attrs, MbRegDuplicate * iReg = nullptr ) 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 = 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 void Transform( const MbMatrix3D &, MbRegTransform * ireg = nullptr ); // \ru Преобразовать элемент согласно матрице. \en Transform element according to the matrix.
virtual void Move ( const MbVector3D &, MbRegTransform * ireg = nullptr ); // \ru Сдвиг. \en Translation.
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * ireg = nullptr ); // \ru Повернуть вокруг оси. \en Rotate around an axis.
virtual MbCreator & Duplicate( MbRegDuplicate * = nullptr ) 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 = c3d_null ); // \ru Построение \en Construction
RPArray<MbSpaceItem> * items = nullptr ); // \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] : c3d_null ); }
const MbCreator * GetCreator( size_t k ) const { return ( (k < creators.size()) ? creators[k] : nullptr ); }
/// \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 * = c3d_null ) const ; // \ru Сделать копию \en Create a copy
virtual MbCreator & Duplicate( MbRegDuplicate * = nullptr ) 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 = c3d_null ); // \ru Построение \en Construction
RPArray<MbSpaceItem> * items = nullptr ); // \ru Построение \en Construction
private :
virtual void ReadDistances ( reader &in );
+18 -10
View File
@@ -62,15 +62,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 = c3d_null ) const; // \ru Сделать копию \en Create a copy
virtual MbCreator & Duplicate( MbRegDuplicate * iReg = nullptr ) 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 * = 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 Transform( const MbMatrix3D &, MbRegTransform * = nullptr ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = nullptr ); // \ru Сдвиг \en Translation
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = nullptr ); // \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
@@ -80,7 +80,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 = c3d_null );
bool CreateWireFrame( MbWireFrame *&, MbeCopyMode, RPArray<MbSpaceItem> * items = nullptr ) override;
/** \} */
@@ -115,8 +115,10 @@ IMPL_PERSISTENT_OPS( MbConnectingCurveCreator )
\en An object defining the edges names. \~
\param[out] res - \ru Код результата операции.
\en Operation result code. \~
\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] surface - \ru Поверхность, которая будет создана и на которой базируется соединительная кривая, (может быть возращён nullptr).
\en A surface on which the fillet curve is based on, it will be created by the method (can be nullptr). \~
\param[out] edge - \ru Построенная кривая сопряжения.
\en The constructed conjugation edge. \~
\result \ru Возвращает строитель.
\en Returns the constructor. \~
\ingroup Curve3D_Modeling
@@ -142,6 +144,8 @@ MATH_FUNC (MbCreator *) CreateFilletEdge( const MbCurve3D & curve1, double & t1,
\en Curve 1. \~
\param[in] curve2 - \ru Кривая 2.
\en Curve 2. \~
\param[out] edge - \ru Построенная кривая сопряжения.
\en The constructed conjugation edge. \~
\result \ru Возвращает строитель.
\en Returns the constructor. \~
\ingroup Curve3D_Modeling
@@ -164,6 +168,8 @@ MATH_FUNC (MbCreator *) CreateSplineEdge( const MbCurve3D & curve1, double t1, M
\en Curve 1. \~
\param[in] curve2 - \ru Кривая 2.
\en Curve 2. \~
\param[out] edge - \ru Построенная кривая сопряжения.
\en The constructed conjugation edge. \~
\result \ru Возвращает строитель.
\en Returns the constructor. \~
\ingroup Curve3D_Modeling
@@ -177,14 +183,16 @@ MATH_FUNC (MbCreator *) CreateConnectingEdge( const MbCurve3D & curve1, bool isB
//------------------------------------------------------------------------------
/** \brief \ru Cоздание строителя сопряжения двух кривых кубическим сплайном Эрмита (кривой-мостиком).
/** \brief \ru Создание строителя сопряжения двух кривых кубическим сплайном Эрмита (кривой-мостиком).
\en Create a constructor of two curves conjugation by a cubic Hermite spline (transition curve). \~
\details \ru Cоздание строителя сопряжения двух кривых кубическим сплайном Эрмита (кривой-мостиком).\n
\details \ru Создание строителя сопряжения двух кривых кубическим сплайном Эрмита (кривой-мостиком).\n
\en Create a constructor of two curves conjugation by a cubic Hermite spline (transition curve).\n \~
\param[in] curve1 - \ru Кривая 1.
\en Curve 1. \~
\param[in] curve2 - \ru Кривая 2.
\en Curve 2. \~
\param[out] edge - \ru Построенная кривая сопряжения.
\en The constructed conjugation edge. \~
\result \ru Возвращает строитель.
\en Returns the constructor. \~
\ingroup Curve3D_Modeling
@@ -194,7 +202,7 @@ MATH_FUNC (MbCreator *) CreateBridgeEdge( const MbCurve3D & curve1, double t1, b
const MbCurve3D & curve2, double t2, bool sense2,
const MbSNameMaker & names,
MbResultType & res,
MbEdge *& edge );
MbEdge *& edge );
#endif // __CR_CONNECTING_CURVE_H
+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 * = 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 void Transform( const MbMatrix3D &, MbRegTransform * = nullptr ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move( const MbVector3D &, MbRegTransform * = nullptr ); // \ru Сдвиг \en Translation
virtual void Rotate( const MbAxis3D &, double angle, MbRegTransform * = nullptr ); // \ru Повернуть вокруг оси \en Rotate around an axis
virtual MbCreator & Duplicate( MbRegDuplicate * = nullptr ) 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> * = c3d_null ); // \ru Построение \en Construction
RPArray<MbSpaceItem> * = nullptr ); // \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 * = 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 MbCreator & Duplicate( MbRegDuplicate * = nullptr ) const ; // \ru Сделать копию \en Create a copy
virtual void Transform( const MbMatrix3D & matr, MbRegTransform * = nullptr ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move( const MbVector3D & to, MbRegTransform * = nullptr ); // \ru Сдвиг \en Translation
virtual void Rotate( const MbAxis3D & axis, double angle, MbRegTransform * = nullptr ); // \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 = c3d_null ); // \ru Построение \en Construction
RPArray<MbSpaceItem> * items = nullptr ); // \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 = c3d_null;
MbCreator * result = nullptr;
::MakeDetachShells( solid, partSolid, sort );
+21 -21
View File
@@ -42,12 +42,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 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 MbCreator & Duplicate( MbRegDuplicate * = nullptr ) 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 void Transform( const MbMatrix3D &, MbRegTransform * = nullptr ); // \ru Преобразовать по матрице \en Transform according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = nullptr ); // \ru Сдвиг по вектору \en Translation by a vector
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = nullptr ); // \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
@@ -55,13 +55,13 @@ public: // \ru Общие функции математического объе
/// \ru Построение оболочки \en Creation of a shell.
virtual bool CreateShell( MbFaceShell *& shell, MbeCopyMode sameShell,
RPArray<MbSpaceItem> * items = c3d_null );
RPArray<MbSpaceItem> * items = nullptr );
/// \ru Построение каркаса кривых. \en Creation of a wire-frame.
virtual bool CreateWireFrame( MbWireFrame *& frame, MbeCopyMode sameShell,
RPArray<MbSpaceItem> * items = c3d_null );
RPArray<MbSpaceItem> * items = nullptr );
/// \ru Построение каркаса точек. \en Creation of a point-frame.
virtual bool CreatePointFrame( MbPointFrame *& frame, MbeCopyMode sameShell,
RPArray<MbSpaceItem> * items = c3d_null );
RPArray<MbSpaceItem> * items = nullptr );
/// \ru Переместить строитель. \en Displace the creator.
virtual bool Perform( MbCreator * ) const;
@@ -110,12 +110,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 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 MbCreator & Duplicate( MbRegDuplicate * = nullptr ) 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 void Transform( const MbMatrix3D &, MbRegTransform * = nullptr ); // \ru Преобразовать по матрице \en Transform according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = nullptr ); // \ru Сдвиг по вектору \en Translation by a vector
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = nullptr ); // \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
@@ -123,13 +123,13 @@ public: // \ru Общие функции математического объе
/// \ru Построение оболочки \en Creation of a shell.
virtual bool CreateShell( MbFaceShell *& shell, MbeCopyMode sameShell,
RPArray<MbSpaceItem> * items = c3d_null );
RPArray<MbSpaceItem> * items = nullptr );
/// \ru Построение каркаса кривых. \en Creation of a wire-frame.
virtual bool CreateWireFrame( MbWireFrame *& frame, MbeCopyMode sameShell,
RPArray<MbSpaceItem> * items = c3d_null );
RPArray<MbSpaceItem> * items = nullptr );
/// \ru Построение каркаса точек. \en Creation of a point-frame.
virtual bool CreatePointFrame( MbPointFrame *& frame, MbeCopyMode sameShell,
RPArray<MbSpaceItem> * items = c3d_null );
RPArray<MbSpaceItem> * items = nullptr );
/// \ru Переместить строитель. \en Displace the creator.
virtual bool Perform( MbCreator * ) const;
@@ -177,12 +177,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 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 MbCreator & Duplicate( MbRegDuplicate * = nullptr ) 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 void Transform( const MbMatrix3D &, MbRegTransform * = nullptr ); // \ru Преобразовать по матрице \en Transform according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = nullptr ); // \ru Сдвиг по вектору \en Translation by a vector
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = nullptr ); // \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
@@ -190,13 +190,13 @@ public: // \ru Общие функции математического объе
/// \ru Построение оболочки \en Creation of a shell.
virtual bool CreateShell( MbFaceShell *& shell, MbeCopyMode sameShell,
RPArray<MbSpaceItem> * items = c3d_null );
RPArray<MbSpaceItem> * items = nullptr );
/// \ru Построение каркаса кривых. \en Creation of a wire-frame.
virtual bool CreateWireFrame( MbWireFrame *& frame, MbeCopyMode sameShell,
RPArray<MbSpaceItem> * items = c3d_null );
RPArray<MbSpaceItem> * items = nullptr );
/// \ru Построение каркаса точек. \en Creation of a point-frame.
virtual bool CreatePointFrame( MbPointFrame *& frame, MbeCopyMode sameShell,
RPArray<MbSpaceItem> * items = c3d_null );
RPArray<MbSpaceItem> * items = nullptr );
/// \ru Переместить строитель. \en Displace the creator.
virtual bool Perform( MbCreator * ) const;
+7 -7
View File
@@ -47,7 +47,7 @@ public:
, fp ( faceProp )
, np ( new MbPlacement3D( nPlace ) )
, edgeNb ( -1 )
, pl ( c3d_null )
, pl ( nullptr )
, reverse ( rev )
, step ( false )
{
@@ -65,7 +65,7 @@ public:
, angle ( ang )
, faceIndices( )
, fp ( faceProp )
, np ( nPlace ? new MbPlacement3D( *nPlace ) : c3d_null )
, np ( nPlace ? new MbPlacement3D( *nPlace ) : nullptr )
, 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 * = 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 MbCreator & Duplicate( MbRegDuplicate * = nullptr ) const;
virtual void Transform( const MbMatrix3D &, MbRegTransform * = nullptr ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = nullptr ); // \ru Сдвиг \en Translation
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = nullptr ); // \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> * = c3d_null ); // \ru Построение \en Construction
RPArray<MbSpaceItem> * = nullptr ); // \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 * = 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 MbCreator & Duplicate( MbRegDuplicate * = nullptr ) const ; // \ru сделать копию \en create a copy
virtual void Transform( const MbMatrix3D &, MbRegTransform * = nullptr ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move( const MbVector3D &, MbRegTransform * = nullptr ); // \ru Сдвиг \en Translation
virtual void Rotate( const MbAxis3D &, double angle, MbRegTransform * = nullptr ); // \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 = c3d_null ); // \ru Построение \en Construction
RPArray<MbSpaceItem> * items = nullptr ); // \ru Построение \en Construction
/** \} */
private :
+5 -5
View File
@@ -111,10 +111,10 @@ public :
\en \name Common functions of the shell creator.
\{ */
virtual MbeCreatorType IsA() const; // \ru Тип элемента \en Type of element
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 void Transform( const MbMatrix3D &, MbRegTransform * = nullptr ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move( const MbVector3D &, MbRegTransform * = nullptr ); // \ru Сдвиг \en Translation
virtual void Rotate( const MbAxis3D &, double angle, MbRegTransform * = nullptr ); // \ru Повернуть вокруг оси \en Rotate about an axis
virtual MbCreator & Duplicate( MbRegDuplicate * = nullptr ) 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
@@ -128,7 +128,7 @@ public :
virtual bool SetEqual( const MbCreator & ); // \ru Сделать равным \en Make equal
virtual bool CreateShell( MbFaceShell *&, MbeCopyMode sameShell,
RPArray<MbSpaceItem> * = c3d_null ); // \ru Построение \en Construction
RPArray<MbSpaceItem> * = nullptr ); // \ru Построение \en Construction
/** \} */
private:
+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 Кривая вектора ориентации матрицы преобразования (может быть c3d_null для простой траектории). \en A curve of the transformation matrix orientation (it may be c3d_null for a simple trajectory).
SPtr<MbCurve3D> directionCurve; ///< \ru Кривая вектора ориентации матрицы преобразования (может быть nullptr для простой траектории). \en A curve of the transformation matrix orientation (it may be nullptr 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 * = 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 MbCreator & Duplicate( MbRegDuplicate * = nullptr ) const ; // \ru Сделать копию \en Create a copy
virtual void Transform( const MbMatrix3D &, MbRegTransform * = nullptr ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = nullptr ); // \ru Сдвиг \en Translation
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = nullptr ); // \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
+103
View File
@@ -0,0 +1,103 @@
////////////////////////////////////////////////////////////////////////////////
/**
\file
\brief \ru Строитель продления кривой.
\en Constructor of curve extension.
*/
////////////////////////////////////////////////////////////////////////////////
#ifndef __CR_EXTENDING_CURVE_H
#define __CR_EXTENDING_CURVE_H
#include <creator.h>
#include <op_curve_parameter.h>
//------------------------------------------------------------------------------
/** \brief \ru Строитель продления кривой.
\en Constructor of curve extension. \~
\details \ru Строитель продления кривой.
\en Constructor of curve extension. \~
\ingroup Model_Creators
\warning \ru В разработке.
\en Under development. \~
*/
// ---
class MATH_CLASS MbExtendCurveCreator : public MbCreator
{
private:
SPtr<MbCurve3D> sourceCurve; // \ru Исходная (расширяемая) кривая. Всегда не ноль. \en Source (extended) curve. It is not nullptr. \~
MbCurveExtensionParameters parameters; // \ru Параметры продления. \en Extension parameters. \~
protected:
/// \ru Конструктор копирования. \en Copy-constructor.
MbExtendCurveCreator( const MbExtendCurveCreator &, MbRegDuplicate * iReg );
private:
MbExtendCurveCreator( const MbExtendCurveCreator & ); // \ru Не реализовано \en Not implemented
MbExtendCurveCreator(); // \ru Не реализовано. \en Not implemented.
public:
/// \ru Конструктор по параметрам. \en Constructor by parameters.
MbExtendCurveCreator( const MbCurve3D & curve, const MbCurveExtensionParameters & extendParams, const MbSNameMaker & nm );
/// \ru Деструктор. \en Destructor.
~MbExtendCurveCreator() override;
// \ru Общие функции строителя. \en The common functions of the creator.
MbeCreatorType IsA() const override { return ct_ExtensionCurveCreator; }; // \ru Тип элемента. \en A type of element.
MbCreator & Duplicate( MbRegDuplicate * iReg = nullptr ) const override; // \ru Сделать копию. \en Create a copy.
bool IsSame( const MbCreator &, double accuracy ) const override; // \ru Являются ли объекты равными? \en Determine whether an object is equal?
bool IsSimilar( const MbCreator & ) const override; // \ru Являются ли объекты подобными? \en Whether the objects are similar?
bool SetEqual( const MbCreator & ) override; // \ru Сделать равным. \en Make equal.
void Transform( const MbMatrix3D &, MbRegTransform * = nullptr ) override; // \ru Преобразовать элемент согласно матрице. \en Transform element according to the matrix.
void Move( const MbVector3D &, MbRegTransform * = nullptr ) override; // \ru Сдвиг. \en Translation.
void Rotate( const MbAxis3D &, double angle, MbRegTransform * = nullptr ) override; // \ru Повернуть вокруг оси. \en Rotate about the axis.
MbePrompt GetPropertyName() override; // \ru Дать имя свойства объекта. \en Get the object property name.
void GetProperties( MbProperties & ) override; // \ru Выдать свойства объекта. \en Get properties of the object.
void SetProperties( const MbProperties & ) override; // \ru Записать свойства объекта. \en Set properties of the object.
/** \} */
bool CreateWireFrame( MbWireFrame *&, MbeCopyMode, RPArray<MbSpaceItem> * ) override; // \ru Построить кривую по журналу построения. \en Create a curve from the history tree. \~
private:
// \ru Объявление оператора присваивания без реализации, чтобы не было присваивания по умолчанию. \en The declaration of the assignment operator without implementation, to prevent an assignment by default.
void operator = ( const MbExtendCurveCreator & );
DECLARE_PERSISTENT_CLASS_NEW_DEL( MbExtendCurveCreator )
};
IMPL_PERSISTENT_OPS( MbExtendCurveCreator )
//------------------------------------------------------------------------------
/** \brief \ru Создание строителя продления кривой.
\en Create a constructor of extending curve. \~
\details \ru Создание строителя продления кривой.\n
\en Create a constructor of extending curve.\n \~
\param[in] sourceCurve - \ru Исходная (удлиняемая) кривая.
\en Source (extended) curve. \~
\param[in] parameters - \ru Параметры удлинения.
\en Parameters of extension. \~
\param[in] names - \ru Именователь построенного ребра.
\en An object defining the edges names. \~
\param[out] res - \ru Код результата операции.
\en Operation result code. \~
\param[out] resCurve - \ru Возвращаемая (удлиненная) кривая. Может быть nullptr.
\en The curve returned (extended). Can be nullptr. \~
\result \ru Возвращает строитель.
\en Returns the constructor. \~
\ingroup Curve3D_Modeling
\warning \ru В разработке.
\en Under development. \~
*/
// ---
MATH_FUNC (MbCreator *) CreateExtendedCurve( const MbCurve3D & sourceCurve,
const MbCurveExtensionParameters & parameters,
const MbSNameMaker & names,
MbResultType & res,
MbCurve3D *& resCurve );
#endif // __CR_EXTENDING_CURVE_H
+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 * = 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 MbCreator & Duplicate( MbRegDuplicate * = nullptr ) const; // \ru Сделать копию \en Create a copy
virtual void Transform( const MbMatrix3D & matr, MbRegTransform * = nullptr ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move( const MbVector3D & to, MbRegTransform * = nullptr ); // \ru Сдвиг \en Translation
virtual void Rotate( const MbAxis3D & axis, double angle, MbRegTransform * = nullptr ); // \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 = c3d_null ); // \ru Построение \en Construction
RPArray<MbSpaceItem> * items = nullptr ); // \ru Построение \en Construction
// \ru Дать параметры. \en Get the parameters.
void GetParameters( ExtensionValues & params ) const { params = parameters; }
+6 -6
View File
@@ -59,7 +59,7 @@ public :
OperationType oType,
const MbSNameMaker & operNames,
const RPArray<MbSNameMaker> & contoursNames,
const c3d::CreatorsSPtrVector * creators = c3d_null,
const c3d::CreatorsSPtrVector * creators = nullptr,
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 * = 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 MbCreator & Duplicate( MbRegDuplicate * = nullptr ) const; // \ru Cделать копию. \en Make a copy.
virtual void Transform( const MbMatrix3D &, MbRegTransform * = nullptr ); // \ru Преобразовать элемент согласно матрице. \en Transform element according to the matrix.
virtual void Move( const MbVector3D &, MbRegTransform * = nullptr ); // \ru Сдвиг. \en Move.
virtual void Rotate( const MbAxis3D &, double angle, MbRegTransform * = nullptr ); // \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 = c3d_null ); // \ru Построение. \en Construction.
RPArray<MbSpaceItem> * items = nullptr ); // \ru Построение. \en Construction.
virtual MbFaceShell * InitShell( bool in );
virtual void InitBasis( RPArray<MbSpaceItem> & items );
+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 * = 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 MbCreator & Duplicate( MbRegDuplicate * = nullptr ) const ; // \ru Сделать копию \en Create a copy
virtual void Transform( const MbMatrix3D &matr, MbRegTransform * = nullptr ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move( const MbVector3D &to, MbRegTransform * = nullptr ); // \ru Сдвиг \en Translation
virtual void Rotate( const MbAxis3D &axis, double angle, MbRegTransform * = nullptr ); // \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 = c3d_null ); // \ru Построение \en Construction
RPArray<MbSpaceItem> * items = nullptr ); // \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 * = 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 MbCreator & Duplicate( MbRegDuplicate * = nullptr ) const ; // \ru Сделать копию \en Create a copy
virtual void Transform( const MbMatrix3D & matr, MbRegTransform * = nullptr ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move( const MbVector3D & to, MbRegTransform * = nullptr ); // \ru Сдвиг \en Translation
virtual void Rotate( const MbAxis3D & axis, double angle, MbRegTransform * = nullptr ); // \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 = c3d_null ); // \ru Построение \en Construction
RPArray<MbSpaceItem> * items = nullptr ); // \ru Построение \en Construction
virtual MbFaceShell * InitShell( bool in );
virtual void InitBasis( RPArray<MbSpaceItem> & items );
+5 -5
View File
@@ -45,15 +45,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 = c3d_null ) const; // \ru Сделать копию \en Create a copy
virtual MbCreator & Duplicate( MbRegDuplicate * iReg = nullptr ) 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 * = 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 Transform( const MbMatrix3D &, MbRegTransform * = nullptr ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = nullptr ); // \ru Сдвиг \en Translation
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = nullptr ); // \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
@@ -63,7 +63,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 = c3d_null );
virtual bool CreateWireFrame( MbWireFrame *&, MbeCopyMode, RPArray<MbSpaceItem> * items = nullptr );
/** \} */
+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 * = 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 MbCreator & Duplicate( MbRegDuplicate * = nullptr ) const; ///< \ru Сделать копию \en Make a copy
virtual void Transform( const MbMatrix3D &, MbRegTransform * = nullptr ); ///< \ru Преобразовать элемент согласно матрице \en Transform an element according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = nullptr ); ///< \ru Сдвиг \en Translation
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = nullptr ); ///< \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 = c3d_null ); ///< \ru Построение \en Construction
RPArray<MbSpaceItem> * items = nullptr ); ///< \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 Массив направляющих кривых (может быть c3d_null). \en An array of guide curves (can be c3d_null).
RPArray<MbCurve3D> * guideCurves; ///< \ru Массив направляющих кривых (может быть nullptr). \en An array of guide curves (can be nullptr).
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 * = 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 MbCreator & Duplicate( MbRegDuplicate * = nullptr ) const ; // \ru Сделать копию \en Create a copy
virtual void Transform( const MbMatrix3D &, MbRegTransform * = nullptr ); // \ru Преобразовать \en Transform
virtual void Move ( const MbVector3D &, MbRegTransform * = nullptr ); // \ru Сдвиг \en Translation
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = nullptr ); // \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
@@ -48,13 +48,13 @@ private:
public:
virtual MbeCreatorType IsA() const; // \ru Тип элемента \en Type of element
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию \en Create a copy
virtual MbCreator & Duplicate( MbRegDuplicate * = nullptr ) 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 * = 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 Transform( const MbMatrix3D &, MbRegTransform * = nullptr ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = nullptr ); // \ru Сдвиг \en Translation
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = nullptr ); // \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 = c3d_null );
RPArray<MbSpaceItem> * items = nullptr );
/// \ru Дать параметры. \en Get the parameters.
void GetParameters( MedianShellValues & params ) const { params = parameters; }
+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 * = c3d_null ) const; ///< \ru Сделать копию \en Make a copy
virtual MbCreator & Duplicate( MbRegDuplicate * = nullptr ) 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 * = 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 Transform( const MbMatrix3D &, MbRegTransform * = nullptr ); ///< \ru Преобразовать по матрице \en Transform according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = nullptr ); ///< \ru Сдвиг по вектору \en Translation by the vector
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = nullptr ); ///< \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 = c3d_null );
RPArray<MbSpaceItem> * items = nullptr );
// \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 * = c3d_null ) const; // \ru сделать копию \en create a copy
virtual MbCreator & Duplicate( MbRegDuplicate * = nullptr ) 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 void Transform( const MbMatrix3D &, MbRegTransform * = nullptr ); // \ru Преобразовать по матрице \en Transform according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = nullptr ); // \ru сдвиг по вектору \en translation by a vector
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = nullptr ); // \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 = c3d_null );
RPArray<MbSpaceItem> * items = nullptr );
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 * = c3d_null ) const; // \ru сделать копию \en create a copy
virtual MbCreator & Duplicate( MbRegDuplicate * = nullptr ) 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 void Transform( const MbMatrix3D &, MbRegTransform * = nullptr ); // \ru Преобразовать по матрице \en Transform according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = nullptr ); // \ru сдвиг по вектору \en translation by a vector
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = nullptr ); // \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 = c3d_null );
RPArray<MbSpaceItem> * items = nullptr );
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 * = c3d_null ) const; // \ru Сделать копию \en Create a copy
virtual MbCreator & Duplicate( MbRegDuplicate * = nullptr ) 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 the vector
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate around an axis
virtual void Transform( const MbMatrix3D &, MbRegTransform * = nullptr ); // \ru Преобразовать по матрице \en Transform according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = nullptr ); // \ru Сдвиг по вектору \en Translation by the vector
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = nullptr ); // \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 = c3d_null );
RPArray<MbSpaceItem> * items = nullptr );
virtual void Refresh( MbFaceShell & outer ); ///< \ru Обновить форму оболочки \en Update shape of the shell
// \ru Дать параметры. \en Get the parameters.
+5 -5
View File
@@ -53,15 +53,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 = c3d_null ) const; // \ru Сделать копию \en Create a copy
virtual MbCreator & Duplicate( MbRegDuplicate * iReg = nullptr ) 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 * = 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 Transform( const MbMatrix3D &, MbRegTransform * = nullptr ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = nullptr ); // \ru Сдвиг \en Translation
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = nullptr ); // \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
@@ -71,7 +71,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 = c3d_null );
virtual bool CreateWireFrame( MbWireFrame *&, MbeCopyMode, RPArray<MbSpaceItem> * items = nullptr );
/** \} */
+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 * = c3d_null ) const; // \ru Сделать копию \en Create a copy
virtual MbCreator & Duplicate( MbRegDuplicate * = nullptr ) 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 void Transform( const MbMatrix3D &, MbRegTransform * = nullptr ); // \ru Преобразовать по матрице \en Transform according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = nullptr ); // \ru Сдвиг по вектору \en Translation by a vector
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = nullptr ); // \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 = c3d_null );
RPArray<MbSpaceItem> * items = nullptr );
virtual void Refresh( MbFaceShell & outer ); ///< \ru Обновить форму оболочки \en Update shape of the shell
private:
+2 -2
View File
@@ -43,7 +43,7 @@ MATH_FUNC (MbFaceShell *) CreateNurbsSurfacesShell( NurbsSurfaceValues & p
const MbSNameMaker & operNames,
bool isPhantom,
MbResultType & res,
IProgressIndicator * indicator = c3d_null );
IProgressIndicator * indicator = nullptr );
//------------------------------------------------------------------------------
@@ -65,7 +65,7 @@ MATH_FUNC (MbFaceShell *) CreateNurbsSurfacesShell( NurbsSurfaceValues & p
// ---
MATH_FUNC (MbResultType) CheckNurbsSurfacesShell( const NurbsSurfaceValues & params,
const MbFaceShell & shell,
IProgressIndicator * indicator = c3d_null );
IProgressIndicator * indicator = nullptr );
#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 * = c3d_null ) const; // \ru сделать копию \en create a copy
virtual MbCreator & Duplicate( MbRegDuplicate * = nullptr ) 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 * = 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 void Transform( const MbMatrix3D &, MbRegTransform * = nullptr ); // \ru Преобразовать по матрице \en Transform according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = nullptr ); // \ru сдвиг по вектору \en translation by a vector
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = nullptr ); // \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 = c3d_null );
RPArray<MbSpaceItem> * items = nullptr );
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 = c3d_null );
IProgressIndicator * indicator = nullptr );
#endif // __CR_NURBS_SURFACES_SOLID_H
+5 -5
View File
@@ -92,15 +92,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 = c3d_null ) const; // \ru Сделать копию \en Create a copy
virtual MbCreator & Duplicate( MbRegDuplicate * iReg = nullptr ) 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 * = 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 Transform( const MbMatrix3D &, MbRegTransform * = nullptr ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = nullptr ); // \ru Сдвиг \en Translation
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = nullptr ); // \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
@@ -113,7 +113,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 = c3d_null );
virtual bool CreateWireFrame( MbWireFrame *&, MbeCopyMode, RPArray<MbSpaceItem> * items = nullptr );
/** \} */
+11 -11
View File
@@ -32,12 +32,12 @@ class MATH_CLASS MbFaceShell;
// ---
class MATH_CLASS MbPatchCreator : public MbCreator {
protected:
std::vector<SPtr<MbCurveMate>> initCurves; ///< \ru Кривые, определяющие края заплатки. \en Curves determining the boundaries of a patch.
PatchValues parameters; ///< \ru Параметры построения заплатки. \en Parameters of patch construction.
std::vector<SPtr<MbCurveMate>> initCurves; ///< \ru Кривые, определяющие края заплатки. \en Curves determining the boundaries of a patch.
PatchValues parameters; ///< \ru Параметры построения заплатки. \en Parameters of patch construction.
/// \ru Cледующие данные имеются только, если обрабатываются ребра. \en The following data are defined only when edges are being processed.
SArray<bool> orientations; ///< \ru Ориентация кривых для замыкания в цепь. \en Orientation of curves for enclosing into a chain.
SArray<double> tolerances; ///< \ru Толерантности стыков кривых для замыкания в цепь. \en Tolerances of joints of curves for enclosing into a chain.
SArray<MbeIntCurSurface> surfInds; ///< \ru Номер поверхности кривой пересечения, отвечающей существующей грани. \en Number of surface of the intersection curve corresponding to the existent face.
SArray<bool> orientations; ///< \ru Ориентация кривых для замыкания в цепь. \en Orientation of curves for enclosing into a chain.
SArray<double> tolerances; ///< \ru Толерантности стыков кривых для замыкания в цепь. \en Tolerances of joints of curves for enclosing into a chain.
SArray<MbePairObjectsSelection> surfInds; ///< \ru Номер поверхности кривой пересечения, отвечающей существующей грани. \en Number of surface of the intersection curve corresponding to the existent face.
private :
MbPatchCreator( const MbPatchCreator &, MbRegDuplicate * ireg );
@@ -46,7 +46,7 @@ public :
MbPatchCreator( const std::vector<SPtr<MbCurveMate>> & curves,
const PatchValues & params,
const MbSNameMaker & n,
const SArray<MbeIntCurSurface> * surfInds,
const SArray<MbePairObjectsSelection> * surfInds,
const SArray<bool> * orientations,
const SArray<double> * tolerances );
virtual ~MbPatchCreator();
@@ -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 * = 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 MbCreator & Duplicate( MbRegDuplicate * = nullptr ) const ;
virtual void Transform( const MbMatrix3D &, MbRegTransform * = nullptr );
virtual void Move ( const MbVector3D &, MbRegTransform * = nullptr );
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = nullptr );
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 = c3d_null );
RPArray<MbSpaceItem> * items = nullptr );
// \ru Дать параметры. \en Get the parameters.
void GetParameters( PatchValues & params ) const { params = parameters; }
+5 -5
View File
@@ -52,15 +52,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 = c3d_null ) const; // \ru Сделать копию \en Create a copy
virtual MbCreator & Duplicate( MbRegDuplicate * iReg = nullptr ) 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 * = 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 Transform( const MbMatrix3D &, MbRegTransform * = nullptr ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = nullptr ); // \ru Сдвиг \en Translation
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = nullptr ); // \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
@@ -73,7 +73,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 = c3d_null );
virtual bool CreateWireFrame( MbWireFrame *&, MbeCopyMode, RPArray<MbSpaceItem> * items = nullptr );
/** \} */
+4 -4
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 * = 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 MbCreator & Duplicate( MbRegDuplicate * = nullptr ) const ; // \ru Сделать копию \en Create a copy
virtual void Transform( const MbMatrix3D &, MbRegTransform * = nullptr ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move( const MbVector3D &, MbRegTransform * = nullptr ); // \ru Сдвиг \en Translation
virtual void Rotate( const MbAxis3D &, double angle, MbRegTransform * = nullptr ); // \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
@@ -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 * = 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 MbCreator & Duplicate( MbRegDuplicate * = nullptr ) const; // \ru Сделать копию \en Create a copy
virtual void Transform ( const MbMatrix3D & matr, MbRegTransform * = nullptr ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move ( const MbVector3D & to, MbRegTransform * = nullptr ); // \ru Сдвиг \en Translation
virtual void Rotate ( const MbAxis3D & axis, double angle, MbRegTransform * = nullptr ); // \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
@@ -60,7 +60,7 @@ public :
// \ru Общие функции твердого тела \en Common functions of solid
virtual bool CreateShell( MbFaceShell *&shell, MbeCopyMode sameShell,
RPArray <MbSpaceItem> *items = c3d_null ); // \ru Построение \en Construction
RPArray <MbSpaceItem> *items = nullptr ); // \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 * = c3d_null ) const; ///< \ru Сделать копию \en Make a copy
virtual MbCreator & Duplicate( MbRegDuplicate * = nullptr ) 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 * = 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 Transform( const MbMatrix3D &, MbRegTransform * = nullptr ); ///< \ru Преобразовать по матрице \en Transform according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = nullptr ); ///< \ru Сдвиг по вектору \en Translation by the vector
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = nullptr ); ///< \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 = c3d_null );
RPArray<MbSpaceItem> * items = nullptr );
// \ru Дать параметры. \en Get the parameters.
void GetParameters( RuledSurfaceValues & params ) const;
// \ru Установить параметры. \en Set the parameters.
+5 -5
View File
@@ -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 * = 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 MbCreator & Duplicate( MbRegDuplicate * = nullptr ) const ; // \ru Сделать копию \en Create a copy
virtual void Transform( const MbMatrix3D &, MbRegTransform * = nullptr ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = nullptr ); // \ru Сдвиг \en Translation
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = nullptr ); // \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 = c3d_null ); // \ru Построение \en Construction
RPArray<MbSpaceItem> * items = nullptr ); // \ru Построение \en Construction
virtual void SetYourVersion( VERSION version );
/** \} */
+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 * = c3d_null ) const; // \ru Сделать копию \en Create a copy
virtual MbCreator & Duplicate( MbRegDuplicate * = nullptr ) 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, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate about an axis
virtual void Transform( const MbMatrix3D &, MbRegTransform * = nullptr ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = nullptr ); // \ru Сдвиг \en Translation
virtual void Rotate ( const MbAxis3D &, double, MbRegTransform * = nullptr ); // \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 = c3d_null ); // \ru Построение \en Construction
RPArray<MbSpaceItem> * items = nullptr ); // \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 * = c3d_null ) const; // \ru Сделать копию \en Create a copy
virtual MbCreator & Duplicate( MbRegDuplicate * = nullptr ) 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 * = 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 Transform( const MbMatrix3D & matr, MbRegTransform * = nullptr ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move ( const MbVector3D & to, MbRegTransform * = nullptr ); // \ru Сдвиг \en Translation
virtual void Rotate ( const MbAxis3D & axis, double angle, MbRegTransform * = nullptr ); // \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 = c3d_null ); // \ru Построение \en Construction
RPArray<MbSpaceItem> * items = nullptr ); // \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 * = c3d_null ) const; // \ru Сделать копию \en Create a copy
virtual MbCreator & Duplicate( MbRegDuplicate * = nullptr ) 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 about an axis
virtual void Transform( const MbMatrix3D &, MbRegTransform * = nullptr ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = nullptr ); // \ru Сдвиг \en Translation
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = nullptr ); // \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 = c3d_null ); // \ru Построение \en Construction
RPArray<MbSpaceItem> * items = nullptr ); // \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 * = c3d_null ) const; // \ru Сделать копию \en Create a copy
virtual MbCreator & Duplicate( MbRegDuplicate * = nullptr ) 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 * = 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 Transform( const MbMatrix3D & matr, MbRegTransform * = nullptr ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move ( const MbVector3D & to, MbRegTransform * = nullptr ); // \ru Сдвиг \en Translation
virtual void Rotate ( const MbAxis3D & axis, double angle, MbRegTransform * = nullptr ); // \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 = c3d_null ); // \ru Построение \en Construction
RPArray<MbSpaceItem> * items = nullptr ); // \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 = c3d_null );
RPArray<MbContour3D> * ribContours = nullptr );
+5 -5
View File
@@ -44,15 +44,15 @@ public:
// \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 MbCreator & Duplicate( MbRegDuplicate * = nullptr ) 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 Transform( const MbMatrix3D &, MbRegTransform * = nullptr ); // \ru Преобразовать элемент согласно матрице. \en Transform element according to the matrix.
virtual void Move ( const MbVector3D &, MbRegTransform * = nullptr ); // \ru Сдвиг. \en Translation.
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = nullptr ); // \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.
@@ -61,7 +61,7 @@ public:
// \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 );
virtual bool CreateShell( MbFaceShell *& shell, MbeCopyMode sameShell, RPArray <MbSpaceItem> *items = nullptr );
// \ru Получить параметры. \en Get the parameters.
void GetParameters( MbSolidToSheetMetalValues & params ) const { params = parameters; }
// \ru Установить параметры. \en Set the parameters.
+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 * = c3d_null ) const; // \ru Сделать копию \en Create a copy
virtual MbCreator & Duplicate( MbRegDuplicate * = nullptr ) 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 about an axis
virtual void Transform( const MbMatrix3D &, MbRegTransform * = nullptr ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = nullptr ); // \ru Сдвиг \en Translation
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = nullptr ); // \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 = c3d_null ); // \ru Построение \en Construction
RPArray<MbSpaceItem> * items = nullptr ); // \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 * = c3d_null ) const; // \ru Сделать копию \en Create a copy
virtual MbCreator & Duplicate( MbRegDuplicate * = nullptr ) 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 * = 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 Transform( const MbMatrix3D & matr, MbRegTransform * = nullptr ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move ( const MbVector3D & to, MbRegTransform * = nullptr ); // \ru Сдвиг \en Translation
virtual void Rotate ( const MbAxis3D & axis, double angle, MbRegTransform * = nullptr ); // \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 = c3d_null ); // \ru Построение \en Construction
RPArray<MbSpaceItem> * items = nullptr ); // \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 * = 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 MbCreator & Duplicate( MbRegDuplicate * = nullptr ) const; // \ru Сделать копию \en Create a copy
virtual void Transform( const MbMatrix3D & matr, MbRegTransform * = nullptr ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move( const MbVector3D & to, MbRegTransform * = nullptr ); // \ru Сдвиг \en Translation
virtual void Rotate( const MbAxis3D & axis, double angle, MbRegTransform * = nullptr ); // \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 = c3d_null ); // \ru Построение \en Construction
RPArray<MbSpaceItem> * items = nullptr ); // \ru Построение \en Construction
virtual MbFaceShell * InitShell( bool in );
@@ -0,0 +1,94 @@
////////////////////////////////////////////////////////////////////////////////
/**
\file
\brief \ru Нормализация отверстий листовых тел.
\en Normalization of the holes of sheet solid. \~
*/
////////////////////////////////////////////////////////////////////////////////
#ifndef __CR_SHEET_NORMALIZE_HOLES_SOLID_H
#define __CR_SHEET_NORMALIZE_HOLES_SOLID_H
#include <creator.h>
//------------------------------------------------------------------------------
/** \brief \ru Строитель нормализации отверстий листовых тел.
\en Constructor of the normalization of the holes of sheet solid. \~
\details \ru Строитель нормализации отверстий листовых тел. \n
\en Constructor of the normalization of the holes of sheet solid.\n \~
\ingroup Model_Creators
*/
// ---
class MATH_CLASS MbNormalizeHolesSolid : public MbCreator {
public :
MbNormalizeHolesSolid( const MbSNameMaker & names );
private:
MbNormalizeHolesSolid( const MbNormalizeHolesSolid &, MbRegDuplicate * iReg );
// \ru Объявление конструктора копирования без реализации, чтобы не было копирования по умолчанию. \en Declaration without implementation of the copy-constructor to prevent copying by default.
MbNormalizeHolesSolid( const MbNormalizeHolesSolid & );
public:
virtual ~MbNormalizeHolesSolid();
// \ru Общие функции математического объекта \en Common functions of the mathematical object
virtual MbeCreatorType IsA() const; // \ru Тип элемента \en Type of element
virtual MbCreator & Duplicate( MbRegDuplicate * = nullptr ) 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 * = nullptr ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = nullptr ); // \ru Сдвиг \en Translation
virtual void Rotate ( const MbAxis3D &, double, MbRegTransform * = nullptr ); // \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
virtual MbePrompt GetPropertyName(); // \ru Выдать заголовок свойства объекта \en Get a name of object property
// \ru Общие функции твердого тела \en Common functions of solid solid
virtual bool CreateShell( MbFaceShell *& shell,
MbeCopyMode sameShell,
RPArray<MbSpaceItem> * items = nullptr ); // \ru Построение \en Construction
private:
// \ru Объявление оператора присваивания без реализации, чтобы не было присваивания по умолчанию. \en The declaration of the assignment operator without implementation to prevent an assignment by default.
MbNormalizeHolesSolid & operator = ( const MbNormalizeHolesSolid & ); // \ru Не реализовано \en Not implemented
DECLARE_PERSISTENT_CLASS_NEW_DEL( MbNormalizeHolesSolid )
};
IMPL_PERSISTENT_OPS( MbNormalizeHolesSolid )
//------------------------------------------------------------------------------
/** \brief \ru Нормализовать вырезы листового тела.
\en Normalize of the holes of sheet solid. \~
\details \ru Нормализовать вырезы листового тела. \n
\en Normalize of the holes of sheet solid. \n \~
\param[in] initialShell - \ru Исходная оболочка.
\en The source shell. \~
\param[in] sameShell - \ru Флаг удаления оболочки исходного тела.
\en Whether to delete the shell of the source solid. \~
\param[in] nameMaker - \ru Именователь.
\en An object for naming the new objects. \~
\param[out] res - \ru Код результата операции.
\en Operation result code. \~
\param[out] shell - \ru Построенная оболочка.
\en The resultant shell. \~
\result \ru Возвращает строитель оболочки.
\en Returns the shell constructor. \~
\ingroup Sheet_Metal_Modeling
*/
// ---
MATH_FUNC (MbCreator *) NormalizeHolesSides ( MbFaceShell & initialShell,
const MbeCopyMode sameShell,
const MbSNameMaker & nameMaker,
MbResultType & res,
MbFaceShell *& shell );
#endif // __CR_SHEET_NORMALIZE_HOLES_SOLID_H
+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 * = c3d_null ) const; // \ru Сделать копию \en Create a copy
virtual MbCreator & Duplicate( MbRegDuplicate * = nullptr ) 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 * = 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 Transform( const MbMatrix3D & matr, MbRegTransform * = nullptr ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move ( const MbVector3D & to, MbRegTransform * = nullptr ); // \ru Сдвиг \en Translation
virtual void Rotate ( const MbAxis3D & axis, double angle, MbRegTransform * = nullptr ); // \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 = c3d_null ); // \ru Построение \en Construction
RPArray<MbSpaceItem> * items = nullptr ); // \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 * = c3d_null ) const; // \ru Сделать копию \en Create a copy
virtual MbCreator & Duplicate( MbRegDuplicate * = nullptr ) 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, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate about an axis
virtual void Transform( const MbMatrix3D &, MbRegTransform * = nullptr ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = nullptr ); // \ru Сдвиг \en Translation
virtual void Rotate ( const MbAxis3D &, double, MbRegTransform * = nullptr ); // \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 = c3d_null ); // \ru Построение \en Construction
RPArray<MbSpaceItem> * items = nullptr ); // \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 = 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 void Transform( const MbMatrix3D &, MbRegTransform * ireg = nullptr ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * ireg = nullptr ); // \ru Сдвиг \en Translation
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * ireg = nullptr ); // \ru Повернуть вокруг оси \en Rotate about an axis
virtual MbCreator & Duplicate( MbRegDuplicate * = nullptr ) 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 = c3d_null ); // \ru Построение \en Construction
RPArray<MbSpaceItem> * items = nullptr ); // \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 * = 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 MbCreator & Duplicate( MbRegDuplicate * = nullptr ) const ; // \ru Сделать копию \en Create a copy
virtual void Transform( const MbMatrix3D &, MbRegTransform * = nullptr ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = nullptr ); // \ru Сдвиг \en Translation
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = nullptr ); // \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 = c3d_null ); // \ru Построение \en Construction
RPArray<MbSpaceItem> * items = nullptr ); // \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 != c3d_null ) {
if ( creator != nullptr ) {
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 = c3d_null;
simpleShells[j].second = nullptr;
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 == c3d_null )
if ( simpleShells.front().second == nullptr )
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 != c3d_null) && (creator->IsA() == ct_SimpleCreator) ) {
if ( (creator != nullptr) && (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 * = 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 MbCreator & Duplicate( MbRegDuplicate * = nullptr ) const ; // \ru Сделать копию \en Create a copy
virtual void Transform( const MbMatrix3D &, MbRegTransform * = nullptr ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = nullptr ); // \ru Сдвиг \en Translation
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = nullptr ); // \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 = c3d_null ); // \ru Построение \en Construction
RPArray<MbSpaceItem> * items = nullptr ); // \ru Построение \en Construction
/** \} */
DECLARE_PERSISTENT_CLASS_NEW_DEL( MbReverseCreator )
+5 -5
View File
@@ -41,10 +41,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 = 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 MbCreator & Duplicate( MbRegDuplicate *iReg = nullptr ) const = 0; // \ru Сделать копию \en Create a copy
virtual void Transform( const MbMatrix3D &matr, MbRegTransform * = nullptr ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move( const MbVector3D &to, MbRegTransform * = nullptr ); // \ru Сдвиг \en Translation
virtual void Rotate( const MbAxis3D &axis, double angle, MbRegTransform * = nullptr ); // \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
@@ -57,7 +57,7 @@ public :
// \ru Общие функции твердого тела \en Common functions of solid
virtual bool CreateShell( MbFaceShell *&shell, MbeCopyMode sameShell,
RPArray<MbSpaceItem> * items = c3d_null ) = 0; // \ru Построение \en Construction
RPArray<MbSpaceItem> * items = nullptr ) = 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 ( c3d_null )
, solidShell ( nullptr )
{
}
/// \ru Конструктор по двумерному контуру в локальной системе координат. \en Constructor by two-dimensional contour in the local coordinate system.
@@ -103,7 +103,7 @@ public:
, spaceCurves ( )
, surfaces ( )
, creators ( )
, solidShell ( c3d_null )
, solidShell ( nullptr )
{
SPtr<MbContour> sketchContour;
sketchContour = same ? const_cast<MbContour *>(&item) : static_cast<MbContour *>(&item.Duplicate());
@@ -118,7 +118,7 @@ public:
, spaceCurves ( )
, surfaces ( )
, creators ( )
, solidShell ( c3d_null )
, solidShell ( nullptr )
{
C3D_ASSERT( (direction.MaxFactor() < LENGTH_EPSILON) || !direction.Orthogonal( place.GetAxisZ(), ANGLE_EPSILON ) );
@@ -136,7 +136,7 @@ public:
, spaceCurves ( )
, surfaces ( )
, creators ( )
, solidShell ( c3d_null )
, solidShell ( nullptr )
{
::AddRefItems( items, same, sketchContours );
}
@@ -150,7 +150,7 @@ public:
, spaceCurves ( )
, surfaces ( )
, creators ( )
, solidShell ( c3d_null )
, solidShell ( nullptr )
{
C3D_ASSERT( (direction.MaxFactor() < LENGTH_EPSILON) || !direction.Orthogonal( place.GetAxisZ(), ANGLE_EPSILON ) );
@@ -165,7 +165,7 @@ public:
, spaceCurves ( )
, surfaces ( )
, creators ( )
, solidShell ( c3d_null )
, solidShell ( nullptr )
{
::AddRefItems( items, same, spaceCurves );
}
@@ -178,7 +178,7 @@ public:
, spaceCurves ( )
, surfaces ( )
, creators ( )
, solidShell ( c3d_null )
, solidShell ( nullptr )
{
::AddRefItems( items, same, spaceCurves );
}
@@ -191,7 +191,7 @@ public:
, spaceCurves ( )
, surfaces ( )
, creators ( )
, solidShell ( c3d_null )
, solidShell ( nullptr )
{
SPtr<MbSurface> surface;
surface = same ? const_cast<MbSurface *>(&item) : static_cast<MbSurface *>(&item.Duplicate());
@@ -206,7 +206,7 @@ public:
, spaceCurves ( )
, surfaces ( )
, creators ( )
, solidShell ( c3d_null )
, solidShell ( nullptr )
{
::AddRefItems( items, same, surfaces );
}
@@ -219,7 +219,7 @@ public:
, spaceCurves ( )
, surfaces ( )
, creators ( )
, solidShell ( c3d_null )
, solidShell ( nullptr )
{
::AddRefItems( items, same, surfaces );
}
@@ -322,12 +322,12 @@ public:
DeleteItems();
size_t creatorsCnt = solidCreators.size();
if ( creatorsCnt > 0 ) {
MbRegDuplicate * iReg = c3d_null;
MbRegDuplicate * iReg = nullptr;
MbAutoRegDuplicate autoReg( iReg );
SPtr<MbCreator> creator;
creators.reserve( creatorsCnt );
for ( size_t k = 0; k < creatorsCnt; ++k ) {
if ( solidCreators[k] != c3d_null ) {
if ( solidCreators[k] != nullptr ) {
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 * = c3d_null );
void Transform( const MbMatrix3D &, MbRegTransform * = nullptr );
/// \ru Сдвинуть по вектору. \en Shift by a vector.
void Move ( const MbVector3D &, MbRegTransform * = c3d_null );
void Move ( const MbVector3D &, MbRegTransform * = nullptr );
/// \ru Повернуть вокруг оси. \en Rotate about an axis.
void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = c3d_null );
void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = nullptr );
/// \ru Отсутствуют ли объекты? \en Are the objects absent?
bool IsEmpty() const {
return ( sketchContours.empty() &&
spaceCurves.empty() &&
surfaces.empty() &&
(creators.empty() && (solidShell == c3d_null)) ); }
(creators.empty() && (solidShell == nullptr)) ); }
/// \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() : c3d_null ); }
const MbContour * GetSketchCurve( size_t k ) const { return ((k < sketchContours.size()) ? sketchContours[k].get() : nullptr ); }
/// \ru Получить двумерную кривую по индексу. \en Get two-dimensional curve by index.
MbContour * SetSketchCurve( size_t k ) { return ((k < sketchContours.size()) ? sketchContours[k].get() : c3d_null ); }
MbContour * SetSketchCurve( size_t k ) { return ((k < sketchContours.size()) ? sketchContours[k].get() : nullptr ); }
/// \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() : c3d_null ); }
const MbCurve3D * GetSpaceCurve( size_t k ) const { return ((k < spaceCurves.size()) ? spaceCurves[k].get() : nullptr ); }
/// \ru Получить пространственную кривую по индексу. \en Get a spatial curve by index.
MbCurve3D * SetSpaceCurve( size_t k ) { return ((k < spaceCurves.size()) ? spaceCurves[k].get() : c3d_null ); }
MbCurve3D * SetSpaceCurve( size_t k ) { return ((k < spaceCurves.size()) ? spaceCurves[k].get() : nullptr ); }
/// \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() : c3d_null); }
const MbSurface * GetSurface( size_t k ) const { return ((k < surfaces.size()) ? surfaces[k].get() : nullptr); }
/// \ru Получить поверхность по индексу. \en Get a surface by index.
MbSurface * SetSurface( size_t k ) { return ((k < surfaces.size()) ? surfaces[k].get() : c3d_null); }
MbSurface * SetSurface( size_t k ) { return ((k < surfaces.size()) ? surfaces[k].get() : nullptr); }
/// \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() : c3d_null ); }
const MbCreator * GetCreator( size_t k ) const { return ((k < creators.size()) ? creators[k].get() : nullptr ); }
/// \ru Получить строитель по индексу. \en Get constructor by index.
MbCreator * SetCreator( size_t k ) { return ((k < creators.size()) ? creators[k].get() : c3d_null ); }
MbCreator * SetCreator( size_t k ) { return ((k < creators.size()) ? creators[k].get() : nullptr ); }
/// \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 = c3d_null;
MbRegDuplicate * iReg = nullptr;
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] != c3d_null )
if ( creators[k] != nullptr )
creator = static_cast<MbCreator *>( &creators[k]->Duplicate( iReg ) );
crs.push_back( creator );
::DetachItem( creator );
creator = c3d_null;
creator = nullptr;
}
}
/// \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 * = 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 MbCreator & Duplicate( MbRegDuplicate * = nullptr ) const;
virtual void Transform( const MbMatrix3D &, MbRegTransform * = nullptr ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = nullptr ); // \ru Сдвиг \en Translation
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = nullptr ); // \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 = c3d_null ); // \ru Построение \en Construction
RPArray<MbSpaceItem> * items = nullptr ); // \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 * = c3d_null ) const; // \ru Сделать копию \en Create a copy
virtual MbCreator & Duplicate( MbRegDuplicate * = nullptr ) 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 Transform( const MbMatrix3D &, MbRegTransform * = nullptr ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = nullptr ); // \ru Сдвиг \en Translation
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = nullptr ); // \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 = c3d_null ); // \ru Построение \en Construction
RPArray<MbSpaceItem> * items = nullptr ); // \ru Построение \en Construction
// \ru Дать параметры. \en Get the parameters.
void GetParameters( MbBeadValues & params ) const { params = parameters; }
+5 -5
View File
@@ -66,13 +66,13 @@ public:
// \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 MbCreator & Duplicate( MbRegDuplicate * = nullptr ) 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 Transform( const MbMatrix3D &, MbRegTransform * = nullptr ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
virtual void Move ( const MbVector3D &, MbRegTransform * = nullptr ); // \ru Сдвиг \en Translation
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = nullptr ); // \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
@@ -84,7 +84,7 @@ public:
// \ru Общие функции твердого тела \en Common functions of solid
virtual bool CreateShell( MbFaceShell *& shell, MbeCopyMode sameShell,
RPArray<MbSpaceItem> * items = c3d_null ); // \ru Построение \en Construction
RPArray<MbSpaceItem> * items = nullptr ); // \ru Построение \en Construction
// \ru Дать параметры. \en Get the parameters.
void GetParameters( MbJalousieValues & params ) const { params = parameters; }

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