141 lines
4.7 KiB
Python
141 lines
4.7 KiB
Python
from .bezier import BezierSegment
|
|
from .transforms import Affine2D, Transform, Bbox
|
|
from collections.abc import Generator, Iterable, Sequence
|
|
|
|
import numpy as np
|
|
from numpy.typing import ArrayLike
|
|
|
|
from typing import Any, overload
|
|
|
|
class Path:
|
|
code_type: type[np.uint8]
|
|
STOP: np.uint8
|
|
MOVETO: np.uint8
|
|
LINETO: np.uint8
|
|
CURVE3: np.uint8
|
|
CURVE4: np.uint8
|
|
CLOSEPOLY: np.uint8
|
|
NUM_VERTICES_FOR_CODE: dict[np.uint8, int]
|
|
|
|
def __init__(
|
|
self,
|
|
vertices: ArrayLike,
|
|
codes: ArrayLike | None = ...,
|
|
_interpolation_steps: int = ...,
|
|
closed: bool = ...,
|
|
readonly: bool = ...,
|
|
) -> None: ...
|
|
@property
|
|
def vertices(self) -> ArrayLike: ...
|
|
@vertices.setter
|
|
def vertices(self, vertices: ArrayLike) -> None: ...
|
|
@property
|
|
def codes(self) -> ArrayLike | None: ...
|
|
@codes.setter
|
|
def codes(self, codes: ArrayLike) -> None: ...
|
|
@property
|
|
def simplify_threshold(self) -> float: ...
|
|
@simplify_threshold.setter
|
|
def simplify_threshold(self, threshold: float) -> None: ...
|
|
@property
|
|
def should_simplify(self) -> bool: ...
|
|
@should_simplify.setter
|
|
def should_simplify(self, should_simplify: bool) -> None: ...
|
|
@property
|
|
def readonly(self) -> bool: ...
|
|
def copy(self) -> Path: ...
|
|
def __deepcopy__(self, memo: dict[int, Any] | None = ...) -> Path: ...
|
|
deepcopy = __deepcopy__
|
|
|
|
@classmethod
|
|
def make_compound_path_from_polys(cls, XY: ArrayLike) -> Path: ...
|
|
@classmethod
|
|
def make_compound_path(cls, *args: Path) -> Path: ...
|
|
def __len__(self) -> int: ...
|
|
def iter_segments(
|
|
self,
|
|
transform: Transform | None = ...,
|
|
remove_nans: bool = ...,
|
|
clip: tuple[float, float, float, float] | None = ...,
|
|
snap: bool | None = ...,
|
|
stroke_width: float = ...,
|
|
simplify: bool | None = ...,
|
|
curves: bool = ...,
|
|
sketch: tuple[float, float, float] | None = ...,
|
|
) -> Generator[tuple[np.ndarray, np.uint8], None, None]: ...
|
|
def iter_bezier(self, **kwargs) -> Generator[BezierSegment, None, None]: ...
|
|
def cleaned(
|
|
self,
|
|
transform: Transform | None = ...,
|
|
remove_nans: bool = ...,
|
|
clip: tuple[float, float, float, float] | None = ...,
|
|
*,
|
|
simplify: bool | None = ...,
|
|
curves: bool = ...,
|
|
stroke_width: float = ...,
|
|
snap: bool | None = ...,
|
|
sketch: tuple[float, float, float] | None = ...
|
|
) -> Path: ...
|
|
def transformed(self, transform: Transform) -> Path: ...
|
|
def contains_point(
|
|
self,
|
|
point: tuple[float, float],
|
|
transform: Transform | None = ...,
|
|
radius: float = ...,
|
|
) -> bool: ...
|
|
def contains_points(
|
|
self, points: ArrayLike, transform: Transform | None = ..., radius: float = ...
|
|
) -> np.ndarray: ...
|
|
def contains_path(self, path: Path, transform: Transform | None = ...) -> bool: ...
|
|
def get_extents(self, transform: Transform | None = ..., **kwargs) -> Bbox: ...
|
|
def intersects_path(self, other: Path, filled: bool = ...) -> bool: ...
|
|
def intersects_bbox(self, bbox: Bbox, filled: bool = ...) -> bool: ...
|
|
def interpolated(self, steps: int) -> Path: ...
|
|
def to_polygons(
|
|
self,
|
|
transform: Transform | None = ...,
|
|
width: float = ...,
|
|
height: float = ...,
|
|
closed_only: bool = ...,
|
|
) -> list[ArrayLike]: ...
|
|
@classmethod
|
|
def unit_rectangle(cls) -> Path: ...
|
|
@classmethod
|
|
def unit_regular_polygon(cls, numVertices: int) -> Path: ...
|
|
@classmethod
|
|
def unit_regular_star(cls, numVertices: int, innerCircle: float = ...) -> Path: ...
|
|
@classmethod
|
|
def unit_regular_asterisk(cls, numVertices: int) -> Path: ...
|
|
@classmethod
|
|
def unit_circle(cls) -> Path: ...
|
|
@classmethod
|
|
def circle(
|
|
cls,
|
|
center: tuple[float, float] = ...,
|
|
radius: float = ...,
|
|
readonly: bool = ...,
|
|
) -> Path: ...
|
|
@classmethod
|
|
def unit_circle_righthalf(cls) -> Path: ...
|
|
@classmethod
|
|
def arc(
|
|
cls, theta1: float, theta2: float, n: int | None = ..., is_wedge: bool = ...
|
|
) -> Path: ...
|
|
@classmethod
|
|
def wedge(cls, theta1: float, theta2: float, n: int | None = ...) -> Path: ...
|
|
@overload
|
|
@staticmethod
|
|
def hatch(hatchpattern: str, density: float = ...) -> Path: ...
|
|
@overload
|
|
@staticmethod
|
|
def hatch(hatchpattern: None, density: float = ...) -> None: ...
|
|
def clip_to_bbox(self, bbox: Bbox, inside: bool = ...) -> Path: ...
|
|
|
|
def get_path_collection_extents(
|
|
master_transform: Transform,
|
|
paths: Sequence[Path],
|
|
transforms: Iterable[Affine2D],
|
|
offsets: ArrayLike,
|
|
offset_transform: Affine2D,
|
|
) -> Bbox: ...
|