C3D Toolkit  Kernel - 106477, Vision - 190409.106477
+ Граф связей класса Построение кривых в трёхмерном пространстве:

Функции

MbResultType Line (const MbCartPoint3D &point1, const MbCartPoint3D &point2, MbCurve3D *&result)
 Создать прямую. Подробнее...
 
MbResultType Segment (const MbCartPoint3D &point1, const MbCartPoint3D &point2, MbCurve3D *&result)
 Создать отрезок прямой. Подробнее...
 
MbResultType Arc (const MbCartPoint3D &centre, const SArray< MbCartPoint3D > &points, bool curveClosed, double angle, double &a, double &b, MbCurve3D *&result)
 Создать эллипс (окружность) или его дугу. Подробнее...
 
MbResultType SplineCurve (const SArray< MbCartPoint3D > &pointList, bool curveClosed, MbeSpaceType curveType, MbCurve3D *&result)
 Создать кривую, проходящую по набору точек. Подробнее...
 
MbResultType NurbsCurve (const SArray< MbCartPoint3D > &pointList, const SArray< double > &weightList, size_t degree, const SArray< double > &knotList, bool curveClosed, MbCurve3D *&result)
 Создать NURBS-кривую. Подробнее...
 
MbResultType NurbsCopy (const MbCurve3D &curve, MbCurve3D *&result)
 Создать копию кривой в виде NURBS. Подробнее...
 
MbResultType RegularPolygon (const MbCartPoint3D &centre, const MbCartPoint3D &point, const MbVector3D &axisZ, size_t vertexCount, bool describe, MbCurve3D *&result)
 Создать правильный многоугольник, вписанный в окружность. Подробнее...
 
MbResultType SpiralCurve (const MbPlacement3D &place, double radius, double step, MbCurve &lawCurve, bool spiralAxis, MbCurve3D *&result)
 Создать спираль. Подробнее...
 
MbResultType SpiralCurve (const MbCartPoint3D &point0, const MbCartPoint3D &point1, const MbCartPoint3D &point2, double radius, double step, double angle, MbCurve *lawCurve, bool spiralAxis, MbCurve3D *&result)
 Создать спираль. Подробнее...
 
MbResultType CreateContour (MbCurve3D &curve, MbContour3D *&result)
 Создать составную кривую (контур). Подробнее...
 
MbCurve3DDuplicateCurve (const MbCurve3D &curve, VERSION version=Math::DefaultMathVersion())
 Создать копию кривой. Подробнее...
 
MbResultType AddCurveToContour (MbCurve3D &curve, MbCurve3D &contour, bool toEnd)
 Добавить кривую в составную кривую (контур). Подробнее...
 
MbResultType PlaneCurve (const MbPlacement3D &place, const MbCurve &curve, MbCurve3D *&result)
 Построить кривую в пространстве по двумерной кривой. Подробнее...
 
MbResultType SurfaceCurve (const MbSurface &surface, const MbCurve &curve, MbCurve3D *&result)
 Построить кривую на поверхности по двумерной кривой. Подробнее...
 
MbResultType CurveOnSurface (const MbCurve3D &curve, const MbSurface &surf, bool sameSurf, bool extSurf, MbCurve3D *&result, bool strictOnSurface=false)
 Создать поверхностную кривую, если пространственная кривая лежит на поверхности. Подробнее...
 
bool IsCurveOnSurface (const MbCurve3D &curve, const MbSurface &surf, bool ext, bool strictOnSurface=false)
 Лежит ли кривая на поверхности. Подробнее...
 
MbResultType CreateContours (RPArray< MbCurve3D > &curves, double metricEps, RPArray< MbContour3D > &result, bool onlySmoothConnected=false, VERSION version=Math::DefaultMathVersion())
 Создать массив контуров по массиву кривых. Подробнее...
 
MbResultType CreateContours (RPArray< MbCurve3D > &curves, double metricAcc, bool onlySmoothConnected=false, VERSION version=Math::DefaultMathVersion())
 Создать контуры по набору кривых с удалением вырожденных. Подробнее...
 
MbResultType WireFrame (const MbCurve3D &curve, const MbName &curveName, SimpleName mainName, MbWireFrame *&result)
 Создать именованный трехмерный каркас. Подробнее...
 
MbResultType WireFrame (const RPArray< MbCurve3D > &curves, const RPArray< MbName > &curveNames, SimpleName mainName, MbWireFrame *&result)
 Создать именованный трехмерный каркас. Подробнее...
 
MbResultType CreatePolyArcCurve3D (const MbCurve3D &curve, MbCurve3D *&result, double &eps, double minRad=Math::minRadius, double maxRad=Math::maxRadius)
 Аппроксимировать контур дугами и отрезками. Подробнее...
 
bool GetSpaceCurve (const MbItem &item, bool keepPlacement, SPtr< MbCurve3D > &curve0, std::vector< SPtr< MbCurve3D > > *curves=NULL)
 Получить или создать пространственную кривую. Подробнее...
 
MbResultType EvolutionSection (const MbSweptData &generCurves, const MbCurve3D &guideCurve, double guideParam, const EvolutionValues &params, MbSweptData &result, VERSION version=Math::DefaultMathVersion(), double angleEpsilon=ANGLE_EPSILON)
 Создать сечение кинематического тела для заданного параметра на направляющей. Подробнее...
 
bool IsLikeStraightLine (const MbCurve &curve, double eps)
 Является ли кривая прямолинейной независимо от ее параметризации. Подробнее...
 
bool CheckJoinedParams (const MbCurve3D &curve, SArray< double > &params, bool isAscending)
 Проверить параметры кривой для построения тела соединения. Подробнее...
 
MbCurve3DCreateJoinedCurve (const RPArray< MbCurveEdge > &edges, const SArray< bool > &orients, const MbMatrix3D &matr, MbResultType &res)
 Построить кривую по множеству рёбер. Подробнее...
 
MbCurve3DTrimClosedSpine (const MbCurve3D &curve, double t)
 Создать усеченную замкнутую кривую на копии кривой. Подробнее...
 
MbResultType CalculatePipePoints (const MbCartPoint3D &origin1, const MbVector3D &direction1, double length1, double radius1, const MbCartPoint3D &origin2, const MbVector3D &direction2, double length2, double radius2, MbCartPoint3D &result1, MbCartPoint3D &result2)
 Рассчитать вершины ломаной. Подробнее...
 
MbResultType OffsetPlaneCurve (const MbCurve3D &curve, double d, MbCurve3D *&result)
 Создать эквидистантную кривую. Подробнее...
 
MbResultType OffsetCurve (const MbCurve3D &initCurve, const MbVector3D &offsetVect, const bool useFillet, const bool keepRadius, const bool bluntAngle, const bool fromBeg, const MbSNameMaker &snMaker, MbWireFrame *&result)
 Создать эквидистантную кривую. Подробнее...
 
MbResultType OffsetCurve (const MbCurve3D &curve, const MbFace &face, const MbAxis3D &dirAxis, double dist, const MbSNameMaker &snMaker, MbWireFrame *&result)
 Создать эквидистантную кривую. Подробнее...
 
MbResultType CurveProjection (const MbSurface &surface, const MbCurve3D &curve, MbVector3D *direction, bool createExact, bool truncateByBounds, RPArray< MbCurve3D > &result, VERSION version=Math::DefaultMathVersion())
 Создать проекцию кривой на поверхность. Подробнее...
 
MbResultType CurveByTwoProjections (const MbPlacement3D &place1, const MbCurve &curve1, const MbPlacement3D &place2, const MbCurve &curve2, RPArray< MbCurve3D > &result, VERSION version=Math::DefaultMathVersion())
 Создать пространственную кривую по двум плоским проекциям. Подробнее...
 
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)
 Создать проекционную кривую по нормали или по направлению. Подробнее...
 
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)
 Создать проекционный проволочный каркас по нормали или по направлению. Подробнее...
 
bool EliminateProjectionCurveOverlay (RPArray< MbCurve3D > &curves, SArray< uintptr_t > *indices)
 Устранить наложение сегментов проекционной кривой. Подробнее...
 
MbResultType IntersectionCurve (const MbSurface &surface1, const MbSurface &surface2, const MbSNameMaker &snMaker, MbWireFrame *&result)
 Создать кривые пересечения двух поверхностей. Подробнее...
 
MbResultType IntersectionCurve (MbFace &face1, MbFace &face2, const MbSNameMaker &snMaker, MbWireFrame *&result)
 Создать кривые пересечения двух граней. Подробнее...
 
MbResultType IntersectionCurve (const MbSolid &solid1, const SArray< size_t > &faceIndices1, const MbSolid &solid2, const SArray< size_t > &faceIndices2, const MbSNameMaker &snMaker, MbWireFrame *&result)
 Создать кривые пересечения граней двух оболочек. Подробнее...
 
MbResultType IntersectionCurve (const MbSolid &solid1, const SArray< size_t > &faceIndices1, const bool same1, const MbSolid &solid2, const SArray< size_t > &faceIndices2, const bool same2, const MbSNameMaker &snMaker, MbWireFrame *&result)
 Создать кривые пересечения граней двух оболочек. Подробнее...
 
MbResultType IntersectionCurve (const MbSurface &surface1, bool ext1, const MbCartPoint &uv1beg, const MbCartPoint &uv1end, const MbSurface &surface2, bool ext2, const MbCartPoint &uv2beg, const MbCartPoint &uv2end, const MbVector3D &dir, MbCurve *&result1, MbCurve *&result2, MbeCurveBuildType &label)
 Создать линию пересечения поверхностей. Подробнее...
 
