diff --git a/src/Mod/Part/App/BSplineCurvePy.xml b/src/Mod/Part/App/BSplineCurvePy.xml index f857240f31..a37377a614 100644 --- a/src/Mod/Part/App/BSplineCurvePy.xml +++ b/src/Mod/Part/App/BSplineCurvePy.xml @@ -1,20 +1,20 @@ - - - - Describes a B-Spline curve in 3D space - + FatherNamespace="Part" + Constructor="true"> + + + Describes a B-Spline curve in 3D space + __reduce__() @@ -23,456 +23,456 @@ Serialization of Part.BSplineCurve objects - - Returns the polynomial degree of this B-Spline curve. - - - - - - Returns the value of the maximum polynomial degree of any + + Returns the polynomial degree of this B-Spline curve. + + + + + + Returns the value of the maximum polynomial degree of any B-Spline curve curve. This value is 25. - - - - - - Returns the number of poles of this B-Spline curve. - - - - - - - - Returns the number of knots of this B-Spline curve. - - - - - - - Returns the start point of this B-Spline curve. - - - - - - Returns the end point of this B-Spline curve. - - - - - - Returns the index in the knot array of the knot + + + + + + Returns the number of poles of this B-Spline curve. + + + + + + + + Returns the number of knots of this B-Spline curve. + + + + + + + Returns the start point of this B-Spline curve. + + + + + + Returns the end point of this B-Spline curve. + + + + + + Returns the index in the knot array of the knot corresponding to the first or last parameter of this B-Spline curve. - - - - - - Returns the index in the knot array of the knot + + + + + + Returns the index in the knot array of the knot corresponding to the first or last parameter of this B-Spline curve. - - - - - - Returns the knots sequence of this B-Spline curve. - - - + + + + + + Returns the knots sequence of this B-Spline curve. + + + - - - Returns true if this B-Spline curve is rational. - A B-Spline curve is rational if, at the time of construction, - the weight table has been initialized. - - - + + + Returns true if this B-Spline curve is rational. + A B-Spline curve is rational if, at the time of construction, + the weight table has been initialized. + + + - - Returns true if this BSpline curve is periodic. - - + + Returns true if this BSpline curve is periodic. + + - - - Returns true if the distance between the start point and end point of - this B-Spline curve is less than or equal to gp::Resolution(). - - - - - - increase(Int=Degree) + + + Returns true if the distance between the start point and end point of + this B-Spline curve is less than or equal to gp::Resolution(). + + + + + + increase(Int=Degree) Increases the degree of this B-Spline curve to Degree. As a result, the poles, weights and multiplicities tables are modified; the knots table is not changed. Nothing is done if Degree is less than or equal to the current degree. - - - - - - increaseMultiplicity(int index, int mult) - increaseMultiplicity(int start, int end, int mult) - Increases multiplicity of knots up to mult. + + + + + + increaseMultiplicity(int index, int mult) + increaseMultiplicity(int start, int end, int mult) + Increases multiplicity of knots up to mult. - index: the index of a knot to modify (1-based) - start, end: index range of knots to modify. - If mult is lower or equal to the current multiplicity nothing is done. If mult is higher than the degree the degree is used. - - - - - - - incrementMultiplicity(int start, int end, int mult) - Raises multiplicity of knots by mult. + index: the index of a knot to modify (1-based) + start, end: index range of knots to modify. + If mult is lower or equal to the current multiplicity nothing is done. If mult is higher than the degree the degree is used. + + + + + + + incrementMultiplicity(int start, int end, int mult) + Raises multiplicity of knots by mult. - start, end: index range of knots to modify. - - - - - - - insertKnot(u, mult = 1, tol = 0.0) - Inserts a knot value in the sequence of knots. If u is an existing knot the - multiplicity is increased by mult. - - - - - - insertKnots(list_of_floats, list_of_ints, tol = 0.0, bool_add = True) - Inserts a set of knots values in the sequence of knots. + start, end: index range of knots to modify. + + + + + + + insertKnot(u, mult = 1, tol = 0.0) + Inserts a knot value in the sequence of knots. If u is an existing knot the + multiplicity is increased by mult. + + + + + + insertKnots(list_of_floats, list_of_ints, tol = 0.0, bool_add = True) + Inserts a set of knots values in the sequence of knots. - For each u = list_of_floats[i], mult = list_of_ints[i] + For each u = list_of_floats[i], mult = list_of_ints[i] - If u is an existing knot the multiplicity is increased by mult if bool_add is - True, otherwise increased to mult. + If u is an existing knot the multiplicity is increased by mult if bool_add is + True, otherwise increased to mult. - If u is not on the parameter range nothing is done. + If u is not on the parameter range nothing is done. - If the multiplicity is negative or null nothing is done. The new multiplicity - is limited to the degree. + If the multiplicity is negative or null nothing is done. The new multiplicity + is limited to the degree. - The tolerance criterion for knots equality is the max of Epsilon(U) and ParametricTolerance. - - - - - - - removeKnot(Index, M, tol) + The tolerance criterion for knots equality is the max of Epsilon(U) and ParametricTolerance. + + + + + + + removeKnot(Index, M, tol) - Reduces the multiplicity of the knot of index Index to M. - If M is equal to 0, the knot is removed. - With a modification of this type, the array of poles is also modified. - Two different algorithms are systematically used to compute the new - poles of the curve. If, for each pole, the distance between the pole - calculated using the first algorithm and the same pole calculated using - the second algorithm, is less than Tolerance, this ensures that the curve - is not modified by more than Tolerance. Under these conditions, true is - returned; otherwise, false is returned. + Reduces the multiplicity of the knot of index Index to M. + If M is equal to 0, the knot is removed. + With a modification of this type, the array of poles is also modified. + Two different algorithms are systematically used to compute the new + poles of the curve. If, for each pole, the distance between the pole + calculated using the first algorithm and the same pole calculated using + the second algorithm, is less than Tolerance, this ensures that the curve + is not modified by more than Tolerance. Under these conditions, true is + returned; otherwise, false is returned. - A low tolerance is used to prevent modification of the curve. - A high tolerance is used to 'smooth' the curve. - - - - - - - segment(u1,u2) - Modifies this B-Spline curve by segmenting it. - - - - - Set a knot of the B-Spline curve. - - + A low tolerance is used to prevent modification of the curve. + A high tolerance is used to 'smooth' the curve. + + + + + + + segment(u1,u2) + Modifies this B-Spline curve by segmenting it. + + + + + Set a knot of the B-Spline curve. + + - - Get a knot of the B-Spline curve. - - - - - Set knots of the B-Spline curve. - - + + Get a knot of the B-Spline curve. + + + + + Set knots of the B-Spline curve. + + - - Get all knots of the B-Spline curve. - - - - - Modifies this B-Spline curve by assigning P + + Get all knots of the B-Spline curve. + + + + + Modifies this B-Spline curve by assigning P to the pole of index Index in the poles table. - - + + - - Get a pole of the B-Spline curve. - - + + Get a pole of the B-Spline curve. + + - - Get all poles of the B-Spline curve. - - - - - Set a weight of the B-Spline curve. - - + + Get all poles of the B-Spline curve. + + + + + Set a weight of the B-Spline curve. + + - - Get a weight of the B-Spline curve. - - + + Get a weight of the B-Spline curve. + + - - Get all weights of the B-Spline curve. - - + + Get all weights of the B-Spline curve. + + - - Returns the table of poles and weights in homogeneous coordinates. - - - - - Computes for this B-Spline curve the parametric tolerance (UTolerance) + + Returns the table of poles and weights in homogeneous coordinates. + + + + + Computes for this B-Spline curve the parametric tolerance (UTolerance) for a given 3D tolerance (Tolerance3D). If f(t) is the equation of this B-Spline curve, the parametric tolerance ensures that: |t1-t0| < UTolerance =""==> |f(t1)-f(t0)| < Tolerance3D - - - - - - movePoint(U, P, Index1, Index2) - Moves the point of parameter U of this B-Spline curve to P. + + + + + + movePoint(U, P, Index1, Index2) + Moves the point of parameter U of this B-Spline curve to P. Index1 and Index2 are the indexes in the table of poles of this B-Spline curve of the first and last poles designated to be moved. Returns: (FirstModifiedPole, LastModifiedPole). They are the indexes of the first and last poles which are effectively modified. - - - - - Changes this B-Spline curve into a non-periodic curve. + + + + + Changes this B-Spline curve into a non-periodic curve. If this curve is already non-periodic, it is not modified. - - - - - Changes this B-Spline curve into a periodic curve. - - - - - Assigns the knot of index Index in the knots table + + + + + Changes this B-Spline curve into a periodic curve. + + + + + Assigns the knot of index Index in the knots table as the origin of this periodic B-Spline curve. As a consequence, the knots and poles tables are modified. - - + + - - Returns the multiplicity of the knot of index + + Returns the multiplicity of the knot of index from the knots table of this B-Spline curve. - - + + - - - Returns the multiplicities table M of the knots of this B-Spline curve. - - - - - - - Replaces this B-Spline curve by approximating a set of points. - The function accepts keywords as arguments. + + + Returns the multiplicities table M of the knots of this B-Spline curve. + + + + + + + Replaces this B-Spline curve by approximating a set of points. + The function accepts keywords as arguments. - approximate(Points = list_of_points) + approximate(Points = list_of_points) - Optional arguments : + Optional arguments : - DegMin = integer (3) : Minimum degree of the curve. - DegMax = integer (8) : Maximum degree of the curve. - Tolerance = float (1e-3) : approximating tolerance. - Continuity = string ('C2') : Desired continuity of the curve. - Possible values : 'C0','G1','C1','G2','C2','C3','CN' + DegMin = integer (3) : Minimum degree of the curve. + DegMax = integer (8) : Maximum degree of the curve. + Tolerance = float (1e-3) : approximating tolerance. + Continuity = string ('C2') : Desired continuity of the curve. + Possible values : 'C0','G1','C1','G2','C2','C3','CN' - LengthWeight = float, CurvatureWeight = float, TorsionWeight = float - If one of these arguments is not null, the functions approximates the - points using variational smoothing algorithm, which tries to minimize - additional criterium: - LengthWeight*CurveLength + CurvatureWeight*Curvature + TorsionWeight*Torsion + LengthWeight = float, CurvatureWeight = float, TorsionWeight = float + If one of these arguments is not null, the functions approximates the + points using variational smoothing algorithm, which tries to minimize + additional criterium: + LengthWeight*CurveLength + CurvatureWeight*Curvature + TorsionWeight*Torsion Continuity must be C0, C1(with DegMax >= 3) or C2(with DegMax >= 5). - Parameters = list of floats : knot sequence of the approximated points. - This argument is only used if the weights above are all null. + Parameters = list of floats : knot sequence of the approximated points. + This argument is only used if the weights above are all null. - ParamType = string ('Uniform','Centripetal' or 'ChordLength') - Parameterization type. Only used if weights and Parameters above aren't specified. + ParamType = string ('Uniform','Centripetal' or 'ChordLength') + Parameterization type. Only used if weights and Parameters above aren't specified. - Note : Continuity of the spline defaults to C2. However, it may not be applied if - it conflicts with other parameters ( especially DegMax ). - - - + Note : Continuity of the spline defaults to C2. However, it may not be applied if + it conflicts with other parameters ( especially DegMax ). + + + Compute the tangents for a Cardinal spline - - - Replaces this B-Spline curve by interpolating a set of points. - The function accepts keywords as arguments. + + + Replaces this B-Spline curve by interpolating a set of points. + The function accepts keywords as arguments. - interpolate(Points = list_of_points) + interpolate(Points = list_of_points) - Optional arguments : + Optional arguments : - PeriodicFlag = bool (False) : Sets the curve closed or opened. - Tolerance = float (1e-6) : interpolating tolerance + PeriodicFlag = bool (False) : Sets the curve closed or opened. + Tolerance = float (1e-6) : interpolating tolerance - Parameters : knot sequence of the interpolated points. - If not supplied, the function defaults to chord-length parameterization. - If PeriodicFlag == True, one extra parameter must be appended. + Parameters : knot sequence of the interpolated points. + If not supplied, the function defaults to chord-length parameterization. + If PeriodicFlag == True, one extra parameter must be appended. - EndPoint Tangent constraints : + EndPoint Tangent constraints : - InitialTangent = vector, FinalTangent = vector - specify tangent vectors for starting and ending points - of the BSpline. Either none, or both must be specified. + InitialTangent = vector, FinalTangent = vector + specify tangent vectors for starting and ending points + of the BSpline. Either none, or both must be specified. - Full Tangent constraints : + Full Tangent constraints : - Tangents = list_of_vectors, TangentFlags = list_of_bools - Both lists must have the same length as Points list. - Tangents specifies the tangent vector of each point in Points list. - TangentFlags (bool) activates or deactivates the corresponding tangent. - These arguments will be ignored if EndPoint Tangents (above) are also defined. + Tangents = list_of_vectors, TangentFlags = list_of_bools + Both lists must have the same length as Points list. + Tangents specifies the tangent vector of each point in Points list. + TangentFlags (bool) activates or deactivates the corresponding tangent. + These arguments will be ignored if EndPoint Tangents (above) are also defined. - Note : Continuity of the spline defaults to C2. However, if periodic, or tangents - are supplied, the continuity will drop to C1. - - - - - - - Builds a B-Spline by a list of poles. - arguments: poles (sequence of Base.Vector), [periodic (default is False), degree (default is 3), interpolate (default is False)] + Note : Continuity of the spline defaults to C2. However, if periodic, or tangents + are supplied, the continuity will drop to C1. + + + + + + + Builds a B-Spline by a list of poles. + arguments: poles (sequence of Base.Vector), [periodic (default is False), degree (default is 3), interpolate (default is False)] - Examples: - from FreeCAD import Base - import Part - V = Base.Vector - poles = [V(-2, 2, 0),V(0, 2, 1),V(2, 2, 0),V(2, -2, 0),V(0, -2, 1),V(-2, -2, 0)] + Examples: + from FreeCAD import Base + import Part + V = Base.Vector + poles = [V(-2, 2, 0),V(0, 2, 1),V(2, 2, 0),V(2, -2, 0),V(0, -2, 1),V(-2, -2, 0)] - # non-periodic spline - n=Part.BSplineCurve() - n.buildFromPoles(poles) - Part.show(n.toShape()) + # non-periodic spline + n=Part.BSplineCurve() + n.buildFromPoles(poles) + Part.show(n.toShape()) - # periodic spline - n=Part.BSplineCurve() - n.buildFromPoles(poles, True) - Part.show(n.toShape()) - - - - - - - Builds a B-Spline by a lists of Poles, Mults, Knots. - arguments: poles (sequence of Base.Vector), [mults , knots, periodic, degree, weights (sequence of float), CheckRational] + # periodic spline + n=Part.BSplineCurve() + n.buildFromPoles(poles, True) + Part.show(n.toShape()) + + + + + + + Builds a B-Spline by a lists of Poles, Mults, Knots. + arguments: poles (sequence of Base.Vector), [mults , knots, periodic, degree, weights (sequence of float), CheckRational] - Examples: - from FreeCAD import Base - import Part - V=Base.Vector - poles=[V(-10,-10),V(10,-10),V(10,10),V(-10,10)] + Examples: + from FreeCAD import Base + import Part + V=Base.Vector + poles=[V(-10,-10),V(10,-10),V(10,10),V(-10,10)] - # non-periodic spline - n=Part.BSplineCurve() - n.buildFromPolesMultsKnots(poles,(3,1,3),(0,0.5,1),False,2) - Part.show(n.toShape()) + # non-periodic spline + n=Part.BSplineCurve() + n.buildFromPolesMultsKnots(poles,(3,1,3),(0,0.5,1),False,2) + Part.show(n.toShape()) - # periodic spline - p=Part.BSplineCurve() - p.buildFromPolesMultsKnots(poles,(1,1,1,1,1),(0,0.25,0.5,0.75,1),True,2) - Part.show(p.toShape()) + # periodic spline + p=Part.BSplineCurve() + p.buildFromPolesMultsKnots(poles,(1,1,1,1,1),(0,0.25,0.5,0.75,1),True,2) + Part.show(p.toShape()) - # periodic and rational spline - r=Part.BSplineCurve() - r.buildFromPolesMultsKnots(poles,(1,1,1,1,1),(0,0.25,0.5,0.75,1),True,2,(1,0.8,0.7,0.2)) - Part.show(r.toShape()) - - - + # periodic and rational spline + r=Part.BSplineCurve() + r.buildFromPolesMultsKnots(poles,(1,1,1,1,1),(0,0.25,0.5,0.75,1),True,2,(1,0.8,0.7,0.2)) + Part.show(r.toShape()) + + + - - - Build a list of Bezier splines. - - - + + + Build a list of Bezier splines. + + + - - - Build a list of arcs and lines to approximate the B-spline. - toBiArcs(tolerance) -> list. - - - - - - - Build a new spline by joining this and a second spline. - - - - - - - makeC1Continuous(tol = 1e-6, ang_tol = 1e-7) - Reduces as far as possible the multiplicities of the knots of this BSpline - (keeping the geometry). It returns a new BSpline, which could still be C0. - tol is a geometrical tolerance. - The tol_ang is angular tolerance, in radians. It sets tolerable angle mismatch - of the tangents on the left and on the right to decide if the curve is G1 or - not at a given point. - - - - - - - Scales the knots list to fit the specified bounds. - The shape of the curve is not modified. - bspline_curve.scaleKnotsToBounds(u0, u1) - Default arguments are (0.0, 1.0) - - - - + + + Build a list of arcs and lines to approximate the B-spline. + toBiArcs(tolerance) -> list. + + + + + + + Build a new spline by joining this and a second spline. + + + + + + + makeC1Continuous(tol = 1e-6, ang_tol = 1e-7) + Reduces as far as possible the multiplicities of the knots of this BSpline + (keeping the geometry). It returns a new BSpline, which could still be C0. + tol is a geometrical tolerance. + The tol_ang is angular tolerance, in radians. It sets tolerable angle mismatch + of the tangents on the left and on the right to decide if the curve is G1 or + not at a given point. + + + + + + + Scales the knots list to fit the specified bounds. + The shape of the curve is not modified. + bspline_curve.scaleKnotsToBounds(u0, u1) + Default arguments are (0.0, 1.0) + + + + diff --git a/src/Mod/Part/App/BSplineCurvePyImp.cpp b/src/Mod/Part/App/BSplineCurvePyImp.cpp index bb4e8fb0d3..5bedfa679c 100644 --- a/src/Mod/Part/App/BSplineCurvePyImp.cpp +++ b/src/Mod/Part/App/BSplineCurvePyImp.cpp @@ -72,7 +72,7 @@ int BSplineCurvePy::PyInit(PyObject* args, PyObject* kwd) PyObject* obj; // poles, [ periodic, degree, interpolate ] // {"poles", "mults", "knots", "periodic", "degree", "weights", "CheckRational", NULL}; - obj = buildFromPolesMultsKnots(args,kwd); + obj = buildFromPolesMultsKnots(args, kwd); if (obj) { Py_DECREF(obj); @@ -154,7 +154,7 @@ PyObject* BSplineCurvePy::increaseDegree(PyObject * args) (getGeometryPtr()->handle()); curve->IncreaseDegree(degree); Py_Return; - } PY_CATCH_OCC ; + } PY_CATCH_OCC; } PyObject* BSplineCurvePy::increaseMultiplicity(PyObject * args) @@ -236,14 +236,14 @@ PyObject* BSplineCurvePy::insertKnots(PyObject * args) try { Py::Sequence knots(obj1); - TColStd_Array1OfReal k(1,knots.size()); + TColStd_Array1OfReal k(1, knots.size()); int index=1; for (Py::Sequence::iterator it = knots.begin(); it != knots.end(); ++it) { Py::Float val(*it); k(index++) = (double)val; } Py::Sequence mults(obj2); - TColStd_Array1OfInteger m(1,mults.size()); + TColStd_Array1OfInteger m(1, mults.size()); index=1; for (Py::Sequence::iterator it = mults.begin(); it != mults.end(); ++it) { Py::Long val(*it); @@ -266,14 +266,14 @@ PyObject* BSplineCurvePy::insertKnots(PyObject * args) PyObject* BSplineCurvePy::removeKnot(PyObject * args) { double tol; - int Index,M; + int Index, M; if (!PyArg_ParseTuple(args, "iid", &Index, &M, &tol)) return nullptr; try { Handle(Geom_BSplineCurve) curve = Handle(Geom_BSplineCurve)::DownCast (getGeometryPtr()->handle()); - Standard_Boolean ok = curve->RemoveKnot(Index,M,tol); + Standard_Boolean ok = curve->RemoveKnot(Index, M, tol); return PyBool_FromLong(ok ? 1 : 0); } catch (Standard_Failure& e) { @@ -284,22 +284,22 @@ PyObject* BSplineCurvePy::removeKnot(PyObject * args) PyObject* BSplineCurvePy::segment(PyObject * args) { - double u1,u2; - if (!PyArg_ParseTuple(args, "dd", &u1,&u2)) + double u1, u2; + if (!PyArg_ParseTuple(args, "dd", &u1, &u2)) return nullptr; try { Handle(Geom_BSplineCurve) curve = Handle(Geom_BSplineCurve)::DownCast (getGeometryPtr()->handle()); Handle(Geom_BSplineCurve) tempCurve = Handle(Geom_BSplineCurve)::DownCast (curve->Copy()); - tempCurve->Segment(u1,u2); + tempCurve->Segment(u1, u2); if (std::abs(tempCurve->FirstParameter()-u1) > Precision::Approximation() || std::abs(tempCurve->LastParameter()-u2) > Precision::Approximation()) { Standard_Failure::Raise("Failed to segment BSpline curve"); return nullptr; } else { - curve->Segment(u1,u2); + curve->Segment(u1, u2); } Py_Return; } @@ -1401,7 +1401,7 @@ PyObject* BSplineCurvePy::scaleKnotsToBounds(PyObject *args) try { if (u0 >= u1) { Standard_Failure::Raise("Bad parameter range"); - return nullptr;; + return nullptr; } GeomBSplineCurve* curve = getGeomBSplineCurvePtr(); curve->scaleKnotsToBounds(u0, u1); diff --git a/src/Mod/Part/App/BSplineSurfacePy.xml b/src/Mod/Part/App/BSplineSurfacePy.xml index 9a29e0363a..421beb54b1 100644 --- a/src/Mod/Part/App/BSplineSurfacePy.xml +++ b/src/Mod/Part/App/BSplineSurfacePy.xml @@ -1,743 +1,743 @@ - - - - Describes a B-Spline surface in 3D space - - - - - Returns the degree of this B-Spline surface in the u parametric direction. - - - - - - - - Returns the degree of this B-Spline surface in the v parametric direction. - - - - - - - - Returns the value of the maximum polynomial degree of any - B-Spline surface surface in either parametric directions. - This value is 25. - - - - - - - - Returns the number of poles of this B-Spline surface in the u parametric direction. - - - - - - - - Returns the number of poles of this B-Spline surface in the v parametric direction. - - - - - - - - Returns the number of knots of this B-Spline surface in the u parametric direction. - - - - - - - - Returns the number of knots of this B-Spline surface in the v parametric direction. - - - - - - - - Returns the index in the knot array associated with the u parametric direction, - which corresponds to the first parameter of this B-Spline surface in the specified - parametric direction. + Twin="GeomBSplineSurface" + TwinPointer="GeomBSplineSurface" + Include="Mod/Part/App/Geometry.h" + Namespace="Part" + FatherInclude="Mod/Part/App/GeometrySurfacePy.h" + FatherNamespace="Part" + Constructor="true"> + + + Describes a B-Spline surface in 3D space + + + + + Returns the degree of this B-Spline surface in the u parametric direction. + + + + + + + + Returns the degree of this B-Spline surface in the v parametric direction. + + + + + + + + Returns the value of the maximum polynomial degree of any + B-Spline surface surface in either parametric directions. + This value is 25. + + + + + + + + Returns the number of poles of this B-Spline surface in the u parametric direction. + + + + + + + + Returns the number of poles of this B-Spline surface in the v parametric direction. + + + + + + + + Returns the number of knots of this B-Spline surface in the u parametric direction. + + + + + + + + Returns the number of knots of this B-Spline surface in the v parametric direction. + + + + + + + + Returns the index in the knot array associated with the u parametric direction, + which corresponds to the first parameter of this B-Spline surface in the specified + parametric direction. - The isoparametric curves corresponding to these values are the boundary curves of - this surface. + The isoparametric curves corresponding to these values are the boundary curves of + this surface. - Note: The index does not correspond to the first knot of the surface in the specified - parametric direction unless the multiplicity of the first knot is equal to Degree + 1, - where Degree is the degree of this surface in the corresponding parametric direction. - - - - - - - - Returns the index in the knot array associated with the u parametric direction, - which corresponds to the last parameter of this B-Spline surface in the specified - parametric direction. + Note: The index does not correspond to the first knot of the surface in the specified + parametric direction unless the multiplicity of the first knot is equal to Degree + 1, + where Degree is the degree of this surface in the corresponding parametric direction. + + + + + + + + Returns the index in the knot array associated with the u parametric direction, + which corresponds to the last parameter of this B-Spline surface in the specified + parametric direction. - The isoparametric curves corresponding to these values are the boundary curves of - this surface. + The isoparametric curves corresponding to these values are the boundary curves of + this surface. - Note: The index does not correspond to the first knot of the surface in the specified - parametric direction unless the multiplicity of the last knot is equal to Degree + 1, - where Degree is the degree of this surface in the corresponding parametric direction. - - - - - - - - Returns the index in the knot array associated with the v parametric direction, - which corresponds to the first parameter of this B-Spline surface in the specified - parametric direction. + Note: The index does not correspond to the first knot of the surface in the specified + parametric direction unless the multiplicity of the last knot is equal to Degree + 1, + where Degree is the degree of this surface in the corresponding parametric direction. + + + + + + + + Returns the index in the knot array associated with the v parametric direction, + which corresponds to the first parameter of this B-Spline surface in the specified + parametric direction. - The isoparametric curves corresponding to these values are the boundary curves of - this surface. + The isoparametric curves corresponding to these values are the boundary curves of + this surface. - Note: The index does not correspond to the first knot of the surface in the specified - parametric direction unless the multiplicity of the first knot is equal to Degree + 1, - where Degree is the degree of this surface in the corresponding parametric direction. - - - - - - - - Returns the index in the knot array associated with the v parametric direction, - which corresponds to the last parameter of this B-Spline surface in the specified - parametric direction. + Note: The index does not correspond to the first knot of the surface in the specified + parametric direction unless the multiplicity of the first knot is equal to Degree + 1, + where Degree is the degree of this surface in the corresponding parametric direction. + + + + + + + + Returns the index in the knot array associated with the v parametric direction, + which corresponds to the last parameter of this B-Spline surface in the specified + parametric direction. - The isoparametric curves corresponding to these values are the boundary curves of - this surface. + The isoparametric curves corresponding to these values are the boundary curves of + this surface. - Note: The index does not correspond to the first knot of the surface in the specified - parametric direction unless the multiplicity of the last knot is equal to Degree + 1, - where Degree is the degree of this surface in the corresponding parametric direction. - - - - - - - - Returns the knots sequence of this B-Spline surface in - the u direction. - - - - - - - - Returns the knots sequence of this B-Spline surface in - the v direction. - - - - + Note: The index does not correspond to the first knot of the surface in the specified + parametric direction unless the multiplicity of the last knot is equal to Degree + 1, + where Degree is the degree of this surface in the corresponding parametric direction. + + + + + + + + Returns the knots sequence of this B-Spline surface in + the u direction. + + + + + + + + Returns the knots sequence of this B-Spline surface in + the v direction. + + + + - - - Returns the parametric bounds (U1, U2, V1, V2) of this B-Spline surface. - - - + + + Returns the parametric bounds (U1, U2, V1, V2) of this B-Spline surface. + + + - - - Returns false if the equation of this B-Spline surface is polynomial - (e.g. non-rational) in the u or v parametric direction. - In other words, returns false if for each row of poles, the associated - weights are identical - - - + + + Returns false if the equation of this B-Spline surface is polynomial + (e.g. non-rational) in the u or v parametric direction. + In other words, returns false if for each row of poles, the associated + weights are identical + + + - - - Returns false if the equation of this B-Spline surface is polynomial - (e.g. non-rational) in the u or v parametric direction. - In other words, returns false if for each column of poles, the associated - weights are identical - - - + + + Returns false if the equation of this B-Spline surface is polynomial + (e.g. non-rational) in the u or v parametric direction. + In other words, returns false if for each column of poles, the associated + weights are identical + + + - - Returns true if this surface is periodic in the u parametric direction. - - + + Returns true if this surface is periodic in the u parametric direction. + + - - Returns true if this surface is periodic in the v parametric direction. - - + + Returns true if this surface is periodic in the v parametric direction. + + - - - Checks if this surface is closed in the u parametric direction. - Returns true if, in the table of poles the first row and the last - row are identical. - - - + + + Checks if this surface is closed in the u parametric direction. + Returns true if, in the table of poles the first row and the last + row are identical. + + + - - - Checks if this surface is closed in the v parametric direction. - Returns true if, in the table of poles the first column and the - last column are identical. - - - - - - - increase(Int=UDegree, int=VDegree) - Increases the degrees of this B-Spline surface to UDegree and VDegree - in the u and v parametric directions respectively. - As a result, the tables of poles, weights and multiplicities are modified. - The tables of knots is not changed. + + + Checks if this surface is closed in the v parametric direction. + Returns true if, in the table of poles the first column and the + last column are identical. + + + + + + + increase(Int=UDegree, int=VDegree) + Increases the degrees of this B-Spline surface to UDegree and VDegree + in the u and v parametric directions respectively. + As a result, the tables of poles, weights and multiplicities are modified. + The tables of knots is not changed. - Note: Nothing is done if the given degree is less than or equal to the - current degree in the corresponding parametric direction. - - - - - - Increases the multiplicity in the u direction. - - - - - Increases the multiplicity in the v direction. - - - - - Increment the multiplicity in the u direction - - - - - Increment the multiplicity in the v direction - - - - - insertUKnote(float U, int Index, float Tolerance) - Insert or override a knot - - - - - insertUKnote(List of float U, List of float Mult, float Tolerance) - Inserts knots. - - - - - insertUKnote(float V, int Index, float Tolerance) - Insert or override a knot. - - - - - insertUKnote(List of float V, List of float Mult, float Tolerance) - Inserts knots. - - - - - - Reduces to M the multiplicity of the knot of index Index in the given - parametric direction. If M is 0, the knot is removed. - With a modification of this type, the table of poles is also modified. - Two different algorithms are used systematically to compute the new - poles of the surface. For each pole, the distance between the pole - calculated using the first algorithm and the same pole calculated using - the second algorithm, is checked. If this distance is less than Tolerance - it ensures that the surface is not modified by more than Tolerance. - Under these conditions, the function returns true; otherwise, it returns - false. + Note: Nothing is done if the given degree is less than or equal to the + current degree in the corresponding parametric direction. + + + + + + Increases the multiplicity in the u direction. + + + + + Increases the multiplicity in the v direction. + + + + + Increment the multiplicity in the u direction + + + + + Increment the multiplicity in the v direction + + + + + insertUKnote(float U, int Index, float Tolerance) - Insert or override a knot + + + + + insertUKnote(List of float U, List of float Mult, float Tolerance) - Inserts knots. + + + + + insertUKnote(float V, int Index, float Tolerance) - Insert or override a knot. + + + + + insertUKnote(List of float V, List of float Mult, float Tolerance) - Inserts knots. + + + + + + Reduces to M the multiplicity of the knot of index Index in the given + parametric direction. If M is 0, the knot is removed. + With a modification of this type, the table of poles is also modified. + Two different algorithms are used systematically to compute the new + poles of the surface. For each pole, the distance between the pole + calculated using the first algorithm and the same pole calculated using + the second algorithm, is checked. If this distance is less than Tolerance + it ensures that the surface is not modified by more than Tolerance. + Under these conditions, the function returns true; otherwise, it returns + false. - A low tolerance prevents modification of the surface. A high tolerance - 'smoothes' the surface. - - - - - - - Reduces to M the multiplicity of the knot of index Index in the given - parametric direction. If M is 0, the knot is removed. - With a modification of this type, the table of poles is also modified. - Two different algorithms are used systematically to compute the new - poles of the surface. For each pole, the distance between the pole - calculated using the first algorithm and the same pole calculated using - the second algorithm, is checked. If this distance is less than Tolerance - it ensures that the surface is not modified by more than Tolerance. - Under these conditions, the function returns true; otherwise, it returns - false. + A low tolerance prevents modification of the surface. A high tolerance + 'smoothes' the surface. + + + + + + + Reduces to M the multiplicity of the knot of index Index in the given + parametric direction. If M is 0, the knot is removed. + With a modification of this type, the table of poles is also modified. + Two different algorithms are used systematically to compute the new + poles of the surface. For each pole, the distance between the pole + calculated using the first algorithm and the same pole calculated using + the second algorithm, is checked. If this distance is less than Tolerance + it ensures that the surface is not modified by more than Tolerance. + Under these conditions, the function returns true; otherwise, it returns + false. - A low tolerance prevents modification of the surface. A high tolerance - 'smoothes' the surface. - - - - - - - Modifies this B-Spline surface by segmenting it between U1 and U2 in the - u parametric direction and between V1 and V2 in the v parametric direction. - Any of these values can be outside the bounds of this surface, but U2 must - be greater than U1 and V2 must be greater than V1. + A low tolerance prevents modification of the surface. A high tolerance + 'smoothes' the surface. + + + + + + + Modifies this B-Spline surface by segmenting it between U1 and U2 in the + u parametric direction and between V1 and V2 in the v parametric direction. + Any of these values can be outside the bounds of this surface, but U2 must + be greater than U1 and V2 must be greater than V1. - All the data structure tables of this B-Spline surface are modified but the - knots located between U1 and U2 in the u parametric direction, and between - V1 and V2 in the v parametric direction are retained. - The degree of the surface in each parametric direction is not modified. - - - - - - - Modifies this B-Spline surface by assigning the value K to the knot of index - UIndex of the knots table corresponding to the u parametric direction. - This modification remains relatively local, since K must lie between the values - of the knots which frame the modified knot. + All the data structure tables of this B-Spline surface are modified but the + knots located between U1 and U2 in the u parametric direction, and between + V1 and V2 in the v parametric direction are retained. + The degree of the surface in each parametric direction is not modified. + + + + + + + Modifies this B-Spline surface by assigning the value K to the knot of index + UIndex of the knots table corresponding to the u parametric direction. + This modification remains relatively local, since K must lie between the values + of the knots which frame the modified knot. - You can also increase the multiplicity of the modified knot to M. Note however - that it is not possible to decrease the multiplicity of a knot with this function. - - - - - - - Modifies this B-Spline surface by assigning the value K to the knot of index - VIndex of the knots table corresponding to the v parametric direction. - This modification remains relatively local, since K must lie between the values - of the knots which frame the modified knot. + You can also increase the multiplicity of the modified knot to M. Note however + that it is not possible to decrease the multiplicity of a knot with this function. + + + + + + + Modifies this B-Spline surface by assigning the value K to the knot of index + VIndex of the knots table corresponding to the v parametric direction. + This modification remains relatively local, since K must lie between the values + of the knots which frame the modified knot. - You can also increase the multiplicity of the modified knot to M. Note however - that it is not possible to decrease the multiplicity of a knot with this function. - - - + You can also increase the multiplicity of the modified knot to M. Note however + that it is not possible to decrease the multiplicity of a knot with this function. + + + - - - Returns, for this B-Spline surface, in the u parametric direction - the knot of index UIndex of the knots table. - - - + + + Returns, for this B-Spline surface, in the u parametric direction + the knot of index UIndex of the knots table. + + + - - - Returns, for this B-Spline surface, in the v parametric direction - the knot of index VIndex of the knots table. - - - - - - - Changes all knots of this B-Spline surface in the u parametric - direction. The multiplicity of the knots is not modified. - - - - - - - Changes all knots of this B-Spline surface in the v parametric - direction. The multiplicity of the knots is not modified. - - - + + + Returns, for this B-Spline surface, in the v parametric direction + the knot of index VIndex of the knots table. + + + + + + + Changes all knots of this B-Spline surface in the u parametric + direction. The multiplicity of the knots is not modified. + + + + + + + Changes all knots of this B-Spline surface in the v parametric + direction. The multiplicity of the knots is not modified. + + + - - - Returns, for this B-Spline surface, the knots table - in the u parametric direction - - - + + + Returns, for this B-Spline surface, the knots table + in the u parametric direction + + + - - - Returns, for this B-Spline surface, the knots table - in the v parametric direction - - - - - - - Modifies this B-Spline surface by assigning P to the pole of - index (UIndex, VIndex) in the poles table. - The second syntax allows you also to change the weight of the - modified pole. The weight is set to Weight. This syntax must - only be used for rational surfaces. - Modifies this B-Spline curve by assigning P to the pole of - index Index in the poles table. - - - - - - - Modifies this B-Spline surface by assigning values to all or part - of the column of poles of index VIndex, of this B-Spline surface. - You can also change the weights of the modified poles. The weights - are set to the corresponding values of CPoleWeights. - These syntaxes must only be used for rational surfaces. - - - - - - - Modifies this B-Spline surface by assigning values to all or part - of the row of poles of index VIndex, of this B-Spline surface. - You can also change the weights of the modified poles. The weights - are set to the corresponding values of CPoleWeights. - These syntaxes must only be used for rational surfaces. - - - + + + Returns, for this B-Spline surface, the knots table + in the v parametric direction + + + + + + + Modifies this B-Spline surface by assigning P to the pole of + index (UIndex, VIndex) in the poles table. + The second syntax allows you also to change the weight of the + modified pole. The weight is set to Weight. This syntax must + only be used for rational surfaces. + Modifies this B-Spline curve by assigning P to the pole of + index Index in the poles table. + + + + + + + Modifies this B-Spline surface by assigning values to all or part + of the column of poles of index VIndex, of this B-Spline surface. + You can also change the weights of the modified poles. The weights + are set to the corresponding values of CPoleWeights. + These syntaxes must only be used for rational surfaces. + + + + + + + Modifies this B-Spline surface by assigning values to all or part + of the row of poles of index VIndex, of this B-Spline surface. + You can also change the weights of the modified poles. The weights + are set to the corresponding values of CPoleWeights. + These syntaxes must only be used for rational surfaces. + + + - - - Returns the pole of index (UIndex,VIndex) of this B-Spline surface. - - - + + + Returns the pole of index (UIndex,VIndex) of this B-Spline surface. + + + - - Returns the table of poles of this B-Spline surface. - - - - - - Modifies this B-Spline surface by assigning the value Weight to the weight - of the pole of index (UIndex, VIndex) in the poles tables of this B-Spline - surface. + + Returns the table of poles of this B-Spline surface. + + + + + + Modifies this B-Spline surface by assigning the value Weight to the weight + of the pole of index (UIndex, VIndex) in the poles tables of this B-Spline + surface. - This function must only be used for rational surfaces. - - - - - - - Modifies this B-Spline surface by assigning values to all or part of the - weights of the column of poles of index VIndex of this B-Spline surface. + This function must only be used for rational surfaces. + + + + + + + Modifies this B-Spline surface by assigning values to all or part of the + weights of the column of poles of index VIndex of this B-Spline surface. - The modified part of the column of weights is defined by the bounds - of the array CPoleWeights. + The modified part of the column of weights is defined by the bounds + of the array CPoleWeights. - This function must only be used for rational surfaces. - - - - - - - Modifies this B-Spline surface by assigning values to all or part of the - weights of the row of poles of index UIndex of this B-Spline surface. + This function must only be used for rational surfaces. + + + + + + + Modifies this B-Spline surface by assigning values to all or part of the + weights of the row of poles of index UIndex of this B-Spline surface. - The modified part of the row of weights is defined by the bounds of the - array CPoleWeights. + The modified part of the row of weights is defined by the bounds of the + array CPoleWeights. - This function must only be used for rational surfaces. - - - + This function must only be used for rational surfaces. + + + - - - Return the weight of the pole of index (UIndex,VIndex) - in the poles table for this B-Spline surface. - - - + + + Return the weight of the pole of index (UIndex,VIndex) + in the poles table for this B-Spline surface. + + + - - Returns the table of weights of the poles for this B-Spline surface. - - + + Returns the table of weights of the poles for this B-Spline surface. + + - - Returns the table of poles and weights in homogeneous coordinates. - - - - - - Computes two tolerance values for this B-Spline surface, based on the - given tolerance in 3D space Tolerance3D. The tolerances computed are: - -- UTolerance in the u parametric direction and - -- VTolerance in the v parametric direction. + + Returns the table of poles and weights in homogeneous coordinates. + + + + + + Computes two tolerance values for this B-Spline surface, based on the + given tolerance in 3D space Tolerance3D. The tolerances computed are: + -- UTolerance in the u parametric direction and + -- VTolerance in the v parametric direction. - If f(u,v) is the equation of this B-Spline surface, UTolerance and - VTolerance guarantee that: - |u1 - u0| < UTolerance - |v1 - v0| < VTolerance - ====> ||f(u1, v1) - f(u2, v2)|| < Tolerance3D - - - - - - - Moves the point of parameters (U, V) of this B-Spline surface to P. - UIndex1, UIndex2, VIndex1 and VIndex2 are the indexes in the poles - table of this B-Spline surface, of the first and last poles which - can be moved in each parametric direction. - The returned indexes UFirstIndex, ULastIndex, VFirstIndex and - VLastIndex are the indexes of the first and last poles effectively - modified in each parametric direction. - In the event of incompatibility between UIndex1, UIndex2, VIndex1, - VIndex2 and the values U and V: - -- no change is made to this B-Spline surface, and - -- UFirstIndex, ULastIndex, VFirstIndex and VLastIndex are set to - null. - - - - - - - Changes this B-Spline surface into a non-periodic one in the u parametric direction. - If this B-Spline surface is already non-periodic in the given parametric direction, - it is not modified. - If this B-Spline surface is periodic in the given parametric direction, the boundaries - of the surface are not given by the first and last rows (or columns) of poles (because - the multiplicity of the first knot and of the last knot in the given parametric direction - are not modified, nor are they equal to Degree+1, where Degree is the degree of this - B-Spline surface in the given parametric direction). Only the function Segment ensures - this property. + If f(u,v) is the equation of this B-Spline surface, UTolerance and + VTolerance guarantee that: + |u1 - u0| < UTolerance + |v1 - v0| < VTolerance + ====> ||f(u1, v1) - f(u2, v2)|| < Tolerance3D + + + + + + + Moves the point of parameters (U, V) of this B-Spline surface to P. + UIndex1, UIndex2, VIndex1 and VIndex2 are the indexes in the poles + table of this B-Spline surface, of the first and last poles which + can be moved in each parametric direction. + The returned indexes UFirstIndex, ULastIndex, VFirstIndex and + VLastIndex are the indexes of the first and last poles effectively + modified in each parametric direction. + In the event of incompatibility between UIndex1, UIndex2, VIndex1, + VIndex2 and the values U and V: + -- no change is made to this B-Spline surface, and + -- UFirstIndex, ULastIndex, VFirstIndex and VLastIndex are set to + null. + + + + + + + Changes this B-Spline surface into a non-periodic one in the u parametric direction. + If this B-Spline surface is already non-periodic in the given parametric direction, + it is not modified. + If this B-Spline surface is periodic in the given parametric direction, the boundaries + of the surface are not given by the first and last rows (or columns) of poles (because + the multiplicity of the first knot and of the last knot in the given parametric direction + are not modified, nor are they equal to Degree+1, where Degree is the degree of this + B-Spline surface in the given parametric direction). Only the function Segment ensures + this property. - Note: the poles and knots tables are modified. - - - - - - - Changes this B-Spline surface into a non-periodic one in the v parametric direction. - If this B-Spline surface is already non-periodic in the given parametric direction, - it is not modified. - If this B-Spline surface is periodic in the given parametric direction, the boundaries - of the surface are not given by the first and last rows (or columns) of poles (because - the multiplicity of the first knot and of the last knot in the given parametric direction - are not modified, nor are they equal to Degree+1, where Degree is the degree of this - B-Spline surface in the given parametric direction). Only the function Segment ensures - this property. + Note: the poles and knots tables are modified. + + + + + + + Changes this B-Spline surface into a non-periodic one in the v parametric direction. + If this B-Spline surface is already non-periodic in the given parametric direction, + it is not modified. + If this B-Spline surface is periodic in the given parametric direction, the boundaries + of the surface are not given by the first and last rows (or columns) of poles (because + the multiplicity of the first knot and of the last knot in the given parametric direction + are not modified, nor are they equal to Degree+1, where Degree is the degree of this + B-Spline surface in the given parametric direction). Only the function Segment ensures + this property. - Note: the poles and knots tables are modified. - - - - - - - Modifies this surface to be periodic in the u parametric direction. - To become periodic in a given parametric direction a surface must - be closed in that parametric direction, and the knot sequence relative - to that direction must be periodic. - To generate this periodic sequence of knots, the functions FirstUKnotIndex - and LastUKnotIndex are used to compute I1 and I2. These are the indexes, - in the knot array associated with the given parametric direction, of the - knots that correspond to the first and last parameters of this B-Spline - surface in the given parametric direction. Hence the period is: + Note: the poles and knots tables are modified. + + + + + + + Modifies this surface to be periodic in the u parametric direction. + To become periodic in a given parametric direction a surface must + be closed in that parametric direction, and the knot sequence relative + to that direction must be periodic. + To generate this periodic sequence of knots, the functions FirstUKnotIndex + and LastUKnotIndex are used to compute I1 and I2. These are the indexes, + in the knot array associated with the given parametric direction, of the + knots that correspond to the first and last parameters of this B-Spline + surface in the given parametric direction. Hence the period is: - Knots(I1) - Knots(I2) + Knots(I1) - Knots(I2) - As a result, the knots and poles tables are modified. - - - - - - - Modifies this surface to be periodic in the v parametric direction. - To become periodic in a given parametric direction a surface must - be closed in that parametric direction, and the knot sequence relative - to that direction must be periodic. - To generate this periodic sequence of knots, the functions FirstUKnotIndex - and LastUKnotIndex are used to compute I1 and I2. These are the indexes, - in the knot array associated with the given parametric direction, of the - knots that correspond to the first and last parameters of this B-Spline - surface in the given parametric direction. Hence the period is: + As a result, the knots and poles tables are modified. + + + + + + + Modifies this surface to be periodic in the v parametric direction. + To become periodic in a given parametric direction a surface must + be closed in that parametric direction, and the knot sequence relative + to that direction must be periodic. + To generate this periodic sequence of knots, the functions FirstUKnotIndex + and LastUKnotIndex are used to compute I1 and I2. These are the indexes, + in the knot array associated with the given parametric direction, of the + knots that correspond to the first and last parameters of this B-Spline + surface in the given parametric direction. Hence the period is: - Knots(I1) - Knots(I2) + Knots(I1) - Knots(I2) - As a result, the knots and poles tables are modified. - - - - - - - Assigns the knot of index Index in the knots table - in the u parametric direction to be the origin of - this periodic B-Spline surface. As a consequence, - the knots and poles tables are modified. - - - - - - - Assigns the knot of index Index in the knots table - in the v parametric direction to be the origin of - this periodic B-Spline surface. As a consequence, - the knots and poles tables are modified. - - - + As a result, the knots and poles tables are modified. + + + + + + + Assigns the knot of index Index in the knots table + in the u parametric direction to be the origin of + this periodic B-Spline surface. As a consequence, + the knots and poles tables are modified. + + + + + + + Assigns the knot of index Index in the knots table + in the v parametric direction to be the origin of + this periodic B-Spline surface. As a consequence, + the knots and poles tables are modified. + + + - - - Returns, for this B-Spline surface, the multiplicity of - the knot of index UIndex in the u parametric direction. - - - + + + Returns, for this B-Spline surface, the multiplicity of + the knot of index UIndex in the u parametric direction. + + + - - - Returns, for this B-Spline surface, the multiplicity of - the knot of index VIndex in the v parametric direction. - - - + + + Returns, for this B-Spline surface, the multiplicity of + the knot of index VIndex in the v parametric direction. + + + - - - Returns, for this B-Spline surface, the table of - multiplicities in the u parametric direction - - - + + + Returns, for this B-Spline surface, the table of + multiplicities in the u parametric direction + + + - - - Returns, for this B-Spline surface, the table of - multiplicities in the v parametric direction - - - - - - - Exchanges the u and v parametric directions on this B-Spline surface. - As a consequence: - -- the poles and weights tables are transposed, - -- the knots and multiplicities tables are exchanged, - -- degrees of continuity and rational, periodic and uniform - characteristics are exchanged and - -- the orientation of the surface is reversed. - - - - - - Returns a reparametrized copy of this surface - - - - - - Replaces this B-Spline surface by approximating a set of points. - This method uses keywords : - - Points = 2Darray of points (or floats, in combination with X0, dX, Y0, dY) - - DegMin (int), DegMax (int) - - Continuity = 0,1 or 2 (for C0, C1, C2) - - Tolerance (float) - - X0, dX, Y0, dY (floats) with Points = 2Darray of floats - - ParamType = 'Uniform','Centripetal' or 'ChordLength' - - LengthWeight, CurvatureWeight, TorsionWeight (floats) - (with this smoothing algorithm, continuity C1 requires DegMax >= 3 and C2, DegMax >=5) + + + Returns, for this B-Spline surface, the table of + multiplicities in the v parametric direction + + + + + + + Exchanges the u and v parametric directions on this B-Spline surface. + As a consequence: + -- the poles and weights tables are transposed, + -- the knots and multiplicities tables are exchanged, + -- degrees of continuity and rational, periodic and uniform + characteristics are exchanged and + -- the orientation of the surface is reversed. + + + + + + Returns a reparametrized copy of this surface + + + + + + Replaces this B-Spline surface by approximating a set of points. + This method uses keywords : + - Points = 2Darray of points (or floats, in combination with X0, dX, Y0, dY) + - DegMin (int), DegMax (int) + - Continuity = 0,1 or 2 (for C0, C1, C2) + - Tolerance (float) + - X0, dX, Y0, dY (floats) with Points = 2Darray of floats + - ParamType = 'Uniform','Centripetal' or 'ChordLength' + - LengthWeight, CurvatureWeight, TorsionWeight (floats) + (with this smoothing algorithm, continuity C1 requires DegMax >= 3 and C2, DegMax >=5) - Possible combinations : - - approximate(Points, DegMin, DegMax, Continuity, Tolerance) - - approximate(Points, DegMin, DegMax, Continuity, Tolerance, X0, dX, Y0, dY) - With explicit keywords : - - approximate(Points, DegMin, DegMax, Continuity, Tolerance, ParamType) - - approximate(Points, DegMax, Continuity, Tolerance, LengthWeight, CurvatureWeight, TorsionWeight) - - - - - - - interpolate(points) - interpolate(zpoints, X0, dX, Y0, dY) + Possible combinations : + - approximate(Points, DegMin, DegMax, Continuity, Tolerance) + - approximate(Points, DegMin, DegMax, Continuity, Tolerance, X0, dX, Y0, dY) + With explicit keywords : + - approximate(Points, DegMin, DegMax, Continuity, Tolerance, ParamType) + - approximate(Points, DegMax, Continuity, Tolerance, LengthWeight, CurvatureWeight, TorsionWeight) + + + + + + + interpolate(points) + interpolate(zpoints, X0, dX, Y0, dY) - Replaces this B-Spline surface by interpolating a set of points. - The resulting surface is of degree 3 and continuity C2. - Arguments: - a 2 dimensional array of vectors, that the surface passes through - or - a 2 dimensional array of floats with the z values, - the x starting point X0 (float), - the x increment dX (float), - the y starting point Y0 and increment dY - - - - - - - Builds a B-Spline by a lists of Poles, Mults and Knots - arguments: poles (sequence of sequence of Base.Vector), umults, vmults, [uknots, vknots, uperiodic, vperiodic, udegree, vdegree, weights (sequence of sequence of float)] - - - - - - - Builds a B-Spline from a list of control curves - - - - - - - Scales the U and V knots lists to fit the specified bounds. - The shape of the surface is not modified. - bspline_surf.scaleKnotsToBounds(u0, u1, v0, v1) - Default arguments are 0.0, 1.0, 0.0, 1.0 - - - - + Replaces this B-Spline surface by interpolating a set of points. + The resulting surface is of degree 3 and continuity C2. + Arguments: + a 2 dimensional array of vectors, that the surface passes through + or + a 2 dimensional array of floats with the z values, + the x starting point X0 (float), + the x increment dX (float), + the y starting point Y0 and increment dY + + + + + + + Builds a B-Spline by a lists of Poles, Mults and Knots + arguments: poles (sequence of sequence of Base.Vector), umults, vmults, [uknots, vknots, uperiodic, vperiodic, udegree, vdegree, weights (sequence of sequence of float)] + + + + + + + Builds a B-Spline from a list of control curves + + + + + + + Scales the U and V knots lists to fit the specified bounds. + The shape of the surface is not modified. + bspline_surf.scaleKnotsToBounds(u0, u1, v0, v1) + Default arguments are 0.0, 1.0, 0.0, 1.0 + + + +