C3D Toolkit  Kernel - 105122, Vision - 0.181114.105122
Файл action_curve3d.h

Методы построения трехмерных кривых. Подробнее...

Функции

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)
 Получить или создать пространственную кривую. Подробнее...
 
MbCurve3DUnwrapCurve (const MbCurve3D &curve, const MbPlacement3D &placement, const MbCartPoint3D &point, double deviationAngle=DEVIATION_SAG)
 Построить развертку кривой/контура на плоскость. Подробнее...
 
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)
 Является ли кривая прямолинейной независимо от ее параметризации. Подробнее...
 

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

Методы построения трехмерных кривых.

На базе кривых строятся рёбра. Рёбра используются в твёрдотельной и каркасной модели. Кроме того, кривые используются для построения поверхностей, а также могут служить вспомогательными элементами модели.

Функции

◆ UnwrapCurve()

MbCurve3D* UnwrapCurve ( const MbCurve3D curve,
const MbPlacement3D placement,
const MbCartPoint3D point,
double  deviationAngle = DEVIATION_SAG 
)

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

Построение развертки кривой/контура на плоскость. Контур разворачивается посегментно, функцией UnwrapCurve. Первым разворачивается сегмент, который лежит в плоскости и находиться ближе всех к точке, если лежащих в плоскости нет, то ближащий к точке из тех что пересекают контур, если и таких нет то просто ближайший к точке. Первый сегмент разворачивается так, чтобы точка пересечения или ближайшей проекции была неподвижной.

Аргументы
[in]curve- Разворачиваемая кривая/контур.
[in]placement- Локальная система координат плоскости.
[in]point- Точка для определения первого сегмента.
[in]deviationAngle- Параметру точности.
Возвращает
Возвращает указатель на построенную кривую с нулевум счетчиком ссылок
или NULL, если не удалось построить развертку для заданных параметров.