C3D Toolkit  Kernel - 117982, Vision - 2.9.2.2
action_curve3d.h File Reference

Functions for three-dimensional curves construction. More...

#include <hash32.h>
#include <templ_s_array.h>
#include <templ_sptr.h>
#include <mb_cart_point3d.h>
#include <space_item.h>
#include <curve3d.h>
#include <mb_operation_result.h>
#include <vector>

Functions

MbResultType Line (const MbCartPoint3D &point1, const MbCartPoint3D &point2, MbCurve3D *&result)
 Create a line. More...
 
MbResultType Segment (const MbCartPoint3D &point1, const MbCartPoint3D &point2, MbCurve3D *&result)
 Create a line segment. More...
 
MbResultType Arc (const MbCartPoint3D &centre, const SArray< MbCartPoint3D > &points, bool curveClosed, double angle, double &a, double &b, MbCurve3D *&result)
 Create an ellipse (circle) or an elliptical (circular) arc. More...
 
MbResultType SplineCurve (const SArray< MbCartPoint3D > &pointList, bool curveClosed, MbeSpaceType curveType, MbCurve3D *&result)
 Create a curve passing through a set of points. More...
 
MbResultType NurbsCurve (const SArray< MbCartPoint3D > &pointList, const SArray< double > &weightList, size_t degree, const SArray< double > &knotList, bool curveClosed, MbCurve3D *&result)
 Create a NURBS-curve. More...
 
double NurbsFitting (const std::vector< MbCartPoint3D > &pointList, bool curveClosed, size_t degree, size_t mode, double &accuracy, MbCurve3D *&result)
 Create a Nurbs curve with sorting points by distance passing through a set of points. More...
 
MbResultType NurbsCopy (const MbCurve3D &curve, MbCurve3D *&result)
 Create a copy of a curve as a NURBS-curve. More...
 
MbResultType NurbsCopy (const MbCurve3D &curve, const MbNurbsParameters &params, MbNurbsCopyCurveResult &result)
 Create a NURBS curve copy by given parameters. More...
 
MbResultType RegularPolygon (const MbCartPoint3D &centre, const MbCartPoint3D &point, const MbVector3D &axisZ, size_t vertexCount, bool describe, MbCurve3D *&result)
 Create a regular polygon inscribed in a circle. More...
 
MbResultType SpiralCurve (const MbPlacement3D &place, double radius, double step, MbCurve &lawCurve, bool spiralAxis, MbCurve3D *&result)
 Create a spiral. More...
 
MbResultType SpiralCurve (const MbCartPoint3D &point0, const MbCartPoint3D &point1, const MbCartPoint3D &point2, double radius, double step, double angle, MbCurve *lawCurve, bool spiralAxis, MbCurve3D *&result)
 Create a spiral. More...
 
MbResultType CreateContour (MbCurve3D &curve, MbContour3D *&result)
 Create a composite curve (contour). More...
 
MbCurve3DDuplicateCurve (const MbCurve3D &curve, VERSION version=Math::DefaultMathVersion())
 Create a copy of a curve. More...
 
MbResultType AddCurveToContour (MbCurve3D &curve, MbCurve3D &contour, bool toEnd)
 Add a curve to a composite curve (a contour). More...
 
MbResultType PlaneCurve (const MbPlacement3D &place, const MbCurve &curve, MbCurve3D *&result)
 Create a space curve from a two-dimensional curve. More...
 
MbResultType SurfaceCurve (const MbSurface &surface, const MbCurve &curve, MbCurve3D *&result)
 Create a curve on a surface given a two-dimensional curve. More...
 
MbResultType CurveOnSurface (const MbCurve3D &curve, const MbSurface &surf, bool sameSurf, bool extSurf, MbCurve3D *&result, bool strictOnSurface=false)
 Create a curve on a surface from a space curve lying on the surface. More...
 
bool IsCurveOnSurface (const MbCurve3D &curve, const MbSurface &surf, bool ext, bool strictOnSurface, VERSION version=Math::DefaultMathVersion())
 Determine whether the curve lies on the surface. More...
 
MbResultType CreateContours (RPArray< MbCurve3D > &curves, double metricEps, RPArray< MbContour3D > &result, bool onlySmoothConnected=false, VERSION version=Math::DefaultMathVersion())
 Create an array of contours given an array of curves. More...
 