MbResultType IntersectionCurve (const MbSurface &surf1, bool ext1, const MbCartPoint &uv1beg, const MbCartPoint &uv1end, const MbSurface &surf2, bool ext2, const MbCartPoint &uv2beg, const MbCartPoint &uv2end, const MbCurve3D *guideCurve, bool useRedetermination, bool checkPoles, MbCurve *&pCurve1, MbCurve *&pCurve2, MbeCurveBuildType &label)
 Создать линию пересечения поверхностей. Подробнее...
 
MbResultType SpaceSplineThrough (const SArray< MbCartPoint3D > &points, MbeSplineParamType paramType, size_t degree, bool closed, RPArray< MbPntMatingData< MbVector3D > > &transitions, const MbSNameMaker &snMaker, MbWireFrame *&result)
 Создать пространственный сплайн через точки и с сопряжениями. Подробнее...
 
MbResultType SpaceSplineBy (const SArray< MbCartPoint3D > &points, size_t degree, bool closed, const SArray< double > *weights, const SArray< double > *knots, MbPntMatingData< MbVector3D > *begData, MbPntMatingData< MbVector3D > *endData, const MbSNameMaker &snMaker, MbWireFrame *&result)
 Создать пространственный сплайн по точкам и с сопряжениями. Подробнее...
 
MbResultType SurfaceSpline (const MbSurface &surface, bool throughPoints, SArray< MbCartPoint > &paramPnts, SArray< double > &paramWts, bool paramClosed, RPArray< MbPntMatingData< MbVector3D > > &spaceTransitions, const MbSNameMaker &snMaker, MbWireFrame *&result)
 Создать кривую на поверхности. Подробнее...
 
MbResultType IsoparametricCurve (const MbSurface &surface, double x, bool isU, const MbRect1D *yRange, MbCurve3D *&result)
 Создать изопараметрическую кривую. Подробнее...
 
MbResultType BridgeCurve (const MbCurve3D &curve1, double t1, bool sense1, const MbCurve3D &curve2, double t2, bool sense2, const MbSNameMaker &names, MbWireFrame *&result)
 Создать кривую - мостик, соединяющую кривые curve1 и curve2. Подробнее...
 
MbResultType ConnectingCurve (const MbCurve3D &curve1, bool isBegin1, double radius1, const MbCurve3D &curve2, bool isBegin2, double radius2, const MbSNameMaker &names, MbWireFrame *&result)
 Создать составную кривую плавного соединения концов двух кривых. Подробнее...
 
MbResultType ConnectingSpline (const MbCurve3D &curve1, double t1, MbeMatingType mating1, const MbCurve3D &curve2, double t2, MbeMatingType mating2, double tension1, double tension2, const MbSNameMaker &names, MbWireFrame *&result)
 Создать соединительную NURBS кривую для кривых curve1 и curve2. Подробнее...
 
MbResultType FilletCurve (const MbCurve3D &curve1, double &t1, double &w1, const MbCurve3D &curve2, double &t2, double &w2, double &radius, bool sense, bool &unchanged, const MbeConnectingType type, const MbSNameMaker &names, MbElementarySurface *&surface, MbWireFrame *&result)
 Создать кривую для плавного соединения (скругления) кривых. Подробнее...
 
MbResultType CreateContourFillets (const MbContour3D &contour, SArray< double > &radiuses, MbCurve3D *&result, const MbeConnectingType type)
 Создать кривую для плавного соединения (скругления) всех кривых контура. Подробнее...
 
MbCurve3DNurbsConic_1 (const MbCartPoint3D &mbPoint0, const MbCartPoint3D &mbPoint1, const MbCartPoint3D &mbPoint2, double fDiscr)
 Построить коническое сечение по двум точкам вершине и дискриминанту. Подробнее...
 
MbCurve3DNurbsConic_2 (std::vector< MbCartPoint3D > &vmbConicPoints, const MbCartPoint3D &mbVertex)
 Построить коническое сечение по трем точкам и вершине. Подробнее...
 
MbCurve3DNurbsConic_3 (const std::vector< MbCartPoint3D > &vmbConicPoints, MbVector3D &mbTangent1, MbVector3D &mbTangent2)
 Построить коническое сечение по трем точкам и двум наклонам. Подробнее...
 
MbCurve3DNurbsConic_4 (const MbCartPoint3D &mbPoint1, const MbCartPoint3D &mbPoint2, const MbVector3D &mbTangent1, const MbVector3D &mbTangent2, double fDiscr)
 Построить коническое сечение по двум точкам, двум наклонам и дискриминанту. Подробнее...
 
MbCurve3DNurbsConic_5 (const std::vector< MbCartPoint3D > &vmbConicPoints, MbVector3D &mbTangent1, size_t tanPntNb=1)
 Построить коническое сечение по четырем точкам и наклону. Подробнее...
 
MbCurve3DNurbsConic_6 (const std::vector< MbCartPoint3D > &vmbConicPoints)
 Построить коническое сечение по пяти точкам. Подробнее...
 
bool InitContour3D (MbContour3D &contour, bool closed, SArray< Polyline3DPoint > &initList, SArray< ptrdiff_t > &errorIndexes, double lengthEpsilon=Math::lengthEpsilon)
 Построить контур из отрезков по заданным точкам. Подробнее...
 
MbCreatorCreateFilletEdge (const MbCurve3D &curve1, double &t1, const MbCurve3D &curve2, double &t2, double &radius, bool sense, MbeConnectingType type, const MbSNameMaker &names, MbResultType &res, bool &unchanged, MbElementarySurface *&surface, MbEdge *&edge)
 Создание строителя скругления двух кривых. Подробнее...
 
MbCreatorCreateSplineEdge (const MbCurve3D &curve1, double t1, MbeMatingType mating1, const MbCurve3D &curve2, double t2, MbeMatingType mating2, double tension1, double tension2, const MbSNameMaker &names, MbResultType &res, MbEdge *&edge)
 Создание строителя сопряжения двух кривых сплайном. Подробнее...
 
MbCreatorCreateConnectingEdge (const MbCurve3D &curve1, bool isBegin1, double radius1, const MbCurve3D &curve2, bool isBegin2, double radius2, const MbSNameMaker &names, MbResultType &res, MbEdge *&edge)
 Создание строителя сопряжения концов двух кривых составной кривой плавного соединения. Подробнее...
 
MbCreatorCreateBridgeEdge (const MbCurve3D &curve1, double t1, bool sense1, const MbCurve3D &curve2, double t2, bool sense2, const MbSNameMaker &names, MbResultType &res, MbEdge *&edge)
 Cоздание строителя сопряжения двух кривых кубическим сплайном Эрмита (кривой-мостиком). Подробнее...
 
MbCreatorCreateFillet (MbFaceShell *solid, MbeCopyMode sameShell, SArray< MbEdgeFunction > &initCurves, RPArray< MbFace > &initBounds, const SmoothValues &parameters, const MbSNameMaker &names, MbResultType &res, MbFaceShell *&shell)
 Создать оболочку со cкруглением ребeр. Подробнее...
 
MbCreatorCreateSplineThrough (const SArray< MbCartPoint3D > &points, MbeSplineParamType paramType, size_t degree, bool closed, RPArray< MbPntMatingData< MbVector3D > > &transitions, const MbSNameMaker &snMaker, MbResultType &resType, MbCurve3D *&resCurve)
 Создать пространственный сплайн через точки и с сопряжениями. Подробнее...
 
MbCreatorCreateSplineBy (const SArray< MbCartPoint3D > &points, size_t degree, bool closed, const SArray< double > *weights, const SArray< double > *knots, MbPntMatingData< MbVector3D > *begData, MbPntMatingData< MbVector3D > *endData, const MbSNameMaker &snMaker, MbResultType &resType, MbCurve3D *&resCurve)
 Создать пространственный сплайн по точкам и сопряжениями. Подробнее...
 
MbCreatorCreateOffsetCurve (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)
 Создать офсетную кривую по трехмерной кривой и вектору направления. Подробнее...
 
MbCreatorCreateOffsetCurve (const MbCurve3D &curve, const MbFace &face, const MbAxis3D &dirAxis, double dist, const MbSNameMaker &snMaker, MbResultType &resType, RPArray< MbCurve3D > &resCurves)
 Создать офсетную кривую по поверхностной кривой и значению смещения. Подробнее...
 
MbCreatorCreateSurfaceSpline (const MbSurface &surface, bool throughPoints, SArray< MbCartPoint > &paramPnts, SArray< double > &paramWts, bool paramClosed, RPArray< MbPntMatingData< MbVector3D > > &spaceTransitions, const MbSNameMaker &snMaker, MbResultType &resType, RPArray< MbCurve3D > &resCurves)
 Создать кривую на поверхности. Подробнее...
 
MbCurve3DMakeCurve3D (const MbCurve &curve, const MbPlacement3D &)
 Cоздать пространственную кривую. Подробнее...
 
void ExtractCurvesDeleteFrame (MbWireFrame *&wireFrame, RPArray< MbCurve3D > &curves)
 Забрать кривые и удалить каркас, если он не используется. Подробнее...
 
void ExtractCurveDeleteFrame (MbWireFrame *&wireFrame, MbCurve3D *&curve)
 Забрать первую кривую и удалить каркас, если он пуст и не используется. Подробнее...
 
bool CreateWireFrame (MbWireFrame *&result, const RPArray< MbCurve3D > &curves, const MbSNameMaker &snMaker, MbCreator *creator=NULL)
 Создать каркас по множеству кривых. Подробнее...
 
bool CreateWireFrame (MbWireFrame *&result, const MbCurve3D &curve, const MbSNameMaker &snMaker, MbCreator *creator=NULL)
 Создать каркас по кривой. Подробнее...
 

Подробное описание

Функции

◆ Line()

