C3D Toolkit
Kernel - 117982, Vision - 2.9.2.2
|
Fillet surface with variable radius is normal or with preservation of edges. More...
#include <surf_channel_surface.h>
Public Member Functions | |
MbChannelSurface (MbSurfaceCurve &curv1, MbSurfaceCurve &curv2, double d1, double d2, MbeSmoothForm fm, double cn, MbFunction &func, bool ev) | |
Constructor by two curves and type of mate. More... | |
MbChannelSurface (MbSurfaceCurve &curv1, MbSurfaceCurve &curv2, double d1, double d2, MbeSmoothForm fm, double cn, MbFunction &func, bool byFirst, bool ev) | |
Constructor by two curves and type of mate. More... | |
MbChannelSurface (MbSurface &surf1, MbCurve &curv1, MbSurface &surf2, MbCurve &curv2, MbCurve3D &curv0, MbFunction &weig0, double d1, double d2, MbeSmoothForm fm, double cn, MbFunction &func, bool ev) | |
Constructor by two curves and type of mate. More... | |
Common functions of a geometric object | |
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 &) override |
Make objects equal if they are similar. More... | |
bool | IsSimilar (const MbSpaceItem &) const override |
Determine whether an object is similar. More... | |
void | GetProperties (MbProperties &properties) override |
Outstanding properties of the object. More... | |
Common functions of surface | |
MbSurface * | Offset (double d, bool same) const override |
Create an offset surface. More... | |
double | GetFilletRadius (const MbCartPoint3D &p, double accuracy=METRIC_REGION) const override |
Get fillet radius if the surface is a fillet surface with the set accuracy. More... | |
double | GetFilletRadius (double u) const override |
Functions of smooth surface | |
MbSmoothSurface & | CurvesDuplicate () const override |
A copy with the same support surfaces. | |
double | GetSmoothRadius () const override |
Get radius. | |
double | DistanceRatio (bool firstCurve, MbCartPoint3D &p, double distance) const override |
Get coefficient for radius. | |
Functions of fillet surface with variable radius is normal or with preservation of edges | |
bool | InsertPoints (double &t1, const MbCartPoint &p1, bool add1, double &t2, const MbCartPoint &p2, bool add2) override |
Add a point to the support curves of the boundary. More... | |
bool | CheckPole (double &u, bool bModify=true) |
Check pole availability. More... | |
const MbFunction & | GetFunction () const |
Get a function of radius changing. | |
MbFunction & | SetFunction () |
Get a function of radius changing. | |
void | SetFunction (MbFunction &funcNew) |
Set a function of radius changing. | |
MbFunction * | MakeFunction (double u1, double u2) const |
Construct a function for changing the radius from parameter u1 to parameter u2. | |
Public Member Functions inherited from MbFilletSurface | |
MbFilletSurface (MbSurfaceCurve &curv1, MbSurfaceCurve &curv2, double d1, double d2, MbeSmoothForm fm, double cn, bool ev) | |
Constructor of fillet surface. More... | |
MbFilletSurface (MbSurfaceCurve &curv1, MbSurfaceCurve &curv2, double d1, double d2, MbeSmoothForm fm, double cn, bool byFirst, bool ev) | |
Constructor of surface with preservation of fillet. More... | |
MbFilletSurface (MbSurface &surf1, MbCurve &curv1, MbSurface &surf2, MbCurve &curv2, MbCurve3D &curv0, double d1, double d2, MbeSmoothForm fm, double cn, bool ev) | |
Constructor of fillet surface. More... | |
void | Init0 (double wmin, double wmax, bool insertPoints=true) override |
Correction of the middle line of fillet surface. More... | |
MbeSpaceType | IsA () const override |
Get the type of the object. | |
MbeFilletSurfaceVersion | GetVersion () const |
Version. | |
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 &) override |
Make objects equal if they are similar. More... | |
bool | IsSimilar (const MbSpaceItem &) const override |
Determine whether an object is 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 | GetProperties (MbProperties &properties) override |
Outstanding properties of the object. More... | |
void | SetProperties (const MbProperties &properties) override |
Change the properties of an object. More... | |
void | GetBasisItems (RPArray< MbSpaceItem > &s) override |
Outstanding reference objects in a container sent. | |
double | GetVPeriod () const override |
Return period for smoothly closed surface or 0. | |
void | PointOn (double &u, double &v, MbCartPoint3D &) const override |
Calculate a point on the surface. More... | |
void | DeriveU (double &u, double &v, MbVector3D &) const override |
Calculate first derivative with respect to u. | |
void | DeriveV (double &u, double &v, MbVector3D &) const override |
Calculate first derivative with respect to v. | |
void | DeriveUU (double &u, double &v, MbVector3D &) const override |
Calculate second derivative with respect to u. | |
void | DeriveVV (double &u, double &v, MbVector3D &) const override |
Calculate second derivative with respect to v. | |
void | DeriveUV (double &u, double &v, MbVector3D &) const override |
Calculate second derivative. | |
void | DeriveUUU (double &u, double &v, MbVector3D &) const override |
Calculate third derivative. | |
void | DeriveUUV (double &u, double &v, MbVector3D &) const override |
Calculate third derivative. | |
void | DeriveUVV (double &u, double &v, MbVector3D &) const override |
Calculate third derivative. | |
void | DeriveVVV (double &u, double &v, MbVector3D &) const override |
Calculate third derivative. | |
void | Normal (double &u, double &v, MbVector3D &) const override |
Calculate normal. | |
void | NormalU (double &u, double &v, MbVector3D &) const override |
Calculate derivative of normal with respect to U. | |
void | NormalV (double &u, double &v, MbVector3D &) const override |
Calculate derivative of normal with respect to V. | |
void | _PointOn (double u, double v, MbCartPoint3D &) const override |
Calculate a point on the surface. More... | |
void | _DeriveU (double u, double v, MbVector3D &) const override |
Calculate first derivative with respect to u on extended surface. | |
void | _DeriveV (double u, double v, MbVector3D &) const override |
Calculate first derivative with respect to v on extended surface. | |
void | _DeriveUU (double u, double v, MbVector3D &) const override |
Calculate second derivative with respect to u on extended surface. | |
void | _DeriveVV (double u, double v, MbVector3D &) const override |
Calculate second derivative with respect to v on extended surface. | |
void | _DeriveUV (double u, double v, MbVector3D &) const override |
Calculate second derivative on extended surface. | |
void | _DeriveUUU (double u, double v, MbVector3D &) const override |
Calculate third derivative on extended surface. | |
void | _DeriveUUV (double u, double v, MbVector3D &) const override |
Calculate third derivative on extended surface. | |
void | _DeriveUVV (double u, double v, MbVector3D &) const override |
Calculate third derivative on extended surface. | |
void | _DeriveVVV (double u, double v, MbVector3D &) const override |
Calculate third derivative on extended surface. | |
void | _Normal (double u, double v, MbVector3D &) const override |
Calculate a normal on extended surface. | |
void | _NormalU (double u, double v, MbVector3D &) const override |
Calculate derivative of normal vector on extended surface. | |
void | _NormalV (double u, double v, MbVector3D &) const override |
Calculate derivative of normal vector on extended surface. | |
void | Explore (double &u, double &v, bool ext, MbCartPoint3D &pnt, MbVector3D &uDer, MbVector3D &vDer, MbVector3D *uuDer, MbVector3D *vvDer, MbVector3D *uvDer, MbVector3D *nor) const override |
Calculate point and derivatives of object for given parameters. More... | |
void | SurfaceCurveExplore (size_t ind, double t, MbCartPoint &pnt, MbVector *fir, MbVector *sec, MbVector *thir) const |
Calculate the two-dimensional values of the point and derivatives for the surface curve (0 - first, otherwise - second) (for internal use) | |
void | _PointNormal (double u, double v, MbCartPoint3D &pnt, MbVector3D &uDer, MbVector3D &vDer, MbVector3D &norm, MbVector3D &uNorm, MbVector3D &vNorm, MbVector3D &uuDer, MbVector3D &vvDer, MbVector3D &uvDer) const override |
Calculate all derivatives at point. More... | |
double | StepU (double u, double v, double sag) const override |
Calculate parameter step. More... | |
double | StepV (double u, double v, double sag) const override |
Calculate parameter step. More... | |
double | DeviationStepU (double u, double v, double angle) const override |
Calculate parameter step. More... | |
double | DeviationStepV (double u, double v, double angle) const override |
Calculate parameter step. More... | |
double | MetricStepV (double u, double v, double length) const override |
Calculate parameter step. More... | |
double | CurvatureV (double u, double v) const override |
Calculate line curvature along the direction of v. More... | |
MbSplineSurface * | NurbsSurface (double, double, double, double, bool bmatch=false) const override |
Construct a NURBS copy of trimmed surface. More... | |
MbSurface * | NurbsSurface (const MbNurbsParameters &uParam, const MbNurbsParameters &vParam) const override |
Construct a NURBS copy of a surface. More... | |
MbSurface * | Offset (double d, bool same) const override |
Create an offset surface. More... | |
MbFilletSurface * | OffsetByFillet (double d, const MbSurface &offSurf1, const MbSurface &offSurf2) const |
MbCurve3D * | CurveV (double u, MbRect1D *pRgn, bool bApprox=true) const override |
Construct spatial copy of the line u = const. More... | |
void | ChangeCarrier (const MbSpaceItem &item, MbSpaceItem &init) override |
Changing of carrier. More... | |
bool | ChangeCarrierBorne (const MbSurface &item, MbSurface &init, const MbMatrix &matr) override |
Changing of carrier elements. More... | |
MbeNewtonResult | SurfaceTangentNewton (const MbSurface &, MbeParamDir switchPar, double funcEpsilon, size_t iterLimit, double &u0, double &v0, double &u1, double &v1, bool ext0, bool ext1) const override |
Solution of equation system for determination of surfaces tangency. For internal use only. | |
MbeNewtonResult | PointProjectionNewton (const MbCartPoint3D &p, size_t iterLimit, double &u, double &v, bool ext) const override |
Finding of point projection on surface. For internal use only. | |
bool | NearPointProjection (const MbCartPoint3D &p, double &u, double &v, bool ext, MbRect2D *uvRange=nullptr) const override |
Find the projection of a point onto the surface. More... | |
double | GetFilletRadius (const MbCartPoint3D &p, double accuracy=METRIC_REGION) const override |
Get fillet radius if the surface is a fillet surface with the set accuracy. More... | |
bool | CreateNormalPlacements (const MbVector3D &axisZ, double angle, SArray< MbPlacement3D > &places, VERSION version=Math::DefaultMathVersion()) const override |
Construct normal placements of constructive planes. | |
bool | CreateTangentPlacements (const MbVector3D &axisZ, SArray< MbPlacement3D > &places) const override |
Construct tangent placements of constructive planes. | |
bool | GetCylinderAxis (MbAxis3D &axis) const override |
Get rotation axis of a surface. | |
bool | IsSimilarToSurface (const MbSurface &surf, VERSION version, double precision=METRIC_PRECISION) const override |
Define whether the surfaces are similar for merge. More... | |
bool | GetMatrixToSurface (const MbSurface &surf, MbMatrix &matr, VERSION version, double precision=METRIC_PRECISION) const override |
Get two-dimensional matrix of transformation from its parametric region to the parametric region of 'surf'. More... | |
bool | IsSpecialSimilarToSurface (const MbSurface &surf, VERSION version, double precision=METRIC_PRECISION) const override |
Whether the surfaces are similar to merge. Special case. For internal use only. | |
ThreeStates | Salient () const override |
Determine whether the surface is convex. More... | |
double | GetRadius () const override |
Get the physical radius of the object or null if it impossible. More... | |
size_t | GetUMeshCount () const override |
The the number of splittings in u-direction. | |
size_t | GetVMeshCount () const override |
The the number of splittings in v-direction. | |
MbSmoothSurface & | CurvesDuplicate () const override |
A copy with the same support surfaces. | |
double | GetSmoothRadius () const override |
Get radius. | |
void | GetDistances (double u, double &d1, double &d2) const override |
Get radii with a sign. | |
double | GetDistance (bool s) const override |
Get radius with a sign. | |
bool | SurfacesCombine (const MbSurfaceIntersectionCurve &edge, const MbSurface &init, bool add, MbMatrix &matr, const MbSurfaceIntersectionCurve *seam) override |
Combine surfaces by inclusion of the surface 'init' into the given surface. More... | |
double | DistanceRatio (bool firstCurve, MbCartPoint3D &p, double distance) const override |
Get coefficient for radius. | |
void | GetTesselation (const MbStepData &stepData, double u1, double u2, double v1, double v2, SArray< double > &uu, SArray< double > &vv) const override |
Determine a splitting of parametric region of a surface by verticals and horizontals. More... | |
void | GetCurve1 (SPtr< const MbSurfaceCurve > &c) const override |
Support curve on the first surface. | |
void | GetCurve2 (SPtr< const MbSurfaceCurve > &c) const override |
Support curve on the second surface. | |
void | SetCurve1 (SPtr< MbSurfaceCurve > &c) override |
Get the support curve on the first surface for changing. | |
void | SetCurve2 (SPtr< MbSurfaceCurve > &c) override |
Get the support curve on the second surface for changing. | |
double | GetWeight (double u) const |
Weights of points of mid-curve. More... | |
double | GetAngle (double u) const |
Arc opening angle. More... | |
double | GetLocalAxis (double u, MbAxis3D &axis) const |
Axis of surface at given point. More... | |
void | GetCentrePoint (double u, MbCartPoint3D &p1, MbCartPoint3D &p2, MbCartPoint3D &p0) const |
Get point on axis. More... | |
bool | GetMiddlePoint (double u, MbCartPoint3D &p1, MbCartPoint3D &p2, MbCartPoint3D &p0, double &w) const |
Get the mid-point. More... | |
double | GetVPeriod (double u) const |
Period by direction V. More... | |
const MbCurve3D * | GetCurve0 () const |
Intersection curve of tangents to surfaces. | |
bool | IsEllipse () const |
Fillet isn't circular. More... | |
bool | IsEven () const |
Uniform arc length parameterization. | |
bool | IsFilletSurface () const |
Whether the fillet surface is homogeneous. More... | |
bool | IsConic () const |
General conic section. More... | |
double | Conic () const |
Coefficient of shape. More... | |
bool | IsKerbSurface () const |
Fillet surface with preservation of fillet. More... | |
bool | ByFirstCurve () const |
Whether the first curve is fillet. More... | |
void | SetKerbSurface (bool bc1) |
Set fillet surface with preservation of fillet. Need to call this->Init0() after this method. More... | |
const MbFunction * | GetWeights () const |
bool | SetWeights (MbFunction &func) |
MbCurve3D * | GetSpine () const |
void | SetSpine (MbCurve3D *) |
MbeFilletSurfType | GetFilletType () const |
Public Member Functions inherited from MbSmoothSurface | |
MbeSpaceType | Type () const override |
Get the group object type. | |
double | GetUMin () const override |
Get the minimum value of u. | |
double | GetUMax () const override |
Get the maximum value of u. | |
double | GetVMin () const override |
Get the minimum value of v. | |
double | GetVMax () const override |
Get the maximum value of v. | |
bool | IsUClosed () const override |
Determine whether a surface is closed in u-parameter direction. More... | |
bool | IsVClosed () const override |
Determine whether a surface is closed in v-parameter direction. More... | |
double | GetUPeriod () const override |
Return period for smoothly closed surface or 0. | |
bool | GetPoleUMin () const override |
Whether a pole exists on parametric region boundary. | |
bool | GetPoleUMax () const override |
Whether a pole exists on parametric region boundary. | |
bool | GetPoleVMin () const override |
Whether a pole exists on parametric region boundary. | |
bool | GetPoleVMax () const override |
Whether a pole exists on parametric region boundary. | |
bool | IsPole (double u, double v, double paramPrecision=PARAM_PRECISION) const override |
Whether the point is a pole. | |
size_t | GetUCount () const override |
The number of splittings by u-parameter for a check of events. | |
size_t | GetVCount () const override |
The number of splittings by v-parameter for a check of events. | |
MbeNewtonResult | CurveIntersectNewton (const MbCurve3D &, double funcEpsilon, size_t iterLimit, double &u0, double &v0, double &t1, bool ext0, bool ext1) const override |
Solution of equation system for determination of intersections between a surface and a curve. For internal use only. | |
double | GetParamDelta () const override |
Get the maximum increment of parameter. | |
double | GetParamPrice () const override |
Get the minimum distinguishable value of parameter. | |
MbSurface * | NurbsSurface (const MbNurbsParameters &uParam, const MbNurbsParameters &vParam) const override |
Construct a NURBS copy of a surface. More... | |
MbSurface & | TotalDuplicate () const |
Perform a full copying of a surface. | |
const MbSurface & | GetSurface1 () const |
Get the first surface. | |
const MbSurface & | GetSurface2 () const |
Get the second surface. | |
MbCurve * | CreateBound (bool s) const |
Construct boundary curve along a surface (V = const). More... | |
MbeCurveBuildType | GetBuildType () const |
Type of support curves. More... | |
MbeSmoothForm | Form () const |
Form of a surface. More... | |
bool | ProlongSurface (double u, const MbCartPoint &p1, const MbCartPoint &p2, bool anyCase) |
Prolong surface. More... | |
bool | CurveStraighten (double t1, double t2) |
Correct curves. More... | |
void | AddProperties (MbProperties &properties) |
Get the object properties. | |
void | SetPole () |
Check poles. | |
Public Member Functions inherited from MbSurface | |
virtual | ~MbSurface () |
Destructor. | |
virtual void | Accept (Visitor &visitor) |
Implementation of a function initializing a visit of an object. | |
MbeSpaceType | Type () const override |
Get the group object type. | |
MbeSpaceType | Family () const override |
Get family of objects. | |
double | DistanceToPoint (const MbCartPoint3D &) const override |
Determine the distance to the point. More... | |
void | AddYourGabaritTo (MbCube &c) 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 void | PrepareIntegralData (const bool forced) const |
Calculate temporary (mutable) data of an object. More... | |
void | CalculateMesh (const MbStepData &stepData, const MbFormNote ¬e, MbMesh &mesh) const override |
Build polygonal copy mesh. More... | |
MbProperty & | CreateProperty (MbePrompt name) const override |
Create your own property with the name. | |
void | GetBasisPoints (MbControlData3D &) const override |
Get control points of object. | |
void | SetBasisPoints (const MbControlData3D &) override |
Change the object by control points. | |
size_t | size () const |
Number of objects if object is interpreted as vector of objects. | |
const MbSurface * | operator[] (size_t) const |
An access operator. | |
virtual bool | IsUTouch () const |
Determine whether a surface is closed in u-parameter direction regardless of the smoothness of the closure. More... | |
virtual bool | IsVTouch () const |
Determine whether a surface is closed in v-parameter direction regardless of the smoothness of the closure. More... | |
virtual bool | IsUPeriodic () const |
Determine whether a surface is closed in u-parameter direction. More... | |
virtual bool | IsVPeriodic () const |
Determine whether a surface is closed in v-parameter direction. More... | |
virtual double | GetPeriod (ptrdiff_t i) const |
Return period. More... | |
virtual size_t | Periodicity () const |
Determine periodicity. More... | |
bool | IsPole (const MbCartPoint &uv, double paramPrecision=PARAM_PRECISION) const |
Whether the point is a pole. | |
virtual void | TangentU (double &u, double &v, MbVector3D &) const |
Calculate tangent vector in u. | |
virtual void | TangentV (double &u, double &v, MbVector3D &) const |
Calculate tangent vector in v. | |
virtual void | Explore (double &u, double &v, MbCartPoint3D &pnt, MbVector3D &uDer, MbVector3D &vDer) const |
Calculate point and first derivatives with respect to u and with respect to v. More... | |
virtual void | _TangentU (double u, double v, MbVector3D &) const |
Calculate tangent vector in u direction on extended surface. | |
virtual void | _TangentV (double u, double v, MbVector3D &) const |
Calculate tangent vector in v direction on extended surface. | |
virtual void | _NormalUU (double u, double v, MbVector3D &) const |
Calculate second derivative of normal vector on extended surface. | |
virtual void | _NormalUV (double u, double v, MbVector3D &) const |
Calculate second derivative of normal vector on extended surface. | |
virtual void | _NormalVV (double u, double v, MbVector3D &) const |
Calculate second derivative of normal vector on extended surface. | |
virtual void | _NormalD (double u, double v, double du, double dv, MbVector3D &der) const |
Calculate derivative of normal vector at the point with the given parameters u and v along the line with the given direction (du,dv). | |
virtual void | _NormalDD (double u, double v, double du, double dv, MbVector3D &der) const |
Calculate second derivative of normal vector at the point with the given parameters u and v along the line with the given direction (du,dv). | |
virtual double | MetricStepU (double u, double v, double length) const |
Calculate parameter step. More... | |
double | SurfaceStep (const double &u, const double &v, bool alongU, const MbStepData &stepData) const |
Calculate parameter step. More... | |
virtual const MbSurface & | GetSurface () const |
Get itself (it is overloaded only in CurveBoundedSurface). | |
virtual const MbSurface & | GetBasisSurface () const |
Get the base surface if exists or itself. | |
virtual MbSurface & | SetSurface () |
Get itself (it is overloaded only in CurveBoundedSurface). | |
virtual MbSurface & | SetBasisSurface () |
Get the base surface if exists or itself. | |
virtual void | GetLimitPoint (ptrdiff_t number, MbCartPoint3D &pnt) const |
Calculate the boundary point. More... | |
virtual void | GetLimitPoint (ptrdiff_t number, MbCartPoint &pnt) const |
Calculate the boundary two-dimensional point. More... | |
MbCartPoint3D | GetLimitPoint (ptrdiff_t number) const |
Calculate the boundary point. More... | |
virtual double | CurvatureU (double u, double v) const |
Calculate line curvature along the direction of u. More... | |
double | NormalCurvatureU (double u, double v) const |
Calculate a normal curvature of line along the direction of u. More... | |
double | NormalCurvatureV (double u, double v) const |
Calculate a normal curvature of line along the direction of v. More... | |
double | NormalCurvature (double u, double v, double du, double dv) const |
Calculate a normal curvature of surface. More... | |
bool | MeanGaussCurvature (double u, double v, double &mean, double &gauss) const |
Calculate the mean and the Gaussian curvature. More... | |
bool | MainCurvatures (double u, double v, double &c1, double &c2, double &du, double &dv) const |
Calculate the mean and the Gaussian curvature. More... | |
virtual bool | IsSameBase (const MbSurface &) const |
Whether a base surface is a copy of the base surface of the given object. | |
virtual bool | IsPlanar (double accuracy=METRIC_EPSILON) const |
Whether a surface is planar. | |
virtual MbeParamDir | GetFilletDirection (double accuracy=METRIC_REGION) const |
Direction of fillet surface with accuracy. More... | |
virtual bool | GetCentre (MbCartPoint3D &c) const |
Give the center of sphere surface. | |
virtual bool | GetCenterLines (std::vector< MbCurve3D * > &clCurves) const |
Get center lines of a surface. | |
virtual bool | IsSpinePeriodic () const |
Periodicity of the guide. More... | |
MbSplineSurface * | NurbsSurface (bool bmatch=false) const |
Construct a NURBS copy of a surface. More... | |
bool | NurbsParam (const MbNurbsParameters &tParam, bool uParam, double op1, double op2, bool &isClosedNurbs, double &epsilon, SArray< double > ¶ms) const |
Prepare parameters for the transformation to NURBS surface. More... | |
void | CheckApproxPointParamsOpen (bool isU, double par, size_t degree, size_t pCount, SArray< double > &tList, SArray< double > &aKnots) const |
Chose points for approximation along the parameter. More... | |
void | CheckApproxPointParamsClosed (bool isU, double par, size_t degree, size_t pCount, SArray< double > &tList, SArray< double > &aKnots) const |
Chose points for approximation along the parameter. More... | |
virtual MbCurve3D * | CurveU (double v, MbRect1D *pRgn, bool bApprox=true) const |
Construct spatial copy of the line v = const. More... | |
virtual MbCurve3D * | CurveUV (const MbLineSegment &segm, bool bApprox=true) const |
Construct spatial copy of line by parametric line. More... | |
virtual MbeItemLocation | PointRelative (const MbCartPoint3D &pnt, double eps=ANGLE_REGION) const |
Get point location relative to the surface. More... | |
virtual MbeItemLocation | PointClassification (const MbCartPoint &pnt, bool ignoreClosed=false) const |
A point is located inside the region on a surface. More... | |
virtual double | DistanceToBorder (const MbCartPoint &point, double &epsilon) const |
Calculate the parametric distance to the nearest boundary. More... | |
virtual size_t | CurveClassification (const MbCurve &curve, SArray< double > &tcurv, SArray< MbVector > &dir) const |
Determine points of intersections between the curve and the surface contours. More... | |
size_t | SurfaceBorderIntersection (const MbCurve &curve, SArray< double > &tcurv, SArray< MbVector > &dir) const |
Determine points of intersections between the curve and the surface contours. More... | |
virtual MbeNewtonResult | DirectPointProjectionNewton (const MbCartPoint3D &p, const MbVector3D &vect, size_t iterLimit, double &u, double &v, double &w, bool ext) const |
Finding of point projections to the surface in direction of the vector. For internal use only. | |
virtual void | DirectPointProjection (const MbCartPoint3D &pnt, const MbVector3D &vect, SArray< MbCartPoint > &uv, bool ext, MbRect2D *uvRange=nullptr) const |
Find all a point projection onto the surface along a vector in either of two directions. More... | |
virtual bool | NearDirectPointProjection (const MbCartPoint3D &pnt, const MbVector3D &vect, double &u, double &v, bool ext, MbRect2D *uvRange=nullptr, bool onlyPositiveDirection=false) const |
Find the nearest point projection to the surface in the vector direction. More... | |
virtual MbeNewtonResult | CurveTangentNewton (const MbCurve3D &curv1, double funcEpsilon, size_t iterLimit, double &u0, double &v0, double &t1, bool ext0, bool ext1) const |
Solution of equation system for determination of tangency between a surface and a curve. For internal use only. | |
virtual void | CurveIntersection (const MbCurve3D &curv, SArray< MbCartPoint > &uv, SArray< double > &tt, bool ext0, bool ext, bool touchInclude=false) const |
Determine points of intersection between a surface and a curve. More... | |
virtual MbeNewtonResult | SurfaceIntersectNewton (const MbSurface &surf1, MbeParamDir switchPar, double funcEpsilon, size_t iterLimit, double &u0, double &v0, double &u1, double &v1, bool ext0, bool ext1) const |
Solution of equation system for determination of surfaces intersections. For internal use only. | |
virtual MbeNewtonResult | SilhouetteNewton (const MbVector3D &eye, bool perspective, const MbAxis3D *axis, MbeParamDir switchPar, double funcEpsilon, size_t iterLimit, double &u, double &v, bool ext) const |
Solution of equation system for determination of surface silhouette points. For internal use only. | |
virtual bool | ProjectCurveOnSimilarSurface (const MbCurve3D &spaceCurve, const MbCurve &curve, const MbSurface &surfNew, MbCurve *&curveNew) const |
Construction of projection of a surface curve on coincident surface. More... | |
bool | ProjectCurveOnSimilarSurface (const MbCurve3D &spaceCurve, const MbCurve &curve, const MbSurface &surfNew, SPtr< MbCurve > &curveNew) const |
Construction of projection of a surface curve on coincident surface. More... | |
virtual double | DistanceToCurve (const MbCurve3D &curve, double &u, double &v, double &t, bool tCalc=false) const |
Calculate the nearest distance to a curve. More... | |
virtual double | DistanceToSurface (const MbSurface &surf1, double &u0, double &v0, double &u1, double &v1) const |
Calculate the nearest distance to a surface. More... | |
MbeNewtonResult | PlacementNewton (const MbVector3D &vec, double angle, MbeParamDir switchPar, size_t iterLimit, double &u, double &v) const |
Construct tangent placements of constructive planes. For internal use only. | |
bool | CreateVconstPlacements (const MbVector3D &axisZ, double angle, bool normalPlace, SArray< MbPlacement3D > &places) const |
Construct the normal or tangent placements on v-lines. | |
bool | CreateUconstPlacements (const MbVector3D &axisZ, double angle, bool normalPlace, SArray< MbPlacement3D > &places) const |
Construct the normal or tangent placements on u-lines. | |
virtual double | ParamArea () const |
Calculate the area of parameters domain. | |
virtual size_t | GetUPairs (double v, SArray< double > &u) const |
Calculate U-pairs by V. More... | |
virtual size_t | GetVPairs (double u, SArray< double > &v) const |
Calculate V-pairs by U. More... | |
MbeNewtonResult | IsoclinalNewton (const MbVector3D &dir, size_t iterLimit, double &u, double &v) const |
Determination of parameters of a surface isocline point. For internal use only. | |
virtual void | GetIsoclinal (const MbVector3D &nor, SArray< MbCartPoint > &uv) const |
Find all isoclines of a surface. More... | |
virtual void | CalculateGabarit (MbCube &cube) const |
Calculate bounding box of surface. It is recommended to use GetGabarit. | |
void | CalculateLocalGabarit (const MbMatrix3D &into, MbCube &cube) const override |
Calculate bounding box in the local coordinate system. | |
const MbCube & | GetGabarit () const |
Calculate bounding box of surface. | |
const MbCube & | Cube () const |
Return saved bounding box. It should be empty. It is recommended to use GetGabarit. | |
void | SetDirtyGabarit () const |
Make the bounding box empty. For internal use only. | |
void | CopyGabarit (const MbSurface &s, const MbVector3D *to=nullptr) |
Copy the bounding box from the copy. More... | |
double | GetGabDiagonal () const |
Calculate the diagonal of the bounding box. | |
void | CalculateRect (const MbPlacement3D &place, MbRect &rect) const |
Calculate the rectangular bounding box of a surface in the given plane. More... | |
virtual MbContour & | MakeContour (bool sense) const |
Return the bounding two-dimensional contour. More... | |
virtual MbCurve & | MakeSegment (size_t i, bool sense) const |
Return a segment of the bounding two-dimensional contour. More... | |
MbCurve & | MakeCurve (size_t number1, size_t number2) const |
Return a segment of the bounding two-dimensional contour. More... | |
virtual bool | SetLimit (double u1, double v1, double u2, double v2) |
Set surface limits. For internal use only. | |
bool | SetLimit (const MbRect &) |
Set surface limits. For internal use only. | |
virtual void | SetExtendedParamRegion (double u1, double v1, double u2, double v2) |
Set extended limits of surface. For internal use only. | |
virtual void | IncludePoint (double u, double v) |
Include a point into domain. For internal use only. | |
double | GetMaxParamDeltaU () const |
Get the maximum increment of U-parameter. | |
double | GetMaxParamDeltaV () const |
Get the maximum increment of V-parameter. | |
virtual double | GetUParamToUnit () const |
Get increment of u-parameter, corresponding to the unit length in space. | |
virtual double | GetVParamToUnit () const |
Get increment of v-parameter, corresponding to the unit length in space. | |
virtual double | GetUParamToUnit (double u, double v) const |
Get increment of u-parameter, corresponding to the unit length in space. | |
virtual double | GetVParamToUnit (double u, double v) const |
Get increment of v-parameter, corresponding to the unit length in space. | |
double | GetUParamToUnit (const MbCartPoint &uv) const |
Get increment of u-parameter, corresponding to the unit length in space. | |
double | GetVParamToUnit (const MbCartPoint &uv) const |
Get increment of v-parameter, corresponding to the unit length in space. | |
virtual void | GetParamsToUnit (double u, double v, double &uParam, double &vParam) const |
Get increment of parameters, corresponding to the unit length in space. | |
double | GetUEpsilon () const |
Get the minimum distinguishable value of u-parameter. It corresponds to the length Math::metricEpsilon in space. | |
double | GetVEpsilon () const |
Get the minimum distinguishable value of v-parameter. It corresponds to the length Math::metricEpsilon in space. | |
double | GetUEpsilon (double u, double v) const |
Get the minimum distinguishable value of u-parameter. It corresponds to the length Math::metricEpsilon in space. | |
double | GetVEpsilon (double u, double v) const |
Get the minimum distinguishable value of v-parameter. It corresponds to the length Math::metricEpsilon in space. | |
double | GetURegion () const |
Get the minimum distinguishable value of u-parameter. It corresponds to the length Math::metricRegion in space. | |
double | GetVRegion () const |
Get the minimum distinguishable value of v-parameter. It corresponds to the length Math::metricRegion in space. | |
double | GetURegion (double u, double v) const |
Get the minimum distinguishable value of u-parameter. It corresponds to the length Math::metricRegion in space. | |
double | GetVRegion (double u, double v) const |
Get the minimum distinguishable value of v-parameter. It corresponds to the length Math::metricRegion in space. | |
void | CalculatePolygon (double minPar, double maxPar, double constPar, MbeParamDir dir, const MbStepData &stepData, MbPolygon3D &polygon) const |
Calculate polygon by u or v. More... | |
virtual void | CalculateSurfaceWire (const MbStepData &stepData, size_t beg, MbMesh &mesh, size_t uMeshCount=c3d::WIRE_MAX, size_t vMeshCount=c3d::WIRE_MAX) const |
Calculate mesh. More... | |
void | AddTesselation (const MbStepData &stepData, MbeParamDir dir, double u1, double u2, double v1, double v2, SArray< double > &uu, SArray< double > &vv) const |
Determine splitting of the surface parametric region according to direction. More... | |
virtual void | CalculateSurfaceGrid (const MbStepData &stepData, bool sense, MbGrid &grid) const |
Approximate a surface by triangular plates. More... | |
virtual bool | IsRectangular () const |
Determine whether derivatives with respect to u and v are orthogonal. | |
virtual bool | IsLineU () const |
Check that all derivatives of surface with respect to u which have more than first order are equal to null. | |
virtual bool | IsLineV () const |
Check that all derivatives of surface with respect to v which have more than first order are equal to null. | |
virtual bool | IsShift (const MbSpaceItem &obj, MbVector3D &dir, bool &isSame, double accuracy=LENGTH_EPSILON) const |
Determine whether the object is a translation. More... | |
virtual void | CheckSurfParams (double &u, double &v) const |
Check parameters. Analogue of the global function _CheckParams, optimized for caches usage. More... | |
bool | GetPlacement (MbPlacement3D *place, bool exact=false) const |
Get a local coordinate system of planar surface (or only a possibility of getting it). | |
bool | GetPlanePlacement (MbPlacement3D &place) const |
Get a local coordinate system if a surface is a plane. | |
bool | GetControlPlacement (MbPlacement3D &place, bool sameSense=true) const |
Construct a local coordinate system of a surface with origin at the middle point of base surface parametric limits. More... | |
bool | OrientPlacement (MbPlacement3D &place, bool normalSense=true) const |
Orient an axis X of a placement along the line of its intersection with surface. | |
bool | IsPointOn (const MbCartPoint3D &, double eps=METRIC_PRECISION) const |
Determine whether a point is located on a surface or not. | |
void | PointOn (MbCartPoint &uv, MbCartPoint3D &p) const |
Calculate the point on a surface inside the domain of surface. | |
void | _PointOn (const MbCartPoint &uv, MbCartPoint3D &p) const |
Calculate a point on a surface extension. | |
void | Normal (MbCartPoint &uv, MbVector3D &v) const |
Calculate the normal vector to a surface inside the domain of surface. | |
bool | GetMatrix (double xMin, double xMax, double yMin, double yMax, MbMatrix &matr) const |
Find a matrix of transformation for the curves on a surface when the parameterization is changed. More... | |
double | GetUMid () const |
The middle value of u. | |
double | GetVMid () const |
The middle value of v. | |
double | GetURange () const |
Parametric length by u. | |
double | GetVRange () const |
Parametric length by v. | |
void | GetRect (MbRect &r) const |
Get parametric bounding box. | |
void | GetRect (MbRect2D &r) const |
Get parametric bounding box. | |
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. | |
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. | |
Static Public Member Functions | |
static MbChannelSurface * | CreateLawFillet (double rad, MbFunction &law, MbSurfaceCurve &curv1, bool sgn1, MbSurfaceCurve &curv2, bool sgn2, VERSION vers) |
Create a fillet surface from two surfaces according to the law. More... | |
static MbChannelSurface * | CreateKerbLawFillet (double rad, MbFunction &law, MbSurfaceCurve &curv1, bool sgn1, MbSurfaceCurve &curv2, bool sgn2, bool byFirst, VERSION vers) |
Create fillet surface by support surface and by kerb-curve with a radius that varies according to the law. More... | |
Static Public Member Functions inherited from MbFilletSurface | |
static MbFilletSurface * | CreateSimpleFillet (double rad, MbSurfaceCurve &curv1, bool sgn1, MbSurfaceCurve &curv2, bool sgn2, double conicFact, VERSION vers) |
Create a fillet surface by two surfaces with a constant radius. More... | |
static MbFilletSurface * | CreateEllipticalFillet (MbSurfaceCurve &curv1, double rad1, MbSurfaceCurve &curv2, double rad2, VERSION vers) |
Create a fillet surface by two surfaces by an "arc of an ellipse". More... | |
static MbFilletSurface * | CreateChordFillet (double h, MbSurfaceCurve &curv1, bool sgn1, MbSurfaceCurve &curv2, bool sgn2, VERSION vers) |
Create a fillet surface by two surfaces with a constant chord. More... | |
static MbFilletSurface * | CreateKerbFillet (double rad, MbSurfaceCurve &curv1, bool sgn1, MbSurfaceCurve &curv2, bool sgn2, bool byFirst, double conicFact, VERSION vers) |
Create fillet surface a constant radius by support surface and support kerb-curve. More... | |
static MbFilletSurface * | CreateKerbTouchingFillet (MbSurfaceCurve &curv1, bool sgn1, MbSurfaceCurve &curv2, bool sgn2, bool byFirst, VERSION vers) |
Create a fillet surface by two support surfaces, specifying the kerb-curve of touching. More... | |
Protected Member Functions | |
MbChannelSurface (MbSurfaceCurve &curv1, double d1, MbSurfaceCurve &curv2, double d2, MbFunction &func) | |
Constructor for inheritors of ordinary fillet surface. | |
Protected Member Functions inherited from MbFilletSurface | |
MbFilletSurface (MbSurfaceCurve &curv1, double d1, MbSurfaceCurve &curv2, double d2, MbeSmoothForm fm, double cn, bool ev) | |
Constructor for inheritors of ordinary fillet surface. | |
MbFilletSurface (MbSurfaceCurve &curv1, double d1, MbSurfaceCurve &curv2, double d2, MbeSmoothForm fm, double cn, bool byFirst, bool ev) | |
Constructor for inheritors of surface with preservation of fillet. | |
MbFilletSurface (MbSurface &surf1, MbCurve &curv1, double d1, MbSurface &surf2, MbCurve &curv2, double d2, MbCurve3D &curv0, MbFunction &weig0, MbeSmoothForm fm, double cn, bool ev) | |
Constructor of fillet surface with intersection curve of tangents to surfaces. | |
MbFilletSurface (const MbFilletSurface &, MbRegDuplicate *) | |
Copy-constructor. | |
MbFilletSurface (const MbFilletSurface *) | |
Copy-constructor with the same support surfaces. | |
Protected Member Functions inherited from MbSmoothSurface | |
MbSmoothSurface (MbSurfaceCurve &crv1, MbSurfaceCurve &crv2, MbeSmoothForm fm, double d1, double d2) | |
Constructor by two curves and conjugation type. More... | |
MbSmoothSurface (MbSurface &surf1, MbCurve &curv1, MbSurface &surf2, MbCurve &curv2, MbeSmoothForm fm, double d1, double d2) | |
Constructor by two curves and conjugation type. More... | |
MbSmoothSurface (const MbSmoothSurface &, MbRegDuplicate *) | |
Copy-constructor. | |
MbSmoothSurface (const MbSmoothSurface *) | |
Copy constructor with the same support surfaces. | |
void | CheckParam (double &u, double &v) const |
Correction of parameters. | |
Protected Member Functions inherited from MbSurface | |
MbSurface () | |
Constructor. | |
MbSurface (const MbSurface &) | |
Copy-constructor. | |
void | MoveGabarit (const MbVector3D &v) |
Move bounding box. | |
void | NormalCalculation (const MbVector3D &uDer, const MbVector3D &vDer, double u, double v, bool ext, MbVector3D &nor) const |
Normal calculation by derivatives uDer and vDer on point with parameters u, v. | |
double | StepAlong (double u, double v, double sag, bool alongU, double stepMinCoeff, const MbVector3D &der, const MbVector3D &sec) const |
Step calculation by sag. | |
double | DeviationStepAlong (double u, double v, double angle, bool alongU, const MbVector3D &der, const MbVector3D &sec) const |
Step calculation by normal deviation. | |
Protected Member Functions inherited from MbSpaceItem | |
MbSpaceItem () | |
Default constructor. | |
Protected Member Functions inherited from MbRefItem | |
MbRefItem () | |
Constructor without parameters. | |
Additional Inherited Members | |
Public Types inherited from MbFilletSurface | |
enum | MbeFilletSurfaceVersion { fsv_Ver0 = 0 , fsv_Ver1 = 1 , fsv_Count } |
Version of implementation of surface. More... | |
enum | MbeFilletSurfType { } |
Implemented types of fillets with exact mathematics. More... | |
Protected Attributes inherited from MbFilletSurface | |
MbCurve3D * | curve0 |
Intersection curve of tangents to surfaces - always not nullptr. | |
MbFunction * | weights0 |
Function of weight of points of curve0 mid-curve. | |
double | conic |
Coefficient of shape is changed between 0.05 and 0.95 and determines weight of points of curve0 curve. | |
bool | even |
Whether arc length parameterization is uniform or not. | |
bool | equable |
True - ordinary surface, false - curve1 or curve2 is fillet. | |
bool | byCurve1 |
True - curve2 is fillet, false - curve1 is fillet. | |
MbCurve3D * | spine |
Curve of centers of circular arcs in case of uniform parameterization. | |
MbeFilletSurfaceVersion | version |
Version. | |
Protected Attributes inherited from MbSmoothSurface | |
MbSurfaceCurve * | curve1 |
Support curve on the first surface (it never equals nullptr). | |
MbSurfaceCurve * | curve2 |
Support curve on the second surface (it never equals nullptr). | |
MbeSmoothForm | form |
Conjugation type. | |
double | distance1 |
Fillet radius or chamfer "cathetus" with sign for surface of curve1 curve. | |
double | distance2 |
Fillet radius or chamfer "cathetus" with sign for surface of curve2 curve. | |
double | umin |
Minimal value of parameter u. | |
double | umax |
Maximal value of parameter u. | |
double | vmin |
Minimal value of parameter v. | |
double | vmax |
Maximal value of parameter v. | |
bool | uclosed |
An attribute of closedness in u-parameter direction. | |
bool | poleUMin |
Existence of a pole at umin. | |
bool | poleUMax |
Existence of a pole at umax. | |
bool | poleVMin |
Existence of a pole at vmin. | |
bool | poleVMax |
Existence of a pole at vmax. | |
Protected Attributes inherited from MbSurface | |
MbCube | cube |
Bounding box of surface. More... | |
Fillet surface with variable radius is normal or with preservation of edges.
Fillet surface with variable radius is NURBS-surface constructed on three curves: curve1, curve0, curve2. The first surface parameter coincides with the parameter of curve1, curve0, curve2 curves. The second parameter is changed from zero (points coincide with curve1) to unit (points coincide with curve2). Function "function" determines the change of the radius and equals the ratio of the current radius to given for surface. The parameter of radius function coincides with the parameter of curves curve1, curve0, curve2. If coefficient of shape conic = ARC ( 0 ), then the weight of each point of the curve0 curve determined by the function weights0 and calculated so that the section of surface along its second parameter is a circular arc i.e. for any parameter u three points of curve1(u), curve0(u), curve2(u) determine the NURBS-curve with the shape of a circular arc. If coefficient of shape conic != ARC, then the weight of each point of the curve0 curve is equal to conic / ( 1.0 - conic ). If conic = 0.5, then the surface section along its second parameter is parabola.
MbChannelSurface::MbChannelSurface | ( | MbSurfaceCurve & | curv1, |
MbSurfaceCurve & | curv2, | ||
double | d1, | ||
double | d2, | ||
MbeSmoothForm | fm, | ||
double | cn, | ||
MbFunction & | func, | ||
bool | ev | ||
) |
Constructor by two curves and type of mate.
Constructor by two curves and type of mate.
[in] | curv1 | - Support curve on the first surface |
[in] | curv2 | - Support curve on the second surface |
[in] | d1 | - Fillet radius with sign for surface of crve1 curve |
[in] | d2 | - Fillet radius with sign for surface of crve2 curve |
[in] | fm | - Mate type: st_Span - fillet with a given chord st_Fillet - fillet with given radii. |
[in] | cn | - Coefficient of shape is changed from 0.05 to 0.95 (if 0.5 - circular arc) |
[in] | func | - Function of change of the radius |
[in] | ev | - Uniform parametrization by arc or not |
MbChannelSurface::MbChannelSurface | ( | MbSurfaceCurve & | curv1, |
MbSurfaceCurve & | curv2, | ||
double | d1, | ||
double | d2, | ||
MbeSmoothForm | fm, | ||
double | cn, | ||
MbFunction & | func, | ||
bool | byFirst, | ||
bool | ev | ||
) |
Constructor by two curves and type of mate.
Constructor of surface with preservation of edges by two curves and mate type.
[in] | curv1 | - Support curve on the first surface |
[in] | curv2 | - Support curve on the second surface |
[in] | d1 | - Fillet radius with sign for surface of crve1 curve |
[in] | d2 | - Fillet radius with sign for surface of crve2 curve |
[in] | fm | - Mate type: st_Span - fillet with a given chord st_Fillet - fillet with given radii. |
[in] | cn | - Coefficient of shape is changed from 0.05 to 0.95 (if 0.5 - circular arc) |
[in] | func | - Function of change of the radius |
[in] | byFirst | - True - curve2 curve is edge, false - curve1 curve is edge |
[in] | ev | - Uniform parametrization by arc or not |
MbChannelSurface::MbChannelSurface | ( | MbSurface & | surf1, |
MbCurve & | curv1, | ||
MbSurface & | surf2, | ||
MbCurve & | curv2, | ||
MbCurve3D & | curv0, | ||
MbFunction & | weig0, | ||
double | d1, | ||
double | d2, | ||
MbeSmoothForm | fm, | ||
double | cn, | ||
MbFunction & | func, | ||
bool | ev | ||
) |
Constructor by two curves and type of mate.
Constructor of surface with preservation of edges by two curves and mate type.
[in] | surf1 | - First surface |
[in] | curv1 | - Support curve at parameters of the first surface |
[in] | surf2 | - Second surface |
[in] | curv2 | - Support curve at parameters of the second surface |
[in] | curv0 | - Intersection curve of tangents to surfaces |
[in] | weig0 | - Function of change of the weights. |
[in] | d1 | - Fillet radius with sign for surface of crve1 curve |
[in] | d2 | - Fillet radius with sign for surface of crve2 curve |
[in] | fm | - Mate type: st_Span - fillet with a given chord st_Fillet - fillet with given radii. |
[in] | cn | - Coefficient of shape is changed from 0.05 to 0.95 (if 0.5 - circular arc) |
[in] | func | - Function of change of the radius. |
[in] | byFirst | - True - curve2 curve is edge, false - curve1 curve is edge |
[in] | ev | - Uniform parametrization by arc or not |
|
static |
Create a fillet surface from two surfaces according to the law.
If successful, a fillet surface is created with version >= fsv_Ver1.
[in] | rad | - Fillet radius. |
[in] | law | - Multiplication function of radius rad, depending on the parameter u of the surface. |
[in] | curv1 | - Support curve at parameters of the first surface |
[in] | sgn1 | - The orientation of the first support surface. |
[in] | curv2 | - Support curve at parameters of the second surface |
[in] | sgn2 | - The orientation of the second support surface. |
[in] | vers | - Version. |
|
static |
Create fillet surface by support surface and by kerb-curve with a radius that varies according to the law.
If successful, a fillet surface is created with version >= fsv_Ver1.
[in] | rad | - Fillet radius. |
[in] | law | - Multiplication function of radius rad, depending on the parameter u of the surface. |
[in] | curv1 | - Support curve at parameters of the first surface |
[in] | sgn1 | - The orientation of the first support surface. |
[in] | curv2 | - Support curve at parameters of the second surface |
[in] | sgn2 | - The orientation of the second support surface. |
[in] | byFirst | - True - curve2 curve is edge, false - curve1 curve is edge |
[in] | vers | - Version. |
|
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 |
Determine whether an object is similar.
Such are considered the same objects whose data are similar.
[in] | item | - The object to compare. |
Reimplemented from 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 |
Create an offset surface.
[in] | d | - Distance by the normal vector from the base surface to the offset surface. |
[in] | same | - A flag showing whether to use the current surface or its copy in offset surface. |
Reimplemented from MbSurface.
|
overridevirtual |
Get fillet radius if the surface is a fillet surface with the set accuracy.
Get fillet radius if the surface is a fillet surface with the set accuracy. Accuracy is used to compare surface slices to an arc to find rotation axis.
[in] | p | - Point near which the radius is searched. Used when the radius is variable. |
[in] | accuracy | - Accuracy. |
Reimplemented from MbSurface.
|
overridevirtual |
Add a point to the support curves of the boundary.
Add a point to the support curves of the boundary.
A point will be added into a curve if it has a type pt_LineSegment, pt_CubicSpline or pt_Hermit.
[out] | t1 | - Parameter of a point on the first curve (if add1 equals true) |
[in] | p1 | - Point on the first curve |
[in] | add1 | - Whether to add a point to the first curve |
[out] | t2 | - Parameter of a point on the second curve (if add2 equals true) |
[in] | p2 | - Point on the second curve |
[in] | add2 | - Whether to add a point to the second curve |
Reimplemented from MbSmoothSurface.
bool MbChannelSurface::CheckPole | ( | double & | u, |
bool | bModify = true |
||
) |
Check pole availability.
Check pole availability.
[in] | u | - Initial approximation of parameter U to search pole |
[in] | bModify | - Flag of surface modification if true, then the surface corrects its parameters along U and according to them the support curves curve1 and curve2 |