MbResultType CreateContours (RPArray< MbCurve3D > &curves, double metricAcc, bool onlySmoothConnected=false, VERSION version=Math::DefaultMathVersion())
 Create contours given a set of curves with elimination of degenerate ones. More...
 
MbResultType WireFrame (const MbCurve3D &curve, const MbName &curveName, SimpleName mainName, MbWireFrame *&result)
 Create a named three-dimensional wireframe. More...
 
MbResultType WireFrame (const RPArray< MbCurve3D > &curves, const RPArray< MbName > &curveNames, SimpleName mainName, MbWireFrame *&result)
 Create a named three-dimensional wireframe. More...
 
MbResultType CreatePolyArcCurve3D (const MbCurve3D &curve, MbCurve3D *&result, double &eps, double minRad=Math::minRadius, double maxRad=Math::maxRadius)
 Approximate a contour with arcs and line segments. More...
 
bool GetSpaceCurve (MbItem &item, bool keepPlacement, c3d::SpaceCurveSPtr &curve0, c3d::SpaceCurvesSPtrVector *curves=nullptr)
 Get or create a space curve. More...
 
MbCurve3DUnwrapCurve (const MbCurve3D &curve, const MbPlacement3D &placement, const MbCartPoint3D &point, double deviationAngle=DEVIATION_SAG)
 Construct a unwrapping curve/contour. More...
 
MbResultType EvolutionSection (const MbSweptData &generCurves, const MbCurve3D &guideCurve, double guideParam, const EvolutionValues &params, MbSweptData &result, VERSION version=Math::DefaultMathVersion(), double angleEpsilon=ANGLE_EPSILON)
 Create a section of evolution solid for defined parameter on the guide curve. More...
 
bool IsLikeStraightLine (const MbCurve3D &curve, double eps)
 Whether the curve is like straight-line regardless of its parameterisation. More...
 
bool CreateCenterLineCurves (const MbFace &face, std::vector< MbCurve3D * > &clCurves)
 Create center lines of shell face. More...
 
MbResultType CreateFairBSplineCurveOnBasePolyline (MbCurve3D *polyline, MbFairCurveData &data, MbCurve3D *&result)
 Create a fair B-spline on base polyline. More...
 
MbResultType CreateFairBSplineCurveOnTangentPolyline (MbCurve3D *polyline, MbFairCurveData &data, MbCurve3D *&result)
 Create a fair B-spline on tangent polyline. More...
 
MbResultType CreateFairBezierCurveOnBasePolyline (MbCurve3D *polyline, MbFairCurveData &data, MbCurve3D *&result)
 Create a fair Bezier curve on base polyline. More...
 
MbResultType CreateFairBezierFilletOnPolyline (MbCurve3D *pllne, MbFairCurveData &data, MbCurve3D *&resCurve)
 Create a fillet fair Bezier curve on base polyline. More...
 
MbResultType CreateFairBezierCurveOnTangentPolyline (MbCurve3D *polyline, MbFairCurveData &data, MbCurve3D *&result)
 Create a fair Bezier curve on tangent polyline. More...
 
MbResultType KernelCreateHermiteGDOnBezierCurve (const MbNurbs3D *curve, MbeFairCurveType type, MbFairCurveData &data, MbCurve3D *&polyline)
 Create Hermite GD on a Bezier curve. More...
 
MbResultType CreateBezierCurveOnHermiteGD (MbCurve3D *polyline, MbFairCurveData &data, MbCurve3D *&result)
 Create a Bezier on Hermite GD. More...
 
MbResultType CreateBSplineCurveOnHermiteGD (MbCurve3D *polyline, MbFairCurveData &data, MbCurve3D *&result)
 Create a B-spline on Hermite GD. More...
 
MbResultType CreateFairBezierCurveOnBasePolylineOfHermiteGD (MbCurve3D *polyline, MbFairCurveData &data, MbCurve3D *&result)
 Create a fair Bezier curve on base polyline of Hermite GD. More...
 
MbResultType CreateFairBezierCurveOnTangentsOfHermiteGD (MbCurve3D *polyline, MbFairCurveData &data, MbCurve3D *&result)
 Create a fair Bezier curve on tangent lines of Hermite GD. More...
 
MbResultType CreateFairBSplineCurveOnBasePolylineOfHermiteGD (MbCurve3D *polyline, MbFairCurveData &data, MbCurve3D *&result)
 Create a fair B-spline curve on base polyline of Hermite GD. More...
 
