You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			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]) -> Path: ...
 | 
						|
    def deepcopy(self, memo: dict[int, Any] | None = None) -> Path: ...
 | 
						|
 | 
						|
    @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: ...
 |