MbResultType Line ( const MbCartPoint3D point1,
const MbCartPoint3D point2,
MbCurve3D *&  result 
)

Создать прямую.

Создать прямую по двум точкам.

Аргументы
[in]point1- Первая точка.
[in]point2- Вторая точка.
[out]result- Прямая.
Возвращает
Возвращает код результата операции.

◆ Segment()

MbResultType Segment ( const MbCartPoint3D point1,
const MbCartPoint3D point2,
MbCurve3D *&  result 
)

Создать отрезок прямой.

Создать отрезок прямой по двум точкам.

Аргументы
[in]point1- Первая точка.
[in]point2- Вторая точка.
[out]result- Отрезок.
Возвращает
Возвращает код результата операции.

◆ Arc()

MbResultType Arc ( const MbCartPoint3D centre,
const SArray< MbCartPoint3D > &  points,
bool  curveClosed,
double  angle,
double &  a,
double &  b,
MbCurve3D *&  result 
)

Создать эллипс (окружность) или его дугу.

Создать эллипс (окружность) или его дугу.
Контейнер points может содержать 0, 2 элементов.

Аргументы
[in]centre- Центр эллипса (окружности)
[in]points- Точки дуги.
[in]curveClosed- Замкнутость дуги.
[in]angle- Угол наклона.
[in,out]a- Длина большой полуоси.
[in,out]b- Длина малой полуоси.
[out]result- Эллипс (окружность) или его дуга.
Возвращает
Возвращает код результата операции.

◆ SplineCurve()

MbResultType SplineCurve ( const SArray< MbCartPoint3D > &  pointList,
bool  curveClosed,
MbeSpaceType  curveType,
MbCurve3D *&  result 
)

Создать кривую, проходящую по набору точек.

Создать кривую, проходящую по набору точек, следующего типа:
curveType == st_LineSegment3D - отрезок,
curveType == st_Arc3D - окружность или дуга,
curveType == st_Polyline3D - ломаная,
curveType == st_Bezier3D - кривая Безье,
curveType == st_CubicSpline3D - кубический сплайн,
curveType == st_Hermit3D - составной кубический сплайн Эрмита,
curveType == st_Nurbs3D - неоднородный рациональный B-сплайн четвертого порядка (кубический).

Аргументы
[in]pointList- Набор точек.
[in]curveClosed- Замкнутость кривой.
[in]curveType- Тип кривой.
[out]result- Кривая.
Возвращает
Возвращает код результата операции.

◆ NurbsCurve()

MbResultType NurbsCurve ( const SArray< MbCartPoint3D > &  pointList,
const SArray< double > &  weightList,
size_t  degree,
const SArray< double > &  knotList,
bool  curveClosed,
MbCurve3D *&  result 
)

Создать NURBS-кривую.

Создать NURBS-кривую, построенную по набору контрольных точек.
Контейнер weightList может быть пустым.
Контейнер knotList может быть пустым.

Аргументы
[in]pointList- Множество точек.
[in]weightList- Множество весов.
[in]degree- Порядок сплайна.
[in]knotList- Множество параметрических узлов (Узловой вектор).
[in]curveClosed- Замкнутость кривой.
[out]result- Сплайновая кривая.
Возвращает
Возвращает код результата операции.

◆ NurbsCopy()

MbResultType NurbsCopy ( const MbCurve3D curve,
MbCurve3D *&  result 
)

Создать копию кривой в виде NURBS.

Создать копию кривой в виде NURBS.

Аргументы
[in]curve- Исходная кривая.
[out]result- Сплайновая копия кривой.
Возвращает
Возвращает код результата операции.

◆ RegularPolygon()

MbResultType RegularPolygon ( const MbCartPoint3D centre,
const MbCartPoint3D point,
const MbVector3D axisZ,
size_t  vertexCount,
bool  describe,
MbCurve3D *&  result 
)

Создать правильный многоугольник, вписанный в окружность.

Создать правильный многоугольник, вписанный в окружность
(при describe == true описанного вокруг окружности) с центром centre и проходящей через point:

  • при vertexCount <= 1 строится окружность с центром centre и проходящая через point,
  • при vertexCount == 2 строится прямоугольник со сторонами, параллельными глобальным осям и противоположными вершинами в centre и point.
    Аргументы
    [in]centre- Центр.
    [in]point- Точка.
    [in]axisZ- Ось Z для создания ЛСК кривой.
    [in]vertexCount- Количество вершин.
    [in]describe- Описанный вокруг окружности.
    [out]result- Правильный многоугольник.
    Возвращает
    Возвращает код результата операции.

◆ SpiralCurve() [1/2]

MbResultType SpiralCurve ( const MbPlacement3D place,
double  radius,
double  step,
MbCurve lawCurve,
bool  spiralAxis,
MbCurve3D *&  result 
)

Создать спираль.

Создать спираль.
Если spiralAxis == true, то lawCurve - определяет плоскую ось спирали.
Если spiralAxis == false, то lawCurve - определяет закон изменения радиуса спирали.

Аргументы
[in]place- Локальная система координат.
[in]radius- Радиус спирали.
[in]step- Шаг спирали.
[in]lawCurve- Формообразующая кривая.
[in]spiralAxis- Выбор режима формообразования
[out]result- Спиральная кривая.
Возвращает
Возвращает код результата операции.

◆ SpiralCurve() [2/2]

MbResultType SpiralCurve ( const MbCartPoint3D point0,
const MbCartPoint3D point1,
const MbCartPoint3D point2,
double  radius,
double  step,
double  angle,
MbCurve lawCurve,
bool  spiralAxis,
MbCurve3D *&  result 
)

Создать спираль.

Создать спираль.
Если spiralAxis == true, то lawCurve - определяет плоскую ось спирали.
Если spiralAxis == false, то lawCurve - определяет закон изменения радиуса спирали.
Если lawCurve == NULL, то строится коническая спираль с углом конусности angle.

Аргументы
[in]point0- Начало локальной системы координат (ЛСК).
[in]point1- Точка на оси Z ЛСК.
[in]point2- Точка на оси X ЛСК.
[in]radius- Радиус спирали.
[in]step- Шаг спирали.
[in]angle- Угол коничности спирали.
[in]lawCurve- Формообразующая кривая.
[in]spiralAxis- Выбор режима формообразования
[out]result- Спиральная кривая.
Возвращает
Возвращает код результата операции.

◆ CreateContour()

MbResultType CreateContour ( MbCurve3D curve,
MbContour3D *&  result 
)

Создать составную кривую (контур).

Создать составную кривую (контур) на базе исходной кривой.

Аргументы
[in]curve- Исходная кривая.
[out]result- Контур на основе кривой.
Возвращает
Возвращает код результата операции.

◆ DuplicateCurve()

MbCurve3D* DuplicateCurve ( const MbCurve3D curve,
VERSION  version = Math::DefaultMathVersion() 
)

Создать копию кривой.

Создать копию кривой с разбивкой ломаной линии и заменой некоторых кривых.

Аргументы
[in]curve- Исходная кривая.
[in]version- Версия исполнения.
Возвращает
Возвращает модифицированную копию кривой, если получилось ее создать.

◆ AddCurveToContour()

MbResultType AddCurveToContour ( MbCurve3D curve,
MbCurve3D contour,
bool  toEnd 
)

Добавить кривую в составную кривую (контур).

Добавить кривую curve в составную кривую (контур) contour.
Если toEnd == true, то добавить в конец.
Если toEnd == false, то добавить в начало.

Аргументы
[in]curve- Добавляемая кривая
[in,out]contour- Модифицируемый контур.
[in]toEnd- Флаг места добавления кривой.
Возвращает
Возвращает код результата операции.

◆ PlaneCurve()

MbResultType PlaneCurve ( const MbPlacement3D place,
const MbCurve curve,
MbCurve3D *&  result 
)

Построить кривую в пространстве по двумерной кривой.

Построить кривую в пространстве по двумерной кривой сurve на плоскости place.
Построение выполняется на оригинале кривой.

Аргументы
[in]place- Система координат плоскости.
[in]curve- Двумерная кривая
[out]result- Плоская кривая.
Возвращает
Возвращает код результата операции.

◆ SurfaceCurve()

MbResultType SurfaceCurve ( const MbSurface surface,
const MbCurve curve,
MbCurve3D *&  result 
)

Построить кривую на поверхности по двумерной кривой.

Построить кривую на поверхности surface по двумерной кривой сurve.
Построение выполняется на оригиналах кривой и поверхности.

Аргументы
[in]surface- Поверхность.
[in]curve- Двумерная кривая
[out]result- Поверхностная кривая.
Возвращает
Возвращает код результата операции.

◆ CurveOnSurface()

MbResultType CurveOnSurface ( const MbCurve3D curve,
const MbSurface surf,
bool  sameSurf,
bool  extSurf,
MbCurve3D *&  result,
bool  strictOnSurface = false 
)

Создать поверхностную кривую, если пространственная кривая лежит на поверхности.

Создать поверхностную кривую, если пространственная кривая лежит на поверхности.
Разбираются частные случае точной принадлежности кривой выбранной поверхности. В общем случае пространственная кривая считается принадлежащей поверхности, если группа точек, полученная шаганием по параметру кривой по угловому отклонению, принадлежит поверхности. В этом случае создается двумерная проекционная кривая этой кривой на поверхности.

Аргументы
[in]curve- Пространственная кривая.
[in]surf- Поверхность.
[in]sameSurf- Использовать оригинал поверхности.
[in]extSurf- Искать на расширенной поверхности.
[in]strictOnSurface- Все точки кривой лежат на поверхности (true) или часть точек лежит на поверхности (false).
[out]result- Поверхностная кривая.
Возвращает
Возвращает код результата операции.

