66 lines
3.0 KiB
Python
66 lines
3.0 KiB
Python
from __future__ import annotations
|
|
from typing import TYPE_CHECKING
|
|
from collections.abc import Sequence
|
|
import numpy as np
|
|
|
|
if TYPE_CHECKING:
|
|
import numpy.typing as npt
|
|
|
|
_IntegerType = int | np.integer
|
|
|
|
|
|
class Rotation:
|
|
def __init__(self, quat: npt.ArrayLike, normalize: bool = ..., copy: bool = ...) -> None: ...
|
|
@property
|
|
def single(self) -> bool: ...
|
|
def __len__(self) -> int: ...
|
|
@classmethod
|
|
def from_quat(cls, quat: npt.ArrayLike) -> Rotation: ...
|
|
@classmethod
|
|
def from_matrix(cls, matrix: npt.ArrayLike) -> Rotation: ...
|
|
@classmethod
|
|
def from_rotvec(cls, rotvec: npt.ArrayLike, degrees: bool = ...) -> Rotation: ...
|
|
@classmethod
|
|
def from_euler(cls, seq: str, angles: float | npt.ArrayLike, degrees: bool = ...) -> Rotation: ...
|
|
@classmethod
|
|
def from_davenport(cls, axes: npt.ArrayLike, order: str, angles: float | npt.ArrayLike, degrees: bool = ...) -> Rotation: ...
|
|
@classmethod
|
|
def from_mrp(cls, mrp: npt.ArrayLike) -> Rotation: ...
|
|
def as_quat(self, canonical: bool) -> np.ndarray: ...
|
|
def as_matrix(self) -> np.ndarray: ...
|
|
def as_rotvec(self, degrees: bool = ...) -> np.ndarray: ...
|
|
def as_euler(self, seq: str, degrees: bool = ...) -> np.ndarray: ...
|
|
def as_davenport(self, axes: npt.ArrayLike, order: str, degrees: bool = ...) -> np.ndarray: ...
|
|
def as_mrp(self) -> np.ndarray: ...
|
|
@classmethod
|
|
def concatenate(cls, rotations: Sequence[Rotation]) -> Rotation: ...
|
|
def apply(self, vectors: npt.ArrayLike, inverse: bool = ...) -> np.ndarray: ...
|
|
def __mul__(self, other: Rotation) -> Rotation: ...
|
|
def __pow__(self, n: float, modulus: int | None) -> Rotation: ...
|
|
def inv(self) -> Rotation: ...
|
|
def magnitude(self) -> np.ndarray | float: ...
|
|
def approx_equal(self, other: Rotation, atol: float | None, degrees: bool = ...) -> np.ndarray | bool: ...
|
|
def mean(self, weights: npt.ArrayLike | None = ...) -> Rotation: ...
|
|
def reduce(self, left: Rotation | None = ..., right: Rotation | None = ...,
|
|
return_indices: bool = ...) -> Rotation | tuple[Rotation, np.ndarray, np.ndarray]: ...
|
|
@classmethod
|
|
def create_group(cls, group: str, axis: str = ...) -> Rotation: ...
|
|
def __getitem__(self, indexer: int | slice | npt.ArrayLike) -> Rotation: ...
|
|
@classmethod
|
|
def identity(cls, num: int | None = ...) -> Rotation: ...
|
|
@classmethod
|
|
def random(cls, num: int | None = ...,
|
|
random_state: _IntegerType | np.random.Generator | np.random.RandomState | None = ...) -> Rotation: ...
|
|
@classmethod
|
|
def align_vectors(cls, a: npt.ArrayLike, b: npt.ArrayLike,
|
|
weights: npt.ArrayLike | None = ...,
|
|
return_sensitivity: bool = ...) -> tuple[Rotation, float] | tuple[Rotation, float, np.ndarray]:...
|
|
|
|
class Slerp:
|
|
times: np.ndarray
|
|
timedelta: np.ndarray
|
|
rotations: Rotation
|
|
rotvecs: np.ndarray
|
|
def __init__(self, times: npt.ArrayLike, rotations: Rotation) -> None: ...
|
|
def __call__(self, times: npt.ArrayLike) -> Rotation: ...
|