MbResultType CreateFairBSplineCurveOnBasePolylineOfHermiteGDInflex (const MbCurve3D *pllne, MbFairCurveData &data, MbCurve3D *&resCurve)
 Create a fair B-spline curve on base polyline of Hermite GD. More...
 
MbResultType CreateFairBSplineCurveOnNoisyData (MbCurve3D *pllne, int inType, MbFairCurveData &data, MbCurve3D *&resCurve)
 Create a fair B-spline curve with smoothing and reparametrization on noisy data. More...
 
MbResultType CreateFairBSplineCurveOnTangentsOfHermiteGD (MbCurve3D *polyline, MbFairCurveData &data, MbCurve3D *&result)
 Create a fair B-spline curve on tangent lines of Hermite GD. More...
 
MbResultType KernelCreateClothoid (MbFairCurveData &data, MbCurve3D *&result)
 Create a clothoid. More...
 
MbResultType KernelCreateSectrix (MbCurve3D *polyline, MbFairCurveData &data, MbCurve3D *&result)
 Create a sectrix. More...
 
MbResultType ElevateDegreeNurbzs (MbNurbs3D *curve, MbFairCurveData &data, MbCurve3D *&result)
 Elevate the degree of the NURBzS curve. More...
 
MbResultType ReparamNurbs (MbNurbs3D *curve, MbFairCurveData &data, MbCurve3D *&resCurve)
 Reparametrize the NURBS curve. More...
 
MbResultType SubdivideNurbs (MbNurbs3D *curve, MbFairCurveData &data, MbCurve3D *&result)
 Subdivide the NURBS curve. More...
 
MbResultType ExtractChangeNurbs (MbNurbs3D *curve, MbFairCurveData &data, MbCurve3D *&result)
 To extract part of NURBS curve / change the format of the NURBS curve. More...
 
MbResultType ExtractChangeNurbsParams (MbNurbs3D *curve, MbFairCurveData &data, SArray< double > &resWts, SArray< double > &resKnots, MbCurve3D *&resCurve)
 To extract part of NURBS curve / change the format of the NURBS curve. Return parameters of created curve. More...
 
MbResultType AddKnotNurbs (MbNurbs3D *curve, MbFairCurveData &data, MbCurve3D *&result)
 Insert node in NURBS. More...
 
MbResultType ExtractExtrapolFromSegment (MbNurbs3D *curve, MbFairCurveData &data, MbCurve3D *&resCurve)
 Insert a knot into the onesegmented NURBS curve. More...
 
MbResultType ConicNurbs (MbNurbs3D *curve, MbFairCurveData &data, MbCurve3D *&result)
 Convert a conical NURBzS into a conical NURBS. More...
 
MbResultType Cabling (const MbCartPoint3D &begPoint, const MbVector3D &begDirection, const MbCartPoint3D &endPoint, const MbVector3D &endDirection, double length, double accuracy, double &maxCurvature, MbCurve3D *&result)
 Connecting the specified points by a curve of a specified length. More...
 
MbCurve3DSetProportionalParametrization (MbCurve3D *curve, double tMin, double tMax)
 Set curve parametrization proportional to the curve length. More...
 
MbResultType ExtendCurve (const MbCurve3D &sourceCurve, const MbCurveExtensionParameters3D &parameters, SPtr< MbWireFrame > &resFrame)
 Extend the given curve. More...
 
MbResultType CreateContourChamfer (const MbContourChamferParams &paramList, MbCurve3D *&resultChamferContour)
 Create chamfers on the contour joints. More...
 
MbResultType UnwrapCurve (const MbCurvesWrappingParams &parameters, MbCurvesWrappingResults &result)
 Construct unwrapped curves and points. More...
 
MbResultType WrapCurve (const MbCurvesWrappingParams &parameters, MbCurvesWrappingResults &result)
 Perform the operation of wrapping curves and points on a surface. More...
 
MbResultType FitCurve (const MbCurveFitParameters3D &params, MbCurveFitResults3D &results)
 Fit the curve into point set. More...
 

Detailed Description

Functions for three-dimensional curves construction.

Edges are created on the basis of curves. Edges are used in solid and wireframe model. In addition curves are used for construction of surfaces as well as can be used as auxiliary elements of a model.