| |
|
|
| from __future__ import annotations |
|
|
| from Base.Metadata import export, constmethod |
| from Base.Vector import Vector |
| from Part.App.Geom2d.Geometry2d import Geometry2d |
| from Part.App.Geom2d.BSplineCurve import BSplineCurve |
| from typing import Final, overload, List |
|
|
| @export( |
| Include="Mod/Part/App/Geometry2d.h", |
| FatherInclude="Mod/Part/App/Geom2d/Geometry2dPy.h", |
| Twin="Geom2dCurve", |
| TwinPointer="Geom2dCurve", |
| PythonName="Part.Geom2d.Curve2d", |
| Constructor=True, |
| ) |
| class Curve2d(Geometry2d): |
| """ |
| The abstract class Geom2dCurve is the root class of all curve objects. |
| Author: Werner Mayer (wmayer@users.sourceforge.net) |
| Licence: LGPL |
| """ |
|
|
| Continuity: Final[str] = ... |
| """Returns the global continuity of the curve.""" |
|
|
| Closed: Final[bool] = ... |
| """Returns true if the curve is closed.""" |
|
|
| Periodic: Final[bool] = ... |
| """Returns true if the curve is periodic.""" |
|
|
| FirstParameter: Final[float] = ... |
| """Returns the value of the first parameter.""" |
|
|
| LastParameter: Final[float] = ... |
| """Returns the value of the last parameter.""" |
|
|
| def reverse(self) -> None: |
| """ |
| Changes the direction of parametrization of the curve. |
| """ |
| ... |
|
|
| @constmethod |
| def toShape(self) -> object: |
| """ |
| Return the shape for the geometry. |
| """ |
| ... |
|
|
| @overload |
| @constmethod |
| def discretize(self, *, Number: int) -> List[Vector]: ... |
| @overload |
| @constmethod |
| def discretize(self, *, QuasiNumber: int) -> List[Vector]: ... |
| @overload |
| @constmethod |
| def discretize(self, *, Distance: float) -> List[Vector]: ... |
| @overload |
| @constmethod |
| def discretize(self, *, Deflection: float) -> List[Vector]: ... |
| @overload |
| @constmethod |
| def discretize(self, *, QuasiDeflection: float) -> List[Vector]: ... |
| @overload |
| @constmethod |
| def discretize(self, *, Angular: float, Curvature: float, Minimum: int = 2) -> List[Vector]: ... |
| @constmethod |
| def discretize(self, **kwargs) -> List[Vector]: |
| """ |
| Discretizes the curve and returns a list of points. |
| The function accepts keywords as argument: |
| discretize(Number=n) => gives a list of 'n' equidistant points. |
| discretize(QuasiNumber=n) => gives a list of 'n' quasi-equidistant points (is faster than the method above). |
| discretize(Distance=d) => gives a list of equidistant points with distance 'd'. |
| discretize(Deflection=d) => gives a list of points with a maximum deflection 'd' to the curve. |
| discretize(QuasiDeflection=d) => gives a list of points with a maximum deflection 'd' to the curve (faster). |
| discretize(Angular=a,Curvature=c,[Minimum=m]) => gives a list of points with an angular deflection of 'a' |
| and a curvature deflection of 'c'. Optionally a minimum number of points |
| can be set, which by default is set to 2. |
| |
| Optionally you can set the keywords 'First' and 'Last' to define |
| a sub-range of the parameter range of the curve. |
| |
| If no keyword is given, then it depends on whether the argument is an int or float. |
| If it's an int then the behaviour is as if using the keyword 'Number', |
| if it's a float then the behaviour is as if using the keyword 'Distance'. |
| |
| Example: |
| |
| import Part |
| c=PartGeom2d.Circle2d() |
| c.Radius=5 |
| p=c.discretize(Number=50,First=3.14) |
| s=Part.Compound([Part.Vertex(i) for i in p]) |
| Part.show(s) |
| |
| |
| p=c.discretize(Angular=0.09,Curvature=0.01,Last=3.14,Minimum=100) |
| s=Part.Compound([Part.Vertex(i) for i in p]) |
| Part.show(s) |
| """ |
| ... |
|
|
| @overload |
| def length(self, /) -> float: ... |
| @overload |
| def length(self, uMin: float, /) -> float: ... |
| @overload |
| def length(self, uMin: float, uMax: float, /) -> float: ... |
| @overload |
| def length(self, uMin: float, uMax: float, Tol: float, /) -> float: ... |
| def length(self, *args: float) -> float: |
| """ |
| Computes the length of a curve |
| length([uMin,uMax,Tol]) -> Float |
| """ |
| ... |
|
|
| @overload |
| def parameterAtDistance(self, abscissa: float, /) -> float: ... |
| @overload |
| def parameterAtDistance(self, abscissa: float, startingParameter: float, /) -> float: ... |
| def parameterAtDistance(self, *args: float) -> float: |
| """ |
| Returns the parameter on the curve of a point at |
| the given distance from a starting parameter. |
| parameterAtDistance([abscissa, startingParameter]) -> Float |
| """ |
| ... |
|
|
| def value(self, u: float, /) -> Vector: |
| """ |
| Computes the point of parameter u on this curve |
| """ |
| ... |
|
|
| def tangent(self, u: float, /) -> Vector: |
| """ |
| Computes the tangent of parameter u on this curve |
| """ |
| ... |
|
|
| def parameter(self, point: Vector, /) -> float: |
| """ |
| Returns the parameter on the curve of the |
| nearest orthogonal projection of the point. |
| """ |
| ... |
|
|
| @constmethod |
| def normal(self, pos: float, /) -> Vector: |
| """ |
| Vector = normal(pos) - Get the normal vector at the given parameter [First|Last] if defined. |
| """ |
| ... |
|
|
| @constmethod |
| def curvature(self, pos: float, /) -> float: |
| """ |
| Float = curvature(pos) - Get the curvature at the given parameter [First|Last] if defined. |
| """ |
| ... |
|
|
| @constmethod |
| def centerOfCurvature(self, pos: float, /) -> Vector: |
| """ |
| Vector = centerOfCurvature(float pos) - Get the center of curvature at the given parameter [First|Last] if defined. |
| """ |
| ... |
|
|
| @constmethod |
| def intersectCC(self, other: "Curve2d", /) -> List[Vector]: |
| """ |
| Returns all intersection points between this curve and the given curve. |
| """ |
| ... |
|
|
| @overload |
| def toBSpline(self, /) -> BSplineCurve: ... |
| @overload |
| def toBSpline(self, First: float, Last: float, /) -> BSplineCurve: ... |
| def toBSpline(self, *args: float) -> BSplineCurve: |
| """ |
| Converts a curve of any type (only part from First to Last) |
| toBSpline([Float=First, Float=Last]) -> B-Spline curve |
| """ |
| ... |
|
|
| def approximateBSpline( |
| self, Tolerance: float, MaxSegments: int, MaxDegree: int, Order: str = "C2", / |
| ) -> BSplineCurve: |
| """ |
| Approximates a curve of any type to a B-Spline curve |
| approximateBSpline(Tolerance, MaxSegments, MaxDegree, [Order='C2']) -> B-Spline curve |
| """ |
| ... |
|
|