◆ IsCurveOnSurface()

bool IsCurveOnSurface ( const MbCurve3D curve,
const MbSurface surf,
bool  ext,
bool  strictOnSurface = false 
)

Лежит ли кривая на поверхности.

Проверить, лежит ли кривая полностью на поверхности.

Аргументы
[in]curve- Пространственная кривая.
[in]surf- Поверхность.
[in]ext- Искать на расширенной поверхности.
[in]strictOnSurface- Все точки кривой лежат на поверхности (true) или часть точек лежит на поверхности (false).
Возвращает
Возвращает true, если кривая лежит на поверхности.

◆ CreateContours() [1/2]

MbResultType CreateContours ( RPArray< MbCurve3D > &  curves,
double  metricEps,
RPArray< MbContour3D > &  result,
bool  onlySmoothConnected = false,
VERSION  version = Math::DefaultMathVersion() 
)

Создать массив контуров по массиву кривых.

Создать массив контуров по массиву кривых (на оригиналах кривых).

Аргументы
[in]curves- Множество кривых.
[in]metricEps- Радиус захвата для стыковки кривых.
[out]result- Множество контуров.
[in]onlySmoothConnected- Добавлять в контур только гладко стыкующиеся сегменты.
[in]version- Версия исполнения.
Возвращает
Возвращает код результата операции.

◆ CreateContours() [2/2]

MbResultType CreateContours ( RPArray< MbCurve3D > &  curves,
double  metricAcc,
bool  onlySmoothConnected = false,
VERSION  version = Math::DefaultMathVersion() 
)

Создать контуры по набору кривых с удалением вырожденных.

Создать контуры по набору кривых с удалением вырожденных (на оригиналах кривых).

Аргументы
[in,out]curves- Множество кривых.
[in]metricAcc- Радиус захвата для стыковки кривых.
[in]onlySmoothConnected- Добавлять в контур только гладко стыкующиеся сегменты.
[in]version- Версия исполнения.
Возвращает
Возвращает код результата операции.

◆ WireFrame() [1/2]

MbResultType WireFrame ( const MbCurve3D curve,
const MbName curveName,
SimpleName  mainName,
MbWireFrame *&  result 
)

Создать именованный трехмерный каркас.

Создать именованный трехмерный каркас по кривой.

Аргументы
[in]curve- Кривая.
[in]curveName- Имя кривой.
[in]mainName- Главное имя операции.
[out]result- Каркас.
Возвращает
Возвращает код результата операции.

◆ WireFrame() [2/2]

MbResultType WireFrame ( const RPArray< MbCurve3D > &  curves,
const RPArray< MbName > &  curveNames,
SimpleName  mainName,
MbWireFrame *&  result 
)

Создать именованный трехмерный каркас.

Создать именованный трехмерный каркас по массиву кривых.

Аргументы
[in]curves- Множество кривых.
[in]curveNames- Множество имен кривых.
[in]mainName- Главное имя операции.
[out]result- Каркас.
Возвращает
Возвращает код результата операции.

◆ CreatePolyArcCurve3D()

MbResultType CreatePolyArcCurve3D ( const MbCurve3D curve,
MbCurve3D *&  result,
double &  eps,
double  minRad = Math::minRadius,
double  maxRad = Math::maxRadius 
)

Аппроксимировать контур дугами и отрезками.

Аппроксимировать контур дугами и отрезками.
Производится аппроксимация каждого из сегментов контура.

Аргументы
[in]curve- Кривая или контур, которую надо аппроксимировать.
[out]result- Результат аппроксимации.
[in]eps- Ошибка аппроксимации.
[in]minRad- Минимально допустимый радиус окружностей, используемых для аппроксимации.
[in]maxRad- Максимально допустимый радиус окружностей, используемых для аппроксимации.
Возвращает
- Возращает код результата операции.

◆ GetSpaceCurve()

bool GetSpaceCurve ( const MbItem item,
bool  keepPlacement,
SPtr< MbCurve3D > &  curve0,
std::vector< SPtr< MbCurve3D > > *  curves = NULL 
)

Получить или создать пространственную кривую.

Получить или создать пространственную кривую из данных модельного объекта c опциональным сохранением несущей плоскости в случае плоского объекта.
Двумерный контур на плоскости преобразуется не в контур на плоскости, а в пространственный контур.

Аргументы
[in]item- Модельный объект.
[in]keepPlacement- Сохранять несущую плоскость.
[out]curve0- Пространственная кривая.
[out]curves- Дополнительные пространственные кривые (могут быть в объекте MbPlaneInstance).
Возвращает
- Возвращает успешность результата операции.

◆ EvolutionSection()

MbResultType EvolutionSection ( const MbSweptData generCurves,
const MbCurve3D guideCurve,
double  guideParam,
const EvolutionValues params,
MbSweptData result,
VERSION  version = Math::DefaultMathVersion(),
double  angleEpsilon = ANGLE_EPSILON 
)

Создать сечение кинематического тела для заданного параметра на направляющей.

Создать сечение кинематического тела для заданного параметра на направляющей. Если направляющая является контуром, то стыки между сегментами контура должны быть гладкими.

Аргументы
[in]generCurves- Множество плоских образующих.
[in]guideCurve- Направляющая кривая (или контур).
[in]guideParam- Параметр, заданный на направляющей кривой.
[in]angleEpsilon- Желаемая угловая точность параллельности касательных в точке стыка сегментов контура.
[out]result- Кривые сечения кинематического тела.
Возвращает
Возвращает код результата операции.

◆ IsLikeStraightLine()

bool IsLikeStraightLine ( const MbCurve curve,
double  eps 
)

Является ли кривая прямолинейной независимо от ее параметризации.

Является ли кривая прямолинейной независимо от ее параметризации.

Аргументы
[in]curve- Кривая.
[in]eps- Точность.

◆ CheckJoinedParams()

bool CheckJoinedParams ( const MbCurve3D curve,
SArray< double > &  params,
bool  isAscending 
)

Проверить параметры кривой для построения тела соединения.

Проверить параметры кривой и нормализовать параметры замкнутой кривой.

Аргументы
[in]curve- Кривая.
[in,out]params- Множество параметров кривой.
[in]isAscending- Будет ли порядок параметров возрастающим.
Возвращает
Возвращает true, если удалось нормализовать массив параметров.
Предупреждения
Вспомогательная функция операции JoinShell.

◆ CreateJoinedCurve()

MbCurve3D* CreateJoinedCurve ( const RPArray< MbCurveEdge > &  edges,
const SArray< bool > &  orients,
const MbMatrix3D matr,
MbResultType res 
)

Построить кривую по множеству рёбер.

Создать кривую для поверхности соединения по списку ребер.

Аргументы
[in]edges- Набор ребер.
[in]orients- Ориентации ребер.
[in]matr- Матрица преобразования ребер.
[out]res- Результат операции.
Возвращает
Возвращает указатель на кривую, если ее получилось создать, иначе возвращает ноль.
Предупреждения
Вспомогательная функция операции JoinShell.

◆ TrimClosedSpine()

MbCurve3D* TrimClosedSpine ( const MbCurve3D curve,
double  t 
)

Создать усеченную замкнутую кривую на копии кривой.

Выполнить построение копии замкнутой кривой с началом в точке, определяемой параметром t.

Аргументы
[in]curve- Направляющая кривая.
[in]t- Параметр кривой.
Возвращает
При удачной работе функция возвращает построенную копию кривой с началом в заданной точке, в противном случае функция возвращает ноль.
Предупреждения
Вспомогательная функция операций EvolutionSolid и EvolutionResult.

◆ CalculatePipePoints()

MbResultType CalculatePipePoints ( const MbCartPoint3D origin1,
const MbVector3D direction1,
double  length1,
double  radius1,
const MbCartPoint3D origin2,
const MbVector3D direction2,
double  length2,
double  radius2,
MbCartPoint3D result1,
MbCartPoint3D result2 
)

Рассчитать вершины ломаной.

Рассчитать вершины ломаной point1 и point2, соединяющей точки origin1 и origin2, сдвинутые в направлениях direction1 и direction2 на расстояния length1 и length2, которую можно скруглить радиусами radius1 и radius2.

Аргументы
[in]origin1- Первая точка.
[in]direction1- Направление сдвига первой точки.
[in]length1- Величина сдвига первой точки.
[in]radius1- Радиус скругления для первой точки.
[in]origin2- Вторая точка.
[in]direction2- Направления сдвига для второй точки.
[in]length2- Величина сдвига для второй точки.
[in]radius2- Радиус скругления для второй точки.
[out]result1- Первая точка ломаной.
[out]result2- Вторая точка ломаной.
Возвращает
Возвращает код результата операции.

◆ OffsetPlaneCurve()

MbResultType OffsetPlaneCurve ( const MbCurve3D curve,
double  d,
MbCurve3D *&  result 
)

Создать эквидистантную кривую.

Создать эквидистантную кривую по плоской кривой.

Аргументы
[in]curve- Исходная кривая.
[in]d- Величина эквидистанты.
[out]result- Эквидистантная кривая.
Возвращает
Возвращает код результата операции.

◆ OffsetCurve() [1/2]

MbResultType OffsetCurve ( const MbCurve3D initCurve,
const MbVector3D offsetVect,
const bool  useFillet,
const bool  keepRadius,
const bool  bluntAngle,
const bool  fromBeg,
const MbSNameMaker snMaker,
MbWireFrame *&  result 
)

Создать эквидистантную кривую.

Создать эквидистантную кривую по трехмерной кривой и вектору направления.

