C3D Kernel  104065
Функции
Файл 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)
 Является ли кривая прямолинейной независимо от ее параметризации.

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

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


Функции

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, если не удалось построить развертку для заданных параметров.
 Указатель Классы Пространства имен Файлы Функции Переменные Определения типов Перечисления Элементы перечислений Друзья Макросы