Traktor/myenv/Lib/site-packages/pygame/math.pyi
2024-05-26 05:12:46 +02:00

343 lines
11 KiB
Python

import sys
from typing import (
Any,
Generic,
Iterator,
List,
Literal,
Sequence,
Tuple,
Type,
TypeVar,
Union,
final,
overload,
Optional,
)
from typing_extensions import Protocol
if sys.version_info >= (3, 9):
from collections.abc import Collection
else:
from typing import Collection
def lerp(a: float, b: float, weight: float) -> float: ...
def clamp(value: float, min: float, max: float) -> float: ...
_TVec = TypeVar("_TVec", bound=_GenericVector)
# not implemented in code, only implemented here for ease of implementing
# typestubs. Contains attributes/methods common to Vector2 and Vector3
# Also used with _TVec generics
class _GenericVector(Collection[float]):
epsilon: float
__hash__: None # type: ignore
def __len__(self) -> int: ...
@overload
def __setitem__(self, key: int, value: float) -> None: ...
@overload
def __setitem__(self, key: slice, value: Union[Sequence[float], _TVec]) -> None: ...
@overload
def __getitem__(self, i: int) -> float: ...
@overload
def __getitem__(self, s: slice) -> List[float]: ...
def __iter__(self) -> VectorIterator: ...
def __add__(self: _TVec, other: Union[Sequence[float], _TVec]) -> _TVec: ...
def __radd__(self: _TVec, other: Union[Sequence[float], _TVec]) -> _TVec: ...
def __sub__(self: _TVec, other: Union[Sequence[float], _TVec]) -> _TVec: ...
def __rsub__(self: _TVec, other: Union[Sequence[float], _TVec]) -> _TVec: ...
@overload
def __mul__(self: _TVec, other: Union[Sequence[float], _TVec]) -> float: ...
@overload
def __mul__(self: _TVec, other: float) -> _TVec: ...
def __rmul__(self: _TVec, other: float) -> _TVec: ...
def __truediv__(self: _TVec, other: float) -> _TVec: ...
def __rtruediv__(self: _TVec, other: float) -> _TVec: ...
def __floordiv__(self: _TVec, other: float) -> _TVec: ...
def __neg__(self: _TVec) -> _TVec: ...
def __pos__(self: _TVec) -> _TVec: ...
def __bool__(self) -> bool: ...
def __iadd__(self: _TVec, other: Union[Sequence[float], _TVec]) -> _TVec: ...
def __isub__(self: _TVec, other: Union[Sequence[float], _TVec]) -> _TVec: ...
@overload
def __imul__(self: _TVec, other: Union[Sequence[float], _TVec]) -> float: ...
@overload
def __imul__(self: _TVec, other: float) -> _TVec: ...
def __copy__(self: _TVec) -> _TVec: ...
copy = __copy__
def __safe_for_unpickling__(self) -> Literal[True]: ...
def __contains__(self, other: float) -> bool: ... # type: ignore[override]
def dot(self: _TVec, other: Union[Sequence[float], _TVec]) -> float: ...
def magnitude(self) -> float: ...
def magnitude_squared(self) -> float: ...
def length(self) -> float: ...
def length_squared(self) -> float: ...
def normalize(self: _TVec) -> _TVec: ...
def normalize_ip(self) -> None: ...
def is_normalized(self) -> bool: ...
def scale_to_length(self, value: float) -> None: ...
def reflect(self: _TVec, other: Union[Sequence[float], _TVec]) -> _TVec: ...
def reflect_ip(self: _TVec, other: Union[Sequence[float], _TVec]) -> None: ...
def distance_to(self: _TVec, other: Union[Sequence[float], _TVec]) -> float: ...
def distance_squared_to(
self: _TVec, other: Union[Sequence[float], _TVec]
) -> float: ...
def lerp(
self: _TVec,
other: Union[Sequence[float], _TVec],
value: float,
) -> _TVec: ...
def slerp(
self: _TVec,
other: Union[Sequence[float], _TVec],
value: float,
) -> _TVec: ...
def elementwise(self: _TVec) -> VectorElementwiseProxy[_TVec]: ...
def angle_to(self: _TVec, other: Union[Sequence[float], _TVec]) -> float: ...
def move_towards(
self: _TVec,
target: Union[Sequence[float], _TVec],
max_distance: float,
) -> _TVec: ...
def move_towards_ip(
self: _TVec,
target: Union[Sequence[float], _TVec],
max_distance: float,
) -> None: ...
@overload
def clamp_magnitude(self: _TVec, max_length: float) -> _TVec: ...
@overload
def clamp_magnitude(
self: _TVec, min_length: float, max_length: float
) -> _TVec: ...
@overload
def clamp_magnitude_ip(self, max_length: float) -> None: ...
@overload
def clamp_magnitude_ip(self, min_length: float, max_length: float) -> None: ...
def project(self: _TVec, other: Union[Sequence[float], _TVec]) -> _TVec: ...
def __round__(self: _TVec, ndigits: Optional[int]) -> _TVec: ...
# VectorElementwiseProxy is a generic, it can be an elementwiseproxy object for
# Vector2, Vector3 and vector subclass objects
@final
class VectorElementwiseProxy(Generic[_TVec]):
def __add__(
self,
other: Union[float, _TVec, VectorElementwiseProxy[_TVec]],
) -> _TVec: ...
def __radd__(
self,
other: Union[float, _TVec, VectorElementwiseProxy[_TVec]],
) -> _TVec: ...
def __sub__(
self,
other: Union[float, _TVec, VectorElementwiseProxy[_TVec]],
) -> _TVec: ...
def __rsub__(
self,
other: Union[float, _TVec, VectorElementwiseProxy[_TVec]],
) -> _TVec: ...
def __mul__(
self,
other: Union[float, _TVec, VectorElementwiseProxy[_TVec]],
) -> _TVec: ...
def __rmul__(
self,
other: Union[float, _TVec, VectorElementwiseProxy[_TVec]],
) -> _TVec: ...
def __truediv__(
self,
other: Union[float, _TVec, VectorElementwiseProxy[_TVec]],
) -> _TVec: ...
def __rtruediv__(
self,
other: Union[float, _TVec, VectorElementwiseProxy[_TVec]],
) -> _TVec: ...
def __floordiv__(
self,
other: Union[float, _TVec, VectorElementwiseProxy[_TVec]],
) -> _TVec: ...
def __rfloordiv__(
self,
other: Union[float, _TVec, VectorElementwiseProxy[_TVec]],
) -> _TVec: ...
def __mod__(
self,
other: Union[float, _TVec, VectorElementwiseProxy[_TVec]],
) -> _TVec: ...
def __rmod__(
self,
other: Union[float, _TVec, VectorElementwiseProxy[_TVec]],
) -> _TVec: ...
def __pow__(
self,
power: Union[float, _TVec, VectorElementwiseProxy[_TVec]],
mod: None = None,
) -> _TVec: ...
def __rpow__(
self,
power: Union[float, _TVec, VectorElementwiseProxy[_TVec]],
mod: None = None,
) -> _TVec: ...
def __eq__(self, other: Any) -> bool: ...
def __ne__(self, other: Any) -> bool: ...
def __gt__(
self,
other: Union[float, _TVec, VectorElementwiseProxy[_TVec]],
) -> bool: ...
def __lt__(
self,
other: Union[float, _TVec, VectorElementwiseProxy[_TVec]],
) -> bool: ...
def __ge__(
self,
other: Union[float, _TVec, VectorElementwiseProxy[_TVec]],
) -> bool: ...
def __le__(
self,
other: Union[float, _TVec, VectorElementwiseProxy[_TVec]],
) -> bool: ...
def __abs__(self) -> _TVec: ...
def __neg__(self) -> _TVec: ...
def __pos__(self) -> _TVec: ...
def __bool__(self) -> bool: ...
@final
class VectorIterator:
def __length_hint__(self) -> int: ...
def __iter__(self) -> Iterator[float]: ...
def __next__(self) -> float: ...
# Not defined in code, only for type checking from_polar ClassObjectMethod
class _from_polar_protocol(Protocol):
def __call__(self, value: Tuple[float, float]) -> Optional[_TVec]: ...
class Vector2(_GenericVector):
x: float
y: float
xx: Vector2
xy: Vector2
yx: Vector2
yy: Vector2
from_polar: _from_polar_protocol
@overload
def __init__(
self: _TVec,
x: Union[str, float, Sequence[float], _TVec] = 0,
) -> None: ...
@overload
def __init__(self, x: float, y: float) -> None: ...
def __reduce__(self: _TVec) -> Tuple[Type[_TVec], Tuple[float, float]]: ...
def rotate(self: _TVec, angle: float) -> _TVec: ...
def rotate_rad(self: _TVec, angle: float) -> _TVec: ...
def rotate_ip(self, angle: float) -> None: ...
def rotate_rad_ip(self, angle: float) -> None: ...
def rotate_ip_rad(self, angle: float) -> None: ...
def cross(self: _TVec, other: Union[Sequence[float], _TVec]) -> float: ...
def as_polar(self) -> Tuple[float, float]: ...
@overload
def update(
self: _TVec,
x: Union[str, float, Sequence[float], _TVec] = 0,
) -> None: ...
@overload
def update(self, x: float = 0, y: float = 0) -> None: ...
# Not defined in code, only for type checking from_spherical ClassObjectMethod
class _from_spherical_protocol(Protocol):
def __call__(self, value: Tuple[float, float, float]) -> Optional[_TVec]: ...
class Vector3(_GenericVector):
x: float
y: float
z: float
xx: Vector2
xy: Vector2
xz: Vector2
yx: Vector2
yy: Vector2
yz: Vector2
zx: Vector2
zy: Vector2
zz: Vector2
xxx: Vector3
xxy: Vector3
xxz: Vector3
xyx: Vector3
xyy: Vector3
xyz: Vector3
xzx: Vector3
xzy: Vector3
xzz: Vector3
yxx: Vector3
yxy: Vector3
yxz: Vector3
yyx: Vector3
yyy: Vector3
yyz: Vector3
yzx: Vector3
yzy: Vector3
yzz: Vector3
zxx: Vector3
zxy: Vector3
zxz: Vector3
zyx: Vector3
zyy: Vector3
zyz: Vector3
zzx: Vector3
zzy: Vector3
zzz: Vector3
from_spherical: _from_spherical_protocol
@overload
def __init__(
self: _TVec,
x: Union[str, float, Sequence[float], _TVec] = 0,
) -> None: ...
@overload
def __init__(self, x: float, y: float, z: float) -> None: ...
def __reduce__(self: _TVec) -> Tuple[Type[_TVec], Tuple[float, float, float]]: ...
def cross(self: _TVec, other: Union[Sequence[float], _TVec]) -> _TVec: ...
def rotate(
self: _TVec, angle: float, axis: Union[Sequence[float], _TVec]
) -> _TVec: ...
def rotate_rad(
self: _TVec, angle: float, axis: Union[Sequence[float], _TVec]
) -> _TVec: ...
def rotate_ip(
self: _TVec, angle: float, axis: Union[Sequence[float], _TVec]
) -> None: ...
def rotate_rad_ip(
self: _TVec, angle: float, axis: Union[Sequence[float], _TVec]
) -> None: ...
def rotate_ip_rad(
self: _TVec, angle: float, axis: Union[Sequence[float], _TVec]
) -> None: ...
def rotate_x(self: _TVec, angle: float) -> _TVec: ...
def rotate_x_rad(self: _TVec, angle: float) -> _TVec: ...
def rotate_x_ip(self, angle: float) -> None: ...
def rotate_x_rad_ip(self, angle: float) -> None: ...
def rotate_x_ip_rad(self, angle: float) -> None: ...
def rotate_y(self: _TVec, angle: float) -> _TVec: ...
def rotate_y_rad(self: _TVec, angle: float) -> _TVec: ...
def rotate_y_ip(self, angle: float) -> None: ...
def rotate_y_rad_ip(self, angle: float) -> None: ...
def rotate_y_ip_rad(self, angle: float) -> None: ...
def rotate_z(self: _TVec, angle: float) -> _TVec: ...
def rotate_z_rad(self: _TVec, angle: float) -> _TVec: ...
def rotate_z_ip(self, angle: float) -> None: ...
def rotate_z_rad_ip(self, angle: float) -> None: ...
def rotate_z_ip_rad(self, angle: float) -> None: ...
def as_spherical(self) -> Tuple[float, float, float]: ...
@overload
def update(
self: _TVec,
x: Union[str, float, Sequence[float], _TVec] = 0,
) -> None: ...
@overload
def update(self, x: int, y: int, z: int) -> None: ...
# typehints for deprecated functions, to be removed in a future version
def enable_swizzling() -> None: ...
def disable_swizzling() -> None: ...