Аргументы
[in]initCurve- Постранственная кривая, к которой строится эквидистантная.
[in]offsetVect- Вектор, задающий смещение в точке кривой.
[in]useFillet- Если true, то разрывы заполнять скруглением, иначе продолженными кривыми.
[in]keepRadius- Если true, то в существующих скруглениях сохранять радиусы.
[in]bluntAngle- Если true, то в притуплять острые углы.
[in]fromBeg- Вектор смещения привязан к началу.
[in]snMaker- Именователь кривых каркаса.
[out]result- Каркас с построенными кривыми.
Возвращает
Возвращает код результата операции.

◆ OffsetCurve() [2/2]

MbResultType OffsetCurve ( const MbCurve3D curve,
const MbFace face,
const MbAxis3D dirAxis,
double  dist,
const MbSNameMaker snMaker,
MbWireFrame *&  result 
)

Создать эквидистантную кривую.

Создать эквидистантную кривую по поверхностной кривой и значению смещения.

Аргументы
[in]curve- Кривая на поверхности грани face.
[in]face- Грань, на которой строится эквидистанта.
[in]dirAxis- Направление смещения с точкой приложения.
[in]dist- Величина смещения.
[in]snMaker- Именователь кривых каркаса.
[out]result- Каркас с построенными кривыми.
Возвращает
Возвращает код результата операции.

◆ CurveProjection()

MbResultType CurveProjection ( const MbSurface surface,
const MbCurve3D curve,
MbVector3D direction,
bool  createExact,
bool  truncateByBounds,
RPArray< MbCurve3D > &  result,
VERSION  version = Math::DefaultMathVersion() 
)

Создать проекцию кривой на поверхность.

Создать проекцию кривой curve на поверхность surface (направление проецирования direction может быть NULL).

Аргументы
[in]surface- Поверхность для проецирования.
[in]curve- Проецируемая кривая.
[in]direction- Направление проецирования (если не указано то проецирование по нормали).
[in]createExact- Создавать проекционную кривую при необходимости.
[in]truncateByBounds- Усекать границами поверхности.
[in]version- Версия исполнения.
[out]result- Множество кривых на поверхности.
Возвращает
Возвращает код результата операции.

◆ CurveByTwoProjections()

MbResultType CurveByTwoProjections ( const MbPlacement3D place1,
const MbCurve curve1,
const MbPlacement3D place2,
const MbCurve curve2,
RPArray< MbCurve3D > &  result,
VERSION  version = Math::DefaultMathVersion() 
)

Создать пространственную кривую по двум плоским проекциям.

Создать пространственную кривую по двум плоским проекциям.

Аргументы
[in]place1- Локальная система координат 1.
[in]curve1- Двумерная кривая 1.
[in]place2- Локальная система координат 2.
[in]curve2- Двумерная кривая 2.
[out]result- Множество трехмерных кривых.
Возвращает
Возвращает код результата операции.

◆ ProjectionCurve() [1/2]

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 
)

Создать проекционную кривую по нормали или по направлению.

Создать проекционную кривую по нормали или по направлению.
Если проекция на конструктивную плоскость (плоскость без границ), то создать на ее основе грань и прислать, а за ее удалением следит приславший.

Аргументы
[in]curve- Проецируемая кривая.
[in]faces- Связный набор граней.
[in]dir- Вектор направления (если его нет, проекция по нормали).
[in]createExact- Создавать проекционную кривую при необходимости.
[in]truncateByBounds- Усечь границами.
[in]snMaker- Именователь с версией.
[out]result- Проекционные кривые.
[out]resultIndices- Индексы соответствия (номера граней в исходном массиве).
Возвращает
Возвращает код результата операции.

◆ ProjectionCurve() [2/2]

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 
)

Создать проекционный проволочный каркас по нормали или по направлению.

Создать проекционный проволочный каркас по нормали или по направлению.
Если проекция на конструктивную плоскость (плоскость без границ), то создать на ее основе грань и прислать, а за ее удалением следит приславший.

Аргументы
[in]wireFrame- Проецируемый проволочный каркас.
[in]sameWireFrame- Использовать тот же экземпляр проволочного каркаса, или создать копию.
[in]solid- Тело.
[in]same- Использовать ли тот же экземпляр журнала тела или создать копию.
[in]faceIndices- Номера граней в первой оболочке.
[in]dir- Вектор направления (если его нет, проекция по нормали).
[in]createExact- Создавать проекционную кривую при необходимости.
[in]truncateByBounds- Усечь границами.
[in]snMaker- Именователь с версией.
[out]resFrame- Результирующий проволочный каркас, в котором в атрибутах ребер лежат имена соответствующих граней.
Возвращает
Возвращает код результата операции.

◆ EliminateProjectionCurveOverlay()

bool EliminateProjectionCurveOverlay ( RPArray< MbCurve3D > &  curves,
SArray< uintptr_t > *  indices 
)

Устранить наложение сегментов проекционной кривой.

Устранить наложение сегментов проекционной кривой (вспомогательная функция для функции ProjectionCurve).

Аргументы
[in,out]curves- Множество кривых.
[in,out]indices- Множество индексов, синхронный с массивом кривых.
Возвращает
Возвращает true, если что-то изменилось в наборе кривых.

◆ IntersectionCurve() [1/6]

MbResultType IntersectionCurve ( const MbSurface surface1,
const MbSurface surface2,
const MbSNameMaker snMaker,
MbWireFrame *&  result 
)

Создать кривые пересечения двух поверхностей.

Создать кривые пересечения двух поверхностей. Результат - массив кривых пересечения поверхностей.

Аргументы
[in]surface1- Первая поверхность.
[in]surface2- Вторая поверхность.
[in]snMaker- Именователь кривых каркаса.
[out]result- Каркас с построенными кривыми.
Возвращает
Возвращает код результата операции.
Предупреждения
Лучше использовать IntersectionCurve на гранях, т.к. границы поверхностей могут бы неточные,
что приведет к неточному положению концов кривых пересечения в результате операции.
В гранях же границы поверхности точные, т.к. хранятся в виде кривых пересечения, а не виде двумерных кривых.

◆ IntersectionCurve() [2/6]

MbResultType IntersectionCurve ( MbFace face1,
MbFace face2,
const MbSNameMaker snMaker,
MbWireFrame *&  result 
)

Создать кривые пересечения двух граней.

Создать кривые пересечения двух граней. Результат - массив кривых пересечения поверхностей.

Аргументы
[in]face1- Первая грань оболочки.
[in]face2- Вторая грани оболочки.
[in]snMaker- Именователь кривых каркаса.
[out]result- Каркас с построенными кривыми.
Возвращает
Возвращает код результата операции.

◆ IntersectionCurve() [3/6]

MbResultType IntersectionCurve ( const MbSolid solid1,
const SArray< size_t > &  faceIndices1,
const MbSolid solid2,
const SArray< size_t > &  faceIndices2,
const MbSNameMaker snMaker,
MbWireFrame *&  result 
)

Создать кривые пересечения граней двух оболочек.

Создать кривые пересечения граней двух оболочек. Результат - массив кривых пересечения поверхностей.

Аргументы
[in]solid1- Первая оболочка.
[in]faceIndices1- Номера граней в первой оболочке.
[in]solid2- Вторая оболочка.
[in]faceIndices2- Номера граней во второй оболочке.
[in]snMaker- Именователь кривых каркаса.
[out]result- Каркас с построенными кривыми.
Возвращает
Возвращает код результата операции.

◆ IntersectionCurve() [4/6]

MbResultType IntersectionCurve ( const MbSolid solid1,
const SArray< size_t > &  faceIndices1,
const bool  same1,
const MbSolid solid2,
const SArray< size_t > &  faceIndices2,
const bool  same2,
const MbSNameMaker snMaker,
MbWireFrame *&  result 
)

Создать кривые пересечения граней двух оболочек.

Создать кривые пересечения граней двух оболочек. Результат - массив кривых пересечения поверхностей.

Аргументы
[in]solid1- Первая оболочка.
[in]faceIndices1- Номера граней в первой оболочке.
[in]same1- Использовать ли тот же журнал построителей первого тела или сделать копию.
[in]solid2- Вторая оболочка.
[in]faceIndices2- Номера граней во второй оболочке.
[in]same2- Использовать ли тот же самый журнал построителей второго тела или сделать копию.
[in]snMaker- Именователь кривых каркаса.
[out]result- Каркас с построенными кривыми.
Возвращает
Возвращает код результата операции.

◆ IntersectionCurve() [5/6]

MbResultType IntersectionCurve ( const MbSurface surface1,
bool  ext1,
const MbCartPoint uv1beg,
const MbCartPoint uv1end,
const MbSurface surface2,
bool  ext2,
const MbCartPoint uv2beg,
const MbCartPoint uv2end,
const MbVector3D dir,
MbCurve *&  result1,
MbCurve *&  result2,
MbeCurveBuildType label 
)

Создать линию пересечения поверхностей.

Создать линию пересечения поверхностей surf1 и surf2 по известным началу и концу линии пересечения.

Аргументы
[in]surface1- Первая поверхность.
[in]ext1- На расширенной первой поверхности.
[in]uv1beg- Начальная точка на первой поверхности.
[in]uv1end- Конечная точка на первой поверхности.
[in]surface2- Вторая поверхность.
[in]ext2- На расширенной второй поверхности.
[in]uv2beg- Начальная точка на второй поверхности.
[in]uv2end- Конечная точка на второй поверхности.
[in]dir- Начальное направление создания линии пересечения.
[out]result1- Двумерная кривая на первой поверхности.
[out]result2- Двумерная кривая на второй поверхности.
[out]label- Тип полученной кривой пересечения.
Возвращает
Возвращает код результата операции.

◆ IntersectionCurve() [6/6]

