58 lines
2.6 KiB
Python
58 lines
2.6 KiB
Python
from __future__ import annotations
|
|
from typing import TYPE_CHECKING, Union, Tuple, Optional, Sequence
|
|
import numpy as np
|
|
|
|
if TYPE_CHECKING:
|
|
import numpy.typing as npt
|
|
|
|
_IntegerType = Union[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) -> Rotation: ...
|
|
@classmethod
|
|
def from_euler(cls, seq: str, angles: Union[float, npt.ArrayLike], degrees: bool = ...) -> Rotation: ...
|
|
@classmethod
|
|
def from_mrp(cls, mrp: npt.ArrayLike) -> Rotation: ...
|
|
def as_quat(self) -> np.ndarray: ...
|
|
def as_matrix(self) -> np.ndarray: ...
|
|
def as_rotvec(self) -> np.ndarray: ...
|
|
def as_euler(self, seq: 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 inv(self) -> Rotation: ...
|
|
def magnitude(self) -> Union[np.ndarray, float]: ...
|
|
def mean(self, weights: Optional[npt.ArrayLike] = ...) -> Rotation: ...
|
|
def reduce(self, left: Optional[Rotation] = ..., right: Optional[Rotation] = ...,
|
|
return_indices: bool = ...) -> Union[Rotation, Tuple[Rotation, np.ndarray, np.ndarray]]: ...
|
|
@classmethod
|
|
def create_group(cls, group: str, axis: str = ...) -> Rotation: ...
|
|
def __getitem__(self, indexer: Union[int, slice, npt.ArrayLike]) -> Rotation: ...
|
|
@classmethod
|
|
def identity(cls, num: Optional[int] = ...) -> Rotation: ...
|
|
@classmethod
|
|
def random(cls, num: Optional[int] = ...,
|
|
random_state: Optional[Union[_IntegerType,
|
|
np.random.Generator,
|
|
np.random.RandomState]] = ...) -> Rotation: ...
|
|
@classmethod
|
|
def align_vectors(cls, a: npt.ArrayLike, b: npt.ArrayLike,
|
|
weights: Optional[npt.ArrayLike] = ...,
|
|
return_sensitivity: bool = ...) -> Union[Tuple[Rotation, float], Tuple[Rotation, float, np.ndarray]]:...
|
|
|
|
class Slerp:
|
|
def __init__(self, times: npt.ArrayLike, rotations: Rotation) -> None: ...
|
|
def __call__(self, times: npt.ArrayLike) -> Rotation: ...
|