Extern :
- C3d aggiornamento delle librerie.
This commit is contained in:
+19
-34
@@ -77,7 +77,7 @@ MATH_FUNC (bool) IsMultiShell( const MbFaceShell * shell, bool checkNesting = tr
|
||||
\ingroup Algorithms_3D
|
||||
*/
|
||||
// ---
|
||||
MATH_FUNC (size_t) DetachShells( MbFaceShell & shell, RPArray<MbFaceShell> & parts, bool sort, c3d::IndicesVector * partIndices = C3D_NULL_PTR );
|
||||
MATH_FUNC (size_t) DetachShells( MbFaceShell & shell, RPArray<MbFaceShell> & parts, bool sort, c3d::IndicesVector * partIndices = c3d_null );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
@@ -102,7 +102,7 @@ MATH_FUNC (size_t) DetachShells( MbFaceShell & shell, RPArray<MbFaceShell> & par
|
||||
\ingroup Algorithms_3D
|
||||
*/
|
||||
// ---
|
||||
MATH_FUNC (size_t) DetachShells( MbFaceShell & shell, c3d::ShellsVector & parts, bool sort, c3d::IndicesVector * partIndices = C3D_NULL_PTR );
|
||||
MATH_FUNC (size_t) DetachShells( MbFaceShell & shell, c3d::ShellsVector & parts, bool sort, c3d::IndicesVector * partIndices = c3d_null );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
@@ -127,7 +127,7 @@ MATH_FUNC (size_t) DetachShells( MbFaceShell & shell, c3d::ShellsVector & parts,
|
||||
\ingroup Algorithms_3D
|
||||
*/
|
||||
// ---
|
||||
MATH_FUNC (size_t) DetachShells( MbFaceShell & shell, c3d::ShellsSPtrVector & parts, bool sort, c3d::IndicesVector * partIndices = C3D_NULL_PTR );
|
||||
MATH_FUNC (size_t) DetachShells( MbFaceShell & shell, c3d::ShellsSPtrVector & parts, bool sort, c3d::IndicesVector * partIndices = c3d_null );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
@@ -151,15 +151,15 @@ MATH_FUNC (size_t) DetachShells( MbFaceShell & shell, c3d::ShellsSPtrVector & pa
|
||||
template <class ShellsVector>
|
||||
size_t CreateShells( const MbFaceShell & shell, ShellsVector & parts, bool sort = true )
|
||||
{
|
||||
c3d::ShellSPtr outer( new MbFaceShell( shell ) ); // new shell on the same faces (новая оболочка с теми же гранями)
|
||||
|
||||
c3d::IndicesVector * partIndices = C3D_NULL_PTR;
|
||||
|
||||
if ( ::DetachShells( *outer, parts, sort, partIndices ) > 0 ) {
|
||||
parts.push_back( outer );
|
||||
::DetachItem( outer );
|
||||
}
|
||||
|
||||
c3d::ShellSPtr outer( new MbFaceShell( shell ) ); // new shell on the same faces (новая оболочка с теми же гранями)
|
||||
|
||||
c3d::IndicesVector * partIndices = c3d_null;
|
||||
|
||||
if ( ::DetachShells( *outer, parts, sort, partIndices ) > 0 ) {
|
||||
parts.push_back( outer );
|
||||
::DetachItem( outer );
|
||||
}
|
||||
|
||||
return parts.size();
|
||||
}
|
||||
|
||||
@@ -251,21 +251,6 @@ MATH_FUNC (bool) UnifyOwnComplanarFaces( MbFaceShell & shell,
|
||||
bool checkBaseSurfaces );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Найти и устранить общие поверхности-подложки в гранях.
|
||||
\en Find and eliminate common underlying surfaces of faces \~
|
||||
\details \ru Найти и устранить общие поверхности-подложки в гранях оболочки. \n
|
||||
\en Find and eliminate common underlying surfaces of a shell faces. \n \~
|
||||
\param[in] shell - \ru Модифицируемая оболочка.
|
||||
\en A shell to be modified. \~
|
||||
\return \ru Возвращает true, если оболочка была изменена.
|
||||
\en Returns 'true' if the shell has been modified. \~
|
||||
\ingroup Algorithms_3D
|
||||
*/
|
||||
// ---
|
||||
MATH_FUNC (bool) CheckIdenticalBaseSufaces( MbFaceShell & shell );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Захватить грани одним из способов.
|
||||
\en Capture the faces in one of proposed methods. \~
|
||||
@@ -1254,9 +1239,9 @@ MATH_FUNC (bool) FindTouchedFaces( const MbSolid & solid1,
|
||||
\en To find contacted faces of bodies. \~
|
||||
\details \ru Разбить контактирующие грани тел, выделив общие области с конечной площадью перекрытия в отдельные грани. \~
|
||||
\en To find contacted faces of bodies and build a finite overlap contacted area as faces. \~
|
||||
\param[in/out] solid1 - \ru Первое тело.
|
||||
\param[in,out] solid1 - \ru Первое тело.
|
||||
\en The first solid. \~
|
||||
\param[in/out] solid2 - \ru Второе тело.
|
||||
\param[in,out] solid2 - \ru Второе тело.
|
||||
\en The second solid. \~
|
||||
\param[in] precision - \ru Точность операции.
|
||||
\en The precision of operation. \~
|
||||
@@ -1344,13 +1329,13 @@ c3d::SolidSPtr GetTransformedSolid( c3d::SolidSPtr & solid, MbeCopyMode & copyMo
|
||||
{
|
||||
c3d::SolidSPtr resSolid( solid );
|
||||
|
||||
if ( (resSolid != NULL) && !matr.IsSingle() ) {
|
||||
if ( (resSolid != c3d_null) && !matr.IsSingle() ) {
|
||||
MbSNameMaker n( transformedMainName, MbSNameMaker::i_SideNone, 0 );
|
||||
|
||||
MbSolid * resSolidPtr = NULL;
|
||||
MbSolid * resSolidPtr = c3d_null;
|
||||
TransformValues tv( matr );
|
||||
::TransformedSolid( *solid, cm_Copy, tv, n, resSolidPtr );
|
||||
if ( resSolidPtr != NULL ) {
|
||||
if ( resSolidPtr != c3d_null ) {
|
||||
resSolid = resSolidPtr;
|
||||
copyMode = cm_Same;
|
||||
}
|
||||
@@ -1374,10 +1359,10 @@ c3d::SolidSPtr GetTransformedSolid( c3d::SolidSPtr & solid, MbeCopyMode & copyMo
|
||||
*/
|
||||
// ---
|
||||
template <class Item>
|
||||
SPtr<Item> GetTransformedItem( SPtr<Item> & item, const MbMatrix3D & matr, MbRegDuplicate * iDupReg = NULL, MbRegTransform * iTransReg = NULL )
|
||||
SPtr<Item> GetTransformedItem( SPtr<Item> & item, const MbMatrix3D & matr, MbRegDuplicate * iDupReg = c3d_null, MbRegTransform * iTransReg = c3d_null )
|
||||
{
|
||||
SPtr<Item> resItem( item );
|
||||
if ( (resItem != NULL) && !matr.IsSingle() ) {
|
||||
if ( (resItem != c3d_null) && !matr.IsSingle() ) {
|
||||
resItem = static_cast<Item *>( &item->Duplicate( iDupReg ) );
|
||||
resItem->Transform( matr, iTransReg );
|
||||
}
|
||||
|
||||
@@ -59,7 +59,7 @@ typedef void( *SurfaceFunction )( const MbSurface & surf, // Поверхно
|
||||
MATH_FUNC( void ) MinSurfaceCurvature( const MbSurface & surf,
|
||||
const MbCartPoint & pnt,
|
||||
double & func,
|
||||
MbVector * der = NULL );
|
||||
MbVector * der = c3d_null );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
@@ -80,7 +80,7 @@ MATH_FUNC( void ) MinSurfaceCurvature( const MbSurface & surf,
|
||||
MATH_FUNC( void ) MaxSurfaceCurvature( const MbSurface & surf,
|
||||
const MbCartPoint & pnt,
|
||||
double & func,
|
||||
MbVector * der = NULL );
|
||||
MbVector * der = c3d_null );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
@@ -101,7 +101,7 @@ MATH_FUNC( void ) MaxSurfaceCurvature( const MbSurface & surf,
|
||||
MATH_FUNC( void ) GaussCurvature( const MbSurface & surf,
|
||||
const MbCartPoint & pnt,
|
||||
double & func,
|
||||
MbVector * der = NULL );
|
||||
MbVector * der = c3d_null );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
@@ -122,7 +122,7 @@ MATH_FUNC( void ) GaussCurvature( const MbSurface & surf,
|
||||
MATH_FUNC( void ) MeanCurvature( const MbSurface & surf,
|
||||
const MbCartPoint & pnt,
|
||||
double & func,
|
||||
MbVector * der = NULL );
|
||||
MbVector * der = c3d_null );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
@@ -143,7 +143,7 @@ MATH_FUNC( void ) MeanCurvature( const MbSurface & surf,
|
||||
MATH_FUNC( void ) UNormalCurvature( const MbSurface & surf,
|
||||
const MbCartPoint & pnt,
|
||||
double & func,
|
||||
MbVector * der = NULL );
|
||||
MbVector * der = c3d_null );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
@@ -164,7 +164,7 @@ MATH_FUNC( void ) UNormalCurvature( const MbSurface & surf,
|
||||
MATH_FUNC( void ) VNormalCurvature( const MbSurface & surf,
|
||||
const MbCartPoint & pnt,
|
||||
double & func,
|
||||
MbVector * der = NULL );
|
||||
MbVector * der = c3d_null );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
@@ -172,8 +172,8 @@ MATH_FUNC( void ) VNormalCurvature( const MbSurface & surf,
|
||||
\en Find the points of the surface at which the selected curvature takes the largest in modulus values. \~
|
||||
\details \ru Ищутся точки, в которых выбранная кривизна принимает на поверхности наибольшее положительное и наименьшее отрицательное значение.
|
||||
\en Looks for points at which the selected curvature takes on the surface the greatest positive and least negative value. \~
|
||||
\param[in] surf - \ru Исследуемая поверхность.
|
||||
\en Test surface. \~
|
||||
\param[in] surface - \ru Исследуемая поверхность.
|
||||
\en Test surface. \~
|
||||
\param[in] func - \ru Функция расчета кривизны в точке.
|
||||
\en The function of calculating the curvature at a point. \~
|
||||
\param[out] maxNegCurv - \ru Наибольшее по модулю отрицательное значение кривизны (0, если нет такого).
|
||||
@@ -241,8 +241,8 @@ MATH_FUNC( void ) FacesMinMaxCurvature( const RPArray<MbFace> & faces,
|
||||
\en Find the points on the surface at which the major normal curvatures take the largest values in the module. \~
|
||||
\details \ru Ищутся точки на поверхности, в которых главные нормальные кривизны принимают наибольшее положительное и наименьшее отрицательное значение.
|
||||
\en Looks for points on the surface at which the major normal curvatures take the largest positive and smallest negative values. \~
|
||||
\param[in] surf - \ru Исследуемая поверхность.
|
||||
\en Test surface. \~
|
||||
\param[in] surface - \ru Исследуемая поверхность.
|
||||
\en Test surface. \~
|
||||
\param[out] maxNegCurv - \ru Наибольшее по модулю отрицательное значение кривизны (0, если нет такого).
|
||||
\en The largest in modulus value negative curvature (0, if there is no such). \~
|
||||
\param[out] maxNegLoc - \ru Точка, в которой кривизна принимает наибольшее по модулю отрицательное значение.
|
||||
@@ -321,7 +321,7 @@ MATH_FUNC( void ) FacesMinMaxCurvature( const RPArray<MbFace> & faces,
|
||||
*/
|
||||
MATH_FUNC( double ) CurveOrientedCurvature( const MbCurve3D & curve,
|
||||
double & param,
|
||||
const MbVector3D * planeNorm = NULL );
|
||||
const MbVector3D * planeNorm = c3d_null );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
@@ -358,10 +358,10 @@ MATH_FUNC( void ) CurveMinMaxCurvature( const MbCurve3D & curve,
|
||||
double & maxParam,
|
||||
double & minCurv,
|
||||
double & minParam,
|
||||
c3d::DoubleVector * bendPoints = NULL,
|
||||
c3d::DoubleVector * maxPoints = NULL,
|
||||
c3d::DoubleVector * minPoints = NULL,
|
||||
c3d::DoublePairsVector * rapPoints = NULL );
|
||||
c3d::DoubleVector * bendPoints = c3d_null,
|
||||
c3d::DoubleVector * maxPoints = c3d_null,
|
||||
c3d::DoubleVector * minPoints = c3d_null,
|
||||
c3d::DoublePairsVector * rapPoints = c3d_null );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
@@ -341,8 +341,8 @@ public:
|
||||
To fit surface use corresponding methods SegmentMesh or FitSurfaceToSegment. \n \~
|
||||
\param[in] idxSegment - \ru Индекс сегмента полигональной сетки.
|
||||
\en Index of a mesh segment. \~
|
||||
\return \ru Возвращает указатель на поверхность для сегмента, если поверхность определена, иначе - NULL.
|
||||
\en Returns pointer to segment surface if it exists, else - NULL. \~
|
||||
\return \ru Возвращает указатель на поверхность для сегмента, если поверхность определена, иначе - c3d_null.
|
||||
\en Returns pointer to segment surface if it exists, else - c3d_null. \~
|
||||
\ingroup Polygonal_Objects
|
||||
*/
|
||||
virtual const MbSurface * GetSegmentSurface( size_t idxSegment ) const = 0;
|
||||
|
||||
+34
-25
@@ -171,12 +171,14 @@ MATH_FUNC (MbResultType) Segment( const MbCartPoint & point1,
|
||||
*/
|
||||
//---
|
||||
|
||||
MATH_FUNC( MbResultType ) Arc( MbeArcCreateWay createWay,
|
||||
const MbCartPoint & center,
|
||||
const std::vector<MbCartPoint> & points,
|
||||
double & a, double & b, double & c,
|
||||
bool option,
|
||||
MbCurve *& result );
|
||||
MATH_FUNC( MbResultType ) Arc( MbeArcCreateWay createWay,
|
||||
const MbCartPoint & center,
|
||||
const c3d::ParamPointsVector & points,
|
||||
double & a,
|
||||
double & b,
|
||||
double & c,
|
||||
bool option,
|
||||
MbCurve *& result );
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/**\attention \ru Функция устарела. Вместо неё применять #Arc.
|
||||
@@ -185,11 +187,13 @@ MATH_FUNC( MbResultType ) Arc( MbeArcCreateWay createWay,
|
||||
*/
|
||||
// 2018
|
||||
//---
|
||||
MATH_FUNC( MbResultType ) Arc( const MbCartPoint & centre,
|
||||
MATH_FUNC( MbResultType ) Arc( const MbCartPoint & centre,
|
||||
const SArray<MbCartPoint> & points,
|
||||
bool curveClosed, double angle,
|
||||
double & a, double & b,
|
||||
MbCurve *& result );
|
||||
bool curveClosed,
|
||||
double angle,
|
||||
double & a,
|
||||
double & b,
|
||||
MbCurve *& result );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
@@ -225,8 +229,9 @@ MATH_FUNC( MbResultType ) Arc( const MbCartPoint & centre,
|
||||
*/
|
||||
// ---
|
||||
MATH_FUNC (MbResultType) SplineCurve( const SArray<MbCartPoint> & pointList,
|
||||
bool curveClosed, MbePlaneType curveType,
|
||||
MbCurve *& result );
|
||||
bool curveClosed,
|
||||
MbePlaneType curveType,
|
||||
MbCurve *& result );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
@@ -256,9 +261,11 @@ MATH_FUNC (MbResultType) SplineCurve( const SArray<MbCartPoint> & pointList,
|
||||
*/
|
||||
//---
|
||||
MATH_FUNC (MbResultType) NurbsCurve( const SArray<MbCartPoint> & pointList,
|
||||
const SArray<double> & weightList, size_t degree,
|
||||
const SArray<double> & knotList, bool curveClosed,
|
||||
MbCurve *& result );
|
||||
const SArray<double> & weightList,
|
||||
size_t degree,
|
||||
const SArray<double> & knotList,
|
||||
bool curveClosed,
|
||||
MbCurve *& result );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
@@ -430,7 +437,7 @@ MATH_FUNC (MbCurve *) DuplicateCurve( const MbCurve & curve );
|
||||
// ---
|
||||
MATH_FUNC (MbContour *) DuplicateContour( const MbContour & cntr,
|
||||
bool modifySegments,
|
||||
MbSNameMaker * names = NULL );
|
||||
MbSNameMaker * names = c3d_null );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
@@ -694,12 +701,12 @@ MATH_FUNC (MbResultType) SurfaceBoundContour( const MbSurface & surface,
|
||||
or for contour pt_Contour if its first segment is of one of the listed types. \~
|
||||
\param[in] segment - \ru Изменяемая кривая.
|
||||
\en The modified curve. \~
|
||||
\param[in] p1 - \ru Новая начальная точка.
|
||||
\en A new start point. \~
|
||||
\param[in] p - \ru Новая начальная точка.
|
||||
\en A new start point. \~
|
||||
\ingroup Algorithms_2D
|
||||
*/
|
||||
// ---
|
||||
MATH_FUNC (bool) ChangeFirstPoint( MbCurve * segment, const MbCartPoint & p1 );
|
||||
MATH_FUNC (bool) ChangeFirstPoint( MbCurve * segment, const MbCartPoint & p );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
@@ -717,23 +724,25 @@ MATH_FUNC (bool) ChangeFirstPoint( MbCurve * segment, const MbCartPoint & p1 );
|
||||
or for contour pt_Contour if its last segment is of one of the listed types. \~
|
||||
\param[in] segment - \ru Изменяемая кривая.
|
||||
\en The modified curve. \~
|
||||
\param[in] p1 - \ru Новая начальная точка.
|
||||
\en A new start point. \~
|
||||
\param[in] p - \ru Новая начальная точка.
|
||||
\en A new start point. \~
|
||||
\ingroup Algorithms_2D
|
||||
*/
|
||||
// ---
|
||||
MATH_FUNC (bool) ChangeLastPoint( MbCurve * segment, const MbCartPoint & p2 );
|
||||
MATH_FUNC (bool) ChangeLastPoint( MbCurve * segment, const MbCartPoint & p );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Является ли кривая прямолинейной независимо от ее параметризации.
|
||||
\en Whether the curve is like straight-line regardless of its parameterisation. \~
|
||||
\en Whether the curve is like straight-line regardless of its parameterization. \~
|
||||
\details \ru Является ли кривая прямолинейной независимо от ее параметризации.\n
|
||||
\en Whether the curve is like straight-line regardless of its parameterisation. \~
|
||||
\en Whether the curve is like straight-line regardless of its parameterization. \~
|
||||
\param[in] curve - \ru Кривая.
|
||||
\en Curve. \~
|
||||
\param[in] eps - \ru Точность.
|
||||
\en Accuracy. \~
|
||||
\return \ru Возвращает true, если кривая геометрически прямолинейна.
|
||||
\en Returns true, if a curve is geometrically straight. \~
|
||||
\ingroup Curve_Modeling
|
||||
*/
|
||||
// ---
|
||||
@@ -758,7 +767,7 @@ MATH_FUNC (bool) IsLikeStraightLine( const MbCurve & curve, double eps );
|
||||
// ---
|
||||
MATH_FUNC( MbContour * ) DeleteDegenerateSegments( const MbContour & cntr,
|
||||
bool modifySegments,
|
||||
MbSNameMaker * names = NULL );
|
||||
MbSNameMaker * names = c3d_null );
|
||||
|
||||
|
||||
#endif // __ACTION_CURVE_H
|
||||
|
||||
@@ -56,7 +56,7 @@ struct MATH_CLASS EvolutionValues;
|
||||
// ---
|
||||
MATH_FUNC (MbResultType) Line( const MbCartPoint3D & point1,
|
||||
const MbCartPoint3D & point2,
|
||||
MbCurve3D *& result );
|
||||
MbCurve3D *& result );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
@@ -77,7 +77,7 @@ MATH_FUNC (MbResultType) Line( const MbCartPoint3D & point1,
|
||||
// ---
|
||||
MATH_FUNC (MbResultType) Segment( const MbCartPoint3D & point1,
|
||||
const MbCartPoint3D & point2,
|
||||
MbCurve3D *& result );
|
||||
MbCurve3D *& result );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
@@ -106,11 +106,13 @@ MATH_FUNC (MbResultType) Segment( const MbCartPoint3D & point1,
|
||||
\ingroup Curve3D_Modeling
|
||||
*/
|
||||
//---
|
||||
MATH_FUNC (MbResultType) Arc( const MbCartPoint3D & centre,
|
||||
MATH_FUNC (MbResultType) Arc( const MbCartPoint3D & centre,
|
||||
const SArray<MbCartPoint3D> & points,
|
||||
bool curveClosed, double angle,
|
||||
double & a, double & b,
|
||||
MbCurve3D *& result );
|
||||
bool curveClosed,
|
||||
double angle,
|
||||
double & a,
|
||||
double & b,
|
||||
MbCurve3D *& result );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
@@ -146,9 +148,9 @@ MATH_FUNC (MbResultType) Arc( const MbCartPoint3D & centre,
|
||||
*/
|
||||
// ---
|
||||
MATH_FUNC (MbResultType) SplineCurve( const SArray<MbCartPoint3D> & pointList,
|
||||
bool curveClosed,
|
||||
MbeSpaceType curveType,
|
||||
MbCurve3D *& result );
|
||||
bool curveClosed,
|
||||
MbeSpaceType curveType,
|
||||
MbCurve3D *& result );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
@@ -178,9 +180,11 @@ MATH_FUNC (MbResultType) SplineCurve( const SArray<MbCartPoint3D> & pointList,
|
||||
*/
|
||||
//---
|
||||
MATH_FUNC (MbResultType) NurbsCurve( const SArray<MbCartPoint3D> & pointList,
|
||||
const SArray<double> & weightList, size_t degree,
|
||||
const SArray<double> & knotList, bool curveClosed,
|
||||
MbCurve3D *& result );
|
||||
const SArray<double> & weightList,
|
||||
size_t degree,
|
||||
const SArray<double> & knotList,
|
||||
bool curveClosed,
|
||||
MbCurve3D *& result );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
@@ -279,11 +283,11 @@ MATH_FUNC (MbResultType) SpiralCurve( const MbPlacement3D & place,
|
||||
\details \ru Создать спираль. \n
|
||||
Если spiralAxis == true, то lawCurve - определяет плоскую ось спирали. \n
|
||||
Если spiralAxis == false, то lawCurve - определяет закон изменения радиуса спирали. \n
|
||||
Если lawCurve == NULL, то строится коническая спираль с углом конусности angle. \n
|
||||
Если lawCurve == c3d_null, то строится коническая спираль с углом конусности angle. \n
|
||||
\en Create a spiral. \n
|
||||
If 'spiralAxis' == true, 'lawCurve' determines the axis of a spiral. \n
|
||||
If spiralAxis == false, then 'lawCurve' - determines a radius law. \n
|
||||
If lawCurve == NULL, a conical spiral is created with the specified taper angle. \n \~
|
||||
If lawCurve == c3d_null, a conical spiral is created with the specified taper angle. \n \~
|
||||
\param[in] point0 - \ru Начало локальной системы координат (ЛСК).
|
||||
\en The origin of local coordinate system (LCS). \~
|
||||
\param[in] point1 - \ru Точка на оси Z ЛСК.
|
||||
@@ -640,7 +644,7 @@ MATH_FUNC (MbResultType) CreatePolyArcCurve3D( const MbCurve3D & curve,
|
||||
MATH_FUNC (bool) GetSpaceCurve( const MbItem & item,
|
||||
bool keepPlacement,
|
||||
SPtr<MbCurve3D> & curve0,
|
||||
std::vector< SPtr<MbCurve3D> > * curves = NULL );
|
||||
std::vector< SPtr<MbCurve3D> > * curves = c3d_null );
|
||||
|
||||
|
||||
//-------------------------------------------------------------------------------
|
||||
@@ -662,9 +666,9 @@ MATH_FUNC (bool) GetSpaceCurve( const MbItem & item,
|
||||
\param[in] deviationAngle - \ru Параметру точности.
|
||||
\en The parameter of accuracy. \~
|
||||
\return \ru Возвращает указатель на построенную кривую с нулевум счетчиком ссылок \n
|
||||
или NULL, если не удалось построить развертку для заданных параметров.
|
||||
или c3d_null, если не удалось построить развертку для заданных параметров.
|
||||
\en The pointer to the constructed curve with zero counter of references\n
|
||||
return NULL, if unwrap curve can't be construvted for this parameters
|
||||
return c3d_null, if unwrap curve can't be construvted for this parameters
|
||||
\ingroup Curve3D_Modeling
|
||||
*/
|
||||
// ---
|
||||
@@ -719,6 +723,8 @@ MATH_FUNC (MbResultType) EvolutionSection( const MbSweptData & generCurves,
|
||||
\en Curve. \~
|
||||
\param[in] eps - \ru Точность.
|
||||
\en Accuracy. \~
|
||||
\return \ru Возвращает true, если кривая геометрически прямолинейна.
|
||||
\en Returns true, if a curve is geometrically straight. \~
|
||||
\ingroup Curve3D_Modeling
|
||||
*/
|
||||
// ---
|
||||
@@ -1256,11 +1262,14 @@ MATH_FUNC( MbResultType ) AddKnotNurbs( MbNurbs3D * curve,
|
||||
\en Insert a knot into the onesegmented NURBS curve.\n
|
||||
The output parameter of the method is a NURBS curve of first segment. \~
|
||||
|
||||
\param[in] curve - \ru NURBS кривая в произвольном формате. \en NURBS curve in any format. \~
|
||||
\param[in] data - \ru Данные построения кривой. \en The curve construction data. \~
|
||||
\param[out] result - \ru NURBS Кривая. \en NURBS curve. \~
|
||||
\return \ru Возвращает значение результата операции. \en Returns operation result value.
|
||||
|
||||
\param[in] curve - \ru NURBS кривая в произвольном формате.
|
||||
\en NURBS curve in any format. \~
|
||||
\param[in] data - \ru Данные построения кривой.
|
||||
\en The curve construction data. \~
|
||||
\param[out] resCurve - \ru NURBS Кривая.
|
||||
\en NURBS curve. \~
|
||||
\return \ru Возвращает значение результата операции.
|
||||
\en Returns operation result value.
|
||||
\ingroup Curve3D_Modeling
|
||||
*/
|
||||
MATH_FUNC( MbResultType ) ExtractExtrapolFromSegment( MbNurbs3D * curve,
|
||||
@@ -1310,7 +1319,7 @@ MATH_FUNC(MbResultType) ConicNurbs( MbNurbs3D * curve,
|
||||
\en The curve length evaluation. \~
|
||||
\param[in] accuracy - \ru Относительная точность рассчёта длины кривой.
|
||||
\en Relative accuracy calculate the length of a curve. \~
|
||||
\param[in/out] maxCurvatre - \ru Максимально допустимая кривизна кривой.
|
||||
\param[in,out] maxCurvatre - \ru Максимально допустимая кривизна кривой.
|
||||
\en The maximum curvature of the resulting curve. \~
|
||||
\param[out] result - \ru Построенная кривая.
|
||||
\en The resulting curve. \~
|
||||
|
||||
@@ -61,8 +61,8 @@ MATH_FUNC (void) CalculatePolygon( const MbCurve & curve,
|
||||
локальной системы координат.
|
||||
\en Create a polygonal object for two-dimensional object in the XOY-plane
|
||||
of the local coordinate system. \~
|
||||
\param[in] obj - \ru Двумерный объект (если NULL, то объект не создаётся).
|
||||
\en Two-dimensional object (if NULL, object isn't created). \~
|
||||
\param[in] obj - \ru Двумерный объект (если c3d_null, то объект не создаётся).
|
||||
\en Two-dimensional object (if c3d_null, object isn't created). \~
|
||||
\param[in] plane - \ru Локальная система координат.
|
||||
\en A local coordinate system. \~
|
||||
\param[in] sag - \ru Максимальное отклонение полигонального объекта от оригинала по прогибу.
|
||||
|
||||
@@ -184,7 +184,7 @@ MATH_FUNC (MbResultType) OffsetPhantom( const MbSolid & solid,
|
||||
const SweptValues & params,
|
||||
const MbSNameMaker & operNames,
|
||||
MbFaceShell *& result,
|
||||
size_t * hpShellFaceInd = NULL ); // \ru Номер грани в исходной оболочки для построения хот-точки); \en The face number in the initial shell for a hot-point creation);
|
||||
size_t * hpShellFaceInd = c3d_null ); // \ru Номер грани в исходной оболочки для построения хот-точки); \en The face number in the initial shell for a hot-point creation);
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
@@ -261,7 +261,7 @@ MATH_FUNC (MbResultType) SmoothPositionData( const MbSolid & sol
|
||||
const SmoothValues & params,
|
||||
RPArray<MbPositionData> & result,
|
||||
double edgeParam = 0.5,
|
||||
const MbCurveEdge * dimensionEdge = NULL );
|
||||
const MbCurveEdge * dimensionEdge = c3d_null );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
@@ -293,7 +293,7 @@ MATH_FUNC (MbResultType) SmoothPositionData( const MbSolid & sol
|
||||
const SmoothValues & params,
|
||||
RPArray<MbPositionData> & result,
|
||||
double edgeParam = 0.5,
|
||||
const MbCurveEdge * dimensionEdge = NULL );
|
||||
const MbCurveEdge * dimensionEdge = c3d_null );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
@@ -303,15 +303,18 @@ MATH_FUNC (MbResultType) SmoothPositionData( const MbSolid & sol
|
||||
\en A function creation for behavior of selected curve coordinate with curve parameter. \n
|
||||
\param[in] curve - \ru Кривая.
|
||||
\en The curve. \~
|
||||
\param[in] coordinate - \ru Номер координаты пространства.
|
||||
\en The number of curve coordinate. \~
|
||||
\param[in] place - \ru Локальная система координат, в которой используется кривая.
|
||||
\en The local coordinate system that uses the curve. \~
|
||||
\param[in] coordinate - \ru Номер (0,1,2) координаты кривой в локальной системе координат для построения функции.
|
||||
\en The number (0,1,2) of the curve coordinate in the local coordinate system for constructing the function. \~
|
||||
\return \ru Возвращает построенную функцию.
|
||||
\en Returns the created function. \~
|
||||
\ingroup Algorithms_3D
|
||||
*/
|
||||
// ---
|
||||
MATH_FUNC (MbFunction *) CreateFunction( const MbCurve3D & curve,
|
||||
size_t coordinate );
|
||||
const MbPlacement3D & place,
|
||||
size_t coordinate );
|
||||
|
||||
|
||||
#endif // __ACTION_PHANTOM_H
|
||||
|
||||
@@ -39,8 +39,8 @@ class MATH_CLASS MbFaceShell;
|
||||
\en Number of elements in the array. \~
|
||||
\param[out] res - \ru Результат операции.
|
||||
\en The operation result. \~
|
||||
\return \ru Возвращает массив элементов, если он создан, или NULL в противном случае.
|
||||
\en Returns an array of elements if it has been created, otherwise returns NULL. \~
|
||||
\return \ru Возвращает массив элементов, если он создан, или c3d_null в противном случае.
|
||||
\en Returns an array of elements if it has been created, otherwise returns c3d_null. \~
|
||||
\ingroup Algorithms_3D
|
||||
*/
|
||||
// ---
|
||||
@@ -48,11 +48,11 @@ template <class Type>
|
||||
inline SArray<Type> * CreateArray( size_t cnt, MbResultType & res )
|
||||
{
|
||||
SArray<Type> * arr = new SArray<Type> ( cnt, 1 );
|
||||
if ( arr != NULL && arr->GetAddr() == NULL ) {
|
||||
if ( arr != c3d_null && arr->GetAddr() == c3d_null ) {
|
||||
delete arr;
|
||||
arr = NULL;
|
||||
arr = c3d_null;
|
||||
}
|
||||
if ( arr == NULL )
|
||||
if ( arr == c3d_null )
|
||||
res = rt_TooManyPoints;
|
||||
|
||||
return arr;
|
||||
@@ -79,7 +79,7 @@ template <class Type>
|
||||
inline bool ReserveArray( SArray<Type> & arr, size_t n, MbResultType & res )
|
||||
{
|
||||
arr.Reserve( n );
|
||||
if ( arr.GetAddr() == NULL ) {
|
||||
if ( arr.GetAddr() == c3d_null ) {
|
||||
res = rt_TooManyPoints;
|
||||
return false;
|
||||
}
|
||||
@@ -107,7 +107,7 @@ template <class Type>
|
||||
inline bool AddItem( SArray<Type> & arr, const Type & item, MbResultType & res )
|
||||
{
|
||||
arr.Add( item );
|
||||
if ( arr.GetAddr() == NULL ) {
|
||||
if ( arr.GetAddr() == c3d_null ) {
|
||||
res = rt_TooManyPoints;
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -613,7 +613,7 @@ MATH_FUNC (MbResultType) UnbendSheetSolid( MbSolid & sol
|
||||
const MbCartPoint & fixedPoint,
|
||||
const MbSNameMaker & nameMaker,
|
||||
MbSolid *& result,
|
||||
RPArray<MbContour3D> * ribContours = NULL );
|
||||
RPArray<MbContour3D> * ribContours = c3d_null );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
@@ -958,6 +958,51 @@ MATH_FUNC (MbResultType) CreateStampParts( const MbPlacement3D & placement,
|
||||
MbSolid *& partToSubtract );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Создание составляющих частей штамповки одного тела другим телом.
|
||||
\en Stamping with a tool solid (punch or die). \~
|
||||
\details \ru Штамповка строится на основе произвольного тела-инструмента и заданной плоской листовой грани.
|
||||
Штамповка подрезается границами листовой грани, которую пересекает тело.\n
|
||||
\en The stamping is created based on a tool body and a flat sheet face.
|
||||
The stamping is trimmed by the boundary of the sheet face which contains the sketch.\n \~
|
||||
\param[in] solid - \ru Исходное листовое тело.
|
||||
\en The source sheet solid. \~
|
||||
\param[in] sameShell - \ru Флаг удаления оболочки исходного тела.
|
||||
\en Whether to delete the shell of the source solid. \~
|
||||
\param[in] targetFace - \ru Грань штамповки.
|
||||
\en The face for stamping. \~
|
||||
\param[in] toolSolid - \ru Оболочка тела-инструмента.
|
||||
\en A shell of tool solid. \~
|
||||
\param[in] sameShellTool - \ru Флаг удаления оболочки тела-инструмента.
|
||||
\en Whether to delete the shell of the tool solid. \~
|
||||
\param[in] punch - \ru Является тело-инструмент пуансоном или матрицей.
|
||||
\en Is tool body a punch or a die. \~
|
||||
\param[in] pierceFaces - \ru Вскрываемые для вырубки грани инструмента,
|
||||
\en Pierce faces of tool body. \~
|
||||
\param[in] params - \ru Параметры штамповки.
|
||||
\en The parameters of stamping. \~
|
||||
\param[in] nameMaker - \ru Именователь.
|
||||
\en An object for naming the new objects. \~
|
||||
\param[out] partToAdd - \ru Добавляемая часть штамповки.
|
||||
\en Added part of the stamp. \~
|
||||
\param[out] partToSubtract - \ru Вычитаемая часть штамповки.
|
||||
\en Deductible part of the stamp. \~
|
||||
\ingroup Sheet_Metal_Modeling
|
||||
*/
|
||||
// ---
|
||||
MATH_FUNC(MbResultType) CreateStampWithToolSolidParts( MbSolid & solid,
|
||||
MbeCopyMode sameShell,
|
||||
const MbFace & targetFace,
|
||||
MbSolid & toolSolid,
|
||||
MbeCopyMode sameShellTool,
|
||||
bool punch,
|
||||
const RPArray<MbFace>& pierceFaces,
|
||||
const MbToolStampingValues & params,
|
||||
const MbSNameMaker & nameMaker,
|
||||
MbSolid * & partsToAdd,
|
||||
MbSolid * & partsToSubtract );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Штамповка.
|
||||
\en Stamping. \~
|
||||
@@ -1176,6 +1221,7 @@ MATH_FUNC (MbResultType) CreateBeadParts( const MbFace * face,
|
||||
//------------------------------------------------------------------------------
|
||||
// устаревшая
|
||||
// ---
|
||||
DEPRECATE_DECLARE
|
||||
MATH_FUNC (MbResultType) CreateBeadParts( const MbPlacement3D & placement,
|
||||
const RPArray<MbContour> & contours,
|
||||
const SArray<MbCartPoint> & centers,
|
||||
@@ -1230,6 +1276,7 @@ MATH_FUNC (MbResultType) CreateBead( MbSolid & solid,
|
||||
|
||||
|
||||
// устаревшая
|
||||
DEPRECATE_DECLARE
|
||||
MATH_FUNC (MbResultType) CreateBead( MbSolid & solid,
|
||||
MbeCopyMode sameShell,
|
||||
const MbFace & face,
|
||||
@@ -1281,6 +1328,7 @@ MATH_FUNC (MbResultType) CreateJalousieParts( const MbFace * fac
|
||||
//------------------------------------------------------------------------------
|
||||
// устаревшая
|
||||
// ---
|
||||
DEPRECATE_DECLARE
|
||||
MATH_FUNC (MbResultType) CreateJalousieParts( const MbPlacement3D & placement,
|
||||
const RPArray<MbLineSegment> & segments,
|
||||
const MbJalousieValues & params,
|
||||
@@ -1785,6 +1833,24 @@ MATH_FUNC (bool) BuildBends3DAxisLines( const RPArray<MbFace> & bendFac
|
||||
RPArray<MbLineSegment3D> & axisLineSegments );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Рассчитать осевые линии разогнутых сгибов.
|
||||
\en Calculate the centerlines of unfolded bends. \~
|
||||
\details \ru Возвращает трёхмерные осевые линии, лежащие на разогнутых гранях сгибов.\n
|
||||
\en Returns the 3D centerlines that lies on the unbent faces of the bends.\n \~
|
||||
\param[in] bendFaces - \ru Грани разогнутых сгибов, для которых строить линии сгиба.
|
||||
\en Sheet faces of unfolded bends, that need constraction of the axis lines. \~
|
||||
\param[out] centerlines - \ru Искомые осевые линии.
|
||||
\en The required centerlines. \~
|
||||
\return \ru true - в случае успеха операции, false - в противном случае.
|
||||
\en True if the operation succeeded, otherwise false. \~
|
||||
\ingroup Sheet_Metal_Modeling
|
||||
*/
|
||||
// ---
|
||||
MATH_FUNC (bool) BuildBends3DCenterlines( const RPArray<MbFace> & bendFaces,
|
||||
RPArray<MbCurve3D> & centerlines );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Рассчитать параметры для замыкания угла.
|
||||
\en Calculate the parameters for the corner closure. \~
|
||||
@@ -2369,7 +2435,7 @@ MATH_FUNC (MbResultType) RemoveOperationResult( MbSolid & solid,
|
||||
\en The initial face for sheet metall solid building. \~
|
||||
\param[in] sense - \ru Направление придания толщины относительно нормали исходной грани.
|
||||
\en Direction of sheet metal building relative to initial face normal. \~
|
||||
\param[in/out] parameters - \ru Параметры операции.
|
||||
\param[in,out] parameters - \ru Параметры операции.
|
||||
\en Operation parameters. \~
|
||||
\param[in] nameMaker - \ru Именователь.
|
||||
\en An object for naming the new objects. \~
|
||||
|
||||
+14
-14
@@ -263,17 +263,17 @@ MATH_FUNC (MbResultType) MeshShell( MeshSurfaceValues & pars,
|
||||
\ingroup Shell_Modeling
|
||||
*/
|
||||
// ---
|
||||
MATH_FUNC (MbResultType) TruncateShell( MbSolid & initSolid,
|
||||
SArray<size_t> & selIndices,
|
||||
MATH_FUNC (MbResultType) TruncateShell( MbSolid & initSolid,
|
||||
SArray<size_t> & selIndices,
|
||||
MbeCopyMode initCopyMode,
|
||||
const MbSNameMaker & operNames,
|
||||
const MbSNameMaker & operNames,
|
||||
RPArray<MbSpaceItem> & truncatingItems,
|
||||
SArray<bool> & truncatingOrients,
|
||||
SArray<bool> & truncatingOrients,
|
||||
bool truncatingSplitMode,
|
||||
MbeCopyMode truncatingCopyMode,
|
||||
const MbMergingFlags & mergeFlags,
|
||||
MbSolid *& result,
|
||||
MbPlacement3D *& resultPlace );
|
||||
const MbMergingFlags & mergeFlags,
|
||||
MbSolid *& result,
|
||||
MbPlacement3D *& resultPlace );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
@@ -652,11 +652,11 @@ MATH_FUNC (MbResultType) SurfaceShell( const MbSurface & surface,
|
||||
/** \brief \ru Разрезать тело силуэтным контуром.
|
||||
\en Cut a solid by a silhouette contour. \~
|
||||
\details \ru Построить оболочки, полученные в результате разрезания тела его силуэтным контуром. \n
|
||||
\en Create solids as a result of cutting a solids by its silhouette contour.\n\~
|
||||
\param[in] shell - \ru Исходное тело.
|
||||
\en The solid\~
|
||||
\en Create solids as a result of cutting a solids by its silhouette contour. \n \~
|
||||
\param[in] solid - \ru Исходное тело.
|
||||
\en The solid. \~
|
||||
\param[in] sameShell - \ru Способ передачи данных при копировании оболочек.
|
||||
\en Methods of transferring data while copying shells \~
|
||||
\en Methods of transferring data while copying shells. \~
|
||||
\param[in] eye - \ru Направление взгляда.
|
||||
\en Eye's direction. \~
|
||||
\param[in] operNames - \ru Именователь с версией.
|
||||
@@ -859,9 +859,9 @@ MATH_FUNC (MbResultType) RectifyFace( const MbFace & face,
|
||||
\ingroup Shell_Modeling
|
||||
*/
|
||||
// ---
|
||||
MATH_FUNC (MbResultType) OctaLattice( const MbCartPoint3D & point_0,
|
||||
const MbCartPoint3D & point_1,
|
||||
const MbCartPoint3D & point_2,
|
||||
MATH_FUNC (MbResultType) OctaLattice( const MbCartPoint3D & point0,
|
||||
const MbCartPoint3D & point1,
|
||||
const MbCartPoint3D & point2,
|
||||
double xRadius,
|
||||
double yRadius,
|
||||
double zRadius,
|
||||
|
||||
+19
-19
@@ -180,7 +180,7 @@ MATH_FUNC (MbResultType) MeshSolid( const MbMesh & mesh,
|
||||
const GridsToShellValues & params,
|
||||
const MbSNameMaker & names,
|
||||
MbSolid *& result,
|
||||
IProgressIndicator * prog = NULL );
|
||||
IProgressIndicator * prog = c3d_null );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
@@ -202,7 +202,7 @@ MATH_FUNC (MbResultType) MeshSolid( const MbMesh & mesh,
|
||||
MATH_FUNC (MbResultType) GridSolid( const MbGrid & grid,
|
||||
const MbSNameMaker & names,
|
||||
MbSolid *& result,
|
||||
IProgressIndicator * prog = NULL );
|
||||
IProgressIndicator * prog = c3d_null );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
@@ -224,7 +224,7 @@ MATH_FUNC (MbResultType) GridSolid( const MbGrid & grid,
|
||||
MATH_FUNC (MbResultType) CollectionSolid( const MbCollection & grid,
|
||||
const MbSNameMaker & names,
|
||||
MbSolid *& result,
|
||||
IProgressIndicator * progBar = NULL );
|
||||
IProgressIndicator * progBar = c3d_null );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
@@ -611,8 +611,8 @@ MATH_FUNC (MbResultType) EvolutionSolid( const MbSweptData & sweptData
|
||||
\en An array of generating contours coordinate systems. \~
|
||||
\param[in] c - \ru Множество образующих контуров.
|
||||
\en An array of generating contours. \~
|
||||
\param[in] spine - \ru Направляющая кривая (может быть NULL).
|
||||
\en A guide curve (can be NULL). \~
|
||||
\param[in] spine - \ru Направляющая кривая (может быть c3d_null).
|
||||
\en A guide curve (can be c3d_null). \~
|
||||
\param[in] params - \ru Параметры операции.
|
||||
\en The operation parameters. \~
|
||||
\param[in] ps - \ru Множество точек на образующих контурах, задающий их начальные точки.
|
||||
@@ -647,8 +647,8 @@ MATH_FUNC (MbResultType) LoftedSolid( SArray<MbPlacement3D> & pl,
|
||||
\en An array of generating contours coordinate systems. \~
|
||||
\param[in] c - \ru Множество образующих контуров.
|
||||
\en An array of generating contours. \~
|
||||
\param[in] spine - \ru Осевая кривая (может быть NULL).
|
||||
\en A guide curve (can be NULL). \~
|
||||
\param[in] spine - \ru Осевая кривая (может быть c3d_null).
|
||||
\en A guide curve (can be c3d_null). \~
|
||||
\param[in] params - \ru Параметры операции.
|
||||
\en The operation parameters. \~
|
||||
\param[in] guideCurves - \ru Множество направляющих кривых, задающих траектории соответствующих точек контуров.
|
||||
@@ -668,7 +668,7 @@ MATH_FUNC (MbResultType) LoftedSolid( SArray<MbPlacement3D> & pl,
|
||||
// ---
|
||||
MATH_FUNC (MbResultType) LoftedSolid( SArray<MbPlacement3D> & pl,
|
||||
RPArray<MbContour> & c,
|
||||
const MbCurve3D * spine, // осевая линия может быть NULL
|
||||
const MbCurve3D * spine, // осевая линия может быть c3d_null
|
||||
const LoftedValues & params,
|
||||
RPArray<MbCurve3D> * guideCurves,
|
||||
SArray<MbCartPoint3D> * ps,
|
||||
@@ -686,8 +686,8 @@ MATH_FUNC (MbResultType) LoftedSolid( SArray<MbPlacement3D> & pl,
|
||||
\en An array of surfaces of generating contours. \~
|
||||
\param[in] c - \ru Множество образующих контуров.
|
||||
\en An array of generating contours. \~
|
||||
\param[in] spine - \ru Осевая кривая (может быть NULL).
|
||||
\en A guide curve (can be NULL). \~
|
||||
\param[in] spine - \ru Осевая кривая (может быть c3d_null).
|
||||
\en A guide curve (can be c3d_null). \~
|
||||
\param[in] params - \ru Параметры операции.
|
||||
\en The operation parameters. \~
|
||||
\param[in] guideCurves - \ru Множество направляющих кривых, задающих траектории соответствующих точек контуров.
|
||||
@@ -707,7 +707,7 @@ MATH_FUNC (MbResultType) LoftedSolid( SArray<MbPlacement3D> & pl,
|
||||
// ---
|
||||
MATH_FUNC (MbResultType) LoftedSolid( RPArray<MbSurface> & surfs,
|
||||
RPArray<MbContour> & c,
|
||||
const MbCurve3D * spine, // осевая линия может быть NULL
|
||||
const MbCurve3D * spine, // осевая линия может быть c3d_null
|
||||
const LoftedValues & params,
|
||||
RPArray<MbCurve3D> * guideCurves,
|
||||
SArray<MbCartPoint3D> * ps,
|
||||
@@ -942,8 +942,8 @@ MATH_FUNC(MbResultType) EvolutionResult( MbSolid & solid,
|
||||
\en An array of generating contours coordinate systems. \~
|
||||
\param[in] c - \ru Множество образующих контуров.
|
||||
\en An array of generating contours. \~
|
||||
\param[in] spine - \ru Направляющая кривая (может быть NULL).
|
||||
\en A guide curve (can be NULL). \~
|
||||
\param[in] spine - \ru Направляющая кривая (может быть c3d_null).
|
||||
\en A guide curve (can be c3d_null). \~
|
||||
\param[in] params - \ru Параметры операции.
|
||||
\en The operation parameters. \~
|
||||
\param[in] oType - \ru Тип булевой операции.
|
||||
@@ -995,8 +995,8 @@ MATH_FUNC(MbResultType) LoftedResult( MbSolid & solid,
|
||||
\en An array of generating contours surfaces. \~
|
||||
\param[in] c - \ru Множество образующих контуров.
|
||||
\en An array of generating contours. \~
|
||||
\param[in] spine - \ru Осевая кривая (может быть NULL).
|
||||
\en A guide curve (can be NULL). \~
|
||||
\param[in] spine - \ru Осевая кривая (может быть c3d_null).
|
||||
\en A guide curve (can be c3d_null). \~
|
||||
\param[in] params - \ru Параметры операции.
|
||||
\en The operation parameters. \~
|
||||
\param[in] oType - \ru Тип булевой операции.
|
||||
@@ -1962,7 +1962,7 @@ MATH_FUNC (MbResultType) UnionResult( MbSolid * solid,
|
||||
const MbSNameMaker & names,
|
||||
bool isArray,
|
||||
MbSolid *& result,
|
||||
RPArray<MbSolid> * notGluedSolids = NULL );
|
||||
RPArray<MbSolid> * notGluedSolids = c3d_null );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
@@ -2005,7 +2005,7 @@ MATH_FUNC (MbResultType) UnionSolid( RPArray<MbSolid> & solids,
|
||||
const MbSNameMaker & names,
|
||||
bool isArray,
|
||||
MbSolid *& result,
|
||||
RPArray<MbSolid> * notGluedSolids = NULL );
|
||||
RPArray<MbSolid> * notGluedSolids = c3d_null );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
@@ -2365,8 +2365,8 @@ MATH_FUNC (MbResultType) ThinSolid( const MbSurface & surface,
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Создать отверстие, карман, фигурный паз в теле.
|
||||
\en Create a hole, a pocket, a groove in the solid. \~
|
||||
\details \ru Cоздать отверстие, карман, фигурный паз в теле или создать cверло, бобышку, если solid==NULL. \n
|
||||
\en Create a hole, a pocket, a groove in the solid or create a drill, a boss if 'solid' == NULL. \n \~
|
||||
\details \ru Cоздать отверстие, карман, фигурный паз в теле или создать cверло, бобышку, если solid==c3d_null. \n
|
||||
\en Create a hole, a pocket, a groove in the solid or create a drill, a boss if 'solid' == c3d_null. \n \~
|
||||
\param[in] solid - \ru Исходное тело.
|
||||
\en The source solid. \~
|
||||
\param[in] sameShell - \ru Режим копирования тела.
|
||||
|
||||
@@ -784,8 +784,8 @@ MATH_FUNC (MbResultType) MiddlePlaces( const MbCurve3D & curve1
|
||||
\en The first guide curve. \~
|
||||
\param[in] g2 - \ru Вторая направляющая кривая (g1==g2 совпадает с первой при cs_Round).
|
||||
\en The second guide curve (g1==g2 the same first guide for st_Round). \~
|
||||
\param[in] c0 - \ru Дополнительная направляющая кривая (может быть NULL).
|
||||
\en The additional guide curve (may be NULL). \~
|
||||
\param[in] c0 - \ru Дополнительная направляющая кривая (может быть c3d_null).
|
||||
\en The additional guide curve (may be c3d_null). \~
|
||||
\param[in] form - \ru Форма сечения поверхности (0, 1, 2, 3).
|
||||
\en The form of the surface section (0, 1, 2, 3). \~
|
||||
\param[in] sense - \ru Направление нормали поверхности направляющей кривой (для guide1==guide2).
|
||||
|
||||
@@ -21,9 +21,11 @@
|
||||
#include <mb_cart_point3d.h>
|
||||
#include <mb_vector3d.h>
|
||||
#include <space_item.h>
|
||||
#include <wire_frame.h>
|
||||
#include <mb_nurbs_function.h>
|
||||
#include <mb_point_mating.h>
|
||||
#include <mb_operation_result.h>
|
||||
#include <op_curve_parameter.h>
|
||||
|
||||
|
||||
class MATH_CLASS MbAxis3D;
|
||||
@@ -74,12 +76,15 @@ class MATH_CLASS MbSNameMaker;
|
||||
*/
|
||||
// ---
|
||||
MATH_FUNC (MbResultType) CalculatePipePoints( const MbCartPoint3D & origin1,
|
||||
const MbVector3D & direction1,
|
||||
double length1, double radius1,
|
||||
const MbVector3D & direction1,
|
||||
double length1,
|
||||
double radius1,
|
||||
const MbCartPoint3D & origin2,
|
||||
const MbVector3D & direction2,
|
||||
double length2, double radius2,
|
||||
MbCartPoint3D & result1, MbCartPoint3D & result2 );
|
||||
const MbVector3D & direction2,
|
||||
double length2,
|
||||
double radius2,
|
||||
MbCartPoint3D & result1,
|
||||
MbCartPoint3D & result2 );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
@@ -89,8 +94,8 @@ MATH_FUNC (MbResultType) CalculatePipePoints( const MbCartPoint3D & origin1,
|
||||
\en Create an offset curve from a planar curve. \n \~
|
||||
\param[in] curve - \ru Исходная кривая.
|
||||
\en The initial curve. \~
|
||||
\param[in] d - \ru Величина эквидистанты.
|
||||
\en The offset distance. \~
|
||||
\param[in] dist - \ru Величина эквидистанты.
|
||||
\en The offset distance. \~
|
||||
\param[out] result - \ru Эквидистантная кривая.
|
||||
\en The offset curve. \~
|
||||
\return \ru Возвращает код результата операции.
|
||||
@@ -98,17 +103,17 @@ MATH_FUNC (MbResultType) CalculatePipePoints( const MbCartPoint3D & origin1,
|
||||
\ingroup Curve3D_Modeling
|
||||
*/
|
||||
// ---
|
||||
MATH_FUNC (MbResultType) OffsetPlaneCurve( const MbCurve3D & curve,
|
||||
double d,
|
||||
MbCurve3D *& result );
|
||||
MATH_FUNC (MbResultType) OffsetPlaneCurve( const MbCurve3D & curve,
|
||||
double dist,
|
||||
MbCurve3D *& result );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Создать эквидистантную кривую.
|
||||
\en Create an offset curve. \~
|
||||
\details \ru Создать эквидистантную кривую по трехмерной кривой и вектору направления. \n
|
||||
\en Create an offset curve from a three-dimensional curve and a direction vector. \n \~
|
||||
\param[in] initCurve - \ru Постранственная кривая, к которой строится эквидистантная.
|
||||
/** \brief \ru Создать эквидистантную кривую в пространстве.
|
||||
\en Create an offset curve in space. \~
|
||||
\details \ru Создать эквидистантную кривую в пространстве по трехмерной кривой и вектору направления. \n
|
||||
\en Create an offset curve in space from a three-dimensional curve and a direction vector. \n \~
|
||||
\param[in] initCurve - \ru Пространственная кривая, к которой строится эквидистантная.
|
||||
\en A space curve for which to construct the offset curve. \~
|
||||
\param[in] offsetVect - \ru Вектор, задающий смещение в точке кривой.
|
||||
\en The displacement vector at a point of the curve. \~
|
||||
@@ -129,6 +134,7 @@ MATH_FUNC (MbResultType) OffsetPlaneCurve( const MbCurve3D & curve,
|
||||
\ingroup Curve3D_Modeling
|
||||
*/
|
||||
//---
|
||||
DEPRECATE_DECLARE
|
||||
MATH_FUNC (MbResultType) OffsetCurve( const MbCurve3D & initCurve,
|
||||
const MbVector3D & offsetVect,
|
||||
const bool useFillet,
|
||||
@@ -140,20 +146,41 @@ MATH_FUNC (MbResultType) OffsetCurve( const MbCurve3D & initCurve,
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Создать эквидистантную кривую.
|
||||
\en Create an offset curve. \~
|
||||
\details \ru Создать эквидистантную кривую по поверхностной кривой и значению смещения. \n
|
||||
\en Create an offset curve from a curve on a surface and a shift value. \n \~
|
||||
/** \brief \ru Создать эквидистантную кривую в пространстве.
|
||||
\en Create an offset curve in space. \~
|
||||
\details \ru Создать эквидистантную кривую в пространстве по трехмерной кривой и вектору направления. \n
|
||||
\en Create an offset curve in space from a three-dimensional curve and a direction vector. \n \~
|
||||
\param[in] initCurve - \ru Пространственная кривая, к которой строится эквидистантная.
|
||||
\en A space curve for which to construct the offset curve. \~
|
||||
\param[in] params - \ru Параметры.
|
||||
\en Parameters. \~
|
||||
\param[out] result - \ru Каркас с построенными кривыми.
|
||||
\en The frame with the constructed curves. \~
|
||||
\return \ru Возвращает код результата операции.
|
||||
\en Returns operation result code. \~
|
||||
\ingroup Curve3D_Modeling
|
||||
*/
|
||||
//---
|
||||
MATH_FUNC (MbResultType) OffsetCurve( const MbCurve3D & initCurve,
|
||||
const MbSpatialOffsetCurveParams & params,
|
||||
c3d::WireFrameSPtr & result );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Создать эквидистантную кривую на поверхности.
|
||||
\en Create an offset curve on a surface. \~
|
||||
\details \ru Создать эквидистантную кривую на поверхности по поверхностной кривой и значению смещения. \n
|
||||
\en Create an offset curve on a surface from a curve on the surface and a shift value. \n \~
|
||||
\param[in] curve - \ru Кривая на поверхности грани face.
|
||||
\en A curve on face 'face' surface. \~
|
||||
\param[in] face - \ru Грань, на которой строится эквидистанта.
|
||||
\en The edge on which to build the offset curve. \~
|
||||
\param[in] face - \ru Грань, на которой строится эквидистанта.
|
||||
\en The face on which to build the offset curve. \~
|
||||
\param[in] dirAxis - \ru Направление смещения с точкой приложения.
|
||||
\en The offset direction with a point of application. \~
|
||||
\param[in] dist - \ru Величина смещения.
|
||||
\en The offset distance. \~
|
||||
\param[in] snMaker - \ru Именователь кривых каркаса.
|
||||
\en An object defining the frame curves names. \~
|
||||
\en The offset direction with a reference point. \~
|
||||
\param[in] dist - \ru Величина смещения.
|
||||
\en The offset distance. \~
|
||||
\param[in] snMaker - \ru Именователь кривых каркаса.
|
||||
\en An object defining the frame curves names. \~
|
||||
\param[out] result - \ru Каркас с построенными кривыми.
|
||||
\en The frame with the constructed curves. \~
|
||||
\return \ru Возвращает код результата операции.
|
||||
@@ -161,6 +188,7 @@ MATH_FUNC (MbResultType) OffsetCurve( const MbCurve3D & initCurve,
|
||||
\ingroup Curve3D_Modeling
|
||||
*/
|
||||
//---
|
||||
DEPRECATE_DECLARE
|
||||
MATH_FUNC (MbResultType) OffsetCurve( const MbCurve3D & curve,
|
||||
const MbFace & face,
|
||||
const MbAxis3D & dirAxis,
|
||||
@@ -169,11 +197,32 @@ MATH_FUNC (MbResultType) OffsetCurve( const MbCurve3D & curve,
|
||||
MbWireFrame *& result );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Создать эквидистантную кривую на поверхности.
|
||||
\en Create an offset curve on a surface. \~
|
||||
\details \ru Создать эквидистантную кривую на поверхности по поверхностной кривой и значению смещения. \n
|
||||
\en Create an offset curve on a surface from a curve on the surface and a shift value. \n \~
|
||||
\param[in] curve - \ru Кривая на поверхности грани face.
|
||||
\en A curve on face 'face' surface. \~
|
||||
\param[in] params - \ru Параметры.
|
||||
\en Parameters. \~
|
||||
\param[out] result - \ru Каркас с построенными кривыми.
|
||||
\en The frame with the constructed curves. \~
|
||||
\return \ru Возвращает код результата операции.
|
||||
\en Returns operation result code. \~
|
||||
\ingroup Curve3D_Modeling
|
||||
*/
|
||||
//---
|
||||
MATH_FUNC (MbResultType) OffsetCurve( const MbCurve3D & curve,
|
||||
const MbSurfaceOffsetCurveParams & params,
|
||||
c3d::WireFrameSPtr & result );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Создать проекцию кривой на поверхность.
|
||||
\en Create a curve projection onto the surface. \~
|
||||
\details \ru Создать проекцию кривой curve на поверхность surface (направление проецирования direction может быть NULL). \n
|
||||
\en Create the projection of a curve onto surface 'surface' (the projection direction 'direction' can be NULL). \n \~
|
||||
\details \ru Создать проекцию кривой curve на поверхность surface (направление проецирования direction может быть c3d_null). \n
|
||||
\en Create the projection of a curve onto surface 'surface' (the projection direction 'direction' can be c3d_null). \n \~
|
||||
\param[in] surface - \ru Поверхность для проецирования.
|
||||
\en The surface to project onto. \~
|
||||
\param[in] curve - \ru Проецируемая кривая.
|
||||
@@ -193,13 +242,13 @@ MATH_FUNC (MbResultType) OffsetCurve( const MbCurve3D & curve,
|
||||
\ingroup Curve3D_Modeling
|
||||
*/
|
||||
// ---
|
||||
MATH_FUNC (MbResultType) CurveProjection( const MbSurface & surface,
|
||||
const MbCurve3D & curve,
|
||||
MbVector3D * direction,
|
||||
bool createExact,
|
||||
bool truncateByBounds,
|
||||
RPArray<MbCurve3D> & result,
|
||||
VERSION version = Math::DefaultMathVersion() );
|
||||
MATH_FUNC (MbResultType) CurveProjection( const MbSurface & surface,
|
||||
const MbCurve3D & curve,
|
||||
MbVector3D * direction,
|
||||
bool createExact,
|
||||
bool truncateByBounds,
|
||||
RPArray<MbCurve3D> & result,
|
||||
VERSION version = Math::DefaultMathVersion() );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
@@ -222,12 +271,12 @@ MATH_FUNC (MbResultType) CurveProjection( const MbSurface & surface,
|
||||
\ingroup Curve3D_Modeling
|
||||
*/
|
||||
//---
|
||||
MATH_FUNC (MbResultType) CurveByTwoProjections( const MbPlacement3D & place1,
|
||||
const MbCurve & curve1,
|
||||
const MbPlacement3D & place2,
|
||||
const MbCurve & curve2,
|
||||
RPArray<MbCurve3D> & result,
|
||||
VERSION version = Math::DefaultMathVersion() );
|
||||
MATH_FUNC (MbResultType) CurveByTwoProjections( const MbPlacement3D & place1,
|
||||
const MbCurve & curve1,
|
||||
const MbPlacement3D & place2,
|
||||
const MbCurve & curve2,
|
||||
RPArray<MbCurve3D> & result,
|
||||
VERSION version = Math::DefaultMathVersion() );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
@@ -260,14 +309,14 @@ MATH_FUNC (MbResultType) CurveByTwoProjections( const MbPlacement3D & place1,
|
||||
\ingroup Curve3D_Modeling
|
||||
*/
|
||||
//---
|
||||
MATH_FUNC (MbResultType) ProjectionCurve( const MbCurve3D & curve,
|
||||
const RPArray<MbFace> & faces,
|
||||
const MbVector3D * dir,
|
||||
const bool createExact,
|
||||
const bool truncateByBounds,
|
||||
const MbSNameMaker & snMaker,
|
||||
RPArray<MbCurve3D> & result,
|
||||
SArray<uintptr_t> * resultIndices );
|
||||
MATH_FUNC (MbResultType) ProjectionCurve( const MbCurve3D & curve,
|
||||
const RPArray<MbFace> & faces,
|
||||
const MbVector3D * dir,
|
||||
const bool createExact,
|
||||
const bool truncateByBounds,
|
||||
const MbSNameMaker & snMaker,
|
||||
RPArray<MbCurve3D> & result,
|
||||
SArray<uintptr_t> * resultIndices );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
@@ -304,16 +353,16 @@ MATH_FUNC (MbResultType) ProjectionCurve( const MbCurve3D & curve,
|
||||
\ingroup Curve3D_Modeling
|
||||
*/
|
||||
//---
|
||||
MATH_FUNC (MbResultType) ProjectionCurve( const MbWireFrame & wireFrame,
|
||||
const bool sameWireFrame,
|
||||
const MbSolid & solid,
|
||||
const bool same,
|
||||
const SArray<size_t> & faceIndices,
|
||||
const MbVector3D * dir,
|
||||
const bool createExact,
|
||||
const bool truncateByBounds,
|
||||
const MbSNameMaker & snMaker,
|
||||
MbWireFrame *& resFrame );
|
||||
MATH_FUNC (MbResultType) ProjectionCurve( const MbWireFrame & wireFrame,
|
||||
const bool sameWireFrame,
|
||||
const MbSolid & solid,
|
||||
const bool same,
|
||||
const SArray<size_t> & faceIndices,
|
||||
const MbVector3D * dir,
|
||||
const bool createExact,
|
||||
const bool truncateByBounds,
|
||||
const MbSNameMaker & snMaker,
|
||||
MbWireFrame *& resFrame );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
@@ -330,8 +379,7 @@ MATH_FUNC (MbResultType) ProjectionCurve( const MbWireFrame & wireFrame,
|
||||
\ingroup Curve3D_Modeling
|
||||
*/
|
||||
//---
|
||||
MATH_FUNC (bool) EliminateProjectionCurveOverlay( RPArray<MbCurve3D> & curves,
|
||||
SArray<uintptr_t> * indices );
|
||||
MATH_FUNC (bool) EliminateProjectionCurveOverlay( RPArray<MbCurve3D> & curves, SArray<uintptr_t> * indices );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
@@ -402,7 +450,7 @@ MATH_FUNC (MbResultType) SilhouetteCurve( const MbFace & face,
|
||||
\en The axis of lathe section. \~
|
||||
\param[in] removeOnSurfaceBounds - \ru Удалить линии очерка, совпадающие с границами поверхности.
|
||||
\en Remove the isocline curves coincident with the surface bounds. \~
|
||||
\param[out] result - \ru Выходной массив линий очерка.
|
||||
\param[out] curves - \ru Выходной массив линий очерка.
|
||||
\en The output array of isocline curves. \~
|
||||
\param[in] version - \ru Версия построения.
|
||||
\en The version. \~
|
||||
@@ -686,13 +734,13 @@ MATH_FUNC( MbResultType ) IntersectionCurve( const MbSurface & surf1, bool ext1,
|
||||
\ingroup Curve3D_Modeling
|
||||
*/
|
||||
//---
|
||||
MATH_FUNC (MbResultType) SpaceSplineThrough( const SArray<MbCartPoint3D> & points,
|
||||
MbeSplineParamType paramType,
|
||||
size_t degree,
|
||||
bool closed,
|
||||
RPArray< MbPntMatingData<MbVector3D> > & transitions,
|
||||
const MbSNameMaker & snMaker,
|
||||
MbWireFrame *& result );
|
||||
MATH_FUNC (MbResultType) SpaceSplineThrough( const SArray<MbCartPoint3D> & points,
|
||||
MbeSplineParamType paramType,
|
||||
size_t degree,
|
||||
bool closed,
|
||||
RPArray<c3d::PntMatingData3D> & transitions,
|
||||
const MbSNameMaker & snMaker,
|
||||
MbWireFrame *& result );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
@@ -724,14 +772,14 @@ MATH_FUNC (MbResultType) SpaceSplineThrough( const SArray<MbCartPoint3D> & point
|
||||
*/
|
||||
//---
|
||||
MATH_FUNC (MbResultType) SpaceSplineBy( const SArray<MbCartPoint3D> & points,
|
||||
size_t degree,
|
||||
bool closed,
|
||||
size_t degree,
|
||||
bool closed,
|
||||
const SArray<double> * weights,
|
||||
const SArray<double> * knots,
|
||||
MbPntMatingData<MbVector3D> * begData,
|
||||
MbPntMatingData<MbVector3D> * endData,
|
||||
c3d::PntMatingData3D * begData,
|
||||
c3d::PntMatingData3D * endData,
|
||||
const MbSNameMaker & snMaker,
|
||||
MbWireFrame *& result );
|
||||
MbWireFrame *& result );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
@@ -776,14 +824,14 @@ MATH_FUNC (MbResultType) SpaceSplineBy( const SArray<MbCartPoint3D> & points,
|
||||
\ingroup Curve3D_Modeling
|
||||
*/
|
||||
//---
|
||||
MATH_FUNC (MbResultType) SurfaceSpline( const MbSurface & surface,
|
||||
bool throughPoints,
|
||||
SArray<MbCartPoint> & paramPnts,
|
||||
SArray<double> & paramWts,
|
||||
bool paramClosed,
|
||||
RPArray< MbPntMatingData<MbVector3D> > & spaceTransitions,
|
||||
const MbSNameMaker & snMaker,
|
||||
MbWireFrame *& result );
|
||||
MATH_FUNC (MbResultType) SurfaceSpline( const MbSurface & surface,
|
||||
bool throughPoints,
|
||||
SArray<MbCartPoint> & paramPnts,
|
||||
SArray<double> & paramWts,
|
||||
bool paramClosed,
|
||||
RPArray<c3d::PntMatingData3D> & spaceTransitions,
|
||||
const MbSNameMaker & snMaker,
|
||||
MbWireFrame *& result );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
@@ -936,7 +984,7 @@ MATH_FUNC (MbResultType) ConnectingSpline( const MbCurve3D & curve1, double t1,
|
||||
что начало кривой сопряжения будет находится в точке с параметором t1,
|
||||
t1 и t2 - параметры кривых curve1 и curve2, в соответствующих точках которых начинается и заканчивается скругление. \n
|
||||
Параметр sense - прямое или обратное направление кривой скругления. \n
|
||||
Кривая filletCurve - это кривая сопряжения, дуга (когда surface == NULL) или кривая на поверхности цилиндра surface. \n
|
||||
Кривая filletCurve - это кривая сопряжения, дуга (когда surface == c3d_null) или кривая на поверхности цилиндра surface. \n
|
||||
Поверхность surface - это цилиндрическая поверхность, на которой строится кривая сопряжения в общем случае.
|
||||
Для управления жизненным циклом поверхномти следует миспользовать методы ::AddRefItem(surface) и ::ReleaseItem(surface). \n
|
||||
\en Create a fillet curve for curves. \n
|
||||
@@ -952,22 +1000,22 @@ MATH_FUNC (MbResultType) ConnectingSpline( const MbCurve3D & curve1, double t1,
|
||||
that the fillet curve start is at the point with parameter t1,
|
||||
t1 and t2 are parameters of curves 'curve1' and 'curve2' which correspond to the start point and the end point of the fillet. \n
|
||||
Parameter 'sense' determines forward or backward orientation of the fillet curve. \n
|
||||
Curve filletCurve is a fillet curve, an arc (when 'surface' == NULL) or a curve on a cylindric surface 'surface'. \n
|
||||
Curve filletCurve is a fillet curve, an arc (when 'surface' == c3d_null) or a curve on a cylindric surface 'surface'. \n
|
||||
Surface 'surface' is a cylindric surface on which the fillet curve is constructed in general case.
|
||||
Use ::AddRefItem(surface) and ::ReleaseItem(surface) methods to manage the surface lifecycle. \n \~
|
||||
\param[in] curve1 - \ru Соединяемая кривая 1.
|
||||
\en A curve 1 to be connected. \~
|
||||
\param[in/out] t1 - \ru Параметр точки на кривой 1 соединения с кривой соединения.
|
||||
\param[in,out] t1 - \ru Параметр точки на кривой 1 соединения с кривой соединения.
|
||||
\en A point parameter on curve 1 of connection with fillet curve. \~
|
||||
\param[out] w1 - \ru Параметр края на кривой 1.
|
||||
\en The parameter of curve 1 end point. \~
|
||||
\param[in] curve2 - \ru Соединяемая кривая 2.
|
||||
\en A curve 2 to be connected. \~
|
||||
\param[in/out] t2 - \ru Параметр точки на кривой 2 соединения с кривой соединения.
|
||||
\param[in,out] t2 - \ru Параметр точки на кривой 2 соединения с кривой соединения.
|
||||
\en A point parameter on curve 2 of connection with fillet curve. \~
|
||||
\param[out] w2 - \ru Параметр края на кривой 2.
|
||||
\en The parameter of curve 2 end point. \~
|
||||
\param[in/out] radius - \ru Радиус дуги или цилиндра.
|
||||
\param[in,out] radius - \ru Радиус дуги или цилиндра.
|
||||
\en The radius of an arc or a cylinder. \~
|
||||
\param[in] sense - \ru Прямое (true) или обратное (false) направление кривой скругления.
|
||||
\en The forward (true) or the backward (false) direction of the fillet curve. \~
|
||||
@@ -977,8 +1025,8 @@ MATH_FUNC (MbResultType) ConnectingSpline( const MbCurve3D & curve1, double t1,
|
||||
\en The fillet type. \~
|
||||
\param[in] names - \ru Именователь кривых каркаса.
|
||||
\en An object defining the frame curves names. \~
|
||||
\param[out] surface - \ru Поверхность, которая будет создана и на которой базируется соединительная кривая, (может быть возращён NULL).
|
||||
\en A surface on which the fillet curve is based on, it will be created by the method (can be NULL). \~
|
||||
\param[out] surface - \ru Поверхность, которая будет создана и на которой базируется соединительная кривая, (может быть возращён c3d_null).
|
||||
\en A surface on which the fillet curve is based on, it will be created by the method (can be c3d_null). \~
|
||||
\param[out] result - \ru Каркас с построенными кривыми.
|
||||
\en The frame with the constructed curves. \~
|
||||
\return \ru Возвращает код результата операции.
|
||||
|
||||
@@ -464,7 +464,7 @@ bool IsMonotonic( const TypeVector & items, bool isAscending, bool allowEqual =
|
||||
isOk = true;
|
||||
|
||||
if ( allowEqual ) {
|
||||
for ( size_t k = 1; k < cnt; k++ ) {
|
||||
for ( size_t k = 1; k < cnt; ++k ) {
|
||||
if ( isAscending && items[k] < items[k-1] ) {
|
||||
isOk = false;
|
||||
break;
|
||||
@@ -476,7 +476,7 @@ bool IsMonotonic( const TypeVector & items, bool isAscending, bool allowEqual =
|
||||
}
|
||||
}
|
||||
else {
|
||||
for ( size_t k = 1; k < cnt; k++ ) {
|
||||
for ( size_t k = 1; k < cnt; ++k ) {
|
||||
if ( isAscending && items[k] <= items[k-1] ) {
|
||||
isOk = false;
|
||||
break;
|
||||
@@ -614,7 +614,7 @@ bool IsPlanar( const SpacePointsVector & pnts, MbPlacement3D * place, double mEp
|
||||
}
|
||||
}
|
||||
}
|
||||
if ( isPlanar && place != NULL )
|
||||
if ( isPlanar && place != c3d_null )
|
||||
place->Init( wrkPlace );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -92,8 +92,8 @@ MATH_FUNC (MbeState) DeleteCurvePart( const MbCartPoint & p1,
|
||||
\en The point indicating the piece of a curve to be kept. \~
|
||||
\param[in, out] curve - \ru Изменяемая кривая.
|
||||
\en The curve to be modified. \~
|
||||
\param[in, out] part2 - \ru Всегда NULL.
|
||||
\en This value is always NULL. \~
|
||||
\param[in, out] part2 - \ru Всегда c3d_null.
|
||||
\en This value is always c3d_null. \~
|
||||
\return \ru Состояние кривой после ее модификации.
|
||||
\en The state of a curve after its modification. \~
|
||||
\warning \ru Для внутреннего использования.
|
||||
@@ -124,8 +124,8 @@ MATH_FUNC (MbeState) TrimmCurvePart( List<MbCurve> & curveList,
|
||||
\en The point indicating the piece of a closed curve to be kept \~
|
||||
\param[in, out] curve - \ru Изменяемая кривая.
|
||||
\en The curve to be modified. \~
|
||||
\param[in, out] part2 - \ru Всегда NULL.
|
||||
\en This value is always NULL. \~
|
||||
\param[in, out] part2 - \ru Всегда c3d_null.
|
||||
\en This value is always c3d_null. \~
|
||||
\return \ru Состояние кривой после ее модификации.
|
||||
\en The state of a curve after its modification. \~
|
||||
\warning \ru Для внутреннего использования.
|
||||
@@ -155,8 +155,8 @@ MATH_FUNC (MbeState) TrimmCurvePart( const MbCartPoint & p1,
|
||||
\en Boundary curve for justification. \~
|
||||
\param[in] pnt - \ru Точка для выбора нужной части кривой.
|
||||
\en The point for selecting the piece of a curve. \~
|
||||
\param[in, out] part2 - \ru Всегда NULL.
|
||||
\en This value is always NULL. \~
|
||||
\param[in, out] part2 - \ru Всегда c3d_null.
|
||||
\en This value is always c3d_null. \~
|
||||
\return \ru Состояние кривой после ее модификации.
|
||||
\en The state of a curve after modification. \~
|
||||
\warning \ru Для внутреннего использования.
|
||||
@@ -222,8 +222,8 @@ MATH_FUNC (MbeState) BreakByClosedCurves( MbCurve & curve,
|
||||
const RPArray<const MbCurve> & limits,
|
||||
bool inside,
|
||||
PArray<MbCurve> & part2,
|
||||
SArray<MbCrossPoint> * cross = NULL,
|
||||
bool * isEqualCurve = NULL,
|
||||
SArray<MbCrossPoint> * cross = c3d_null,
|
||||
bool * isEqualCurve = c3d_null,
|
||||
bool cutOnCurve = false );
|
||||
|
||||
|
||||
|
||||
@@ -440,7 +440,7 @@ MATH_FUNC (MbeProcessState) MinMaxDistances( const MbSurface & surface1,
|
||||
MbMinMaxSurfDists & allResults,
|
||||
MbMinMaxSurfDists & minResults,
|
||||
MbMinMaxSurfDists & maxResults,
|
||||
IProgressIndicator * indicator = NULL );
|
||||
IProgressIndicator * indicator = c3d_null );
|
||||
|
||||
|
||||
#endif // __ALG_DIMENSION_H
|
||||
|
||||
@@ -95,7 +95,7 @@ public:
|
||||
|
||||
public:
|
||||
/// \ru Отрисовать объект. \en Draw an any object.
|
||||
virtual void DrawItem( const MbRefItem * ri, int R, int G, int B, int width = 1 ) = 0;
|
||||
virtual void DrawItem( const MbRefItem * ri, int R, int G, int B, const MbMatrix3D & from = MbMatrix3D::identity, int width = 1 ) = 0;
|
||||
/// \ru Отрисовать трехмерный геометрический объект. \en Draw a three-dimensional geometric object.
|
||||
virtual void DrawItem( const MbSpaceItem * gi, int R, int G, int B, int width = 1 ) = 0;
|
||||
// Отрисовать трехмерный геометрический объект с размещением по матрице.
|
||||
@@ -1028,7 +1028,7 @@ void DrawVertexEdges( const Vertex * vertex, int vR, int vG, int vB,
|
||||
MbStepData stepData( ist_SpaceStep, Math::visualSag );
|
||||
MbFormNote note(true, false);
|
||||
for ( size_t k = 0, cnt = edges.size(); k < cnt; ++k ) {
|
||||
if ( edges[k] != NULL ) {
|
||||
if ( edges[k] != c3d_null ) {
|
||||
edges[k]->GetCurve().CalculateMesh( stepData, note, edgeMesh );
|
||||
DrawGI::DrawMesh( &edgeMesh, TRGB_WHITE );
|
||||
DrawGI::DrawMesh( &edgeMesh, eR, eG, eB );
|
||||
|
||||
@@ -124,7 +124,7 @@ public:
|
||||
};
|
||||
|
||||
|
||||
#define EMPTY_STR StrData<const TCHAR *>( NULL ) ///< \ru Создание пустой строки \en Creation of an empty string
|
||||
#define EMPTY_STR StrData<const TCHAR *>( c3d_null ) ///< \ru Создание пустой строки \en Creation of an empty string
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
@@ -279,14 +279,14 @@ MATH_FUNC (ProgressBarWrapper *) CreateProgressBar( IProgressIndicator * progInd
|
||||
\en The wrapper of the execution progress indicator. \~
|
||||
\param[in] msg - \ru Данные о строке.
|
||||
\en Data of a string \~
|
||||
\return \ru true, если progBar != NULL и удалось задать имя процесса.
|
||||
\return \ru true, если progBar != c3d_null и удалось задать имя процесса.
|
||||
\en true if 'progBar' is not null and the process name is successfully set. \~
|
||||
\ingroup Base_Items
|
||||
*/
|
||||
// ---
|
||||
inline bool SetProgressBarName( ProgressBarWrapper * progBar, IStrData & msg )
|
||||
{
|
||||
if ( progBar != NULL )
|
||||
if ( progBar != c3d_null )
|
||||
return progBar->SetName( msg );
|
||||
return false;
|
||||
}
|
||||
@@ -308,7 +308,7 @@ inline bool SetProgressBarName( ProgressBarWrapper * progBar, IStrData & msg )
|
||||
// ---
|
||||
inline bool SetProgressBarValue( ProgressBarWrapper * progBar, size_t v )
|
||||
{
|
||||
if ( progBar != NULL && !progBar->IsCancel() )
|
||||
if ( progBar != c3d_null && !progBar->IsCancel() )
|
||||
return progBar->SetProgress( v );
|
||||
return false;
|
||||
}
|
||||
@@ -328,7 +328,7 @@ inline bool SetProgressBarValue( ProgressBarWrapper * progBar, size_t v )
|
||||
// ---
|
||||
inline void FinishProgressBar( ProgressBarWrapper * progBar )
|
||||
{
|
||||
if ( progBar != NULL ) {
|
||||
if ( progBar != c3d_null ) {
|
||||
if ( progBar->IsCancel() ) progBar->Stop();
|
||||
else progBar->Success();
|
||||
}
|
||||
@@ -347,7 +347,7 @@ inline void FinishProgressBar( ProgressBarWrapper * progBar )
|
||||
// ---
|
||||
inline bool StopProgressBar( ProgressBarWrapper * progBar )
|
||||
{
|
||||
if ( progBar != NULL && progBar->IsCancel() ) {
|
||||
if ( progBar != c3d_null && progBar->IsCancel() ) {
|
||||
progBar->Stop();
|
||||
return true;
|
||||
}
|
||||
@@ -362,14 +362,14 @@ inline bool StopProgressBar( ProgressBarWrapper * progBar )
|
||||
\en The wrapper of the execution progress indicator. \~
|
||||
\param[in] useParentName - \ru Флаг использования имени родителя.
|
||||
\en The flag of using the parent name. \~
|
||||
\return \ru true, если progBar != NULL.
|
||||
\return \ru true, если progBar != c3d_null.
|
||||
\en true if 'progBar' is not null. \~
|
||||
\ingroup Base_Items
|
||||
*/
|
||||
// ---
|
||||
inline bool UseParentName( ProgressBarWrapper * progBar, bool useParentName )
|
||||
{
|
||||
if ( progBar != NULL ) {
|
||||
if ( progBar != c3d_null ) {
|
||||
progBar->UseParentName( useParentName );
|
||||
return true;
|
||||
}
|
||||
@@ -389,7 +389,7 @@ inline bool UseParentName( ProgressBarWrapper * progBar, bool useParentName )
|
||||
// ---
|
||||
inline bool IsParentNameUsed( const ProgressBarWrapper * progBar )
|
||||
{
|
||||
if ( progBar != NULL )
|
||||
if ( progBar != c3d_null )
|
||||
return progBar->IsParentNameUsed();
|
||||
|
||||
return false;
|
||||
|
||||
@@ -76,7 +76,7 @@ MbFaceShell * ConvertGridToShell( const MbGrid & grid,
|
||||
const GridsToShellValues & params,
|
||||
const MbSNameMaker & snMaker,
|
||||
MbResultType & res,
|
||||
IProgressIndicator * progBar = NULL );
|
||||
IProgressIndicator * progBar = c3d_null );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
@@ -86,7 +86,7 @@ MbFaceShell * ConvertMeshToShell( const MbMesh & mesh,
|
||||
const GridsToShellValues & params,
|
||||
const MbSNameMaker & snMaker,
|
||||
MbResultType & res,
|
||||
IProgressIndicator * progBar = NULL );
|
||||
IProgressIndicator * progBar = c3d_null );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
@@ -57,9 +57,9 @@ class MbVector3D;
|
||||
\en The discriminant is less than 1. Otherwise it
|
||||
will be set to 0.99999999 automatically. \~
|
||||
\return \ru Указатель на построенную кривую \n
|
||||
NULL, если не удалось построить конику для заданных параметров.
|
||||
c3d_null, если не удалось построить конику для заданных параметров.
|
||||
\en The pointer to the constructed curve \n
|
||||
is NULL if a try to construct a conic for a given parameters has failed. \~
|
||||
is c3d_null if a try to construct a conic for a given parameters has failed. \~
|
||||
\ingroup Curve3D_Modeling
|
||||
*/
|
||||
// ---
|
||||
@@ -87,9 +87,9 @@ MATH_FUNC ( MbCurve3D * ) NurbsConic_1( const MbCartPoint3D & mbPoint0, const Mb
|
||||
\en The discriminant is less than 1. Otherwise it
|
||||
will be set to 0.99999999 automatically. \~
|
||||
\return \ru Указатель на построенную кривую \n
|
||||
NULL, если не удалось построить конику для заданных параметров.
|
||||
c3d_null, если не удалось построить конику для заданных параметров.
|
||||
\en The pointer to the constructed curve \n
|
||||
is NULL if a try to construct a conic for a given parameters has failed. \~
|
||||
is c3d_null if a try to construct a conic for a given parameters has failed. \~
|
||||
\ingroup Curve_Modeling
|
||||
*/
|
||||
// ---
|
||||
@@ -113,9 +113,9 @@ MATH_FUNC ( MbCurve * ) NurbsConic_1( const MbCartPoint & mbPoint0, const MbCart
|
||||
\param[in] mbVertex - \ru Координаты вершины угла, в который надо вписать конику.
|
||||
\en Coordinates of the vertex of angle which should be inscribed into the conic. \~
|
||||
\return \ru Указатель на построенную кривую \n
|
||||
NULL, если не удалось постороить конику для заданных параметров.
|
||||
c3d_null, если не удалось постороить конику для заданных параметров.
|
||||
\en The pointer to the constructed curve \n
|
||||
is NULL if a try to construct a conic for given parameters has failed. \~
|
||||
is c3d_null if a try to construct a conic for given parameters has failed. \~
|
||||
\ingroup Curve3D_Modeling
|
||||
*/
|
||||
// ---
|
||||
@@ -138,9 +138,9 @@ MATH_FUNC ( MbCurve3D * ) NurbsConic_2( std::vector<MbCartPoint3D> & vmbConicPoi
|
||||
\param[in] mbVertex - \ru Координаты вершины угла, в который надо вписать конику.
|
||||
\en Coordinates of the vertex of angle which should be inscribed into the conic. \~
|
||||
\return \ru Указатель на построенную кривую \n
|
||||
NULL, если не удалось постороить конику для заданных параметров.
|
||||
c3d_null, если не удалось постороить конику для заданных параметров.
|
||||
\en The pointer to the constructed curve \n
|
||||
is NULL if a try to construct a conic for given parameters has failed. \~
|
||||
is c3d_null if a try to construct a conic for given parameters has failed. \~
|
||||
\ingroup Curve_Modeling
|
||||
*/
|
||||
// ---
|
||||
@@ -165,9 +165,9 @@ MATH_FUNC ( MbCurve * ) NurbsConic_2( std::vector<MbCartPoint> & vmbConicPoints,
|
||||
\param[in] mbTangent2 - \ru Наклон в конце кривой.
|
||||
\en Inclination at end of a curve. \~
|
||||
\return \ru Указатель на построенную кривую \n
|
||||
NULL, если не удалось постороить конику для заданных параметров.
|
||||
c3d_null, если не удалось постороить конику для заданных параметров.
|
||||
\en The pointer to the constructed curve \n
|
||||
is NULL if a try to construct a conic for given parameters has failed. \~
|
||||
is c3d_null if a try to construct a conic for given parameters has failed. \~
|
||||
\ingroup Curve3D_Modeling
|
||||
*/
|
||||
// ---
|
||||
@@ -193,9 +193,9 @@ MATH_FUNC ( MbCurve3D * ) NurbsConic_3( const std::vector<MbCartPoint3D> & vmbCo
|
||||
\param[in] mbTangent2 - \ru Наклон в конце кривой.
|
||||
\en Inclination at end of a curve. \~
|
||||
\return \ru Указатель на построенную кривую \n
|
||||
NULL, если не удалось постороить конику для заданных параметров.
|
||||
c3d_null, если не удалось постороить конику для заданных параметров.
|
||||
\en The pointer to the constructed curve \n
|
||||
is NULL if a try to construct a conic for given parameters has failed. \~
|
||||
is c3d_null if a try to construct a conic for given parameters has failed. \~
|
||||
\ingroup Curve_Modeling
|
||||
*/
|
||||
// ---
|
||||
@@ -224,9 +224,9 @@ MATH_FUNC ( MbCurve * ) NurbsConic_3( const std::vector<MbCartPoint> & vmbConicP
|
||||
\en The discriminant is less than 1. Otherwise it
|
||||
will be set to 0.99999999 automatically. \~
|
||||
\return \ru Указатель на построенную кривую \n
|
||||
NULL, если не удалось построить конику для заданных параметров.
|
||||
c3d_null, если не удалось построить конику для заданных параметров.
|
||||
\en The pointer to the constructed curve \n
|
||||
is NULL if a try to construct a conic for given parameters has failed. \~
|
||||
is c3d_null if a try to construct a conic for given parameters has failed. \~
|
||||
\ingroup Curve3D_Modeling
|
||||
*/
|
||||
// ---
|
||||
@@ -256,9 +256,9 @@ MATH_FUNC ( MbCurve3D * ) NurbsConic_4( const MbCartPoint3D & mbPoint1, const Mb
|
||||
\en The discriminant is less than 1. Otherwise it
|
||||
will be set to 0.99999999 automatically. \~
|
||||
\return \ru Указатель на построенную кривую \n
|
||||
NULL, если не удалось построить конику для заданных параметров.
|
||||
c3d_null, если не удалось построить конику для заданных параметров.
|
||||
\en The pointer to the constructed curve \n
|
||||
is NULL if a try to construct a conic for given parameters has failed. \~
|
||||
is c3d_null if a try to construct a conic for given parameters has failed. \~
|
||||
\ingroup Curve_Modeling
|
||||
*/
|
||||
// ---
|
||||
@@ -288,9 +288,9 @@ MATH_FUNC ( MbCurve * ) NurbsConic_4( const MbCartPoint & mbPoint1, const MbCart
|
||||
\param[in] tanPntNb - \ru Номер точке, в которой задан наклон.
|
||||
\en Point number at which the inclination is specified. \~
|
||||
\return \ru Указатель на построенную кривую \n
|
||||
NULL, если не удалось постороить конику для заданных параметров.
|
||||
c3d_null, если не удалось постороить конику для заданных параметров.
|
||||
\en The pointer to the constructed curve \n
|
||||
is NULL if a try to construct a conic for given parameters has failed. \~
|
||||
is c3d_null if a try to construct a conic for given parameters has failed. \~
|
||||
\ingroup Curve3D_Modeling
|
||||
*/
|
||||
// ---
|
||||
@@ -319,9 +319,9 @@ MATH_FUNC ( MbCurve3D * ) NurbsConic_5( const std::vector<MbCartPoint3D> & vmbCo
|
||||
\param[in] tanPntNb - \ru Номер точке, в которой задан наклон.
|
||||
\en Point number at which the inclination is specified. \~
|
||||
\return \ru Указатель на построенную кривую \n
|
||||
NULL, если не удалось постороить конику для заданных параметров.
|
||||
c3d_null, если не удалось постороить конику для заданных параметров.
|
||||
\en The pointer to the constructed curve \n
|
||||
is NULL if a try to construct a conic for given parameters has failed. \~
|
||||
is c3d_null if a try to construct a conic for given parameters has failed. \~
|
||||
\ingroup Curve_Modeling
|
||||
*/
|
||||
// ---
|
||||
@@ -342,9 +342,9 @@ MATH_FUNC ( MbCurve * ) NurbsConic_5( const std::vector<MbCartPoint> & vmbConicP
|
||||
\en The container for points of a conic: the first point is start point, the last point is end point.
|
||||
there should be exactly 5 points. \~
|
||||
\return \ru Указатель на построенную кривую \n
|
||||
NULL, если не удалось постороить конику для заданных параметров.
|
||||
c3d_null, если не удалось постороить конику для заданных параметров.
|
||||
\en The pointer to the constructed curve \n
|
||||
is NULL if a try to construct a conic for given parameters has failed. \~
|
||||
is c3d_null if a try to construct a conic for given parameters has failed. \~
|
||||
\ingroup Curve3D_Modeling
|
||||
*/
|
||||
// ---
|
||||
@@ -365,9 +365,9 @@ MATH_FUNC ( MbCurve3D * ) NurbsConic_6( const std::vector<MbCartPoint3D> & vmbCo
|
||||
\en The container for points of a conic: the first point is start point, the last point is end point.
|
||||
there should be exactly 5 points. \~
|
||||
\return \ru Указатель на построенную кривую \n
|
||||
NULL, если не удалось постороить конику для заданных параметров.
|
||||
c3d_null, если не удалось постороить конику для заданных параметров.
|
||||
\en The pointer to the constructed curve \n
|
||||
is NULL if a try to construct a conic for given parameters has failed. \~
|
||||
is c3d_null if a try to construct a conic for given parameters has failed. \~
|
||||
\ingroup Curve_Modeling
|
||||
*/
|
||||
// ---
|
||||
|
||||
@@ -43,14 +43,14 @@ class MATH_CLASS MbCubicSpline3D;
|
||||
радиус скругления в этой точке. При создании заполняются поля m_lineSeg и m_arcSeg.
|
||||
m_lineSeg - это прямолинейный сегмент из этой точки в следующую. Для последней точки
|
||||
и замкнутой ломаной - из последней в первую. m_arcSeg - дуга скругления в данной точке.
|
||||
Если какой-то сегмент был полностью удален или не создан, то его указатель должен быть NULL.
|
||||
Если какой-то сегмент был полностью удален или не создан, то его указатель должен быть c3d_null.
|
||||
Объектами m_lineSeg и m_arcSeg не владеет, поэтому и не удаляет их. Объекты из полилинии.
|
||||
\en Some points may be deleted while the construction, therefore the old index is entered,
|
||||
it is filled and used in a model. Parameters of a point are its coordinates and
|
||||
fillet radius in this point. In a time of creation the fields 'm_lineSeg' and 'm_lineSeg' are being filled.
|
||||
'm_lineSeg' is the straight-line segment from this point to the next point. For the last point
|
||||
and a closed polyline - from the last point to the first point. 'm_arcSeg'is the arc of a fillet in the given point.
|
||||
If a segment has been fully deleted or it was not created then the pointer should be NULL.
|
||||
If a segment has been fully deleted or it was not created then the pointer should be c3d_null.
|
||||
Object 'm_lineSeg' and 'm_arcSeg' are not owned, therefore they are not deleted. Objects from a polyline. \~
|
||||
\ingroup Data_Structures
|
||||
*/
|
||||
@@ -69,8 +69,8 @@ public:
|
||||
: m_oldIndex( SYS_MAX_T )
|
||||
, m_point ()
|
||||
, m_radius ( 0.0 )
|
||||
, m_lineSeg ( NULL )
|
||||
, m_arcSeg ( NULL )
|
||||
, m_lineSeg ( c3d_null )
|
||||
, m_arcSeg ( c3d_null )
|
||||
{}
|
||||
/// \ru Конструктор копирования. \en Copy constructor.
|
||||
Polyline3DPoint( const Polyline3DPoint & other )
|
||||
@@ -250,9 +250,9 @@ MATH_FUNC (void) CreateSmoothFromBezier( const MbBezier & bez, RPArray<MbCurve>
|
||||
/** \brief \ru Создать кривую заданного типа базе NURBS-кривой.
|
||||
\en Create a curve of a given type as NURBS-curve. \~
|
||||
\details \ru Работает для двух типов: pt_LineSegment и pt_Arc. Если не удалось
|
||||
аппроксимировать с заданной точностью функция вернет NULL.
|
||||
аппроксимировать с заданной точностью функция вернет c3d_null.
|
||||
\en It works for the two types: 'pt_LineSegment' and 'pt_Arc'. If approximation with the given tolerance has failed
|
||||
then the function returns NULL. \~
|
||||
then the function returns c3d_null. \~
|
||||
\param[in] nurbs - \ru Исходная NURBS-кривая.
|
||||
\en The initial NURBS-curve. \~
|
||||
\param[in] type - \ru Тип кривой, которую требуется создать.
|
||||
@@ -288,7 +288,7 @@ MATH_FUNC (MbCurve *) ConvertNurbsToCurveOfType( const MbNurbs & nurbs, MbePlane
|
||||
*/
|
||||
// ---
|
||||
MATH_FUNC (MbCurve *) GetFlatCurve( const MbCurve3D & curve3D, const MbMatrix3D & into,
|
||||
MbRect1D * pRgn = NULL, VERSION version = Math::DefaultMathVersion() );
|
||||
MbRect1D * pRgn = c3d_null, VERSION version = Math::DefaultMathVersion() );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
+11
-11
@@ -94,10 +94,10 @@ public:
|
||||
// \ru Общие функции геометрического объекта \en Common functions of a geometric object
|
||||
|
||||
virtual MbeSpaceType IsA() const; // \ru Тип объекта. \en An object type.
|
||||
virtual MbSpaceItem & Duplicate( MbRegDuplicate * iReg = NULL ) const; // \ru Создать копию. \en Create a copy.
|
||||
virtual void Transform( const MbMatrix3D &, MbRegTransform * iReg = NULL ); // \ru Преобразовать согласно матрице. \en Transform according to the matrix.
|
||||
virtual void Move( const MbVector3D &, MbRegTransform * iReg = NULL ); // \ru Сдвинуть вдоль вектора. \en Move along a vector.
|
||||
virtual void Rotate( const MbAxis3D &, double angle, MbRegTransform * iReg = NULL ); // \ru Повернуть вокруг оси. \en Rotate about an axis.
|
||||
virtual MbSpaceItem & Duplicate( MbRegDuplicate * iReg = c3d_null ) const; // \ru Создать копию. \en Create a copy.
|
||||
virtual void Transform( const MbMatrix3D &, MbRegTransform * iReg = c3d_null ); // \ru Преобразовать согласно матрице. \en Transform according to the matrix.
|
||||
virtual void Move( const MbVector3D &, MbRegTransform * iReg = c3d_null ); // \ru Сдвинуть вдоль вектора. \en Move along a vector.
|
||||
virtual void Rotate( const MbAxis3D &, double angle, MbRegTransform * iReg = c3d_null ); // \ru Повернуть вокруг оси. \en Rotate about an axis.
|
||||
virtual bool IsSame( const MbSpaceItem & other, double accuracy = LENGTH_EPSILON ) const; // \ru Являются ли объекты равными? \en Are the objects equal?
|
||||
virtual bool IsSimilar( const MbSpaceItem & ) const; // \ru Являются ли объекты подобными? \en Are the objects similar?
|
||||
virtual bool SetEqual ( const MbSpaceItem & ); // \ru Сделать объекты равным \en Make the objects equal
|
||||
@@ -151,11 +151,11 @@ public:
|
||||
virtual const MbItem * GetItemByName( SimpleName n, MbPath & path, MbMatrix3D & from ) const;
|
||||
|
||||
// \ru Преобразовать согласно матрице c использованием регистратора селектированные содержимые объекты. \en Transform selected objects according to the matrix using the registrator.
|
||||
virtual void TransformSelected( const MbMatrix3D & matr, MbRegTransform * iReg = NULL );
|
||||
virtual void TransformSelected( const MbMatrix3D & matr, MbRegTransform * iReg = c3d_null );
|
||||
// \ru Сдвинуть вдоль вектора с использованием регистратора селектированные содержимые объекты. \en Move selected objects along the vector using the registrator.
|
||||
virtual void MoveSelected( const MbVector3D & to, MbRegTransform * iReg = NULL );
|
||||
virtual void MoveSelected( const MbVector3D & to, MbRegTransform * iReg = c3d_null );
|
||||
// \ru Повернуть вокруг оси на заданный угол с использованием регистратора селектированные содержимые объекты. \en Rotate selected objects about the axis by the given angle using the registrator.
|
||||
virtual void RotateSelected( const MbAxis3D & axis, double angle, MbRegTransform * iReg = NULL );
|
||||
virtual void RotateSelected( const MbAxis3D & axis, double angle, MbRegTransform * iReg = c3d_null );
|
||||
/// \ru Отдать селектированные содержимые объекты. \en Get selected objects.
|
||||
bool DetachSelected( RPArray<MbItem> & items, SArray<MbMatrix3D> & matrs, bool selected = true );
|
||||
/// \ru Отцепить все видимые или невидимые объекты. \en Detach all visible or invisible objects. \~
|
||||
@@ -310,8 +310,8 @@ template <class ItemsVector>
|
||||
MbAssembly::MbAssembly( const ItemsVector & items )
|
||||
: MbItem()
|
||||
, assemblyItems()
|
||||
, constraintSystem( NULL )
|
||||
, m_reactor( NULL )
|
||||
, constraintSystem( c3d_null )
|
||||
, m_reactor( c3d_null )
|
||||
{
|
||||
#ifdef C3D_DEBUG
|
||||
// Check a condition of the single owner.
|
||||
@@ -336,7 +336,7 @@ MbAssembly::MbAssembly( const ItemsVector & items )
|
||||
template <class ItemsVector>
|
||||
void MbAssembly::_Init( const ItemsVector & items )
|
||||
{
|
||||
C3D_ASSERT( assemblyItems.empty() && (constraintSystem == NULL) );
|
||||
C3D_ASSERT( assemblyItems.empty() && (constraintSystem == c3d_null) );
|
||||
SimpleName idCounter = 0;
|
||||
|
||||
for ( size_t i = 0, iCount = items.size(); i < iCount; ++i )
|
||||
@@ -383,7 +383,7 @@ void MbAssembly::GetFacesSet( FacesVector & faces ) const
|
||||
template <class FacesVector>
|
||||
void MbInstance::GetFacesSet( FacesVector & faces ) const
|
||||
{
|
||||
if ( item != NULL ) {
|
||||
if ( item != c3d_null ) {
|
||||
if ( item->IsA() == st_Solid )
|
||||
static_cast<const MbSolid &>( *item ).GetFacesSet( faces );
|
||||
else if ( item->IsA() == st_Assembly )
|
||||
|
||||
@@ -51,10 +51,10 @@ public :
|
||||
|
||||
// \ru Общие функции геометрического объекта. \en Common functions of a geometric object.
|
||||
virtual MbeSpaceType IsA() const; // \ru Тип объекта. \en An object type.
|
||||
virtual MbSpaceItem & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Создать копию. \en Create a copy.
|
||||
virtual void Transform( const MbMatrix3D &, MbRegTransform * = NULL ); // \ru Преобразовать согласно матрице. \en Transform according to the matrix.
|
||||
virtual void Move ( const MbVector3D &, MbRegTransform * = NULL ); // \ru Сдвинуть вдоль вектора. \en Move along a vector.
|
||||
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси. \en Rotate about an axis.
|
||||
virtual MbSpaceItem & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Создать копию. \en Create a copy.
|
||||
virtual void Transform( const MbMatrix3D &, MbRegTransform * = c3d_null ); // \ru Преобразовать согласно матрице. \en Transform according to the matrix.
|
||||
virtual void Move ( const MbVector3D &, MbRegTransform * = c3d_null ); // \ru Сдвинуть вдоль вектора. \en Move along a vector.
|
||||
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси. \en Rotate about an axis.
|
||||
virtual bool IsSame ( const MbSpaceItem & other, double accuracy = LENGTH_EPSILON ) const; // \ru Являются ли объекты равными? \en Whether the objects are equal?
|
||||
virtual bool IsSimilar( const MbSpaceItem & init ) const; // \ru Являются ли объекты подобными? \en Whether the objects are similar?
|
||||
virtual bool SetEqual ( const MbSpaceItem & init ); // \ru Сделать объекты равным. \en Make the objects equal.
|
||||
|
||||
+439
-436
@@ -1,436 +1,439 @@
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/**
|
||||
\file
|
||||
\brief \ru Атрибуты. Цвет. Толщина линий отрисовки. Стиль линий отрисовки. Свойства для OpenGL.
|
||||
\en Attributes. Color. Thickness of drawing lines. Style of drawing lines. Properties for OpenGL. \~
|
||||
|
||||
*/
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef __ATTR_COLOR_H
|
||||
#define __ATTR_COLOR_H
|
||||
|
||||
|
||||
#include <attr_elementary_attribute.h>
|
||||
#include <mb_variables.h>
|
||||
|
||||
|
||||
c3d_constexpr uint __RGB__ = 3;
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Преобразовать цвет по трём компонентам в uint32.
|
||||
\en Convert a color by 3 components in uint32. \~
|
||||
\details
|
||||
\warning \ru Значения компонент цвета должны лежать в диапазоне [ 0; 1 ].
|
||||
\en Values of color components should belong to the range [ 0; 1 ]. \~
|
||||
\ingroup Model_Attributes
|
||||
*/
|
||||
// ---
|
||||
inline uint32 RGB2uint32( double r, double g, double b )
|
||||
{
|
||||
const double f1 = 255.0 / 256.0;
|
||||
uint32 uinturgb[3];
|
||||
const uint32 bt = 256;
|
||||
uinturgb[0] = uint32 ( 256.0 * r * f1 );
|
||||
uinturgb[1] = uint32 ( 256.0 * g * f1 );
|
||||
uinturgb[2] = uint32 ( 256.0 * b * f1 );
|
||||
for ( int n = 0; n < 3; n++ )
|
||||
if ( uinturgb[n] >= bt ) {
|
||||
uinturgb[n] = bt - 1;
|
||||
C3D_ASSERT_UNCONDITIONAL( false );
|
||||
}
|
||||
return uinturgb[0] + bt * ( uinturgb[1] + bt * uinturgb[2] );
|
||||
}
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Преобразовать цвет по трём компонентам в uint32.
|
||||
\en Convert a color by 3 components in uint32. \~
|
||||
\details
|
||||
\warning \ru Значения компонент цвета должны лежать в диапазоне [ 0; 1 ].
|
||||
\en Values of color components should belong to the range [ 0; 1 ]. \~
|
||||
\ingroup Model_Attributes
|
||||
*/
|
||||
// ---
|
||||
inline uint32 RGB2uint32( float r, float g, float b, float a )
|
||||
{
|
||||
const float f1 = 255.0 / 256.0;
|
||||
uint32 uinturgb[4];
|
||||
const uint32 bt = 256;
|
||||
uinturgb[0] = uint32 ( 256.0 * r * f1 );
|
||||
uinturgb[1] = uint32 ( 256.0 * g * f1 );
|
||||
uinturgb[2] = uint32 ( 256.0 * b * f1 );
|
||||
uinturgb[3] = uint32 ( 256.0 * a * f1 );
|
||||
for ( int n = 0; n < 4; n++ )
|
||||
if ( uinturgb[n] >= bt ) {
|
||||
uinturgb[n] = bt - 1;
|
||||
//C3D_ASSERT_UNCONDITIONAL( false );
|
||||
}
|
||||
return uinturgb[0] + bt * ( uinturgb[1] + bt * ( uinturgb[2] + bt * uinturgb[3] ) );
|
||||
}
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Преобразовать unit32 в три компоненты цвета.
|
||||
\en Convert unit32 to 3 components of color. \~
|
||||
\details
|
||||
\warning \ru Компоненты цветов лежат в диапазоне [ 0; 1 ].
|
||||
\en Color components belong to the range [ 0; 1 ]. \~
|
||||
\ingroup Model_Attributes
|
||||
*/
|
||||
// ---
|
||||
template<typename float_t>
|
||||
void uint322RGB( uint32 color, float_t& r, float_t& g, float_t& b ) {
|
||||
const float_t r255 = float_t(1.0 / 255.0);
|
||||
const uint32 u256 = (uint32)SYS_MAX_UINT8 + 1;
|
||||
r = float_t ( color % u256);
|
||||
g = float_t ( (color / 256) % u256);
|
||||
b = float_t ( (color / 65536) % u256);
|
||||
r *= r255; g *= r255; b *= r255;
|
||||
}
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Преобразовать цвет из модели HSV в uint32.
|
||||
\en Convert a color from HSV model in uint32. \~
|
||||
\details \ru Преобразовать цвет из модели HSV в uint32. \n
|
||||
\en Convert a color from HSV model in uint32. \n \~
|
||||
\ingroup Model_Attributes
|
||||
*/
|
||||
// ---
|
||||
inline
|
||||
uint32 HSV2uint32( double h, double s, double v )
|
||||
{
|
||||
double hh, p, q, t, ff;
|
||||
long i;
|
||||
double r, g, b;
|
||||
if ( s <= 0.0 ) {
|
||||
r = v;
|
||||
g = v;
|
||||
b = v;
|
||||
return ::RGB2uint32( r, g, b );
|
||||
}
|
||||
hh = h;
|
||||
if ( hh >= 360.0 )
|
||||
hh = 0.0;
|
||||
hh /= 60.0;
|
||||
i = (long)hh;
|
||||
ff = hh - i;
|
||||
p = v * (1.0 - s);
|
||||
q = v * (1.0 - (s * ff));
|
||||
t = v * (1.0 - (s * (1.0 - ff)));
|
||||
|
||||
switch ( i ) {
|
||||
case 0 : {
|
||||
r = v;
|
||||
g = t;
|
||||
b = p;
|
||||
} break;
|
||||
case 1 : {
|
||||
r = q;
|
||||
g = v;
|
||||
b = p;
|
||||
} break;
|
||||
case 2 : {
|
||||
r = p;
|
||||
g = v;
|
||||
b = t;
|
||||
} break;
|
||||
case 3 : {
|
||||
r = p;
|
||||
g = q;
|
||||
b = v;
|
||||
} break;
|
||||
case 4 : {
|
||||
r = t;
|
||||
g = p;
|
||||
b = v;
|
||||
} break;
|
||||
default : {
|
||||
r = v;
|
||||
g = p;
|
||||
b = q;
|
||||
} break;
|
||||
}
|
||||
return ::RGB2uint32( r, g, b );
|
||||
}
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Цвет.
|
||||
\en Color. \~
|
||||
\details \ru Цвет. \n
|
||||
\en Color. \n \~
|
||||
\ingroup Model_Attributes
|
||||
*/
|
||||
// ---
|
||||
class MATH_CLASS MbColor : public MbElementaryAttribute {
|
||||
protected :
|
||||
uint32 color; ///< \ru Цвет. \en Color.
|
||||
|
||||
protected :
|
||||
/// \ru Конструктор копирования. \en Copy constructor.
|
||||
MbColor( const MbColor & init );
|
||||
public :
|
||||
/// \ru Конструктор. \en Constructor.
|
||||
MbColor( uint32 init );
|
||||
/// \ru Деструктор. \en Destructor.
|
||||
virtual ~MbColor();
|
||||
|
||||
// \ru Общие функции объекта \en Common functions of object.
|
||||
|
||||
virtual MbeAttributeType AttributeType() const; // \ru Дать подтип атрибута. \en Get subtype of an attribute.
|
||||
|
||||
virtual MbAttribute & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
|
||||
virtual bool IsSame( const MbAttribute &, double accuracy ) const; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
|
||||
virtual bool Init( const MbAttribute & ); // \ru Инициализировать данные по присланным. \en Initialize data.
|
||||
|
||||
/// \ru Установить цвет. \en Set a color.
|
||||
void Init( uint32 init ) { color = init; }
|
||||
/// \ru Дать цвет. \en Get a color.
|
||||
uint32 Color() const { return color; }
|
||||
//int R() const { return red; } // \ru Красный цвет \en Red color
|
||||
//int G() const { return green; } // \ru Зеленый цвет \en Green color
|
||||
//int B() const { return blue; } // \ru Синий цвет \en Blue color
|
||||
|
||||
virtual void GetProperties( MbProperties & ); // \ru Выдать свойства объекта. \en Get properties of the object.
|
||||
virtual size_t SetProperties( const MbProperties & ); // \ru Установить свойства объекта. \en Set properties of object.
|
||||
virtual MbePrompt GetPropertyName(); // \ru Выдать заголовок свойства объекта. \en Get a name of object property.
|
||||
|
||||
private:
|
||||
void operator = ( const MbColor & ); // \ru Не реализовано \en Not implemented
|
||||
|
||||
DECLARE_PERSISTENT_CLASS_NEW_DEL( MbColor )
|
||||
}; // MbColor
|
||||
|
||||
IMPL_PERSISTENT_OPS( MbColor )
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Толщина линий отрисовки.
|
||||
\en Thickness of drawing lines. \~
|
||||
\details \ru Толщина линий отрисовки. \n
|
||||
\en Thickness of drawing lines. \n \~
|
||||
\ingroup Model_Attributes
|
||||
*/
|
||||
// ---
|
||||
class MATH_CLASS MbWidth : public MbElementaryAttribute {
|
||||
protected :
|
||||
int width; ///< \ru Толщина линий отрисовки. \enThickness of drawing lines.
|
||||
|
||||
protected :
|
||||
/// \ru Конструктор копирования. \en Copy constructor.
|
||||
MbWidth( const MbWidth & init );
|
||||
public :
|
||||
/// \ru Конструктор. \en Constructor.
|
||||
MbWidth( int init );
|
||||
/// \ru Деструктор. \en Destructor.
|
||||
virtual ~MbWidth();
|
||||
|
||||
// \ru Общие функции объекта \en Common functions of object.
|
||||
|
||||
virtual MbeAttributeType AttributeType() const; // \ru Дать подтип атрибута. \en Get subtype of an attribute.
|
||||
virtual MbAttribute & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
|
||||
virtual bool IsSame( const MbAttribute &, double accuracy ) const; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
|
||||
virtual bool Init( const MbAttribute & ); // \ru Инициализировать данные по присланным. \en Initialize data.
|
||||
|
||||
/// \ru Установить толщину. \en Set a thickness.
|
||||
void Init( int init ) { width = init; }
|
||||
/// \ru Дать толщину. \en Get a thickness.
|
||||
int Width() const { return width; }
|
||||
|
||||
virtual void GetProperties( MbProperties & ); // \ru Выдать свойства объекта. \en Get properties of the object.
|
||||
virtual size_t SetProperties( const MbProperties & ); // \ru Установить свойства объекта. \en Set properties of object.
|
||||
virtual MbePrompt GetPropertyName(); // \ru Выдать заголовок свойства объекта. \en Get a name of object property.
|
||||
|
||||
private:
|
||||
void operator = ( const MbWidth & ); // \ru Не реализовано \en Not implemented
|
||||
|
||||
DECLARE_PERSISTENT_CLASS_NEW_DEL( MbWidth )
|
||||
}; // MbWidth
|
||||
|
||||
IMPL_PERSISTENT_OPS( MbWidth )
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Стиль линий отрисовки.
|
||||
\en Style of drawing lines. \~
|
||||
\details \ru Стиль линий отрисовки. \n
|
||||
\en Style of drawing lines. \n \~
|
||||
\ingroup Model_Attributes
|
||||
*/
|
||||
// ---
|
||||
class MATH_CLASS MbStyle : public MbElementaryAttribute {
|
||||
protected :
|
||||
int style; ///< \ru Стиль линий отрисовки. \en Style of drawing lines.
|
||||
|
||||
protected :
|
||||
/// \ru Конструктор копирования. \en Copy constructor.
|
||||
MbStyle( const MbStyle & init );
|
||||
public :
|
||||
/// \ru Конструктор. \en Constructor.
|
||||
MbStyle( int init );
|
||||
/// \ru Деструктор. \en Destructor.
|
||||
virtual ~MbStyle();
|
||||
|
||||
// \ru Общие функции объекта \en Common functions of object.
|
||||
|
||||
virtual MbeAttributeType AttributeType() const; // \ru Дать подтип атрибута. \en Get subtype of an attribute.
|
||||
virtual MbAttribute & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
|
||||
virtual bool IsSame( const MbAttribute &, double accuracy ) const; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
|
||||
virtual bool Init( const MbAttribute & ); // \ru Инициализировать данные по присланным. \en Initialize data.
|
||||
|
||||
/// \ru Установить стиль линий отрисовки. \en Set style of drawing lines.
|
||||
void Init( int init ) { style = init; }
|
||||
/// \ru Дать стиль линий отрисовки. \en Get style of drawing lines.
|
||||
int Style() const { return style; }
|
||||
|
||||
virtual void GetProperties( MbProperties & ); // \ru Выдать свойства объекта. \en Get properties of the object.
|
||||
virtual size_t SetProperties( const MbProperties & ); // \ru Установить свойства объекта. \en Set properties of object.
|
||||
virtual MbePrompt GetPropertyName(); // \ru Выдать заголовок свойства объекта. \en Get a name of object property.
|
||||
|
||||
private:
|
||||
void operator = ( const MbStyle & ); // \ru Не реализовано \en Not implemented
|
||||
|
||||
DECLARE_PERSISTENT_CLASS_NEW_DEL( MbStyle )
|
||||
}; // MbStyle
|
||||
|
||||
IMPL_PERSISTENT_OPS( MbStyle )
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Свойства для OpenGL.
|
||||
\en Properties for OpenGL. \~
|
||||
\details \ru Свойства для OpenGL для трех цветов: RED, GREEN, BLUE. \n
|
||||
\en Properties for OpenGL for colors: RED, GREEN, BLUE. \n \~
|
||||
\ingroup Model_Attributes
|
||||
*/
|
||||
// ---
|
||||
class MATH_CLASS MbVisual : public MbElementaryAttribute {
|
||||
protected :
|
||||
float ambient[__RGB__]; ///< \ru Коэффициент общего фона для трех цветов: RED, GREEN, BLUE. \en Coefficient of ambient background for colors: RED, GREEN, BLUE, range 0.0 - 1.0.
|
||||
float diffuse[__RGB__]; ///< \ru Коэффициент диффузного отражения для трех цветов: RED, GREEN, BLUE. \en Coefficient of diffuse reflection for colors: RED, GREEN, BLUE, range 0.0 - 1.0.
|
||||
float specularity[__RGB__]; ///< \ru Коэффициент зеркального отражения света трех цветов: RED, GREEN, BLUE. \en Coefficient of specular reflection for light colors: RED, GREEN, BLUE, range 0.0 - 1.0.
|
||||
float shininess; ///< \ru Блеск (показатель степени в законе зеркального отражения). \en Shininess (index according to the law of specular reflection), range 0 - 128.
|
||||
float opacity; ///< \ru Коэффициент непрозрачности (коэффициент суммарного отражения). \en Opacity coefficient (coefficient of total reflection), range 0.0 (transparent) - 1.0(opaque).
|
||||
float emission; ///< \ru Коэффициент излучения. \en Emissivity coefficient, range 0.0 - 1.0.
|
||||
float chrom; ///< \ru Коэффициент зеркального отражения объектов. \en Coefficient of specular reflection for objects, range 0.0 - 1.0.
|
||||
|
||||
protected :
|
||||
/// \ru Конструктор копирования. \en Copy constructor.
|
||||
MbVisual( const MbVisual & init );
|
||||
public :
|
||||
/// \ru Конструктор. \en Constructor.
|
||||
MbVisual( float a = MB_AMBIENT, float d = MB_DIFFUSE, float s = MB_SPECULARITY,
|
||||
float h = MB_SHININESS, float t = MB_OPACITY, float e = MB_EMISSION );
|
||||
/// \ru Деструктор. \en Destructor.
|
||||
virtual ~MbVisual();
|
||||
|
||||
// \ru Общие функции объекта \en Common functions of object.
|
||||
|
||||
virtual MbeAttributeType AttributeType() const; // \ru Дать подтип атрибута. \en Get subtype of an attribute.
|
||||
virtual MbAttribute & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
|
||||
virtual bool IsSame( const MbAttribute &, double accuracy ) const; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
|
||||
virtual bool Init( const MbAttribute & ); // \ru Инициализировать данные по присланным. \en Initialize data.
|
||||
|
||||
/// \ru Установить свойства для OpenGL. \en Set properties for OpenGL.
|
||||
void Init( float a = MB_AMBIENT, float d = MB_DIFFUSE, float s = MB_SPECULARITY,
|
||||
float h = MB_SHININESS, float t = MB_OPACITY, float e = MB_EMISSION, uint rgb = 0 ) {
|
||||
ambient[rgb%__RGB__] = a; // \ru Коэффициент общего фона. \en Coefficient of ambient background.
|
||||
diffuse[rgb%__RGB__] = d; // \ru Коэффициент диффузного отражения. \en Coefficient of diffuse reflection.
|
||||
specularity[rgb%__RGB__] = s; // \ru Коэффициент зеркального отражения света. \en Coefficient of specular reflection for light.
|
||||
shininess = h; // \ru Блеск (показатель степени. в законе зеркального отражения). \en Shininess (index according to the law of specular reflection).
|
||||
opacity = t; // \ru Коэффициент непрозрачности. \en Opacity coefficient.
|
||||
emission = e; // \ru Коэффициент излучения. \en Emissivity coefficient.
|
||||
chrom = s; // \ru Коэффициент зеркального отражения объектов. \en Coefficient of specular reflection for objects.
|
||||
}
|
||||
/// \ru Дать свойства для OpenGL. \en Get properties for OpenGL.
|
||||
void Get( float & a, float & d, float & s, float & h, float & t, float & e, uint rgb = 0 ) const {
|
||||
a = ambient[rgb%__RGB__]; // \ru Коэффициент общего фона. \en Coefficient of ambient background.
|
||||
d = diffuse[rgb%__RGB__]; // \ru Коэффициент диффузного отражения. \en Coefficient of diffuse reflection.
|
||||
s = specularity[rgb%__RGB__]; // \ru Коэффициент зеркального отражения света. \en Coefficient of Specular reflection for light.
|
||||
h = shininess; // \ru Блеск (показатель степени в законе зеркального отражения). \en Shininess (index according to the law of specular reflection).
|
||||
t = opacity; // \ru Коэффициент непрозрачности. \en Opacity coefficient.
|
||||
e = emission; // \ru Коэффициент излучения. \en Emissivity coefficient.
|
||||
}
|
||||
float Ambient ( uint rgb = 0 ) const { return ambient[rgb%__RGB__]; } // \ru Дать коэффициент общего фона. \en Get a coefficient of ambient background.
|
||||
float Diffuse ( uint rgb = 0 ) const { return diffuse[rgb%__RGB__]; } // \ru Дать коэффициент диффузного отражения. \en Get a coefficient of diffuse reflection.
|
||||
float Specularity ( uint rgb = 0 ) const { return specularity[rgb%__RGB__]; } // \ru Дать коэффициент зеркального отражения света. \en Get a coefficient of specular reflection for light.
|
||||
float Shininess () const { return shininess; } // \ru Дать блеск (показатель степени в законе зеркального отражения). \en Get shininess (index according to the law of specular reflection).
|
||||
float Opacity () const { return opacity; } // \ru Дать коэффициент непрозрачности. \en Get an opacity coefficient.
|
||||
float Emission () const { return emission; } // \ru Дать коэффициент излучения. \en Get a coefficient of emissivity.
|
||||
float Chrom () const { return chrom; } // \ru Дать коэффициент зеркального отражения объектов. \en Get a coefficient of specular reflection for objects.
|
||||
const float * Ambients () const { return ambient; } // \ru Дать коэффициенты общего фона. \en Get all coefficients of ambient background.
|
||||
const float * Diffuses () const { return diffuse; } // \ru Дать коэффициенты диффузного отражения. \en Get all coefficients of diffuse reflection.
|
||||
const float * Specularitys() const { return specularity; } // \ru Дать коэффициенты зеркального отражения света. \en Get all coefficients of specular reflection for light.
|
||||
|
||||
void SetAmbient ( float v, uint rgb = 0 ) { ambient[rgb%__RGB__] = v; } // \ru Установить коэффициент общего фона. \en Set a coefficient of ambient background.
|
||||
void SetDiffuse ( float v, uint rgb = 0 ) { diffuse[rgb%__RGB__] = v ; } // \ru Установить коэффициент диффузного отражения. \en Set a coefficient of diffuse reflection.
|
||||
void SetSpecularity ( float v, uint rgb = 0 ) { specularity[rgb%__RGB__] = v; } // \ru Установить коэффициент зеркального отражения света. \en Set a coefficient of specular reflection for light.
|
||||
void SetShininess ( float v ) { shininess = v; } // \ru Установить блеск (показатель степени в законе зеркального отражения). \en Set shininess (index according to the law of specular reflection).
|
||||
void SetOpacity ( float v ) { opacity = v; } // \ru Установить коэффициент непрозрачности. \en Set an opacity coefficient.
|
||||
void SetEmission ( float v ) { emission = v; } // \ru Установить коэффициент излучения. \en Set a coefficient of emissivity.
|
||||
void SetChrom ( float v ) { chrom = v; } // \ru Установить коэффициент зеркального отражения объектов. \en Set a coefficient of specular reflection for objects.
|
||||
|
||||
virtual void GetProperties( MbProperties & ); // \ru Выдать свойства объекта. \en Get properties of the object.
|
||||
virtual size_t SetProperties( const MbProperties & ); // \ru Установить свойства объекта. \en Set properties of object.
|
||||
virtual MbePrompt GetPropertyName(); // \ru Выдать заголовок свойства объекта. \en Get a name of object property.
|
||||
|
||||
private:
|
||||
void operator = ( const MbVisual & ); // \ru Не реализовано \en Not implemented
|
||||
|
||||
DECLARE_PERSISTENT_CLASS_NEW_DEL( MbVisual )
|
||||
}; // MbVisual
|
||||
|
||||
IMPL_PERSISTENT_OPS( MbVisual )
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Количество u-линий и v-линий отрисовочной сетки.
|
||||
\en The number of u-mesh and v-mesh drawing lines. \~
|
||||
\details \ru Количество u-линий и v-линий отрисовочной сетки. \n
|
||||
\en The number of u-mesh and v-mesh drawing lines. \n \~
|
||||
\ingroup Model_Attributes
|
||||
*/
|
||||
// ---
|
||||
class MATH_CLASS MbWireCount : public MbElementaryAttribute {
|
||||
protected :
|
||||
size_t uMeshCount; ///< \ru Количество u-линий отрисовочной сетки. \en The number of u-mesh lines.
|
||||
size_t vMeshCount; ///< \ru Количество v-линий отрисовочной сетки. \en The number of v-mesh lines.
|
||||
|
||||
protected :
|
||||
/// \ru Конструктор копирования. \en Copy constructor.
|
||||
MbWireCount( const MbWireCount & init );
|
||||
public :
|
||||
/// \ru Конструктор. \en Constructor.
|
||||
MbWireCount( size_t uCount, size_t vCount );
|
||||
/// \ru Деструктор. \en Destructor.
|
||||
virtual ~MbWireCount();
|
||||
|
||||
// \ru Общие функции объекта \en Common functions of object.
|
||||
|
||||
virtual MbeAttributeType AttributeType() const; // \ru Дать подтип атрибута. \en Get subtype of an attribute.
|
||||
virtual MbAttribute & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
|
||||
virtual bool IsSame( const MbAttribute &, double accuracy ) const; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
|
||||
virtual bool Init( const MbAttribute & ); // \ru Инициализировать данные по присланным. \en Initialize data.
|
||||
|
||||
/// \ru Установить количество линий отрисовки. \en Set count of drawing lines.
|
||||
void Init( size_t uCount, size_t vCount ) { uMeshCount = uCount, vMeshCount = vCount; }
|
||||
/// \ru Выдать количество разбиений по u и v. \en The the number of splittings in u-direction and v-direction.
|
||||
void Get( size_t & uCount, size_t & vCount ) const { uCount = uMeshCount; vCount = vMeshCount; }
|
||||
|
||||
virtual void GetProperties( MbProperties & ); // \ru Выдать свойства объекта. \en Get properties of the object.
|
||||
virtual size_t SetProperties( const MbProperties & ); // \ru Установить свойства объекта. \en Set properties of object.
|
||||
virtual MbePrompt GetPropertyName(); // \ru Выдать заголовок свойства объекта. \en Get a name of object property.
|
||||
|
||||
private:
|
||||
void operator = ( const MbWireCount & ); // \ru Не реализовано \en Not implemented
|
||||
|
||||
DECLARE_PERSISTENT_CLASS_NEW_DEL( MbWireCount )
|
||||
}; // MbWireCount
|
||||
|
||||
IMPL_PERSISTENT_OPS( MbWireCount )
|
||||
|
||||
|
||||
#endif // __ATTR_COLOR_H
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/**
|
||||
\file
|
||||
\brief \ru Атрибуты. Цвет. Толщина линий отрисовки. Стиль линий отрисовки. Свойства для OpenGL.
|
||||
\en Attributes. Color. Thickness of drawing lines. Style of drawing lines. Properties for OpenGL. \~
|
||||
|
||||
*/
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef __ATTR_COLOR_H
|
||||
#define __ATTR_COLOR_H
|
||||
|
||||
|
||||
#include <attr_elementary_attribute.h>
|
||||
#include <mb_variables.h>
|
||||
|
||||
|
||||
c3d_constexpr uint __RGB__ = 3;
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Преобразовать цвет по трём компонентам в uint32.
|
||||
\en Convert a color by 3 components in uint32. \~
|
||||
\details
|
||||
\warning \ru Значения компонент цвета должны лежать в диапазоне [ 0; 1 ].
|
||||
\en Values of color components should belong to the range [ 0; 1 ]. \~
|
||||
\ingroup Model_Attributes
|
||||
*/
|
||||
// ---
|
||||
inline
|
||||
uint32 RGB2uint32( double r, double g, double b )
|
||||
{
|
||||
const double f1 = 255.0 / 256.0;
|
||||
uint32 uinturgb[3];
|
||||
const uint32 bt = 256;
|
||||
uinturgb[0] = uint32 ( 256.0 * r * f1 );
|
||||
uinturgb[1] = uint32 ( 256.0 * g * f1 );
|
||||
uinturgb[2] = uint32 ( 256.0 * b * f1 );
|
||||
for ( int n = 0; n < 3; n++ )
|
||||
if ( uinturgb[n] >= bt ) {
|
||||
uinturgb[n] = bt - 1;
|
||||
C3D_ASSERT_UNCONDITIONAL( false );
|
||||
}
|
||||
return uinturgb[0] + bt * ( uinturgb[1] + bt * uinturgb[2] );
|
||||
}
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Преобразовать цвет по трём компонентам в uint32.
|
||||
\en Convert a color by 3 components in uint32. \~
|
||||
\details
|
||||
\warning \ru Значения компонент цвета должны лежать в диапазоне [ 0; 1 ].
|
||||
\en Values of color components should belong to the range [ 0; 1 ]. \~
|
||||
\ingroup Model_Attributes
|
||||
*/
|
||||
// ---
|
||||
inline
|
||||
uint32 RGB2uint32( float r, float g, float b, float a )
|
||||
{
|
||||
const float f1 = 255.0 / 256.0;
|
||||
uint32 uinturgb[4];
|
||||
const uint32 bt = 256;
|
||||
uinturgb[0] = uint32 ( 256.0 * r * f1 );
|
||||
uinturgb[1] = uint32 ( 256.0 * g * f1 );
|
||||
uinturgb[2] = uint32 ( 256.0 * b * f1 );
|
||||
uinturgb[3] = uint32 ( 256.0 * a * f1 );
|
||||
for ( int n = 0; n < 4; n++ )
|
||||
if ( uinturgb[n] >= bt ) {
|
||||
uinturgb[n] = bt - 1;
|
||||
//C3D_ASSERT_UNCONDITIONAL( false );
|
||||
}
|
||||
return uinturgb[0] + bt * ( uinturgb[1] + bt * ( uinturgb[2] + bt * uinturgb[3] ) );
|
||||
}
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Преобразовать unit32 в три компоненты цвета.
|
||||
\en Convert unit32 to 3 components of color. \~
|
||||
\details
|
||||
\warning \ru Компоненты цветов лежат в диапазоне [ 0; 1 ].
|
||||
\en Color components belong to the range [ 0; 1 ]. \~
|
||||
\ingroup Model_Attributes
|
||||
*/
|
||||
// ---
|
||||
template<typename float_t>
|
||||
void uint322RGB( uint32 color, float_t & r, float_t & g, float_t & b )
|
||||
{
|
||||
const float_t r255 = float_t(1.0 / 255.0);
|
||||
const uint32 u256 = (uint32)SYS_MAX_UINT8 + 1;
|
||||
r = float_t ( color % u256);
|
||||
g = float_t ( (color / 256) % u256);
|
||||
b = float_t ( (color / 65536) % u256);
|
||||
r *= r255; g *= r255; b *= r255;
|
||||
}
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Преобразовать цвет из модели HSV в uint32.
|
||||
\en Convert a color from HSV model in uint32. \~
|
||||
\details \ru Преобразовать цвет из модели HSV в uint32. \n
|
||||
\en Convert a color from HSV model in uint32. \n \~
|
||||
\ingroup Model_Attributes
|
||||
*/
|
||||
// ---
|
||||
inline
|
||||
uint32 HSV2uint32( double h, double s, double v )
|
||||
{
|
||||
double hh, p, q, t, ff;
|
||||
long i;
|
||||
double r, g, b;
|
||||
if ( s <= 0.0 ) {
|
||||
r = v;
|
||||
g = v;
|
||||
b = v;
|
||||
return ::RGB2uint32( r, g, b );
|
||||
}
|
||||
hh = h;
|
||||
if ( hh >= 360.0 )
|
||||
hh = 0.0;
|
||||
hh /= 60.0;
|
||||
i = (long)hh;
|
||||
ff = hh - i;
|
||||
p = v * (1.0 - s);
|
||||
q = v * (1.0 - (s * ff));
|
||||
t = v * (1.0 - (s * (1.0 - ff)));
|
||||
|
||||
switch ( i ) {
|
||||
case 0 : {
|
||||
r = v;
|
||||
g = t;
|
||||
b = p;
|
||||
} break;
|
||||
case 1 : {
|
||||
r = q;
|
||||
g = v;
|
||||
b = p;
|
||||
} break;
|
||||
case 2 : {
|
||||
r = p;
|
||||
g = v;
|
||||
b = t;
|
||||
} break;
|
||||
case 3 : {
|
||||
r = p;
|
||||
g = q;
|
||||
b = v;
|
||||
} break;
|
||||
case 4 : {
|
||||
r = t;
|
||||
g = p;
|
||||
b = v;
|
||||
} break;
|
||||
default : {
|
||||
r = v;
|
||||
g = p;
|
||||
b = q;
|
||||
} break;
|
||||
}
|
||||
return ::RGB2uint32( r, g, b );
|
||||
}
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Цвет.
|
||||
\en Color. \~
|
||||
\details \ru Цвет. \n
|
||||
\en Color. \n \~
|
||||
\ingroup Model_Attributes
|
||||
*/
|
||||
// ---
|
||||
class MATH_CLASS MbColor : public MbElementaryAttribute {
|
||||
protected :
|
||||
uint32 color; ///< \ru Цвет. \en Color.
|
||||
|
||||
protected :
|
||||
/// \ru Конструктор копирования. \en Copy constructor.
|
||||
MbColor( const MbColor & init );
|
||||
public :
|
||||
/// \ru Конструктор. \en Constructor.
|
||||
MbColor( uint32 init );
|
||||
/// \ru Деструктор. \en Destructor.
|
||||
virtual ~MbColor();
|
||||
|
||||
// \ru Общие функции объекта \en Common functions of object.
|
||||
|
||||
virtual MbeAttributeType AttributeType() const; // \ru Дать подтип атрибута. \en Get subtype of an attribute.
|
||||
|
||||
virtual MbAttribute & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
|
||||
virtual bool IsSame( const MbAttribute &, double accuracy ) const; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
|
||||
virtual bool Init( const MbAttribute & ); // \ru Инициализировать данные по присланным. \en Initialize data.
|
||||
|
||||
/// \ru Установить цвет. \en Set a color.
|
||||
void Init( uint32 init ) { color = init; }
|
||||
/// \ru Дать цвет. \en Get a color.
|
||||
uint32 Color() const { return color; }
|
||||
//int R() const { return red; } // \ru Красный цвет \en Red color
|
||||
//int G() const { return green; } // \ru Зеленый цвет \en Green color
|
||||
//int B() const { return blue; } // \ru Синий цвет \en Blue color
|
||||
|
||||
virtual void GetProperties( MbProperties & ); // \ru Выдать свойства объекта. \en Get properties of the object.
|
||||
virtual size_t SetProperties( const MbProperties & ); // \ru Установить свойства объекта. \en Set properties of object.
|
||||
virtual MbePrompt GetPropertyName(); // \ru Выдать заголовок свойства объекта. \en Get a name of object property.
|
||||
|
||||
private:
|
||||
void operator = ( const MbColor & ); // \ru Не реализовано \en Not implemented
|
||||
|
||||
DECLARE_PERSISTENT_CLASS_NEW_DEL( MbColor )
|
||||
}; // MbColor
|
||||
|
||||
IMPL_PERSISTENT_OPS( MbColor )
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Толщина линий отрисовки.
|
||||
\en Thickness of drawing lines. \~
|
||||
\details \ru Толщина линий отрисовки. \n
|
||||
\en Thickness of drawing lines. \n \~
|
||||
\ingroup Model_Attributes
|
||||
*/
|
||||
// ---
|
||||
class MATH_CLASS MbWidth : public MbElementaryAttribute {
|
||||
protected :
|
||||
int width; ///< \ru Толщина линий отрисовки. \enThickness of drawing lines.
|
||||
|
||||
protected :
|
||||
/// \ru Конструктор копирования. \en Copy constructor.
|
||||
MbWidth( const MbWidth & init );
|
||||
public :
|
||||
/// \ru Конструктор. \en Constructor.
|
||||
MbWidth( int init );
|
||||
/// \ru Деструктор. \en Destructor.
|
||||
virtual ~MbWidth();
|
||||
|
||||
// \ru Общие функции объекта \en Common functions of object.
|
||||
|
||||
virtual MbeAttributeType AttributeType() const; // \ru Дать подтип атрибута. \en Get subtype of an attribute.
|
||||
virtual MbAttribute & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
|
||||
virtual bool IsSame( const MbAttribute &, double accuracy ) const; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
|
||||
virtual bool Init( const MbAttribute & ); // \ru Инициализировать данные по присланным. \en Initialize data.
|
||||
|
||||
/// \ru Установить толщину. \en Set a thickness.
|
||||
void Init( int init ) { width = init; }
|
||||
/// \ru Дать толщину. \en Get a thickness.
|
||||
int Width() const { return width; }
|
||||
|
||||
virtual void GetProperties( MbProperties & ); // \ru Выдать свойства объекта. \en Get properties of the object.
|
||||
virtual size_t SetProperties( const MbProperties & ); // \ru Установить свойства объекта. \en Set properties of object.
|
||||
virtual MbePrompt GetPropertyName(); // \ru Выдать заголовок свойства объекта. \en Get a name of object property.
|
||||
|
||||
private:
|
||||
void operator = ( const MbWidth & ); // \ru Не реализовано \en Not implemented
|
||||
|
||||
DECLARE_PERSISTENT_CLASS_NEW_DEL( MbWidth )
|
||||
}; // MbWidth
|
||||
|
||||
IMPL_PERSISTENT_OPS( MbWidth )
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Стиль линий отрисовки.
|
||||
\en Style of drawing lines. \~
|
||||
\details \ru Стиль линий отрисовки. \n
|
||||
\en Style of drawing lines. \n \~
|
||||
\ingroup Model_Attributes
|
||||
*/
|
||||
// ---
|
||||
class MATH_CLASS MbStyle : public MbElementaryAttribute {
|
||||
protected :
|
||||
int style; ///< \ru Стиль линий отрисовки. \en Style of drawing lines.
|
||||
|
||||
protected :
|
||||
/// \ru Конструктор копирования. \en Copy constructor.
|
||||
MbStyle( const MbStyle & init );
|
||||
public :
|
||||
/// \ru Конструктор. \en Constructor.
|
||||
MbStyle( int init );
|
||||
/// \ru Деструктор. \en Destructor.
|
||||
virtual ~MbStyle();
|
||||
|
||||
// \ru Общие функции объекта \en Common functions of object.
|
||||
|
||||
virtual MbeAttributeType AttributeType() const; // \ru Дать подтип атрибута. \en Get subtype of an attribute.
|
||||
virtual MbAttribute & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
|
||||
virtual bool IsSame( const MbAttribute &, double accuracy ) const; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
|
||||
virtual bool Init( const MbAttribute & ); // \ru Инициализировать данные по присланным. \en Initialize data.
|
||||
|
||||
/// \ru Установить стиль линий отрисовки. \en Set style of drawing lines.
|
||||
void Init( int init ) { style = init; }
|
||||
/// \ru Дать стиль линий отрисовки. \en Get style of drawing lines.
|
||||
int Style() const { return style; }
|
||||
|
||||
virtual void GetProperties( MbProperties & ); // \ru Выдать свойства объекта. \en Get properties of the object.
|
||||
virtual size_t SetProperties( const MbProperties & ); // \ru Установить свойства объекта. \en Set properties of object.
|
||||
virtual MbePrompt GetPropertyName(); // \ru Выдать заголовок свойства объекта. \en Get a name of object property.
|
||||
|
||||
private:
|
||||
void operator = ( const MbStyle & ); // \ru Не реализовано \en Not implemented
|
||||
|
||||
DECLARE_PERSISTENT_CLASS_NEW_DEL( MbStyle )
|
||||
}; // MbStyle
|
||||
|
||||
IMPL_PERSISTENT_OPS( MbStyle )
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Свойства для OpenGL.
|
||||
\en Properties for OpenGL. \~
|
||||
\details \ru Свойства для OpenGL для трех цветов: RED, GREEN, BLUE. \n
|
||||
\en Properties for OpenGL for colors: RED, GREEN, BLUE. \n \~
|
||||
\ingroup Model_Attributes
|
||||
*/
|
||||
// ---
|
||||
class MATH_CLASS MbVisual : public MbElementaryAttribute {
|
||||
protected :
|
||||
float ambient[__RGB__]; ///< \ru Коэффициент общего фона для трех цветов: RED, GREEN, BLUE. \en Coefficient of ambient background for colors: RED, GREEN, BLUE, range 0.0 - 1.0.
|
||||
float diffuse[__RGB__]; ///< \ru Коэффициент диффузного отражения для трех цветов: RED, GREEN, BLUE. \en Coefficient of diffuse reflection for colors: RED, GREEN, BLUE, range 0.0 - 1.0.
|
||||
float specularity[__RGB__]; ///< \ru Коэффициент зеркального отражения света трех цветов: RED, GREEN, BLUE. \en Coefficient of specular reflection for light colors: RED, GREEN, BLUE, range 0.0 - 1.0.
|
||||
float shininess; ///< \ru Блеск (показатель степени в законе зеркального отражения). \en Shininess (index according to the law of specular reflection), range 0 - 128.
|
||||
float opacity; ///< \ru Коэффициент непрозрачности (коэффициент суммарного отражения). \en Opacity coefficient (coefficient of total reflection), range 0.0 (transparent) - 1.0(opaque).
|
||||
float emission; ///< \ru Коэффициент излучения. \en Emissivity coefficient, range 0.0 - 1.0.
|
||||
float chrom; ///< \ru Коэффициент зеркального отражения объектов. \en Coefficient of specular reflection for objects, range 0.0 - 1.0.
|
||||
|
||||
protected :
|
||||
/// \ru Конструктор копирования. \en Copy constructor.
|
||||
MbVisual( const MbVisual & init );
|
||||
public :
|
||||
/// \ru Конструктор. \en Constructor.
|
||||
MbVisual( float a = MB_AMBIENT, float d = MB_DIFFUSE, float s = MB_SPECULARITY,
|
||||
float h = MB_SHININESS, float t = MB_OPACITY, float e = MB_EMISSION );
|
||||
/// \ru Деструктор. \en Destructor.
|
||||
virtual ~MbVisual();
|
||||
|
||||
// \ru Общие функции объекта \en Common functions of object.
|
||||
|
||||
virtual MbeAttributeType AttributeType() const; // \ru Дать подтип атрибута. \en Get subtype of an attribute.
|
||||
virtual MbAttribute & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
|
||||
virtual bool IsSame( const MbAttribute &, double accuracy ) const; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
|
||||
virtual bool Init( const MbAttribute & ); // \ru Инициализировать данные по присланным. \en Initialize data.
|
||||
|
||||
/// \ru Установить свойства для OpenGL. \en Set properties for OpenGL.
|
||||
void Init( float a = MB_AMBIENT, float d = MB_DIFFUSE, float s = MB_SPECULARITY,
|
||||
float h = MB_SHININESS, float t = MB_OPACITY, float e = MB_EMISSION, uint rgb = 0 ) {
|
||||
ambient[rgb%__RGB__] = a; // \ru Коэффициент общего фона. \en Coefficient of ambient background.
|
||||
diffuse[rgb%__RGB__] = d; // \ru Коэффициент диффузного отражения. \en Coefficient of diffuse reflection.
|
||||
specularity[rgb%__RGB__] = s; // \ru Коэффициент зеркального отражения света. \en Coefficient of specular reflection for light.
|
||||
shininess = h; // \ru Блеск (показатель степени. в законе зеркального отражения). \en Shininess (index according to the law of specular reflection).
|
||||
opacity = t; // \ru Коэффициент непрозрачности. \en Opacity coefficient.
|
||||
emission = e; // \ru Коэффициент излучения. \en Emissivity coefficient.
|
||||
chrom = s; // \ru Коэффициент зеркального отражения объектов. \en Coefficient of specular reflection for objects.
|
||||
}
|
||||
/// \ru Дать свойства для OpenGL. \en Get properties for OpenGL.
|
||||
void Get( float & a, float & d, float & s, float & h, float & t, float & e, uint rgb = 0 ) const {
|
||||
a = ambient[rgb%__RGB__]; // \ru Коэффициент общего фона. \en Coefficient of ambient background.
|
||||
d = diffuse[rgb%__RGB__]; // \ru Коэффициент диффузного отражения. \en Coefficient of diffuse reflection.
|
||||
s = specularity[rgb%__RGB__]; // \ru Коэффициент зеркального отражения света. \en Coefficient of Specular reflection for light.
|
||||
h = shininess; // \ru Блеск (показатель степени в законе зеркального отражения). \en Shininess (index according to the law of specular reflection).
|
||||
t = opacity; // \ru Коэффициент непрозрачности. \en Opacity coefficient.
|
||||
e = emission; // \ru Коэффициент излучения. \en Emissivity coefficient.
|
||||
}
|
||||
float Ambient ( uint rgb = 0 ) const { return ambient[rgb%__RGB__]; } // \ru Дать коэффициент общего фона. \en Get a coefficient of ambient background.
|
||||
float Diffuse ( uint rgb = 0 ) const { return diffuse[rgb%__RGB__]; } // \ru Дать коэффициент диффузного отражения. \en Get a coefficient of diffuse reflection.
|
||||
float Specularity ( uint rgb = 0 ) const { return specularity[rgb%__RGB__]; } // \ru Дать коэффициент зеркального отражения света. \en Get a coefficient of specular reflection for light.
|
||||
float Shininess () const { return shininess; } // \ru Дать блеск (показатель степени в законе зеркального отражения). \en Get shininess (index according to the law of specular reflection).
|
||||
float Opacity () const { return opacity; } // \ru Дать коэффициент непрозрачности. \en Get an opacity coefficient.
|
||||
float Emission () const { return emission; } // \ru Дать коэффициент излучения. \en Get a coefficient of emissivity.
|
||||
float Chrom () const { return chrom; } // \ru Дать коэффициент зеркального отражения объектов. \en Get a coefficient of specular reflection for objects.
|
||||
const float * Ambients () const { return ambient; } // \ru Дать коэффициенты общего фона. \en Get all coefficients of ambient background.
|
||||
const float * Diffuses () const { return diffuse; } // \ru Дать коэффициенты диффузного отражения. \en Get all coefficients of diffuse reflection.
|
||||
const float * Specularitys() const { return specularity; } // \ru Дать коэффициенты зеркального отражения света. \en Get all coefficients of specular reflection for light.
|
||||
|
||||
void SetAmbient ( float v, uint rgb = 0 ) { ambient[rgb%__RGB__] = v; } // \ru Установить коэффициент общего фона. \en Set a coefficient of ambient background.
|
||||
void SetDiffuse ( float v, uint rgb = 0 ) { diffuse[rgb%__RGB__] = v ; } // \ru Установить коэффициент диффузного отражения. \en Set a coefficient of diffuse reflection.
|
||||
void SetSpecularity ( float v, uint rgb = 0 ) { specularity[rgb%__RGB__] = v; } // \ru Установить коэффициент зеркального отражения света. \en Set a coefficient of specular reflection for light.
|
||||
void SetShininess ( float v ) { shininess = v; } // \ru Установить блеск (показатель степени в законе зеркального отражения). \en Set shininess (index according to the law of specular reflection).
|
||||
void SetOpacity ( float v ) { opacity = v; } // \ru Установить коэффициент непрозрачности. \en Set an opacity coefficient.
|
||||
void SetEmission ( float v ) { emission = v; } // \ru Установить коэффициент излучения. \en Set a coefficient of emissivity.
|
||||
void SetChrom ( float v ) { chrom = v; } // \ru Установить коэффициент зеркального отражения объектов. \en Set a coefficient of specular reflection for objects.
|
||||
|
||||
virtual void GetProperties( MbProperties & ); // \ru Выдать свойства объекта. \en Get properties of the object.
|
||||
virtual size_t SetProperties( const MbProperties & ); // \ru Установить свойства объекта. \en Set properties of object.
|
||||
virtual MbePrompt GetPropertyName(); // \ru Выдать заголовок свойства объекта. \en Get a name of object property.
|
||||
|
||||
private:
|
||||
void operator = ( const MbVisual & ); // \ru Не реализовано \en Not implemented
|
||||
|
||||
DECLARE_PERSISTENT_CLASS_NEW_DEL( MbVisual )
|
||||
}; // MbVisual
|
||||
|
||||
IMPL_PERSISTENT_OPS( MbVisual )
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Количество u-линий и v-линий отрисовочной сетки.
|
||||
\en The number of u-mesh and v-mesh drawing lines. \~
|
||||
\details \ru Количество u-линий и v-линий отрисовочной сетки. \n
|
||||
\en The number of u-mesh and v-mesh drawing lines. \n \~
|
||||
\ingroup Model_Attributes
|
||||
*/
|
||||
// ---
|
||||
class MATH_CLASS MbWireCount : public MbElementaryAttribute {
|
||||
protected :
|
||||
size_t uMeshCount; ///< \ru Количество u-линий отрисовочной сетки. \en The number of u-mesh lines.
|
||||
size_t vMeshCount; ///< \ru Количество v-линий отрисовочной сетки. \en The number of v-mesh lines.
|
||||
|
||||
protected :
|
||||
/// \ru Конструктор копирования. \en Copy constructor.
|
||||
MbWireCount( const MbWireCount & init );
|
||||
public :
|
||||
/// \ru Конструктор. \en Constructor.
|
||||
MbWireCount( size_t uCount, size_t vCount );
|
||||
/// \ru Деструктор. \en Destructor.
|
||||
virtual ~MbWireCount();
|
||||
|
||||
// \ru Общие функции объекта \en Common functions of object.
|
||||
|
||||
virtual MbeAttributeType AttributeType() const; // \ru Дать подтип атрибута. \en Get subtype of an attribute.
|
||||
virtual MbAttribute & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
|
||||
virtual bool IsSame( const MbAttribute &, double accuracy ) const; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
|
||||
virtual bool Init( const MbAttribute & ); // \ru Инициализировать данные по присланным. \en Initialize data.
|
||||
|
||||
/// \ru Установить количество линий отрисовки. \en Set count of drawing lines.
|
||||
void Init( size_t uCount, size_t vCount ) { uMeshCount = uCount, vMeshCount = vCount; }
|
||||
/// \ru Выдать количество разбиений по u и v. \en The the number of splittings in u-direction and v-direction.
|
||||
void Get( size_t & uCount, size_t & vCount ) const { uCount = uMeshCount; vCount = vMeshCount; }
|
||||
|
||||
virtual void GetProperties( MbProperties & ); // \ru Выдать свойства объекта. \en Get properties of the object.
|
||||
virtual size_t SetProperties( const MbProperties & ); // \ru Установить свойства объекта. \en Set properties of object.
|
||||
virtual MbePrompt GetPropertyName(); // \ru Выдать заголовок свойства объекта. \en Get a name of object property.
|
||||
|
||||
private:
|
||||
void operator = ( const MbWireCount & ); // \ru Не реализовано \en Not implemented
|
||||
|
||||
DECLARE_PERSISTENT_CLASS_NEW_DEL( MbWireCount )
|
||||
}; // MbWireCount
|
||||
|
||||
IMPL_PERSISTENT_OPS( MbWireCount )
|
||||
|
||||
|
||||
#endif // __ATTR_COLOR_H
|
||||
|
||||
@@ -37,7 +37,7 @@ protected :
|
||||
public :
|
||||
virtual MbeAttributeType AttributeFamily() const; // \ru Выдать тип атрибута. \en Get attribute type.
|
||||
virtual MbeAttributeType AttributeType() const = 0; // \ru Выдать подтип атрибута. \en Get subtype of an attribute.
|
||||
virtual MbAttribute & Duplicate( MbRegDuplicate * = NULL ) const = 0; // \ru Сделать копию элемента. \en Create a copy of the element.
|
||||
virtual MbAttribute & Duplicate( MbRegDuplicate * = c3d_null ) const = 0; // \ru Сделать копию элемента. \en Create a copy of the element.
|
||||
virtual bool IsSame( const MbAttribute &, double accuracy ) const; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
|
||||
virtual bool Init( const MbAttribute & ) = 0; // \ru Инициализировать данные по присланным. \en Initialize data.
|
||||
|
||||
@@ -46,13 +46,13 @@ public :
|
||||
// \ru Выполнить действия при конвертации владельца. \en Perform actions when converting the owner.
|
||||
virtual void OnConvertOwner( const MbAttributeContainer & owner, MbAttributeContainer & other );
|
||||
// \ru Выполнить действия при трансформировании владельца. \en Perform actions when transforming the owner.
|
||||
virtual void OnTransformOwner( const MbAttributeContainer & owner, const MbMatrix3D &, MbRegTransform * = NULL );
|
||||
virtual void OnTransformOwner( const MbAttributeContainer & owner, const MbMatrix3D &, MbRegTransform * = c3d_null );
|
||||
// \ru Выполнить действия при перемещении владельца. \en Perform actions when moving the owner.
|
||||
virtual void OnMoveOwner( const MbAttributeContainer & owner, const MbVector3D &, MbRegTransform * = NULL );
|
||||
virtual void OnMoveOwner( const MbAttributeContainer & owner, const MbVector3D &, MbRegTransform * = c3d_null );
|
||||
// \ru Выполнить действия при вращении владельца. \en Perform actions when rotating the owner.
|
||||
virtual void OnRotateOwner( const MbAttributeContainer & owner, const MbAxis3D &, double angle, MbRegTransform * = NULL );
|
||||
virtual void OnRotateOwner( const MbAttributeContainer & owner, const MbAxis3D &, double angle, MbRegTransform * = c3d_null );
|
||||
// \ru Выполнить действия при копировании владельца. \en Perform actions when copying the owner.
|
||||
virtual void OnCopyOwner( const MbAttributeContainer & owner, MbAttributeContainer & other, MbRegDuplicate * = NULL );
|
||||
virtual void OnCopyOwner( const MbAttributeContainer & owner, MbAttributeContainer & other, MbRegDuplicate * = c3d_null );
|
||||
// \ru Выполнить действия при объединении владельца. \en Perform actions when merging he owner.
|
||||
virtual void OnMergeOwner( const MbAttributeContainer & owner, MbAttributeContainer & other );
|
||||
// \ru Выполнить действия при замене владельца. \en Perform actions when replacing the owner.
|
||||
@@ -101,7 +101,7 @@ public:
|
||||
public:
|
||||
virtual MbeAttributeType AttributeType() const; // \ru Выдать подтип атрибута. \en Get subtype of an attribute.
|
||||
virtual void GetCharValue( TCHAR * v ) const; // \ru Выдать строковое значение свойства. \en Get a string value of the property.
|
||||
virtual MbAttribute & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
|
||||
virtual MbAttribute & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
|
||||
virtual bool IsSame( const MbAttribute &, double accuracy ) const; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
|
||||
virtual bool Init( const MbAttribute & ); // \ru Инициализировать данные по присланным. \en Initialize data.
|
||||
virtual void GetProperties( MbProperties & ); // \ru Выдать свойства объекта. \en Get properties of the object.
|
||||
@@ -137,7 +137,7 @@ public:
|
||||
public:
|
||||
virtual MbeAttributeType AttributeType() const; // \ru Выдать подтип атрибута. \en Get subtype of an attribute.
|
||||
virtual void GetCharValue( TCHAR * v ) const; // \ru Выдать строковое значение свойства. \en Get a string value of the property.
|
||||
virtual MbAttribute & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
|
||||
virtual MbAttribute & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
|
||||
virtual bool IsSame( const MbAttribute &, double accuracy ) const; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
|
||||
virtual bool Init( const MbAttribute & ); // \ru Инициализировать данные по присланным. \en Initialize data.
|
||||
virtual void GetProperties( MbProperties & ); // \ru Выдать свойства объекта. \en Get properties of the object.
|
||||
@@ -173,7 +173,7 @@ public:
|
||||
public:
|
||||
virtual MbeAttributeType AttributeType() const; // \ru Выдать подтип атрибута. \en Get subtype of an attribute.
|
||||
virtual void GetCharValue( TCHAR * v ) const; // \ru Выдать строковое значение свойства. \en Get a string value of the property.
|
||||
virtual MbAttribute & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
|
||||
virtual MbAttribute & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
|
||||
virtual bool IsSame( const MbAttribute &, double accuracy ) const; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
|
||||
virtual bool Init( const MbAttribute & ); // \ru Инициализировать данные по присланным. \en Initialize data.
|
||||
virtual void GetProperties( MbProperties & ); // \ru Выдать свойства объекта. \en Get properties of the object.
|
||||
@@ -209,7 +209,7 @@ public:
|
||||
public:
|
||||
virtual MbeAttributeType AttributeType() const; // \ru Выдать подтип атрибута. \en Get subtype of an attribute.
|
||||
virtual void GetCharValue( TCHAR * v ) const; // \ru Выдать строковое значение свойства. \en Get a string value of the property.
|
||||
virtual MbAttribute & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
|
||||
virtual MbAttribute & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
|
||||
virtual bool IsSame( const MbAttribute &, double accuracy ) const; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
|
||||
virtual bool Init( const MbAttribute & ); // \ru Инициализировать данные по присланным. \en Initialize data.
|
||||
virtual void GetProperties( MbProperties & ); // \ru Выдать свойства объекта. \en Get properties of the object.
|
||||
@@ -243,7 +243,7 @@ public:
|
||||
public:
|
||||
virtual MbeAttributeType AttributeType() const; // \ru Выдать подтип атрибута. \en Get subtype of an attribute.
|
||||
virtual void GetCharValue( TCHAR * v ) const; // \ru Выдать строковое значение свойства. \en Get a string value of the property.
|
||||
virtual MbAttribute & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
|
||||
virtual MbAttribute & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
|
||||
virtual bool IsSame( const MbAttribute &, double accuracy ) const; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
|
||||
virtual bool Init( const MbAttribute & ); // \ru Инициализировать данные по присланным. \en Initialize data.
|
||||
virtual void GetProperties( MbProperties & ); // \ru Выдать свойства объекта. \en Get properties of the object.
|
||||
@@ -280,7 +280,7 @@ public:
|
||||
public:
|
||||
virtual MbeAttributeType AttributeType() const; // \ru Выдать подтип атрибута. \en Get subtype of an attribute.
|
||||
virtual void GetCharValue( TCHAR * v ) const; // \ru Выдать строковое значение свойства. \en Get a string value of the property.
|
||||
virtual MbAttribute & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
|
||||
virtual MbAttribute & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
|
||||
virtual bool IsSame( const MbAttribute &, double accuracy ) const; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
|
||||
virtual bool Init( const MbAttribute & ); // \ru Инициализировать данные по присланным. \en Initialize data.
|
||||
virtual void GetProperties( MbProperties & ); // \ru Выдать свойства объекта. \en Get properties of the object.
|
||||
|
||||
@@ -38,7 +38,7 @@ public :
|
||||
// \ru Общие функции объекта \en Common functions of object.
|
||||
|
||||
virtual MbeAttributeType AttributeType() const; // \ru Дать подтип атрибута. \en Get subtype of an attribute.
|
||||
virtual MbAttribute & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
|
||||
virtual MbAttribute & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
|
||||
virtual bool IsSame( const MbAttribute &, double accuracy ) const; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
|
||||
virtual bool Init( const MbAttribute & ); // \ru Инициализировать данные по присланным. \en Initialize data.
|
||||
|
||||
@@ -86,7 +86,7 @@ public :
|
||||
// \ru Общие функции объекта \en Common functions of object.
|
||||
|
||||
virtual MbeAttributeType AttributeType() const; // \ru Дать подтип атрибута. \en Get subtype of an attribute.
|
||||
virtual MbAttribute & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
|
||||
virtual MbAttribute & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
|
||||
virtual bool IsSame( const MbAttribute &, double accuracy ) const; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
|
||||
virtual bool Init( const MbAttribute & ); // \ru Инициализировать данные по присланным. \en Initialize data.
|
||||
|
||||
@@ -137,7 +137,7 @@ public :
|
||||
// \ru Общие функции объекта \en Common functions of object.
|
||||
|
||||
virtual MbeAttributeType AttributeType() const; // \ru Дать подтип атрибута. \en Get subtype of an attribute.
|
||||
virtual MbAttribute & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
|
||||
virtual MbAttribute & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
|
||||
virtual bool IsSame( const MbAttribute &, double accuracy ) const; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
|
||||
virtual bool Init( const MbAttribute & ); // \ru Инициализировать данные по присланным. \en Initialize data.
|
||||
|
||||
|
||||
@@ -30,7 +30,7 @@ public:
|
||||
public :
|
||||
virtual MbeAttributeType AttributeFamily() const; // \ru Тип атрибута \en Type of an attribute
|
||||
virtual MbeAttributeType AttributeType() const = 0; // \ru Выдать подтип атрибута \en Get subtype of an attribute.
|
||||
virtual MbAttribute & Duplicate( MbRegDuplicate * = NULL ) const = 0; // \ru Сделать копию элемента \en Create a copy of the element.
|
||||
virtual MbAttribute & Duplicate( MbRegDuplicate * = c3d_null ) const = 0; // \ru Сделать копию элемента \en Create a copy of the element.
|
||||
virtual bool IsSame( const MbAttribute &, double accuracy ) const = 0; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
|
||||
virtual bool Init( const MbAttribute & ) = 0; // \ru Инициализировать данные по присланным \en Initialize data.
|
||||
|
||||
@@ -39,13 +39,13 @@ public :
|
||||
// \ru Действия при конвертации владельца. \en Actions when converting the owner.
|
||||
virtual void OnConvertOwner( const MbAttributeContainer & owner, MbAttributeContainer & other );
|
||||
/// \ru Действия при трансформировании владельца. \en Actions when transforming the owner.
|
||||
virtual void OnTransformOwner( const MbAttributeContainer & owner, const MbMatrix3D &, MbRegTransform * = NULL );
|
||||
virtual void OnTransformOwner( const MbAttributeContainer & owner, const MbMatrix3D &, MbRegTransform * = c3d_null );
|
||||
// \ru Действия при перемещении владельца. \en Actions when moving the owner.
|
||||
virtual void OnMoveOwner( const MbAttributeContainer & owner, const MbVector3D &, MbRegTransform * = NULL );
|
||||
virtual void OnMoveOwner( const MbAttributeContainer & owner, const MbVector3D &, MbRegTransform * = c3d_null );
|
||||
// \ru Действия при вращении владельца. \en Actions when rotating the owner.
|
||||
virtual void OnRotateOwner( const MbAttributeContainer & owner, const MbAxis3D &, double angle, MbRegTransform * = NULL );
|
||||
virtual void OnRotateOwner( const MbAttributeContainer & owner, const MbAxis3D &, double angle, MbRegTransform * = c3d_null );
|
||||
// \ru Действия при копировании владельца. \en Actions when copying the owner.
|
||||
virtual void OnCopyOwner( const MbAttributeContainer & owner, MbAttributeContainer & other, MbRegDuplicate * = NULL );
|
||||
virtual void OnCopyOwner( const MbAttributeContainer & owner, MbAttributeContainer & other, MbRegDuplicate * = c3d_null );
|
||||
// \ru Действия при объединении владельца. \en Actions when merging the owner.
|
||||
virtual void OnMergeOwner( const MbAttributeContainer & owner, MbAttributeContainer & other );
|
||||
// \ru Действия при замене владельца. \en Actions when replacing the owner.
|
||||
|
||||
@@ -43,20 +43,20 @@ public:
|
||||
// \ru Выдать подтип атрибута. \en Get subtype of an attribute.
|
||||
virtual MbeAttributeType AttributeType() const;
|
||||
// \ru Сделать копию элемента. \en Create a copy of the element.
|
||||
virtual MbAttribute & Duplicate( MbRegDuplicate * = NULL ) const;
|
||||
virtual MbAttribute & Duplicate( MbRegDuplicate * = c3d_null ) const;
|
||||
// \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
|
||||
virtual bool IsSame( const MbAttribute &, double accuracy ) const;
|
||||
// \ru Инициализировать данные по присланным. \en Initialize data.
|
||||
virtual bool Init( const MbAttribute & );
|
||||
|
||||
// \ru Выполнить действия при трансформировании владельца. \en Perform actions when transforming the owner.
|
||||
virtual void OnTransformOwner( const MbAttributeContainer & owner, const MbMatrix3D &, MbRegTransform * = NULL );
|
||||
virtual void OnTransformOwner( const MbAttributeContainer & owner, const MbMatrix3D &, MbRegTransform * = c3d_null );
|
||||
// \ru Выполнить действия при перемещении владельца. \en Perform actions when moving the owner.
|
||||
virtual void OnMoveOwner( const MbAttributeContainer & owner, const MbVector3D &, MbRegTransform * = NULL );
|
||||
virtual void OnMoveOwner( const MbAttributeContainer & owner, const MbVector3D &, MbRegTransform * = c3d_null );
|
||||
// \ru Выполнить действия при вращении владельца. \en Perform actions when rotating the owner.
|
||||
virtual void OnRotateOwner( const MbAttributeContainer & owner, const MbAxis3D &, double angle, MbRegTransform * = NULL );
|
||||
virtual void OnRotateOwner( const MbAttributeContainer & owner, const MbAxis3D &, double angle, MbRegTransform * = c3d_null );
|
||||
// \ru Выполнить действия при копировании владельца. \en Perform actions when copying the owner.
|
||||
virtual void OnCopyOwner( const MbAttributeContainer & owner, MbAttributeContainer & other, MbRegDuplicate * = NULL );
|
||||
virtual void OnCopyOwner( const MbAttributeContainer & owner, MbAttributeContainer & other, MbRegDuplicate * = c3d_null );
|
||||
// \ru Выполнить действия при объединении владельца. \en Perform actions when merging the owner.
|
||||
virtual void OnMergeOwner( const MbAttributeContainer & owner, MbAttributeContainer & other );
|
||||
|
||||
|
||||
@@ -52,19 +52,19 @@ public:
|
||||
// \ru Выдать подтип атрибута. \en Get subtype of an attribute.
|
||||
virtual MbeAttributeType AttributeType() const;
|
||||
// \ru Сделать копию элемента. \en Create a copy of the element.
|
||||
virtual MbAttribute & Duplicate( MbRegDuplicate * = NULL ) const;
|
||||
virtual MbAttribute & Duplicate( MbRegDuplicate * = c3d_null ) const;
|
||||
// \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
|
||||
virtual bool IsSame( const MbAttribute &, double accuracy ) const;
|
||||
// \ru Инициализировать данные по присланным. \en Initialize data.
|
||||
virtual bool Init( const MbAttribute & );
|
||||
// \ru Выполнить действия при трансформировании владельца. \en Perform actions when transforming the owner.
|
||||
virtual void OnTransformOwner( const MbAttributeContainer & owner, const MbMatrix3D &, MbRegTransform * = NULL );
|
||||
virtual void OnTransformOwner( const MbAttributeContainer & owner, const MbMatrix3D &, MbRegTransform * = c3d_null );
|
||||
// \ru Выполнить действия при перемещении владельца. \en Perform actions when moving the owner.
|
||||
virtual void OnMoveOwner( const MbAttributeContainer & owner, const MbVector3D &, MbRegTransform * = NULL );
|
||||
virtual void OnMoveOwner( const MbAttributeContainer & owner, const MbVector3D &, MbRegTransform * = c3d_null );
|
||||
// \ru Выполнить действия при вращении владельца. \en Perform actions when rotating the owner.
|
||||
virtual void OnRotateOwner( const MbAttributeContainer & owner, const MbAxis3D &, double angle, MbRegTransform * = NULL );
|
||||
virtual void OnRotateOwner( const MbAttributeContainer & owner, const MbAxis3D &, double angle, MbRegTransform * = c3d_null );
|
||||
// \ru Выполнить действия при копировании владельца. \en Perform actions when copying the owner.
|
||||
virtual void OnCopyOwner( const MbAttributeContainer & owner, MbAttributeContainer & other, MbRegDuplicate * = NULL );
|
||||
virtual void OnCopyOwner( const MbAttributeContainer & owner, MbAttributeContainer & other, MbRegDuplicate * = c3d_null );
|
||||
// \ru Выполнить действия при объединении владельца. \en Perform actions when merging the owner.
|
||||
virtual void OnMergeOwner( const MbAttributeContainer & owner, MbAttributeContainer & other );
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@ public :
|
||||
// \ru Общие функции объекта. \en Common functions of object.
|
||||
|
||||
virtual MbeAttributeType AttributeType() const; // \ru Дать подтип атрибута. \en Get subtype of an attribute.
|
||||
virtual MbAttribute & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
|
||||
virtual MbAttribute & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
|
||||
virtual bool IsSame( const MbAttribute &, double accuracy ) const; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
|
||||
virtual bool Init( const MbAttribute & ); // \ru Инициализировать данные по присланным. \en Initialize data.
|
||||
virtual void GetProperties( MbProperties & ); // \ru Выдать свойства объекта. \en Get properties of the object.
|
||||
@@ -92,7 +92,7 @@ public :
|
||||
// \ru Общие функции объекта \en Common functions of object.
|
||||
|
||||
virtual MbeAttributeType AttributeType() const; // \ru Дать подтип атрибута. \en Get subtype of an attribute.
|
||||
virtual MbAttribute & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
|
||||
virtual MbAttribute & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
|
||||
virtual bool IsSame( const MbAttribute &, double accuracy ) const; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
|
||||
virtual bool Init( const MbAttribute & ); // \ru Инициализировать данные по присланным. \en Initialize data.
|
||||
|
||||
@@ -159,7 +159,7 @@ public :
|
||||
// \ru Общие функции объекта \en Common functions of object
|
||||
|
||||
virtual MbeAttributeType AttributeType() const; // \ru Дать подтип атрибута. \en Get subtype of an attribute.
|
||||
virtual MbAttribute & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
|
||||
virtual MbAttribute & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
|
||||
virtual bool IsSame( const MbAttribute &, double accuracy ) const; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
|
||||
virtual bool Init( const MbAttribute & ); // \ru Инициализировать данные по присланным. \en Initialize data.
|
||||
|
||||
@@ -221,7 +221,7 @@ public :
|
||||
|
||||
virtual MbeAttributeType AttributeFamily() const; // \ru Дать тип атрибута. \en Get type of an attribute.
|
||||
virtual MbeAttributeType AttributeType() const; // \ru Дать подтип атрибута. \en Get subtype of an attribute.
|
||||
virtual MbAttribute & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
|
||||
virtual MbAttribute & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
|
||||
virtual bool IsSame( const MbAttribute &, double accuracy ) const; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
|
||||
virtual bool Init( const MbAttribute & ); // \ru Инициализировать данные по присланным. \en Initialize data.
|
||||
|
||||
@@ -233,13 +233,13 @@ public :
|
||||
// \ru Выполнить действия при конвертации владельца \en Perform actions when converting the owner.
|
||||
virtual void OnConvertOwner( const MbAttributeContainer & owner, MbAttributeContainer & other );
|
||||
// \ru Выполнить действия при трансформировании владельца. \en Perform actions when transforming the owner.
|
||||
virtual void OnTransformOwner( const MbAttributeContainer & owner, const MbMatrix3D &, MbRegTransform * = NULL );
|
||||
virtual void OnTransformOwner( const MbAttributeContainer & owner, const MbMatrix3D &, MbRegTransform * = c3d_null );
|
||||
// \ru Выполнить действия при перемещении владельца. \en Perform actions when moving the owner.
|
||||
virtual void OnMoveOwner( const MbAttributeContainer & owner, const MbVector3D &, MbRegTransform * = NULL );
|
||||
virtual void OnMoveOwner( const MbAttributeContainer & owner, const MbVector3D &, MbRegTransform * = c3d_null );
|
||||
// \ru Выполнить действия при вращении владельца. \en Perform actions when rotating the owner.
|
||||
virtual void OnRotateOwner( const MbAttributeContainer & owner, const MbAxis3D &, double angle, MbRegTransform * = NULL );
|
||||
virtual void OnRotateOwner( const MbAttributeContainer & owner, const MbAxis3D &, double angle, MbRegTransform * = c3d_null );
|
||||
// \ru Выполнить действия при копировании владельца. \en Perform actions when copying the owner.
|
||||
virtual void OnCopyOwner( const MbAttributeContainer & owner, MbAttributeContainer & other, MbRegDuplicate * = NULL );
|
||||
virtual void OnCopyOwner( const MbAttributeContainer & owner, MbAttributeContainer & other, MbRegDuplicate * = c3d_null );
|
||||
// \ru Выполнить действия при объединении владельца. \en Perform actions when merging the owner.
|
||||
virtual void OnMergeOwner( const MbAttributeContainer & owner, MbAttributeContainer & other );
|
||||
// \ru Выполнить действия при замене владельца. \en Perform actions when replacing the owner.
|
||||
@@ -289,7 +289,7 @@ public:
|
||||
// \ru Общие функции объекта. \en Common functions of object.
|
||||
|
||||
virtual MbeAttributeType AttributeType() const; // \ru Дать подтип атрибута. \en Get subtype of an attribute.
|
||||
virtual MbAttribute & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
|
||||
virtual MbAttribute & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
|
||||
virtual bool IsSame( const MbAttribute &, double ) const; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
|
||||
virtual bool Init( const MbAttribute & ); // \ru Инициализировать данные по атрибуту. \en Initialize by attribute.
|
||||
virtual void GetProperties( MbProperties & ); // \ru Выдать свойства объекта. \en Get properties of the object.
|
||||
|
||||
@@ -37,7 +37,7 @@ public :
|
||||
// Выдать подтип атрибута (временно).
|
||||
virtual MbeAttributeType AttributeType() const = 0;
|
||||
// Сделать копию элемента.
|
||||
virtual MbAttribute & Duplicate( MbRegDuplicate * = NULL ) const = 0;
|
||||
virtual MbAttribute & Duplicate( MbRegDuplicate * = c3d_null ) const = 0;
|
||||
virtual bool IsSame( const MbAttribute &, double accuracy ) const = 0; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
|
||||
// Инициализировать данные по присланным.
|
||||
virtual bool Init( const MbAttribute & ) = 0;
|
||||
@@ -49,13 +49,13 @@ public :
|
||||
// Действия при конвертации владельца.
|
||||
virtual void OnConvertOwner( const MbAttributeContainer & owner, MbAttributeContainer & other );
|
||||
// Действия при трансформировании владельца.
|
||||
virtual void OnTransformOwner( const MbAttributeContainer & owner, const MbMatrix3D &, MbRegTransform * = NULL );
|
||||
virtual void OnTransformOwner( const MbAttributeContainer & owner, const MbMatrix3D &, MbRegTransform * = c3d_null );
|
||||
// Действия при перемещении владельца.
|
||||
virtual void OnMoveOwner( const MbAttributeContainer & owner, const MbVector3D &, MbRegTransform * = NULL );
|
||||
virtual void OnMoveOwner( const MbAttributeContainer & owner, const MbVector3D &, MbRegTransform * = c3d_null );
|
||||
// Действия при вращении владельца.
|
||||
virtual void OnRotateOwner( const MbAttributeContainer & owner, const MbAxis3D &, double angle, MbRegTransform * = NULL );
|
||||
virtual void OnRotateOwner( const MbAttributeContainer & owner, const MbAxis3D &, double angle, MbRegTransform * = c3d_null );
|
||||
// Действия при копировании владельца.
|
||||
virtual void OnCopyOwner( const MbAttributeContainer & owner, MbAttributeContainer & other, MbRegDuplicate * = NULL );
|
||||
virtual void OnCopyOwner( const MbAttributeContainer & owner, MbAttributeContainer & other, MbRegDuplicate * = c3d_null );
|
||||
// Действия при объединении владельца.
|
||||
virtual void OnMergeOwner( const MbAttributeContainer & owner, MbAttributeContainer & other );
|
||||
// Действия при замене владельца.
|
||||
@@ -100,7 +100,7 @@ public :
|
||||
// Выдать подтип атрибута (временно).
|
||||
virtual MbeAttributeType AttributeType() const;
|
||||
// Сделать копию элемента.
|
||||
virtual MbAttribute & Duplicate( MbRegDuplicate * = NULL ) const;
|
||||
virtual MbAttribute & Duplicate( MbRegDuplicate * = c3d_null ) const;
|
||||
virtual bool IsSame( const MbAttribute &, double accuracy ) const; // Определить, являются ли объекты равными.
|
||||
// Инициализировать данные по присланным.
|
||||
virtual bool Init( const MbAttribute & ) ;
|
||||
@@ -319,7 +319,7 @@ public :
|
||||
// Выдать подтип атрибута (временно).
|
||||
virtual MbeAttributeType AttributeType() const;
|
||||
// Сделать копию элемента.
|
||||
virtual MbAttribute & Duplicate( MbRegDuplicate * = NULL ) const ;
|
||||
virtual MbAttribute & Duplicate( MbRegDuplicate * = c3d_null ) const ;
|
||||
virtual bool IsSame( const MbAttribute &, double accuracy ) const; // Определить, являются ли объекты равными.
|
||||
// Инициализировать данные по присланным.
|
||||
virtual bool Init( const MbAttribute & ) ;
|
||||
|
||||
@@ -37,7 +37,7 @@ public :
|
||||
|
||||
// \ru Общие функции объекта. \en Common functions of object.
|
||||
virtual MbeAttributeType AttributeType() const; // \ru Дать подтип атрибута. \en Get subtype of an attribute.
|
||||
virtual MbAttribute & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
|
||||
virtual MbAttribute & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
|
||||
virtual bool IsSame( const MbAttribute &, double accuracy ) const; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
|
||||
virtual bool Init( const MbAttribute & ); // \ru Инициализировать данные по присланным. \en Initialize data by given attribute.
|
||||
|
||||
@@ -83,7 +83,7 @@ public :
|
||||
// \ru Общие функции объекта. \en Common functions of object.
|
||||
|
||||
virtual MbeAttributeType AttributeType() const; // \ru Дать подтип атрибута. \en Get subtype of an attribute.
|
||||
virtual MbAttribute & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
|
||||
virtual MbAttribute & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
|
||||
virtual bool IsSame( const MbAttribute &, double accuracy ) const; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
|
||||
virtual bool Init( const MbAttribute & ); // \ru Инициализировать данные по присланным. \en Initialize data by given attribute.
|
||||
|
||||
@@ -129,7 +129,7 @@ public :
|
||||
// \ru Общие функции объекта. \en Common functions of object.
|
||||
|
||||
virtual MbeAttributeType AttributeType() const; // \ru Дать подтип атрибута. \en Get subtype of an attribute.
|
||||
virtual MbAttribute & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
|
||||
virtual MbAttribute & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
|
||||
virtual bool IsSame( const MbAttribute &, double accuracy ) const; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
|
||||
virtual bool Init( const MbAttribute & ); // \ru Инициализировать данные по присланным. \en Initialize data by given attribute.
|
||||
|
||||
|
||||
@@ -49,20 +49,20 @@ public:
|
||||
// \ru Выдать подтип атрибута. \en Get subtype of an attribute.
|
||||
virtual MbeAttributeType AttributeType() const;
|
||||
// \ru Сделать копию элемента. \en Create a copy of the element.
|
||||
virtual MbAttribute & Duplicate( MbRegDuplicate * = NULL ) const;
|
||||
virtual MbAttribute & Duplicate( MbRegDuplicate * = c3d_null ) const;
|
||||
// \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
|
||||
virtual bool IsSame( const MbAttribute &, double accuracy ) const;
|
||||
// \ru Инициализировать данные по присланным. \en Initialize data.
|
||||
virtual bool Init( const MbAttribute & );
|
||||
|
||||
// \ru Выполнить действия при трансформировании владельца. \en Perform actions when transforming the owner.
|
||||
virtual void OnTransformOwner( const MbAttributeContainer & owner, const MbMatrix3D &, MbRegTransform * = NULL );
|
||||
virtual void OnTransformOwner( const MbAttributeContainer & owner, const MbMatrix3D &, MbRegTransform * = c3d_null );
|
||||
// \ru Выполнить действия при перемещении владельца. \en Perform actions when moving the owner.
|
||||
virtual void OnMoveOwner( const MbAttributeContainer & owner, const MbVector3D &, MbRegTransform * = NULL );
|
||||
virtual void OnMoveOwner( const MbAttributeContainer & owner, const MbVector3D &, MbRegTransform * = c3d_null );
|
||||
// \ru Выполнить действия при вращении владельца. \en Perform actions when rotating the owner.
|
||||
virtual void OnRotateOwner( const MbAttributeContainer & owner, const MbAxis3D &, double angle, MbRegTransform * = NULL );
|
||||
virtual void OnRotateOwner( const MbAttributeContainer & owner, const MbAxis3D &, double angle, MbRegTransform * = c3d_null );
|
||||
// \ru Выполнить действия при копировании владельца. \en Perform actions when copying the owner.
|
||||
virtual void OnCopyOwner( const MbAttributeContainer & owner, MbAttributeContainer & other, MbRegDuplicate * = NULL );
|
||||
virtual void OnCopyOwner( const MbAttributeContainer & owner, MbAttributeContainer & other, MbRegDuplicate * = c3d_null );
|
||||
// \ru Выполнить действия при объединении владельца. \en Perform actions when merging the owner.
|
||||
virtual void OnMergeOwner( const MbAttributeContainer & owner, MbAttributeContainer & other );
|
||||
|
||||
|
||||
@@ -108,7 +108,7 @@ public:
|
||||
/// \ru Выдать подтип пользовательского атрибута по пользовательскому типу. \en Get subtype of an user attribute by user-defined type.
|
||||
static MbeAttributeType AttributeType( const MbUserAttribType & userType );
|
||||
|
||||
virtual MbAttribute & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
|
||||
virtual MbAttribute & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию элемента. \en Create a copy of the element.
|
||||
virtual bool IsSame( const MbAttribute &, double accuracy ) const; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
|
||||
virtual bool Init( const MbAttribute & ); // \ru Инициализировать данные по присланным. \en Initialize data by given attribute.
|
||||
|
||||
@@ -117,13 +117,13 @@ public:
|
||||
// \ru Выполнить действия при конвертации владельца \en Perform actions when converting the owner
|
||||
virtual void OnConvertOwner( const MbAttributeContainer & owner, MbAttributeContainer & other );
|
||||
// \ru Выполнить действия при трансформировании владельца \en Perform actions when transforming the owner
|
||||
virtual void OnTransformOwner( const MbAttributeContainer & owner, const MbMatrix3D &, MbRegTransform * = NULL );
|
||||
virtual void OnTransformOwner( const MbAttributeContainer & owner, const MbMatrix3D &, MbRegTransform * = c3d_null );
|
||||
// \ru Выполнить действия при перемещении владельца. \en Perform actions when moving the owner.
|
||||
virtual void OnMoveOwner( const MbAttributeContainer & owner, const MbVector3D &, MbRegTransform * = NULL );
|
||||
virtual void OnMoveOwner( const MbAttributeContainer & owner, const MbVector3D &, MbRegTransform * = c3d_null );
|
||||
// \ru Выполнить действия при вращении владельца. \en Perform actions when rotating the owner.
|
||||
virtual void OnRotateOwner( const MbAttributeContainer & owner, const MbAxis3D &, double angle, MbRegTransform * = NULL );
|
||||
virtual void OnRotateOwner( const MbAttributeContainer & owner, const MbAxis3D &, double angle, MbRegTransform * = c3d_null );
|
||||
// \ru Выполнить действия при копировании владельца \en Perform actions when copying the owner.
|
||||
virtual void OnCopyOwner( const MbAttributeContainer & owner, MbAttributeContainer & other, MbRegDuplicate * = NULL );
|
||||
virtual void OnCopyOwner( const MbAttributeContainer & owner, MbAttributeContainer & other, MbRegDuplicate * = c3d_null );
|
||||
// \ru Выполнить действия при объединении владельца \en Perform actions when merging the owner.
|
||||
virtual void OnMergeOwner( const MbAttributeContainer & owner, MbAttributeContainer & other );
|
||||
// \ru Выполнить действия при замене владельца. \en Perform actions when replacing the owner.
|
||||
@@ -197,7 +197,7 @@ public :
|
||||
/// \ru Выдать подтип атрибута. \en Get subtype of an attribute.
|
||||
virtual MbUserAttribType AttrTypeEx() const = 0;
|
||||
|
||||
virtual MbAttribute & Duplicate( MbRegDuplicate * = NULL ) const = 0; // \ru Сделать копию элемента. \en Create a copy of the element.
|
||||
virtual MbAttribute & Duplicate( MbRegDuplicate * = c3d_null ) const = 0; // \ru Сделать копию элемента. \en Create a copy of the element.
|
||||
virtual bool IsSame( const MbAttribute &, double accuracy ) const = 0; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
|
||||
virtual bool Init( const MbAttribute & ) = 0; // \ru Инициализировать данные по присланным. \en Initialize data.
|
||||
|
||||
@@ -206,13 +206,13 @@ public :
|
||||
// \ru Выполнить действия при конвертации владельца. \en Perform actions when converting the owner.
|
||||
virtual void OnConvertOwner( const MbAttributeContainer & owner, MbAttributeContainer & other );
|
||||
// \ru Выполнить действия при трансформировании владельца. \en Perform actions when transforming the owner.
|
||||
virtual void OnTransformOwner( const MbAttributeContainer & owner, const MbMatrix3D &, MbRegTransform * = NULL );
|
||||
virtual void OnTransformOwner( const MbAttributeContainer & owner, const MbMatrix3D &, MbRegTransform * = c3d_null );
|
||||
// \ru Выполнить действия при перемещении владельца. \en Perform actions when moving the owner.
|
||||
virtual void OnMoveOwner( const MbAttributeContainer & owner, const MbVector3D &, MbRegTransform * = NULL );
|
||||
virtual void OnMoveOwner( const MbAttributeContainer & owner, const MbVector3D &, MbRegTransform * = c3d_null );
|
||||
// \ru Выполнить действия при вращении владельца. \en Perform actions when rotating the owner.
|
||||
virtual void OnRotateOwner( const MbAttributeContainer & owner, const MbAxis3D &, double angle, MbRegTransform * = NULL );
|
||||
virtual void OnRotateOwner( const MbAttributeContainer & owner, const MbAxis3D &, double angle, MbRegTransform * = c3d_null );
|
||||
// \ru Выполнить действия при копировании владельца. \en Perform actions when copying the owner.
|
||||
virtual void OnCopyOwner( const MbAttributeContainer & owner, MbAttributeContainer & other, MbRegDuplicate * = NULL );
|
||||
virtual void OnCopyOwner( const MbAttributeContainer & owner, MbAttributeContainer & other, MbRegDuplicate * = c3d_null );
|
||||
// \ru Выполнить действия при объединении владельца. \en Perform actions when merging the owner.
|
||||
virtual void OnMergeOwner( const MbAttributeContainer & owner, MbAttributeContainer & other );
|
||||
// \ru Выполнить действия при замене владельца. \en Perform actions when replacing the owner.
|
||||
@@ -256,7 +256,7 @@ public:
|
||||
/// \ru Выдать идентификатор атрибута. \en Get attribute identifier.
|
||||
const MbUserAttribType & GetUserAttrId() const { return userAttrId; }
|
||||
/// \ru Выдать атрибуты. \en Get attributes.
|
||||
const MbAttribute * GetAttribute( size_t k ) const { return ((k < attributes.size()) ? attributes[k] : NULL); }
|
||||
const MbAttribute * GetAttribute( size_t k ) const { return ((k < attributes.size()) ? attributes[k] : c3d_null); }
|
||||
// \ru Выдать количество атрибутов. \en Get the number of attributes.
|
||||
size_t AttributesCount() const { return attributes.size(); }
|
||||
|
||||
@@ -300,7 +300,7 @@ MbUserAttribute * UserAttrDefinition<AttrClass>::ReduceUserAttrib( const MbExter
|
||||
MbUserAttribute * resAttr = new MbUserAttribute( _T("AttrClass"), attrId );
|
||||
resAttr->InitActions( source );
|
||||
{
|
||||
const char * charBuf = NULL;
|
||||
const char * charBuf = c3d_null;
|
||||
size_t memLen = 0;
|
||||
{
|
||||
membuf memBuf;
|
||||
@@ -330,7 +330,7 @@ MbUserAttribute * UserAttrDefinition<AttrClass>::ReduceUserAttrib( const MbExter
|
||||
template <typename AttrClass>
|
||||
MbExternalAttribute * UserAttrDefinition<AttrClass>::AdvanceUserAttrib( const MbUserAttribute & source )
|
||||
{
|
||||
AttrClass * resAttr = NULL;
|
||||
AttrClass * resAttr = c3d_null;
|
||||
MbUserAttribType attrId;
|
||||
source.GetUserAttribId( attrId );
|
||||
{
|
||||
@@ -360,7 +360,7 @@ MbExternalAttribute * UserAttrDefinition<AttrClass>::AdvanceUserAttrib( const Mb
|
||||
// ---
|
||||
template <typename AttrClass>
|
||||
MbFixAttrSet * UserAttrDefinition<AttrClass>::DisassembleUserAttrib( const MbExternalAttribute & /*source*/ ) {
|
||||
return NULL;
|
||||
return c3d_null;
|
||||
}
|
||||
|
||||
|
||||
@@ -379,7 +379,7 @@ bool UserAttrDefinition<AttrClass>::ReassembleUserAttrib( const MbFixAttrSet & /
|
||||
template <typename AttrDefClass>
|
||||
UserAttrDefinitionInstance<AttrDefClass>::UserAttrDefinitionInstance( const MbUserAttribType & type )
|
||||
: AttrDefInstance( type )
|
||||
, attrDef( NULL )
|
||||
, attrDef( c3d_null )
|
||||
{
|
||||
}
|
||||
|
||||
@@ -390,7 +390,7 @@ UserAttrDefinitionInstance<AttrDefClass>::UserAttrDefinitionInstance( const MbUs
|
||||
template <typename AttrDefClass>
|
||||
UserAttrDefinitionInstance<AttrDefClass>::~UserAttrDefinitionInstance()
|
||||
{
|
||||
if ( attrDef != NULL )
|
||||
if ( attrDef != c3d_null )
|
||||
delete attrDef;
|
||||
}
|
||||
|
||||
@@ -401,7 +401,7 @@ UserAttrDefinitionInstance<AttrDefClass>::~UserAttrDefinitionInstance()
|
||||
template <typename AttrDefClass>
|
||||
IAttrDefinition * UserAttrDefinitionInstance<AttrDefClass>::GetAttrDefinition()
|
||||
{
|
||||
if ( attrDef == NULL ) {
|
||||
if ( attrDef == c3d_null ) {
|
||||
ScopedLock ll( GetLock() );
|
||||
attrDef = new AttrDefClass();
|
||||
}
|
||||
|
||||
@@ -290,7 +290,7 @@ public :
|
||||
/// \ru Выдать подтип атрибута. \en Get subtype of an attribute.
|
||||
virtual MbeAttributeType AttributeType() const = 0;
|
||||
/// \ru Сделать копию элемента. \en Create a copy of the element.
|
||||
virtual MbAttribute & Duplicate( MbRegDuplicate * iReg = NULL ) const = 0;
|
||||
virtual MbAttribute & Duplicate( MbRegDuplicate * = c3d_null ) const = 0;
|
||||
/** \brief \ru Определить, являются ли объекты равными.
|
||||
\en Determine whether objects are equal. \~
|
||||
\details \ru Равными считаются однотипные объекты, все данные которых одинаковы (равны).
|
||||
@@ -335,7 +335,7 @@ public :
|
||||
\en Perform actions when transforming the owner, \n
|
||||
This function is called after transforming the owning object in a case when GetActionForTransform() == trn_Self.
|
||||
The registrator of transformed objects may be passed as input parameter. \~ */
|
||||
virtual void OnTransformOwner( const MbAttributeContainer & owner, const MbMatrix3D &, MbRegTransform * = NULL ) = 0;
|
||||
virtual void OnTransformOwner( const MbAttributeContainer & owner, const MbMatrix3D &, MbRegTransform * = c3d_null ) = 0;
|
||||
|
||||
/**\ru Выполнить действия при перемещении владельца. \n
|
||||
Вызывается после перемещения владеющего объекта при условии GetActionForTransform() == trn_Self.
|
||||
@@ -343,7 +343,7 @@ public :
|
||||
\en Perform actions when moving the owner. \n
|
||||
This function is called after moving the owning object in a case when GetActionForTransform() == trn_Self.
|
||||
The registrator of transformed objects may be passed as input parameter. \~ */
|
||||
virtual void OnMoveOwner( const MbAttributeContainer & owner, const MbVector3D &, MbRegTransform * = NULL ) = 0;
|
||||
virtual void OnMoveOwner( const MbAttributeContainer & owner, const MbVector3D &, MbRegTransform * = c3d_null ) = 0;
|
||||
|
||||
/**\ru Выполнить действия при вращении владельца. \n
|
||||
Вызывается после вращения владеющего объекта при условии GetActionForTransform() == trn_Self.
|
||||
@@ -351,7 +351,7 @@ public :
|
||||
\en Perform actions when rotating the owner. \n
|
||||
This function is called after rotating the owning object in a case when GetActionForTransform() == trn_Self.
|
||||
The registrator of transformed objects may be passed as input parameter. \~ */
|
||||
virtual void OnRotateOwner( const MbAttributeContainer & owner, const MbAxis3D &, double angle, MbRegTransform * = NULL ) = 0;
|
||||
virtual void OnRotateOwner( const MbAttributeContainer & owner, const MbAxis3D &, double angle, MbRegTransform * = c3d_null ) = 0;
|
||||
|
||||
/**\ru Выполнить действия при копировании владельца. \n
|
||||
Вызывается после копирования владеющего объекта при условии GetActionForCopy() == cpy_Self. \n
|
||||
@@ -359,7 +359,7 @@ public :
|
||||
\en Perform actions when copying the owner. \n
|
||||
This function is called after copying the owning object in a case when GetActionForCopy() == cpy_Self. \n
|
||||
The following objects are passed as input parameters: the owning object copy and registrator of copied objects. \~ */
|
||||
virtual void OnCopyOwner( const MbAttributeContainer & owner, MbAttributeContainer & other, MbRegDuplicate * = NULL ) = 0;
|
||||
virtual void OnCopyOwner( const MbAttributeContainer & owner, MbAttributeContainer & other, MbRegDuplicate * = c3d_null ) = 0;
|
||||
|
||||
/**\ru Выполнить действия при объединении владельца. \n
|
||||
Вызывается перед слиянием владельца при условии GetActionForMerge() == mrg_Self. \n
|
||||
|
||||
@@ -169,13 +169,13 @@ public:
|
||||
/// \ru Выполнить действия при конвертации атрибутов. \en Perform actions when converting the attributes.
|
||||
void AttributesConvert( MbAttributeContainer & other ) const;
|
||||
/// \ru Выполнить действия при трансформировании атрибутов. \en Perform actions when transforming the attributes.
|
||||
void AttributesTransform( const MbMatrix3D &, MbRegTransform * = NULL );
|
||||
void AttributesTransform( const MbMatrix3D &, MbRegTransform * = c3d_null );
|
||||
/// \ru Выполнить действия при перемещении атрибутов. \en Perform actions when moving the attributes.
|
||||
void AttributesMove ( const MbVector3D &, MbRegTransform * = NULL );
|
||||
void AttributesMove ( const MbVector3D &, MbRegTransform * = c3d_null );
|
||||
/// \ru Выполнить действия при вращении атрибутов. \en Perform actions when rotating the attributes.
|
||||
void AttributesRotate ( const MbAxis3D &, double angle, MbRegTransform * = NULL );
|
||||
void AttributesRotate ( const MbAxis3D &, double angle, MbRegTransform * = c3d_null );
|
||||
/// \ru Выполнить действия при копировании атрибутов. \en Perform actions when copying the attributes.
|
||||
void AttributesCopy ( MbAttributeContainer & other, MbRegDuplicate * = NULL ) const;
|
||||
void AttributesCopy ( MbAttributeContainer & other, MbRegDuplicate * = c3d_null ) const;
|
||||
/// \ru Выполнить действия при объединении атрибутов. \en Perform actions when merging the attributes.
|
||||
void AttributesMerge ( MbAttributeContainer & other );
|
||||
/// \ru Выполнить действия при замене атрибутов. \en Perform actions when replacing the attributes.
|
||||
@@ -226,7 +226,7 @@ public:
|
||||
\return \ru true если есть такой атрибут \n false в противном случае
|
||||
\en True if there is the attribute MbColor \n otherwise false. \~
|
||||
*/
|
||||
bool IsColored() const { return (GetSimpleAttribute( at_Color ) != NULL); }
|
||||
bool IsColored() const { return (GetSimpleAttribute( at_Color ) != c3d_null); }
|
||||
/// \ru Изменить цвет объекта. \en Change color of the object.
|
||||
void SetColor( uint32 );
|
||||
/// \ru Изменить цвет объекта (0-255). \en Change color of the object (0-255).
|
||||
@@ -293,7 +293,9 @@ OBVIOUS_PRIVATE_COPY( MbAttributeContainer )
|
||||
\ingroup Model_Attributes
|
||||
*/
|
||||
// ---
|
||||
MATH_FUNC (bool) GetCommonAttributes( const MbAttributeContainer & attrItem, const c3d::string_t & attrPrompt, c3d::ConstAttrVector & resAttrs );
|
||||
MATH_FUNC (bool) GetCommonAttributes( const MbAttributeContainer & attrItem,
|
||||
const c3d::string_t & attrPrompt,
|
||||
c3d::ConstAttrVector & resAttrs );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
@@ -316,8 +318,11 @@ MATH_FUNC (bool) GetCommonAttributes( const MbAttributeContainer & attrItem, con
|
||||
\ingroup Model_Attributes
|
||||
*/
|
||||
// ---
|
||||
MATH_FUNC (bool) AddCommonAttributes( const MbAttributeContainer & srcItem, MbeAttributeType attrType, const c3d::string_t & attrPrompt,
|
||||
MbAttributeContainer & dstItem, c3d::AttrVector * bufAttrs = NULL );
|
||||
MATH_FUNC (bool) AddCommonAttributes( const MbAttributeContainer & srcItem,
|
||||
MbeAttributeType attrType,
|
||||
const c3d::string_t & attrPrompt,
|
||||
MbAttributeContainer & dstItem,
|
||||
c3d::AttrVector * bufAttrs = c3d_null );
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Удалить обобщенные атрибуты.
|
||||
|
||||
+20
-11
@@ -23,7 +23,7 @@ class MbHRepSolid;
|
||||
*/
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
/// \ru Объект набора для контроля столкновений. \en Object of the set for collision detection.
|
||||
/// \ru Объект из набора контроля столкновений. \en Object from the set of collision detection.
|
||||
//---
|
||||
typedef const MbHRepSolid * cdet_item;
|
||||
typedef MbResultType cdet_result; ///< \ru Код результата контроля столкновений. \en Result code of collision queries.
|
||||
@@ -45,18 +45,28 @@ typedef const void * cdet_app_item;
|
||||
//----------------------------------------------------------------------------------------
|
||||
// Constants
|
||||
//---
|
||||
const cdet_item CDET_NULL = C3D_NULL_PTR; ///< \ru Пустой объект набора для контроля столкновений. \en Empty object of the collision query set.
|
||||
const cdet_app_item CDET_APP_NULL = C3D_NULL_PTR; ///< \ru "Нулевой" объект модели приложения. \en "Null object" of the client app.
|
||||
const cdet_item CDET_NULL = c3d_null; ///< \ru Пустой объект набора для контроля столкновений. \en Empty object of the collision query set.
|
||||
const cdet_app_item CDET_APP_NULL = c3d_null; ///< \ru "Нулевой" объект модели приложения. \en "Null object" of the client app.
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
// Base class to implement collision query details
|
||||
/** \brief \ru Структура данных и обратных вызовов для запроса на поиск соударений.
|
||||
\en Data structure and callbacks for the collision search request.
|
||||
\details
|
||||
\ru Базовый класс, предназначенный для реализации на стороне приложения структуры
|
||||
запроса к алгоритму поиска соударений. С помощью обратных вызовов приложение
|
||||
управляет поиском соударений и получает сведения o найденных пересечениях.
|
||||
\en The base class intended to implement on the application side the structure of a query
|
||||
to the collision search algorithm. The application uses a callback to control the collision
|
||||
search and obtain details of detected interferencies.
|
||||
|
||||
*/
|
||||
//---
|
||||
struct cdet_query
|
||||
{
|
||||
enum cback_res ///< Result code of the callback function
|
||||
{
|
||||
CBACK_VOID
|
||||
, CBACK_SUFFICIENT ///< This code means that an app stops collision query for given pair of lamps
|
||||
, CBACK_SUFFICIENT ///< This code means that an app stops collision query for given pair of lumps
|
||||
, CBACK_SKIP ///< Skip testing a given pair of the lumps
|
||||
, CBACK_BREAK ///< Break search of all collisions of the set
|
||||
, CBACK_SEARCH_MORE = CBACK_VOID ///< This code notifies a collision detector to continue working at cases CDET_INTERSECTED, CDET_TOUCHED.
|
||||
@@ -77,8 +87,8 @@ struct cdet_query
|
||||
const MbRefItem * refItem;
|
||||
const MbMatrix3D * wMatrix;
|
||||
geom_element()
|
||||
: appItem( C3D_NULL_PTR )
|
||||
, refItem( C3D_NULL_PTR )
|
||||
: appItem( c3d_null )
|
||||
, refItem( c3d_null )
|
||||
, wMatrix( &MbMatrix3D::identity ) {}
|
||||
};
|
||||
|
||||
@@ -117,7 +127,7 @@ struct cdet_query_result: public cdet_query
|
||||
private:
|
||||
static cback_res QueryFunc( cdet_query * query, message code, cback_data & )
|
||||
{
|
||||
C3D_ASSERT( C3D_NULL_PTR != query );
|
||||
C3D_ASSERT( c3d_null != query );
|
||||
cdet_query_result * q = static_cast<cdet_query_result*>( query );
|
||||
switch( code )
|
||||
{
|
||||
@@ -162,7 +172,7 @@ private:
|
||||
{
|
||||
case CDET_QUERY_STARTED: // The collision query is started for all solids of the set
|
||||
{
|
||||
q->first = q->second = C3D_NULL_PTR;
|
||||
q->first = q->second = c3d_null;
|
||||
return CBACK_VOID;
|
||||
}
|
||||
case CDET_FINISHED: // A pair of solids is finished.
|
||||
@@ -358,7 +368,7 @@ public:
|
||||
MbCollisionFace( const MbFace & f )
|
||||
: item( CDET_NULL )
|
||||
, mathFace( &f )
|
||||
, partFace( C3D_NULL_PTR )
|
||||
, partFace( c3d_null )
|
||||
{}
|
||||
|
||||
const MbFace & Face() const { return *mathFace; }
|
||||
@@ -405,7 +415,6 @@ class MATH_CLASS MbProximityParameters
|
||||
SPtr<const MbFace> plane;
|
||||
|
||||
public:
|
||||
//cdet_item fstItem, sndItem; // \ru Дескрипторы
|
||||
MbCartPoint3D fstPnt, sndPnt; // \ru Пара точек близости, принадлежащие триангуляционным сеткам. \en The points of the proximity belonging to the triangulation grids.
|
||||
MbCartPoint thePar1, thePar2; // \ru Пара точек близости, заданная в поверхностных координатах граненй. \en The points of the proximity specified in the surface coordinates of the faces.
|
||||
double theDistance; // \ru Расстояние. \en Distance.
|
||||
|
||||
+39
-31
@@ -15,6 +15,7 @@
|
||||
class MtRefItem;
|
||||
class MbItem;
|
||||
class MbSolid;
|
||||
class MbMesh;
|
||||
class MbAssembly;
|
||||
struct MbLumpAndFaces;
|
||||
class MbCollisionDetector;
|
||||
@@ -34,7 +35,7 @@ class MbCollisionDetector;
|
||||
\attention \ru Для гарантированно правильной работы детектора необходимо, чтобы объект
|
||||
типа MbLumpAndFaces, добавляемый в рассмотрение посредством функции AddSolid, имел
|
||||
правильную матрицу преобразования в мир в настоящем его положении, т.е. с самого начала.
|
||||
\en For the ensure proper functionality of detector it is necessary that
|
||||
\en For the ensure proper functionality of the detector it is necessary that
|
||||
an object of type MbLumpAndFaces to be added in consideration by function AddSolid will
|
||||
have a correct matrix of transformation to the world coordinate system in its current
|
||||
state, i.e. from the beginning. \~
|
||||
@@ -54,26 +55,54 @@ public:
|
||||
\en Add a solid with given placement to the collision detection set. \~
|
||||
\return \ru Дескриптор объекта для контроля столкновений. \en Descriptor of object for collision detection. \~
|
||||
*/
|
||||
cdet_item AddItem( const MbSolid & solid, const MbPlacement3D & place, cdet_app_item appItem = CDET_APP_NULL );
|
||||
cdet_item AddItem( const MbSolid & solid, const MbPlacement3D & place, cdet_app_item appItem = CDET_APP_NULL );
|
||||
/**
|
||||
\brief \ru Добавить полигональный объект с заданным положением в набор для контроля столкновений.
|
||||
\en Add a poligonal object with given placement to the collision detection set. \~
|
||||
\return \ru Дескриптор объекта для контроля столкновений. \en Descriptor of object for collision detection. \~
|
||||
*/
|
||||
cdet_item AddMesh( const MbMesh & mesh, const MbPlacement3D & place, cdet_app_item appItem = CDET_APP_NULL );
|
||||
/**
|
||||
\brief \ru Добавить новый компонент контроля соударений и параметров близости.
|
||||
\en Add a new component to track collisions and proximity parameters. \~
|
||||
\details \ru Компонент позволяет объединять тела в геометрически-жесткие множества.
|
||||
\en Component is able to unite solids into the rigid geometric sets.
|
||||
*/
|
||||
cdet_item AddComponent( cdet_app_item );
|
||||
/**
|
||||
\brief \ru Добавить новый экземпляр тела в компонент контроля соударений.
|
||||
\en Add a new instance of a reused solid into the component. \~
|
||||
\param[in] compItem - \ru Компонент, которому будет принадлежать экземпляр.
|
||||
\en A component to witch the instance will belong.
|
||||
\param[in] solidItem - \ru Оригинальное тело, добавленное методом #AddSolid, по которому изготавливается экземпляр.
|
||||
\en An original solid added by the method #AddSolid by witch the instance is made.
|
||||
\param[in] place - \ru Положение, которое занимает тело экземпляра в глобальной СК.
|
||||
\en The placement that the instance solid takes in global space.
|
||||
\return \ru Новый экземпляр тела, зарегистрированный с аппарате контроля соударений.
|
||||
\en The new solid instance registered in the detector.
|
||||
\note \ru Значение compItem может быть нулевым. Значит просто вставка не будет
|
||||
принадлежать ни одному компоненту.
|
||||
\en The value compItem can be CDET_NULL. This just means that the
|
||||
instance does not belong to any component.
|
||||
*/
|
||||
cdet_item AddInstance( cdet_item compItem, cdet_item solidItem, const MbPlacement3D & place );
|
||||
/**
|
||||
\brief \ru Удалить геометрический объект из набора для контроля столкновений.
|
||||
\en Remove a geometric object from the set of collision detection. \~
|
||||
*/
|
||||
void RemoveItem( cdet_item cdItem );
|
||||
void RemoveItem( cdet_item cdItem );
|
||||
/**
|
||||
\brief \ru Поменять текущее положение геометрического объекта в наборе.
|
||||
\en Change current position of a geometric object. \~
|
||||
*/
|
||||
void Reposition( cdet_item, const MbPlacement3D & );
|
||||
void Reposition( cdet_item, const MbPlacement3D & );
|
||||
/**
|
||||
\brief \ru Проверить соударения между геометрическими объектами набора.
|
||||
\en Check collisions between geometric objects of the set. \~
|
||||
\return \ru Функция вернет CDET_RESULT_Intersected при обранужении хотя бы одной коллизии.
|
||||
\en The function will return CDET_RESULT_Intersected if it detects at least one collision.
|
||||
|
||||
\en The function will return CDET_RESULT_Intersected if it detects at least one collision.
|
||||
*/
|
||||
cdet_result CheckCollisions( cdet_query & );
|
||||
|
||||
/**
|
||||
\brief \ru Проверить соударения между геометрическими объектами набора.
|
||||
\en Check collisions between geometric objects of the set. \~
|
||||
@@ -98,28 +127,6 @@ public: // the functions below can be deprecated in future version.
|
||||
cdet_item AddSolid( const MbLumpAndFaces & );
|
||||
/// \ru Добавить тело с заданным положением. \en Add a solid with a given placement.
|
||||
cdet_item AddSolid( const MbSolid &, const MbPlacement3D &, cdet_app_item = CDET_APP_NULL );
|
||||
/**
|
||||
\brief \ru Добавить новый компонент контроля соударений и параметров близости.
|
||||
\en Add a new component to track collisions and proximity parameters. \~
|
||||
*/
|
||||
cdet_item AddComponent( cdet_app_item );
|
||||
/**
|
||||
\brief \ru Добавить новый экземпляр тела в компонент контроля соударений.
|
||||
\en Add a new instance of a reused solid into the component. \~
|
||||
\param[in] compItem - \ru Компонент, которому будет принадлежать экземпляр.
|
||||
\en A component to witch the instance will belong.
|
||||
\param[in] solidItem - \ru Оригинальное тело, добавленное методом #AddSolid, по которому изготавливается экземпляр.
|
||||
\en An original solid added by the method #AddSolid by witch the instance is made.
|
||||
\param[in] place - \ru Положение, которое занимает тело экземпляра в глобальной СК.
|
||||
\en The placement that the instance solid takes in global space.
|
||||
\return \ru Новый экземпляр тела, зарегистрированный с аппарате контроля соударений.
|
||||
\en The new solid instance registered in the detector.
|
||||
\note \ru Значение compItem может быть нулевым. Значит просто вставка не будет
|
||||
принадлежать ни одному компоненту.
|
||||
\en The value compItem can be CDET_NULL. This just means that the
|
||||
instance does not belong to any component.
|
||||
*/
|
||||
cdet_item AddInstance( cdet_item compItem, cdet_item solidItem, const MbPlacement3D & place );
|
||||
/// \ru Удалить твердотельную модель из детектора столкновений. \en Remove a solid model from a collision detector.
|
||||
void RemoveSolid( cdet_item );
|
||||
/// \ru Выдать количество добавленных твердотельных моделей. \en Get number of added solid models.
|
||||
@@ -155,7 +162,7 @@ public: /*
|
||||
// Use AppItem() insead this
|
||||
cdet_app_item Component( size_t solIdx ) const;
|
||||
// The func is deprecated. Instead, use CheckCollisions
|
||||
cdet_result InterferenceDetect( void * formalPar = C3D_NULL_PTR ) const;
|
||||
cdet_result InterferenceDetect( void * formalPar = c3d_null ) const;
|
||||
// The func is deprecated. Use SetDistanceTracking instead.
|
||||
void SetDistanceComputationObjects( const MbLumpAndFaces &, const MbLumpAndFaces & );
|
||||
// The func is deprecated. Use AddSolid/AddItem instead.
|
||||
@@ -166,6 +173,7 @@ public: /*
|
||||
const MtRefItem * _ComputeBVTree( cdet_item );
|
||||
|
||||
private:
|
||||
|
||||
/*
|
||||
\brief \ru Добавить объект геометрической модели в набор для контроля столкновений.
|
||||
\en Add an object of geometric model to the set of collision detection control. \~
|
||||
@@ -189,7 +197,7 @@ inline cdet_result MbCollisionDetectionUtility::CheckCollisions()
|
||||
/// \ru Узел дерева объемов. \en A node of the bounding volume tree.
|
||||
typedef const MtRefItem * cdet_bvt_node;
|
||||
/// \ru Пустое дерево объемов. \en An empty bounding volume tree.
|
||||
const cdet_bvt_node CDET_BVT_NULL = C3D_NULL_PTR;
|
||||
const cdet_bvt_node CDET_BVT_NULL = c3d_null;
|
||||
/// \ru Пара ветвей поддерева объемов. \en A pair of branches of the bounding volume subtree.
|
||||
typedef std::pair<cdet_bvt_node,cdet_bvt_node> cdet_bvt_pair;
|
||||
|
||||
|
||||
@@ -70,13 +70,13 @@ public:
|
||||
|
||||
public:
|
||||
/// \ru Пересечение - есть тело. \en Intersection is a solid.
|
||||
bool IsSolid() const { return ((solid != NULL) || (isSolid && !edges.empty())); }
|
||||
bool IsSolid() const { return ((solid != c3d_null) || (isSolid && !edges.empty())); }
|
||||
/// \ru Пересечение касательной областью поверхности. \en Intersection by a tangent region of a surface.
|
||||
bool IsSurface() const { return !isTangentCurve && !edges.empty(); }
|
||||
/// \ru Пересечение вдоль касательной линии. \en Intersection along a tangent line.
|
||||
bool IsCurve() const { return isTangentCurve && !edges.empty(); }
|
||||
/// \ru Пересечение точкой (еще не реализовано). \en Intersection is a point (not implemented yet).
|
||||
bool IsPoint() const { return ((pointFrame != NULL) && (pointFrame->GetVerticesCount() > 0)); }
|
||||
bool IsPoint() const { return ((pointFrame != c3d_null) && (pointFrame->GetVerticesCount() > 0)); }
|
||||
|
||||
/// \ru Установить флаг пересечения вдоль касательной линии. \en Set the flag of intersection along a tangent line.
|
||||
//void SetTangent( bool b ) { isTangentCurve = b; }
|
||||
@@ -92,7 +92,7 @@ public:
|
||||
template <class EdgesVector>
|
||||
void GetCurves( EdgesVector & curves ) const;
|
||||
/// \ru Получить указатель на кривую пересечения по индексу. \en Get a pointer to an intersection curve by the index.
|
||||
const MbCurveEdge * GetCurve( size_t k ) const { return ((k < edges.size()) ? edges[k].get() : NULL); }
|
||||
const MbCurveEdge * GetCurve( size_t k ) const { return ((k < edges.size()) ? edges[k].get() : c3d_null); }
|
||||
/// \ru Получить номера касающихся граней первого/второго тела. \en Get numbers concerning faces of the first/second solid.
|
||||
template <class OutputIndicesVector>
|
||||
void GetFaceNumbers( bool first, OutputIndicesVector & ) const;
|
||||
@@ -101,7 +101,7 @@ public:
|
||||
void GetFaceNumbersPairs( OutputIndicesPairsVector & ) const;
|
||||
|
||||
/// \ru Количество точек касания. \en The number of touch points.
|
||||
size_t GetPointsCount() const { return ((pointFrame != NULL) ? pointFrame->GetVerticesCount() : 0); }
|
||||
size_t GetPointsCount() const { return ((pointFrame != c3d_null) ? pointFrame->GetVerticesCount() : 0); }
|
||||
/// \ru Получить набор точек касания. \en Get a set of touch points.
|
||||
const MbPointFrame * GetPointFrame() const { return pointFrame; }
|
||||
|
||||
@@ -117,8 +117,8 @@ MbShellsIntersectionData::MbShellsIntersectionData( const EdgesVector & initEdge
|
||||
: edges ( )
|
||||
, faceIndices1 ( )
|
||||
, faceIndices2 ( )
|
||||
, solid ( NULL )
|
||||
, pointFrame ( NULL )
|
||||
, solid ( c3d_null )
|
||||
, pointFrame ( c3d_null )
|
||||
, isTangentCurve( false )
|
||||
, isSolid ( isSolidEgdes )
|
||||
{
|
||||
@@ -127,7 +127,7 @@ MbShellsIntersectionData::MbShellsIntersectionData( const EdgesVector & initEdge
|
||||
c3d::EdgeSPtr edge;
|
||||
edges.reserve( addCnt );
|
||||
for ( size_t k = 0; k < addCnt; ++k ) {
|
||||
if ( initEdges[k] != NULL ) {
|
||||
if ( initEdges[k] != c3d_null ) {
|
||||
edge = const_cast<MbCurveEdge *>( &(*initEdges[k]) );
|
||||
edges.push_back( edge );
|
||||
}
|
||||
@@ -146,8 +146,8 @@ MbShellsIntersectionData::MbShellsIntersectionData( const EdgesVector & in
|
||||
: edges ( )
|
||||
, faceIndices1 ( )
|
||||
, faceIndices2 ( )
|
||||
, solid ( NULL )
|
||||
, pointFrame ( NULL )
|
||||
, solid ( c3d_null )
|
||||
, pointFrame ( c3d_null )
|
||||
, isTangentCurve( false )
|
||||
, isSolid ( false )
|
||||
{
|
||||
@@ -157,7 +157,7 @@ MbShellsIntersectionData::MbShellsIntersectionData( const EdgesVector & in
|
||||
c3d::EdgeSPtr edge;
|
||||
edges.reserve( edgesCnt );
|
||||
for ( size_t k = 0; k < edgesCnt; ++k ) {
|
||||
if ( initEdges[k] != NULL ) {
|
||||
if ( initEdges[k] != c3d_null ) {
|
||||
edge = const_cast<MbCurveEdge *>(&(*initEdges[k]));
|
||||
edges.push_back( edge );
|
||||
}
|
||||
@@ -177,8 +177,8 @@ MbShellsIntersectionData::MbShellsIntersectionData( const EdgesVector &
|
||||
: edges ( )
|
||||
, faceIndices1 ( )
|
||||
, faceIndices2 ( )
|
||||
, solid ( NULL )
|
||||
, pointFrame ( NULL )
|
||||
, solid ( c3d_null )
|
||||
, pointFrame ( c3d_null )
|
||||
, isTangentCurve( false )
|
||||
, isSolid ( false )
|
||||
{
|
||||
@@ -189,7 +189,7 @@ MbShellsIntersectionData::MbShellsIntersectionData( const EdgesVector &
|
||||
edges.reserve( edgesCnt );
|
||||
size_t k;
|
||||
for ( k = 0; k < edgesCnt; ++k ) {
|
||||
if ( initEdges[k] != NULL ) {
|
||||
if ( initEdges[k] != c3d_null ) {
|
||||
edge = const_cast<MbCurveEdge *>(&(*initEdges[k]));
|
||||
edges.push_back( edge );
|
||||
}
|
||||
@@ -340,9 +340,9 @@ bool CheckBoundaryEdges( const Edges & allEdges, Edges * boundaryEdges )
|
||||
|
||||
if ( boundaryEdges != &allEdges ) {
|
||||
for ( size_t i = 0, cnt = allEdges.size(); i < cnt; ++i ) {
|
||||
if ( allEdges[i] != NULL && allEdges[i]->IsBoundaryFace( METRIC_PRECISION ) ) {
|
||||
if ( allEdges[i] != c3d_null && allEdges[i]->IsBoundaryFace( METRIC_PRECISION ) ) {
|
||||
isBoundary = true;
|
||||
if ( boundaryEdges != NULL )
|
||||
if ( boundaryEdges != c3d_null )
|
||||
boundaryEdges->push_back( allEdges[i] );
|
||||
else
|
||||
break;
|
||||
@@ -415,9 +415,9 @@ bool CheckInexactVertices( const Vertices & vertArr, double mAcc, Vertices * ine
|
||||
if ( inexactVerts != &vertArr ) {
|
||||
for ( size_t i = 0, icnt = vertArr.size(); i < icnt; ++i ) {
|
||||
MbVertex * v = vertArr[i];
|
||||
if ( v != NULL && v->GetTolerance() > mAcc ) {
|
||||
if ( v != c3d_null && v->GetTolerance() > mAcc ) {
|
||||
isInexactVertex = true;
|
||||
if ( inexactVerts != NULL )
|
||||
if ( inexactVerts != c3d_null )
|
||||
inexactVerts->push_back( v );
|
||||
else
|
||||
break;
|
||||
@@ -480,12 +480,12 @@ bool CheckInexactEdges( const Edges & allEdges, double mAcc, Edges * inexactEdge
|
||||
bool isInexactEdge = false;
|
||||
|
||||
for ( size_t i = 0, icnt = allEdges.size(); i < icnt; ++i ) {
|
||||
if ( allEdges[i] != NULL) {
|
||||
if ( allEdges[i] != c3d_null) {
|
||||
bool isSpaceNear = !::IsInexactEdge( *allEdges[i], mAcc );
|
||||
|
||||
if ( !isSpaceNear ) {
|
||||
isInexactEdge = true;
|
||||
if ( inexactEdges != NULL )
|
||||
if ( inexactEdges != c3d_null )
|
||||
inexactEdges->push_back( allEdges[i] );
|
||||
else
|
||||
break;
|
||||
@@ -498,7 +498,7 @@ bool CheckInexactEdges( const Edges & allEdges, double mAcc, Edges * inexactEdge
|
||||
double mLen = allEdges[i]->GetLengthEvaluation();
|
||||
if ( mLen > METRIC_PRECISION && mLen > mTol + METRIC_PRECISION ) {
|
||||
isInexactEdge = true;
|
||||
if ( inexactEdges != NULL )
|
||||
if ( inexactEdges != c3d_null )
|
||||
inexactEdges->push_back( allEdges[i] );
|
||||
else
|
||||
break;
|
||||
@@ -797,16 +797,42 @@ MATH_FUNC( bool ) RepairEdges( MbFaceShell & shell, bool updateFacesBounds = tru
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Устранить наличие общих подложек поверхностей.
|
||||
\en Remove common surface substrates. \~
|
||||
\details \ru Устранить наличие общих подложек поверхностей. \n
|
||||
\en Remove common surface substrates. \n \~
|
||||
\param[in] shell - \ru Оболочка.
|
||||
\en A shell. \~
|
||||
\details \ru Найти и устранить общие поверхности-подложки в гранях оболочки. \n
|
||||
Функция устарела и будет удалена. Замените вызовы на RemoveCommonSurfaceSubstrates. \n
|
||||
\en Find and eliminate common underlying surfaces of a shell faces. \n
|
||||
The function is deprecated and will be removed. Replace calls with RemoveCommonSurfaceSubstrates. \~
|
||||
\param[in] shell - \ru Модифицируемая оболочка.
|
||||
\en A shell to be modified. \~
|
||||
\return \ru Возвращает true, если была выполнена модификация оболочки.
|
||||
\en Returns true if the shell modification was performed. \~
|
||||
\ingroup Algorithms_3D
|
||||
*/
|
||||
// ---
|
||||
DEPRECATE_DECLARE
|
||||
MATH_FUNC( bool ) CheckIdenticalBaseSufaces( MbFaceShell & shell );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Устранить наличие общих подложек поверхностей.
|
||||
\en Remove common surface substrates. \~
|
||||
\details \ru Найти и устранить общие поверхности-подложки в гранях оболочки. \n
|
||||
\en Find and eliminate common underlying surfaces of a shell faces. \n \~
|
||||
\param[in] shell - \ru Модифицируемая оболочка.
|
||||
\en A shell to be modified. \~
|
||||
\param[in] checkEdges - \ru Выполнить замену в ребрах.
|
||||
\en Replace in shell edges. \~
|
||||
\return \ru Возвращает true, если была выполнена модификация оболочки.
|
||||
\en Returns true if the shell modification was performed. \~
|
||||
\ingroup Algorithms_3D
|
||||
*/
|
||||
//---
|
||||
MATH_FUNC( bool ) RemoveCommonSurfaceSubstrates( MbFaceShell & shell );
|
||||
MATH_FUNC( bool ) RemoveCommonSurfaceSubstrates( MbFaceShell & shell, bool checkEdges = true );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// проверка ориентированности оболочки наружу по угловым точкам расширенного габарита
|
||||
//---
|
||||
MATH_FUNC( ThreeStates ) IsOrientedOutward( const MbFaceShell & shell );
|
||||
|
||||
|
||||
#endif // __CHECK_GEOMETRY_H
|
||||
|
||||
@@ -84,10 +84,10 @@ public:
|
||||
// \ru Общие функции геометрического объекта \en Common functions of a geometric object
|
||||
virtual MbeSpaceType IsA() const; // \ru Тип объекта. \en A type of an object.
|
||||
virtual MbeSpaceType Type() const; // \ru Групповой тип объекта. \en Group type of object.
|
||||
virtual MbSpaceItem & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Создать копию. \en Create a copy.
|
||||
virtual void Transform( const MbMatrix3D &, MbRegTransform * = NULL ); // \ru Преобразовать согласно матрице. \en Transform according to the matrix.
|
||||
virtual void Move ( const MbVector3D &, MbRegTransform * = NULL ); // \ru Сдвинуть вдоль вектора. \en Translate along a vector.
|
||||
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси. \en Rotate about an axis.
|
||||
virtual MbSpaceItem & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Создать копию. \en Create a copy.
|
||||
virtual void Transform( const MbMatrix3D &, MbRegTransform * = c3d_null ); // \ru Преобразовать согласно матрице. \en Transform according to the matrix.
|
||||
virtual void Move ( const MbVector3D &, MbRegTransform * = c3d_null ); // \ru Сдвинуть вдоль вектора. \en Translate along a vector.
|
||||
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси. \en Rotate about an axis.
|
||||
virtual bool IsSame ( const MbSpaceItem & init, double accuracy = LENGTH_EPSILON ) const; // \ru Являются ли объекты равными? \en Are the objects equal?
|
||||
virtual bool SetEqual ( const MbSpaceItem & init ); // \ru Сделать объекты равным. \en Make the objects equal.
|
||||
virtual double DistanceToPoint ( const MbCartPoint3D & ) const; // \ru Вычислить расстояние до точки. \en Calculate the distance to a point.
|
||||
|
||||
@@ -42,8 +42,8 @@ public:
|
||||
public:
|
||||
MtGeomArgument( const MbRefItem * p, const MbItem * h );
|
||||
MtGeomArgument( const MtGeomArgument & );
|
||||
MtGeomArgument() : propItem( NULL ), propName( c3d::UNDEFINED_SNAME )
|
||||
, hash( c3d::UNDEFINED_SNAME ), item( NULL ), root( NULL ) {}
|
||||
MtGeomArgument() : propItem( c3d_null ), propName( c3d::UNDEFINED_SNAME )
|
||||
, hash( c3d::UNDEFINED_SNAME ), item( c3d_null ), root( c3d_null ) {}
|
||||
|
||||
public:
|
||||
/** \brief \ru Получить непосредственный объект сборки, содержащий ссылочный объект.
|
||||
@@ -106,7 +106,7 @@ public:
|
||||
|
||||
public:
|
||||
/// \ru Возвращает true, если ограничение не действительно. \en Return true if the constraint is invalid.
|
||||
bool IsNull() const { return m_cItem == NULL; }
|
||||
bool IsNull() const { return m_cItem == c3d_null; }
|
||||
/// \ru Тип сопряжения (геометрического ограничения). \en Type of geometric constraint.
|
||||
MtMateType ConstraintType() const;
|
||||
/// \ru Текущее значение размера. \en Current value of the dimension.
|
||||
|
||||
+10
-10
@@ -38,8 +38,8 @@ public:
|
||||
/// \ru Конструктор по точке. \en Constructor by point.
|
||||
MpVertex( const MbCartPoint & initP )
|
||||
: point( initP )
|
||||
, begEdge( NULL )
|
||||
, endEdge( NULL )
|
||||
, begEdge( c3d_null )
|
||||
, endEdge( c3d_null )
|
||||
{}
|
||||
|
||||
/// \ru Деструктор. \en Destructor.
|
||||
@@ -398,7 +398,7 @@ public:
|
||||
/// \ru Построить вершины. \en Construct vertices.
|
||||
void CreateVertices();
|
||||
/// \ru Создать контур по циклу. \en Create a contour by the loop.
|
||||
MbContour * MakeContour() const;
|
||||
MbContour * MakeContour( double epsilon = METRIC_ACCURACY ) const;
|
||||
|
||||
/** \} */
|
||||
/**\ru \name Операции преобразования.
|
||||
@@ -737,7 +737,7 @@ IMPL_PERSISTENT_OPS( MpGraph )
|
||||
*/ // ---
|
||||
inline void DeleteVertex( MpVertex *& vertex ) {
|
||||
delete vertex;
|
||||
vertex = NULL;
|
||||
vertex = c3d_null;
|
||||
}
|
||||
|
||||
|
||||
@@ -751,7 +751,7 @@ inline void DeleteVertex( MpVertex *& vertex ) {
|
||||
*/ // ---
|
||||
inline void DeleteEdge( MpEdge *& edge ) {
|
||||
delete edge;
|
||||
edge = NULL;
|
||||
edge = c3d_null;
|
||||
}
|
||||
|
||||
|
||||
@@ -765,7 +765,7 @@ inline void DeleteEdge( MpEdge *& edge ) {
|
||||
*/ // ---
|
||||
inline void DeleteLoop( MpLoop *& loop ) {
|
||||
delete loop;
|
||||
loop = NULL;
|
||||
loop = c3d_null;
|
||||
}
|
||||
|
||||
|
||||
@@ -779,7 +779,7 @@ inline void DeleteLoop( MpLoop *& loop ) {
|
||||
*/ // ---
|
||||
inline void DeleteGraph( MpGraph *& graph ) {
|
||||
delete graph;
|
||||
graph = NULL;
|
||||
graph = c3d_null;
|
||||
}
|
||||
|
||||
|
||||
@@ -848,7 +848,7 @@ MATH_FUNC (MpGraph *) EncloseContoursBuilder( const RPArray<MbCurve> & curveLi
|
||||
double accuracy,
|
||||
bool strict,
|
||||
VERSION version,
|
||||
IProgressIndicator * progInd = NULL );
|
||||
IProgressIndicator * progInd = c3d_null );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
@@ -886,7 +886,7 @@ MATH_FUNC (MpGraph *) OuterContoursBuilder( const RPArray<MbCurve> & curveList,
|
||||
double accuracy,
|
||||
bool strict,
|
||||
VERSION version,
|
||||
IProgressIndicator * progInd = NULL );
|
||||
IProgressIndicator * progInd = c3d_null );
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Перестроить контуры, построенные ранее вокруг точки.
|
||||
@@ -924,7 +924,7 @@ MATH_FUNC (MpGraph *) ContoursReconstructor( const RPArray<MbCurve> & curveLis
|
||||
double accuracy,
|
||||
bool strict,
|
||||
VERSION version,
|
||||
IProgressIndicator * progInd = NULL );
|
||||
IProgressIndicator * progInd = c3d_null );
|
||||
|
||||
|
||||
#endif // __CONTOUR_GRAPH_H
|
||||
|
||||
+878
-878
File diff suppressed because it is too large
Load Diff
@@ -1,24 +1,24 @@
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef __BINOBJ_H
|
||||
#define __BINOBJ_H
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// бинарный объект
|
||||
// ---
|
||||
struct BinaryObj {
|
||||
|
||||
void * p;
|
||||
void * pSort;
|
||||
|
||||
BinaryObj( void *otherId, void *otherP ) : p( otherId ), pSort( otherP ) {}
|
||||
|
||||
bool operator == ( const BinaryObj &o ) const { return pSort == o.pSort; }
|
||||
bool operator < ( const BinaryObj &o ) const { return pSort < o.pSort; }
|
||||
};
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef __BINOBJ_H
|
||||
#define __BINOBJ_H
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// бинарный объект
|
||||
// ---
|
||||
struct BinaryObj {
|
||||
|
||||
void * p;
|
||||
void * pSort;
|
||||
|
||||
BinaryObj( void *otherId, void *otherP ) : p( otherId ), pSort( otherP ) {}
|
||||
|
||||
bool operator == ( const BinaryObj &o ) const { return pSort == o.pSort; }
|
||||
bool operator < ( const BinaryObj &o ) const { return pSort < o.pSort; }
|
||||
};
|
||||
|
||||
|
||||
#endif
|
||||
File diff suppressed because it is too large
Load Diff
+574
-574
File diff suppressed because it is too large
Load Diff
+1159
-1137
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,827 @@
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/**
|
||||
\file
|
||||
\brief \ru API для передачи моделей, прочитанных сторонним модулем.
|
||||
\en API for models read by 3d party component.\~
|
||||
\details \ru Определен интерфейс, который должен реализовать модуль и структуры
|
||||
для передачи информации о модели, топологии, геометрии.
|
||||
\en Declared API the module has to implement and structures for structure,
|
||||
topology and geomentry transmission.\~
|
||||
*/
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef __CONV_PUGIN_IMPORT_H
|
||||
#define __CONV_PUGIN_IMPORT_H
|
||||
|
||||
#include <wchar.h>
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Dynamic-link library API
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Имена функций инициализации и завершения работы плагина.
|
||||
\en Initialize and release functions of plugin.\~
|
||||
\ingroup Data_Interface
|
||||
*/
|
||||
// ---
|
||||
#define C3D_PLUGIN_INIT_SOURCE InitSource
|
||||
#define C3D_PLUGIN_C_SET_PLUGIN_OPTION CSetPluginOption
|
||||
#define C3D_PLUGIN_W_SET_PLUGIN_OPTION WSetPluginOption
|
||||
#define C3D_PLUGIN_RELEASE_SOURCE ReleaseSource
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Имена функций инициализации и завершения работы плагина.
|
||||
\en Initialize and release functions of plugin.\~
|
||||
\ingroup Data_Interface
|
||||
*/
|
||||
// ---
|
||||
#define C3D_PLUGIN_INIT_SOURCE_NAME "InitSource"
|
||||
#define C3D_PLUGIN_C_SET_PLUGIN_OPTION_NAME "CSetPluginOption"
|
||||
#define C3D_PLUGIN_W_SET_PLUGIN_OPTION_NAME "WSetPluginOption"
|
||||
#define C3D_PLUGIN_RELEASE_SOURCE_NAME "ReleaseSource"
|
||||
|
||||
|
||||
struct ObModelSource;
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Объявление функций инициализации и завершения работы плагина.
|
||||
\en Declare initialize and release functions of plugin.\~
|
||||
\ingroup Data_Interface
|
||||
*/
|
||||
// ---
|
||||
#ifdef WIN32
|
||||
#define C3D_PLUGIN_INIT_EXPORT_DECLARE extern "C" __declspec( dllexport ) ObModelSource* _cdecl C3D_PLUGIN_INIT_SOURCE ( const char*, const char* );
|
||||
#define C3D_PLUGIN_C_SET_PLUGIN_OPTION_DECLARE extern "C" __declspec( dllexport ) void _cdecl C3D_PLUGIN_C_SET_PLUGIN_OPTION ( const char*, const char* );
|
||||
#define C3D_PLUGIN_W_SET_PLUGIN_OPTION_DECLARE extern "C" __declspec( dllexport ) void _cdecl C3D_PLUGIN_W_SET_PLUGIN_OPTION ( const wchar_t*, const wchar_t* );
|
||||
#define C3D_PLUGIN_RELEASE_EXPORT_DECLARE extern "C" __declspec( dllexport ) void _cdecl C3D_PLUGIN_RELEASE_SOURCE ( ObModelSource* );
|
||||
#else
|
||||
#define C3D_PLUGIN_INIT_EXPORT_DECLARE ObModelSource* C3D_PLUGIN_INIT_SOURCE ( const char*, const char* );
|
||||
#define C3D_PLUGIN_C_SET_PLUGIN_OPTION_DECLARE void C3D_PLUGIN_C_SET_PLUGIN_OPTION ( const char*, const char* );
|
||||
#define C3D_PLUGIN_W_SET_PLUGIN_OPTION_DECLARE void C3D_PLUGIN_W_SET_PLUGIN_OPTION ( const wchar_t*, const wchar_t* );
|
||||
#define C3D_PLUGIN_RELEASE_EXPORT_DECLARE void C3D_PLUGIN_RELEASE_SOURCE ( ObModelSource* );
|
||||
#endif // WIN32
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Объявление типа функций инициализации и завершения работы плагина.
|
||||
\en Declare types of initialize and release functions of plugin.\~
|
||||
\ingroup Data_Interface
|
||||
*/
|
||||
// ---
|
||||
#ifdef WIN32
|
||||
typedef ObModelSource* ( _cdecl* C3D_PLUGIN_INIT_SOURCE_CALL ) ( const char*, const char* );
|
||||
typedef void ( _cdecl* C3D_PLUGIN_C_SET_OPTION_CALL ) ( const char*, const char* );
|
||||
typedef void ( _cdecl* C3D_PLUGIN_W_SET_OPTION_CALL ) ( const wchar_t*, const wchar_t* );
|
||||
typedef void ( _cdecl* C3D_PLUGIN_RELEASE_SOURCE_CALL )( ObModelSource* );
|
||||
#else
|
||||
typedef ObModelSource* ( * C3D_PLUGIN_INIT_SOURCE_CALL ) ( const char*, const char* );
|
||||
typedef void ( * C3D_PLUGIN_C_SET_OPTION_CALL ) ( const char*, const char* );
|
||||
typedef void ( * C3D_PLUGIN_W_SET_OPTION_CALL ) ( const wchar_t*, const wchar_t* );
|
||||
typedef void ( * C3D_PLUGIN_RELEASE_SOURCE_CALL ) ( ObModelSource* );
|
||||
#endif // WIN32
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Plugin types
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Объявление булевых значений.
|
||||
\en Declare boolean values.\~
|
||||
\ingroup Data_Interface
|
||||
*/
|
||||
// ---
|
||||
#define C3D_PLUGIN_BOOL int
|
||||
#define C3D_PLUGIN_TRUE 1
|
||||
#define C3D_PLUGIN_FALSE 0
|
||||
|
||||
//#define C3D_SYMBOL_COMPOSITE_TEXT 3
|
||||
#define C3D_SYMBOL_TEXT_LINE 0
|
||||
//#define C3D_SYMBOL_PRREDEFINED 1
|
||||
|
||||
#define C3D_SYMBOL_ARC_LENGTH 1
|
||||
#define C3D_SYMBOL_CONICAL_TAPER 2
|
||||
#define C3D_SYMBOL_COUNTERBORE 3
|
||||
#define C3D_SYMBOL_COUNTERSINK 4
|
||||
#define C3D_SYMBOL_DEPTH 5
|
||||
#define C3D_SYMBOL_DIAMETER 6
|
||||
#define C3D_SYMBOL_PLUS_MINUS 7
|
||||
#define C3D_SYMBOL_SLOPE 8
|
||||
#define C3D_SYMBOL_SPHERICAL_DIAMETER 9
|
||||
#define C3D_SYMBOL_SPHERICAL_RADIUS 10
|
||||
#define C3D_SYMBOL_SQUARE 11
|
||||
#define C3D_SYMBOL_ANGULARITY 12
|
||||
#define C3D_SYMBOL_CIRCULAR_RUNOUT 13
|
||||
#define C3D_SYMBOL_CIRCULARITY 14
|
||||
#define C3D_SYMBOL_CONCENTRICITY 15
|
||||
#define C3D_SYMBOL_CYLINDRICITY 16
|
||||
#define C3D_SYMBOL_FLATNESS 17
|
||||
#define C3D_SYMBOL_PARALLELISM 18
|
||||
#define C3D_SYMBOL_PERPENDICULARITY 19
|
||||
#define C3D_SYMBOL_POSITION 20
|
||||
#define C3D_SYMBOL_LINE_PROFILE 21
|
||||
#define C3D_SYMBOL_SURFACE_PROFILE 22
|
||||
#define C3D_SYMBOL_STRAIGHTNESS 23
|
||||
#define C3D_SYMBOL_SYMMETRY 24
|
||||
#define C3D_SYMBOL_TOTAL_RUNOUT 25
|
||||
|
||||
|
||||
#define C3D_CALLOUT_GENERAL 0
|
||||
#define C3D_CALLOUT_DIMENSION 1
|
||||
#define C3D_CALLOUT_PROJECTION 2
|
||||
|
||||
|
||||
#define C3D_TERMINATOR_EMPTY 0
|
||||
#define C3D_TERMINATOR_BLANKED_ARROW 1
|
||||
#define C3D_TERMINATOR_BLANKED_BOX 2
|
||||
#define C3D_TERMINATOR_BLANKED_DOT 3
|
||||
#define C3D_TERMINATOR_DIMENSION_ORIGIN 4
|
||||
#define C3D_TERMINATOR_FILLED_ARROW 5
|
||||
#define C3D_TERMINATOR_FILLED_BOX 6
|
||||
#define C3D_TERMINATOR_FILLED_DOT 7
|
||||
#define C3D_TERMINATOR_INTEGRAL_SYMBOL 8
|
||||
#define C3D_TERMINATOR_OPEN_ARROW 9
|
||||
#define C3D_TERMINATOR_SLASH 10
|
||||
#define C3D_TERMINATOR_UNFILLED_ARROW 11
|
||||
|
||||
|
||||
#define C3D_DIMENSION_GENERAL 0
|
||||
#define C3D_DIMENSION_LINEAR 1
|
||||
#define C3D_DIMENSION_ANGULAR 2
|
||||
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Curves
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Примитив трехмерного пространства (точка либо вектор).
|
||||
\en Spatial primitive (point or vector).\~
|
||||
\ingroup Data_Interface
|
||||
*/
|
||||
// ---
|
||||
struct ObPrimitive3D {
|
||||
double x, y, z;
|
||||
|
||||
ObPrimitive3D()
|
||||
: x( 0.0 ), y( 0.0 ), z( 0.0 )
|
||||
{}
|
||||
};
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// Инициализировать примитив
|
||||
// ---
|
||||
inline void SetObPrimitiveZero( ObPrimitive3D& ob ) {
|
||||
ob.x = ob.y = ob.z = 0.0;
|
||||
}
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// Инициализировать примитив
|
||||
// ---
|
||||
inline bool IsObPrimitiveZero( const ObPrimitive3D& ob ) {
|
||||
return (ob.x == 0.0) && (ob.y == 0.0) && (ob.z == 0.0);
|
||||
}
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Локальная система координат в трехмерном пространстве.
|
||||
\en Spatial placement.\~
|
||||
\ingroup Data_Interface
|
||||
*/
|
||||
// ---
|
||||
struct ObLocation3D {
|
||||
ObPrimitive3D origin, axisX, axisY, axisZ;
|
||||
|
||||
ObLocation3D()
|
||||
: origin(), axisX(), axisY(), axisZ()
|
||||
{}
|
||||
};
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Одномерный диапазон.
|
||||
\en One dimensional range.\~
|
||||
\ingroup Data_Interface
|
||||
*/
|
||||
// ---
|
||||
struct ObRange1D {
|
||||
double start, end;
|
||||
|
||||
ObRange1D()
|
||||
: start( 0.0 ), end( 0.0 )
|
||||
{}
|
||||
};
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Трехмерный отрезок.
|
||||
\en Spatial line segment.\~
|
||||
\ingroup Data_Interface
|
||||
*/
|
||||
// ---
|
||||
struct ObSegment3D {
|
||||
static const int CurveType = 1;
|
||||
ObRange1D domain;
|
||||
ObPrimitive3D start, end;
|
||||
|
||||
ObSegment3D()
|
||||
: domain(), start(), end()
|
||||
{}
|
||||
};
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Трехмерная полилиния.
|
||||
\en Spatial polyline.\~
|
||||
\ingroup Data_Interface
|
||||
*/
|
||||
// ---
|
||||
struct ObPolyline3D {
|
||||
static const int CurveType = 2;
|
||||
int pointsArrayId;
|
||||
|
||||
ObPolyline3D()
|
||||
: pointsArrayId( 0 )
|
||||
{}
|
||||
};
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Трехмерная дуга.
|
||||
\en Spatial arc.\~
|
||||
\ingroup Data_Interface
|
||||
*/
|
||||
// ---
|
||||
struct ObArc3D {
|
||||
static const int CurveType = 3;
|
||||
ObLocation3D location;
|
||||
double majorAxis, minorAxis;
|
||||
ObRange1D domain;
|
||||
|
||||
ObArc3D()
|
||||
: location(), majorAxis( 0.0 ), minorAxis( 0.0 ), domain()
|
||||
{}
|
||||
};
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Трехмерная парабола.
|
||||
\en Spatial parabola.\~
|
||||
\ingroup Data_Interface
|
||||
*/
|
||||
// ---
|
||||
struct ObParabola3D {
|
||||
static const int CurveType = 4;
|
||||
ObLocation3D location;
|
||||
double focalLength;
|
||||
ObRange1D domain;
|
||||
|
||||
ObParabola3D()
|
||||
: location(), focalLength( 0.0 ), domain()
|
||||
{}
|
||||
};
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Трехмерная дуга.
|
||||
\en Spatial arc.\~
|
||||
\ingroup Data_Interface
|
||||
*/
|
||||
// ---
|
||||
struct ObHyperbola3D {
|
||||
static const int CurveType = 5;
|
||||
ObLocation3D location;
|
||||
double majorSemiAxis, minorSemiAxis;
|
||||
ObRange1D domain;
|
||||
|
||||
ObHyperbola3D()
|
||||
: location(), majorSemiAxis( 0.0 ), minorSemiAxis( 0.0 ), domain()
|
||||
{}
|
||||
};
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Трехмерный сплайн.
|
||||
\en Spatial spline.\~
|
||||
\ingroup Data_Interface
|
||||
*/
|
||||
// ---
|
||||
struct ObSplineCurve3D {
|
||||
static const int CurveType = 6;
|
||||
int knotsId, vertcisId;
|
||||
int degree;
|
||||
int closed;
|
||||
|
||||
ObSplineCurve3D()
|
||||
: knotsId( 0 ), vertcisId( 0 ), degree( 0 ), closed( 0 )
|
||||
{}
|
||||
};
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Трехмерный NURBS.
|
||||
\en Spatial NURBS.\~
|
||||
\ingroup Data_Interface
|
||||
*/
|
||||
// ---
|
||||
struct ObNURBSCurve3D {
|
||||
static const int CurveType = 7;
|
||||
int knotsId, vertcisId, weightsId;
|
||||
int degree;
|
||||
C3D_PLUGIN_BOOL closed;
|
||||
ObRange1D domain;
|
||||
|
||||
ObNURBSCurve3D()
|
||||
: knotsId( 0 ), vertcisId( 0 ), weightsId( 0 ), degree( 0 ), closed( 0 ), domain()
|
||||
{}
|
||||
};
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Трехмерная составная кривая.
|
||||
\en Spatial composite curve.\~
|
||||
\ingroup Data_Interface
|
||||
*/
|
||||
// ---
|
||||
struct ObCompositeCurve3D {
|
||||
static const int CurveType = 8;
|
||||
int segmentsArrIndicis;
|
||||
|
||||
ObCompositeCurve3D()
|
||||
: segmentsArrIndicis( 0 )
|
||||
{}
|
||||
};
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Surfaces
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Плоскость.
|
||||
\en Plane.\~
|
||||
\ingroup Data_Interface
|
||||
*/
|
||||
// ---
|
||||
struct ObPlane {
|
||||
static const int SurfaceType = 1;
|
||||
ObLocation3D location;
|
||||
ObRange1D uDomain, vDomain;
|
||||
|
||||
ObPlane()
|
||||
: location(), uDomain(), vDomain()
|
||||
{}
|
||||
};
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Цилиндрическая поверхность.
|
||||
\en Cylinder surface.\~
|
||||
\ingroup Data_Interface
|
||||
*/
|
||||
// ---
|
||||
struct ObCylinder {
|
||||
static const int SurfaceType = 2;
|
||||
ObLocation3D location;
|
||||
double r, h;
|
||||
ObRange1D uDomain, vDomain;
|
||||
|
||||
ObCylinder()
|
||||
: location(), r( 0.0 ), h( 0.0 ), uDomain(), vDomain()
|
||||
{}
|
||||
};
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Коническая поверхность.
|
||||
\en Cone surface.\~
|
||||
\ingroup Data_Interface
|
||||
*/
|
||||
// ---
|
||||
struct ObCone {
|
||||
static const int SurfaceType = 3;
|
||||
ObLocation3D location;
|
||||
double r, h, halfAngle;
|
||||
ObRange1D uDomain, vDomain;
|
||||
|
||||
ObCone()
|
||||
: location(), r( 0.0 ), h( 0.0 ), halfAngle( 0.0 ), uDomain(), vDomain()
|
||||
{}
|
||||
};
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Сферическая поверхность.
|
||||
\en Sphere surface.\~
|
||||
\ingroup Data_Interface
|
||||
*/
|
||||
// ---
|
||||
struct ObSphere {
|
||||
static const int SurfaceType = 4;
|
||||
ObLocation3D location;
|
||||
double r;
|
||||
ObRange1D uDomain, vDomain;
|
||||
|
||||
ObSphere()
|
||||
: location(), r( 0.0 ), uDomain(), vDomain()
|
||||
{}
|
||||
};
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Тороидальная поверхность.
|
||||
\en Torus surface.\~
|
||||
\ingroup Data_Interface
|
||||
*/
|
||||
// ---
|
||||
struct ObTorus {
|
||||
static const int SurfaceType = 5;
|
||||
ObLocation3D location;
|
||||
double rMin, rMax;
|
||||
ObRange1D uDomain, vDomain;
|
||||
|
||||
ObTorus()
|
||||
: location(), rMin( 0.0 ), rMax( 0.0 ), uDomain(), vDomain()
|
||||
{}
|
||||
};
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Поверхность выдавливания.
|
||||
\en Extrusion surface.\~
|
||||
\ingroup Data_Interface
|
||||
*/
|
||||
// ---
|
||||
struct ObExtrusion {
|
||||
static const int SurfaceType = 6;
|
||||
int curve;
|
||||
ObPrimitive3D direction;
|
||||
|
||||
ObExtrusion()
|
||||
: curve( 0 ), direction()
|
||||
{}
|
||||
};
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Поверхность вращения.
|
||||
\en Revolution surface.\~
|
||||
\ingroup Data_Interface
|
||||
*/
|
||||
// ---
|
||||
struct ObRevolution {
|
||||
static const int SurfaceType = 7;
|
||||
int curveId;
|
||||
ObPrimitive3D axisOrigin, axisDirection;
|
||||
ObRange1D vRange;
|
||||
|
||||
ObRevolution()
|
||||
: curveId( 0 ), axisOrigin(), axisDirection(), vRange()
|
||||
{}
|
||||
};
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Линейчатая поверхность.
|
||||
\en Ruled surface.\~
|
||||
\ingroup Data_Interface
|
||||
*/
|
||||
// ---
|
||||
struct ObRuled {
|
||||
static const int SurfaceType = 8;
|
||||
int curve1, curve2;
|
||||
|
||||
ObRuled()
|
||||
: curve1( 0 ), curve2( 0 )
|
||||
{}
|
||||
};
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Сплайновая поверхность.
|
||||
\en Spline surface.\~
|
||||
\ingroup Data_Interface
|
||||
*/
|
||||
// ---
|
||||
struct ObSplineSurface {
|
||||
static const int SurfaceType = 9;
|
||||
int knotsUId, knotsVId, verticisListId;
|
||||
int degreeU, degreeV;
|
||||
int closedU, closedV;
|
||||
|
||||
ObSplineSurface()
|
||||
: knotsUId( 0 ), knotsVId( 0 ), verticisListId( 0 ), degreeU( 0 ), degreeV( 0 ), closedU( 0 ), closedV( 0 )
|
||||
{}
|
||||
};
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Сплайновая поверхность.
|
||||
\en Spline surface.\~
|
||||
\ingroup Data_Interface
|
||||
*/
|
||||
// ---
|
||||
struct ObNURBSSurface {
|
||||
static const int SurfaceType = 10;
|
||||
int knotsUId, knotsVId, verticisListListId, weightsListListId;
|
||||
int degreeU, degreeV;
|
||||
C3D_PLUGIN_BOOL closedU, closedV;
|
||||
|
||||
ObNURBSSurface()
|
||||
: knotsUId( 0 ), knotsVId( 0 ), verticisListListId( 0 ), weightsListListId( 0 ), degreeU( 0 ), degreeV( 0 ), closedU( 0 ), closedV( 0 )
|
||||
{}
|
||||
};
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Смещённая поверхность.
|
||||
\en Offset surface.\~
|
||||
\ingroup Data_Interface
|
||||
*/
|
||||
// ---
|
||||
struct ObOffsetSurface {
|
||||
static const int SurfaceType = 11;
|
||||
int baseSurface;
|
||||
double offset;
|
||||
|
||||
ObOffsetSurface()
|
||||
: baseSurface( 0 ), offset( 0.0 )
|
||||
{}
|
||||
};
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Цвет.
|
||||
\en Colour.\~
|
||||
\ingroup Data_Interface
|
||||
*/
|
||||
// ---
|
||||
struct ObColour {
|
||||
double red, green, blue;
|
||||
|
||||
ObColour()
|
||||
: red( 0.0 ), green( 0.0 ), blue( 0.0 )
|
||||
{}
|
||||
};
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Неопределённый компонент цвета.
|
||||
\en Undefined component of colour.\~
|
||||
\ingroup Data_Interface
|
||||
*/
|
||||
// ---
|
||||
const double ObUndefinedColourComponent = -1.0;
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Элемент аннотации.
|
||||
\en PMI item.\~
|
||||
\ingroup Data_Interface
|
||||
*/
|
||||
// ---
|
||||
struct ObPMI {
|
||||
ObLocation3D location;
|
||||
int visualArray;
|
||||
int textBlockIdArray;
|
||||
|
||||
ObPMI()
|
||||
: location(), visualArray( 0 ), textBlockIdArray( 0 )
|
||||
{}
|
||||
};
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Элемент текста.
|
||||
\en Text item.\~
|
||||
\ingroup Data_Interface
|
||||
*/
|
||||
// ---
|
||||
struct ObTextBlock {
|
||||
double originX, originY;
|
||||
double dirX, dirY;
|
||||
double extentX, extentY;
|
||||
|
||||
ObTextBlock()
|
||||
: originX( 0.0 ), originY( 0.0 ), dirX( 0.0 ), dirY( 0.0 ), extentX( 0.0 ), extentY( 0.0 )
|
||||
{}
|
||||
};
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Размер.
|
||||
\en Dimension.\~
|
||||
\ingroup Data_Interface
|
||||
*/
|
||||
// ---
|
||||
struct ObDimension {
|
||||
double value;
|
||||
double deviationMin, deviationMax;
|
||||
int type;
|
||||
int calloutArrId;
|
||||
|
||||
ObDimension()
|
||||
: value( 0.0 ), deviationMin( 0.0 ), deviationMax( 0.0 ), type( 0 ), calloutArrId( 0 )
|
||||
{}
|
||||
};
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Особая линия.
|
||||
\en Special line.\~
|
||||
\ingroup Data_Interface
|
||||
*/
|
||||
// ---
|
||||
struct ObPMICallout {
|
||||
int type;
|
||||
//int geometry;
|
||||
ObPrimitive3D head, tail;
|
||||
bool isArc;
|
||||
ObPrimitive3D center;
|
||||
int terminatorHead;
|
||||
int terminatorTail;
|
||||
|
||||
ObPMICallout()
|
||||
: type( 0 ), head(), tail(), isArc( false ), center(), terminatorHead( 0 ), terminatorTail( 0 )
|
||||
{}
|
||||
};
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Model source plugin. Basic interface.
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Источник данных модели.
|
||||
\en Model source.\~
|
||||
\ingroup Data_Interface
|
||||
*/
|
||||
// ---
|
||||
struct ObModelSource {
|
||||
|
||||
virtual ~ObModelSource() {};
|
||||
|
||||
virtual C3D_PLUGIN_BOOL LastOperationSuccess() = 0;
|
||||
|
||||
// Операции с файлом
|
||||
virtual C3D_PLUGIN_BOOL IsPathWCS() = 0;
|
||||
virtual C3D_PLUGIN_BOOL Open( const char* ) = 0;
|
||||
virtual C3D_PLUGIN_BOOL Open( const wchar_t* ) = 0;
|
||||
virtual void Close() = 0;
|
||||
|
||||
// Значение неопределённого идентификатора.
|
||||
virtual int UndefinedId() = 0;
|
||||
|
||||
// Управление трассировкой событий
|
||||
virtual void EnableLog() = 0;
|
||||
virtual void DisableLog() = 0;
|
||||
|
||||
// Контейнеры
|
||||
|
||||
virtual unsigned int ArrayCount ( int arrayId ) = 0;
|
||||
virtual int ArrayIdentifier ( int arrayId, unsigned int index ) = 0;
|
||||
virtual double ArrayFloat ( int arrayId, unsigned int index ) = 0;
|
||||
virtual ObPrimitive3D ArrayPrimitive ( int arrayId, unsigned int index ) = 0;
|
||||
|
||||
virtual ObColour ItemColour( int itemId ) = 0;
|
||||
|
||||
// Модель
|
||||
virtual int ModelPart() = 0;
|
||||
|
||||
virtual unsigned int PartInstanceCount( int partId ) = 0;
|
||||
virtual int PartInstance( int partId, unsigned int inst ) = 0;
|
||||
|
||||
virtual const wchar_t* WPartName( int partId ) = 0;
|
||||
virtual const wchar_t* WPartLabel( int partId ) = 0;
|
||||
virtual const wchar_t* WPartAuthor( int partId ) = 0;
|
||||
virtual const wchar_t* WPartOrganization( int partId ) = 0;
|
||||
virtual const wchar_t* WPartDescription( int partId ) = 0;
|
||||
|
||||
virtual const char* CPartName( int partId ) = 0;
|
||||
virtual const char* CPartLabel( int partId ) = 0;
|
||||
virtual const char* CPartAuthor( int partId ) = 0;
|
||||
virtual const char* CPartOrganization( int partId ) = 0;
|
||||
virtual const char* CPartDescription( int partId ) = 0;
|
||||
|
||||
virtual int InstancePart( int instanceId ) = 0;
|
||||
virtual ObLocation3D InstanceLocation( int instanceId ) = 0;
|
||||
|
||||
virtual unsigned int SolidsCount( int partId ) = 0;
|
||||
|
||||
// Топология граничного представления
|
||||
virtual int Solid( int partId, unsigned int solid ) = 0;
|
||||
virtual ObLocation3D SolidLocation( int solidId ) = 0;
|
||||
|
||||
virtual unsigned int SpaceCurvesCount( int partId ) = 0;
|
||||
virtual int SpaceCurve( int partId, unsigned int curve ) = 0;
|
||||
|
||||
virtual unsigned int ShellsCount( int solidId ) = 0;
|
||||
virtual int Shell( int solid, unsigned int shell ) = 0;
|
||||
|
||||
virtual C3D_PLUGIN_BOOL ShellClosed( int shellId ) = 0;
|
||||
virtual unsigned int ShellFacesCount( int shellId ) = 0;
|
||||
virtual int ShellFace( int shellId, unsigned int face ) = 0;
|
||||
|
||||
virtual unsigned int FaceBoundsCount( int faceId ) = 0;
|
||||
virtual int FaceBound( int faceId, unsigned int bound ) = 0;
|
||||
virtual C3D_PLUGIN_BOOL FaceSurfaceSameOriented( int faceId ) = 0;
|
||||
|
||||
virtual int BoundType( int boundId ) = 0;
|
||||
virtual unsigned int BoundCoedgesCount( int boundId ) = 0;
|
||||
virtual int BoundCoedge( int boundId, unsigned int coedge ) = 0;
|
||||
|
||||
virtual int CoedgeEdge( int coedgeId ) = 0;
|
||||
virtual C3D_PLUGIN_BOOL CoedgeEdgeSameOriented( int coedgeId ) = 0;
|
||||
|
||||
virtual int EdgeStartVertex( int edgeId ) = 0;
|
||||
virtual int EdgeEndVertex( int edgeId ) = 0;
|
||||
|
||||
// Методы получения геометрии
|
||||
|
||||
virtual int FaceGeometry( int faceId ) = 0;
|
||||
virtual int EdgeGeometry( int edgeId ) = 0;
|
||||
virtual ObPrimitive3D VertexGeometry( int vertexId ) = 0;
|
||||
|
||||
// Типы геометрических объектов
|
||||
|
||||
virtual int SurfaceType( int surfaceId ) = 0;
|
||||
virtual int Curve3DType( int curveId ) = 0;
|
||||
|
||||
// Данные геометрии
|
||||
|
||||
// Пространственные кривые
|
||||
|
||||
virtual ObSegment3D LineSegment3D( int curveId ) = 0;
|
||||
virtual ObPolyline3D Polyline3D( int curveId ) = 0;
|
||||
virtual ObArc3D Arc3D( int curveId ) = 0;
|
||||
virtual ObParabola3D Parabola3D( int curveId ) = 0;
|
||||
virtual ObHyperbola3D Hyperbola3D( int curveId ) = 0;
|
||||
virtual ObSplineCurve3D SplineCurve3D( int curveId ) = 0;
|
||||
virtual ObNURBSCurve3D NURBSCurve3D( int curveId ) = 0;
|
||||
virtual ObCompositeCurve3D CompositeCurve3D( int curveId ) = 0;
|
||||
|
||||
virtual unsigned int CompositeCurveSegmentsCount( int curveId ) = 0;
|
||||
virtual int CompositeCurveSegment( int curveId, unsigned int index ) = 0;
|
||||
virtual C3D_PLUGIN_BOOL CompositeCurveSegmentsSameOriented( int curveId, unsigned int index ) = 0;
|
||||
|
||||
// Поверхности
|
||||
|
||||
virtual ObPlane Plane( int surfaceId ) = 0;
|
||||
virtual ObCylinder Cylinder( int surfaceId ) = 0;
|
||||
virtual ObCone Cone( int surfaceId ) = 0;
|
||||
virtual ObSphere Sphere( int surfaceId ) = 0;
|
||||
virtual ObTorus Torus( int surfaceId ) = 0;
|
||||
virtual ObExtrusion Extrusion( int surfaceId ) = 0;
|
||||
virtual ObRevolution Revolution( int surfaceId ) = 0;
|
||||
virtual ObRuled Ruled( int surfaceId ) = 0;
|
||||
virtual ObSplineSurface SplineSurface( int surfaceId ) = 0;
|
||||
virtual ObNURBSSurface NURBSSurface( int surfaceId ) = 0;
|
||||
virtual ObOffsetSurface OffsetSurface( int surfaceId ) = 0;
|
||||
|
||||
virtual unsigned int PartPMICount( int partIdId ) = 0;
|
||||
virtual int PartPMI( int partId, unsigned int index ) = 0;
|
||||
virtual ObPMI PMI( int pmiId ) = 0;
|
||||
|
||||
virtual bool IsDimension( int pmiId ) = 0;
|
||||
virtual bool Dimension( int pmiId, ObDimension& dim ) = 0;
|
||||
|
||||
virtual ObPMICallout PMICallout( int calloutId ) = 0;
|
||||
|
||||
virtual unsigned int PMITextCount( int textId ) = 0;
|
||||
virtual int PMIText( int textId, unsigned int index ) = 0;
|
||||
|
||||
virtual int PMITextType( int textBlockId ) = 0;
|
||||
virtual ObTextBlock PMITextLocation( int textBlockId ) = 0;
|
||||
virtual int PMITextSymbol( int textBlockId ) = 0;
|
||||
virtual const wchar_t* WPMIText( int textId ) = 0;
|
||||
virtual const char* CPMIText( int textBlockId ) = 0;
|
||||
virtual unsigned int CompositeTextCount( int textId ) = 0;
|
||||
virtual int CompositeText( int textId, unsigned int index ) = 0;
|
||||
|
||||
virtual unsigned int PMICalloutCount( int pmiId ) = 0;
|
||||
virtual ObPMICallout PMICallout( int pmiId, unsigned int index ) = 0;
|
||||
|
||||
};
|
||||
|
||||
|
||||
#endif // __CONV_PUGIN_IMPORT_H
|
||||
|
||||
+150
-150
@@ -1,151 +1,151 @@
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/**
|
||||
\file
|
||||
\brief \ru Перечисления, используемые при импорте и экспорте.
|
||||
\en Enumerations for import/export operations.\~
|
||||
\details \ru Определены перечисления, определяющие результат конвертирования,
|
||||
разрешение на чтение и запись различных объектов и передаваемых черезх конвертер строк.
|
||||
\en Converting result, objects and properties filters, special strings
|
||||
of enumerations are defined.\~
|
||||
*/
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef __CONV_ERROR_RESULT_H
|
||||
#define __CONV_ERROR_RESULT_H
|
||||
|
||||
|
||||
#include <mb_enum.h>
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Представление текста при экспорте.
|
||||
\en Representation of exported text.\~
|
||||
\ingroup Data_Exchange
|
||||
*/
|
||||
// ---
|
||||
enum eTextForm {
|
||||
exf_TextOnly, ///< \ru Только текст. \en Text only.
|
||||
exf_GeometryOnly, ///< \ru Только геометрия. \en Geometry only.
|
||||
};
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Предопределённые ключи атрибутов для передачи контрольных параметров.
|
||||
\en Predefined key of attributes used for validation properties' exchange.\~
|
||||
\ingroup Data_Interface
|
||||
*/
|
||||
// ---
|
||||
/// \ru Объём. \en Volume.
|
||||
#define C3D_CAD_VALIDATION_PROPERTY_VOLUME c3d::c3dStr_ValidationPropertyVolumeExchange
|
||||
/// \ru Площать поверхости. \en Surface area.
|
||||
#define C3D_CAD_VALIDATION_PROPERTY_AREA c3d::c3dStr_ValidationPropertySurfaceAreaExchange
|
||||
/// \ru Масса. \en Mass.
|
||||
#define C3D_CAD_VALIDATION_PROPERTY_MASS c3d::c3dStr_ValidationPropertyMassExchange
|
||||
/// \ru Идентификатор элемента. \en Item Identifier.
|
||||
#define C3D_CAD_ITEM_IDENTIFIER c3d::c3dStr_ItemIdentifierExchange
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Типы линий, передаваемых через конвертер.
|
||||
\en Types of lines passed via converter. \~
|
||||
\ingroup Data_Interface
|
||||
*/
|
||||
// ---
|
||||
enum MbeLineFontPattern {
|
||||
lfp_BEGIN = 0, ///< \ru Для удобства перебора. \en For the convenient search.
|
||||
lfp_STEPcontinuous, ///< \ru Непрерывная в конвертерах STEP и IGES. \en Continuous line in STEP and IGES (Solid) converters.
|
||||
lfp_STEPchain, ///< \ru Штрих-пунктирная в конвертерах STEP и IGES. \en Chain line( dash-dotted) in STEP and IGES converters.
|
||||
lfp_STEPchainDoubleDash, ///< \ru Штриховая с двумя пунктирами в конвертерах STEP и IGES. \en Dash-double-dot line in STEP and IGES (Phantom) converter.
|
||||
lfp_STEPdashed, ///< \ru Штриховая в конвертерах STEP и IGES. \en Dash line in STEP and IGES converters.
|
||||
lfp_STEPdotted, ///< \ru Пунктирная в конвертерах STEP и IGES. \en Dotted line in STEP and IGES converters.
|
||||
lfp_END ///< \ru Для удобства перебора. \en For search
|
||||
};
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Отображение точек, передаваемых через конвертер.
|
||||
\en Representation of points passed via converter. \~
|
||||
\ingroup Data_Interface
|
||||
*/
|
||||
// ---
|
||||
enum MbeDotMarkerSymbol {
|
||||
dms_BEGIN = 0, ///< \ru Для удобства перебора. \en For the convenient search.
|
||||
dms_STEPdot, ///< \ru Точка. \en A point.
|
||||
dms_STEPx, ///< \ru Косой крест. \en x - cross.
|
||||
dms_STEPplus, ///< \ru Прямой крест. \en Plus.
|
||||
dms_STEPasterisk, ///< \ru Звёздочка. \en Asterisk.
|
||||
dms_STEPring, ///< \ru Кольцо. \en Ring.
|
||||
dms_STEPsquare, ///< \ru Квадрат. \en Square.
|
||||
dms_STEPtriangle, ///< \ru Треугольник. \en Triangle.
|
||||
dms_END ///< \ru Для удобства перебора. \en For the convenient search.
|
||||
};
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Ключи строк, соответствующих названию специальных атрибутов.
|
||||
\en Keys of the strings, which mark special attributes.\~
|
||||
\ingroup Data_Interface
|
||||
*/
|
||||
// ---
|
||||
enum ePromtAttributeKey {
|
||||
pac_GConverterInternalIsDummy, ///< \ru Является ли элемент пустышкой.\~
|
||||
pac_GeneralIsAssembly, ///< \ru Является ли элемент сборкой. \en Is item assembly.\~
|
||||
pac_GeneralFileName, ///< \ru Имя файла. \en File name.\~
|
||||
pac_STEPHeader, ///< \ru Заголовок STEP. \en STEP header.\~
|
||||
pac_STEPProduct, ///< \ru Изделие STEP. \en STEP product.\~
|
||||
pac_STEPPersonOrganization, ///< \ru Лицо и организация STEP. \en STEP person and organization.\~
|
||||
pac_STEPAssignedRole ///< \ru Назначенная роль STEP. \en The role, assigned to the person.\~
|
||||
};
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Идентификаторы сообщений индикатора прогресса выполнения конвертации данных.
|
||||
\en Identifiers of the execution progress indicator messages converters data exchange \~
|
||||
\ingroup Data_Exchange
|
||||
*/
|
||||
//---
|
||||
enum MbeProgBarId_Converters {
|
||||
pbarId_Cnv_Beg = pbarId_PointsSurface_End + 1,
|
||||
|
||||
pbarId_Cnv_Parse_Data, // \ru Синтаксический анализ... \en Syntactic analysis...
|
||||
pbarId_Cnv_Create_Objects, // \ru Создание объектов... \en Creation of objects...
|
||||
pbarId_Cnv_Process_Surfaces, // \ru Обработка поверхностей... \en Surfaces processing...
|
||||
pbarId_Cnv_Process_Annotation,// \ru Обработка аннотации... \en Annotation processing...
|
||||
pbarId_Cnv_Create_Model, // \ru Создание модели... \en Creation of model...
|
||||
pbarId_Cnv_Write_Model, // \ru Запись модели... \en Writing of model...
|
||||
|
||||
pbarId_Cnv_End,
|
||||
};
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Идентификаторы сообщений индикатора прогресса выполнения триангуляции при выполнении конвертации данных.
|
||||
\en Identifiers of the execution progress indicator messages triangulation. \~
|
||||
\ingroup Data_Exchange
|
||||
*/
|
||||
//---
|
||||
enum MbeProgBarId_Triangulation {
|
||||
pbarId_Triangulation_Beg = pbarId_Cnv_End + 1,
|
||||
|
||||
pbarId_Calc_Triangulation, // \ru Расчет триангуляции \en Calculating of triangulation
|
||||
|
||||
pbarId_Triangulation_End,
|
||||
};
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Идентификаторы сообщений индикатора прогресса выполнения расчёта
|
||||
масс-инерционные характеристики детали или сборки при выполнении конвертации данных.
|
||||
\en Identifiers of the execution progress indicator messages of mass-inertial properties of assembly or a detail. \~
|
||||
\ingroup Data_Exchange
|
||||
*/
|
||||
//---
|
||||
enum MbeProgBarId_MassInertiaProperties {
|
||||
pbarId_MassInertiaProperties_Beg = pbarId_Triangulation_End + 1,
|
||||
|
||||
pbarId_Calc_MassInertiaProperties, // \ru Расчет масс-инерционных характеристик \en Mass-inertial properties calculation
|
||||
|
||||
pbarId_MassInertiaProperties_End,
|
||||
};
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/**
|
||||
\file
|
||||
\brief \ru Перечисления, используемые при импорте и экспорте.
|
||||
\en Enumerations for import/export operations.\~
|
||||
\details \ru Определены перечисления, определяющие результат конвертирования,
|
||||
разрешение на чтение и запись различных объектов и передаваемых черезх конвертер строк.
|
||||
\en Converting result, objects and properties filters, special strings
|
||||
of enumerations are defined.\~
|
||||
*/
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef __CONV_ERROR_RESULT_H
|
||||
#define __CONV_ERROR_RESULT_H
|
||||
|
||||
|
||||
#include <mb_enum.h>
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Представление текста при экспорте.
|
||||
\en Representation of exported text.\~
|
||||
\ingroup Data_Exchange
|
||||
*/
|
||||
// ---
|
||||
enum eTextForm {
|
||||
exf_TextOnly, ///< \ru Только текст. \en Text only.
|
||||
exf_GeometryOnly, ///< \ru Только геометрия. \en Geometry only.
|
||||
};
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Предопределённые ключи атрибутов для передачи контрольных параметров.
|
||||
\en Predefined key of attributes used for validation properties' exchange.\~
|
||||
\ingroup Data_Interface
|
||||
*/
|
||||
// ---
|
||||
/// \ru Объём. \en Volume.
|
||||
#define C3D_CAD_VALIDATION_PROPERTY_VOLUME c3d::c3dStr_ValidationPropertyVolumeExchange
|
||||
/// \ru Площать поверхости. \en Surface area.
|
||||
#define C3D_CAD_VALIDATION_PROPERTY_AREA c3d::c3dStr_ValidationPropertySurfaceAreaExchange
|
||||
/// \ru Масса. \en Mass.
|
||||
#define C3D_CAD_VALIDATION_PROPERTY_MASS c3d::c3dStr_ValidationPropertyMassExchange
|
||||
/// \ru Идентификатор элемента. \en Item Identifier.
|
||||
#define C3D_CAD_ITEM_IDENTIFIER c3d::c3dStr_ItemIdentifierExchange
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Типы линий, передаваемых через конвертер.
|
||||
\en Types of lines passed via converter. \~
|
||||
\ingroup Data_Interface
|
||||
*/
|
||||
// ---
|
||||
enum MbeLineFontPattern {
|
||||
lfp_BEGIN = 0, ///< \ru Для удобства перебора. \en For the convenient search.
|
||||
lfp_STEPcontinuous, ///< \ru Непрерывная в конвертерах STEP и IGES. \en Continuous line in STEP and IGES (Solid) converters.
|
||||
lfp_STEPchain, ///< \ru Штрих-пунктирная в конвертерах STEP и IGES. \en Chain line( dash-dotted) in STEP and IGES converters.
|
||||
lfp_STEPchainDoubleDash, ///< \ru Штриховая с двумя пунктирами в конвертерах STEP и IGES. \en Dash-double-dot line in STEP and IGES (Phantom) converter.
|
||||
lfp_STEPdashed, ///< \ru Штриховая в конвертерах STEP и IGES. \en Dash line in STEP and IGES converters.
|
||||
lfp_STEPdotted, ///< \ru Пунктирная в конвертерах STEP и IGES. \en Dotted line in STEP and IGES converters.
|
||||
lfp_END ///< \ru Для удобства перебора. \en For search
|
||||
};
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Отображение точек, передаваемых через конвертер.
|
||||
\en Representation of points passed via converter. \~
|
||||
\ingroup Data_Interface
|
||||
*/
|
||||
// ---
|
||||
enum MbeDotMarkerSymbol {
|
||||
dms_BEGIN = 0, ///< \ru Для удобства перебора. \en For the convenient search.
|
||||
dms_STEPdot, ///< \ru Точка. \en A point.
|
||||
dms_STEPx, ///< \ru Косой крест. \en x - cross.
|
||||
dms_STEPplus, ///< \ru Прямой крест. \en Plus.
|
||||
dms_STEPasterisk, ///< \ru Звёздочка. \en Asterisk.
|
||||
dms_STEPring, ///< \ru Кольцо. \en Ring.
|
||||
dms_STEPsquare, ///< \ru Квадрат. \en Square.
|
||||
dms_STEPtriangle, ///< \ru Треугольник. \en Triangle.
|
||||
dms_END ///< \ru Для удобства перебора. \en For the convenient search.
|
||||
};
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Ключи строк, соответствующих названию специальных атрибутов.
|
||||
\en Keys of the strings, which mark special attributes.\~
|
||||
\ingroup Data_Interface
|
||||
*/
|
||||
// ---
|
||||
enum ePromtAttributeKey {
|
||||
pac_GConverterInternalIsDummy, ///< \ru Является ли элемент пустышкой.\~
|
||||
pac_GeneralIsAssembly, ///< \ru Является ли элемент сборкой. \en Is item assembly.\~
|
||||
pac_GeneralFileName, ///< \ru Имя файла. \en File name.\~
|
||||
pac_STEPHeader, ///< \ru Заголовок STEP. \en STEP header.\~
|
||||
pac_STEPProduct, ///< \ru Изделие STEP. \en STEP product.\~
|
||||
pac_STEPPersonOrganization, ///< \ru Лицо и организация STEP. \en STEP person and organization.\~
|
||||
pac_STEPAssignedRole ///< \ru Назначенная роль STEP. \en The role, assigned to the person.\~
|
||||
};
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Идентификаторы сообщений индикатора прогресса выполнения конвертации данных.
|
||||
\en Identifiers of the execution progress indicator messages converters data exchange \~
|
||||
\ingroup Data_Exchange
|
||||
*/
|
||||
//---
|
||||
enum MbeProgBarId_Converters {
|
||||
pbarId_Cnv_Beg = pbarId_PointsSurface_End + 1,
|
||||
|
||||
pbarId_Cnv_Parse_Data, // \ru Синтаксический анализ... \en Syntactic analysis...
|
||||
pbarId_Cnv_Create_Objects, // \ru Создание объектов... \en Creation of objects...
|
||||
pbarId_Cnv_Process_Surfaces, // \ru Обработка поверхностей... \en Surfaces processing...
|
||||
pbarId_Cnv_Process_Annotation,// \ru Обработка аннотации... \en Annotation processing...
|
||||
pbarId_Cnv_Create_Model, // \ru Создание модели... \en Creation of model...
|
||||
pbarId_Cnv_Write_Model, // \ru Запись модели... \en Writing of model...
|
||||
|
||||
pbarId_Cnv_End,
|
||||
};
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Идентификаторы сообщений индикатора прогресса выполнения триангуляции при выполнении конвертации данных.
|
||||
\en Identifiers of the execution progress indicator messages triangulation. \~
|
||||
\ingroup Data_Exchange
|
||||
*/
|
||||
//---
|
||||
enum MbeProgBarId_Triangulation {
|
||||
pbarId_Triangulation_Beg = pbarId_Cnv_End + 1,
|
||||
|
||||
pbarId_Calc_Triangulation, // \ru Расчет триангуляции \en Calculating of triangulation
|
||||
|
||||
pbarId_Triangulation_End,
|
||||
};
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Идентификаторы сообщений индикатора прогресса выполнения расчёта
|
||||
масс-инерционные характеристики детали или сборки при выполнении конвертации данных.
|
||||
\en Identifiers of the execution progress indicator messages of mass-inertial properties of assembly or a detail. \~
|
||||
\ingroup Data_Exchange
|
||||
*/
|
||||
//---
|
||||
enum MbeProgBarId_MassInertiaProperties {
|
||||
pbarId_MassInertiaProperties_Beg = pbarId_Triangulation_End + 1,
|
||||
|
||||
pbarId_Calc_MassInertiaProperties, // \ru Расчет масс-инерционных характеристик \en Mass-inertial properties calculation
|
||||
|
||||
pbarId_MassInertiaProperties_End,
|
||||
};
|
||||
|
||||
|
||||
#endif // __CONV_ERROR_RESULT_H
|
||||
@@ -1,35 +1,35 @@
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/**
|
||||
\file
|
||||
\brief \ru Интерфейс запроса масштаба. Интерфейс запроса сшивки.
|
||||
\en Interface of scale request. Interface of stitching request. \~
|
||||
|
||||
*/
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef __CONV_REQUESTOR_H
|
||||
#define __CONV_REQUESTOR_H
|
||||
|
||||
|
||||
#include <reference_item.h>
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/// \ru Интерфейс запроса масштаба. \en Interface of scale request.
|
||||
// ---
|
||||
struct IScaleRequestor : public MbRefItem
|
||||
{
|
||||
virtual double ScaleRequest() = 0;
|
||||
};
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/// \ru Интерфейс запроса сшивки. \en Interface of stitching request.
|
||||
// ---
|
||||
struct IStitchRequestor : public MbRefItem
|
||||
{
|
||||
virtual bool StitchRequest() = 0;
|
||||
};
|
||||
|
||||
|
||||
#endif // __CONV_REQUESTOR_H
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/**
|
||||
\file
|
||||
\brief \ru Интерфейс запроса масштаба. Интерфейс запроса сшивки.
|
||||
\en Interface of scale request. Interface of stitching request. \~
|
||||
|
||||
*/
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef __CONV_REQUESTOR_H
|
||||
#define __CONV_REQUESTOR_H
|
||||
|
||||
|
||||
#include <reference_item.h>
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/// \ru Интерфейс запроса масштаба. \en Interface of scale request.
|
||||
// ---
|
||||
struct IScaleRequestor : public MbRefItem
|
||||
{
|
||||
virtual double ScaleRequest() = 0;
|
||||
};
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/// \ru Интерфейс запроса сшивки. \en Interface of stitching request.
|
||||
// ---
|
||||
struct IStitchRequestor : public MbRefItem
|
||||
{
|
||||
virtual bool StitchRequest() = 0;
|
||||
};
|
||||
|
||||
|
||||
#endif // __CONV_REQUESTOR_H
|
||||
|
||||
@@ -1,90 +1,90 @@
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/**
|
||||
\file
|
||||
\brief Преобразователь сетки к форме, сохраняющей связи граней и полигонов.
|
||||
*/
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef __CONV_TOPO_MESH_H
|
||||
#define __CONV_TOPO_MESH_H
|
||||
|
||||
#include <mb_cart_point3d.h>
|
||||
|
||||
#include <reference_item.h>
|
||||
#include <templ_sptr.h>
|
||||
|
||||
#include <vector>
|
||||
#include <list>
|
||||
|
||||
class MbMesh;
|
||||
|
||||
namespace JTC {
|
||||
|
||||
class TopoMesh;
|
||||
class TopoGrid;
|
||||
class TopoLoop;
|
||||
class TopoVertex;
|
||||
class MeshVertex;
|
||||
class MeshPolygon;
|
||||
|
||||
typedef SPtr<TopoMesh> TopoMeshPtr;
|
||||
typedef SPtr<TopoGrid> TopoGridPtr;
|
||||
typedef SPtr<TopoLoop> TopoLoopPtr;
|
||||
typedef SPtr<TopoVertex> TopoVertexPtr;
|
||||
typedef SPtr<MeshVertex> MeshVertexPtr;
|
||||
typedef SPtr<MeshPolygon> MeshPolygonPtr;
|
||||
|
||||
typedef std::vector<TopoGrid*> RawTopoGridVector;
|
||||
typedef std::vector<TopoGridPtr> TopoGridVector;
|
||||
typedef std::vector<TopoLoopPtr> TopoLoopVector;
|
||||
typedef std::vector<TopoVertexPtr> TopoVertexVector;
|
||||
typedef std::vector<MeshVertexPtr> MeshVertexVector;
|
||||
typedef std::vector<MeshPolygonPtr> MeshPolygonVector;
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// Сетка с топологической информацией
|
||||
// ---
|
||||
class CONV_CLASS TopoMesh : public MbRefItem {
|
||||
SPtr<const MbMesh> mesh;
|
||||
TopoGridVector grids;
|
||||
MeshVertexVector ownPoints;
|
||||
MeshPolygonVector ownFacePolygons;
|
||||
std::map< size_t, std::vector<size_t> > degeneratedTriangles;
|
||||
std::vector<MbCartPoint3D> boundaryPoints;
|
||||
double metricTolerance;
|
||||
public:
|
||||
TopoMesh(); // Конструктор
|
||||
|
||||
virtual ~TopoMesh(); //Деструктор
|
||||
|
||||
bool Init( const MbMesh& mesh, bool enableDiagnostics = false ); // Инициализировать
|
||||
|
||||
const MbMesh* GetMesh() const; // Получить сетку
|
||||
|
||||
size_t MeshPolygonsCount() const; // Число полигонов
|
||||
|
||||
MeshPolygonPtr Polygon( size_t index ) const; // Получить полигон
|
||||
|
||||
size_t MeshVerticisCount() const; // Число вершин
|
||||
|
||||
MeshVertexPtr Vertex( size_t index ) const; // Получить вершину
|
||||
|
||||
std::map< size_t, std::vector<size_t> > GetDegeneratedTriangles() const; // Получить вырожденные треуголники
|
||||
|
||||
std::vector<MbCartPoint3D> GetBoundaryPoints() const; // Получить граничные точки сетки
|
||||
|
||||
void Reset(); // Сбросить все данные
|
||||
|
||||
size_t NextBoundaryVertex( size_t indexBoundaryVertex, const std::vector<size_t>& allBoundary ) const; // Получить следующую в цепочке граничную вершину.
|
||||
|
||||
bool InitVoidBoundFrom( std::vector<size_t>& freeBoundaryVerticis ); // Сформировать внешнюю границу начиная с указанной вершины.
|
||||
|
||||
double MetricTolerance() const; // Получить точность задания расстояния.
|
||||
|
||||
OBVIOUS_PRIVATE_COPY( TopoMesh )
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
#endif // !__CONV_TOPO_MESH_H
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/**
|
||||
\file
|
||||
\brief Преобразователь сетки к форме, сохраняющей связи граней и полигонов.
|
||||
*/
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef __CONV_TOPO_MESH_H
|
||||
#define __CONV_TOPO_MESH_H
|
||||
|
||||
#include <mb_cart_point3d.h>
|
||||
|
||||
#include <reference_item.h>
|
||||
#include <templ_sptr.h>
|
||||
|
||||
#include <vector>
|
||||
#include <list>
|
||||
|
||||
class MbMesh;
|
||||
|
||||
namespace JTC {
|
||||
|
||||
class TopoMesh;
|
||||
class TopoGrid;
|
||||
class TopoLoop;
|
||||
class TopoVertex;
|
||||
class MeshVertex;
|
||||
class MeshPolygon;
|
||||
|
||||
typedef SPtr<TopoMesh> TopoMeshPtr;
|
||||
typedef SPtr<TopoGrid> TopoGridPtr;
|
||||
typedef SPtr<TopoLoop> TopoLoopPtr;
|
||||
typedef SPtr<TopoVertex> TopoVertexPtr;
|
||||
typedef SPtr<MeshVertex> MeshVertexPtr;
|
||||
typedef SPtr<MeshPolygon> MeshPolygonPtr;
|
||||
|
||||
typedef std::vector<TopoGrid*> RawTopoGridVector;
|
||||
typedef std::vector<TopoGridPtr> TopoGridVector;
|
||||
typedef std::vector<TopoLoopPtr> TopoLoopVector;
|
||||
typedef std::vector<TopoVertexPtr> TopoVertexVector;
|
||||
typedef std::vector<MeshVertexPtr> MeshVertexVector;
|
||||
typedef std::vector<MeshPolygonPtr> MeshPolygonVector;
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// Сетка с топологической информацией
|
||||
// ---
|
||||
class CONV_CLASS TopoMesh : public MbRefItem {
|
||||
SPtr<const MbMesh> mesh;
|
||||
TopoGridVector grids;
|
||||
MeshVertexVector ownPoints;
|
||||
MeshPolygonVector ownFacePolygons;
|
||||
std::map< size_t, std::vector<size_t> > degeneratedTriangles;
|
||||
std::vector<MbCartPoint3D> boundaryPoints;
|
||||
double metricTolerance;
|
||||
public:
|
||||
TopoMesh(); // Конструктор
|
||||
|
||||
virtual ~TopoMesh(); //Деструктор
|
||||
|
||||
bool Init( const MbMesh& mesh, bool enableDiagnostics = false ); // Инициализировать
|
||||
|
||||
const MbMesh* GetMesh() const; // Получить сетку
|
||||
|
||||
size_t MeshPolygonsCount() const; // Число полигонов
|
||||
|
||||
MeshPolygonPtr Polygon( size_t index ) const; // Получить полигон
|
||||
|
||||
size_t MeshVerticisCount() const; // Число вершин
|
||||
|
||||
MeshVertexPtr Vertex( size_t index ) const; // Получить вершину
|
||||
|
||||
std::map< size_t, std::vector<size_t> > GetDegeneratedTriangles() const; // Получить вырожденные треуголники
|
||||
|
||||
std::vector<MbCartPoint3D> GetBoundaryPoints() const; // Получить граничные точки сетки
|
||||
|
||||
void Reset(); // Сбросить все данные
|
||||
|
||||
size_t NextBoundaryVertex( size_t indexBoundaryVertex, const std::vector<size_t>& allBoundary ) const; // Получить следующую в цепочке граничную вершину.
|
||||
|
||||
bool InitVoidBoundFrom( std::vector<size_t>& freeBoundaryVerticis ); // Сформировать внешнюю границу начиная с указанной вершины.
|
||||
|
||||
double MetricTolerance() const; // Получить точность задания расстояния.
|
||||
|
||||
OBVIOUS_PRIVATE_COPY( TopoMesh )
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
#endif // !__CONV_TOPO_MESH_H
|
||||
|
||||
@@ -70,20 +70,20 @@ public:
|
||||
~MbAttributeProvider();
|
||||
|
||||
virtual MbeCreatorType IsA() const; // \ru Выдать тип элемента. \en Get an element type.
|
||||
virtual void Transform( const MbMatrix3D & matr, MbRegTransform * = NULL ); // \ru Преобразовать элемент согласно матрице. \en Transform element according to the matrix.
|
||||
virtual void Move( const MbVector3D & to, MbRegTransform * = NULL ); // \ru Сдвинуть вдоль вектора. \en Move along a vector.
|
||||
virtual void Rotate( const MbAxis3D & axis, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси. \en Rotate about an axis.
|
||||
virtual void Transform( const MbMatrix3D & matr, MbRegTransform * = c3d_null ); // \ru Преобразовать элемент согласно матрице. \en Transform element according to the matrix.
|
||||
virtual void Move( const MbVector3D & to, MbRegTransform * = c3d_null ); // \ru Сдвинуть вдоль вектора. \en Move along a vector.
|
||||
virtual void Rotate( const MbAxis3D & axis, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси. \en Rotate about an axis.
|
||||
virtual bool IsSame( const MbCreator &, double accuracy ) const; // \ru Являются ли объекты равными? \en Determine whether an object is equal?
|
||||
virtual bool IsSimilar( const MbCreator & ) const; // \ru Определить, являются ли объекты подобными. \en Determine whether the objects are similar.
|
||||
virtual bool SetEqual( const MbCreator & ); // \ru Сделать равным. \en Make equal.
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию. \en Create a copy.
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию. \en Create a copy.
|
||||
|
||||
virtual void GetProperties( MbProperties & ); // \ru Выдать свойства объекта. \en Get properties of the object.
|
||||
virtual void SetProperties( const MbProperties & ); // \ru Записать свойства объекта. \en Set properties of the object.
|
||||
virtual MbePrompt GetPropertyName(); // \ru Выдать заголовок свойства объекта. \en Get a name of object property.
|
||||
|
||||
virtual bool CreateShell( MbFaceShell *& shell, MbeCopyMode sameShell,
|
||||
RPArray<MbSpaceItem> * items = NULL ); // \ru Построение \en Construction.
|
||||
RPArray<MbSpaceItem> * items = c3d_null ); // \ru Построение \en Construction.
|
||||
|
||||
// \ru Добавить отдельный атрибут (забрать во владение) \en Add a separate attribute.
|
||||
void AddAttribute( const MbName & name, MbAttribute * attr );
|
||||
@@ -125,7 +125,7 @@ public:
|
||||
/// \ru Записать полученные атрибуты. \en Save the received attributes.
|
||||
void ReceiveAttributes ( c3d::AttrVector & attrs );
|
||||
/// \ru Скопировать атрибуты. \en Copy attributes.
|
||||
void DuplicateAttributes( c3d::AttrVector & attrs, MbRegDuplicate * iReg = NULL ) const;
|
||||
void DuplicateAttributes( c3d::AttrVector & attrs, MbRegDuplicate * iReg = c3d_null ) const;
|
||||
/// \ru Дать количество атрибутов. \en Get the attributes count.
|
||||
size_t AttributesCount() const { return attributes.size(); }
|
||||
/// \ru Добавить атрибут. \en Add an attribute.
|
||||
|
||||
@@ -67,10 +67,10 @@ public :
|
||||
// \ru Общие функции математического объекта \en Common functions of the mathematical object
|
||||
|
||||
virtual MbeCreatorType IsA() const; // \ru Тип элемента. \en A type of element.
|
||||
virtual void Transform( const MbMatrix3D &, MbRegTransform * ireg = NULL ); // \ru Преобразовать элемент согласно матрице. \en Transform element according to the matrix.
|
||||
virtual void Move ( const MbVector3D &, MbRegTransform * ireg = NULL ); // \ru Сдвиг. \en Translation.
|
||||
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * ireg = NULL ); // \ru Повернуть вокруг оси. \en Rotate around an axis.
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const ; // \ru Сделать копию \en Create a copy
|
||||
virtual void Transform( const MbMatrix3D &, MbRegTransform * ireg = c3d_null ); // \ru Преобразовать элемент согласно матрице. \en Transform element according to the matrix.
|
||||
virtual void Move ( const MbVector3D &, MbRegTransform * ireg = c3d_null ); // \ru Сдвиг. \en Translation.
|
||||
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * ireg = c3d_null ); // \ru Повернуть вокруг оси. \en Rotate around an axis.
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const ; // \ru Сделать копию \en Create a copy
|
||||
|
||||
virtual MbePrompt GetPropertyName(); // \ru Выдать заголовок свойства объекта \en Get a name of object property.
|
||||
virtual void GetProperties( MbProperties & ); // \ru Выдать свойства объекта. \en Get properties of the object.
|
||||
@@ -90,7 +90,7 @@ public :
|
||||
// \ru Общие функции твердого тела. \en Common functions of solid.
|
||||
|
||||
virtual bool CreateShell( MbFaceShell *& shell, MbeCopyMode sameShell,
|
||||
RPArray<MbSpaceItem> * items = NULL ); // \ru Построение \en Construction
|
||||
RPArray<MbSpaceItem> * items = c3d_null ); // \ru Построение \en Construction
|
||||
|
||||
virtual void SetYourVersion( VERSION version, bool forAll );
|
||||
|
||||
@@ -107,7 +107,7 @@ public:
|
||||
/// \ru Общее количество строителей. \en Total count of creators.
|
||||
size_t GetCreatorsCount() const { return creators.size(); }
|
||||
/// \ru Дать строитель. \en Get the creator.
|
||||
const MbCreator * GetCreator( size_t k ) const { return ( (k < creators.size()) ? creators[k] : NULL ); }
|
||||
const MbCreator * GetCreator( size_t k ) const { return ( (k < creators.size()) ? creators[k] : c3d_null ); }
|
||||
/// \ru Удалить из журнала строители первого тела. \en Delete first-solid creators from the history tree.
|
||||
bool DeleteFirstCreators();
|
||||
private :
|
||||
|
||||
@@ -39,7 +39,7 @@ public :
|
||||
// \ru Общие функции математического объекта \en Common functions of the mathematical object
|
||||
|
||||
virtual MbeCreatorType IsA() const; // \ru Тип элемента \en A type of element
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const ; // \ru Сделать копию \en Create a copy
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const ; // \ru Сделать копию \en Create a copy
|
||||
|
||||
virtual void GetProperties( MbProperties &properties ); // \ru Выдать свойства объекта \en Get properties of the object
|
||||
virtual void SetProperties( const MbProperties &properties ); // \ru Записать свойства объекта \en Set properties of the object
|
||||
@@ -51,7 +51,7 @@ public :
|
||||
// \ru Общие функции твердого тела \en Common functions of solid
|
||||
|
||||
virtual bool CreateShell( MbFaceShell *&shell, MbeCopyMode sameShell,
|
||||
RPArray<MbSpaceItem> * items = NULL ); // \ru Построение \en Construction
|
||||
RPArray<MbSpaceItem> * items = c3d_null ); // \ru Построение \en Construction
|
||||
|
||||
private :
|
||||
virtual void ReadDistances ( reader &in );
|
||||
|
||||
@@ -59,15 +59,15 @@ public :
|
||||
|
||||
// \ru Общие функции строителя \en The common functions of the creator
|
||||
virtual MbeCreatorType IsA() const; // \ru Тип элемента \en A type of element
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * iReg = NULL ) const; // \ru Сделать копию \en Create a copy
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * iReg = c3d_null ) const; // \ru Сделать копию \en Create a copy
|
||||
|
||||
virtual bool IsSame ( const MbCreator &, double accuracy ) const; // \ru Являются ли объекты равными? \en Determine whether an object is equal?
|
||||
virtual bool IsSimilar( const MbCreator & ) const; // \ru Являются ли объекты подобными \en Whether the objects are similar
|
||||
virtual bool SetEqual ( const MbCreator & ); // \ru Сделать равным \en Make equal
|
||||
|
||||
virtual void Transform( const MbMatrix3D &, MbRegTransform * = NULL ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
|
||||
virtual void Move ( const MbVector3D &, MbRegTransform * = NULL ); // \ru Сдвиг \en Translation
|
||||
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси \en Rotate about an axis
|
||||
virtual void Transform( const MbMatrix3D &, MbRegTransform * = c3d_null ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
|
||||
virtual void Move ( const MbVector3D &, MbRegTransform * = c3d_null ); // \ru Сдвиг \en Translation
|
||||
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate about an axis
|
||||
|
||||
virtual MbePrompt GetPropertyName(); // \ru Дать имя свойства объекта \en Get the object property name
|
||||
virtual void GetProperties( MbProperties & ); // \ru Выдать свойства объекта \en Get properties of the object
|
||||
@@ -77,7 +77,7 @@ public :
|
||||
virtual void SetBasisPoints( const MbControlData3D & ); // \ru Изменить объект по контрольным точкам. \en Change the object by control points.
|
||||
|
||||
// \ru Построить кривую по журналу построения \en Create a curve from the history tree
|
||||
virtual bool CreateSpaceCurve( MbWireFrame *&, MbeCopyMode, RPArray<MbSpaceItem> * items = NULL );
|
||||
virtual bool CreateSpaceCurve( MbWireFrame *&, MbeCopyMode, RPArray<MbSpaceItem> * items = c3d_null );
|
||||
|
||||
/** \} */
|
||||
|
||||
@@ -97,13 +97,13 @@ IMPL_PERSISTENT_OPS( MbConnectingCurveCreator )
|
||||
\en Create two curves fillet constructor.\n \~
|
||||
\param[in] curve1 - \ru Кривая 1.
|
||||
\en Curve 1. \~
|
||||
\param[in/out] t1 - \ru Параметр точки на кривой 1 соединения с кривой соединения.
|
||||
\param[in,out] t1 - \ru Параметр точки на кривой 1 соединения с кривой соединения.
|
||||
\en A point parameter on curve 1 of connection with fillet curve. \~
|
||||
\param[in] curve2 - \ru Кривая 2.
|
||||
\en Curve 2. \~
|
||||
\param[in/out] t2 - \ru Параметр точки на кривой 2 соединения с кривой соединения.
|
||||
\param[in,out] t2 - \ru Параметр точки на кривой 2 соединения с кривой соединения.
|
||||
\en A point parameter on curve 2 of connection with fillet curve. \~
|
||||
\param[in/out] radius - \ru Радиус дуги или цилиндра.
|
||||
\param[in,out] radius - \ru Радиус дуги или цилиндра.
|
||||
\en The radius of an arc or a cylinder. \~
|
||||
\param[in] type - \ru Тип скругления.
|
||||
\en The fillet type. \~
|
||||
@@ -111,8 +111,8 @@ IMPL_PERSISTENT_OPS( MbConnectingCurveCreator )
|
||||
\en An object defining the edges names. \~
|
||||
\param[out] res - \ru Код результата операции.
|
||||
\en Operation result code. \~
|
||||
\param[out] surface - \ru Поверхность, которая будет создана и на которой базируется соединительная кривая, (может быть возращён NULL).
|
||||
\en A surface on which the fillet curve is based on, it will be created by the method (can be NULL). \~
|
||||
\param[out] surface - \ru Поверхность, которая будет создана и на которой базируется соединительная кривая, (может быть возращён c3d_null).
|
||||
\en A surface on which the fillet curve is based on, it will be created by the method (can be c3d_null). \~
|
||||
\result \ru Возвращает строитель.
|
||||
\en Returns the constructor. \~
|
||||
\ingroup Curve3D_Modeling
|
||||
|
||||
@@ -66,10 +66,10 @@ public :
|
||||
// \ru Общие функции математического объекта \en Common functions of the mathematical object
|
||||
|
||||
virtual MbeCreatorType IsA() const; // \ru Тип элемента \en A type of element
|
||||
virtual void Transform( const MbMatrix3D &, MbRegTransform * = NULL ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
|
||||
virtual void Move( const MbVector3D &, MbRegTransform * = NULL ); // \ru Сдвиг \en Translation
|
||||
virtual void Rotate( const MbAxis3D &, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси \en Rotate around an axis
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию \en Create a copy
|
||||
virtual void Transform( const MbMatrix3D &, MbRegTransform * = c3d_null ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
|
||||
virtual void Move( const MbVector3D &, MbRegTransform * = c3d_null ); // \ru Сдвиг \en Translation
|
||||
virtual void Rotate( const MbAxis3D &, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate around an axis
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию \en Create a copy
|
||||
|
||||
virtual MbePrompt GetPropertyName(); // \ru Выдать заголовок свойства объекта \en Get a name of object property
|
||||
virtual void GetProperties( MbProperties & ); // \ru Выдать свойства объекта \en Get properties of the object
|
||||
@@ -85,7 +85,7 @@ public :
|
||||
// \ru Общие функции твердого тела \en Common functions of solid
|
||||
|
||||
virtual bool CreateShell( MbFaceShell *&, MbeCopyMode sameShell,
|
||||
RPArray<MbSpaceItem> * = NULL ); // \ru Построение \en Construction
|
||||
RPArray<MbSpaceItem> * = c3d_null ); // \ru Построение \en Construction
|
||||
|
||||
// \ru Оставляемая часть (если part больше 0, то оставляем часть тела со стороны нормали поверхности). \en A part to be kept (if part is bigger than 0, then keep a part of solid from the side of surface normal).
|
||||
ThreeStates GetPart() const { return part; }
|
||||
|
||||
@@ -42,10 +42,10 @@ public :
|
||||
\en \name Common functions of the mathematical object.
|
||||
\{ */
|
||||
virtual MbeCreatorType IsA() const; // \ru Тип элемента \en Type of element
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const ; // \ru Сделать копию \en Create a copy
|
||||
virtual void Transform( const MbMatrix3D & matr, MbRegTransform * = NULL ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
|
||||
virtual void Move( const MbVector3D & to, MbRegTransform * = NULL ); // \ru Сдвиг \en Translation
|
||||
virtual void Rotate( const MbAxis3D & axis, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси \en Rotate about an axis
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const ; // \ru Сделать копию \en Create a copy
|
||||
virtual void Transform( const MbMatrix3D & matr, MbRegTransform * = c3d_null ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
|
||||
virtual void Move( const MbVector3D & to, MbRegTransform * = c3d_null ); // \ru Сдвиг \en Translation
|
||||
virtual void Rotate( const MbAxis3D & axis, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate about an axis
|
||||
|
||||
virtual void GetProperties( MbProperties & properties ); // \ru Выдать свойства объекта \en Get properties of the object
|
||||
virtual void SetProperties( const MbProperties & properties ); // \ru Записать свойства объекта \en Set properties of the object
|
||||
@@ -56,7 +56,7 @@ public :
|
||||
virtual bool SetEqual ( const MbCreator & ); // \ru Сделать равным. \en Make equal.
|
||||
|
||||
virtual bool CreateShell( MbFaceShell *& shell, MbeCopyMode sameShell,
|
||||
RPArray<MbSpaceItem> * items = NULL ); // \ru Построение \en Construction
|
||||
RPArray<MbSpaceItem> * items = c3d_null ); // \ru Построение \en Construction
|
||||
/** \} */
|
||||
/** \ru \name Функции строителя, разделяющие отдельные части оболочки.
|
||||
\en \name Functions of the creator subdividing separate parts of the shell.
|
||||
@@ -183,7 +183,7 @@ MbCreator * CreateDetach( MbFaceShell & solid,
|
||||
MbResultType & res )
|
||||
{
|
||||
res = rt_Error;
|
||||
MbCreator * result = NULL;
|
||||
MbCreator * result = c3d_null;
|
||||
|
||||
::MakeDetachShells( solid, partSolid, sort );
|
||||
|
||||
|
||||
@@ -0,0 +1,214 @@
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/**
|
||||
\file
|
||||
\brief \ru Строители перемещения объектов в пространстве.
|
||||
\en Constructors of displacement of an object.
|
||||
*/
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef __CR_DISPLACE_CREATOR_H
|
||||
#define __CR_DISPLACE_CREATOR_H
|
||||
|
||||
|
||||
#include <creator.h>
|
||||
#include <mb_matrix3d.h>
|
||||
#include <mb_axis3d.h>
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Перемещение объекта вдоль вектора.
|
||||
\en The shift of an object. \~
|
||||
\details \ru Строитель перемещает объект вдоль вектора на его длину. \n
|
||||
\en Constructor displaces an object along the vector by its length. \n \~
|
||||
\ingroup Model_Creators
|
||||
*/
|
||||
// ---
|
||||
class MATH_CLASS MbMotionMaker : public MbCreator {
|
||||
protected:
|
||||
MbVector3D vector; ///< \ru Вектор перемещения. \en The displacement vector.
|
||||
|
||||
public: // \ru Конструктор по параметрам. \en Constructor by parameters.
|
||||
MbMotionMaker( const MbVector3D & );
|
||||
private: // \ru Конструктор дублирующий. \en Duplication constructor.
|
||||
MbMotionMaker( const MbMotionMaker &, MbRegDuplicate * ireg );
|
||||
// \ru Объявление конструктора копирования без реализации, чтобы не было копирования по умолчанию. \en Declaration without implementation of the copy-constructor to prevent copying by default.
|
||||
MbMotionMaker( const MbMotionMaker & );
|
||||
|
||||
public: // \ru Деструктор \en Destructor
|
||||
~MbMotionMaker();
|
||||
|
||||
public: // \ru Общие функции математического объекта \en Common functions of the mathematical object
|
||||
virtual MbeCreatorType IsA() const; // \ru Тип элемента \en A type of element
|
||||
virtual MbeCreatorType Type() const; // \ru Получить групповой тип объекта. \en Get the group type of the object.
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию \en Create a copy
|
||||
virtual bool IsSame( const MbCreator & other, double accuracy ) const; // \ru Являются ли объекты равными? \en Determine whether an object is equal?
|
||||
virtual bool SetEqual ( const MbCreator & ); // \ru Сделать равным \en Make equal
|
||||
virtual void Transform( const MbMatrix3D &, MbRegTransform * = c3d_null ); // \ru Преобразовать по матрице \en Transform according to the matrix
|
||||
virtual void Move ( const MbVector3D &, MbRegTransform * = c3d_null ); // \ru Сдвиг по вектору \en Translation by a vector
|
||||
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate around an axis
|
||||
|
||||
virtual MbePrompt GetPropertyName(); // \ru Выдать заголовок свойства объекта \en Get a name of object property
|
||||
virtual void GetProperties( MbProperties & ); // \ru Выдать свойства объекта \en Get properties of the object
|
||||
virtual void SetProperties( const MbProperties & ); // \ru Записать свойства объекта \en Set properties of the object
|
||||
|
||||
/// \ru Построение оболочки \en Creation of a shell.
|
||||
virtual bool CreateShell( MbFaceShell *& shell, MbeCopyMode sameShell,
|
||||
RPArray<MbSpaceItem> * items = c3d_null );
|
||||
/// \ru Построение каркаса кривых. \en Creation of a wire-frame.
|
||||
virtual bool CreateWireFrame( MbWireFrame *& frame, MbeCopyMode sameShell,
|
||||
RPArray<MbSpaceItem> * items = c3d_null );
|
||||
/// \ru Построение каркаса точек. \en Creation of a point-frame.
|
||||
virtual bool CreatePointFrame( MbPointFrame *& frame, MbeCopyMode sameShell,
|
||||
RPArray<MbSpaceItem> * items = c3d_null );
|
||||
/// \ru Переместить строитель. \en Displace the creator.
|
||||
virtual bool Perform( MbCreator * ) const;
|
||||
|
||||
// \ru Добавить перемещение объекта вдоль вектора. \en Add a displacement vector.
|
||||
void AddVector( const MbVector3D & );
|
||||
// \ru Дать параметры. \en Get the parameters.
|
||||
void GetVector( MbVector3D & m ) const { m = vector; }
|
||||
// \ru Установить параметры. \en Set the parameters.
|
||||
void SetVector( const MbVector3D & m ) { vector = m; }
|
||||
|
||||
private:
|
||||
// \ru Объявление оператора присваивания без реализации, чтобы не было присваивания по умолчанию. \en The declaration of the assignment operator without implementation to prevent an assignment by default.
|
||||
void operator = ( const MbMotionMaker & );
|
||||
|
||||
DECLARE_PERSISTENT_CLASS_NEW_DEL( MbMotionMaker )
|
||||
};
|
||||
|
||||
IMPL_PERSISTENT_OPS( MbMotionMaker )
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Поворот объекта вокруг оси.
|
||||
\en Rotate an object around an axis. \~
|
||||
\details \ru Строитель поворачивает объект вокруг оси на заданный угол. \n
|
||||
\en Constructor rotates an object around the axis by the specified angle. \n \~
|
||||
\ingroup Model_Creators
|
||||
*/
|
||||
// ---
|
||||
class MATH_CLASS MbRotationMaker : public MbCreator {
|
||||
protected:
|
||||
MbAxis3D axis; ///< \ru Ось вращения. \en The axis.
|
||||
double angle; ///< \ru Угол поворота. \en The angle of rotatation.
|
||||
|
||||
public: // \ru Конструктор по параметрам. \en Constructor by parameters.
|
||||
MbRotationMaker( const MbAxis3D & ax, double an );
|
||||
private: // \ru Конструктор дублирующий. \en Duplication constructor.
|
||||
MbRotationMaker( const MbRotationMaker &, MbRegDuplicate * ireg );
|
||||
// \ru Объявление конструктора копирования без реализации, чтобы не было копирования по умолчанию. \en Declaration without implementation of the copy-constructor to prevent copying by default.
|
||||
MbRotationMaker( const MbRotationMaker & );
|
||||
|
||||
public: // \ru Деструктор \en Destructor
|
||||
~MbRotationMaker();
|
||||
|
||||
public: // \ru Общие функции математического объекта \en Common functions of the mathematical object
|
||||
virtual MbeCreatorType IsA() const; // \ru Тип элемента \en A type of element
|
||||
virtual MbeCreatorType Type() const; // \ru Получить групповой тип объекта. \en Get the group type of the object.
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию \en Create a copy
|
||||
virtual bool IsSame( const MbCreator & other, double accuracy ) const; // \ru Являются ли объекты равными? \en Determine whether an object is equal?
|
||||
virtual bool SetEqual ( const MbCreator & ); // \ru Сделать равным \en Make equal
|
||||
virtual void Transform( const MbMatrix3D &, MbRegTransform * = c3d_null ); // \ru Преобразовать по матрице \en Transform according to the matrix
|
||||
virtual void Move ( const MbVector3D &, MbRegTransform * = c3d_null ); // \ru Сдвиг по вектору \en Translation by a vector
|
||||
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate around an axis
|
||||
|
||||
virtual MbePrompt GetPropertyName(); // \ru Выдать заголовок свойства объекта \en Get a name of object property
|
||||
virtual void GetProperties( MbProperties & ); // \ru Выдать свойства объекта \en Get properties of the object
|
||||
virtual void SetProperties( const MbProperties & ); // \ru Записать свойства объекта \en Set properties of the object
|
||||
|
||||
/// \ru Построение оболочки \en Creation of a shell.
|
||||
virtual bool CreateShell( MbFaceShell *& shell, MbeCopyMode sameShell,
|
||||
RPArray<MbSpaceItem> * items = c3d_null );
|
||||
/// \ru Построение каркаса кривых. \en Creation of a wire-frame.
|
||||
virtual bool CreateWireFrame( MbWireFrame *& frame, MbeCopyMode sameShell,
|
||||
RPArray<MbSpaceItem> * items = c3d_null );
|
||||
/// \ru Построение каркаса точек. \en Creation of a point-frame.
|
||||
virtual bool CreatePointFrame( MbPointFrame *& frame, MbeCopyMode sameShell,
|
||||
RPArray<MbSpaceItem> * items = c3d_null );
|
||||
/// \ru Переместить строитель. \en Displace the creator.
|
||||
virtual bool Perform( MbCreator * ) const;
|
||||
|
||||
// \ru Добавить поворот вокруг оси. \en Add an angle of rotatation.
|
||||
bool AddAngle( const MbAxis3D & ax, double an );
|
||||
// \ru Дать параметры. \en Get the parameters.
|
||||
void GetAxis3D( MbAxis3D & m ) const { m = axis; }
|
||||
// \ru Установить параметры. \en Set the parameters.
|
||||
void SetAxis3D( const MbAxis3D & m ) { axis = m; }
|
||||
|
||||
private:
|
||||
// \ru Объявление оператора присваивания без реализации, чтобы не было присваивания по умолчанию. \en The declaration of the assignment operator without implementation to prevent an assignment by default.
|
||||
void operator = ( const MbRotationMaker & );
|
||||
|
||||
DECLARE_PERSISTENT_CLASS_NEW_DEL( MbRotationMaker )
|
||||
};
|
||||
|
||||
IMPL_PERSISTENT_OPS( MbRotationMaker )
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Трансформация объекта по матрице.
|
||||
\en Transformation of an object by matrix. \~
|
||||
\details \ru Строитель трансформирует объект по матрице. \n
|
||||
\en Constructor transforms an object by the matrix. \n \~
|
||||
\ingroup Model_Creators
|
||||
*/
|
||||
// ---
|
||||
class MATH_CLASS MbTransformationMaker : public MbCreator {
|
||||
protected:
|
||||
MbMatrix3D matrix; ///< \ru Матрица преобразования. \en The transform matrix.
|
||||
|
||||
public: // \ru Конструктор по параметрам. \en Constructor by parameters.
|
||||
MbTransformationMaker( const MbMatrix3D & );
|
||||
private: // \ru Конструктор дублирующий. \en Duplication constructor.
|
||||
MbTransformationMaker( const MbTransformationMaker &, MbRegDuplicate * ireg );
|
||||
// \ru Объявление конструктора копирования без реализации, чтобы не было копирования по умолчанию. \en Declaration without implementation of the copy-constructor to prevent copying by default.
|
||||
MbTransformationMaker( const MbTransformationMaker & );
|
||||
|
||||
public: // \ru Деструктор \en Destructor
|
||||
~MbTransformationMaker();
|
||||
|
||||
public: // \ru Общие функции математического объекта \en Common functions of the mathematical object
|
||||
virtual MbeCreatorType IsA() const; // \ru Тип элемента \en A type of element
|
||||
virtual MbeCreatorType Type() const; // \ru Получить групповой тип объекта. \en Get the group type of the object.
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию \en Create a copy
|
||||
virtual bool IsSame( const MbCreator & other, double accuracy ) const; // \ru Являются ли объекты равными? \en Determine whether an object is equal?
|
||||
virtual bool SetEqual ( const MbCreator & ); // \ru Сделать равным \en Make equal
|
||||
virtual void Transform( const MbMatrix3D &, MbRegTransform * = c3d_null ); // \ru Преобразовать по матрице \en Transform according to the matrix
|
||||
virtual void Move ( const MbVector3D &, MbRegTransform * = c3d_null ); // \ru Сдвиг по вектору \en Translation by a vector
|
||||
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate around an axis
|
||||
|
||||
virtual MbePrompt GetPropertyName(); // \ru Выдать заголовок свойства объекта \en Get a name of object property
|
||||
virtual void GetProperties( MbProperties & ); // \ru Выдать свойства объекта \en Get properties of the object
|
||||
virtual void SetProperties( const MbProperties & ); // \ru Записать свойства объекта \en Set properties of the object
|
||||
|
||||
/// \ru Построение оболочки \en Creation of a shell.
|
||||
virtual bool CreateShell( MbFaceShell *& shell, MbeCopyMode sameShell,
|
||||
RPArray<MbSpaceItem> * items = c3d_null );
|
||||
/// \ru Построение каркаса кривых. \en Creation of a wire-frame.
|
||||
virtual bool CreateWireFrame( MbWireFrame *& frame, MbeCopyMode sameShell,
|
||||
RPArray<MbSpaceItem> * items = c3d_null );
|
||||
/// \ru Построение каркаса точек. \en Creation of a point-frame.
|
||||
virtual bool CreatePointFrame( MbPointFrame *& frame, MbeCopyMode sameShell,
|
||||
RPArray<MbSpaceItem> * items = c3d_null );
|
||||
/// \ru Переместить строитель. \en Displace the creator.
|
||||
virtual bool Perform( MbCreator * ) const;
|
||||
|
||||
// \ru Добавить модификацию по матрице \en Add a modification by a matrix
|
||||
void AddMatrix( const MbMatrix3D & );
|
||||
// \ru Дать параметры. \en Get the parameters.
|
||||
void GetMatrix( MbMatrix3D & m ) const { m = matrix; }
|
||||
// \ru Установить параметры. \en Set the parameters.
|
||||
void SetMatrix( const MbMatrix3D & m ) { matrix = m; }
|
||||
|
||||
private:
|
||||
// \ru Объявление оператора присваивания без реализации, чтобы не было присваивания по умолчанию. \en The declaration of the assignment operator without implementation to prevent an assignment by default.
|
||||
void operator = ( const MbTransformationMaker & );
|
||||
|
||||
DECLARE_PERSISTENT_CLASS_NEW_DEL( MbTransformationMaker )
|
||||
};
|
||||
|
||||
IMPL_PERSISTENT_OPS( MbTransformationMaker )
|
||||
|
||||
|
||||
#endif // __CR_DISPLACE_CREATOR_H
|
||||
@@ -47,7 +47,7 @@ public:
|
||||
, fp ( faceProp )
|
||||
, np ( new MbPlacement3D( nPlace ) )
|
||||
, edgeNb ( -1 )
|
||||
, pl ( NULL )
|
||||
, pl ( c3d_null )
|
||||
, reverse ( rev )
|
||||
, step ( false )
|
||||
{
|
||||
@@ -65,7 +65,7 @@ public:
|
||||
, angle ( ang )
|
||||
, faceIndices( )
|
||||
, fp ( faceProp )
|
||||
, np ( nPlace ? new MbPlacement3D( *nPlace ) : NULL )
|
||||
, np ( nPlace ? new MbPlacement3D( *nPlace ) : c3d_null )
|
||||
, edgeNb ( edgeInd )
|
||||
, pl ( new SArray<ptrdiff_t>( partLines ) )
|
||||
, reverse ( rev )
|
||||
@@ -82,10 +82,10 @@ public :
|
||||
// \ru Общие функции математического объекта \en Common functions of the mathematical object
|
||||
|
||||
virtual MbeCreatorType IsA() const; // \ru Тип элемента \en A type of element
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const;
|
||||
virtual void Transform( const MbMatrix3D &, MbRegTransform * = NULL ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
|
||||
virtual void Move ( const MbVector3D &, MbRegTransform * = NULL ); // \ru Сдвиг \en Translation
|
||||
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси \en Rotate around an axis
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const;
|
||||
virtual void Transform( const MbMatrix3D &, MbRegTransform * = c3d_null ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
|
||||
virtual void Move ( const MbVector3D &, MbRegTransform * = c3d_null ); // \ru Сдвиг \en Translation
|
||||
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate around an axis
|
||||
|
||||
virtual void GetProperties( MbProperties & ); // \ru Выдать свойства объекта \en Get properties of the object
|
||||
virtual void SetProperties( const MbProperties & ); // \ru Записать свойства объекта \en Set properties of the object
|
||||
@@ -98,7 +98,7 @@ public :
|
||||
// \ru Общие функции твердого тела \en Common functions of solid
|
||||
|
||||
virtual bool CreateShell( MbFaceShell *&, MbeCopyMode sameShell,
|
||||
RPArray<MbSpaceItem> * = NULL ); // \ru Построение \en Construction
|
||||
RPArray<MbSpaceItem> * = c3d_null ); // \ru Построение \en Construction
|
||||
|
||||
private :
|
||||
// \ru Объявление оператора присваивания без реализации, чтобы не было присваивания по умолчанию. \en The declaration of the assignment operator without implementation to prevent an assignment by default.
|
||||
|
||||
@@ -46,10 +46,10 @@ public:
|
||||
\{ */
|
||||
/// \ru Получить регистрационный тип (для копирования, дублирования). \en Get the registration type (for copying, duplication).
|
||||
virtual MbeCreatorType IsA() const;
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const ; // \ru сделать копию \en create a copy
|
||||
virtual void Transform( const MbMatrix3D &, MbRegTransform * = NULL ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
|
||||
virtual void Move( const MbVector3D &, MbRegTransform * = NULL ); // \ru Сдвиг \en Translation
|
||||
virtual void Rotate( const MbAxis3D &, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси \en Rotate about an axis
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const ; // \ru сделать копию \en create a copy
|
||||
virtual void Transform( const MbMatrix3D &, MbRegTransform * = c3d_null ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
|
||||
virtual void Move( const MbVector3D &, MbRegTransform * = c3d_null ); // \ru Сдвиг \en Translation
|
||||
virtual void Rotate( const MbAxis3D &, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate about an axis
|
||||
|
||||
virtual void GetProperties( MbProperties & ); // \ru выдать свойства объекта \en get properties of the object
|
||||
virtual void SetProperties( const MbProperties & ); // \ru записать свойства объекта \en set properties of the object
|
||||
@@ -60,7 +60,7 @@ public:
|
||||
virtual bool SetEqual ( const MbCreator & ); // \ru сделать равным \en make equal
|
||||
|
||||
virtual bool CreateShell( MbFaceShell *&, MbeCopyMode sameShell,
|
||||
RPArray<MbSpaceItem> * items = NULL ); // \ru Построение \en Construction
|
||||
RPArray<MbSpaceItem> * items = c3d_null ); // \ru Построение \en Construction
|
||||
/** \} */
|
||||
|
||||
private :
|
||||
|
||||
@@ -10,11 +10,9 @@
|
||||
#ifndef __CR_ELEMENTARY_SOLID_H
|
||||
#define __CR_ELEMENTARY_SOLID_H
|
||||
|
||||
|
||||
#include <creator.h>
|
||||
#include <mb_enum.h>
|
||||
|
||||
|
||||
class MATH_CLASS MbElementarySurface;
|
||||
|
||||
|
||||
@@ -46,17 +44,17 @@ class MATH_CLASS MbElementarySurface;
|
||||
// ---
|
||||
class MATH_CLASS MbElementarySolid : public MbCreator {
|
||||
protected :
|
||||
SArray<MbCartPoint3D> points; ///< \ru Опорные точки оболочки тела. \en Support points of a solid shell.
|
||||
ElementaryShellType type; ///< \ru Тип тела. \en Type of a solid.
|
||||
MbPlacement3D position; ///< \ru Локальная система координат тела. \en Local coordinate system оf a solid.
|
||||
double radius; ///< \ru Радиус основания тела. \en Radius of the base of the solid.
|
||||
double minorRadius; ///< \ru Малый радиус основания тела. \en Small radius of the base of the solid.
|
||||
double height; ///< \ru Высота тела. \en Height of a solid.
|
||||
double length; ///< \ru Длина тела. \en Length of a solid.
|
||||
double minorLength; ///< \ru Малая длина тела. \en Small length of a solid.
|
||||
double width; ///< \ru Ширина тела. \en Width of a solid.
|
||||
double angle; ///< \ru Угол между осью position.axisZ и боковой образующей. \en Angle between position.axisZ axis and lateral generatrix.
|
||||
double ratio; ///< \ru Коэффициент растяжения. \en Stretch factor.
|
||||
SArray<MbCartPoint3D> points; ///< \ru Опорные точки оболочки тела. \en Support points of a solid shell.
|
||||
ElementaryShellType type; ///< \ru Тип тела. \en Type of a solid.
|
||||
MbPlacement3D position; ///< \ru Локальная система координат тела. \en Local coordinate system оf a solid.
|
||||
double radius; ///< \ru Радиус основания тела. \en Radius of the base of the solid.
|
||||
double minorRadius; ///< \ru Малый радиус основания тела. \en Small radius of the base of the solid.
|
||||
double height; ///< \ru Высота тела. \en Height of a solid.
|
||||
double length; ///< \ru Длина тела. \en Length of a solid.
|
||||
double minorLength; ///< \ru Малая длина тела. \en Small length of a solid.
|
||||
double width; ///< \ru Ширина тела. \en Width of a solid.
|
||||
double angle; ///< \ru Угол между осью position.axisZ и боковой образующей. \en Angle between position.axisZ axis and lateral generatrix.
|
||||
double ratio; ///< \ru Коэффициент растяжения. \en Stretch factor.
|
||||
public :
|
||||
/** \brief \ru Конструктор.
|
||||
\en Constructor. \~
|
||||
@@ -97,13 +95,13 @@ public :
|
||||
\param[in] n - \ru Именователь операции.
|
||||
\en An object defining names generation in the operation. \~
|
||||
*/
|
||||
template<class Points>
|
||||
MbElementarySolid( const Points & pnts, ElementaryShellType t, const MbSNameMaker & n );
|
||||
|
||||
template<class PointsVector>
|
||||
MbElementarySolid( const PointsVector & pnts, ElementaryShellType t, const MbSNameMaker & n );
|
||||
|
||||
private :
|
||||
MbElementarySolid( const MbElementarySolid &, MbRegDuplicate * iReg ); // \ru Конструктор копирования с регистратором \en Copy-constructor with the registrator
|
||||
// \ru Объявление конструктора копирования без реализации, чтобы не было копирования по умолчанию. \en Declaration without implementation of the copy-constructor to prevent copying by default.
|
||||
/// \ru Конструктор копирования с регистратором. \en Copy-constructor with the registrator.
|
||||
MbElementarySolid( const MbElementarySolid &, MbRegDuplicate * );
|
||||
/// \ru Объявление конструктора копирования без реализации, чтобы не было копирования по умолчанию. \en Declaration without implementation of the copy-constructor to prevent copying by default.
|
||||
MbElementarySolid( const MbElementarySolid & );
|
||||
public :
|
||||
/// \ru Деструктор. \en Destructor.
|
||||
@@ -113,15 +111,15 @@ public :
|
||||
\en \name Common functions of the shell creator.
|
||||
\{ */
|
||||
virtual MbeCreatorType IsA() const; // \ru Тип элемента \en Type of element
|
||||
virtual void Transform( const MbMatrix3D &, MbRegTransform * = NULL ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
|
||||
virtual void Move( const MbVector3D &, MbRegTransform * = NULL ); // \ru Сдвиг \en Translation
|
||||
virtual void Rotate( const MbAxis3D &, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси \en Rotate about an axis
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию \en Create a copy
|
||||
virtual void Transform( const MbMatrix3D &, MbRegTransform * = c3d_null ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
|
||||
virtual void Move( const MbVector3D &, MbRegTransform * = c3d_null ); // \ru Сдвиг \en Translation
|
||||
virtual void Rotate( const MbAxis3D &, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate about an axis
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию \en Create a copy
|
||||
|
||||
virtual MbePrompt GetPropertyName(); // \ru Выдать заголовок свойства объекта \en Get a name of object property
|
||||
virtual void GetProperties( MbProperties & properties ); // \ru Выдать свойства объекта \en Get properties of the object
|
||||
virtual void SetProperties( const MbProperties & properties ); // \ru Записать свойства объекта \en Set properties of the object
|
||||
virtual void GetBasisItems( RPArray<MbSpaceItem> & s ); // \ru Дать базовые объекты \en Get the basis objects
|
||||
virtual void GetProperties( MbProperties & ); // \ru Выдать свойства объекта \en Get properties of the object
|
||||
virtual void SetProperties( const MbProperties & ); // \ru Записать свойства объекта \en Set properties of the object
|
||||
virtual void GetBasisItems( RPArray<MbSpaceItem> & ); // \ru Дать базовые объекты \en Get the basis objects
|
||||
virtual void GetBasisPoints( MbControlData3D & ) const; // \ru Выдать контрольные точки объекта. \en Get control points of object.
|
||||
virtual void SetBasisPoints( const MbControlData3D & ); // \ru Изменить объект по контрольным точкам. \en Change the object by control points.
|
||||
|
||||
@@ -130,9 +128,12 @@ public :
|
||||
virtual bool SetEqual( const MbCreator & ); // \ru Сделать равным \en Make equal
|
||||
|
||||
virtual bool CreateShell( MbFaceShell *&, MbeCopyMode sameShell,
|
||||
RPArray<MbSpaceItem> * = NULL ); // \ru Построение \en Construction
|
||||
RPArray<MbSpaceItem> * = c3d_null ); // \ru Построение \en Construction
|
||||
/** \} */
|
||||
|
||||
private:
|
||||
/// \ru Установить параметры по типу и набору точек. \en Set parameters by type and points.
|
||||
bool SetParameters();
|
||||
private :
|
||||
// \ru Объявление оператора присваивания без реализации, чтобы не было присваивания по умолчанию. \en The declaration of the assignment operator without implementation to prevent an assignment by default.
|
||||
void operator = ( const MbElementarySolid & );
|
||||
@@ -142,6 +143,35 @@ private :
|
||||
|
||||
IMPL_PERSISTENT_OPS( MbElementarySolid )
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// \ru Конструктор по точкам и типу тела. При этом, по массиву точек тела и его типу, заполняются соответствующие его параметры.
|
||||
// \en Constructor by points and type of solid.
|
||||
// ---
|
||||
template<class PointsVector>
|
||||
MbElementarySolid::MbElementarySolid( const PointsVector & pnts, ElementaryShellType t, const MbSNameMaker & n )
|
||||
: MbCreator ( n )
|
||||
, points ( )
|
||||
, type ( t )
|
||||
, position ( )
|
||||
, radius ( 0.0 )
|
||||
, minorRadius( 0.0 )
|
||||
, height ( 0.0 )
|
||||
, length ( 0.0 )
|
||||
, minorLength( 0.0 )
|
||||
, width ( 0.0 )
|
||||
, angle ( 0.0 )
|
||||
, ratio ( 0.0 )
|
||||
{
|
||||
size_t cnt = pnts.size();
|
||||
points.reserve( cnt );
|
||||
for ( size_t k = 0; k < cnt; ++k ) {
|
||||
points.push_back( pnts[k] );
|
||||
}
|
||||
SetParameters();
|
||||
}
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Создать оболочку элементарного тела.
|
||||
\en Create a shell of an elementary solid. \~
|
||||
@@ -186,7 +216,7 @@ MATH_FUNC (MbCreator *) CreateElementary( const SArray<MbCartPoint3D> & points,
|
||||
const ElementaryShellType t,
|
||||
const MbSNameMaker & n,
|
||||
MbResultType & res,
|
||||
MbFaceShell *& shell );
|
||||
c3d::ShellSPtr & shell );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
@@ -214,7 +244,7 @@ MATH_FUNC (MbCreator *) CreateElementary( const SArray<MbCartPoint3D> & points,
|
||||
MATH_FUNC (MbCreator *) CreateElementary( const MbElementarySurface & surface,
|
||||
const MbSNameMaker & n,
|
||||
MbResultType & res,
|
||||
MbFaceShell *& shell );
|
||||
c3d::ShellSPtr & shell );
|
||||
|
||||
|
||||
#endif // __CR_ELEMENTARY_SOLID_H
|
||||
|
||||
@@ -27,7 +27,7 @@ class MATH_CLASS MbCurveEvolutionSolid : public MbCurveSweptSolid {
|
||||
protected :
|
||||
MbSweptData sweptData; ///< \ru Данные об образующей. \en Generating curve data.
|
||||
SPtr<MbCurve3D> spineCurve; ///< \ru Направляющая кривая. \en Spine curve.
|
||||
SPtr<MbCurve3D> directionCurve; ///< \ru Кривая вектора ориентации матрицы преобразования (может быть NULL для простой траектории). \en A curve of the transformation matrix orientation (it may be NULL for a simple trajectory).
|
||||
SPtr<MbCurve3D> directionCurve; ///< \ru Кривая вектора ориентации матрицы преобразования (может быть c3d_null для простой траектории). \en A curve of the transformation matrix orientation (it may be c3d_null for a simple trajectory).
|
||||
MbVector3D direction; ///< \ru Вектор ориентации матрицы преобразования (может быть нулевой, в случае автоопределения). \en Vector of transformation matrix orientation (it's equal zero in the mode of automatic direction calculation).
|
||||
SPtr<MbSNameMaker> spineNames; ///< \ru Именователь направляющей. \en An object defining the name of the spine curve.
|
||||
EvolutionValues parameters; ///< \ru Параметры. \en Parameters.
|
||||
@@ -128,10 +128,10 @@ public :
|
||||
\en \name Common functions of the mathematical object.
|
||||
\{ */
|
||||
virtual MbeCreatorType IsA() const; // \ru Тип элемента \en A type of element
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const ; // \ru Сделать копию \en Create a copy
|
||||
virtual void Transform( const MbMatrix3D &, MbRegTransform * = NULL ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
|
||||
virtual void Move ( const MbVector3D &, MbRegTransform * = NULL ); // \ru Сдвиг \en Translation
|
||||
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси \en Rotate around an axis
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const ; // \ru Сделать копию \en Create a copy
|
||||
virtual void Transform( const MbMatrix3D &, MbRegTransform * = c3d_null ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
|
||||
virtual void Move ( const MbVector3D &, MbRegTransform * = c3d_null ); // \ru Сдвиг \en Translation
|
||||
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate around an axis
|
||||
|
||||
virtual void GetProperties( MbProperties & ); // \ru Выдать свойства объекта \en Get properties of the object
|
||||
virtual void SetProperties( const MbProperties & ); // \ru Записать свойства объекта \en Set properties of the object
|
||||
|
||||
@@ -46,10 +46,10 @@ public :
|
||||
// \ru Общие функции математического объекта \en Common functions of the mathematical object
|
||||
|
||||
virtual MbeCreatorType IsA() const; // \ru Тип элемента \en Type of element
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию \en Create a copy
|
||||
virtual void Transform( const MbMatrix3D & matr, MbRegTransform * = NULL ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
|
||||
virtual void Move( const MbVector3D & to, MbRegTransform * = NULL ); // \ru Сдвиг \en Translation
|
||||
virtual void Rotate( const MbAxis3D & axis, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси \en Rotate about an axis
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию \en Create a copy
|
||||
virtual void Transform( const MbMatrix3D & matr, MbRegTransform * = c3d_null ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
|
||||
virtual void Move( const MbVector3D & to, MbRegTransform * = c3d_null ); // \ru Сдвиг \en Translation
|
||||
virtual void Rotate( const MbAxis3D & axis, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate about an axis
|
||||
|
||||
virtual void GetProperties( MbProperties & properties ); // \ru Выдать свойства объекта \en Get properties of the object
|
||||
virtual void SetProperties( const MbProperties & properties ); // \ru Записать свойства объекта \en Set properties of the object
|
||||
@@ -62,7 +62,7 @@ public :
|
||||
// \ru Общие функции твердого тела \en Common functions of solid solid
|
||||
|
||||
virtual bool CreateShell( MbFaceShell *& shell, MbeCopyMode sameShell,
|
||||
RPArray<MbSpaceItem> * items = NULL ); // \ru Построение \en Construction
|
||||
RPArray<MbSpaceItem> * items = c3d_null ); // \ru Построение \en Construction
|
||||
|
||||
// \ru Дать параметры. \en Get the parameters.
|
||||
void GetParameters( ExtensionValues & params ) const { params = parameters; }
|
||||
|
||||
@@ -59,7 +59,7 @@ public :
|
||||
OperationType oType,
|
||||
const MbSNameMaker & operNames,
|
||||
const RPArray<MbSNameMaker> & contoursNames,
|
||||
const c3d::CreatorsSPtrVector * creators = NULL,
|
||||
const c3d::CreatorsSPtrVector * creators = c3d_null,
|
||||
bool sameCreators = true );
|
||||
|
||||
private :
|
||||
@@ -73,10 +73,10 @@ public :
|
||||
\en \name Common functions of the mathematical object.
|
||||
\{ */
|
||||
virtual MbeCreatorType IsA() const; // \ru Тип элемента. \en A type of element.
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Cделать копию. \en Make a copy.
|
||||
virtual void Transform( const MbMatrix3D &, MbRegTransform * = NULL ); // \ru Преобразовать элемент согласно матрице. \en Transform element according to the matrix.
|
||||
virtual void Move( const MbVector3D &, MbRegTransform * = NULL ); // \ru Сдвиг. \en Move.
|
||||
virtual void Rotate( const MbAxis3D &, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси. \en Rotate around an axis.
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Cделать копию. \en Make a copy.
|
||||
virtual void Transform( const MbMatrix3D &, MbRegTransform * = c3d_null ); // \ru Преобразовать элемент согласно матрице. \en Transform element according to the matrix.
|
||||
virtual void Move( const MbVector3D &, MbRegTransform * = c3d_null ); // \ru Сдвиг. \en Move.
|
||||
virtual void Rotate( const MbAxis3D &, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси. \en Rotate around an axis.
|
||||
|
||||
virtual void GetProperties( MbProperties & ); // \ru Выдать свойства объекта. \en Get properties of the object.
|
||||
virtual void SetProperties( const MbProperties & ); // \ru Записать свойства объекта. \en Set properties of the object.
|
||||
@@ -94,7 +94,7 @@ public :
|
||||
\en \name Common functions of the rigid solid (forming operations).
|
||||
\{ */
|
||||
virtual bool CreateShell( MbFaceShell *& shell, MbeCopyMode sameShell,
|
||||
RPArray<MbSpaceItem> * items = NULL ); // \ru Построение. \en Construction.
|
||||
RPArray<MbSpaceItem> * items = c3d_null ); // \ru Построение. \en Construction.
|
||||
|
||||
virtual MbFaceShell * InitShell( bool in );
|
||||
virtual void InitBasis( RPArray<MbSpaceItem> & items );
|
||||
@@ -139,7 +139,7 @@ IMPL_PERSISTENT_OPS( MbCurveExtrusionSolid )
|
||||
\en Face set the construction is complemented with respect to. \~
|
||||
\param[in] sameShell - \ru Способ копирования граней.
|
||||
\en The method of copying faces. \~
|
||||
\param[in] creators - \ru Строители тела solid.
|
||||
\param[in] solidCreators - \ru Строители тела solid.
|
||||
\en Creators of the solid. \~
|
||||
\param[in] sweptData - \ru Данные об образующей.
|
||||
\en The generating curve data. \~
|
||||
|
||||
@@ -60,10 +60,10 @@ public :
|
||||
// \ru Общие функции математического объекта. \en Common functions of the mathematical object.
|
||||
|
||||
virtual MbeCreatorType IsA() const; // \ru Тип элемента. \en A type of element.
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const ; // \ru Сделать копию \en Create a copy
|
||||
virtual void Transform( const MbMatrix3D &matr, MbRegTransform * = NULL ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
|
||||
virtual void Move( const MbVector3D &to, MbRegTransform * = NULL ); // \ru Сдвиг \en Translation
|
||||
virtual void Rotate( const MbAxis3D &axis, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси \en Rotate around an axis
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const ; // \ru Сделать копию \en Create a copy
|
||||
virtual void Transform( const MbMatrix3D &matr, MbRegTransform * = c3d_null ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
|
||||
virtual void Move( const MbVector3D &to, MbRegTransform * = c3d_null ); // \ru Сдвиг \en Translation
|
||||
virtual void Rotate( const MbAxis3D &axis, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate around an axis
|
||||
|
||||
virtual void GetProperties( MbProperties & properties ); // \ru Выдать свойства объекта. \en Get properties of the object.
|
||||
virtual void SetProperties( const MbProperties & properties ); // \ru Записать свойства объекта. \en Set properties of the object.
|
||||
@@ -76,7 +76,7 @@ public :
|
||||
// \ru Общие функции твердого тела \en Common functions of solid
|
||||
|
||||
virtual bool CreateShell( MbFaceShell *& shell, MbeCopyMode sameShell,
|
||||
RPArray<MbSpaceItem> * items = NULL ); // \ru Построение \en Construction
|
||||
RPArray<MbSpaceItem> * items = c3d_null ); // \ru Построение \en Construction
|
||||
|
||||
private :
|
||||
virtual void ReadDistances ( reader &in );
|
||||
|
||||
@@ -69,10 +69,10 @@ public :
|
||||
// \ru Переопределение функций базового класса \en The base class functions override
|
||||
|
||||
virtual MbeCreatorType IsA() const; // \ru Тип элемента \en A type of element
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const ; // \ru Сделать копию \en Create a copy
|
||||
virtual void Transform( const MbMatrix3D & matr, MbRegTransform * = NULL ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
|
||||
virtual void Move( const MbVector3D & to, MbRegTransform * = NULL ); // \ru Сдвиг \en Translation
|
||||
virtual void Rotate( const MbAxis3D & axis, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси \en Rotate around an axis
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const ; // \ru Сделать копию \en Create a copy
|
||||
virtual void Transform( const MbMatrix3D & matr, MbRegTransform * = c3d_null ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
|
||||
virtual void Move( const MbVector3D & to, MbRegTransform * = c3d_null ); // \ru Сдвиг \en Translation
|
||||
virtual void Rotate( const MbAxis3D & axis, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate around an axis
|
||||
|
||||
virtual void GetProperties( MbProperties & properties ); // \ru Выдать свойства объекта \en Get properties of the object
|
||||
virtual void SetProperties( const MbProperties & properties ); // \ru Записать свойства объекта \en Set properties of the object
|
||||
@@ -88,7 +88,7 @@ public :
|
||||
// \ru Общие функции твердого тела \en Common functions of solid
|
||||
|
||||
virtual bool CreateShell( MbFaceShell *& shell, MbeCopyMode sameShell,
|
||||
RPArray<MbSpaceItem> * items = NULL ); // \ru Построение \en Construction
|
||||
RPArray<MbSpaceItem> * items = c3d_null ); // \ru Построение \en Construction
|
||||
|
||||
virtual MbFaceShell * InitShell( bool in );
|
||||
virtual void InitBasis( RPArray<MbSpaceItem> & items );
|
||||
|
||||
@@ -39,15 +39,15 @@ public:
|
||||
|
||||
// \ru Общие функции строителя. \en The common functions of the creator.
|
||||
virtual MbeCreatorType IsA() const; // \ru Тип элемента \en A type of element
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * iReg = NULL ) const; // \ru Сделать копию \en Create a copy
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * iReg = c3d_null ) const; // \ru Сделать копию \en Create a copy
|
||||
|
||||
virtual bool IsSame ( const MbCreator &, double accuracy ) const; // \ru Являются ли объекты равными? \en Determine whether an object is equal?
|
||||
virtual bool IsSimilar( const MbCreator & ) const; // \ru Являются ли объекты подобными \en Whether the objects are similar
|
||||
virtual bool SetEqual ( const MbCreator & ); // \ru Сделать равным \en Make equal
|
||||
|
||||
virtual void Transform( const MbMatrix3D &, MbRegTransform * = NULL ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
|
||||
virtual void Move ( const MbVector3D &, MbRegTransform * = NULL ); // \ru Сдвиг \en Translation
|
||||
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси \en Rotate about an axis
|
||||
virtual void Transform( const MbMatrix3D &, MbRegTransform * = c3d_null ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
|
||||
virtual void Move ( const MbVector3D &, MbRegTransform * = c3d_null ); // \ru Сдвиг \en Translation
|
||||
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate about an axis
|
||||
|
||||
virtual MbePrompt GetPropertyName(); // \ru Дать имя свойства объекта \en Get the object property name
|
||||
virtual void GetProperties( MbProperties & ); // \ru Выдать свойства объекта \en Get properties of the object
|
||||
@@ -57,7 +57,7 @@ public:
|
||||
virtual void SetBasisPoints( const MbControlData3D & ); // \ru Изменить объект по контрольным точкам. \en Change the object by control points.
|
||||
|
||||
// \ru Построить кривую по журналу построения \en Create a curve from the history tree
|
||||
virtual bool CreateWireFrame( MbWireFrame *&, MbeCopyMode, RPArray<MbSpaceItem> * items = NULL );
|
||||
virtual bool CreateWireFrame( MbWireFrame *&, MbeCopyMode, RPArray<MbSpaceItem> * items = c3d_null );
|
||||
|
||||
/** \} */
|
||||
|
||||
|
||||
@@ -39,10 +39,10 @@ public :
|
||||
// \ru Общие функции математического объекта \en Common functions of the mathematical object
|
||||
|
||||
virtual MbeCreatorType IsA () const; ///< \ru Тип элемента \en Element type
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const; ///< \ru Сделать копию \en Make a copy
|
||||
virtual void Transform( const MbMatrix3D &, MbRegTransform * = NULL ); ///< \ru Преобразовать элемент согласно матрице \en Transform an element according to the matrix
|
||||
virtual void Move ( const MbVector3D &, MbRegTransform * = NULL ); ///< \ru Сдвиг \en Translation
|
||||
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = NULL ); ///< \ru Поворот вокруг оси \en Rotation about an axis
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const; ///< \ru Сделать копию \en Make a copy
|
||||
virtual void Transform( const MbMatrix3D &, MbRegTransform * = c3d_null ); ///< \ru Преобразовать элемент согласно матрице \en Transform an element according to the matrix
|
||||
virtual void Move ( const MbVector3D &, MbRegTransform * = c3d_null ); ///< \ru Сдвиг \en Translation
|
||||
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = c3d_null ); ///< \ru Поворот вокруг оси \en Rotation about an axis
|
||||
|
||||
virtual bool IsSame( const MbCreator &, double accuracy ) const; // \ru Являются ли объекты равными? \en Determine whether an object is equal?
|
||||
virtual bool IsSimilar( const MbCreator & ) const; // \ru Являются ли объекты подобными. \en Whether the objects are similar
|
||||
@@ -58,7 +58,7 @@ public :
|
||||
// \ru Общие функции твердого тела \en Common functions of solid solid
|
||||
|
||||
virtual bool CreateShell( MbFaceShell *& shell, MbeCopyMode sameShell,
|
||||
RPArray<MbSpaceItem> * items = NULL ); ///< \ru Построение \en Construction
|
||||
RPArray<MbSpaceItem> * items = c3d_null ); ///< \ru Построение \en Construction
|
||||
|
||||
|
||||
// \ru Дать параметры. \en Get the parameters.
|
||||
|
||||
@@ -29,7 +29,7 @@ protected :
|
||||
RPArray<MbContourOnSurface> curves; ///< \ru Плоские сечения. \en Plane sections.
|
||||
SPtr<MbCurve3D> spine; ///< \ru Осевая линия (может отсутствовать). \en Spine curve (can be absent).
|
||||
LoftedValues parameters; ///< \ru Параметры. \en Parameters.
|
||||
RPArray<MbCurve3D> * guideCurves; ///< \ru Массив направляющих кривых (может быть NULL). \en An array of guide curves (can be NULL).
|
||||
RPArray<MbCurve3D> * guideCurves; ///< \ru Массив направляющих кривых (может быть c3d_null). \en An array of guide curves (can be c3d_null).
|
||||
SArray<MbCartPoint3D> * userPnts; ///< \ru Пользовательские точки на сечениях. \en Custom points on the sections.
|
||||
|
||||
public:
|
||||
@@ -64,10 +64,10 @@ public :
|
||||
// \ru Общие функции математического объекта \en Common functions of the mathematical object
|
||||
|
||||
virtual MbeCreatorType IsA() const; // \ru Тип элемента \en A type of element
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const ; // \ru Сделать копию \en Create a copy
|
||||
virtual void Transform( const MbMatrix3D &, MbRegTransform * = NULL ); // \ru Преобразовать \en Transform
|
||||
virtual void Move ( const MbVector3D &, MbRegTransform * = NULL ); // \ru Сдвиг \en Translation
|
||||
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси \en Rotate around an axis
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const ; // \ru Сделать копию \en Create a copy
|
||||
virtual void Transform( const MbMatrix3D &, MbRegTransform * = c3d_null ); // \ru Преобразовать \en Transform
|
||||
virtual void Move ( const MbVector3D &, MbRegTransform * = c3d_null ); // \ru Сдвиг \en Translation
|
||||
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate around an axis
|
||||
|
||||
virtual void GetProperties( MbProperties & ); // \ru Выдать свойства объекта \en Get properties of the object
|
||||
virtual void SetProperties( const MbProperties & ); // \ru Записать свойства объекта \en Set properties of the object
|
||||
|
||||
@@ -48,13 +48,13 @@ private:
|
||||
|
||||
public:
|
||||
virtual MbeCreatorType IsA() const; // \ru Тип элемента \en Type of element
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию \en Create a copy
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию \en Create a copy
|
||||
virtual bool IsSame( const MbCreator &, double accuracy ) const; // \ru Являются ли объекты равными? \en Determine whether an object is equal?
|
||||
virtual bool IsSimilar( const MbCreator & ) const; // \ru Являются ли объекты подобными \en Whether the objects are similar
|
||||
virtual bool SetEqual ( const MbCreator & ); // \ru Сделать равным \en Make equal
|
||||
virtual void Transform( const MbMatrix3D &, MbRegTransform * = NULL ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
|
||||
virtual void Move ( const MbVector3D &, MbRegTransform * = NULL ); // \ru Сдвиг \en Translation
|
||||
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси \en Rotate about an axis
|
||||
virtual void Transform( const MbMatrix3D &, MbRegTransform * = c3d_null ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
|
||||
virtual void Move ( const MbVector3D &, MbRegTransform * = c3d_null ); // \ru Сдвиг \en Translation
|
||||
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate about an axis
|
||||
|
||||
virtual void GetProperties( MbProperties & properties ); // \ru Выдать свойства объекта \en Get properties of the object
|
||||
virtual void SetProperties( const MbProperties & properties ); // \ru Записать свойства объекта \en Set properties of the object
|
||||
@@ -62,7 +62,7 @@ public:
|
||||
|
||||
// \ru Построение оболочки по исходным данным \en Construction of a shell from the given data
|
||||
virtual bool CreateShell( MbFaceShell *& shell, MbeCopyMode sameShell,
|
||||
RPArray<MbSpaceItem> * items = NULL );
|
||||
RPArray<MbSpaceItem> * items = c3d_null );
|
||||
|
||||
/// \ru Дать параметры. \en Get the parameters.
|
||||
void GetParameters( MedianShellValues & params ) const { params = parameters; }
|
||||
@@ -89,7 +89,7 @@ IMPL_PERSISTENT_OPS( MbMedianShell )
|
||||
The function simultaneously creates the shell and its constructor.\n \~
|
||||
\param[in] solid - \ru Исходное тело.
|
||||
\en The initial solid. \~
|
||||
\param[in] faces - \ru Выбранные пары граней.
|
||||
\param[in] faceIndexes - \ru Выбранные пары граней.
|
||||
\en Selected face pairs. \~
|
||||
\param[in] parameters - \ru Параметры операции.
|
||||
\en Parameters of operation. \~
|
||||
|
||||
@@ -42,12 +42,12 @@ public:
|
||||
|
||||
public: // \ru Общие функции математического объекта \en Common functions of the mathematical object
|
||||
virtual MbeCreatorType IsA() const; ///< \ru Тип элемента \en Element type
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const; ///< \ru Сделать копию \en Make a copy
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const; ///< \ru Сделать копию \en Make a copy
|
||||
virtual bool IsSame( const MbCreator &, double accuracy ) const; // \ru Являются ли объекты равными? \en Determine whether an object is equal?
|
||||
virtual bool SetEqual ( const MbCreator & ); ///< \ru Сделать равным \en Make equal
|
||||
virtual void Transform( const MbMatrix3D &, MbRegTransform * = NULL ); ///< \ru Преобразовать по матрице \en Transform according to the matrix
|
||||
virtual void Move ( const MbVector3D &, MbRegTransform * = NULL ); ///< \ru Сдвиг по вектору \en Translation by the vector
|
||||
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = NULL ); ///< \ru Поворот вокруг оси \en Rotation about an axis
|
||||
virtual void Transform( const MbMatrix3D &, MbRegTransform * = c3d_null ); ///< \ru Преобразовать по матрице \en Transform according to the matrix
|
||||
virtual void Move ( const MbVector3D &, MbRegTransform * = c3d_null ); ///< \ru Сдвиг по вектору \en Translation by the vector
|
||||
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = c3d_null ); ///< \ru Поворот вокруг оси \en Rotation about an axis
|
||||
|
||||
virtual MbePrompt GetPropertyName(); ///< \ru Выдать заголовок свойства объекта \en Get name of object property
|
||||
virtual void GetProperties( MbProperties & ); ///< \ru Выдать свойства объекта \en Get properties of the object
|
||||
@@ -59,7 +59,7 @@ public: // \ru Общие функции математического объе
|
||||
public:
|
||||
/// \ru Построение оболочки \en Creation of a shell
|
||||
virtual bool CreateShell( MbFaceShell *& shell, MbeCopyMode sameShell,
|
||||
RPArray<MbSpaceItem> * items = NULL );
|
||||
RPArray<MbSpaceItem> * items = c3d_null );
|
||||
// \ru Дать параметры. \en Get the parameters.
|
||||
void GetParameters( MeshSurfaceValues & params ) const;
|
||||
// \ru Установить параметры. \en Set the parameters.
|
||||
|
||||
@@ -41,12 +41,12 @@ public: // \ru деструктор \en destructor
|
||||
|
||||
public: // \ru Общие функции математического объекта \en Common functions of the mathematical object
|
||||
virtual MbeCreatorType IsA() const; // \ru Тип элемента \en A type of element
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const; // \ru сделать копию \en create a copy
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru сделать копию \en create a copy
|
||||
virtual bool IsSame( const MbCreator & other, double accuracy ) const; // \ru Являются ли объекты равными? \en Determine whether an object is equal?
|
||||
virtual bool SetEqual ( const MbCreator & ); // \ru сделать равным \en make equal
|
||||
virtual void Transform( const MbMatrix3D &, MbRegTransform * = NULL ); // \ru Преобразовать по матрице \en Transform according to the matrix
|
||||
virtual void Move ( const MbVector3D &, MbRegTransform * = NULL ); // \ru сдвиг по вектору \en translation by a vector
|
||||
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси \en Rotate around an axis
|
||||
virtual void Transform( const MbMatrix3D &, MbRegTransform * = c3d_null ); // \ru Преобразовать по матрице \en Transform according to the matrix
|
||||
virtual void Move ( const MbVector3D &, MbRegTransform * = c3d_null ); // \ru сдвиг по вектору \en translation by a vector
|
||||
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate around an axis
|
||||
|
||||
virtual MbePrompt GetPropertyName(); // \ru выдать заголовок свойства объекта \en get a name of object property
|
||||
virtual void GetProperties( MbProperties & properties ); // \ru выдать свойства объекта \en get properties of the object
|
||||
@@ -56,7 +56,7 @@ public: // \ru Общие функции математического объе
|
||||
|
||||
/// \ru Построение оболочки. \en creation of a shell
|
||||
virtual bool CreateShell( MbFaceShell *& shell, MbeCopyMode sameShell,
|
||||
RPArray<MbSpaceItem> * items = NULL );
|
||||
RPArray<MbSpaceItem> * items = c3d_null );
|
||||
virtual void Refresh( MbFaceShell & outer ); ///< \ru обновить форму оболочки \en update shape of the shell
|
||||
// \ru Выдать базовые объекты. \en Get basis objects.
|
||||
virtual void GetBasisItems( RPArray<MbSpaceItem> & s );
|
||||
@@ -106,12 +106,12 @@ public: // \ru деструктор \en destructor
|
||||
|
||||
public: // \ru Общие функции математического объекта \en Common functions of the mathematical object
|
||||
virtual MbeCreatorType IsA() const; // \ru Тип элемента \en A type of element
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const; // \ru сделать копию \en create a copy
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru сделать копию \en create a copy
|
||||
virtual bool IsSame( const MbCreator & other, double accuracy ) const; // \ru Являются ли объекты равными? \en Determine whether an object is equal?
|
||||
virtual bool SetEqual ( const MbCreator & ); // \ru сделать равным \en make equal
|
||||
virtual void Transform( const MbMatrix3D &, MbRegTransform * = NULL ); // \ru Преобразовать по матрице \en Transform according to the matrix
|
||||
virtual void Move ( const MbVector3D &, MbRegTransform * = NULL ); // \ru сдвиг по вектору \en translation by a vector
|
||||
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси \en Rotate around an axis
|
||||
virtual void Transform( const MbMatrix3D &, MbRegTransform * = c3d_null ); // \ru Преобразовать по матрице \en Transform according to the matrix
|
||||
virtual void Move ( const MbVector3D &, MbRegTransform * = c3d_null ); // \ru сдвиг по вектору \en translation by a vector
|
||||
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate around an axis
|
||||
|
||||
virtual MbePrompt GetPropertyName(); // \ru выдать заголовок свойства объекта \en get a name of object property
|
||||
virtual void GetProperties( MbProperties & properties ); // \ru выдать свойства объекта \en get properties of the object
|
||||
@@ -121,7 +121,7 @@ public: // \ru Общие функции математического объе
|
||||
|
||||
/// \ru построение оболочки \en creation of a shell
|
||||
virtual bool CreateShell( MbFaceShell *& shell, MbeCopyMode sameShell,
|
||||
RPArray<MbSpaceItem> * items = NULL );
|
||||
RPArray<MbSpaceItem> * items = c3d_null );
|
||||
virtual void Refresh( MbFaceShell & outer ); ///< \ru обновить форму оболочки \en update shape of the shell
|
||||
// \ru Выдать базовые объекты. \en Get basis objects.
|
||||
virtual void GetBasisItems( RPArray<MbSpaceItem> & s );
|
||||
|
||||
@@ -62,12 +62,12 @@ public:
|
||||
// \ru Общие функции математического объекта \en Common functions of the mathematical object
|
||||
|
||||
virtual MbeCreatorType IsA() const; // \ru Тип элемента \en A type of element
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию \en Create a copy
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию \en Create a copy
|
||||
virtual bool IsSame( const MbCreator & other, double accuracy ) const; // \ru Являются ли объекты равными? \en Determine whether an object is equal?
|
||||
virtual bool SetEqual ( const MbCreator & ); // \ru Сделать равным \en Make equal
|
||||
virtual void Transform( const MbMatrix3D &, MbRegTransform * = NULL ); // \ru Преобразовать по матрице \en Transform according to the matrix
|
||||
virtual void Move ( const MbVector3D &, MbRegTransform * = NULL ); // \ru Сдвиг по вектору \en Translation by the vector
|
||||
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси \en Rotate around an axis
|
||||
virtual void Transform( const MbMatrix3D &, MbRegTransform * = c3d_null ); // \ru Преобразовать по матрице \en Transform according to the matrix
|
||||
virtual void Move ( const MbVector3D &, MbRegTransform * = c3d_null ); // \ru Сдвиг по вектору \en Translation by the vector
|
||||
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate around an axis
|
||||
|
||||
virtual MbePrompt GetPropertyName(); // \ru Выдать заголовок свойства объекта \en Get a name of object property
|
||||
virtual void GetProperties( MbProperties & properties ); // \ru Выдать свойства объекта \en Get properties of the object
|
||||
@@ -77,7 +77,7 @@ public:
|
||||
|
||||
/// \ru Построение оболочки \en Creation of a shell
|
||||
virtual bool CreateShell( MbFaceShell *& shell, MbeCopyMode sameShell,
|
||||
RPArray<MbSpaceItem> * items = NULL );
|
||||
RPArray<MbSpaceItem> * items = c3d_null );
|
||||
virtual void Refresh( MbFaceShell & outer ); ///< \ru Обновить форму оболочки \en Update shape of the shell
|
||||
|
||||
// \ru Дать параметры. \en Get the parameters.
|
||||
|
||||
+31
-29
@@ -11,6 +11,7 @@
|
||||
|
||||
|
||||
#include <creator.h>
|
||||
#include <mb_vector3d.h>
|
||||
#include <cur_nurbs3d.h>
|
||||
|
||||
|
||||
@@ -24,14 +25,14 @@
|
||||
// ---
|
||||
class MATH_CLASS MbNurbs3DCreator : public MbCreator {
|
||||
private:
|
||||
SArray<MbCartPoint3D> points; // \ru Точки, через которые проходит сплайн \en Points which the spline passes through
|
||||
SArray<double> weights; // \ru Веса \en Weights
|
||||
SArray<double> knots; // \ru Узлы \en Knots
|
||||
RPArray< MbPntMatingData<MbVector3D> > matingData; // \ru Данные сопряжения в точках \en Data about mating in the points
|
||||
MbeSplineParamType paramType; // \ru Тип параметризации \en Parametrization type
|
||||
size_t degree; // \ru Степень сплайна \en Spline degree
|
||||
bool closed; // \ru Замкнутость сплайна \en Spline closedness
|
||||
bool throughPnts; // \ru через точки \en Through points
|
||||
SArray<MbCartPoint3D> points; // \ru Точки, через которые проходит сплайн \en Points which the spline passes through
|
||||
SArray<double> weights; // \ru Веса \en Weights
|
||||
SArray<double> knots; // \ru Узлы \en Knots
|
||||
RPArray<c3d::PntMatingData3D> matingData; // \ru Данные сопряжения в точках \en Data about mating in the points
|
||||
MbeSplineParamType paramType; // \ru Тип параметризации \en Parametrization type
|
||||
size_t degree; // \ru Степень сплайна \en Spline degree
|
||||
bool closed; // \ru Замкнутость сплайна \en Spline closedness
|
||||
bool throughPnts; // \ru через точки \en Through points
|
||||
|
||||
protected:
|
||||
MbNurbs3DCreator( const MbNurbs3DCreator &, MbRegDuplicate * iReg ); // \ru Конструктор копирования \en Copy-constructor
|
||||
@@ -42,24 +43,24 @@ public:
|
||||
MbeSplineParamType paramType, size_t degree, bool closed,
|
||||
const SArray<double> * weights,
|
||||
const SArray<double> * knots,
|
||||
const RPArray< MbPntMatingData<MbVector3D> > & matingData,
|
||||
const RPArray<c3d::PntMatingData3D> & matingData,
|
||||
const MbSNameMaker & snMaker );
|
||||
public:
|
||||
virtual ~MbNurbs3DCreator();
|
||||
|
||||
// \ru Общие функции строителя. \en The common functions of the creator.
|
||||
virtual MbeCreatorType IsA() const; // \ru Тип элемента \en A type of element
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * iReg = NULL ) const; // \ru Сделать копию \en Create a copy
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * iReg = c3d_null ) const; // \ru Сделать копию \en Create a copy
|
||||
|
||||
virtual bool IsSame ( const MbCreator &, double accuracy ) const; // \ru Являются ли объекты равными? \en Determine whether an object is equal?
|
||||
virtual bool IsSimilar( const MbCreator & ) const; // \ru Являются ли объекты подобными \en Whether the objects are similar
|
||||
virtual bool SetEqual ( const MbCreator & ); // \ru Сделать равным \en Make equal
|
||||
|
||||
virtual void Transform( const MbMatrix3D &, MbRegTransform * = NULL ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
|
||||
virtual void Move ( const MbVector3D &, MbRegTransform * = NULL ); // \ru Сдвиг \en Translation
|
||||
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси \en Rotate about an axis
|
||||
virtual void Transform( const MbMatrix3D &, MbRegTransform * = c3d_null ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
|
||||
virtual void Move ( const MbVector3D &, MbRegTransform * = c3d_null ); // \ru Сдвиг \en Translation
|
||||
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate about an axis
|
||||
|
||||
virtual MbePrompt GetPropertyName(); // \ru Дать имя свойства объекта \en Get the object property name
|
||||
virtual MbePrompt GetPropertyName(); // \ru Дать имя свойства объекта \en Get the object property name
|
||||
virtual void GetProperties( MbProperties & ); // \ru Выдать свойства объекта \en Get properties of the object
|
||||
virtual void SetProperties( const MbProperties & ); // \ru Записать свойства объекта \en Set properties of the object
|
||||
virtual void GetBasisItems ( RPArray<MbSpaceItem> & ); // \ru Дать базовые объекты \en Get the basis objects
|
||||
@@ -67,7 +68,7 @@ public:
|
||||
virtual void SetBasisPoints( const MbControlData3D & ); // \ru Изменить объект по контрольным точкам. \en Change the object by control points.
|
||||
|
||||
// \ru Построить кривую по журналу построения \en Create a curve from the history tree
|
||||
virtual bool CreateWireFrame( MbWireFrame *&, MbeCopyMode, RPArray<MbSpaceItem> * items = NULL );
|
||||
virtual bool CreateWireFrame( MbWireFrame *&, MbeCopyMode, RPArray<MbSpaceItem> * items = c3d_null );
|
||||
|
||||
/** \} */
|
||||
|
||||
@@ -80,6 +81,7 @@ private:
|
||||
|
||||
IMPL_PERSISTENT_OPS( MbNurbs3DCreator )
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Создать пространственный сплайн через точки и с сопряжениями.
|
||||
\en Create a spatial spline through points and with the given tangents. \~
|
||||
@@ -94,14 +96,14 @@ IMPL_PERSISTENT_OPS( MbNurbs3DCreator )
|
||||
\ingroup Curve3D_Modeling
|
||||
*/
|
||||
//---
|
||||
MATH_FUNC (MbCreator *) CreateSplineThrough( const SArray<MbCartPoint3D> & points, // \ru Точки \en Points
|
||||
MbeSplineParamType paramType, // \ru Тип параметризации \en Parametrization type
|
||||
size_t degree, // \ru Порядок сплайна \en Spline degree
|
||||
bool closed, // \ru Замкнуть \en Make close
|
||||
RPArray< MbPntMatingData<MbVector3D> > & transitions, // \ru Сопряжения \en Tangents
|
||||
const MbSNameMaker & snMaker, // \ru Именователь \en An object for naming the new objects
|
||||
MbResultType & resType,
|
||||
MbCurve3D *& resCurve );
|
||||
MATH_FUNC (MbCreator *) CreateSplineThrough( const SArray<MbCartPoint3D> & points, // \ru Точки \en Points
|
||||
MbeSplineParamType paramType, // \ru Тип параметризации \en Parametrization type
|
||||
size_t degree, // \ru Порядок сплайна \en Spline degree
|
||||
bool closed, // \ru Замкнуть \en Make close
|
||||
RPArray<c3d::PntMatingData3D> & transitions, // \ru Сопряжения \en Tangents
|
||||
const MbSNameMaker & snMaker, // \ru Именователь \en An object for naming the new objects
|
||||
MbResultType & resType,
|
||||
MbCurve3D *& resCurve );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
@@ -115,15 +117,15 @@ MATH_FUNC (MbCreator *) CreateSplineThrough( const SArray<MbCartPoint3D> & point
|
||||
*/
|
||||
//---
|
||||
MATH_FUNC (MbCreator *) CreateSplineBy( const SArray<MbCartPoint3D> & points, // \ru Точки \en Points
|
||||
size_t degree, // \ru Порядок сплайна \en Spline degree
|
||||
bool closed, // \ru Замкнуть \en Make close
|
||||
size_t degree, // \ru Порядок сплайна \en Spline degree
|
||||
bool closed, // \ru Замкнуть \en Make close
|
||||
const SArray<double> * weights, // \ru Веса \en Weights
|
||||
const SArray<double> * knots, // \ru Узлы \en Knots
|
||||
MbPntMatingData<MbVector3D> * begData, // \ru Сопряжение в начале \en Tangent at the start point
|
||||
MbPntMatingData<MbVector3D> * endData, // \ru Сопряжение в конце \en Tangent at the end point
|
||||
c3d::PntMatingData3D * begData, // \ru Сопряжение в начале \en Tangent at the start point
|
||||
c3d::PntMatingData3D * endData, // \ru Сопряжение в конце \en Tangent at the end point
|
||||
const MbSNameMaker & snMaker, // \ru Именователь \en An object for naming the new objects
|
||||
MbResultType & resType,
|
||||
MbCurve3D *& resCurve );
|
||||
MbResultType & resType,
|
||||
MbCurve3D *& resCurve );
|
||||
|
||||
|
||||
#endif // __CR_NURBS3D_H
|
||||
|
||||
@@ -40,12 +40,12 @@ public: // \ru Деструктор \en Destructor
|
||||
public: // \ru Общие функции математического объекта \en Common functions of the mathematical object
|
||||
|
||||
virtual MbeCreatorType IsA() const; // \ru Тип элемента \en A type of element
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию \en Create a copy
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию \en Create a copy
|
||||
virtual bool IsSame( const MbCreator & other, double accuracy ) const; // \ru Являются ли объекты равными? \en Determine whether an object is equal?
|
||||
virtual bool SetEqual ( const MbCreator & ); // \ru Сделать равным \en Make equal
|
||||
virtual void Transform( const MbMatrix3D &, MbRegTransform * = NULL ); // \ru Преобразовать по матрице \en Transform according to the matrix
|
||||
virtual void Move ( const MbVector3D &, MbRegTransform * = NULL ); // \ru Сдвиг по вектору \en Translation by a vector
|
||||
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси \en Rotate around an axis
|
||||
virtual void Transform( const MbMatrix3D &, MbRegTransform * = c3d_null ); // \ru Преобразовать по матрице \en Transform according to the matrix
|
||||
virtual void Move ( const MbVector3D &, MbRegTransform * = c3d_null ); // \ru Сдвиг по вектору \en Translation by a vector
|
||||
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate around an axis
|
||||
|
||||
virtual MbePrompt GetPropertyName(); // \ru Выдать заголовок свойства объекта \en Get a name of object property
|
||||
virtual void GetProperties( MbProperties & properties ); // \ru Выдать свойства объекта \en Get properties of the object
|
||||
@@ -57,7 +57,7 @@ public: // \ru Общие функции математического объе
|
||||
public:
|
||||
/// \ru Построение оболочки \en Creation of a shell
|
||||
virtual bool CreateShell( MbFaceShell *& shell, MbeCopyMode sameShell,
|
||||
RPArray<MbSpaceItem> * items = NULL );
|
||||
RPArray<MbSpaceItem> * items = c3d_null );
|
||||
virtual void Refresh( MbFaceShell & outer ); ///< \ru Обновить форму оболочки \en Update shape of the shell
|
||||
|
||||
private:
|
||||
|
||||
@@ -24,38 +24,36 @@ class IProgressIndicator;
|
||||
\en Construct a shell from NURBS-surfaces. \~
|
||||
\details \ru Построить оболочку из NURBS-поверхностей MbSplineSurface по заданному множеству точек условно расположенных в узлах четырехугольной сетки. \n
|
||||
\en Construct a shell from NURBS-surfaces MbSplineSurface by a given set of points conventionally located at the nodes of a quadrangle grid. \n \~
|
||||
\param[in] parameters - \ru Параметры построения.
|
||||
\en Parameters of a shell creation. \~
|
||||
\param[in] params - \ru Параметры построения.
|
||||
\en Parameters of a shell creation. \~
|
||||
\param[in] operNames - \ru Именователь граней.
|
||||
\en An object for naming faces. \~
|
||||
\param[in] isPhantom - \ru Режим создания фантома.
|
||||
\en Create in the phantom mode. \~
|
||||
\param[out] res - \ru Код результата операции.
|
||||
\en Operation result code. \~
|
||||
\param[out] shell - \ru Построенная оболочка.
|
||||
\en The resultant shell. \~
|
||||
\param[out] indicator - \ru Индикатор хода построения позволяющий прервать построение.
|
||||
\en Construction process indicator which allow to interrupt the construction. \~
|
||||
\result \ru Возвращает оболочку.
|
||||
\en Returns the constructуed shell. \~
|
||||
\result \ru Возвращает построенную оболочку.
|
||||
\en Returns the constructed shell. \~
|
||||
\ingroup Model_Creators
|
||||
*/
|
||||
// ---
|
||||
MATH_FUNC (MbFaceShell *) CreateNurbsSurfacesShell( NurbsSurfaceValues & params,
|
||||
const MbSNameMaker & operNames,
|
||||
bool isPhantom,
|
||||
MbResultType & res,
|
||||
IProgressIndicator * = NULL );
|
||||
MATH_FUNC (MbFaceShell *) CreateNurbsSurfacesShell( NurbsSurfaceValues & params,
|
||||
const MbSNameMaker & operNames,
|
||||
bool isPhantom,
|
||||
MbResultType & res,
|
||||
IProgressIndicator * indicator = c3d_null );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// проверить оболочку из нурбс-поверхностей
|
||||
/** \brief \ru Построить оболочку из NURBS-поверхностей.
|
||||
\en Construct a shell from NURBS-surfaces. \~
|
||||
\details \ru Построить оболочку из NURBS-поверхностей MbSplineSurface по заданному множеству точек условно расположенных в узлах четырехугольной сетки. \n
|
||||
\en Construct a shell from NURBS-surfaces MbSplineSurface by a given set of points conventionally located at the nodes of a quadrangle grid. \n \~
|
||||
\param[in] parameters - \ru Параметры построения.
|
||||
\en Parameters of a shell creation. \~
|
||||
// Проверить оболочку из нурбс-поверхностей
|
||||
/** \brief \ru Проверить оболочку из NURBS-поверхностей.
|
||||
\en Check a shell from NURBS-surfaces. \~
|
||||
\details \ru Проверить построенную оболочку из NURBS-поверхностей MbSplineSurface по заданному множеству точек условно расположенных в узлах четырехугольной сетки. \n
|
||||
\en Check a constructed shell from NURBS-surfaces MbSplineSurface by a given set of points conventionally located at the nodes of a quadrangle grid. \n \~
|
||||
\param[in] params - \ru Параметры построения.
|
||||
\en Parameters of a shell creation. \~
|
||||
\param[in] shell - \ru Оболочка, построенная по заданным параметрам.
|
||||
\en The shell constructed by given parameters. \~
|
||||
\param[out] indicator - \ru Индикатор хода построения позволяющий прервать построение.
|
||||
@@ -66,8 +64,8 @@ MATH_FUNC (MbFaceShell *) CreateNurbsSurfacesShell( NurbsSurfaceValues & params,
|
||||
*/
|
||||
// ---
|
||||
MATH_FUNC (MbResultType) CheckNurbsSurfacesShell( const NurbsSurfaceValues & params,
|
||||
const MbFaceShell & shell,
|
||||
IProgressIndicator * = NULL );
|
||||
const MbFaceShell & shell,
|
||||
IProgressIndicator * indicator = c3d_null );
|
||||
|
||||
|
||||
#endif // __NURBS_SURFACES_SHELL_H
|
||||
|
||||
@@ -50,12 +50,12 @@ public:
|
||||
|
||||
public: // \ru Общие функции математического объекта \en Common functions of the mathematical object
|
||||
virtual MbeCreatorType IsA() const; // \ru Тип элемента \en Type of element
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const; // \ru сделать копию \en create a copy
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru сделать копию \en create a copy
|
||||
virtual bool IsSame( const MbCreator &, double accuracy ) const; // \ru Являются ли объекты равными? \en Determine whether an object is equal?
|
||||
virtual bool SetEqual ( const MbCreator & ); // \ru сделать равным \en make equal
|
||||
virtual void Transform( const MbMatrix3D &, MbRegTransform * = NULL ); // \ru Преобразовать по матрице \en Transform according to the matrix
|
||||
virtual void Move ( const MbVector3D &, MbRegTransform * = NULL ); // \ru сдвиг по вектору \en translation by a vector
|
||||
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси \en Rotate about an axis
|
||||
virtual void Transform( const MbMatrix3D &, MbRegTransform * = c3d_null ); // \ru Преобразовать по матрице \en Transform according to the matrix
|
||||
virtual void Move ( const MbVector3D &, MbRegTransform * = c3d_null ); // \ru сдвиг по вектору \en translation by a vector
|
||||
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate about an axis
|
||||
|
||||
virtual MbePrompt GetPropertyName(); // \ru выдать заголовок свойства объекта \en get a name of object property
|
||||
virtual void GetProperties( MbProperties & properties ); // \ru выдать свойства объекта \en get properties of the object
|
||||
@@ -67,7 +67,7 @@ public: // \ru Общие функции математического объе
|
||||
public:
|
||||
/// \ru построение оболочки \en creation of a shell
|
||||
virtual bool CreateShell( MbFaceShell *& shell, MbeCopyMode sameShell,
|
||||
RPArray<MbSpaceItem> * items = NULL );
|
||||
RPArray<MbSpaceItem> * items = c3d_null );
|
||||
virtual void Refresh( MbFaceShell & outer ); ///< \ru обновить форму оболочки \en update shape of the shell
|
||||
|
||||
// \ru Дать параметры. \en Get the parameters.
|
||||
@@ -110,7 +110,7 @@ MATH_FUNC (MbCreator *) CreateNurbsShell( NurbsSurfaceValues & parameters,
|
||||
bool isPhantom,
|
||||
MbResultType & res,
|
||||
MbFaceShell *& shell,
|
||||
IProgressIndicator * indicator = NULL );
|
||||
IProgressIndicator * indicator = c3d_null );
|
||||
|
||||
|
||||
#endif // __CR_NURBS_SURFACES_SOLID_H
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
|
||||
#include <creator.h>
|
||||
#include <templ_sptr.h>
|
||||
#include <op_curve_parameter.h>
|
||||
#include <vector>
|
||||
|
||||
|
||||
@@ -29,46 +30,74 @@ class MATH_CLASS MbCurve3D;
|
||||
class MATH_CLASS MbOffsetCurveCreator : public MbCreator {
|
||||
private:
|
||||
// \ru Основные параметры \en The basic parameters
|
||||
SPtr<MbCurve3D> curve; // \ru Исходная кривая. \en The initial curve.
|
||||
MbVector3D dir; // \ru Направление смещения. \en The offset direction.
|
||||
double dist; // \ru Величина смещения. \en The offset distance.
|
||||
bool fromBeg; // \ru Вектор смещения привязан к началу кривой (иначе к концу). \en The translation vector is associated with the beginning (with the end otherwise).
|
||||
c3d::SpaceCurveSPtr curve; ///< \ru Исходная кривая. \en The initial curve.
|
||||
MbVector3D dir; ///< \ru Направление смещения. \en The offset direction.
|
||||
double dist; ///< \ru Величина смещения. \en The offset distance.
|
||||
bool fromBeg; ///< \ru Вектор смещения привязан к началу кривой (иначе к концу). \en The translation vector is associated with the beginning (with the end otherwise).
|
||||
|
||||
// \ru Дополнительные параметры (эквидистанта в пространстве) \en Auxiliary parameters (spatial offset)
|
||||
bool useFillet; // \ru Заполнять ли разрывы скруглениями (иначе продлять сегменты). \en Whether to fill the gaps with fillets (extend segments otherwise).
|
||||
bool keepRadius; // \ru Сохранять ли радиусы в скруглениях. \en Whether to keep the radii at fillets.
|
||||
bool bluntAngle; // \ru Притуплять острые углы стыков сегментов \en Whether to blunt the sharp edges of segments joints.
|
||||
bool useFillet; ///< \ru Заполнять ли разрывы скруглениями (иначе продлять сегменты). \en Whether to fill the gaps with fillets (extend segments otherwise).
|
||||
bool keepRadius; ///< \ru Сохранять ли радиусы в скруглениях. \en Whether to keep the radii at fillets.
|
||||
bool bluntAngle; ///< \ru Притуплять острые углы стыков сегментов \en Whether to blunt the sharp edges of segments joints.
|
||||
bool bySurfaceNormal; ///< \ru Эквидистанта согласована с нормалью к поверхности. \en Offset point is moved according to surface normal.
|
||||
c3d::SurfaceSPtr surface; ///< \ru Поверхность кривой или подобная ей. \en Curve's surface or similar to such surface.
|
||||
|
||||
// \ru Дополнительные параметры (эквидистанта на поверхности грани оболочки) \en Auxiliary parameters (offset on the shell face surface)
|
||||
c3d::CreatorsSPtrVector shellCreators; // \ru Журнал построения оболочки. \en The shell history tree.
|
||||
c3d::CreatorsSPtrVector shellCreators; ///< \ru Журнал построения оболочки. \en The shell history tree.
|
||||
|
||||
protected:
|
||||
MbOffsetCurveCreator( const MbOffsetCurveCreator &, MbRegDuplicate * iReg ); // \ru Конструктор копирования \en Copy-constructor
|
||||
MbOffsetCurveCreator( const MbOffsetCurveCreator & ); // \ru Не реализовано \en Not implemented
|
||||
MbOffsetCurveCreator(); // \ru Не реализовано \en Not implemented
|
||||
public:
|
||||
// \ru Конструктор эквидистанты в пространстве \en Constructor of offset in the space
|
||||
MbOffsetCurveCreator( const MbCurve3D &, bool fromBeg, const MbVector3D & dir, double dist,
|
||||
bool useFillet, bool keepRadius, bool bluntAngle,
|
||||
const MbSNameMaker & snMaker );
|
||||
// \ru Конструктор эквидистанты на поверхности грани оболочки \en Constructor of offset on the shell face surface
|
||||
MbOffsetCurveCreator( const MbCurve3D &, bool fromBeg, const MbVector3D & dir, double dist,
|
||||
const RPArray<MbCreator> & shellCreators, bool sameCreators,
|
||||
const MbSNameMaker & snMaker );
|
||||
/** \brief \ru Конструктор эквидистанты в пространстве.
|
||||
\en Constructor of offset in the space. \~
|
||||
\details \ru Конструктор эквидистанты в пространстве. \n
|
||||
\en Constructor of offset in the space. \n \~
|
||||
\param[in] curve - \ru Базовая кривая.
|
||||
\en The base curve. \~
|
||||
\param[in] params - \ru Параметры.
|
||||
\en Parameters. \~
|
||||
\param[in] snMaker - \ru Именователь с версия исполнения.
|
||||
\en Names makers with a version. \~
|
||||
*/
|
||||
MbOffsetCurveCreator( const MbCurve3D & curve,
|
||||
const MbSpatialOffsetCurveParams & params,
|
||||
const MbSNameMaker & snMaker );
|
||||
/** \brief \ru Конструктор эквидистанты на поверхности грани оболочки.
|
||||
\en Constructor of offset on the shell face surface. \~
|
||||
\details \ru Конструктор эквидистанты на поверхности грани оболочки. \n
|
||||
\en Constructor of offset on the shell face surface. \n \~
|
||||
\param[in] curve - \ru Базовая кривая.
|
||||
\en The base curve. \~
|
||||
\param[in] params - \ru Параметры.
|
||||
\en Parameters. \~
|
||||
\param[in] shellCreators - \ru Построители тела.
|
||||
\en Creators of a solid. \~
|
||||
\param[in] sameCreators - \ru Признак использования оригиналов построителей.
|
||||
\en Flag of using the original creators. \~
|
||||
\param[in] snMaker - \ru Именователь с версия исполнения.
|
||||
\en Names makers with a version. \~
|
||||
*/
|
||||
MbOffsetCurveCreator( const MbCurve3D & curve,
|
||||
const MbSurfaceOffsetCurveParams & params,
|
||||
const c3d::CreatorsSPtrVector & shellCreators,
|
||||
bool sameCreators,
|
||||
const MbSNameMaker & snMaker );
|
||||
public :
|
||||
virtual ~MbOffsetCurveCreator();
|
||||
|
||||
// \ru Общие функции строителя. \en The common functions of the creator.
|
||||
virtual MbeCreatorType IsA() const; // \ru Тип элемента \en A type of element
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * iReg = NULL ) const; // \ru Сделать копию \en Create a copy
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * iReg = c3d_null ) const; // \ru Сделать копию \en Create a copy
|
||||
|
||||
virtual bool IsSame ( const MbCreator &, double accuracy ) const; // \ru Являются ли объекты равными? \en Determine whether an object is equal?
|
||||
virtual bool IsSimilar( const MbCreator & ) const; // \ru Являются ли объекты подобными \en Whether the objects are similar
|
||||
virtual bool SetEqual ( const MbCreator & ); // \ru Сделать равным \en Make equal
|
||||
|
||||
virtual void Transform( const MbMatrix3D &, MbRegTransform * = NULL ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
|
||||
virtual void Move ( const MbVector3D &, MbRegTransform * = NULL ); // \ru Сдвиг \en Translation
|
||||
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси \en Rotate about an axis
|
||||
virtual void Transform( const MbMatrix3D &, MbRegTransform * = c3d_null ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
|
||||
virtual void Move ( const MbVector3D &, MbRegTransform * = c3d_null ); // \ru Сдвиг \en Translation
|
||||
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate about an axis
|
||||
|
||||
virtual MbePrompt GetPropertyName(); // \ru Дать имя свойства объекта \en Get the object property name
|
||||
virtual void GetProperties( MbProperties & ); // \ru Выдать свойства объекта \en Get properties of the object
|
||||
@@ -81,7 +110,7 @@ public :
|
||||
virtual bool SetInternalCreators( MbeCreatorType, c3d::CreatorsSPtrVector & ); // \ru Получить внутренние построители по типу. \en Get internal creators by type.
|
||||
|
||||
// \ru Построить кривую по журналу построения \en Create a curve from the history tree
|
||||
virtual bool CreateWireFrame( MbWireFrame *&, MbeCopyMode, RPArray<MbSpaceItem> * items = NULL );
|
||||
virtual bool CreateWireFrame( MbWireFrame *&, MbeCopyMode, RPArray<MbSpaceItem> * items = c3d_null );
|
||||
|
||||
/** \} */
|
||||
|
||||
@@ -89,7 +118,7 @@ private:
|
||||
// \ru Объявление оператора присваивания без реализации, чтобы не было присваивания по умолчанию. \en The declaration of the assignment operator without implementation, to prevent an assignment by default.
|
||||
void operator = ( const MbOffsetCurveCreator & ); // \ru Не реализовано!!! \en Not implemented!!!
|
||||
|
||||
DECLARE_PERSISTENT_CLASS_NEW_DEL( MbOffsetCurveCreator )
|
||||
DECLARE_PERSISTENT_CLASS_NEW_DEL( MbOffsetCurveCreator )
|
||||
};
|
||||
|
||||
IMPL_PERSISTENT_OPS( MbOffsetCurveCreator )
|
||||
@@ -97,22 +126,14 @@ IMPL_PERSISTENT_OPS( MbOffsetCurveCreator )
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Создать офсетную кривую по трехмерной кривой и вектору направления.
|
||||
\en Create an offset curve from three-dimensional curve and direction. \~
|
||||
\details \ru Создать офсетную кривую по трехмерной кривой и вектору направления. \n
|
||||
\en Create an offset curve from three-dimensional curve and direction. \n \~
|
||||
\param[in] initCurve - \ru Постранственная кривая, к которой строится эквидистантная.
|
||||
\details \ru Создать офсетную кривую в пространстве по трехмерной кривой и вектору направления. \n
|
||||
\en Create an offset curve in space from three-dimensional curve and direction. \n \~
|
||||
\param[in] initCurve - \ru Пространственная кривая, к которой строится эквидистантная.
|
||||
\en A space curve for which to construct the offset curve. \~
|
||||
\param[in] offsetVect - \ru Вектор, задающий смещение в точке кривой.
|
||||
\en The displacement vector at a point of the curve. \~
|
||||
\param[in] useFillet - \ru Если true, то разрывы заполнять скруглением, иначе продолженными кривыми.
|
||||
\en If 'true', the gaps are to be filled with fillet, otherwise with the extended curves. \~
|
||||
\param[in] keepRadius - \ru Если true, то в существующих скруглениях сохранять радиусы.
|
||||
\en If 'true', the existent fillet radii are to be kept. \~
|
||||
\param[in] fromBeg - \ru Вектор смещения привязан к началу.
|
||||
\en The translation vector is associated with the beginning. \~
|
||||
\param[in] snMaker - \ru Именователь кривых каркаса.
|
||||
\en An object defining the frame curves names. \~
|
||||
\param[out] resType - \ru Код результата операции
|
||||
\en Operation result code \~
|
||||
\param[in] params - \ru Параметры.
|
||||
\en Parameters. \~
|
||||
\param[out] resType - \ru Код результата операции
|
||||
\en Operation result code \~
|
||||
\param[out] resCurve - \ru Эквидистантная кривая.
|
||||
\en The offset curve. \~
|
||||
\return \ru Возвращает строитель.
|
||||
@@ -120,15 +141,10 @@ IMPL_PERSISTENT_OPS( MbOffsetCurveCreator )
|
||||
\ingroup Curve3D_Modeling
|
||||
*/
|
||||
//---
|
||||
MATH_FUNC (MbCreator *) CreateOffsetCurve( const MbCurve3D & initCurve,
|
||||
const MbVector3D & offsetVect,
|
||||
const bool useFillet,
|
||||
const bool keepRadius,
|
||||
const bool bluntAngle,
|
||||
const bool fromBeg,
|
||||
const MbSNameMaker & snMaker,
|
||||
MbResultType & resType,
|
||||
MbCurve3D *& resCurve );
|
||||
MATH_FUNC (MbCreator *) CreateOffsetCurve( const MbCurve3D & initCurve,
|
||||
const MbSpatialOffsetCurveParams & params,
|
||||
MbResultType & resType,
|
||||
MbCurve3D *& resCurve );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
@@ -136,18 +152,12 @@ MATH_FUNC (MbCreator *) CreateOffsetCurve( const MbCurve3D & initCurve,
|
||||
\en Create an offset curve from a spatial curve and offset value. \~
|
||||
\details \ru Создать офсетную кривую по поверхностной кривой и значению смещения. \n
|
||||
\en Create an offset curve from a spatial curve and offset value. \n \~
|
||||
\param[in] curve - \ru Кривая на поверхности грани face.
|
||||
\en A curve on face 'face' surface. \~
|
||||
\param[in] face - \ru Грань, на которой строится эквидистанта.
|
||||
\en The edge on which to build the offset curve. \~
|
||||
\param[in] dirAxis - \ru Направление смещения с точкой приложения.
|
||||
\en The offset direction with a point of application. \~
|
||||
\param[in] dist - \ru Величина смещения.
|
||||
\en The offset distance. \~
|
||||
\param[in] snMaker - \ru Именователь кривых каркаса.
|
||||
\en An object defining the frame curves names. \~
|
||||
\param[out] resType - \ru Код результата операции
|
||||
\en Operation result code \~
|
||||
\param[in] curve - \ru Кривая на поверхности грани face.
|
||||
\en A curve on face 'face' surface. \~
|
||||
\param[in] params - \ru Параметры.
|
||||
\en Parameters. \~
|
||||
\param[out] resType - \ru Код результата операции
|
||||
\en Operation result code \~
|
||||
\param[out] resCurves - \ru Множество эквидистантных кривых.
|
||||
\en Offset curve array. \~
|
||||
\return \ru Возвращает строитель.
|
||||
@@ -155,13 +165,10 @@ MATH_FUNC (MbCreator *) CreateOffsetCurve( const MbCurve3D & initCurve,
|
||||
\ingroup Curve3D_Modeling
|
||||
*/
|
||||
//---
|
||||
MATH_FUNC (MbCreator *) CreateOffsetCurve( const MbCurve3D & curve,
|
||||
const MbFace & face,
|
||||
const MbAxis3D & dirAxis,
|
||||
double dist,
|
||||
const MbSNameMaker & snMaker,
|
||||
MbResultType & resType,
|
||||
RPArray<MbCurve3D> & resCurves );
|
||||
MATH_FUNC (MbCreator *) CreateOffsetCurve( const MbCurve3D & curve,
|
||||
const MbSurfaceOffsetCurveParams & params,
|
||||
MbResultType & resType,
|
||||
RPArray<MbCurve3D> & resCurves );
|
||||
|
||||
|
||||
#endif // __CR_OFFSET_CURVE_H
|
||||
|
||||
@@ -54,10 +54,10 @@ public :
|
||||
// \ru Общие функции математического объекта \en Common functions of the mathematical object
|
||||
|
||||
virtual MbeCreatorType IsA() const; // \ru Тип элемента \en Type of element
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const ;
|
||||
virtual void Transform( const MbMatrix3D &, MbRegTransform * = NULL );
|
||||
virtual void Move ( const MbVector3D &, MbRegTransform * = NULL );
|
||||
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = NULL );
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const ;
|
||||
virtual void Transform( const MbMatrix3D &, MbRegTransform * = c3d_null );
|
||||
virtual void Move ( const MbVector3D &, MbRegTransform * = c3d_null );
|
||||
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = c3d_null );
|
||||
|
||||
virtual MbePrompt GetPropertyName(); // \ru Выдать заголовок свойства объекта \en Get a name of object property
|
||||
virtual void GetProperties( MbProperties & ); // \ru Выдать свойства объекта \en Get properties of the object
|
||||
@@ -72,7 +72,7 @@ public :
|
||||
|
||||
// \ru Построение оболочки по исходным данным \en Construction of a shell from the given data
|
||||
virtual bool CreateShell( MbFaceShell *& shell, MbeCopyMode sameShell,
|
||||
RPArray<MbSpaceItem> * items = NULL );
|
||||
RPArray<MbSpaceItem> * items = c3d_null );
|
||||
|
||||
// \ru Дать параметры. \en Get the parameters.
|
||||
void GetParameters( PatchValues & params ) const { params = parameters; }
|
||||
@@ -145,8 +145,8 @@ MATH_FUNC (MbCreator *) CreatePatchSet( const RPArray<MbPatchCurve> & initEdges,
|
||||
Одновременно с построением оболочки функция создает её строитель.\n
|
||||
\en Construct a patch-shaped shell from the given curves.
|
||||
The function simultaneously creates the shell and its constructor.\n \~
|
||||
\param[in] initEdges - \ru Кривые, определяющие края заплатки.
|
||||
\en Curves determining the bounds of the patch. \~
|
||||
\param[in] initCurves - \ru Кривые, определяющие края заплатки.
|
||||
\en Curves determining the bounds of the patch. \~
|
||||
\param[in] parameters - \ru Параметры построения.
|
||||
\en Parameters of shell creation. \~
|
||||
\param[in] operNames - \ru Именователь граней.
|
||||
@@ -160,11 +160,11 @@ MATH_FUNC (MbCreator *) CreatePatchSet( const RPArray<MbPatchCurve> & initEdges,
|
||||
\ingroup Model_Creators
|
||||
*/
|
||||
// ---
|
||||
MATH_FUNC (MbCreator *)CreatePatchSet( const RPArray<MbCurve3D> & initCurves,
|
||||
const PatchValues & parameters,
|
||||
const MbSNameMaker & operNames,
|
||||
MbResultType & res,
|
||||
MbFaceShell *& shell );
|
||||
MATH_FUNC (MbCreator *) CreatePatchSet( const RPArray<MbCurve3D> & initCurves,
|
||||
const PatchValues & parameters,
|
||||
const MbSNameMaker & operNames,
|
||||
MbResultType & res,
|
||||
MbFaceShell *& shell );
|
||||
|
||||
|
||||
#endif // __CR_PATCH_CREATOR_H
|
||||
|
||||
@@ -49,15 +49,15 @@ public:
|
||||
|
||||
// \ru Общие функции строителя. \en The common functions of the creator.
|
||||
virtual MbeCreatorType IsA() const; // \ru Тип элемента \en A type of element
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * iReg = NULL ) const; // \ru Сделать копию \en Create a copy
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * iReg = c3d_null ) const; // \ru Сделать копию \en Create a copy
|
||||
|
||||
virtual bool IsSame ( const MbCreator &, double accuracy ) const; // \ru Являются ли объекты равными? \en Determine whether an object is equal?
|
||||
virtual bool IsSimilar( const MbCreator & ) const; // \ru Являются ли объекты подобными \en Whether the objects are similar
|
||||
virtual bool SetEqual ( const MbCreator & ); // \ru Сделать равным \en Make equal
|
||||
|
||||
virtual void Transform( const MbMatrix3D &, MbRegTransform * = NULL ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
|
||||
virtual void Move ( const MbVector3D &, MbRegTransform * = NULL ); // \ru Сдвиг \en Translation
|
||||
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси \en Rotate about an axis
|
||||
virtual void Transform( const MbMatrix3D &, MbRegTransform * = c3d_null ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
|
||||
virtual void Move ( const MbVector3D &, MbRegTransform * = c3d_null ); // \ru Сдвиг \en Translation
|
||||
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate about an axis
|
||||
|
||||
virtual MbePrompt GetPropertyName(); // \ru Дать имя свойства объекта \en Get the object property name
|
||||
virtual void GetProperties( MbProperties & ); // \ru Выдать свойства объекта \en Get properties of the object
|
||||
@@ -70,7 +70,7 @@ public:
|
||||
virtual bool SetInternalCreators( MbeCreatorType, c3d::CreatorsSPtrVector & ); // \ru Получить внутренние построители по типу. \en Get internal creators by type.
|
||||
|
||||
// \ru Построить кривую по журналу построения \en Create a curve from the history tree
|
||||
virtual bool CreateWireFrame( MbWireFrame *&, MbeCopyMode, RPArray<MbSpaceItem> * items = NULL );
|
||||
virtual bool CreateWireFrame( MbWireFrame *&, MbeCopyMode, RPArray<MbSpaceItem> * items = c3d_null );
|
||||
|
||||
/** \} */
|
||||
|
||||
|
||||
@@ -65,10 +65,10 @@ public :
|
||||
\en \name Common functions of the mathematical object.
|
||||
\{ */
|
||||
virtual MbeCreatorType IsA() const; // \ru Тип элемента \en A type of element
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const ; // \ru Сделать копию \en Create a copy
|
||||
virtual void Transform( const MbMatrix3D &, MbRegTransform * = NULL ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
|
||||
virtual void Move( const MbVector3D &, MbRegTransform * = NULL ); // \ru Сдвиг \en Translation
|
||||
virtual void Rotate( const MbAxis3D &, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси \en Rotate around an axis
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const ; // \ru Сделать копию \en Create a copy
|
||||
virtual void Transform( const MbMatrix3D &, MbRegTransform * = c3d_null ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
|
||||
virtual void Move( const MbVector3D &, MbRegTransform * = c3d_null ); // \ru Сдвиг \en Translation
|
||||
virtual void Rotate( const MbAxis3D &, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate around an axis
|
||||
|
||||
virtual void GetProperties( MbProperties & ); // \ru Выдать свойства объекта \en Get properties of the object
|
||||
virtual void SetProperties( const MbProperties & ); // \ru Записать свойства объекта \en Set properties of the object
|
||||
@@ -156,7 +156,7 @@ MATH_FUNC (MbCreator *) CreateCurveRevolution( MbFaceShell * sol
|
||||
const MbSNameMaker & operNames,
|
||||
const RPArray<MbSNameMaker> & contoursNames,
|
||||
MbResultType & resType,
|
||||
MbFaceShell *& shell );
|
||||
c3d::ShellSPtr & shell );
|
||||
|
||||
|
||||
#endif // __CR_REVOLUTION_SOLID_H
|
||||
|
||||
@@ -43,10 +43,10 @@ public :
|
||||
// \ru Общие функции математического объекта \en Common functions of the mathematical object
|
||||
|
||||
virtual MbeCreatorType IsA () const; // \ru Тип элемента \en A type of element
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию \en Create a copy
|
||||
virtual void Transform ( const MbMatrix3D & matr, MbRegTransform * = NULL ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
|
||||
virtual void Move ( const MbVector3D & to, MbRegTransform * = NULL ); // \ru Сдвиг \en Translation
|
||||
virtual void Rotate ( const MbAxis3D & axis, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси \en Rotate around an axis
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию \en Create a copy
|
||||
virtual void Transform ( const MbMatrix3D & matr, MbRegTransform * = c3d_null ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
|
||||
virtual void Move ( const MbVector3D & to, MbRegTransform * = c3d_null ); // \ru Сдвиг \en Translation
|
||||
virtual void Rotate ( const MbAxis3D & axis, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate around an axis
|
||||
|
||||
virtual void GetProperties( MbProperties & properties ); // \ru Выдать свойства объекта \en Get properties of the object
|
||||
virtual void SetProperties( const MbProperties & properties ); // \ru Записать свойства объекта \en Set properties of the object
|
||||
@@ -59,7 +59,7 @@ public :
|
||||
// \ru Общие функции твердого тела \en Common functions of solid
|
||||
|
||||
virtual bool CreateShell( MbFaceShell *&shell, MbeCopyMode sameShell,
|
||||
RPArray <MbSpaceItem> *items = NULL ); // \ru Построение \en Construction
|
||||
RPArray <MbSpaceItem> *items = c3d_null ); // \ru Построение \en Construction
|
||||
|
||||
// \ru Дать параметры. \en Get the parameters.
|
||||
void GetParameters( RibValues & params ) const { params = parameters; }
|
||||
|
||||
@@ -46,12 +46,12 @@ public:
|
||||
|
||||
public: // \ru Общие функции математического объекта \en Common functions of the mathematical object
|
||||
virtual MbeCreatorType IsA() const; ///< \ru Тип элемента \en Element type
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const; ///< \ru Сделать копию \en Make a copy
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const; ///< \ru Сделать копию \en Make a copy
|
||||
virtual bool IsSame( const MbCreator &, double accuracy ) const; // \ru Являются ли объекты равными? \en Determine whether an object is equal?
|
||||
virtual bool SetEqual ( const MbCreator & ); ///< \ru Сделать равным \en Make equal
|
||||
virtual void Transform( const MbMatrix3D &, MbRegTransform * = NULL ); ///< \ru Преобразовать по матрице \en Transform according to the matrix
|
||||
virtual void Move ( const MbVector3D &, MbRegTransform * = NULL ); ///< \ru Сдвиг по вектору \en Translation by the vector
|
||||
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = NULL ); ///< \ru Поворот вокруг оси \en Rotation about an axis
|
||||
virtual void Transform( const MbMatrix3D &, MbRegTransform * = c3d_null ); ///< \ru Преобразовать по матрице \en Transform according to the matrix
|
||||
virtual void Move ( const MbVector3D &, MbRegTransform * = c3d_null ); ///< \ru Сдвиг по вектору \en Translation by the vector
|
||||
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = c3d_null ); ///< \ru Поворот вокруг оси \en Rotation about an axis
|
||||
|
||||
virtual void GetProperties( MbProperties & properties ); ///< \ru Выдать свойства объекта \en Get properties of the object
|
||||
virtual void SetProperties( const MbProperties & properties ); ///< \ru Записать свойства объекта \en Write properties of the object
|
||||
@@ -63,7 +63,7 @@ public: // \ru Общие функции математического объе
|
||||
public:
|
||||
/// \ru Построение оболочки \en Creation of a shell
|
||||
virtual bool CreateShell( MbFaceShell *& shell, MbeCopyMode sameShell,
|
||||
RPArray<MbSpaceItem> * items = NULL );
|
||||
RPArray<MbSpaceItem> * items = c3d_null );
|
||||
// \ru Дать параметры. \en Get the parameters.
|
||||
void GetParameters( RuledSurfaceValues & params ) const;
|
||||
// \ru Установить параметры. \en Set the parameters.
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
/**
|
||||
\file
|
||||
\brief \ru Строитель оболочки на поверхности переменного сечения.
|
||||
\en Constructor of shell of evolution solid. \~
|
||||
\en Constructor of shell on mutable section surface. \~
|
||||
|
||||
*/
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
@@ -22,7 +22,7 @@ class MATH_CLASS MbFaceShell;
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Строитель оболочки на поверхности переменного сечения.
|
||||
\en Constructor of the shell on swept mutable section surface. \~
|
||||
\en Constructor of the shell on mutable section surface. \~
|
||||
\details \ru Грань оболочки строится путём движения переменного сечения по опорной кривой. \n
|
||||
\en Constructor of face by moving generating curve along a reference spine curve. \n \~
|
||||
\ingroup Model_Creators
|
||||
@@ -30,13 +30,13 @@ class MATH_CLASS MbFaceShell;
|
||||
// ---
|
||||
class MATH_CLASS MbSectionShell : public MbCreator {
|
||||
protected :
|
||||
MbSectionData sectionData; ///< \ru Данные о поверхности переменного сечения. \en Data about swept mutable section surface.
|
||||
MbSectionCode sectionCode; ///< \ru Данные о поверхности переменного сечения. \en Data about swept mutable section surface.
|
||||
MbSectionData sectionData; ///< \ru Данные о поверхности переменного сечения. \en Data about mutable section surface.
|
||||
MbSectionCode sectionCode; ///< \ru Данные о поверхности переменного сечения. \en Data about mutable section surface.
|
||||
|
||||
/** \brief \ru Конструктор.
|
||||
\en Constructor. \~
|
||||
\param[in] data - \ru Данные о поверхности переменного сечения.
|
||||
\en Data about swept mutable section surface. \~
|
||||
\en Data about mutable section surface. \~
|
||||
\param[in] names - \ru Именователь грани оболочки.
|
||||
\en Generating face names. \~
|
||||
*/
|
||||
@@ -54,10 +54,10 @@ public :
|
||||
\en \name Common functions of the mathematical object.
|
||||
\{ */
|
||||
virtual MbeCreatorType IsA() const; // \ru Тип элемента \en A type of element
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const ; // \ru Сделать копию \en Create a copy
|
||||
virtual void Transform( const MbMatrix3D &, MbRegTransform * = NULL ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
|
||||
virtual void Move ( const MbVector3D &, MbRegTransform * = NULL ); // \ru Сдвиг \en Translation
|
||||
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси \en Rotate around an axis
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const ; // \ru Сделать копию \en Create a copy
|
||||
virtual void Transform( const MbMatrix3D &, MbRegTransform * = c3d_null ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
|
||||
virtual void Move ( const MbVector3D &, MbRegTransform * = c3d_null ); // \ru Сдвиг \en Translation
|
||||
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate around an axis
|
||||
|
||||
virtual void GetProperties( MbProperties & ); // \ru Выдать свойства объекта \en Get properties of the object
|
||||
virtual void SetProperties( const MbProperties & ); // \ru Записать свойства объекта \en Set properties of the object
|
||||
@@ -75,7 +75,7 @@ public :
|
||||
\en \name Common functions of the rigid solid (forming operations).
|
||||
\{ */
|
||||
virtual bool CreateShell( MbFaceShell *& shell, MbeCopyMode sameShell,
|
||||
RPArray<MbSpaceItem> * items = NULL ); // \ru Построение \en Construction
|
||||
RPArray<MbSpaceItem> * items = c3d_null ); // \ru Построение \en Construction
|
||||
|
||||
virtual void SetYourVersion( VERSION version );
|
||||
/** \} */
|
||||
@@ -94,7 +94,7 @@ public :
|
||||
/** \} */
|
||||
|
||||
/** \brief \ru Создать оболочку на поверхности переменного сечения.
|
||||
\en Create a shell on swept mutable section surface. \~
|
||||
\en Create a shell on mutable section surface. \~
|
||||
\details \ru Построить оболочку путём движения образующей кривой по направляющей кривой
|
||||
и выполнить булеву операцию с оболочкой, если последняя задана. \n
|
||||
Одновременно с построением оболочки функция создаёт её строитель.\n
|
||||
@@ -106,7 +106,7 @@ public :
|
||||
\param[in] sameShell - \ru Способ копирования граней.
|
||||
\en The method of copying faces. \~
|
||||
\param[in] data - \ru Данные о поверхности переменного сечения.
|
||||
\en Data about swept mutable section surface. \~
|
||||
\en Data about mutable section surface. \~
|
||||
\param[in] names - \ru Именователь грани оболочки.
|
||||
\en Generating face names. \~
|
||||
\param[out] res - \ru Код результата операции.
|
||||
|
||||
@@ -47,15 +47,15 @@ public:
|
||||
// \ru Общие функции математического объекта \en Common functions of the mathematical object
|
||||
|
||||
virtual MbeCreatorType IsA() const; // \ru Тип элемента \en Type of element
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию \en Create a copy
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию \en Create a copy
|
||||
|
||||
virtual bool IsSame ( const MbCreator & other, double accuracy ) const; // \ru Являются ли объекты равными? \en Determine whether an object is equal?
|
||||
virtual bool IsSimilar( const MbCreator & item ) const; // \ru Являются ли объекты подобными? \en Determine whether an object is similar?
|
||||
virtual bool SetEqual ( const MbCreator & ); // \ru Сделать равным \en Make equal
|
||||
|
||||
virtual void Transform( const MbMatrix3D &, MbRegTransform * = NULL ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
|
||||
virtual void Move ( const MbVector3D &, MbRegTransform * = NULL ); // \ru Сдвиг \en Translation
|
||||
virtual void Rotate ( const MbAxis3D &, double, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси \en Rotate about an axis
|
||||
virtual void Transform( const MbMatrix3D &, MbRegTransform * = c3d_null ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
|
||||
virtual void Move ( const MbVector3D &, MbRegTransform * = c3d_null ); // \ru Сдвиг \en Translation
|
||||
virtual void Rotate ( const MbAxis3D &, double, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate about an axis
|
||||
|
||||
virtual void GetProperties( MbProperties & properties ); // \ru Выдать свойства объекта \en Get properties of the object
|
||||
virtual void SetProperties( const MbProperties & properties ); // \ru Записать свойства объекта \en Set properties of the object
|
||||
@@ -65,7 +65,7 @@ public:
|
||||
|
||||
virtual bool CreateShell( MbFaceShell *& shell,
|
||||
MbeCopyMode sameShell,
|
||||
RPArray<MbSpaceItem> * items = NULL ); // \ru Построение \en Construction
|
||||
RPArray<MbSpaceItem> * items = c3d_null ); // \ru Построение \en Construction
|
||||
|
||||
private:
|
||||
// \ru Объявление оператора присваивания без реализации, чтобы не было присваивания по умолчанию. \en The declaration of the assignment operator without implementation to prevent an assignment by default.
|
||||
|
||||
@@ -58,14 +58,14 @@ public:
|
||||
// \ru Общие функции математического объекта \en Common functions of the mathematical object
|
||||
|
||||
virtual MbeCreatorType IsA() const; // \ru Тип элемента \en Type of element
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию \en Create a copy
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию \en Create a copy
|
||||
|
||||
virtual bool IsSame ( const MbCreator & other, double accuracy ) const; // \ru Являются ли объекты равными? \en Determine whether an object is equal?
|
||||
virtual bool IsSimilar( const MbCreator & item ) const; // \ru Являются ли объекты подобными? \en Determine whether an object is similar?
|
||||
virtual bool SetEqual ( const MbCreator & ); // \ru Сделать равным \en Make equal
|
||||
virtual void Transform( const MbMatrix3D & matr, MbRegTransform * = NULL ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
|
||||
virtual void Move ( const MbVector3D & to, MbRegTransform * = NULL ); // \ru Сдвиг \en Translation
|
||||
virtual void Rotate ( const MbAxis3D & axis, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси \en Rotate about an axis
|
||||
virtual void Transform( const MbMatrix3D & matr, MbRegTransform * = c3d_null ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
|
||||
virtual void Move ( const MbVector3D & to, MbRegTransform * = c3d_null ); // \ru Сдвиг \en Translation
|
||||
virtual void Rotate ( const MbAxis3D & axis, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate about an axis
|
||||
|
||||
virtual void GetProperties( MbProperties & properties ); // \ru Выдать свойства объекта \en Get properties of the object
|
||||
virtual void SetProperties( const MbProperties & properties ); // \ru Записать свойства объекта \en Set properties of the object
|
||||
@@ -76,7 +76,7 @@ public:
|
||||
|
||||
virtual bool CreateShell( MbFaceShell *& shell,
|
||||
MbeCopyMode sameShell,
|
||||
RPArray<MbSpaceItem> * items = NULL ); // \ru Построение \en Construction
|
||||
RPArray<MbSpaceItem> * items = c3d_null ); // \ru Построение \en Construction
|
||||
|
||||
// \ru Дать параметры. \en Get the parameters.
|
||||
void GetParameters( MbBendByEdgeValues & params ) const { params = parameters; }
|
||||
|
||||
@@ -49,15 +49,15 @@ public:
|
||||
// \ru Общие функции математического объекта \en Common functions of the mathematical object
|
||||
|
||||
virtual MbeCreatorType IsA() const; // \ru Тип элемента \en Type of element
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию \en Create a copy
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию \en Create a copy
|
||||
|
||||
virtual bool IsSame ( const MbCreator & other, double accuracy ) const; // \ru Являются ли объекты равными? \en Determine whether an object is equal?
|
||||
virtual bool IsSimilar( const MbCreator & item ) const; // \ru Являются ли объекты подобными? \en Determine whether an object is similar?
|
||||
virtual bool SetEqual ( const MbCreator & ); // \ru Сделать равным \en Make equal
|
||||
|
||||
virtual void Transform( const MbMatrix3D &, MbRegTransform * = NULL ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
|
||||
virtual void Move ( const MbVector3D &, MbRegTransform * = NULL ); // \ru Сдвиг \en Translation
|
||||
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси \en Rotate about an axis
|
||||
virtual void Transform( const MbMatrix3D &, MbRegTransform * = c3d_null ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
|
||||
virtual void Move ( const MbVector3D &, MbRegTransform * = c3d_null ); // \ru Сдвиг \en Translation
|
||||
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate about an axis
|
||||
|
||||
virtual MbePrompt GetPropertyName(); // \ru Выдать заголовок свойства объекта \en Get a name of object property
|
||||
virtual void GetProperties( MbProperties & properties ); // \ru Выдать свойства объекта \en Get properties of the object
|
||||
@@ -69,7 +69,7 @@ public:
|
||||
// \ru Общие функции твердого тела \en Common functions of solid solid
|
||||
|
||||
virtual bool CreateShell( MbFaceShell *& shell, MbeCopyMode sameShell,
|
||||
RPArray<MbSpaceItem> * items = NULL ); // \ru Построение \en Construction
|
||||
RPArray<MbSpaceItem> * items = c3d_null ); // \ru Построение \en Construction
|
||||
|
||||
// \ru Дать параметры. \en Get the parameters.
|
||||
void GetParameters( MbBendOverSegValues & params ) const { params = parameters; }
|
||||
|
||||
@@ -50,15 +50,15 @@ public:
|
||||
// \ru Общие функции математического объекта \en Common functions of the mathematical object
|
||||
|
||||
virtual MbeCreatorType IsA() const; // \ru Тип элемента \en Type of element
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию \en Create a copy
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию \en Create a copy
|
||||
|
||||
virtual bool IsSame ( const MbCreator & other, double accuracy ) const; // \ru Являются ли объекты равными? \en Determine whether an object is equal?
|
||||
virtual bool IsSimilar( const MbCreator & item ) const; // \ru Являются ли объекты подобными? \en Determine whether an object is similar?
|
||||
virtual bool SetEqual ( const MbCreator & ); // \ru Сделать равным \en Make equal
|
||||
|
||||
virtual void Transform( const MbMatrix3D & matr, MbRegTransform * = NULL ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
|
||||
virtual void Move ( const MbVector3D & to, MbRegTransform * = NULL ); // \ru Сдвиг \en Translation
|
||||
virtual void Rotate ( const MbAxis3D & axis, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси \en Rotate about an axis
|
||||
virtual void Transform( const MbMatrix3D & matr, MbRegTransform * = c3d_null ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
|
||||
virtual void Move ( const MbVector3D & to, MbRegTransform * = c3d_null ); // \ru Сдвиг \en Translation
|
||||
virtual void Rotate ( const MbAxis3D & axis, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate about an axis
|
||||
|
||||
virtual void GetProperties( MbProperties & properties ); // \ru Выдать свойства объекта \en Get properties of the object
|
||||
virtual void SetProperties( const MbProperties & properties ); // \ru Записать свойства объекта \en Set properties of the object
|
||||
@@ -68,7 +68,7 @@ public:
|
||||
|
||||
virtual bool CreateShell( MbFaceShell *& shell,
|
||||
MbeCopyMode sameShell,
|
||||
RPArray<MbSpaceItem> * items = NULL ); // \ru Построение \en Construction
|
||||
RPArray<MbSpaceItem> * items = c3d_null ); // \ru Построение \en Construction
|
||||
|
||||
private:
|
||||
// \ru Объявление оператора присваивания без реализации, чтобы не было присваивания по умолчанию. \en The declaration of the assignment operator without implementation to prevent an assignment by default.
|
||||
@@ -122,7 +122,7 @@ MATH_FUNC (MbCreator *) CreateBendUnbend( SPtr<MbFaceShell> & init
|
||||
const MbSNameMaker & names,
|
||||
MbResultType & res,
|
||||
MbFaceShell *& shell,
|
||||
RPArray<MbContour3D> * ribContours = NULL );
|
||||
RPArray<MbContour3D> * ribContours = c3d_null );
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,114 +1,114 @@
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/**
|
||||
\file
|
||||
\brief \ru Строитель оболочки из листового материала на основе произвольного тела.
|
||||
\en Constructor of the sheet metal shell based on an arbitrary solid.
|
||||
*/
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef __CR_SHEET_BUILDER_SOLID_H
|
||||
#define __CR_SHEET_BUILDER_SOLID_H
|
||||
|
||||
|
||||
#include <creator.h>
|
||||
#include <sheet_metal_param.h>
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Строитель оболочки из листового материала на основе произвольного тела.
|
||||
\en Constructor of the sheet metal shell based on an arbitrary solid. \~
|
||||
\details \ru Строитель оболочки из листового материала на основе граней и ребер произвольного тела.\n
|
||||
Оболочка строится на базе исходной плоской грани и указанных ребер сгиба и разреза.
|
||||
\en Constructor of the sheet metal shell based on faces and edges of an arbitrary solid. \n
|
||||
Shell builds based on initial planar face and given edges of bend and corner enclosure. \~
|
||||
\ingroup Model_Creators
|
||||
*/
|
||||
// ---
|
||||
class MATH_CLASS MbBuildSheetMetalSolid : public MbCreator {
|
||||
private:
|
||||
MbItemIndex faceIndex; ///< \ru Индекс исходной грани для построения листового тела. \en Index of initial face for sheet metal solid creation.
|
||||
bool sense; ///< \ru Признак совпадения придания толщины с нормалью исходной грани. \en Attribute of coincidence of extrusion direction to the normal of the initial face.
|
||||
MbSolidToSheetMetalValues parameters; ///< \ru Параметры построения листового тела по произвольному телу. \en The parameters of sheet metal solid building based on an arbitrary solid.
|
||||
|
||||
public :
|
||||
MbBuildSheetMetalSolid( const MbItemIndex & faceIndex,
|
||||
const bool sense,
|
||||
const MbSolidToSheetMetalValues & params,
|
||||
const MbSNameMaker & names );
|
||||
private:
|
||||
MbBuildSheetMetalSolid( const MbBuildSheetMetalSolid &, MbRegDuplicate * iReg );
|
||||
|
||||
public:
|
||||
virtual ~MbBuildSheetMetalSolid();
|
||||
|
||||
// \ru Общие функции математического объекта. \en Common functions of the mathematical object.
|
||||
|
||||
virtual MbeCreatorType IsA() const; // \ru Тип элемента. \en A type of element.
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию. \en Create a copy.
|
||||
|
||||
virtual bool IsSame ( const MbCreator & other, double accuracy ) const; // \ru Являются ли объекты равными? \en Determine whether an object is equal?
|
||||
virtual bool IsSimilar( const MbCreator & item ) const; // \ru Являются ли объекты подобными? \en Determine whether an object is similar?
|
||||
virtual bool SetEqual ( const MbCreator & ); // \ru Сделать равным. \en Make equal.
|
||||
|
||||
virtual void Transform( const MbMatrix3D &, MbRegTransform * = NULL ); // \ru Преобразовать элемент согласно матрице. \en Transform element according to the matrix.
|
||||
virtual void Move ( const MbVector3D &, MbRegTransform * = NULL ); // \ru Сдвиг. \en Translation.
|
||||
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси. \en Rotate around an axis.
|
||||
|
||||
virtual void GetProperties ( MbProperties & properties ); // \ru Выдать свойства объекта. \en Get properties of the object.
|
||||
virtual void SetProperties ( const MbProperties & properties ); // \ru Записать свойства объекта. \en Set properties of the object.
|
||||
virtual MbePrompt GetPropertyName(); // \ru Выдать заголовок свойства объекта. \en Get a name of object property.
|
||||
|
||||
// \ru Общие функции твердого тела. \en Common functions of solid.
|
||||
|
||||
// \ru Построение оболочки листового тела. \en Construction of a sheet metal shell.
|
||||
virtual bool CreateShell( MbFaceShell *& shell, MbeCopyMode sameShell, RPArray <MbSpaceItem> *items = NULL );
|
||||
// \ru Получить параметры. \en Get the parameters.
|
||||
void GetParameters( MbSolidToSheetMetalValues & params ) const { params = parameters; }
|
||||
// \ru Установить параметры. \en Set the parameters.
|
||||
void SetParameters( const MbSolidToSheetMetalValues & params ) { parameters = params; }
|
||||
|
||||
private:
|
||||
OBVIOUS_PRIVATE_COPY( MbBuildSheetMetalSolid )
|
||||
DECLARE_PERSISTENT_CLASS_NEW_DEL( MbBuildSheetMetalSolid )
|
||||
};
|
||||
|
||||
IMPL_PERSISTENT_OPS( MbBuildSheetMetalSolid )
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Строитель оболочки из листового материала на основе произвольного тела.
|
||||
\en Constructor of the sheet metal shell based on an arbitrary solid. \~
|
||||
\details \ru На базе исходной произвольной оболочки построить оболочку из листового материала. \n
|
||||
Одновременно с построением оболочки функция создаёт её строитель.\n
|
||||
\en A shell is to be constructed on the basis of the source arbitary shell. \n
|
||||
The function simultaneously creates the shell and its constructor.\n \~
|
||||
\param[in] solid - \ru Исходная оболочка.
|
||||
\en The source shell. \~
|
||||
\param[in] sameShell - \ru Режим копирования исходной оболочки.
|
||||
\en Mode of copying the source shell. \~
|
||||
\param[in] initFace - \ru Исходная грань для построения листового тела.
|
||||
\en The initial face for sheet metal solid construction. \~
|
||||
\param[in] sense - \ru Признак совпадения направления придания толщины с нормалью исходной грани.
|
||||
\en Attribute of coincidence of extrusion direction to the normal of the initial face. \~
|
||||
\param[in] params - \ru Параметры построения листового тела по произвольному телу.
|
||||
\en The parameters of sheet metal solid building based on an arbitrary solid. \~
|
||||
\param[in] nameMaker - \ru Именователь.
|
||||
\en An object for naming the new objects. \~
|
||||
\param[out] result - \ru Результирующее тело.
|
||||
\en The resultant solid. \~
|
||||
\result \ru Возвращает строитель оболочки.
|
||||
\en Returns the shell constructor. \~
|
||||
\ingroup Model_Creators
|
||||
*/
|
||||
// ---
|
||||
MATH_FUNC (MbCreator *) ConvertShellToSheetMetall( MbFaceShell * initialShell, // Исходная оболочка,
|
||||
const MbeCopyMode sameShell, // флаг способа использования исходной оболочки,
|
||||
const MbFace & initFace, // базовая грань, относительно которой будет строиться листовое тело,
|
||||
bool sense, // признак совпадения придания толщины с нормалью базовой грани,
|
||||
MbSolidToSheetMetalValues & params, // параметры построения листового тела,
|
||||
const MbSNameMaker & nameMaker, // именователь,
|
||||
MbResultType & res, // флаг успешности операции,
|
||||
SPtr<MbFaceShell> & resultShell ); // результирующая оболочка.
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/**
|
||||
\file
|
||||
\brief \ru Строитель оболочки из листового материала на основе произвольного тела.
|
||||
\en Constructor of the sheet metal shell based on an arbitrary solid.
|
||||
*/
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef __CR_SHEET_BUILDER_SOLID_H
|
||||
#define __CR_SHEET_BUILDER_SOLID_H
|
||||
|
||||
|
||||
#include <creator.h>
|
||||
#include <sheet_metal_param.h>
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Строитель оболочки из листового материала на основе произвольного тела.
|
||||
\en Constructor of the sheet metal shell based on an arbitrary solid. \~
|
||||
\details \ru Строитель оболочки из листового материала на основе граней и ребер произвольного тела.\n
|
||||
Оболочка строится на базе исходной плоской грани и указанных ребер сгиба и разреза.
|
||||
\en Constructor of the sheet metal shell based on faces and edges of an arbitrary solid. \n
|
||||
Shell builds based on initial planar face and given edges of bend and corner enclosure. \~
|
||||
\ingroup Model_Creators
|
||||
*/
|
||||
// ---
|
||||
class MATH_CLASS MbBuildSheetMetalSolid : public MbCreator {
|
||||
private:
|
||||
MbItemIndex faceIndex; ///< \ru Индекс исходной грани для построения листового тела. \en Index of initial face for sheet metal solid creation.
|
||||
bool sense; ///< \ru Признак совпадения придания толщины с нормалью исходной грани. \en Attribute of coincidence of extrusion direction to the normal of the initial face.
|
||||
MbSolidToSheetMetalValues parameters; ///< \ru Параметры построения листового тела по произвольному телу. \en The parameters of sheet metal solid building based on an arbitrary solid.
|
||||
|
||||
public :
|
||||
MbBuildSheetMetalSolid( const MbItemIndex & faceIndex,
|
||||
const bool sense,
|
||||
const MbSolidToSheetMetalValues & params,
|
||||
const MbSNameMaker & names );
|
||||
private:
|
||||
MbBuildSheetMetalSolid( const MbBuildSheetMetalSolid &, MbRegDuplicate * iReg );
|
||||
|
||||
public:
|
||||
virtual ~MbBuildSheetMetalSolid();
|
||||
|
||||
// \ru Общие функции математического объекта. \en Common functions of the mathematical object.
|
||||
|
||||
virtual MbeCreatorType IsA() const; // \ru Тип элемента. \en A type of element.
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию. \en Create a copy.
|
||||
|
||||
virtual bool IsSame ( const MbCreator & other, double accuracy ) const; // \ru Являются ли объекты равными? \en Determine whether an object is equal?
|
||||
virtual bool IsSimilar( const MbCreator & item ) const; // \ru Являются ли объекты подобными? \en Determine whether an object is similar?
|
||||
virtual bool SetEqual ( const MbCreator & ); // \ru Сделать равным. \en Make equal.
|
||||
|
||||
virtual void Transform( const MbMatrix3D &, MbRegTransform * = c3d_null ); // \ru Преобразовать элемент согласно матрице. \en Transform element according to the matrix.
|
||||
virtual void Move ( const MbVector3D &, MbRegTransform * = c3d_null ); // \ru Сдвиг. \en Translation.
|
||||
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси. \en Rotate around an axis.
|
||||
|
||||
virtual void GetProperties ( MbProperties & properties ); // \ru Выдать свойства объекта. \en Get properties of the object.
|
||||
virtual void SetProperties ( const MbProperties & properties ); // \ru Записать свойства объекта. \en Set properties of the object.
|
||||
virtual MbePrompt GetPropertyName(); // \ru Выдать заголовок свойства объекта. \en Get a name of object property.
|
||||
|
||||
// \ru Общие функции твердого тела. \en Common functions of solid.
|
||||
|
||||
// \ru Построение оболочки листового тела. \en Construction of a sheet metal shell.
|
||||
virtual bool CreateShell( MbFaceShell *& shell, MbeCopyMode sameShell, RPArray <MbSpaceItem> *items = c3d_null );
|
||||
// \ru Получить параметры. \en Get the parameters.
|
||||
void GetParameters( MbSolidToSheetMetalValues & params ) const { params = parameters; }
|
||||
// \ru Установить параметры. \en Set the parameters.
|
||||
void SetParameters( const MbSolidToSheetMetalValues & params ) { parameters = params; }
|
||||
|
||||
private:
|
||||
OBVIOUS_PRIVATE_COPY( MbBuildSheetMetalSolid )
|
||||
DECLARE_PERSISTENT_CLASS_NEW_DEL( MbBuildSheetMetalSolid )
|
||||
};
|
||||
|
||||
IMPL_PERSISTENT_OPS( MbBuildSheetMetalSolid )
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Строитель оболочки из листового материала на основе произвольного тела.
|
||||
\en Constructor of the sheet metal shell based on an arbitrary solid. \~
|
||||
\details \ru На базе исходной произвольной оболочки построить оболочку из листового материала. \n
|
||||
Одновременно с построением оболочки функция создаёт её строитель.\n
|
||||
\en A shell is to be constructed on the basis of the source arbitary shell. \n
|
||||
The function simultaneously creates the shell and its constructor.\n \~
|
||||
\param[in] solid - \ru Исходная оболочка.
|
||||
\en The source shell. \~
|
||||
\param[in] sameShell - \ru Режим копирования исходной оболочки.
|
||||
\en Mode of copying the source shell. \~
|
||||
\param[in] initFace - \ru Исходная грань для построения листового тела.
|
||||
\en The initial face for sheet metal solid construction. \~
|
||||
\param[in] sense - \ru Признак совпадения направления придания толщины с нормалью исходной грани.
|
||||
\en Attribute of coincidence of extrusion direction to the normal of the initial face. \~
|
||||
\param[in] params - \ru Параметры построения листового тела по произвольному телу.
|
||||
\en The parameters of sheet metal solid building based on an arbitrary solid. \~
|
||||
\param[in] nameMaker - \ru Именователь.
|
||||
\en An object for naming the new objects. \~
|
||||
\param[out] result - \ru Результирующее тело.
|
||||
\en The resultant solid. \~
|
||||
\result \ru Возвращает строитель оболочки.
|
||||
\en Returns the shell constructor. \~
|
||||
\ingroup Model_Creators
|
||||
*/
|
||||
// ---
|
||||
MATH_FUNC (MbCreator *) ConvertShellToSheetMetall( MbFaceShell * initialShell, // Исходная оболочка,
|
||||
const MbeCopyMode sameShell, // флаг способа использования исходной оболочки,
|
||||
const MbFace & initFace, // базовая грань, относительно которой будет строиться листовое тело,
|
||||
bool sense, // признак совпадения придания толщины с нормалью базовой грани,
|
||||
MbSolidToSheetMetalValues & params, // параметры построения листового тела,
|
||||
const MbSNameMaker & nameMaker, // именователь,
|
||||
MbResultType & res, // флаг успешности операции,
|
||||
SPtr<MbFaceShell> & resultShell ); // результирующая оболочка.
|
||||
|
||||
|
||||
#endif // __CR_SHEET_BUILDER_SOLID_H
|
||||
@@ -50,15 +50,15 @@ public:
|
||||
// \ru Общие функции математического объекта \en Common functions of the mathematical object
|
||||
|
||||
virtual MbeCreatorType IsA() const; // \ru Тип элемента \en Type of element
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию \en Create a copy
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию \en Create a copy
|
||||
|
||||
virtual bool IsSame ( const MbCreator & other, double accuracy ) const; // \ru Являются ли объекты равными? \en Determine whether an object is equal?
|
||||
virtual bool IsSimilar( const MbCreator & item ) const; // \ru Являются ли объекты подобными? \en Determine whether an object is similar?
|
||||
virtual bool SetEqual ( const MbCreator & ); // \ru Сделать равным \en Make equal
|
||||
|
||||
virtual void Transform( const MbMatrix3D &, MbRegTransform * = NULL ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
|
||||
virtual void Move ( const MbVector3D &, MbRegTransform * = NULL ); // \ru Сдвиг \en Translation
|
||||
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси \en Rotate about an axis
|
||||
virtual void Transform( const MbMatrix3D &, MbRegTransform * = c3d_null ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
|
||||
virtual void Move ( const MbVector3D &, MbRegTransform * = c3d_null ); // \ru Сдвиг \en Translation
|
||||
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate about an axis
|
||||
|
||||
virtual void GetProperties( MbProperties & properties ); // \ru Выдать свойства объекта \en Get properties of the object
|
||||
virtual void SetProperties( const MbProperties & properties ); // \ru Записать свойства объекта \en Set properties of the object
|
||||
@@ -68,7 +68,7 @@ public:
|
||||
|
||||
virtual bool CreateShell( MbFaceShell *& shell,
|
||||
MbeCopyMode sameShell,
|
||||
RPArray<MbSpaceItem> * items = NULL ); // \ru Построение \en Construction
|
||||
RPArray<MbSpaceItem> * items = c3d_null ); // \ru Построение \en Construction
|
||||
|
||||
// \ru Дать параметры. \en Get the parameters.
|
||||
void GetParameters( MbClosedCornerValues & params ) const { params = parameters; }
|
||||
|
||||
@@ -57,15 +57,15 @@ public:
|
||||
|
||||
// \ru Общие функции математического объекта \en Common functions of the mathematical object
|
||||
virtual MbeCreatorType IsA() const; // \ru Тип элемента \en Type of element
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию \en Create a copy
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию \en Create a copy
|
||||
|
||||
virtual bool IsSame ( const MbCreator & other, double accuracy ) const; // \ru Являются ли объекты равными? \en Determine whether an object is equal?
|
||||
virtual bool IsSimilar( const MbCreator & item ) const; // \ru Являются ли объекты подобными? \en Determine whether an object is similar?
|
||||
virtual bool SetEqual ( const MbCreator & ); // \ru Сделать равным \en Make equal
|
||||
|
||||
virtual void Transform( const MbMatrix3D & matr, MbRegTransform * = NULL ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
|
||||
virtual void Move ( const MbVector3D & to, MbRegTransform * = NULL ); // \ru Сдвиг \en Translation
|
||||
virtual void Rotate ( const MbAxis3D & axis, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси \en Rotate about an axis
|
||||
virtual void Transform( const MbMatrix3D & matr, MbRegTransform * = c3d_null ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
|
||||
virtual void Move ( const MbVector3D & to, MbRegTransform * = c3d_null ); // \ru Сдвиг \en Translation
|
||||
virtual void Rotate ( const MbAxis3D & axis, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate about an axis
|
||||
|
||||
virtual void GetProperties( MbProperties & properties ); // \ru Выдать свойства объекта \en Get properties of the object
|
||||
virtual void SetProperties( const MbProperties & properties ); // \ru Записать свойства объекта \en Set properties of the object
|
||||
@@ -74,7 +74,7 @@ public:
|
||||
// \ru Общие функции твердого тела \en Common functions of solid solid
|
||||
virtual bool CreateShell( MbFaceShell *& shell,
|
||||
MbeCopyMode sameShell,
|
||||
RPArray<MbSpaceItem> * items = NULL ); // \ru Построение \en Construction
|
||||
RPArray<MbSpaceItem> * items = c3d_null ); // \ru Построение \en Construction
|
||||
|
||||
// \ru Дать параметры. \en Get the parameters.
|
||||
void GetParameters( MbJointBendValues & params ) const { params = parameters; }
|
||||
|
||||
@@ -82,10 +82,10 @@ public :
|
||||
// \ru Общие функции математического объекта \en Common functions of the mathematical object
|
||||
|
||||
virtual MbeCreatorType IsA() const; // \ru Тип элемента \en Type of element
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию \en Create a copy
|
||||
virtual void Transform( const MbMatrix3D & matr, MbRegTransform * = NULL ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
|
||||
virtual void Move( const MbVector3D & to, MbRegTransform * = NULL ); // \ru Сдвиг \en Translation
|
||||
virtual void Rotate( const MbAxis3D & axis, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси \en Rotate about an axis
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию \en Create a copy
|
||||
virtual void Transform( const MbMatrix3D & matr, MbRegTransform * = c3d_null ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
|
||||
virtual void Move( const MbVector3D & to, MbRegTransform * = c3d_null ); // \ru Сдвиг \en Translation
|
||||
virtual void Rotate( const MbAxis3D & axis, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate about an axis
|
||||
|
||||
virtual MbePrompt GetPropertyName(); // \ru Выдать заголовок свойства объекта \en Get a name of object property
|
||||
virtual void GetProperties( MbProperties & properties ); // \ru Выдать свойства объекта \en Get properties of the object
|
||||
@@ -101,7 +101,7 @@ public :
|
||||
// \ru Общие функции твердого тела \en Common functions of solid solid
|
||||
|
||||
virtual bool CreateShell( MbFaceShell *& shell, MbeCopyMode sameShell,
|
||||
RPArray<MbSpaceItem> * items = NULL ); // \ru Построение \en Construction
|
||||
RPArray<MbSpaceItem> * items = c3d_null ); // \ru Построение \en Construction
|
||||
|
||||
virtual MbFaceShell * InitShell( bool in );
|
||||
|
||||
|
||||
@@ -45,15 +45,15 @@ public:
|
||||
// \ru Общие функции математического объекта \en Common functions of the mathematical object
|
||||
|
||||
virtual MbeCreatorType IsA() const; // \ru Тип элемента \en Type of element
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию \en Create a copy
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию \en Create a copy
|
||||
|
||||
virtual bool IsSame ( const MbCreator & other, double accuracy ) const; // \ru Являются ли объекты равными? \en Determine whether an object is equal?
|
||||
virtual bool IsSimilar( const MbCreator & item ) const; // \ru Являются ли объекты подобными? \en Determine whether an object is similar?
|
||||
virtual bool SetEqual ( const MbCreator & ); // \ru Сделать равным \en Make equal
|
||||
|
||||
virtual void Transform( const MbMatrix3D & matr, MbRegTransform * = NULL ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
|
||||
virtual void Move ( const MbVector3D & to, MbRegTransform * = NULL ); // \ru Сдвиг \en Translation
|
||||
virtual void Rotate ( const MbAxis3D & axis, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси \en Rotate about an axis
|
||||
virtual void Transform( const MbMatrix3D & matr, MbRegTransform * = c3d_null ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
|
||||
virtual void Move ( const MbVector3D & to, MbRegTransform * = c3d_null ); // \ru Сдвиг \en Translation
|
||||
virtual void Rotate ( const MbAxis3D & axis, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate about an axis
|
||||
|
||||
virtual void GetProperties( MbProperties & properties ); // \ru Выдать свойства объекта \en Get properties of the object
|
||||
virtual void SetProperties( const MbProperties & properties ); // \ru Записать свойства объекта \en Set properties of the object
|
||||
@@ -63,7 +63,7 @@ public:
|
||||
|
||||
virtual bool CreateShell( MbFaceShell *& shell,
|
||||
MbeCopyMode sameShell,
|
||||
RPArray<MbSpaceItem> * items = NULL ); // \ru Построение \en Construction
|
||||
RPArray<MbSpaceItem> * items = c3d_null ); // \ru Построение \en Construction
|
||||
|
||||
private:
|
||||
// \ru Объявление оператора присваивания без реализации, чтобы не было присваивания по умолчанию. \en The declaration of the assignment operator without implementation to prevent an assignment by default.
|
||||
|
||||
@@ -42,15 +42,15 @@ public:
|
||||
// \ru Общие функции математического объекта \en Common functions of the mathematical object
|
||||
|
||||
virtual MbeCreatorType IsA() const; // \ru Тип элемента \en Type of element
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию \en Create a copy
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию \en Create a copy
|
||||
|
||||
virtual bool IsSame ( const MbCreator & other, double accuracy ) const; // \ru Являются ли объекты равными? \en Determine whether an object is equal?
|
||||
virtual bool IsSimilar( const MbCreator & item ) const; // \ru Являются ли объекты подобными? \en Determine whether an object is similar?
|
||||
virtual bool SetEqual ( const MbCreator & ); // \ru Сделать равным \en Make equal
|
||||
|
||||
virtual void Transform( const MbMatrix3D &, MbRegTransform * = NULL ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
|
||||
virtual void Move ( const MbVector3D &, MbRegTransform * = NULL ); // \ru Сдвиг \en Translation
|
||||
virtual void Rotate ( const MbAxis3D &, double, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси \en Rotate about an axis
|
||||
virtual void Transform( const MbMatrix3D &, MbRegTransform * = c3d_null ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
|
||||
virtual void Move ( const MbVector3D &, MbRegTransform * = c3d_null ); // \ru Сдвиг \en Translation
|
||||
virtual void Rotate ( const MbAxis3D &, double, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate about an axis
|
||||
|
||||
virtual void GetProperties( MbProperties & properties ); // \ru Выдать свойства объекта \en Get properties of the object
|
||||
virtual void SetProperties( const MbProperties & properties ); // \ru Записать свойства объекта \en Set properties of the object
|
||||
@@ -60,7 +60,7 @@ public:
|
||||
|
||||
virtual bool CreateShell( MbFaceShell *& shell,
|
||||
MbeCopyMode sameShell,
|
||||
RPArray<MbSpaceItem> * items = NULL ); // \ru Построение \en Construction
|
||||
RPArray<MbSpaceItem> * items = c3d_null ); // \ru Построение \en Construction
|
||||
|
||||
private:
|
||||
// \ru Объявление оператора присваивания без реализации, чтобы не было присваивания по умолчанию. \en The declaration of the assignment operator without implementation to prevent an assignment by default.
|
||||
|
||||
@@ -43,10 +43,10 @@ public :
|
||||
// \ru Общие функции математического объекта \en Common functions of the mathematical object
|
||||
|
||||
virtual MbeCreatorType IsA() const; // \ru Тип элемента \en Type of element
|
||||
virtual void Transform( const MbMatrix3D &, MbRegTransform * ireg = NULL ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
|
||||
virtual void Move ( const MbVector3D &, MbRegTransform * ireg = NULL ); // \ru Сдвиг \en Translation
|
||||
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * ireg = NULL ); // \ru Повернуть вокруг оси \en Rotate about an axis
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const ; // \ru Сделать копию \en Create a copy
|
||||
virtual void Transform( const MbMatrix3D &, MbRegTransform * ireg = c3d_null ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
|
||||
virtual void Move ( const MbVector3D &, MbRegTransform * ireg = c3d_null ); // \ru Сдвиг \en Translation
|
||||
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * ireg = c3d_null ); // \ru Повернуть вокруг оси \en Rotate about an axis
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const ; // \ru Сделать копию \en Create a copy
|
||||
|
||||
virtual MbePrompt GetPropertyName(); // \ru Выдать заголовок свойства объекта \en Get a name of object property
|
||||
virtual void GetProperties( MbProperties & properties ); // \ru Выдать свойства объекта \en Get properties of the object
|
||||
@@ -62,7 +62,7 @@ public :
|
||||
// \ru Общие функции твердого тела \en Common functions of solid
|
||||
|
||||
virtual bool CreateShell( MbFaceShell *& shell, MbeCopyMode sameShell,
|
||||
RPArray<MbSpaceItem> * items = NULL ); // \ru Построение \en Construction
|
||||
RPArray<MbSpaceItem> * items = c3d_null ); // \ru Построение \en Construction
|
||||
|
||||
virtual void SetYourVersion( VERSION version, bool forAll );
|
||||
|
||||
|
||||
@@ -68,10 +68,10 @@ public :
|
||||
\en \name Common functions of the shell creator.
|
||||
\{ */
|
||||
virtual MbeCreatorType IsA() const; // \ru Тип элемента \en Type of element
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const ; // \ru Сделать копию \en Create a copy
|
||||
virtual void Transform( const MbMatrix3D &, MbRegTransform * = NULL ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
|
||||
virtual void Move ( const MbVector3D &, MbRegTransform * = NULL ); // \ru Сдвиг \en Translation
|
||||
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси \en Rotate about an axis
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const ; // \ru Сделать копию \en Create a copy
|
||||
virtual void Transform( const MbMatrix3D &, MbRegTransform * = c3d_null ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
|
||||
virtual void Move ( const MbVector3D &, MbRegTransform * = c3d_null ); // \ru Сдвиг \en Translation
|
||||
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate about an axis
|
||||
|
||||
virtual MbePrompt GetPropertyName(); // \ru Выдать заголовок свойства объекта \en Get a name of object property
|
||||
virtual void GetProperties( MbProperties & ); // \ru Выдать свойства объекта \en Get properties of the object
|
||||
@@ -85,7 +85,7 @@ public :
|
||||
virtual bool SetEqual( const MbCreator & ); // \ru Сделать равным \en Make equal
|
||||
|
||||
virtual bool CreateShell( MbFaceShell *&shell, MbeCopyMode sameShell,
|
||||
RPArray<MbSpaceItem> * items = NULL ); // \ru Построение \en Construction
|
||||
RPArray<MbSpaceItem> * items = c3d_null ); // \ru Построение \en Construction
|
||||
/** \} */
|
||||
|
||||
const MbFaceShell * GetShell() const { return outer; } /// \ru Дать оболочку. \en Get a shell.
|
||||
@@ -158,7 +158,7 @@ bool MbSimpleCreator::DeleteShellCopies( const CreatorsVector & creators )
|
||||
size_t i;
|
||||
for ( i = 0; i < creatorsCnt; ++i ) {
|
||||
MbCreator * creator = creators[i];
|
||||
if ( creator != NULL ) {
|
||||
if ( creator != c3d_null ) {
|
||||
if ( creator->IsA() == ct_SimpleCreator ) {
|
||||
MbSimpleCreator * simpleCreator = static_cast<MbSimpleCreator *>(creator);
|
||||
simpleShells.push_back( std::make_pair( i, simpleCreator->GetShell() ) );
|
||||
@@ -184,7 +184,7 @@ bool MbSimpleCreator::DeleteShellCopies( const CreatorsVector & creators )
|
||||
if ( shell1 && shell2 && (shell1 != shell2) ) {
|
||||
if ( shell1->IsSame( *shell2, LENGTH_EPSILON ) ) {
|
||||
sc2.SetShell( *shell1 );
|
||||
simpleShells[j].second = NULL;
|
||||
simpleShells[j].second = c3d_null;
|
||||
isReplaced = true;
|
||||
}
|
||||
}
|
||||
@@ -194,7 +194,7 @@ bool MbSimpleCreator::DeleteShellCopies( const CreatorsVector & creators )
|
||||
std::sort( simpleShells.begin(), simpleShells.end(), ::SortByShellPointers );
|
||||
simpleShells.erase( std::unique( simpleShells.begin(), simpleShells.end(), ::AreEqualShellPointers ), simpleShells.end() );
|
||||
if ( simpleShells.size() > 1 ) {
|
||||
if ( simpleShells.front().second == NULL )
|
||||
if ( simpleShells.front().second == c3d_null )
|
||||
simpleShells.erase( simpleShells.begin() );
|
||||
}
|
||||
}
|
||||
@@ -215,7 +215,7 @@ bool MbSimpleCreator::IsThisShell( const MbFaceShell & shell, const CreatorsVect
|
||||
if ( creators.size() > 0 ) {
|
||||
for ( size_t i = creators.size(); i--; ) {
|
||||
const MbCreator * creator = creators[i];
|
||||
if ( (creator != NULL) && (creator->IsA() == ct_SimpleCreator) ) {
|
||||
if ( (creator != c3d_null) && (creator->IsA() == ct_SimpleCreator) ) {
|
||||
const MbSimpleCreator & simpleCreator = static_cast<const MbSimpleCreator &>(*creator);
|
||||
if ( simpleCreator.GetShell() == &shell ) {
|
||||
res = true;
|
||||
@@ -253,10 +253,10 @@ public :
|
||||
\en \name Common functions of the shell creator.
|
||||
\{ */
|
||||
virtual MbeCreatorType IsA() const; // \ru Тип элемента \en Type of element
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const ; // \ru Сделать копию \en Create a copy
|
||||
virtual void Transform( const MbMatrix3D &, MbRegTransform * = NULL ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
|
||||
virtual void Move ( const MbVector3D &, MbRegTransform * = NULL ); // \ru Сдвиг \en Translation
|
||||
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси \en Rotate about an axis
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const ; // \ru Сделать копию \en Create a copy
|
||||
virtual void Transform( const MbMatrix3D &, MbRegTransform * = c3d_null ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
|
||||
virtual void Move ( const MbVector3D &, MbRegTransform * = c3d_null ); // \ru Сдвиг \en Translation
|
||||
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate about an axis
|
||||
|
||||
virtual MbePrompt GetPropertyName(); // \ru Выдать заголовок свойства объекта \en Get a name of object property
|
||||
virtual void GetProperties( MbProperties & ); // \ru Выдать свойства объекта \en Get properties of the object
|
||||
@@ -267,7 +267,7 @@ public :
|
||||
virtual bool IsSimilar ( const MbCreator & ) const; // \ru Являются ли объекты подобными \en Whether the objects are similar
|
||||
|
||||
virtual bool CreateShell( MbFaceShell *& shell, MbeCopyMode sameShell,
|
||||
RPArray<MbSpaceItem> * items = NULL ); // \ru Построение \en Construction
|
||||
RPArray<MbSpaceItem> * items = c3d_null ); // \ru Построение \en Construction
|
||||
/** \} */
|
||||
|
||||
DECLARE_PERSISTENT_CLASS_NEW_DEL( MbReverseCreator )
|
||||
|
||||
@@ -42,10 +42,10 @@ public :
|
||||
|
||||
virtual MbeCreatorType IsA() const = 0; // \ru Тип элемента \en A type of element
|
||||
virtual MbeCreatorType Type() const; // \ru Тип элемента \en A type of element
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate *iReg = NULL ) const = 0; // \ru Сделать копию \en Create a copy
|
||||
virtual void Transform( const MbMatrix3D &matr, MbRegTransform * = NULL ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
|
||||
virtual void Move( const MbVector3D &to, MbRegTransform * = NULL ); // \ru Сдвиг \en Translation
|
||||
virtual void Rotate( const MbAxis3D &axis, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси \en Rotate around an axis
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate *iReg = c3d_null ) const = 0; // \ru Сделать копию \en Create a copy
|
||||
virtual void Transform( const MbMatrix3D &matr, MbRegTransform * = c3d_null ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
|
||||
virtual void Move( const MbVector3D &to, MbRegTransform * = c3d_null ); // \ru Сдвиг \en Translation
|
||||
virtual void Rotate( const MbAxis3D &axis, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate around an axis
|
||||
|
||||
virtual void GetProperties( MbProperties & ) = 0; // \ru Выдать свойства объекта \en Get properties of the object
|
||||
virtual void SetProperties( const MbProperties & ) = 0; // \ru Записать свойства объекта \en Set properties of the object
|
||||
@@ -58,7 +58,7 @@ public :
|
||||
// \ru Общие функции твердого тела \en Common functions of solid
|
||||
|
||||
virtual bool CreateShell( MbFaceShell *&shell, MbeCopyMode sameShell,
|
||||
RPArray<MbSpaceItem> * items = NULL ) = 0; // \ru Построение \en Construction
|
||||
RPArray<MbSpaceItem> * items = c3d_null ) = 0; // \ru Построение \en Construction
|
||||
|
||||
/// \ru Дать параметры. \en Get the parameters.
|
||||
void GetParameters( SmoothValues & params ) const { params = parameters; }
|
||||
|
||||
+27
-27
@@ -91,7 +91,7 @@ public:
|
||||
, spaceCurves ( )
|
||||
, surfaces ( )
|
||||
, creators ( )
|
||||
, solidShell ( NULL )
|
||||
, solidShell ( c3d_null )
|
||||
{
|
||||
}
|
||||
/// \ru Конструктор по двумерному контуру в локальной системе координат. \en Constructor by two-dimensional contour in the local coordinate system.
|
||||
@@ -103,7 +103,7 @@ public:
|
||||
, spaceCurves ( )
|
||||
, surfaces ( )
|
||||
, creators ( )
|
||||
, solidShell ( NULL )
|
||||
, solidShell ( c3d_null )
|
||||
{
|
||||
SPtr<MbContour> sketchContour;
|
||||
sketchContour = same ? const_cast<MbContour *>(&item) : static_cast<MbContour *>(&item.Duplicate());
|
||||
@@ -118,7 +118,7 @@ public:
|
||||
, spaceCurves ( )
|
||||
, surfaces ( )
|
||||
, creators ( )
|
||||
, solidShell ( NULL )
|
||||
, solidShell ( c3d_null )
|
||||
{
|
||||
C3D_ASSERT( (direction.MaxFactor() < LENGTH_EPSILON) || !direction.Orthogonal( place.GetAxisZ(), ANGLE_EPSILON ) );
|
||||
|
||||
@@ -136,7 +136,7 @@ public:
|
||||
, spaceCurves ( )
|
||||
, surfaces ( )
|
||||
, creators ( )
|
||||
, solidShell ( NULL )
|
||||
, solidShell ( c3d_null )
|
||||
{
|
||||
::AddRefItems( items, same, sketchContours );
|
||||
}
|
||||
@@ -150,7 +150,7 @@ public:
|
||||
, spaceCurves ( )
|
||||
, surfaces ( )
|
||||
, creators ( )
|
||||
, solidShell ( NULL )
|
||||
, solidShell ( c3d_null )
|
||||
{
|
||||
C3D_ASSERT( (direction.MaxFactor() < LENGTH_EPSILON) || !direction.Orthogonal( place.GetAxisZ(), ANGLE_EPSILON ) );
|
||||
|
||||
@@ -165,7 +165,7 @@ public:
|
||||
, spaceCurves ( )
|
||||
, surfaces ( )
|
||||
, creators ( )
|
||||
, solidShell ( NULL )
|
||||
, solidShell ( c3d_null )
|
||||
{
|
||||
::AddRefItems( items, same, spaceCurves );
|
||||
}
|
||||
@@ -178,7 +178,7 @@ public:
|
||||
, spaceCurves ( )
|
||||
, surfaces ( )
|
||||
, creators ( )
|
||||
, solidShell ( NULL )
|
||||
, solidShell ( c3d_null )
|
||||
{
|
||||
::AddRefItems( items, same, spaceCurves );
|
||||
}
|
||||
@@ -191,7 +191,7 @@ public:
|
||||
, spaceCurves ( )
|
||||
, surfaces ( )
|
||||
, creators ( )
|
||||
, solidShell ( NULL )
|
||||
, solidShell ( c3d_null )
|
||||
{
|
||||
SPtr<MbSurface> surface;
|
||||
surface = same ? const_cast<MbSurface *>(&item) : static_cast<MbSurface *>(&item.Duplicate());
|
||||
@@ -206,7 +206,7 @@ public:
|
||||
, spaceCurves ( )
|
||||
, surfaces ( )
|
||||
, creators ( )
|
||||
, solidShell ( NULL )
|
||||
, solidShell ( c3d_null )
|
||||
{
|
||||
::AddRefItems( items, same, surfaces );
|
||||
}
|
||||
@@ -219,7 +219,7 @@ public:
|
||||
, spaceCurves ( )
|
||||
, surfaces ( )
|
||||
, creators ( )
|
||||
, solidShell ( NULL )
|
||||
, solidShell ( c3d_null )
|
||||
{
|
||||
::AddRefItems( items, same, surfaces );
|
||||
}
|
||||
@@ -322,12 +322,12 @@ public:
|
||||
DeleteItems();
|
||||
size_t creatorsCnt = solidCreators.size();
|
||||
if ( creatorsCnt > 0 ) {
|
||||
MbRegDuplicate * iReg = NULL;
|
||||
MbRegDuplicate * iReg = c3d_null;
|
||||
MbAutoRegDuplicate autoReg( iReg );
|
||||
SPtr<MbCreator> creator;
|
||||
creators.reserve( creatorsCnt );
|
||||
for ( size_t k = 0; k < creatorsCnt; ++k ) {
|
||||
if ( solidCreators[k] != NULL ) {
|
||||
if ( solidCreators[k] != c3d_null ) {
|
||||
creator = sameCreators ? &const_cast<MbCreator &>( *solidCreators[k] ) : static_cast<MbCreator *>( &solidCreators[k]->Duplicate( iReg ) );
|
||||
creators.push_back( creator );
|
||||
::DetachItem( creator );
|
||||
@@ -343,17 +343,17 @@ public:
|
||||
/// \ru Являются ли объекты подобными. \en Determine whether the objects are similar.
|
||||
bool IsSimilar( const MbSplitData & ) const;
|
||||
/// \ru Преобразовать элемент согласно матрице. \en Transform element according to the matrix.
|
||||
void Transform( const MbMatrix3D &, MbRegTransform * = NULL );
|
||||
void Transform( const MbMatrix3D &, MbRegTransform * = c3d_null );
|
||||
/// \ru Сдвинуть по вектору. \en Shift by a vector.
|
||||
void Move ( const MbVector3D &, MbRegTransform * = NULL );
|
||||
void Move ( const MbVector3D &, MbRegTransform * = c3d_null );
|
||||
/// \ru Повернуть вокруг оси. \en Rotate about an axis.
|
||||
void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = NULL );
|
||||
void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = c3d_null );
|
||||
/// \ru Отсутствуют ли объекты? \en Are the objects absent?
|
||||
bool IsEmpty() const {
|
||||
return ( sketchContours.empty() &&
|
||||
spaceCurves.empty() &&
|
||||
surfaces.empty() &&
|
||||
(creators.empty() && (solidShell == NULL)) ); }
|
||||
(creators.empty() && (solidShell == c3d_null)) ); }
|
||||
/// \ru Являются ли объекты равными? \en Determine whether an object is equal?
|
||||
bool IsSame( const MbSplitData &, double accuracy ) const;
|
||||
|
||||
@@ -377,9 +377,9 @@ public:
|
||||
/// \ru Установить направление выдавливания двумерных кривых. \en Set extrusion direction of two-dimensional curves.
|
||||
void SetSketchSense( MbeSenseValue zdir ) { sense = zdir; }
|
||||
/// \ru Получить двумерную кривую по индексу. \en Get two-dimensional curve by index.
|
||||
const MbContour * GetSketchCurve( size_t k ) const { return ((k < sketchContours.size()) ? sketchContours[k].get() : NULL ); }
|
||||
const MbContour * GetSketchCurve( size_t k ) const { return ((k < sketchContours.size()) ? sketchContours[k].get() : c3d_null ); }
|
||||
/// \ru Получить двумерную кривую по индексу. \en Get two-dimensional curve by index.
|
||||
MbContour * SetSketchCurve( size_t k ) { return ((k < sketchContours.size()) ? sketchContours[k].get() : NULL ); }
|
||||
MbContour * SetSketchCurve( size_t k ) { return ((k < sketchContours.size()) ? sketchContours[k].get() : c3d_null ); }
|
||||
/// \ru Получить все двумерные кривые. \en Get all two-dimensional curves.
|
||||
template <class PlaneContoursVector>
|
||||
void GetSketchCurves( PlaneContoursVector & curvs ) const
|
||||
@@ -401,9 +401,9 @@ public:
|
||||
/// \ru Выдать количество пространственных кривых. \en Get number of spatial curves.
|
||||
size_t GetSpaceCurvesCount() const { return spaceCurves.size(); }
|
||||
/// \ru Получить пространственную кривую по индексу. \en Get a spatial curve by index.
|
||||
const MbCurve3D * GetSpaceCurve( size_t k ) const { return ((k < spaceCurves.size()) ? spaceCurves[k].get() : NULL ); }
|
||||
const MbCurve3D * GetSpaceCurve( size_t k ) const { return ((k < spaceCurves.size()) ? spaceCurves[k].get() : c3d_null ); }
|
||||
/// \ru Получить пространственную кривую по индексу. \en Get a spatial curve by index.
|
||||
MbCurve3D * SetSpaceCurve( size_t k ) { return ((k < spaceCurves.size()) ? spaceCurves[k].get() : NULL ); }
|
||||
MbCurve3D * SetSpaceCurve( size_t k ) { return ((k < spaceCurves.size()) ? spaceCurves[k].get() : c3d_null ); }
|
||||
/// \ru Получить все пространственные кривые. \en Get all spatial curves.
|
||||
template <class SpaceCurvesVector>
|
||||
void GetSpaceCurves( SpaceCurvesVector & curvs ) const
|
||||
@@ -425,9 +425,9 @@ public:
|
||||
/// \ru Выдать количество поверхностей. \en Get number of surfaces.
|
||||
size_t GetSurfacesCount() const { return surfaces.size(); }
|
||||
/// \ru Получить поверхность по индексу. \en Get a surface by index.
|
||||
const MbSurface * GetSurface( size_t k ) const { return ((k < surfaces.size()) ? surfaces[k].get() : NULL); }
|
||||
const MbSurface * GetSurface( size_t k ) const { return ((k < surfaces.size()) ? surfaces[k].get() : c3d_null); }
|
||||
/// \ru Получить поверхность по индексу. \en Get a surface by index.
|
||||
MbSurface * SetSurface( size_t k ) { return ((k < surfaces.size()) ? surfaces[k].get() : NULL); }
|
||||
MbSurface * SetSurface( size_t k ) { return ((k < surfaces.size()) ? surfaces[k].get() : c3d_null); }
|
||||
/// \ru Получить все поверхности. \en Get all surfaces.
|
||||
template <class SurfacesVector>
|
||||
void GetSurfaces( SurfacesVector & surfs ) const
|
||||
@@ -449,9 +449,9 @@ public:
|
||||
/// \ru Выдать количество строителей тела. \en Get number of solid creators.
|
||||
size_t GetCreatorsCount() const { return creators.size(); }
|
||||
/// \ru Получить строитель по индексу. \en Get constructor by index.
|
||||
const MbCreator * GetCreator( size_t k ) const { return ((k < creators.size()) ? creators[k].get() : NULL ); }
|
||||
const MbCreator * GetCreator( size_t k ) const { return ((k < creators.size()) ? creators[k].get() : c3d_null ); }
|
||||
/// \ru Получить строитель по индексу. \en Get constructor by index.
|
||||
MbCreator * SetCreator( size_t k ) { return ((k < creators.size()) ? creators[k].get() : NULL ); }
|
||||
MbCreator * SetCreator( size_t k ) { return ((k < creators.size()) ? creators[k].get() : c3d_null ); }
|
||||
/// \ru Получить все строители. \en Get all creators.
|
||||
template <class CreatorsVector>
|
||||
void GetCreators( CreatorsVector & crs ) const
|
||||
@@ -468,17 +468,17 @@ public:
|
||||
template <class CreatorsVector>
|
||||
void GetCreatorsCopies( CreatorsVector & crs ) const
|
||||
{
|
||||
MbRegDuplicate * iReg = NULL;
|
||||
MbRegDuplicate * iReg = c3d_null;
|
||||
MbAutoRegDuplicate autoReg( iReg );
|
||||
|
||||
crs.reserve( crs.size() + creators.size() );
|
||||
c3d::CreatorSPtr creator;
|
||||
for ( size_t k = 0, addCnt = creators.size(); k < addCnt; ++k ) {
|
||||
if ( creators[k] != NULL )
|
||||
if ( creators[k] != c3d_null )
|
||||
creator = static_cast<MbCreator *>( &creators[k]->Duplicate( iReg ) );
|
||||
crs.push_back( creator );
|
||||
::DetachItem( creator );
|
||||
creator = NULL;
|
||||
creator = c3d_null;
|
||||
}
|
||||
}
|
||||
/// \ru Получить все строители. \en Get all creators.
|
||||
|
||||
@@ -41,10 +41,10 @@ public :
|
||||
// \ru Общие функции математического объекта \en Common functions of the mathematical object
|
||||
|
||||
virtual MbeCreatorType IsA () const; // \ru Тип элемента \en A type of element
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const;
|
||||
virtual void Transform( const MbMatrix3D &, MbRegTransform * = NULL ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
|
||||
virtual void Move ( const MbVector3D &, MbRegTransform * = NULL ); // \ru Сдвиг \en Translation
|
||||
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси \en Rotate around an axis
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const;
|
||||
virtual void Transform( const MbMatrix3D &, MbRegTransform * = c3d_null ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
|
||||
virtual void Move ( const MbVector3D &, MbRegTransform * = c3d_null ); // \ru Сдвиг \en Translation
|
||||
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate around an axis
|
||||
|
||||
virtual MbePrompt GetPropertyName(); // \ru Выдать заголовок свойства объекта \en Get a name of object property
|
||||
virtual void GetProperties( MbProperties & ); // \ru Выдать свойства объекта \en Get properties of the object
|
||||
@@ -58,7 +58,7 @@ public :
|
||||
// \ru Общие функции твердого тела \en Common functions of solid
|
||||
|
||||
virtual bool CreateShell( MbFaceShell *& shell, MbeCopyMode sameShell,
|
||||
RPArray<MbSpaceItem> * items = NULL ); // \ru Построение \en Construction
|
||||
RPArray<MbSpaceItem> * items = c3d_null ); // \ru Построение \en Construction
|
||||
|
||||
private: // \ru Не реализовано \en Not implemented
|
||||
// \ru Объявление конструктора копирования без реализации, чтобы не было копирования по умолчанию. \en Declaration without implementation of the copy-constructor to prevent copying by default.
|
||||
|
||||
@@ -67,15 +67,15 @@ public:
|
||||
// \ru Общие функции математического объекта \en Common functions of the mathematical object
|
||||
|
||||
virtual MbeCreatorType IsA () const; // \ru Тип элемента \en A type of element
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = NULL ) const; // \ru Сделать копию \en Create a copy
|
||||
virtual MbCreator & Duplicate( MbRegDuplicate * = c3d_null ) const; // \ru Сделать копию \en Create a copy
|
||||
|
||||
virtual bool IsSame ( const MbCreator & other, double accuracy ) const; // \ru Являются ли объекты равными? \en Determine whether an object is equal?
|
||||
virtual bool IsSimilar( const MbCreator & item ) const; // \ru Являются ли объекты подобными? \en Determine whether an object is similar?
|
||||
virtual bool SetEqual ( const MbCreator & ); // \ru Сделать равным \en Make equal
|
||||
|
||||
virtual void Transform( const MbMatrix3D &, MbRegTransform * = NULL ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
|
||||
virtual void Move ( const MbVector3D &, MbRegTransform * = NULL ); // \ru Сдвиг \en Translation
|
||||
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = NULL ); // \ru Повернуть вокруг оси \en Rotate around an axis
|
||||
virtual void Transform( const MbMatrix3D &, MbRegTransform * = c3d_null ); // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
|
||||
virtual void Move ( const MbVector3D &, MbRegTransform * = c3d_null ); // \ru Сдвиг \en Translation
|
||||
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси \en Rotate around an axis
|
||||
|
||||
virtual MbePrompt GetPropertyName(); // \ru Выдать заголовок свойства объекта \en Get a name of object property
|
||||
virtual void GetProperties ( MbProperties &properties ); // \ru Выдать свойства объекта \en Get properties of the object
|
||||
@@ -87,7 +87,7 @@ public:
|
||||
// \ru Общие функции твердого тела \en Common functions of solid
|
||||
|
||||
virtual bool CreateShell( MbFaceShell *& shell, MbeCopyMode sameShell,
|
||||
RPArray<MbSpaceItem> * items = NULL ); // \ru Построение \en Construction
|
||||
RPArray<MbSpaceItem> * items = c3d_null ); // \ru Построение \en Construction
|
||||
|
||||
// \ru Дать параметры. \en Get the parameters.
|
||||
void GetParameters( MbBeadValues & params ) const { params = parameters; }
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user