MbResultType IntersectionCurve ( const MbSurface surf1,
bool  ext1,
const MbCartPoint uv1beg,
const MbCartPoint uv1end,
const MbSurface surf2,
bool  ext2,
const MbCartPoint uv2beg,
const MbCartPoint uv2end,
const MbCurve3D guideCurve,
bool  useRedetermination,
bool  checkPoles,
MbCurve *&  pCurve1,
MbCurve *&  pCurve2,
MbeCurveBuildType label 
)

Создать линию пересечения поверхностей.

Создать линию пересечения поверхностей surf1 и surf2 по известным началу и концу линии пересечения и вспомогательной кривой.

Аргументы
[in]surface1- Первая поверхность.
[in]ext1- На расширенной первой поверхности.
[in]uv1beg- Начальная точка на первой поверхности.
[in]uv1end- Конечная точка на первой поверхности.
[in]surface2- Вторая поверхность.
[in]ext2- На расширенной второй поверхности.
[in]uv2beg- Начальная точка на второй поверхности.
[in]uv2end- Конечная точка на второй поверхности.
[in]guideCurve- Направляющая кривая, приближенно описывающая искомую кривую.
[in]useRedetermination- Флаг, определяющий нужно ли уточнять шаг построения следующей точки по сравнению с функцией DeviationStep.
[in]checkPoles- Флаг необходимости проверки и корректировки полюсных точек.
[out]result1- Двумерная кривая на первой поверхности.
[out]result2- Двумерная кривая на второй поверхности.
[out]label- Тип полученной кривой пересечения.
Возвращает
Возвращает код результата операции.

◆ SpaceSplineThrough()

MbResultType SpaceSplineThrough ( const SArray< MbCartPoint3D > &  points,
MbeSplineParamType  paramType,
size_t  degree,
bool  closed,
RPArray< MbPntMatingData< MbVector3D > > &  transitions,
const MbSNameMaker snMaker,
MbWireFrame *&  result 
)

Создать пространственный сплайн через точки и с сопряжениями.

Создать пространственный сплайн через точки и с сопряжениями.
Примечания:
Если есть сопряжения, то количество сопряжений должно быть равно количеству точек.
Отсутствующие сопряжения должны быть представлены нулевыми указателями в массиве

Аргументы
[in]points- Точки.
[in]paramType- Тип параметризации.
[in]degree- Порядок сплайна.
[in]closed- Замкнутость сплайна.


Аргументы
[in]transitions- Заданные сопряжения.
[in]snMaker- Именователь кривых каркаса.
[out]result- Каркас с построенными кривыми.
Возвращает
Возвращает код результата операции.

◆ SpaceSplineBy()

MbResultType SpaceSplineBy ( const SArray< MbCartPoint3D > &  points,
size_t  degree,
bool  closed,
const SArray< double > *  weights,
const SArray< double > *  knots,
MbPntMatingData< MbVector3D > *  begData,
MbPntMatingData< MbVector3D > *  endData,
const MbSNameMaker snMaker,
MbWireFrame *&  result 
)

Создать пространственный сплайн по точкам и с сопряжениями.

Создать пространственный сплайн по точкам и с сопряжениями.

Аргументы
[in]points- Множество точек.
[in]degree- Порядок сплайна.
[in]closed- Строить замкнутый сплайн.
[in]weights- Множество весов точек.
[in]knots- Узловой вектор сплайна.
[in]begData- Сопряжение в начале.
[in]endData- Сопряжение в конце.
[in]snMaker- Именователь кривых каркаса.
[out]result- Каркас с построенными кривыми.
Возвращает
Возвращает код результата операции.

◆ SurfaceSpline()

MbResultType SurfaceSpline ( const MbSurface surface,
bool  throughPoints,
SArray< MbCartPoint > &  paramPnts,
SArray< double > &  paramWts,
bool  paramClosed,
RPArray< MbPntMatingData< MbVector3D > > &  spaceTransitions,
const MbSNameMaker snMaker,
MbWireFrame *&  result 
)

Создать кривую на поверхности.

Создать кривую на поверхности.
Примечания:

  1. Если есть сопряжения, то количество сопряжений должно быть равно количеству точек.
    Отсутствующие сопряжения должны быть представлены нулевыми указателями в массиве
  2. Если сплайн строится через точки, то сопряжения могуть быть заданы произвольно.
  1. Если сплайн строится по полюсам и он незамкнут, то сопряжения могут быть только на концах.
  2. Если сплайн строится по полюсам и он замкнут, то сопряжения должны отсутствовать.
  3. Множество весов должен быть пуст или синхронизирован с массивом точек по количеству (с опцией throughPoints веса игнорируются).
    Аргументы
    [in]surface- Поверхность.
    [in]throughPoints- Провести сплайн через точки.
    [in]paramPnts- Множество параметрических точек.
    [in]paramWts- Множество весов параметрических точек.
    [in]paramClosed- Строить замкнутый параметрический сплайн.
    [in]spaceTransitions- Сопряжения в точках.
    [in]snMaker- Именователь кривых каркаса.
    [out]result- Каркас с построенными кривыми.
    Возвращает
    Возвращает код результата операции.

◆ IsoparametricCurve()

MbResultType IsoparametricCurve ( const MbSurface surface,
double  x,
bool  isU,
const MbRect1D yRange,
MbCurve3D *&  result 
)

Создать изопараметрическую кривую.

Создать изопараметрическую кривую на поверхности surface.

Аргументы
[in]surface- Поверхность.
[in]x- Значение по первому параметру.
[in]isU- Первый параметр есть U.
[in]yRange- Диапазон по второму параметру (если не задан, используются параметрические границы поверхности).
[out]result- Изопараметрическая кривая.
Возвращает
Возвращает код результата операции.

◆ BridgeCurve()

MbResultType BridgeCurve ( const MbCurve3D curve1,
double  t1,
bool  sense1,
const MbCurve3D curve2,
double  t2,
bool  sense2,
const MbSNameMaker names,
MbWireFrame *&  result 
)

Создать кривую - мостик, соединяющую кривые curve1 и curve2.

Создать кривую - мостик, соединяющую кривые curve1 и curve2 кубическим сплайном Эрмита.

Аргументы
[in]curve1- Сопрягаемая кривая 1.
[in]t1- Параметр точки на сопрягаемой кривой 1.
[in]sense1- Начало мостика совпадает с направлением кривой curve1 (true).
[in]curve2- Сопрягаемая кривая 2.
[in]t2- Параметр точки на сопрягаемой кривой 2.
[in]sense2- Конец мостика совпадает с направлением кривой curve2 (true).
[in]names- Именователь кривых каркаса.
[out]result- Каркас с построенными кривыми.
Возвращает
Возвращает код результата операции.

◆ ConnectingCurve()

MbResultType ConnectingCurve ( const MbCurve3D curve1,
bool  isBegin1,
double  radius1,
const MbCurve3D curve2,
bool  isBegin2,
double  radius2,
const MbSNameMaker names,
MbWireFrame *&  result 
)

Создать составную кривую плавного соединения концов двух кривых.

Создать составную кривую плавного соединения концов двух кривых.
Полученная кривая состоит из трёхмерной дуги радиуса radius1, отрезка (в определенных случаях отрезок отсутствует), трёхмерной дуги радиуса radius2.

Аргументы
[in]curve1- Соединяемая кривая 1.
[in]isBegin1- Начало соединяемой кривой 1 (true).
[in]radius1- Радиус сопряжения у соединяемой кривой 1.
[in]curve2- Соединяемая кривая 2.
[in]isBegin2- Начало соединяемой кривой 2 (true).
[in]radius2- Радиус сопряжения у соединяемой кривой 2.
[in]names- Именователь кривых каркаса.
[out]result- Каркас с построенными кривыми.
Возвращает
Возвращает код результата операции.

◆ ConnectingSpline()

MbResultType ConnectingSpline ( const MbCurve3D curve1,
double  t1,
MbeMatingType  mating1,
const MbCurve3D curve2,
double  t2,
MbeMatingType  mating2,
double  tension1,
double  tension2,
const MbSNameMaker names,
MbWireFrame *&  result 
)

Создать соединительную NURBS кривую для кривых curve1 и curve2.

Создать соединительную NURBS кривую для кривых curve1 и curve2.
t1 и t2 - параметры кривых curve1 и curve2, в точках которых начинается и заканчивается соединение.

Аргументы
[in]curve1- Соединяемая кривая 1.
[in]t1- Параметр точки на кривой 1.
[in]mating1- Тип соединения кривой 1.
[in]curve2- Соединяемая кривая 2.
[in]t2- Параметр точки на кривой 2.
[in]mating2- Тип соединения кривой 2.
[in]tension1- Параметр "натяжение" соединительной кривой на стыке с кривой 1 ( 0<= tension1 <=1).
[in]tension2- Параметр "натяжение" соединительной кривой на стыке с кривой 2( 0<= tension2 <=1).
[in]names- Именователь кривых каркаса.
[out]result- Каркас с построенными кривыми.
Возвращает
Возвращает код результата операции.

◆ FilletCurve()

MbResultType FilletCurve ( const MbCurve3D curve1,
double &  t1,
double &  w1,
const MbCurve3D curve2,
double &  t2,
double &  w2,
double &  radius,
bool  sense,
bool &  unchanged,
const MbeConnectingType  type,
const MbSNameMaker names,
MbElementarySurface *&  surface,
MbWireFrame *&  result 
)

Создать кривую для плавного соединения (скругления) кривых.

