C3D Toolkit
Kernel - 117982, Vision - 2.9.2.2
|
Spiral with a variable radius. More...
#include <cur_curve_spiral.h>
Public Member Functions | |
MbCurveSpiral (const MbPlacement3D &place, double radius, double st, double t1, double t2) | |
Create cylindrical spiral by bottom radius, step, base and two parameters. More... | |
MbCurveSpiral (const MbPlacement3D &place, MbCurve &lawCurve, double st, bool sameLawCurve) | |
The constructor of spiral by its base, the law of radius change and step. More... | |
void | Init (const MbCurveSpiral &) |
Spiral initialization by spiral. | |
void | Init (const MbPlacement3D &) |
Spiral initialization by base (local coordinate system). | |
MbeSpaceType | IsA () const override |
Get the type of the object. | |
MbSpaceItem & | Duplicate (MbRegDuplicate *=nullptr) const override |
Create a copy of the object. More... | |
bool | IsSame (const MbSpaceItem &other, double accuracy=LENGTH_EPSILON) const override |
Determine whether an object is equal. More... | |
bool | SetEqual (const MbSpaceItem &init) override |
Make objects equal if they are similar. More... | |
void | GetProperties (MbProperties &) override |
Outstanding properties of the object. More... | |
void | SetProperties (const MbProperties &) override |
Change the properties of an object. More... | |
void | GetBasisItems (RPArray< MbSpaceItem > &) override |
Outstanding reference objects in a container sent. | |
void | PointOn (double &t, MbCartPoint3D &pnt) const override |
Calculate a point on the curve. More... | |
void | FirstDer (double &t, MbVector3D &fd) const override |
Calculate first derivative. | |
void | SecondDer (double &t, MbVector3D &sd) const override |
Calculate second derivative. | |
void | ThirdDer (double &t, MbVector3D &td) const override |
Calculate third derivative. | |
void | _PointOn (double t, MbCartPoint3D &pnt) const override |
Calculate point at curve and its extension. More... | |
void | _FirstDer (double t, MbVector3D &fd) const override |
Calculate first derivative at curve and its extension. | |
void | _SecondDer (double t, MbVector3D &sd) const override |
Calculate second derivative at curve and its extension. | |
void | _ThirdDer (double t, MbVector3D &td) const override |
Calculate third derivative at curve and its extension. | |
void | Explore (double &t, bool ext, MbCartPoint3D &pnt, MbVector3D &fir, MbVector3D *sec, MbVector3D *thir) const override |
Calculate point and derivatives of object for given parameter. More... | |
void | Inverse (MbRegTransform *iReg=nullptr) override |
Change direction of a curve. | |
MbCurve3D * | Trimmed (double t1, double t2, int sense, const MbDimAccuracy &xyzEps, bool saveParamLenAndLaw) const override |
Construct a trimmed curve with the given two-dimensional accuracy. More... | |
Public Member Functions inherited from MbSpiral | |
void | Init (const MbSpiral &) |
Set spiral parameters by another spiral. | |
void | Init (const MbPlacement3D &) |
Replace local coordinate system. | |
bool | Init (double height, double st) |
Set height and step between coils of spiral. | |
bool | Init (const MbPlacement3D &place, double height, double st) |
Set local coordinates system, height and step of spiral. | |
MbeSpaceType | Type () const override |
Get the group object type. | |
bool | IsSame (const MbSpaceItem &, double accuracy=LENGTH_EPSILON) const override |
Determine whether an object is equal. More... | |
bool | SetEqual (const MbSpaceItem &) override |
Make objects equal if they are similar. More... | |
void | Transform (const MbMatrix3D &, MbRegTransform *=nullptr) override |
Convert the object according to the matrix. More... | |
void | Move (const MbVector3D &, MbRegTransform *=nullptr) override |
Move an object along a vector. More... | |
void | Rotate (const MbAxis3D &, double angle, MbRegTransform *=nullptr) override |
Rotate an object around an axis at a given angle. More... | |
void | AddYourGabaritTo (MbCube &) const override |
Expand sent bounding box (a.k.a. gabarit), so that it included the object. More... | |
void | PrepareIntegralData (const bool forced) const override |
Calculate temporary (mutable) data of an object. More... | |
void | GetBasisPoints (MbControlData3D &) const override |
Get control points of object. | |
void | SetBasisPoints (const MbControlData3D &) override |
Change the object by control points. | |
void | Refresh () override |
Translate all the time (mutable) data objects in an inconsistent (initial) state. | |
double | GetTMin () const override |
Get the minimum value of parameter. | |
double | GetTMax () const override |
Get the maximum value of parameter. | |
bool | IsClosed () const override |
Define whether the curve is periodic. More... | |
double | GetMetricLength () const override |
Calculate the metric length of a curve. | |
double | GetLengthEvaluation () const override |
Calculate the metric length of a curve. More... | |
MbNurbs3D * | NurbsCurve (const MbCurveIntoNurbsInfo &) const override |
Construct a NURBS copy of a curve. More... | |
double | Curvature (double t) const override |
Calculate curvature of curve. | |
double | Step (double t, double sag) const override |
Calculate parameter step. More... | |
double | DeviationStep (double t, double angle) const override |
Calculate parameter step. More... | |
size_t | GetCount () const override |
Define the number of splittings for one passage in operations. | |
bool | GetPlacement (MbPlacement3D &place, PlanarCheckParams params=PlanarCheckParams()) const override |
Fill the placement if a curve is planar. | |
bool | IsShift (const MbSpaceItem &, MbVector3D &, bool &isSame, double accuracy=LENGTH_EPSILON) const override |
Whether the object is a shift. | |
void | GetCentre (MbCartPoint3D &c) const override |
Give the curve center. | |
void | GetDirection (MbVector3D &v) const |
Get direction of spiral. | |
bool | GetAxis (MbAxis3D &axis) const |
Get axis of spiral. | |
double | GetStep () const |
Get step. | |
double | GetSpiralStep () const |
Get physical pitch of spiral. | |
double | GetAngle () const |
Get full angle of spiral. | |
bool | SetTMin (double t) |
Change boundary angle. | |
bool | SetTMax (double t) |
Change boundary angle. | |
bool | SetLimit (double t1, double t2) |
Change boundary angles. | |
Public Member Functions inherited from MbCurve3D | |
virtual | ~MbCurve3D () |
Destructor. | |
virtual void | Accept (Visitor &visitor) |
Implementation of a function initializing a visit of an object. | |
virtual MbResultType | Extend (const MbCurveExtensionParameters3D ¶meters, c3d::SpaceCurveSPtr &resCurve) const |
Extend the curve. More... | |
size_t | size () const |
Size of curve interpreted as vector of curves. | |
const MbCurve3D * | operator[] (size_t) const |
An access operator. | |
MbeSpaceType | Type () const override |
Get the group object type. | |
MbeSpaceType | Family () const override |
Get family of objects. | |
virtual MbCurve3D & | InverseDuplicate () const |
Create a copy with changed direction. | |
double | DistanceToPoint (const MbCartPoint3D &) const override |
Determine the distance to the point. More... | |
void | AddYourGabaritTo (MbCube &) const override |
Expand sent bounding box (a.k.a. gabarit), so that it included the object. More... | |
void | Refresh () override |
Translate all the time (mutable) data objects in an inconsistent (initial) state. | |
virtual bool | IsSpaceSame (const MbSpaceItem &item, double eps=METRIC_REGION) const |
Are the objects identical in space? | |
virtual double | GetPeriod () const |
Return period. If a curve is not periodic then 0. | |
virtual bool | IsPeriodic () const |
Define whether the curve is periodic. More... | |
bool | IsTouch (double eps=Math::metricPrecision) const |
Determine whether a curve is closed regardless of the smoothness of the closure. More... | |
virtual void | Tangent (double &t, MbVector3D &) const |
Calculate tangent vector (normalized). | |
virtual void | Normal (double &t, MbVector3D &) const |
Calculate main normal vector. | |
virtual void | BNormal (double &t, MbVector3D &) const |
Calculate binormal vector. | |
virtual void | _Tangent (double t, MbVector3D &) const |
Calculate tangent vector (normalized) at curve and its extension. | |
virtual void | _Normal (double t, MbVector3D &) const |
Calculate main normal vector (normalized) at curve and its extension. | |
virtual void | _BNormal (double t, MbVector3D &) const |
Calculate binormal vector (normalized) at curve and its extension. | |
virtual void | FastApproxExplore (double &t, MbCartPoint3D &pnt, MbVector3D &fir, MbVector3D *sec) const |
Calculate point and derivatives on the curve. More... | |
virtual double | MetricStep (double t, double length) const |
Calculate parameter step. More... | |
double | CurveStep (const double &t, const MbStepData &stepData) const |
Calculate parameter step. More... | |
virtual void | ResetTCalc () const |
Reset the current value of parameter. | |
virtual const MbCurve3D & | GetBasisCurve () const |
Returns the base curve if exists or itself. | |
virtual MbCurve3D & | SetBasisCurve () |
Returns the base curve if exists or itself. | |
virtual void | ThirdMetricDer (double t, MbVector3D &vect) const |
Calculate second derivative of tangent. | |
MbNurbs3D * | NurbsCurve (const MbCurveIntoNurbsInfo *nInfo=nullptr) const |
Construct a NURBS copy of a curve. More... | |
virtual MbCurve3D * | NurbsCurve (const MbNurbsParameters &tParameters) const |
Construct a NURBS copy of a curve. More... | |
virtual size_t | NurbsCurveMinPoints (const MbNurbsParameters &tParameters, double epsilon=c3d::METRIC_DELTA) const |
Define the number of knots of a NURBS curve which is required to approximate the curve with the given tolerance. More... | |
virtual MbCurve3D * | Trimmed (double t1, double t2, int sense, bool saveParamLenAndLaw=false) const |
Construct a trimmed curve. More... | |
double | GetParamLength () const |
Return the parametric length of a curve. | |
virtual double | CalculateMetricLength () const |
Calculate the metric length of a curve. | |
virtual double | CalculateLength (double t1, double t2) const |
Calculate the metric length of a curve. More... | |
virtual bool | DistanceAlong (double &t, double len, int curveDir, double eps=Math::metricPrecision, VERSION version=Math::DefaultMathVersion()) const |
Translate parameter along the curve. More... | |
virtual void | CalculateGabarit (MbCube &cube) const |
Calculate bounding box of a curve. | |
void | CalculateLocalGabarit (const MbMatrix3D &into, MbCube &cube) const override |
To compute bounding box in a local coordinate system. More... | |
virtual bool | IsDegenerate (double eps=METRIC_PRECISION) const |
Check whether the curve is degenerated.calculate. | |
virtual bool | IsStraight (bool ignoreParams=false) const |
Whether the line is straight? | |
virtual bool | IsPlanar (double accuracy=METRIC_EPSILON) const |
Is a curve planar? | |
virtual bool | IsSmoothConnected (double angleEps) const |
Are joints of contour/curve smooth? | |
virtual void | ChangeCarrier (const MbSpaceItem &item, MbSpaceItem &init) |
Change the carrier. For surface curves. | |
virtual bool | ChangeCarrierBorne (const MbSpaceItem &item, MbSpaceItem &init, const MbMatrix &matr) |
Change the carrier. More... | |
MbProperty & | CreateProperty (MbePrompt name) const override |
Create your own property with the name. | |
void | CalculateMesh (const MbStepData &stepData, const MbFormNote ¬e, MbMesh &mesh) const override |
Build polygonal copy mesh. More... | |
virtual void | CalculatePolygon (const MbStepData &stepData, MbPolygon3D &polygon) const |
Calculate an array of points for drawing. More... | |
virtual void | GetWeightCentre (MbCartPoint3D &) const |
Give the gravity center of a curve. | |
virtual MbeNewtonResult | PointProjectionNewton (const MbCartPoint3D &p, size_t iterLimit, double &t, bool ext) const |
Find the point projection to the curve. More... | |
virtual bool | NearPointProjection (const MbCartPoint3D &pnt, double &t, bool ext, MbRect1D *tRange=nullptr) const |
Find the point projection to the curve. More... | |
virtual MbeNewtonResult | IsoclinalNewton (const MbVector3D &dir, size_t iterLimit, double &t) const |
Find isoclines of a curve. More... | |
virtual void | GetIsoclinal (const MbVector3D &nor, SArray< double > &tIso) const |
Find all isoclines of a curve. More... | |
virtual double | DistanceToCurve (const MbCurve3D &curve2, double &t1, double &t2) const |
Calculate the nearest distance to a curve. | |
virtual double | DistanceToPlace (const MbPlacement3D &place, double &t0, double &angle) const |
The nearest point of a curve by the placement. | |
virtual double | GetRadius (double accuracy=METRIC_REGION) const |
Get the physical radius of the curve or zero if it impossible. More... | |
virtual bool | GetCircleAxis (MbAxis3D &axis) const |
Get an axis of a circle which is geometrically coincident to the given curve. More... | |
virtual MbCurve * | GetMap (const MbMatrix3D &into, MbRect1D *pRegion=nullptr, VERSION version=Math::DefaultMathVersion(), bool *coincParams=nullptr) const |
Construct a planar projection of a piece of a space curve. More... | |
virtual MbCurve * | GetMapPsp (const MbMatrix3D &into, double zNear, MbRect1D *pRegion=nullptr) const |
Construct a planar projection of a piece of a space curve. More... | |
virtual MbCurve * | GetProjection (const MbPlacement3D &place, VERSION version) const |
Construct a planar projection of a space curve to a plane. More... | |
void | GetPointsByEvenParamDelta (size_t n, std::vector< MbCartPoint3D > &pnts) const |
Get n points of a curve with equal intervals by parameter. | |
void | GetPointsByEvenParamDelta (size_t n, SArray< MbCartPoint3D > &pnts) const |
virtual void | GetPointsByEvenLengthDelta (size_t n, std::vector< MbCartPoint3D > &pnts) const |
Get n points of a curve with equal intervals by arc length. | |
void | GetPointsByEvenLengthDelta (size_t n, SArray< MbCartPoint3D > &pnts) const |
void | GetBasisPoints (MbControlData3D &) const override |
Get control points of object. | |
void | SetBasisPoints (const MbControlData3D &) override |
Change the object by control points. | |
virtual bool | IsContinuousDerivative (bool &contLength, bool &contDirect, c3d::DoubleVector *params=nullptr, double epsilon=EPSILON) const |
Have the first derivative of the curve the continuous length and direction? More... | |
virtual bool | SetContinuousDerivativeLength (VERSION version, double epsilon=EPSILON) |
Eliminate the discontinuities of the first derivative at length. More... | |
bool | IsSpaceNear (const MbCurve3D &curve, double eps, bool ext, double devSag=5.0 *Math::deviateSag) const |
Check whether the two curves are metrically close. More... | |
bool | IsPointOn (const MbCartPoint3D &, double eps=METRIC_PRECISION) const |
Check whether a point is on a curve or not. | |
double | GetTMid () const |
Return the middle of parametric range of a curve. | |
double | GetTRange () const |
Return the parametric length of a curve. | |
MbCartPoint3D | PointOn (double &t) const |
Calculate point on the curve. | |
MbVector3D | FirstDer (double &t) const |
Calculate first derivative. | |
MbVector3D | SecondDer (double &t) const |
Calculate second derivative. | |
MbVector3D | ThirdDer (double &t) const |
Calculate third derivative. | |
virtual void | GetCurvatureSpecialPoints (std::vector< c3d::DoublePair > &points) const |
Find all the special points of the curvature function of the curve. More... | |
virtual void | GetAnalyticalFunctionsBounds (std::vector< double > ¶ms) const |
Get the boundaries of the curve sections that are described by one analytical function. More... | |
virtual void | BreakPoints (std::vector< double > &vBreaks, double precision=ANGLE_REGION) const |
\ ru Определение точек излома кривой. The determination of curve smoothness break points. | |
MbCartPoint3D | GetLimitPoint (ptrdiff_t number) const |
Calculate the boundary point. More... | |
void | GetLimitPoint (ptrdiff_t number, MbCartPoint3D &pnt) const |
Calculate the boundary point. More... | |
MbVector3D | GetLimitTangent (ptrdiff_t number) const |
Calculate a tangent vector to the boundary point. More... | |
void | GetLimitTangent (ptrdiff_t number, MbVector3D &v) const |
Calculate a tangent vector to the boundary point. More... | |
bool | AreLimitPointsEqual () const |
Are boundary points equal? More... | |
bool | SetInParamRegion (double &t) const |
Move to the parametric region. | |
bool | IsParamOn (double t, double eps) const |
Check whether a parameter is in the range of the curve. | |
bool | IsInverseSame (const MbCurve3D &curve, double accuracy=LENGTH_EPSILON) const |
Whether an inversed curve is the same. | |
virtual bool | IsReparamSame (const MbCurve3D &curve, double &factor) const |
Define whether a reparameterized curve is the same. More... | |
virtual double | GetParamToUnit () const |
Get increment of parameter, corresponding to the unit length in space. | |
virtual double | GetParamToUnit (double t) const |
Get increment of parameter, corresponding to the unit length in space. | |
double | GetTEpsilon () const |
Get the minimum distinguishable value of parameter. | |
double | GetTEpsilon (double t) const |
Get the minimum distinguishable value of parameter. | |
double | GetTRegion () const |
Get the minimum distinguishable value of parameter. | |
double | GetTRegion (double t) const |
Get the minimum distinguishable value of parameter. | |
double | GetTRegion (double t, const MbDimAccuracy &xyzEps) const |
Get the minimum distinguishable value of parameter with the given three-dimensional accuracy according to parameter. | |
virtual const MbCurve3D & | GetSubstrate () const |
Get a substrate or itself. | |
virtual MbCurve3D & | SetSubstrate () |
Get a substrate or itself. | |
virtual int | SubstrateCurveDirection () const |
Direction of a substrate relative to a curve or vice versa. | |
virtual void | SubstrateToCurve (double &) const |
Transform a substrate parameter to the curve parameter. | |
virtual void | CurveToSubstrate (double &) const |
Transform a curve parameter to the substrate parameter. | |
virtual bool | GetPlaneCurve (MbCurve *&curve2d, MbPlacement3D &place, bool saveParams, PlanarCheckParams params=PlanarCheckParams()) const |
Get planar curve and placement if the space curve is planar. More... | |
bool | GetPlaneCurve (SPtr< MbCurve > &curve2d, MbPlacement3D &place, bool saveParams, PlanarCheckParams params=PlanarCheckParams()) const |
Get planar curve and placement if the space curve is planar. More... | |
bool | GetPlaneCurve (SPtr< const MbCurve > &curve2d, MbPlacement3D &place, bool saveParams, PlanarCheckParams params=PlanarCheckParams()) const |
Get planar curve and placement if the space curve is planar. More... | |
virtual bool | GetSurfaceCurve (MbCurve *&curve2d, MbSurface *&surface, VERSION version=Math::DefaultMathVersion()) const |
Get surface curve if the space curve is surface (after the using call DeleteItem for arguments) | |
bool | GetSurfaceCurve (SPtr< MbCurve > &curve2d, SPtr< MbSurface > &surface, VERSION version=Math::DefaultMathVersion()) const |
Get surface curve if the space curve is surface (after the using call DeleteItem for arguments) | |
bool | GetSurfaceCurve (SPtr< const MbCurve > &curve2d, SPtr< const MbSurface > &surface, VERSION version=Math::DefaultMathVersion()) const |
Get surface curve if the space curve is surface (after the using call DeleteItem for arguments) | |
virtual bool | IsSimilarToCurve (const MbCurve3D &other, double precision=METRIC_PRECISION) const |
Whether the curves to union (joining) are similar. | |
void | CalculateGrid (double radius, const MbStepData &stepData, MbMesh &mesh) const |
Approximation of a curve by the flat tube with the given radius. | |
SimpleName | GetCurveName () const |
A curve name. | |
void | SetCurveName (SimpleName newName) |
Set a curve name. | |
Public Member Functions inherited from MbSpaceItem | |
virtual | ~MbSpaceItem () |
Destructor. | |
void | PrepareWrite () const |
Register object. More... | |
MbeRefType | RefType () const override |
Get a registration type (for copying, duplication). | |
bool | IsFamilyRegistrable () const override |
Whether the object belongs to a registrable family. | |
virtual bool | IsSimilar (const MbSpaceItem &item) const |
Determine whether an object is similar. More... | |
void | CalculateWire (const MbStepData &stepData, MbMesh &mesh) const |
void | CalculateWire (double sag, MbMesh &mesh) const |
Public Member Functions inherited from TapeBase | |
TapeBase (RegistrableRec regs=noRegistrable) | |
Constructor. | |
TapeBase (const TapeBase &) | |
Copy-constructor. | |
virtual | ~TapeBase () |
Destructor. | |
RegistrableRec | GetRegistrable () const |
Whether the stream class is registrable. | |
void | SetRegistrable (RegistrableRec regs=registrable) const |
Set the state of registration of the stream class. | |
virtual const char * | GetPureName (const VersionContainer &) const |
Get the class name. | |
Public Member Functions inherited from MbRefItem | |
refcount_t | GetUseCount () const |
Get count of references (get count of owners of an object). | |
refcount_t | AddRef () const |
Increase count of references by one. | |
refcount_t | DecRef () const |
Decrease count of references by one. | |
refcount_t | Release () const |
Decrease count of references by one and if count of references became zero, then remove itself. | |
Public Member Functions inherited from MbNestSyncItem | |
void | Lock () const |
Switch lock on (locking happens only in parallel region). | |
void | Unlock () const |
Switch lock off if locking has been set. | |
CommonRecursiveMutex * | GetLock () const |
Get a pointer to the mutex object. Return nullptr if no parallelism. For use in ScopedLock. | |
Protected Attributes | |
MbCurve * | curve |
Curve which determines the rule of radius changing. | |
double | wMin |
Minimal parameter value of curve "curve". | |
double | wMax |
Maximal parameter value of curve "curve". | |
bool | curveSense |
The coincidence of the direction of the spiral axis with the direction of the curve "curve". | |
Protected Attributes inherited from MbSpiral | |
MbPlacement3D | position |
Local coordinate system (location of center). | |
double | step |
A pitch of spiral. | |
double | tmin |
Minimal value of parameter of spiral. | |
double | tmax |
Maximal value of parameter of spiral. | |
atomic_double | metricLength |
Metric length of a curve. More... | |
MbCube | cube |
Bounding box of a curve. More... | |
Protected Attributes inherited from MbCurve3D | |
SimpleName | name |
A curve name. The object data is temporary and used internally. | |
Additional Inherited Members | |
Protected Member Functions inherited from MbSpiral | |
MbSpiral () | |
The default constructor. | |
MbSpiral (const MbPlacement3D &pl) | |
The constructor by local coordinate system. | |
MbSpiral (const MbPlacement3D &, double height, double step) | |
The constructor by local coordinate system, height and step between coils of spiral. | |
MbSpiral (const MbPlacement3D &, double step, double t1, double t2) | |
The constructor by local coordinate system, step between coils of spiral and parameters. More... | |
MbSpiral (const MbCartPoint3D &p0, const MbCartPoint3D &p1, const MbCartPoint3D &p2, double step, bool left=false) | |
The constructor by three different points and non-zero step. More... | |
MbSpiral (const MbSpiral &) | |
Constructor by another spiral. | |
Protected Member Functions inherited from MbCurve3D | |
MbCurve3D () | |
Default constructor. | |
MbCurve3D (const MbCurve3D &other) | |
Copy-constructor. | |
Protected Member Functions inherited from MbSpaceItem | |
MbSpaceItem () | |
Default constructor. | |
Protected Member Functions inherited from MbRefItem | |
MbRefItem () | |
Constructor without parameters. | |
Spiral with a variable radius.
Spiral with a variable radius which are changed according to the generating curve "curve".
Generating curve is two-dimensional and located in the ZX plane of the local coordinate system. A spiral radius is equal to the second point coordinate of generating curve. A spiral axis is directed along the Z-axis of the local coordinate system.
The radius-vector of curve in the method PointOn(double&t,MbCartPoint3D&r) is described by a vector function:
r(t) = position.origin + (position.axisZ step t / 2pi) + (position.axisX radius cos(t)) + (position.axisY radius sin(t)), where radius = curve(w).y;
MbCurveSpiral::MbCurveSpiral | ( | const MbPlacement3D & | place, |
double | radius, | ||
double | st, | ||
double | t1, | ||
double | t2 | ||
) |
Create cylindrical spiral by bottom radius, step, base and two parameters.
Create cylindrical spiral by bottom radius, step, base and starting and ending parameters.
[in] | place | - A local coordinate system. |
[in] | radius | - Radius of spiral. |
[in] | st | - Step between coils of spiral. |
[in] | t1 | - Starting parameter. |
[in] | t2 | - Ending parameter. |
MbCurveSpiral::MbCurveSpiral | ( | const MbPlacement3D & | place, |
MbCurve & | lawCurve, | ||
double | st, | ||
bool | sameLawCurve | ||
) |
The constructor of spiral by its base, the law of radius change and step.
The constructor of spiral by its base (local coordinate system), the law of radius change (in the form of the 2D-curve) and step between coils of spiral.
[in] | place | - A local coordinate system. |
[in] | lawCurve | - The law of radius change. |
[in] | st | - Step between coils of spiral. |
[in] | sameLawCurve | - Flag of original curve use. |
|
overridevirtual |
Create a copy of the object.
Create a copy of an object using the registrator. Registrator is used to prevent multiple copy of the object. If the object contains references to the other objects, then nested objects are copied as well. It is allowed not to pass registrator into the function. Then new copy of object will be created. While copying of single object or set of not connected objects, it is allowed not to use registrator. Registrator should be used if it is required to copy several connected objects. It is possible, that objects connection is based on the references to common objects. Then, while copying without using of registrator, it is possible to obtain set of copies, that contain references to the different copies of the same nested object, that leads to loss of connection between copies.
[in] | iReg | - Registrator. |
Implements MbSpaceItem.
|
overridevirtual |
Determine whether an object is equal.
Still considered objects of the same type, all data is the same (equal).
[in] | item | - The object to compare. |
[in] | accuracy | - The accuracy to compare. |
Implements MbSpaceItem.
|
overridevirtual |
Make objects equal if they are similar.
You can still make only a similar objects.
[in] | item | - The object to initialize. |
Implements MbSpaceItem.
|
overridevirtual |
Outstanding properties of the object.
Issue internal data (properties) of the object for viewing and modification.
[in] | properties | - Container for the internal data of the object. |
Implements MbSpaceItem.
|
overridevirtual |
Change the properties of an object.
Changing the internal data (properties) of the object you are copying the corresponding values from the sent object.
[in] | properties | - Container for the internal data of the object. |
Implements MbSpaceItem.
|
overridevirtual |
Calculate a point on the curve.
Correct parameter when getting out of domain bounds and calculate a point on the curve.
[in] | t | - Curve parameter. |
[out] | p | - A point on the curve. |
Implements MbCurve3D.
|
overridevirtual |
Calculate point at curve and its extension.
Calculate a point on the curve including the outside area determination parameter.
[in] | t | - Curve parameter. |
[out] | p | - A point on the curve. |
Reimplemented from MbCurve3D.
|
overridevirtual |
Calculate point and derivatives of object for given parameter.
Values of point and derivatives are calculated on parameter area and on extended curve.
[in] | t | - Parameter. |
[in] | ext | - On parameters area (false), on extended curve (true). |
[out] | pnt | - Point. |
[out] | fir | - Derivative with respect to t. |
[out] | sec | - Second derivative with respect to t, if not nullptr. |
[out] | thir | - Third derivative with respect to t, if not nullptr. |
Reimplemented from MbCurve3D.
|
overridevirtual |
Construct a trimmed curve with the given two-dimensional accuracy.
Constructs a trimmed curve, a start point of which corresponds to a point with parameter t1 and an end point corresponds to a point with parameter t2. Direction of the constructed curve relative to the initial curve may be changed by the parameter 'sense'. If the curve is closed, then there may be obtained a trimmed curve, passing through the start of a curve.
In a case of closed or periodic curve three parameters 'sense', t1 and t2 clearly define the result. In a case of unclosed curve the parameter 'sense' and parameter of trimming should correspond each other:
1) if sense == 1, then t1 < t2,
2) if sense == -1, then t1 > t2,
If there is a discrepancy between 'sense' and parameters of trimming, then 'sense' parameter has higher priority. If parameters t1 and t2 are equal and the curve is closed, then in result a closed curve should be obtained.
[in] | t1 | - Parameter corresponding to start of a trimmed curve. |
[in] | t2 | - Parameter corresponding to end of a trimmed curve. |
[in] | sense | - Direction of a trimmed curve in relation to an initial curve. sense = 1 - direction does not change. sense = -1 - direction changes to the opposite value. |
[in] | xyzEps | - Three-dimensional accuracy. |
[in] | saveParLenAndLaw | - Save parametric length and law. |
Reimplemented from MbCurve3D.