Создать кривую для плавного соединения (скругления) кривых.
Для плавного сопряжения кривых curve1 и curve2 строится кривая filletCurve.
При входе t1 и t2 - начальные приближения, определяющие сектор построения скругления, w1 и w2 - не используются.
При входе type - тип скругления (обычное или на поверхности).
На выходе t1 и t2 - будут равны параметрам касания кривых curve1 и curve2 с кривой filletCurve.
На выходе t1 и w1 - определяют параметры сохраняемого участка при обрезке кривой curve1.
На выходе t2 и w2 - определяют параметры сохраняемого участка при обрезке кривой curve2.
Параметр radius - радиус дуги или цилиндра.
Если радиус radius не задан (равен нулю), то он вычисляется из условия, что начало кривой сопряжения будет находится в точке с параметором t1, t1 и t2 - параметры кривых curve1 и curve2, в соответствующих точках которых начинается и заканчивается скругление.
Параметр sense - прямое или обратное направление кривой скругления.
Кривая filletCurve - это кривая сопряжения, дуга (когда surface == NULL) или кривая на поверхности цилиндра surface.
Поверхность surface - это цилиндрическая поверхность, на которой строится кривая сопряжения в общем случае. Поверхность surface нельзя удалять, на этой поверхности построена кривая сопряжения filletCurve, при удалении filletCurve удалится surface, если не был дополнительно выполнен surface->AddRef().

Аргументы
[in]curve1- Соединяемая кривая 1.
[in/out]t1 - Параметр точки на кривой 1 соединения с кривой соединения.
[out]w1- Параметр края на кривой 1.
[in]curve2- Соединяемая кривая 2.
[in/out]t2 - Параметр точки на кривой 2 соединения с кривой соединения.
[out]w2- Параметр края на кривой 2.
[in/out]radius - Радиус дуги или цилиндра.
[in]sense- Прямое (true) или обратное (false) направление кривой скругления.
[out]unchanged- Не изменился радиус соединения (true) или изменился (false).
[in]type- Тип скругления.
[in]names- Именователь кривых каркаса.
[out]surface- Поверхность, на которой базируется соединительная кривая, (может быть NULL).
[out]result- Каркас с построенными кривыми.
Возвращает
Возвращает код результата операции.

◆ CreateContourFillets()

MbResultType CreateContourFillets ( const MbContour3D contour,
SArray< double > &  radiuses,
MbCurve3D *&  result,
const MbeConnectingType  type 
)

Создать кривую для плавного соединения (скругления) всех кривых контура.

Создать кривую для плавного соединения (скругления) всех кривых контура contour.
type - тип скругления (обычное или на поверхности).
radiuses - радиусы скругления, i-й радиус соответствует стыку i-го и i+1-го сегмента.
Если две кривых в контуре гладко стыкуются, в этом стыке скругление не делается, радиус игнорируется.

Аргументы
[in]contour- Исходный контур.
[in]radiuses- Множество радиусов скругления.
[out]result- Контур со скруглениями. Имя сегмента скругления - Hash32SN() имен исходных сегменов.
[in]type- Тип выполняемых скруглений.
Возвращает
Возвращает код результата операции.

◆ NurbsConic_1()

MbCurve3D* NurbsConic_1 ( const MbCartPoint3D mbPoint0,
const MbCartPoint3D mbPoint1,
const MbCartPoint3D mbPoint2,
double  fDiscr 
)

Построить коническое сечение по двум точкам вершине и дискриминанту.

Построение конического сечения в виде NURBS-кривой 3-го порядка по двум точкам, которые задают начало и конец кривой, вершине инженерного треугольника и дискриминанту, который используется для определения третьей точки кривой.

Аргументы
[in]mbPoint0- Координаты начала коники.
[in]mbPoint1- Координаты вершины угла, в который надо вписать конику.
[in]mbPoint2- Координаты конца коники.
[in]fDiscr- Дискриминант < 1, если задать дискриминант >= 1, то он автоматически будет сброшен до значения 0.99999999.
Возвращает
Указатель на построенную кривую
NULL, если не удалось построить конику для заданных параметров.

◆ NurbsConic_2()

MbCurve3D* NurbsConic_2 ( std::vector< MbCartPoint3D > &  vmbConicPoints,
const MbCartPoint3D mbVertex 
)

Построить коническое сечение по трем точкам и вершине.

Построение конического сечения в виде NURBS-кривой 3-го порядка по трем точкам: началу, концу и средней точке кривой, а также вершине угла, в который должна быть вписана коника.

Аргументы
[in]vmbConicPoints- Контейнер точек коники: начало, средняя точка, конец; точек должно быть 3.
[in]mbVertex- Координаты вершины угла, в который надо вписать конику.
Возвращает
Указатель на построенную кривую
NULL, если не удалось постороить конику для заданных параметров.

◆ NurbsConic_3()

MbCurve3D* NurbsConic_3 ( const std::vector< MbCartPoint3D > &  vmbConicPoints,
MbVector3D mbTangent1,
MbVector3D mbTangent2 
)

Построить коническое сечение по трем точкам и двум наклонам.

Построение конического сечения в виде NURBS-кривой 3-го порядка по 3-ем точкам, которые задают начало, конец и среднюю точку кривой и двум наклонам, выходящим из начальной и конечной точек.

Аргументы
[in]vmbConicPoints- Контейнер точек коники: начало, средняя точка, конец; точек должно быть 3.
[in]mbTangent1- Наклон в начале кривой.
[in]mbTangent2- Наклон в конце кривой.
Возвращает
Указатель на построенную кривую
NULL, если не удалось постороить конику для заданных параметров.

◆ NurbsConic_4()

MbCurve3D* NurbsConic_4 ( const MbCartPoint3D mbPoint1,
const MbCartPoint3D mbPoint2,
const MbVector3D mbTangent1,
const MbVector3D mbTangent2,
double  fDiscr 
)

Построить коническое сечение по двум точкам, двум наклонам и дискриминанту.

Построение конического сечения в виде NURBS-кривой 3-го порядка по 2-ум точкам, которые задают начало и конец кривой, двум наклонам, выходящим из этих точек и дискриминанту.

Аргументы
[in]mbPoint1- Координаты начала коники.
[in]mbPoint2- Координаты конца коники.
[in]mbTangent1- Наклон в начале коники.
[in]mbTangent2- Наклон в конце коники.
[in]fDiscr- Дискриминант < 1, если задать дискриминант >= 1, то он автоматически будет сброшен до значения 0.99999999.
Возвращает
Указатель на построенную кривую
NULL, если не удалось построить конику для заданных параметров.

◆ NurbsConic_5()

MbCurve3D* NurbsConic_5 ( const std::vector< MbCartPoint3D > &  vmbConicPoints,
MbVector3D mbTangent1,
size_t  tanPntNb = 1 
)

Построить коническое сечение по четырем точкам и наклону.

Построение конического сечения в виде NURBS-кривой 3-го порядка по 4-ем точкам и наклону в первой из них.
Путем подставления начальных точек в общее уравнение коники Ax^2 + Bxy + Cy^2 + Dx + Ey + F = 0 и касательной к ней в начальной точке (x1, y1): (2Ax1 + By1 + D)(x - x1) + (2Cy1 + Bx1 + E)(y - y1) = 0 получим СЛАУ. Решив СЛАУ относительно параметров A,B,C,D,E, найдем искомую конику.

Аргументы
[in]vmbConicPoints- Контейнер точек коники: первая точка начальная, последняя - конечная; точек должно быть 4.
[in]mbTangent1- Наклон в точке коники.
[in]tanPntNb- Номер точке, в которой задан наклон.
Возвращает
Указатель на построенную кривую
NULL, если не удалось постороить конику для заданных параметров.

◆ NurbsConic_6()

MbCurve3D* NurbsConic_6 ( const std::vector< MbCartPoint3D > &  vmbConicPoints)

Построить коническое сечение по пяти точкам.

Построение конического сечения в виде NURBS-кривой 3-го порядка по 5-ти точкам.
Путем подставления начальных точек в общее уравнение коники Ax^2 + Bxy + Cy^2 + Dx + Ey + F = 0 получим СЛАУ. Решив СЛАУ относительно параметров A,B,C,D,E, найдем искомую конику.

Аргументы
[in]vmbConicPoints- Контейнер точек коники: первая точка начальная, последняя - конечная; точек должно быть 5.
Возвращает
Указатель на построенную кривую
NULL, если не удалось постороить конику для заданных параметров.

◆ InitContour3D()

bool InitContour3D ( MbContour3D contour,
bool  closed,
SArray< Polyline3DPoint > &  initList,
SArray< ptrdiff_t > &  errorIndexes,
double  lengthEpsilon = Math::lengthEpsilon 
)

Построить контур из отрезков по заданным точкам.

Вершины сочленения скругляются. Каждой вершине соответствует радиус скругления.
Eсли две вершины совпадают, то одна из них и соответствующий ей радиус удаляются.

Аргументы
[out]contour- Контур.
[in]closed- Флаг замкнутости контура.
[in]initList- Множество точек полилинии.
[out]errorIndexes- Множество индексов сегментов, сочленение которых со следующим прошло с ошибками.
[in]lengthEpsilon- Погрешность построения элементов полилинии.
Возвращает
true, если сегментов больше нуля.

◆ CreateFilletEdge()

MbCreator* CreateFilletEdge ( const MbCurve3D curve1,
double &  t1,
const MbCurve3D curve2,
double &  t2,
double &  radius,
bool  sense,
MbeConnectingType  type,
const MbSNameMaker names,
MbResultType res,
bool &  unchanged,
MbElementarySurface *&  surface,
MbEdge *&  edge 
)

Создание строителя скругления двух кривых.

Создание строителя скругления двух кривых.

Аргументы
[in]curve1- Кривая 1.
[in]curve2- Кривая 2.
Возвращает
Возвращает строитель.

◆ CreateSplineEdge()

MbCreator* CreateSplineEdge ( const MbCurve3D curve1,
double  t1,
MbeMatingType  mating1,
const MbCurve3D curve2,
double  t2,
MbeMatingType  mating2,
double  tension1,
double  tension2,
const MbSNameMaker names,
MbResultType res,
MbEdge *&  edge 
)

Создание строителя сопряжения двух кривых сплайном.

Создание строителя сопряжения двух кривых сплайном.

Аргументы
[in]curve1- Кривая 1.
[in]curve2- Кривая 2.
Возвращает
Возвращает строитель.

◆ CreateConnectingEdge()

MbCreator* CreateConnectingEdge ( const MbCurve3D curve1,
bool  isBegin1,
double  radius1,
const MbCurve3D curve2,
bool  isBegin2,
double  radius2,
const MbSNameMaker names,
MbResultType res,
MbEdge *&  edge 
)

Создание строителя сопряжения концов двух кривых составной кривой плавного соединения.

Создание строителя сопряжения концов двух кривых составной кривой плавного соединения.

Аргументы
[in]curve1- Кривая 1.
[in]curve2- Кривая 2.
Возвращает
Возвращает строитель.

◆ CreateBridgeEdge()

MbCreator* CreateBridgeEdge ( const MbCurve3D curve1,
double  t1,
bool  sense1,
const MbCurve3D curve2,
double  t2,
bool  sense2,
const MbSNameMaker names,
MbResultType res,
MbEdge *&  edge 
)

Cоздание строителя сопряжения двух кривых кубическим сплайном Эрмита (кривой-мостиком).

Cоздание строителя сопряжения двух кривых кубическим сплайном Эрмита (кривой-мостиком).

Аргументы
[in]curve1- Кривая 1.
[in]curve2- Кривая 2.
Возвращает
Возвращает строитель.

◆ CreateFillet()

MbCreator* CreateFillet ( MbFaceShell solid,
MbeCopyMode  sameShell,
SArray< MbEdgeFunction > &  initCurves,
RPArray< MbFace > &  initBounds,
const SmoothValues parameters,
const MbSNameMaker names,
MbResultType res,
MbFaceShell *&  shell 
)

Создать оболочку со cкруглением ребeр.

Для указанной оболочки построить оболочку, в которой выполнено cкругление рёбер переменным радиусом.
Одновременно с построением оболочки функция создаёт её строитель.

Аргументы
[in]solid- Исходная оболочка.
[in]sameShell- Способ копирования граней исходной оболочки.
[in]initCurves- Обрабатываемые рёбра исходной оболочки и значения переменного радиуса.
[in]initBounds- Грани исходной оболочки для обрезки cкругления или фаски.
[in]parameters- Параметры обработки рёбер.
[in]names- Именователь операции.
[out]res- Код результата операции.
[out]shell- Построенный набор граней.


Возвращает
Возвращает строитель, если операция была выполнена успешно.

◆ CreateSplineThrough()

MbCreator* CreateSplineThrough ( const SArray< MbCartPoint3D > &  points,
MbeSplineParamType  paramType,
size_t  degree,
bool  closed,
RPArray< MbPntMatingData< MbVector3D > > &  transitions,
const MbSNameMaker snMaker,
MbResultType resType,
MbCurve3D *&  resCurve 
)

Создать пространственный сплайн через точки и с сопряжениями.

Создать пространственный сплайн через точки и с сопряжениями Если есть сопряжения, то количество сопряжений д.б. равно количеству точек. Отсутствующие сопряжения должны быть представлены нулевыми указателями в массиве.

Возвращает
Возвращает строитель.

◆ CreateSplineBy()

MbCreator* CreateSplineBy ( const SArray< MbCartPoint3D > &  points,
size_t  degree,
bool  closed,
const SArray< double > *  weights,
const SArray< double > *  knots,
MbPntMatingData< MbVector3D > *  begData,
MbPntMatingData< MbVector3D > *  endData,
const MbSNameMaker snMaker,
MbResultType resType,
MbCurve3D *&  resCurve 
)

Создать пространственный сплайн по точкам и сопряжениями.

Создать пространственный сплайн по точкам и сопряжениями.

Возвращает
Возвращает строитель.

◆ CreateOffsetCurve() [1/2]

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 
)

Создать офсетную кривую по трехмерной кривой и вектору направления.

Создать офсетную кривую по трехмерной кривой и вектору направления.

Аргументы
[in]initCurve- Постранственная кривая, к которой строится эквидистантная.
[in]offsetVect- Вектор, задающий смещение в точке кривой.
[in]useFillet- Если true, то разрывы заполнять скруглением, иначе продолженными кривыми.
[in]keepRadius- Если true, то в существующих скруглениях сохранять радиусы.
[in]fromBeg- Вектор смещения привязан к началу.
[in]snMaker- Именователь кривых каркаса.
[out]resType- Код результата операции
[out]resCurve- Эквидистантная кривая.
Возвращает
Возвращает строитель.

◆ CreateOffsetCurve() [2/2]

MbCreator* CreateOffsetCurve ( const MbCurve3D curve,
const MbFace face,
const MbAxis3D dirAxis,
double  dist,
const MbSNameMaker snMaker,
MbResultType resType,
RPArray< MbCurve3D > &  resCurves 
)

Создать офсетную кривую по поверхностной кривой и значению смещения.

Создать офсетную кривую по поверхностной кривой и значению смещения.

Аргументы
[in]curve- Кривая на поверхности грани face.
[in]face- Грань, на которой строится эквидистанта.
[in]dirAxis- Направление смещения с точкой приложения.
[in]dist- Величина смещения.
[in]snMaker- Именователь кривых каркаса.
[out]resType- Код результата операции
[out]resCurves- Множество эквидистантных кривых.
Возвращает
Возвращает строитель.

◆ CreateSurfaceSpline()

MbCreator* CreateSurfaceSpline ( const MbSurface surface,
bool  throughPoints,
SArray< MbCartPoint > &  paramPnts,
SArray< double > &  paramWts,
bool  paramClosed,
RPArray< MbPntMatingData< MbVector3D > > &  spaceTransitions,
const MbSNameMaker snMaker,
MbResultType resType,
RPArray< MbCurve3D > &  resCurves 
)

Создать кривую на поверхности.

Создать кривую на поверхности.
Примечания:

  1. Если есть сопряжения, то количество сопряжений д.б. равно количеству точек.
    Отсутствующие сопряжения должны быть представлены нулевыми указателями в массиве
  2. Если сплайн строится через точки, то сопряжения могуть быть заданы произвольно.
  1. Если сплайн строится по полюсам и он незамкнут, то сопряжения могут быть только на концах.
  2. Если сплайн строится по полюсам и он замкнут, то сопряжения должны отсутствовать.
  3. Множество весов д.б. пуст или синхронизирован с массивом точек по количеству (с опцией throughPoints веса игнорируются).
    Аргументы
    [in]surface- Поверхность.
    [in]throughPoints- Провести сплайн через точки.
    [in]paramPnts- Множество параметрических точкек.
    [in]paramWts- Множество весов параметрических точек.
    [in]paramClosed- Строить замкнутый параметрический сплайн.
    [in]spaceTransitions- Сопряжения в точках.
    [in]snMaker- Именователь кривых каркаса.
    [out]resType- Код результата операции
    [out]resCurves- Множество эквидистантных кривых.
    Возвращает
    Возвращает строитель.

◆ MakeCurve3D()

MbCurve3D* MakeCurve3D ( const MbCurve curve,
const MbPlacement3D  
)

Cоздать пространственную кривую.

Создать пространственную кривую как точное представление двумерной кривой на плоскости.

◆ ExtractCurvesDeleteFrame()

void ExtractCurvesDeleteFrame ( MbWireFrame *&  wireFrame,
RPArray< MbCurve3D > &  curves 
)
inline

Забрать кривые и удалить каркас, если он не используется.

Забрать кривые и удалить каркас, если он не используется.

Аргументы
[in]wireFrame- Каркас, подлежащий удалению.
[out]curves- Кривые, полученные из каркаса.

◆ ExtractCurveDeleteFrame()

void ExtractCurveDeleteFrame ( MbWireFrame *&  wireFrame,
MbCurve3D *&  curve 
)
inline

Забрать первую кривую и удалить каркас, если он пуст и не используется.

Забрать первую кривую и удалить каркас, если он пуст и не используется.

Аргументы
[in]wireFrame- Каркас, подлежащий удалению.
[out]curve- Кривая, полученная из каркаса.

◆ CreateWireFrame() [1/2]

bool CreateWireFrame ( MbWireFrame *&  result,
const RPArray< MbCurve3D > &  curves,
const MbSNameMaker snMaker,
MbCreator creator = NULL 
)

Создать каркас по множеству кривых.

Создать или обновить каркас по множеству кривых.

Аргументы
[out]result- Каркас, подлежащий замене или построению.
[in]curves- Кривые для построения каркаса.
[in]snMaker- Именователь кривых каркаса.
[in]creator- Строитель каркаса.
Возвращает
Возвращает true, если присланный каркас обновился, или был создан новый при отсутствии каркаса на входе.

◆ CreateWireFrame() [2/2]

bool CreateWireFrame ( MbWireFrame *&  result,
const MbCurve3D curve,
const MbSNameMaker snMaker,
MbCreator creator = NULL 
)

Создать каркас по кривой.

Создать или обновить каркас по кривой.

Аргументы
[out]result- Каркас, подлежащий замене или построению.
[in]curve- Кривая для построения каркаса.
[in]snMaker- Именователь кривых каркаса.
[in]creator- Строитель каркаса.
Возвращает
Возвращает true, если присланный каркас обновился, или был создан новый при отсутствии каркаса на входе.