import usdrt.Gf._Gf
import typing

__all__ = [
    "CompDiv",
    "CompMult",
    "Cross",
    "DegreesToRadians",
    "Dot",
    "GetComplement",
    "GetLength",
    "GetNormalized",
    "GetProjection",
    "IsClose",
    "Lerp",
    "Lerpf",
    "Matrix3d",
    "Matrix3f",
    "Matrix4d",
    "Matrix4f",
    "Max",
    "Min",
    "Normalize",
    "Quatd",
    "Quatf",
    "Quath",
    "RadiansToDegrees",
    "Range1d",
    "Range1f",
    "Range2d",
    "Range2f",
    "Range3d",
    "Range3f",
    "Rect2i",
    "Slerp",
    "Vec2d",
    "Vec2f",
    "Vec2h",
    "Vec2i",
    "Vec3d",
    "Vec3f",
    "Vec3h",
    "Vec3i",
    "Vec4d",
    "Vec4f",
    "Vec4h",
    "Vec4i"
]


class Matrix3d():
    def GetArrayItem(self, arg0: int) -> float: ...
    def GetColumn(self, arg0: int) -> Vec3d: ...
    def GetDeterminant(self) -> float: ...
    def GetHandedness(self) -> int: ...
    def GetInverse(self) -> Matrix3d: ...
    def GetOrthonormalized(self) -> Matrix3d: ...
    def GetRow(self, arg0: int) -> Vec3d: ...
    def GetTranspose(self) -> Matrix3d: ...
    def IsLeftHanded(self) -> bool: ...
    def IsRightHanded(self) -> bool: ...
    def Orthonormalize(self) -> bool: ...
    def Set(self, arg0: float, arg1: float, arg2: float, arg3: float, arg4: float, arg5: float, arg6: float, arg7: float, arg8: float) -> Matrix3d: ...
    def SetArrayItem(self, arg0: int, arg1: float) -> None: ...
    def SetColumn(self, arg0: int, arg1: Vec3d) -> None: ...
    @typing.overload
    def SetDiagonal(self, arg0: Vec3d) -> Matrix3d: ...
    @typing.overload
    def SetDiagonal(self, arg0: float) -> Matrix3d: ...
    def SetIdentity(self) -> Matrix3d: ...
    def SetRow(self, arg0: int, arg1: Vec3d) -> None: ...
    def SetZero(self) -> Matrix3d: ...
    def __add__(self, arg0: Matrix3d) -> Matrix3d: ...
    def __contains__(self, arg0: float) -> bool: ...
    def __copy__(self) -> Matrix3d: ...
    def __deepcopy__(self, memo: dict) -> Matrix3d: ...
    @staticmethod
    @typing.overload
    def __eq__(*args, **kwargs) -> typing.Any: ...
    @typing.overload
    def __eq__(self, arg0: Matrix3d) -> bool: ...
    @typing.overload
    def __getitem__(self, arg0: int) -> Vec3d: ...
    @typing.overload
    def __getitem__(self, arg0: tuple) -> float: ...
    def __iadd__(self, arg0: Matrix3d) -> Matrix3d: ...
    def __imul__(self, arg0: float) -> Matrix3d: ...
    @staticmethod
    @typing.overload
    def __init__(*args, **kwargs) -> typing.Any: ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, arg0: Matrix3d) -> None: ...
    @typing.overload
    def __init__(self, arg0: Vec3d) -> None: ...
    @typing.overload
    def __init__(self, arg0: buffer) -> None: ...
    @typing.overload
    def __init__(self, arg0: float) -> None: ...
    @typing.overload
    def __init__(self, arg0: float, arg1: float, arg2: float, arg3: float, arg4: float, arg5: float, arg6: float, arg7: float, arg8: float) -> None: ...
    def __isub__(self, arg0: Matrix3d) -> Matrix3d: ...
    def __len__(self) -> int: ...
    @typing.overload
    def __mul__(self, arg0: Matrix3d) -> Matrix3d: ...
    @typing.overload
    def __mul__(self, arg0: Vec3d) -> Vec3d: ...
    @typing.overload
    def __mul__(self, arg0: Vec3f) -> Vec3f: ...
    @typing.overload
    def __mul__(self, arg0: float) -> Matrix3d: ...
    @staticmethod
    @typing.overload
    def __ne__(*args, **kwargs) -> typing.Any: ...
    @typing.overload
    def __ne__(self, arg0: Matrix3d) -> bool: ...
    def __neg__(self) -> Matrix3d: ...
    def __repr__(self) -> str: ...
    @typing.overload
    def __rmul__(self, arg0: Vec3d) -> Vec3d: ...
    @typing.overload
    def __rmul__(self, arg0: Vec3f) -> Vec3f: ...
    @typing.overload
    def __rmul__(self, arg0: float) -> Matrix3d: ...
    @typing.overload
    def __setitem__(self, arg0: int, arg1: Vec3d) -> None: ...
    @typing.overload
    def __setitem__(self, arg0: tuple, arg1: float) -> None: ...
    def __str__(self) -> str: ...
    def __sub__(self, arg0: Matrix3d) -> Matrix3d: ...
    def __truediv__(self, arg0: Matrix3d) -> Matrix3d: ...
    __hash__ = None
    dimension = (3, 3)
    pass
class Matrix3f():
    def GetArrayItem(self, arg0: int) -> float: ...
    def GetColumn(self, arg0: int) -> Vec3f: ...
    def GetDeterminant(self) -> float: ...
    def GetHandedness(self) -> int: ...
    def GetInverse(self) -> Matrix3f: ...
    def GetOrthonormalized(self) -> Matrix3f: ...
    def GetRow(self, arg0: int) -> Vec3f: ...
    def GetTranspose(self) -> Matrix3f: ...
    def IsLeftHanded(self) -> bool: ...
    def IsRightHanded(self) -> bool: ...
    def Orthonormalize(self) -> bool: ...
    def Set(self, arg0: float, arg1: float, arg2: float, arg3: float, arg4: float, arg5: float, arg6: float, arg7: float, arg8: float) -> Matrix3f: ...
    def SetArrayItem(self, arg0: int, arg1: float) -> None: ...
    def SetColumn(self, arg0: int, arg1: Vec3f) -> None: ...
    @typing.overload
    def SetDiagonal(self, arg0: Vec3f) -> Matrix3f: ...
    @typing.overload
    def SetDiagonal(self, arg0: float) -> Matrix3f: ...
    def SetIdentity(self) -> Matrix3f: ...
    def SetRow(self, arg0: int, arg1: Vec3f) -> None: ...
    def SetZero(self) -> Matrix3f: ...
    def __add__(self, arg0: Matrix3f) -> Matrix3f: ...
    def __contains__(self, arg0: float) -> bool: ...
    def __copy__(self) -> Matrix3f: ...
    def __deepcopy__(self, memo: dict) -> Matrix3f: ...
    @typing.overload
    def __eq__(self, arg0: Matrix3d) -> bool: ...
    @typing.overload
    def __eq__(self, arg0: Matrix3f) -> bool: ...
    @typing.overload
    def __getitem__(self, arg0: int) -> Vec3f: ...
    @typing.overload
    def __getitem__(self, arg0: tuple) -> float: ...
    def __iadd__(self, arg0: Matrix3f) -> Matrix3f: ...
    def __imul__(self, arg0: float) -> Matrix3f: ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, arg0: Matrix3d) -> None: ...
    @typing.overload
    def __init__(self, arg0: Matrix3f) -> None: ...
    @typing.overload
    def __init__(self, arg0: Vec3f) -> None: ...
    @typing.overload
    def __init__(self, arg0: buffer) -> None: ...
    @typing.overload
    def __init__(self, arg0: float) -> None: ...
    @typing.overload
    def __init__(self, arg0: float, arg1: float, arg2: float, arg3: float, arg4: float, arg5: float, arg6: float, arg7: float, arg8: float) -> None: ...
    def __isub__(self, arg0: Matrix3f) -> Matrix3f: ...
    def __len__(self) -> int: ...
    @typing.overload
    def __mul__(self, arg0: Matrix3f) -> Matrix3f: ...
    @typing.overload
    def __mul__(self, arg0: Vec3f) -> Vec3f: ...
    @typing.overload
    def __mul__(self, arg0: float) -> Matrix3f: ...
    @typing.overload
    def __ne__(self, arg0: Matrix3d) -> bool: ...
    @typing.overload
    def __ne__(self, arg0: Matrix3f) -> bool: ...
    def __neg__(self) -> Matrix3f: ...
    def __repr__(self) -> str: ...
    @typing.overload
    def __rmul__(self, arg0: Vec3f) -> Vec3f: ...
    @typing.overload
    def __rmul__(self, arg0: float) -> Matrix3f: ...
    @typing.overload
    def __setitem__(self, arg0: int, arg1: Vec3f) -> None: ...
    @typing.overload
    def __setitem__(self, arg0: tuple, arg1: float) -> None: ...
    def __str__(self) -> str: ...
    def __sub__(self, arg0: Matrix3f) -> Matrix3f: ...
    def __truediv__(self, arg0: Matrix3f) -> Matrix3f: ...
    __hash__ = None
    dimension = (3, 3)
    pass
class Matrix4d():
    @staticmethod
    def ExtractRotation(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def ExtractRotationMatrix(*args, **kwargs) -> typing.Any: ...
    def ExtractTranslation(self) -> Vec3d: ...
    def GetArrayItem(self, arg0: int) -> float: ...
    def GetColumn(self, arg0: int) -> Vec4d: ...
    def GetDeterminant(self) -> float: ...
    def GetDeterminant3(self) -> float: ...
    def GetHandedness(self) -> int: ...
    def GetInverse(self) -> Matrix4d: ...
    def GetOrthonormalized(self) -> Matrix4d: ...
    def GetRow(self, arg0: int) -> Vec4d: ...
    def GetRow3(self, arg0: int) -> Vec3d: ...
    def GetTranspose(self) -> Matrix4d: ...
    def IsLeftHanded(self) -> bool: ...
    def IsRightHanded(self) -> bool: ...
    def Orthonormalize(self) -> bool: ...
    def RemoveScaleShear(self) -> Matrix4d: ...
    def Set(self, arg0: float, arg1: float, arg2: float, arg3: float, arg4: float, arg5: float, arg6: float, arg7: float, arg8: float, arg9: float, arg10: float, arg11: float, arg12: float, arg13: float, arg14: float, arg15: float) -> Matrix4d: ...
    def SetArrayItem(self, arg0: int, arg1: float) -> None: ...
    def SetColumn(self, arg0: int, arg1: Vec4d) -> None: ...
    @typing.overload
    def SetDiagonal(self, arg0: Vec4d) -> Matrix4d: ...
    @typing.overload
    def SetDiagonal(self, arg0: float) -> Matrix4d: ...
    def SetIdentity(self) -> Matrix4d: ...
    def SetLookAt(self, arg0: Vec3d, arg1: Vec3d, arg2: Vec3d) -> Matrix4d: ...
    @staticmethod
    def SetRotate(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def SetRotateOnly(*args, **kwargs) -> typing.Any: ...
    def SetRow(self, arg0: int, arg1: Vec4d) -> None: ...
    def SetRow3(self, arg0: int, arg1: Vec3d) -> None: ...
    @typing.overload
    def SetScale(self, arg0: Vec3d) -> Matrix4d: ...
    @typing.overload
    def SetScale(self, arg0: float) -> Matrix4d: ...
    def SetTranslate(self, arg0: Vec3d) -> Matrix4d: ...
    def SetTranslateOnly(self, arg0: Vec3d) -> Matrix4d: ...
    def SetZero(self) -> Matrix4d: ...
    @typing.overload
    def Transform(self, arg0: Vec3d) -> Vec3d: ...
    @typing.overload
    def Transform(self, arg0: Vec3f) -> Vec3f: ...
    @typing.overload
    def TransformAffine(self, arg0: Vec3d) -> Vec3d: ...
    @typing.overload
    def TransformAffine(self, arg0: Vec3f) -> Vec3f: ...
    @typing.overload
    def TransformDir(self, arg0: Vec3d) -> Vec3d: ...
    @typing.overload
    def TransformDir(self, arg0: Vec3f) -> Vec3f: ...
    def __add__(self, arg0: Matrix4d) -> Matrix4d: ...
    def __contains__(self, arg0: float) -> bool: ...
    def __copy__(self) -> Matrix4d: ...
    def __deepcopy__(self, memo: dict) -> Matrix4d: ...
    @staticmethod
    @typing.overload
    def __eq__(*args, **kwargs) -> typing.Any: ...
    @typing.overload
    def __eq__(self, arg0: Matrix4d) -> bool: ...
    @typing.overload
    def __getitem__(self, arg0: int) -> Vec4d: ...
    @typing.overload
    def __getitem__(self, arg0: tuple) -> float: ...
    def __iadd__(self, arg0: Matrix4d) -> Matrix4d: ...
    def __imul__(self, arg0: float) -> Matrix4d: ...
    @staticmethod
    @typing.overload
    def __init__(*args, **kwargs) -> typing.Any: ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, arg0: Matrix4d) -> None: ...
    @typing.overload
    def __init__(self, arg0: Vec4d) -> None: ...
    @typing.overload
    def __init__(self, arg0: buffer) -> None: ...
    @typing.overload
    def __init__(self, arg0: float) -> None: ...
    @typing.overload
    def __init__(self, arg0: float, arg1: float, arg2: float, arg3: float, arg4: float, arg5: float, arg6: float, arg7: float, arg8: float, arg9: float, arg10: float, arg11: float, arg12: float, arg13: float, arg14: float, arg15: float) -> None: ...
    def __isub__(self, arg0: Matrix4d) -> Matrix4d: ...
    def __len__(self) -> int: ...
    @typing.overload
    def __mul__(self, arg0: Matrix4d) -> Matrix4d: ...
    @typing.overload
    def __mul__(self, arg0: Vec4d) -> Vec4d: ...
    @typing.overload
    def __mul__(self, arg0: Vec4f) -> Vec4f: ...
    @typing.overload
    def __mul__(self, arg0: float) -> Matrix4d: ...
    @staticmethod
    @typing.overload
    def __ne__(*args, **kwargs) -> typing.Any: ...
    @typing.overload
    def __ne__(self, arg0: Matrix4d) -> bool: ...
    def __neg__(self) -> Matrix4d: ...
    def __repr__(self) -> str: ...
    @typing.overload
    def __rmul__(self, arg0: Vec4d) -> Vec4d: ...
    @typing.overload
    def __rmul__(self, arg0: Vec4f) -> Vec4f: ...
    @typing.overload
    def __rmul__(self, arg0: float) -> Matrix4d: ...
    @typing.overload
    def __setitem__(self, arg0: int, arg1: Vec4d) -> None: ...
    @typing.overload
    def __setitem__(self, arg0: tuple, arg1: float) -> None: ...
    def __str__(self) -> str: ...
    def __sub__(self, arg0: Matrix4d) -> Matrix4d: ...
    def __truediv__(self, arg0: Matrix4d) -> Matrix4d: ...
    __hash__ = None
    dimension = (4, 4)
    pass
class Matrix4f():
    @staticmethod
    def ExtractRotation(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def ExtractRotationMatrix(*args, **kwargs) -> typing.Any: ...
    def ExtractTranslation(self) -> Vec3f: ...
    def GetArrayItem(self, arg0: int) -> float: ...
    def GetColumn(self, arg0: int) -> Vec4f: ...
    def GetDeterminant(self) -> float: ...
    def GetDeterminant3(self) -> float: ...
    def GetHandedness(self) -> int: ...
    def GetInverse(self) -> Matrix4f: ...
    def GetOrthonormalized(self) -> Matrix4f: ...
    def GetRow(self, arg0: int) -> Vec4f: ...
    def GetRow3(self, arg0: int) -> Vec3f: ...
    def GetTranspose(self) -> Matrix4f: ...
    def IsLeftHanded(self) -> bool: ...
    def IsRightHanded(self) -> bool: ...
    def Orthonormalize(self) -> bool: ...
    def RemoveScaleShear(self) -> Matrix4f: ...
    def Set(self, arg0: float, arg1: float, arg2: float, arg3: float, arg4: float, arg5: float, arg6: float, arg7: float, arg8: float, arg9: float, arg10: float, arg11: float, arg12: float, arg13: float, arg14: float, arg15: float) -> Matrix4f: ...
    def SetArrayItem(self, arg0: int, arg1: float) -> None: ...
    def SetColumn(self, arg0: int, arg1: Vec4f) -> None: ...
    @typing.overload
    def SetDiagonal(self, arg0: Vec4f) -> Matrix4f: ...
    @typing.overload
    def SetDiagonal(self, arg0: float) -> Matrix4f: ...
    def SetIdentity(self) -> Matrix4f: ...
    def SetLookAt(self, arg0: Vec3f, arg1: Vec3f, arg2: Vec3f) -> Matrix4f: ...
    @staticmethod
    def SetRotate(*args, **kwargs) -> typing.Any: ...
    @staticmethod
    def SetRotateOnly(*args, **kwargs) -> typing.Any: ...
    def SetRow(self, arg0: int, arg1: Vec4f) -> None: ...
    def SetRow3(self, arg0: int, arg1: Vec3f) -> None: ...
    @typing.overload
    def SetScale(self, arg0: Vec3f) -> Matrix4f: ...
    @typing.overload
    def SetScale(self, arg0: float) -> Matrix4f: ...
    def SetTranslate(self, arg0: Vec3f) -> Matrix4f: ...
    def SetTranslateOnly(self, arg0: Vec3f) -> Matrix4f: ...
    def SetZero(self) -> Matrix4f: ...
    @typing.overload
    def Transform(self, arg0: Vec3d) -> Vec3d: ...
    @typing.overload
    def Transform(self, arg0: Vec3f) -> Vec3f: ...
    @typing.overload
    def TransformAffine(self, arg0: Vec3d) -> Vec3d: ...
    @typing.overload
    def TransformAffine(self, arg0: Vec3f) -> Vec3f: ...
    @typing.overload
    def TransformDir(self, arg0: Vec3d) -> Vec3d: ...
    @typing.overload
    def TransformDir(self, arg0: Vec3f) -> Vec3f: ...
    def __add__(self, arg0: Matrix4f) -> Matrix4f: ...
    def __contains__(self, arg0: float) -> bool: ...
    def __copy__(self) -> Matrix4f: ...
    def __deepcopy__(self, memo: dict) -> Matrix4f: ...
    @typing.overload
    def __eq__(self, arg0: Matrix4d) -> bool: ...
    @typing.overload
    def __eq__(self, arg0: Matrix4f) -> bool: ...
    @typing.overload
    def __getitem__(self, arg0: int) -> Vec4f: ...
    @typing.overload
    def __getitem__(self, arg0: tuple) -> float: ...
    def __iadd__(self, arg0: Matrix4f) -> Matrix4f: ...
    def __imul__(self, arg0: float) -> Matrix4f: ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, arg0: Matrix4d) -> None: ...
    @typing.overload
    def __init__(self, arg0: Matrix4f) -> None: ...
    @typing.overload
    def __init__(self, arg0: Vec4f) -> None: ...
    @typing.overload
    def __init__(self, arg0: buffer) -> None: ...
    @typing.overload
    def __init__(self, arg0: float) -> None: ...
    @typing.overload
    def __init__(self, arg0: float, arg1: float, arg2: float, arg3: float, arg4: float, arg5: float, arg6: float, arg7: float, arg8: float, arg9: float, arg10: float, arg11: float, arg12: float, arg13: float, arg14: float, arg15: float) -> None: ...
    def __isub__(self, arg0: Matrix4f) -> Matrix4f: ...
    def __len__(self) -> int: ...
    @typing.overload
    def __mul__(self, arg0: Matrix4f) -> Matrix4f: ...
    @typing.overload
    def __mul__(self, arg0: Vec4f) -> Vec4f: ...
    @typing.overload
    def __mul__(self, arg0: float) -> Matrix4f: ...
    @typing.overload
    def __ne__(self, arg0: Matrix4d) -> bool: ...
    @typing.overload
    def __ne__(self, arg0: Matrix4f) -> bool: ...
    def __neg__(self) -> Matrix4f: ...
    def __repr__(self) -> str: ...
    @typing.overload
    def __rmul__(self, arg0: Vec4f) -> Vec4f: ...
    @typing.overload
    def __rmul__(self, arg0: float) -> Matrix4f: ...
    @typing.overload
    def __setitem__(self, arg0: int, arg1: Vec4f) -> None: ...
    @typing.overload
    def __setitem__(self, arg0: tuple, arg1: float) -> None: ...
    def __str__(self) -> str: ...
    def __sub__(self, arg0: Matrix4f) -> Matrix4f: ...
    def __truediv__(self, arg0: Matrix4f) -> Matrix4f: ...
    __hash__ = None
    dimension = (4, 4)
    pass
class Quatd():
    def Dot(self, arg0: Quatd) -> float: ...
    def GetConjugate(self) -> Quatd: ...
    @staticmethod
    def GetIdentity() -> Quatd: ...
    def GetImaginary(self) -> Vec3d: ...
    def GetInverse(self) -> Quatd: ...
    def GetLength(self) -> float: ...
    def GetLengthSq(self) -> float: ...
    def GetNormalized(self) -> Quatd: ...
    def GetReal(self) -> float: ...
    def Normalize(self) -> float: ...
    @typing.overload
    def SetImaginary(self, i: float, j: float, k: float) -> None: ...
    @typing.overload
    def SetImaginary(self, imaginary: Vec3d) -> None: ...
    def SetReal(self, real: float) -> None: ...
    def Transform(self, point: Vec3d) -> Vec3d: ...
    def __add__(self, arg0: Quatd) -> Quatd: ...
    def __copy__(self) -> Quatd: ...
    def __deepcopy__(self, memo: dict) -> Quatd: ...
    def __eq__(self, arg0: Quatd) -> bool: ...
    @typing.overload
    def __getitem__(self, arg0: int) -> float: ...
    @typing.overload
    def __getitem__(self, arg0: slice) -> typing.List[float]: ...
    def __iadd__(self, arg0: Quatd) -> Quatd: ...
    @typing.overload
    def __imul__(self, arg0: Quatd) -> Quatd: ...
    @typing.overload
    def __imul__(self, arg0: float) -> Quatd: ...
    @staticmethod
    @typing.overload
    def __init__(*args, **kwargs) -> typing.Any: ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, arg0: Quatd) -> None: ...
    @typing.overload
    def __init__(self, arg0: buffer) -> None: ...
    @typing.overload
    def __init__(self, arg0: float) -> None: ...
    @typing.overload
    def __init__(self, arg0: float, arg1: Vec3d) -> None: ...
    @typing.overload
    def __init__(self, arg0: float, arg1: float, arg2: float, arg3: float) -> None: ...
    @typing.overload
    def __init__(self, arg0: float, arg1: typing.Tuple[float, float, float]) -> None: ...
    def __isub__(self, arg0: Quatd) -> Quatd: ...
    def __itruediv__(self, arg0: float) -> Quatd: ...
    def __len__(self) -> int: ...
    @typing.overload
    def __mul__(self, arg0: Quatd) -> Quatd: ...
    @typing.overload
    def __mul__(self, arg0: float) -> Quatd: ...
    def __ne__(self, arg0: Quatd) -> bool: ...
    def __neg__(self) -> Quatd: ...
    def __repr__(self) -> str: ...
    def __rmul__(self, arg0: float) -> Quatd: ...
    @typing.overload
    def __setitem__(self, arg0: int, arg1: float) -> None: ...
    @typing.overload
    def __setitem__(self, arg0: slice, arg1: sequence) -> None: ...
    def __str__(self) -> str: ...
    def __sub__(self, arg0: Quatd) -> Quatd: ...
    def __truediv__(self, arg0: float) -> Quatd: ...
    @property
    def imaginary(self) -> Vec3d:
        """
        :type: Vec3d
        """
    @imaginary.setter
    def imaginary(self, arg1: Vec3d) -> None:
        pass
    @property
    def real(self) -> float:
        """
        :type: float
        """
    @real.setter
    def real(self, arg1: float) -> None:
        pass
    __hash__ = None
    pass
class Quatf():
    def Dot(self, arg0: Quatf) -> float: ...
    def GetConjugate(self) -> Quatf: ...
    @staticmethod
    def GetIdentity() -> Quatf: ...
    def GetImaginary(self) -> Vec3f: ...
    def GetInverse(self) -> Quatf: ...
    def GetLength(self) -> float: ...
    def GetLengthSq(self) -> float: ...
    def GetNormalized(self) -> Quatf: ...
    def GetReal(self) -> float: ...
    def Normalize(self) -> float: ...
    @typing.overload
    def SetImaginary(self, i: float, j: float, k: float) -> None: ...
    @typing.overload
    def SetImaginary(self, imaginary: Vec3f) -> None: ...
    def SetReal(self, real: float) -> None: ...
    def Transform(self, point: Vec3f) -> Vec3f: ...
    def __add__(self, arg0: Quatf) -> Quatf: ...
    def __copy__(self) -> Quatf: ...
    def __deepcopy__(self, memo: dict) -> Quatf: ...
    def __eq__(self, arg0: Quatf) -> bool: ...
    @typing.overload
    def __getitem__(self, arg0: int) -> float: ...
    @typing.overload
    def __getitem__(self, arg0: slice) -> typing.List[float]: ...
    def __iadd__(self, arg0: Quatf) -> Quatf: ...
    @typing.overload
    def __imul__(self, arg0: Quatf) -> Quatf: ...
    @typing.overload
    def __imul__(self, arg0: float) -> Quatf: ...
    @staticmethod
    @typing.overload
    def __init__(*args, **kwargs) -> typing.Any: ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, arg0: Quatd) -> None: ...
    @typing.overload
    def __init__(self, arg0: Quatf) -> None: ...
    @typing.overload
    def __init__(self, arg0: buffer) -> None: ...
    @typing.overload
    def __init__(self, arg0: float) -> None: ...
    @typing.overload
    def __init__(self, arg0: float, arg1: Vec3f) -> None: ...
    @typing.overload
    def __init__(self, arg0: float, arg1: float, arg2: float, arg3: float) -> None: ...
    @typing.overload
    def __init__(self, arg0: float, arg1: typing.Tuple[float, float, float]) -> None: ...
    def __isub__(self, arg0: Quatf) -> Quatf: ...
    def __itruediv__(self, arg0: float) -> Quatf: ...
    def __len__(self) -> int: ...
    @typing.overload
    def __mul__(self, arg0: Quatf) -> Quatf: ...
    @typing.overload
    def __mul__(self, arg0: float) -> Quatf: ...
    def __ne__(self, arg0: Quatf) -> bool: ...
    def __neg__(self) -> Quatf: ...
    def __repr__(self) -> str: ...
    def __rmul__(self, arg0: float) -> Quatf: ...
    @typing.overload
    def __setitem__(self, arg0: int, arg1: float) -> None: ...
    @typing.overload
    def __setitem__(self, arg0: slice, arg1: sequence) -> None: ...
    def __str__(self) -> str: ...
    def __sub__(self, arg0: Quatf) -> Quatf: ...
    def __truediv__(self, arg0: float) -> Quatf: ...
    @property
    def imaginary(self) -> Vec3f:
        """
        :type: Vec3f
        """
    @imaginary.setter
    def imaginary(self, arg1: Vec3f) -> None:
        pass
    @property
    def real(self) -> float:
        """
        :type: float
        """
    @real.setter
    def real(self, arg1: float) -> None:
        pass
    __hash__ = None
    pass
class Quath():
    def Dot(self, arg0: Quath) -> GfHalf: ...
    def GetConjugate(self) -> Quath: ...
    @staticmethod
    def GetIdentity() -> Quath: ...
    def GetImaginary(self) -> Vec3h: ...
    def GetInverse(self) -> Quath: ...
    def GetLength(self) -> float: ...
    def GetLengthSq(self) -> GfHalf: ...
    def GetNormalized(self) -> Quath: ...
    def GetReal(self) -> GfHalf: ...
    def Normalize(self) -> float: ...
    @typing.overload
    def SetImaginary(self, i: GfHalf, j: GfHalf, k: GfHalf) -> None: ...
    @typing.overload
    def SetImaginary(self, imaginary: Vec3h) -> None: ...
    def SetReal(self, real: GfHalf) -> None: ...
    def Transform(self, point: Vec3h) -> Vec3h: ...
    def __add__(self, arg0: Quath) -> Quath: ...
    def __copy__(self) -> Quath: ...
    def __deepcopy__(self, memo: dict) -> Quath: ...
    def __eq__(self, arg0: Quath) -> bool: ...
    @typing.overload
    def __getitem__(self, arg0: int) -> GfHalf: ...
    @typing.overload
    def __getitem__(self, arg0: slice) -> typing.List[GfHalf]: ...
    def __iadd__(self, arg0: Quath) -> Quath: ...
    @typing.overload
    def __imul__(self, arg0: GfHalf) -> Quath: ...
    @typing.overload
    def __imul__(self, arg0: Quath) -> Quath: ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, arg0: GfHalf) -> None: ...
    @typing.overload
    def __init__(self, arg0: GfHalf, arg1: GfHalf, arg2: GfHalf, arg3: GfHalf) -> None: ...
    @typing.overload
    def __init__(self, arg0: GfHalf, arg1: Vec3h) -> None: ...
    @typing.overload
    def __init__(self, arg0: GfHalf, arg1: typing.Tuple[GfHalf, GfHalf, GfHalf]) -> None: ...
    @typing.overload
    def __init__(self, arg0: Quatd) -> None: ...
    @typing.overload
    def __init__(self, arg0: Quatf) -> None: ...
    @typing.overload
    def __init__(self, arg0: Quath) -> None: ...
    @typing.overload
    def __init__(self, arg0: buffer) -> None: ...
    def __isub__(self, arg0: Quath) -> Quath: ...
    def __itruediv__(self, arg0: GfHalf) -> Quath: ...
    def __len__(self) -> int: ...
    @typing.overload
    def __mul__(self, arg0: GfHalf) -> Quath: ...
    @typing.overload
    def __mul__(self, arg0: Quath) -> Quath: ...
    def __ne__(self, arg0: Quath) -> bool: ...
    def __neg__(self) -> Quath: ...
    def __repr__(self) -> str: ...
    def __rmul__(self, arg0: GfHalf) -> Quath: ...
    @typing.overload
    def __setitem__(self, arg0: int, arg1: GfHalf) -> None: ...
    @typing.overload
    def __setitem__(self, arg0: slice, arg1: sequence) -> None: ...
    def __str__(self) -> str: ...
    def __sub__(self, arg0: Quath) -> Quath: ...
    def __truediv__(self, arg0: GfHalf) -> Quath: ...
    @property
    def imaginary(self) -> Vec3h:
        """
        :type: Vec3h
        """
    @imaginary.setter
    def imaginary(self, arg1: Vec3h) -> None:
        pass
    @property
    def real(self) -> GfHalf:
        """
        :type: GfHalf
        """
    @real.setter
    def real(self, arg1: GfHalf) -> None:
        pass
    __hash__ = None
    pass
class Range1d():
    @typing.overload
    def Contains(self, arg0: Range1d) -> bool: ...
    @typing.overload
    def Contains(self, arg0: float) -> bool: ...
    def GetDistanceSquared(self, arg0: float) -> float: ...
    @staticmethod
    def GetIntersection(arg0: Range1d, arg1: Range1d) -> Range1d: ...
    def GetMax(self) -> float: ...
    def GetMidpoint(self) -> float: ...
    def GetMin(self) -> float: ...
    def GetSize(self) -> float: ...
    @staticmethod
    def GetUnion(arg0: Range1d, arg1: Range1d) -> Range1d: ...
    def IntersectWith(self, arg0: Range1d) -> Range1d: ...
    def IsEmpty(self) -> bool: ...
    def SetEmpty(self) -> None: ...
    def SetMax(self, arg0: float) -> None: ...
    def SetMin(self, arg0: float) -> None: ...
    @typing.overload
    def UnionWith(self, arg0: Range1d) -> Range1d: ...
    @typing.overload
    def UnionWith(self, arg0: float) -> Range1d: ...
    def __add__(self, arg0: Range1d) -> Range1d: ...
    def __copy__(self) -> Range1d: ...
    def __deepcopy__(self, memo: dict) -> Range1d: ...
    def __eq__(self, arg0: Range1d) -> bool: ...
    def __iadd__(self, arg0: Range1d) -> Range1d: ...
    def __imul__(self, arg0: float) -> Range1d: ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, arg0: Range1d) -> None: ...
    @typing.overload
    def __init__(self, arg0: float) -> None: ...
    @typing.overload
    def __init__(self, arg0: float, arg1: float) -> None: ...
    def __isub__(self, arg0: Range1d) -> Range1d: ...
    def __itruediv__(self, arg0: float) -> Range1d: ...
    def __mul__(self, arg0: float) -> Range1d: ...
    def __ne__(self, arg0: Range1d) -> bool: ...
    def __repr__(self) -> str: ...
    def __rmul__(self, arg0: float) -> Range1d: ...
    def __str__(self) -> str: ...
    def __sub__(self, arg0: Range1d) -> Range1d: ...
    def __truediv__(self, arg0: float) -> Range1d: ...
    @property
    def max(self) -> float:
        """
        :type: float
        """
    @max.setter
    def max(self, arg1: float) -> None:
        pass
    @property
    def min(self) -> float:
        """
        :type: float
        """
    @min.setter
    def min(self, arg1: float) -> None:
        pass
    __hash__ = None
    pass
class Range1f():
    @typing.overload
    def Contains(self, arg0: Range1f) -> bool: ...
    @typing.overload
    def Contains(self, arg0: float) -> bool: ...
    def GetDistanceSquared(self, arg0: float) -> float: ...
    @staticmethod
    def GetIntersection(arg0: Range1f, arg1: Range1f) -> Range1f: ...
    def GetMax(self) -> float: ...
    def GetMidpoint(self) -> float: ...
    def GetMin(self) -> float: ...
    def GetSize(self) -> float: ...
    @staticmethod
    def GetUnion(arg0: Range1f, arg1: Range1f) -> Range1f: ...
    def IntersectWith(self, arg0: Range1f) -> Range1f: ...
    def IsEmpty(self) -> bool: ...
    def SetEmpty(self) -> None: ...
    def SetMax(self, arg0: float) -> None: ...
    def SetMin(self, arg0: float) -> None: ...
    @typing.overload
    def UnionWith(self, arg0: Range1f) -> Range1f: ...
    @typing.overload
    def UnionWith(self, arg0: float) -> Range1f: ...
    def __add__(self, arg0: Range1f) -> Range1f: ...
    def __copy__(self) -> Range1f: ...
    def __deepcopy__(self, memo: dict) -> Range1f: ...
    def __eq__(self, arg0: Range1f) -> bool: ...
    def __iadd__(self, arg0: Range1f) -> Range1f: ...
    def __imul__(self, arg0: float) -> Range1f: ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, arg0: Range1f) -> None: ...
    @typing.overload
    def __init__(self, arg0: float) -> None: ...
    @typing.overload
    def __init__(self, arg0: float, arg1: float) -> None: ...
    def __isub__(self, arg0: Range1f) -> Range1f: ...
    def __itruediv__(self, arg0: float) -> Range1f: ...
    def __mul__(self, arg0: float) -> Range1f: ...
    def __ne__(self, arg0: Range1f) -> bool: ...
    def __repr__(self) -> str: ...
    def __rmul__(self, arg0: float) -> Range1f: ...
    def __str__(self) -> str: ...
    def __sub__(self, arg0: Range1f) -> Range1f: ...
    def __truediv__(self, arg0: float) -> Range1f: ...
    @property
    def max(self) -> float:
        """
        :type: float
        """
    @max.setter
    def max(self, arg1: float) -> None:
        pass
    @property
    def min(self) -> float:
        """
        :type: float
        """
    @min.setter
    def min(self, arg1: float) -> None:
        pass
    __hash__ = None
    pass
class Range2d():
    @typing.overload
    def Contains(self, arg0: Range2d) -> bool: ...
    @typing.overload
    def Contains(self, arg0: Vec2d) -> bool: ...
    def GetCorner(self, arg0: int) -> Vec2d: ...
    def GetDistanceSquared(self, arg0: Vec2d) -> float: ...
    @staticmethod
    def GetIntersection(arg0: Range2d, arg1: Range2d) -> Range2d: ...
    def GetMax(self) -> Vec2d: ...
    def GetMidpoint(self) -> Vec2d: ...
    def GetMin(self) -> Vec2d: ...
    def GetQuadrant(self, arg0: int) -> Range2d: ...
    def GetSize(self) -> Vec2d: ...
    @staticmethod
    def GetUnion(arg0: Range2d, arg1: Range2d) -> Range2d: ...
    def IntersectWith(self, arg0: Range2d) -> Range2d: ...
    def IsEmpty(self) -> bool: ...
    def SetEmpty(self) -> None: ...
    def SetMax(self, arg0: Vec2d) -> None: ...
    def SetMin(self, arg0: Vec2d) -> None: ...
    @typing.overload
    def UnionWith(self, arg0: Range2d) -> Range2d: ...
    @typing.overload
    def UnionWith(self, arg0: Vec2d) -> Range2d: ...
    def __add__(self, arg0: Range2d) -> Range2d: ...
    def __copy__(self) -> Range2d: ...
    def __deepcopy__(self, memo: dict) -> Range2d: ...
    def __eq__(self, arg0: Range2d) -> bool: ...
    def __iadd__(self, arg0: Range2d) -> Range2d: ...
    def __imul__(self, arg0: float) -> Range2d: ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, arg0: Range2d) -> None: ...
    @typing.overload
    def __init__(self, arg0: Vec2d, arg1: Vec2d) -> None: ...
    @typing.overload
    def __init__(self, arg0: float) -> None: ...
    def __isub__(self, arg0: Range2d) -> Range2d: ...
    def __itruediv__(self, arg0: float) -> Range2d: ...
    def __mul__(self, arg0: float) -> Range2d: ...
    def __ne__(self, arg0: Range2d) -> bool: ...
    def __repr__(self) -> str: ...
    def __rmul__(self, arg0: float) -> Range2d: ...
    def __str__(self) -> str: ...
    def __sub__(self, arg0: Range2d) -> Range2d: ...
    def __truediv__(self, arg0: float) -> Range2d: ...
    @staticmethod
    def unitSquare() -> Range2d: ...
    @property
    def max(self) -> Vec2d:
        """
        :type: Vec2d
        """
    @max.setter
    def max(self, arg1: Vec2d) -> None:
        pass
    @property
    def min(self) -> Vec2d:
        """
        :type: Vec2d
        """
    @min.setter
    def min(self, arg1: Vec2d) -> None:
        pass
    __hash__ = None
    pass
class Range2f():
    @typing.overload
    def Contains(self, arg0: Range2f) -> bool: ...
    @typing.overload
    def Contains(self, arg0: Vec2f) -> bool: ...
    def GetCorner(self, arg0: int) -> Vec2f: ...
    def GetDistanceSquared(self, arg0: Vec2f) -> float: ...
    @staticmethod
    def GetIntersection(arg0: Range2f, arg1: Range2f) -> Range2f: ...
    def GetMax(self) -> Vec2f: ...
    def GetMidpoint(self) -> Vec2f: ...
    def GetMin(self) -> Vec2f: ...
    def GetQuadrant(self, arg0: int) -> Range2f: ...
    def GetSize(self) -> Vec2f: ...
    @staticmethod
    def GetUnion(arg0: Range2f, arg1: Range2f) -> Range2f: ...
    def IntersectWith(self, arg0: Range2f) -> Range2f: ...
    def IsEmpty(self) -> bool: ...
    def SetEmpty(self) -> None: ...
    def SetMax(self, arg0: Vec2f) -> None: ...
    def SetMin(self, arg0: Vec2f) -> None: ...
    @typing.overload
    def UnionWith(self, arg0: Range2f) -> Range2f: ...
    @typing.overload
    def UnionWith(self, arg0: Vec2f) -> Range2f: ...
    def __add__(self, arg0: Range2f) -> Range2f: ...
    def __copy__(self) -> Range2f: ...
    def __deepcopy__(self, memo: dict) -> Range2f: ...
    def __eq__(self, arg0: Range2f) -> bool: ...
    def __iadd__(self, arg0: Range2f) -> Range2f: ...
    def __imul__(self, arg0: float) -> Range2f: ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, arg0: Range2f) -> None: ...
    @typing.overload
    def __init__(self, arg0: Vec2f, arg1: Vec2f) -> None: ...
    @typing.overload
    def __init__(self, arg0: float) -> None: ...
    def __isub__(self, arg0: Range2f) -> Range2f: ...
    def __itruediv__(self, arg0: float) -> Range2f: ...
    def __mul__(self, arg0: float) -> Range2f: ...
    def __ne__(self, arg0: Range2f) -> bool: ...
    def __repr__(self) -> str: ...
    def __rmul__(self, arg0: float) -> Range2f: ...
    def __str__(self) -> str: ...
    def __sub__(self, arg0: Range2f) -> Range2f: ...
    def __truediv__(self, arg0: float) -> Range2f: ...
    @staticmethod
    def unitSquare() -> Range2f: ...
    @property
    def max(self) -> Vec2f:
        """
        :type: Vec2f
        """
    @max.setter
    def max(self, arg1: Vec2f) -> None:
        pass
    @property
    def min(self) -> Vec2f:
        """
        :type: Vec2f
        """
    @min.setter
    def min(self, arg1: Vec2f) -> None:
        pass
    __hash__ = None
    pass
class Range3d():
    @typing.overload
    def Contains(self, arg0: Range3d) -> bool: ...
    @typing.overload
    def Contains(self, arg0: Vec3d) -> bool: ...
    def GetCorner(self, arg0: int) -> Vec3d: ...
    def GetDistanceSquared(self, arg0: Vec3d) -> float: ...
    @staticmethod
    def GetIntersection(arg0: Range3d, arg1: Range3d) -> Range3d: ...
    def GetMax(self) -> Vec3d: ...
    def GetMidpoint(self) -> Vec3d: ...
    def GetMin(self) -> Vec3d: ...
    def GetOctant(self, arg0: int) -> Range3d: ...
    def GetSize(self) -> Vec3d: ...
    @staticmethod
    def GetUnion(arg0: Range3d, arg1: Range3d) -> Range3d: ...
    def IntersectWith(self, arg0: Range3d) -> Range3d: ...
    def IsEmpty(self) -> bool: ...
    def SetEmpty(self) -> None: ...
    def SetMax(self, arg0: Vec3d) -> None: ...
    def SetMin(self, arg0: Vec3d) -> None: ...
    @typing.overload
    def UnionWith(self, arg0: Range3d) -> Range3d: ...
    @typing.overload
    def UnionWith(self, arg0: Vec3d) -> Range3d: ...
    def __add__(self, arg0: Range3d) -> Range3d: ...
    def __copy__(self) -> Range3d: ...
    def __deepcopy__(self, memo: dict) -> Range3d: ...
    def __eq__(self, arg0: Range3d) -> bool: ...
    def __iadd__(self, arg0: Range3d) -> Range3d: ...
    def __imul__(self, arg0: float) -> Range3d: ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, arg0: Range3d) -> None: ...
    @typing.overload
    def __init__(self, arg0: Vec3d, arg1: Vec3d) -> None: ...
    @typing.overload
    def __init__(self, arg0: float) -> None: ...
    def __isub__(self, arg0: Range3d) -> Range3d: ...
    def __itruediv__(self, arg0: float) -> Range3d: ...
    def __mul__(self, arg0: float) -> Range3d: ...
    def __ne__(self, arg0: Range3d) -> bool: ...
    def __repr__(self) -> str: ...
    def __rmul__(self, arg0: float) -> Range3d: ...
    def __str__(self) -> str: ...
    def __sub__(self, arg0: Range3d) -> Range3d: ...
    def __truediv__(self, arg0: float) -> Range3d: ...
    @staticmethod
    def unitCube() -> Range3d: ...
    @property
    def max(self) -> Vec3d:
        """
        :type: Vec3d
        """
    @max.setter
    def max(self, arg1: Vec3d) -> None:
        pass
    @property
    def min(self) -> Vec3d:
        """
        :type: Vec3d
        """
    @min.setter
    def min(self, arg1: Vec3d) -> None:
        pass
    __hash__ = None
    pass
class Range3f():
    @typing.overload
    def Contains(self, arg0: Range3f) -> bool: ...
    @typing.overload
    def Contains(self, arg0: Vec3f) -> bool: ...
    def GetCorner(self, arg0: int) -> Vec3f: ...
    def GetDistanceSquared(self, arg0: Vec3f) -> float: ...
    @staticmethod
    def GetIntersection(arg0: Range3f, arg1: Range3f) -> Range3f: ...
    def GetMax(self) -> Vec3f: ...
    def GetMidpoint(self) -> Vec3f: ...
    def GetMin(self) -> Vec3f: ...
    def GetOctant(self, arg0: int) -> Range3f: ...
    def GetSize(self) -> Vec3f: ...
    @staticmethod
    def GetUnion(arg0: Range3f, arg1: Range3f) -> Range3f: ...
    def IntersectWith(self, arg0: Range3f) -> Range3f: ...
    def IsEmpty(self) -> bool: ...
    def SetEmpty(self) -> None: ...
    def SetMax(self, arg0: Vec3f) -> None: ...
    def SetMin(self, arg0: Vec3f) -> None: ...
    @typing.overload
    def UnionWith(self, arg0: Range3f) -> Range3f: ...
    @typing.overload
    def UnionWith(self, arg0: Vec3f) -> Range3f: ...
    def __add__(self, arg0: Range3f) -> Range3f: ...
    def __copy__(self) -> Range3f: ...
    def __deepcopy__(self, memo: dict) -> Range3f: ...
    def __eq__(self, arg0: Range3f) -> bool: ...
    def __iadd__(self, arg0: Range3f) -> Range3f: ...
    def __imul__(self, arg0: float) -> Range3f: ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, arg0: Range3f) -> None: ...
    @typing.overload
    def __init__(self, arg0: Vec3f, arg1: Vec3f) -> None: ...
    @typing.overload
    def __init__(self, arg0: float) -> None: ...
    def __isub__(self, arg0: Range3f) -> Range3f: ...
    def __itruediv__(self, arg0: float) -> Range3f: ...
    def __mul__(self, arg0: float) -> Range3f: ...
    def __ne__(self, arg0: Range3f) -> bool: ...
    def __repr__(self) -> str: ...
    def __rmul__(self, arg0: float) -> Range3f: ...
    def __str__(self) -> str: ...
    def __sub__(self, arg0: Range3f) -> Range3f: ...
    def __truediv__(self, arg0: float) -> Range3f: ...
    @staticmethod
    def unitCube() -> Range3f: ...
    @property
    def max(self) -> Vec3f:
        """
        :type: Vec3f
        """
    @max.setter
    def max(self, arg1: Vec3f) -> None:
        pass
    @property
    def min(self) -> Vec3f:
        """
        :type: Vec3f
        """
    @min.setter
    def min(self, arg1: Vec3f) -> None:
        pass
    __hash__ = None
    pass
class Rect2i():
    def Contains(self, arg0: Vec2i) -> bool: ...
    def GetArea(self) -> int: ...
    def GetCenter(self) -> Vec2i: ...
    def GetHeight(self) -> int: ...
    def GetIntersection(self, arg0: Rect2i) -> Rect2i: ...
    def GetMax(self) -> Vec2i: ...
    def GetMaxX(self) -> int: ...
    def GetMaxY(self) -> int: ...
    def GetMin(self) -> Vec2i: ...
    def GetMinX(self) -> int: ...
    def GetMinY(self) -> int: ...
    def GetNormalized(self) -> Rect2i: ...
    def GetSize(self) -> Vec2i: ...
    def GetUnion(self, arg0: Rect2i) -> Rect2i: ...
    def GetWidth(self) -> int: ...
    def Intersect(self, arg0: Rect2i) -> Rect2i: ...
    def IsEmpty(self) -> bool: ...
    def IsNull(self) -> bool: ...
    def IsValid(self) -> bool: ...
    def SetMax(self, arg0: Vec2i) -> None: ...
    def SetMaxX(self, arg0: int) -> None: ...
    def SetMaxY(self, arg0: int) -> None: ...
    def SetMin(self, arg0: Vec2i) -> None: ...
    def SetMinX(self, arg0: int) -> None: ...
    def SetMinY(self, arg0: int) -> None: ...
    def Translate(self, arg0: Vec2i) -> None: ...
    def Union(self, arg0: Rect2i) -> Rect2i: ...
    def __add__(self, arg0: Rect2i) -> Rect2i: ...
    def __copy__(self) -> Rect2i: ...
    def __deepcopy__(self, memo: dict) -> Rect2i: ...
    def __eq__(self, arg0: Rect2i) -> bool: ...
    def __iadd__(self, arg0: Rect2i) -> Rect2i: ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, arg0: Rect2i) -> None: ...
    @typing.overload
    def __init__(self, arg0: Vec2i, arg1: Vec2i) -> None: ...
    @typing.overload
    def __init__(self, arg0: Vec2i, arg1: int, arg2: int) -> None: ...
    def __ne__(self, arg0: Rect2i) -> bool: ...
    def __repr__(self) -> str: ...
    def __str__(self) -> str: ...
    @property
    def area(self) -> int:
        """
        :type: int
        """
    @property
    def center(self) -> Vec2i:
        """
        :type: Vec2i
        """
    @property
    def height(self) -> int:
        """
        :type: int
        """
    @property
    def max(self) -> Vec2i:
        """
        :type: Vec2i
        """
    @max.setter
    def max(self, arg1: Vec2i) -> None:
        pass
    @property
    def maxX(self) -> int:
        """
        :type: int
        """
    @maxX.setter
    def maxX(self, arg1: int) -> None:
        pass
    @property
    def maxY(self) -> int:
        """
        :type: int
        """
    @maxY.setter
    def maxY(self, arg1: int) -> None:
        pass
    @property
    def min(self) -> Vec2i:
        """
        :type: Vec2i
        """
    @min.setter
    def min(self, arg1: Vec2i) -> None:
        pass
    @property
    def minX(self) -> int:
        """
        :type: int
        """
    @minX.setter
    def minX(self, arg1: int) -> None:
        pass
    @property
    def minY(self) -> int:
        """
        :type: int
        """
    @minY.setter
    def minY(self, arg1: int) -> None:
        pass
    @property
    def size(self) -> Vec2i:
        """
        :type: Vec2i
        """
    @property
    def width(self) -> int:
        """
        :type: int
        """
    __hash__ = None
    pass
class Vec2d():
    @staticmethod
    def Axis(arg0: int) -> Vec2d: ...
    def GetComplement(self, arg0: Vec2d) -> Vec2d: ...
    def GetDot(self, arg0: Vec2d) -> float: ...
    def GetLength(self) -> float: ...
    def GetNormalized(self) -> Vec2d: ...
    def GetProjection(self, arg0: Vec2d) -> Vec2d: ...
    def Normalize(self) -> float: ...
    @staticmethod
    def XAxis() -> Vec2d: ...
    @staticmethod
    def YAxis() -> Vec2d: ...
    def __add__(self, arg0: Vec2d) -> Vec2d: ...
    def __copy__(self) -> Vec2d: ...
    def __deepcopy__(self, memo: dict) -> Vec2d: ...
    @staticmethod
    @typing.overload
    def __eq__(*args, **kwargs) -> typing.Any: ...
    @typing.overload
    def __eq__(self, arg0: Vec2d) -> bool: ...
    @typing.overload
    def __eq__(self, arg0: Vec2f) -> bool: ...
    @typing.overload
    def __getitem__(self, arg0: int) -> float: ...
    @typing.overload
    def __getitem__(self, arg0: slice) -> typing.List[float]: ...
    def __iadd__(self, arg0: Vec2d) -> Vec2d: ...
    def __imul__(self, arg0: float) -> Vec2d: ...
    @staticmethod
    @typing.overload
    def __init__(*args, **kwargs) -> typing.Any: ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, arg0: Vec2d) -> None: ...
    @typing.overload
    def __init__(self, arg0: Vec2f) -> None: ...
    @typing.overload
    def __init__(self, arg0: buffer) -> None: ...
    @typing.overload
    def __init__(self, arg0: float) -> None: ...
    @typing.overload
    def __init__(self, arg0: float, arg1: float) -> None: ...
    @typing.overload
    def __init__(self, arg0: typing.Tuple[float, float]) -> None: ...
    def __isub__(self, arg0: Vec2d) -> Vec2d: ...
    def __itruediv__(self, arg0: float) -> Vec2d: ...
    def __len__(self) -> int: ...
    @typing.overload
    def __mul__(self, arg0: Vec2d) -> float: ...
    @typing.overload
    def __mul__(self, arg0: float) -> Vec2d: ...
    @staticmethod
    @typing.overload
    def __ne__(*args, **kwargs) -> typing.Any: ...
    @typing.overload
    def __ne__(self, arg0: Vec2d) -> bool: ...
    @typing.overload
    def __ne__(self, arg0: Vec2f) -> bool: ...
    def __neg__(self) -> Vec2d: ...
    def __repr__(self) -> str: ...
    def __rmul__(self, arg0: float) -> Vec2d: ...
    @typing.overload
    def __setitem__(self, arg0: int, arg1: float) -> None: ...
    @typing.overload
    def __setitem__(self, arg0: slice, arg1: sequence) -> None: ...
    def __str__(self) -> str: ...
    def __sub__(self, arg0: Vec2d) -> Vec2d: ...
    def __truediv__(self, arg0: float) -> Vec2d: ...
    __hash__ = None
    __isGfVec = True
    dimension = 2
    pass
class Vec2f():
    @staticmethod
    def Axis(arg0: int) -> Vec2f: ...
    def GetComplement(self, arg0: Vec2f) -> Vec2f: ...
    def GetDot(self, arg0: Vec2f) -> float: ...
    def GetLength(self) -> float: ...
    def GetNormalized(self) -> Vec2f: ...
    def GetProjection(self, arg0: Vec2f) -> Vec2f: ...
    def Normalize(self) -> float: ...
    @staticmethod
    def XAxis() -> Vec2f: ...
    @staticmethod
    def YAxis() -> Vec2f: ...
    def __add__(self, arg0: Vec2f) -> Vec2f: ...
    def __copy__(self) -> Vec2f: ...
    def __deepcopy__(self, memo: dict) -> Vec2f: ...
    @staticmethod
    @typing.overload
    def __eq__(*args, **kwargs) -> typing.Any: ...
    @typing.overload
    def __eq__(self, arg0: Vec2f) -> bool: ...
    @typing.overload
    def __getitem__(self, arg0: int) -> float: ...
    @typing.overload
    def __getitem__(self, arg0: slice) -> typing.List[float]: ...
    def __iadd__(self, arg0: Vec2f) -> Vec2f: ...
    def __imul__(self, arg0: float) -> Vec2f: ...
    @staticmethod
    @typing.overload
    def __init__(*args, **kwargs) -> typing.Any: ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, arg0: Vec2f) -> None: ...
    @typing.overload
    def __init__(self, arg0: buffer) -> None: ...
    @typing.overload
    def __init__(self, arg0: float) -> None: ...
    @typing.overload
    def __init__(self, arg0: float, arg1: float) -> None: ...
    @typing.overload
    def __init__(self, arg0: typing.Tuple[float, float]) -> None: ...
    def __isub__(self, arg0: Vec2f) -> Vec2f: ...
    def __itruediv__(self, arg0: float) -> Vec2f: ...
    def __len__(self) -> int: ...
    @typing.overload
    def __mul__(self, arg0: Vec2f) -> float: ...
    @typing.overload
    def __mul__(self, arg0: float) -> Vec2f: ...
    @staticmethod
    @typing.overload
    def __ne__(*args, **kwargs) -> typing.Any: ...
    @typing.overload
    def __ne__(self, arg0: Vec2f) -> bool: ...
    def __neg__(self) -> Vec2f: ...
    def __repr__(self) -> str: ...
    def __rmul__(self, arg0: float) -> Vec2f: ...
    @typing.overload
    def __setitem__(self, arg0: int, arg1: float) -> None: ...
    @typing.overload
    def __setitem__(self, arg0: slice, arg1: sequence) -> None: ...
    def __str__(self) -> str: ...
    def __sub__(self, arg0: Vec2f) -> Vec2f: ...
    def __truediv__(self, arg0: float) -> Vec2f: ...
    __hash__ = None
    __isGfVec = True
    dimension = 2
    pass
class Vec2h():
    @staticmethod
    def Axis(arg0: int) -> Vec2h: ...
    def GetComplement(self, arg0: Vec2h) -> Vec2h: ...
    def GetDot(self, arg0: Vec2h) -> GfHalf: ...
    def GetLength(self) -> float: ...
    def GetNormalized(self) -> Vec2h: ...
    def GetProjection(self, arg0: Vec2h) -> Vec2h: ...
    def Normalize(self) -> float: ...
    @staticmethod
    def XAxis() -> Vec2h: ...
    @staticmethod
    def YAxis() -> Vec2h: ...
    def __add__(self, arg0: Vec2h) -> Vec2h: ...
    def __copy__(self) -> Vec2h: ...
    def __deepcopy__(self, memo: dict) -> Vec2h: ...
    @typing.overload
    def __eq__(self, arg0: Vec2h) -> bool: ...
    @typing.overload
    def __eq__(self, arg0: Vec2i) -> bool: ...
    @typing.overload
    def __getitem__(self, arg0: int) -> GfHalf: ...
    @typing.overload
    def __getitem__(self, arg0: slice) -> typing.List[GfHalf]: ...
    def __iadd__(self, arg0: Vec2h) -> Vec2h: ...
    def __imul__(self, arg0: GfHalf) -> Vec2h: ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, arg0: GfHalf) -> None: ...
    @typing.overload
    def __init__(self, arg0: GfHalf, arg1: GfHalf) -> None: ...
    @typing.overload
    def __init__(self, arg0: Vec2d) -> None: ...
    @typing.overload
    def __init__(self, arg0: Vec2f) -> None: ...
    @typing.overload
    def __init__(self, arg0: Vec2h) -> None: ...
    @typing.overload
    def __init__(self, arg0: Vec2i) -> None: ...
    @typing.overload
    def __init__(self, arg0: buffer) -> None: ...
    @typing.overload
    def __init__(self, arg0: typing.Tuple[GfHalf, GfHalf]) -> None: ...
    def __isub__(self, arg0: Vec2h) -> Vec2h: ...
    def __itruediv__(self, arg0: GfHalf) -> Vec2h: ...
    def __len__(self) -> int: ...
    @typing.overload
    def __mul__(self, arg0: GfHalf) -> Vec2h: ...
    @typing.overload
    def __mul__(self, arg0: Vec2h) -> GfHalf: ...
    @typing.overload
    def __ne__(self, arg0: Vec2h) -> bool: ...
    @typing.overload
    def __ne__(self, arg0: Vec2i) -> bool: ...
    def __neg__(self) -> Vec2h: ...
    def __repr__(self) -> str: ...
    def __rmul__(self, arg0: GfHalf) -> Vec2h: ...
    @typing.overload
    def __setitem__(self, arg0: int, arg1: GfHalf) -> None: ...
    @typing.overload
    def __setitem__(self, arg0: slice, arg1: sequence) -> None: ...
    def __str__(self) -> str: ...
    def __sub__(self, arg0: Vec2h) -> Vec2h: ...
    def __truediv__(self, arg0: GfHalf) -> Vec2h: ...
    __hash__ = None
    __isGfVec = True
    dimension = 2
    pass
class Vec2i():
    @staticmethod
    def Axis(arg0: int) -> Vec2i: ...
    def GetComplement(self, arg0: Vec2i) -> Vec2i: ...
    def GetDot(self, arg0: Vec2i) -> int: ...
    def GetLength(self) -> float: ...
    def GetNormalized(self) -> Vec2i: ...
    def GetProjection(self, arg0: Vec2i) -> Vec2i: ...
    def Normalize(self) -> float: ...
    @staticmethod
    def XAxis() -> Vec2i: ...
    @staticmethod
    def YAxis() -> Vec2i: ...
    def __add__(self, arg0: Vec2i) -> Vec2i: ...
    def __copy__(self) -> Vec2i: ...
    def __deepcopy__(self, memo: dict) -> Vec2i: ...
    def __eq__(self, arg0: Vec2i) -> bool: ...
    @typing.overload
    def __getitem__(self, arg0: int) -> int: ...
    @typing.overload
    def __getitem__(self, arg0: slice) -> typing.List[int]: ...
    def __iadd__(self, arg0: Vec2i) -> Vec2i: ...
    def __imul__(self, arg0: int) -> Vec2i: ...
    @staticmethod
    @typing.overload
    def __init__(*args, **kwargs) -> typing.Any: ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, arg0: Vec2d) -> None: ...
    @typing.overload
    def __init__(self, arg0: Vec2f) -> None: ...
    @typing.overload
    def __init__(self, arg0: Vec2i) -> None: ...
    @typing.overload
    def __init__(self, arg0: buffer) -> None: ...
    @typing.overload
    def __init__(self, arg0: int) -> None: ...
    @typing.overload
    def __init__(self, arg0: int, arg1: int) -> None: ...
    @typing.overload
    def __init__(self, arg0: typing.Tuple[int, int]) -> None: ...
    def __isub__(self, arg0: Vec2i) -> Vec2i: ...
    def __itruediv__(self, arg0: int) -> Vec2i: ...
    def __len__(self) -> int: ...
    @typing.overload
    def __mul__(self, arg0: Vec2i) -> int: ...
    @typing.overload
    def __mul__(self, arg0: int) -> Vec2i: ...
    def __ne__(self, arg0: Vec2i) -> bool: ...
    def __neg__(self) -> Vec2i: ...
    def __repr__(self) -> str: ...
    def __rmul__(self, arg0: int) -> Vec2i: ...
    @typing.overload
    def __setitem__(self, arg0: int, arg1: int) -> None: ...
    @typing.overload
    def __setitem__(self, arg0: slice, arg1: sequence) -> None: ...
    def __str__(self) -> str: ...
    def __sub__(self, arg0: Vec2i) -> Vec2i: ...
    def __truediv__(self, arg0: int) -> Vec2i: ...
    __hash__ = None
    __isGfVec = True
    dimension = 2
    pass
class Vec3d():
    @staticmethod
    def Axis(arg0: int) -> Vec3d: ...
    def BuildOrthonormalFrame(self, eps: float = 1e-10) -> tuple: ...
    def GetComplement(self, arg0: Vec3d) -> Vec3d: ...
    def GetCross(self, arg0: Vec3d) -> Vec3d: ...
    def GetDot(self, arg0: Vec3d) -> float: ...
    def GetLength(self) -> float: ...
    def GetNormalized(self) -> Vec3d: ...
    def GetProjection(self, arg0: Vec3d) -> Vec3d: ...
    def Normalize(self) -> float: ...
    @staticmethod
    def OrthogonalizeBasis(v1: Vec3d, v2: Vec3d, v3: Vec3d, normalize: bool = True) -> bool: ...
    @staticmethod
    def XAxis() -> Vec3d: ...
    @staticmethod
    def YAxis() -> Vec3d: ...
    @staticmethod
    def ZAxis() -> Vec3d: ...
    def __add__(self, arg0: Vec3d) -> Vec3d: ...
    def __copy__(self) -> Vec3d: ...
    def __deepcopy__(self, memo: dict) -> Vec3d: ...
    @staticmethod
    @typing.overload
    def __eq__(*args, **kwargs) -> typing.Any: ...
    @typing.overload
    def __eq__(self, arg0: Vec3d) -> bool: ...
    @typing.overload
    def __eq__(self, arg0: Vec3f) -> bool: ...
    @typing.overload
    def __getitem__(self, arg0: int) -> float: ...
    @typing.overload
    def __getitem__(self, arg0: slice) -> typing.List[float]: ...
    def __iadd__(self, arg0: Vec3d) -> Vec3d: ...
    def __imul__(self, arg0: float) -> Vec3d: ...
    @staticmethod
    @typing.overload
    def __init__(*args, **kwargs) -> typing.Any: ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, arg0: Vec3d) -> None: ...
    @typing.overload
    def __init__(self, arg0: Vec3f) -> None: ...
    @typing.overload
    def __init__(self, arg0: buffer) -> None: ...
    @typing.overload
    def __init__(self, arg0: float) -> None: ...
    @typing.overload
    def __init__(self, arg0: float, arg1: float, arg2: float) -> None: ...
    @typing.overload
    def __init__(self, arg0: typing.Tuple[float, float, float]) -> None: ...
    def __isub__(self, arg0: Vec3d) -> Vec3d: ...
    def __itruediv__(self, arg0: float) -> Vec3d: ...
    def __len__(self) -> int: ...
    @typing.overload
    def __mul__(self, arg0: Vec3d) -> float: ...
    @typing.overload
    def __mul__(self, arg0: float) -> Vec3d: ...
    @staticmethod
    @typing.overload
    def __ne__(*args, **kwargs) -> typing.Any: ...
    @typing.overload
    def __ne__(self, arg0: Vec3d) -> bool: ...
    @typing.overload
    def __ne__(self, arg0: Vec3f) -> bool: ...
    def __neg__(self) -> Vec3d: ...
    def __repr__(self) -> str: ...
    def __rmul__(self, arg0: float) -> Vec3d: ...
    @typing.overload
    def __setitem__(self, arg0: int, arg1: float) -> None: ...
    @typing.overload
    def __setitem__(self, arg0: slice, arg1: sequence) -> None: ...
    def __str__(self) -> str: ...
    def __sub__(self, arg0: Vec3d) -> Vec3d: ...
    def __truediv__(self, arg0: float) -> Vec3d: ...
    def __xor__(self, arg0: Vec3d) -> Vec3d: ...
    __hash__ = None
    __isGfVec = True
    dimension = 3
    pass
class Vec3f():
    @staticmethod
    def Axis(arg0: int) -> Vec3f: ...
    def BuildOrthonormalFrame(self, eps: float = 1e-10) -> tuple: ...
    def GetComplement(self, arg0: Vec3f) -> Vec3f: ...
    def GetCross(self, arg0: Vec3f) -> Vec3f: ...
    def GetDot(self, arg0: Vec3f) -> float: ...
    def GetLength(self) -> float: ...
    def GetNormalized(self) -> Vec3f: ...
    def GetProjection(self, arg0: Vec3f) -> Vec3f: ...
    def Normalize(self) -> float: ...
    @staticmethod
    def OrthogonalizeBasis(v1: Vec3f, v2: Vec3f, v3: Vec3f, normalize: bool = True) -> bool: ...
    @staticmethod
    def XAxis() -> Vec3f: ...
    @staticmethod
    def YAxis() -> Vec3f: ...
    @staticmethod
    def ZAxis() -> Vec3f: ...
    def __add__(self, arg0: Vec3f) -> Vec3f: ...
    def __copy__(self) -> Vec3f: ...
    def __deepcopy__(self, memo: dict) -> Vec3f: ...
    @staticmethod
    @typing.overload
    def __eq__(*args, **kwargs) -> typing.Any: ...
    @typing.overload
    def __eq__(self, arg0: Vec3f) -> bool: ...
    @typing.overload
    def __getitem__(self, arg0: int) -> float: ...
    @typing.overload
    def __getitem__(self, arg0: slice) -> typing.List[float]: ...
    def __iadd__(self, arg0: Vec3f) -> Vec3f: ...
    def __imul__(self, arg0: float) -> Vec3f: ...
    @staticmethod
    @typing.overload
    def __init__(*args, **kwargs) -> typing.Any: ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, arg0: Vec3f) -> None: ...
    @typing.overload
    def __init__(self, arg0: buffer) -> None: ...
    @typing.overload
    def __init__(self, arg0: float) -> None: ...
    @typing.overload
    def __init__(self, arg0: float, arg1: float, arg2: float) -> None: ...
    @typing.overload
    def __init__(self, arg0: typing.Tuple[float, float, float]) -> None: ...
    def __isub__(self, arg0: Vec3f) -> Vec3f: ...
    def __itruediv__(self, arg0: float) -> Vec3f: ...
    def __len__(self) -> int: ...
    @typing.overload
    def __mul__(self, arg0: Vec3f) -> float: ...
    @typing.overload
    def __mul__(self, arg0: float) -> Vec3f: ...
    @staticmethod
    @typing.overload
    def __ne__(*args, **kwargs) -> typing.Any: ...
    @typing.overload
    def __ne__(self, arg0: Vec3f) -> bool: ...
    def __neg__(self) -> Vec3f: ...
    def __repr__(self) -> str: ...
    def __rmul__(self, arg0: float) -> Vec3f: ...
    @typing.overload
    def __setitem__(self, arg0: int, arg1: float) -> None: ...
    @typing.overload
    def __setitem__(self, arg0: slice, arg1: sequence) -> None: ...
    def __str__(self) -> str: ...
    def __sub__(self, arg0: Vec3f) -> Vec3f: ...
    def __truediv__(self, arg0: float) -> Vec3f: ...
    def __xor__(self, arg0: Vec3f) -> Vec3f: ...
    __hash__ = None
    __isGfVec = True
    dimension = 3
    pass
class Vec3h():
    @staticmethod
    def Axis(arg0: int) -> Vec3h: ...
    def BuildOrthonormalFrame(self, eps: float = 1e-10) -> tuple: ...
    def GetComplement(self, arg0: Vec3h) -> Vec3h: ...
    def GetCross(self, arg0: Vec3h) -> Vec3h: ...
    def GetDot(self, arg0: Vec3h) -> GfHalf: ...
    def GetLength(self) -> float: ...
    def GetNormalized(self) -> Vec3h: ...
    def GetProjection(self, arg0: Vec3h) -> Vec3h: ...
    def Normalize(self) -> float: ...
    @staticmethod
    def OrthogonalizeBasis(v1: Vec3h, v2: Vec3h, v3: Vec3h, normalize: bool = True) -> bool: ...
    @staticmethod
    def XAxis() -> Vec3h: ...
    @staticmethod
    def YAxis() -> Vec3h: ...
    @staticmethod
    def ZAxis() -> Vec3h: ...
    def __add__(self, arg0: Vec3h) -> Vec3h: ...
    def __copy__(self) -> Vec3h: ...
    def __deepcopy__(self, memo: dict) -> Vec3h: ...
    @typing.overload
    def __eq__(self, arg0: Vec3h) -> bool: ...
    @typing.overload
    def __eq__(self, arg0: Vec3i) -> bool: ...
    @typing.overload
    def __getitem__(self, arg0: int) -> GfHalf: ...
    @typing.overload
    def __getitem__(self, arg0: slice) -> typing.List[GfHalf]: ...
    def __iadd__(self, arg0: Vec3h) -> Vec3h: ...
    def __imul__(self, arg0: GfHalf) -> Vec3h: ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, arg0: GfHalf) -> None: ...
    @typing.overload
    def __init__(self, arg0: GfHalf, arg1: GfHalf, arg2: GfHalf) -> None: ...
    @typing.overload
    def __init__(self, arg0: Vec3d) -> None: ...
    @typing.overload
    def __init__(self, arg0: Vec3f) -> None: ...
    @typing.overload
    def __init__(self, arg0: Vec3h) -> None: ...
    @typing.overload
    def __init__(self, arg0: Vec3i) -> None: ...
    @typing.overload
    def __init__(self, arg0: buffer) -> None: ...
    @typing.overload
    def __init__(self, arg0: typing.Tuple[GfHalf, GfHalf, GfHalf]) -> None: ...
    def __isub__(self, arg0: Vec3h) -> Vec3h: ...
    def __itruediv__(self, arg0: GfHalf) -> Vec3h: ...
    def __len__(self) -> int: ...
    @typing.overload
    def __mul__(self, arg0: GfHalf) -> Vec3h: ...
    @typing.overload
    def __mul__(self, arg0: Vec3h) -> GfHalf: ...
    @typing.overload
    def __ne__(self, arg0: Vec3h) -> bool: ...
    @typing.overload
    def __ne__(self, arg0: Vec3i) -> bool: ...
    def __neg__(self) -> Vec3h: ...
    def __repr__(self) -> str: ...
    def __rmul__(self, arg0: GfHalf) -> Vec3h: ...
    @typing.overload
    def __setitem__(self, arg0: int, arg1: GfHalf) -> None: ...
    @typing.overload
    def __setitem__(self, arg0: slice, arg1: sequence) -> None: ...
    def __str__(self) -> str: ...
    def __sub__(self, arg0: Vec3h) -> Vec3h: ...
    def __truediv__(self, arg0: GfHalf) -> Vec3h: ...
    def __xor__(self, arg0: Vec3h) -> Vec3h: ...
    __hash__ = None
    __isGfVec = True
    dimension = 3
    pass
class Vec3i():
    @staticmethod
    def Axis(arg0: int) -> Vec3i: ...
    def BuildOrthonormalFrame(self, eps: float = 1e-10) -> tuple: ...
    def GetComplement(self, arg0: Vec3i) -> Vec3i: ...
    def GetCross(self, arg0: Vec3i) -> Vec3i: ...
    def GetDot(self, arg0: Vec3i) -> int: ...
    def GetLength(self) -> float: ...
    def GetNormalized(self) -> Vec3i: ...
    def GetProjection(self, arg0: Vec3i) -> Vec3i: ...
    def Normalize(self) -> float: ...
    @staticmethod
    def OrthogonalizeBasis(v1: Vec3i, v2: Vec3i, v3: Vec3i, normalize: bool = True) -> bool: ...
    @staticmethod
    def XAxis() -> Vec3i: ...
    @staticmethod
    def YAxis() -> Vec3i: ...
    @staticmethod
    def ZAxis() -> Vec3i: ...
    def __add__(self, arg0: Vec3i) -> Vec3i: ...
    def __copy__(self) -> Vec3i: ...
    def __deepcopy__(self, memo: dict) -> Vec3i: ...
    def __eq__(self, arg0: Vec3i) -> bool: ...
    @typing.overload
    def __getitem__(self, arg0: int) -> int: ...
    @typing.overload
    def __getitem__(self, arg0: slice) -> typing.List[int]: ...
    def __iadd__(self, arg0: Vec3i) -> Vec3i: ...
    def __imul__(self, arg0: int) -> Vec3i: ...
    @staticmethod
    @typing.overload
    def __init__(*args, **kwargs) -> typing.Any: ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, arg0: Vec3d) -> None: ...
    @typing.overload
    def __init__(self, arg0: Vec3f) -> None: ...
    @typing.overload
    def __init__(self, arg0: Vec3i) -> None: ...
    @typing.overload
    def __init__(self, arg0: buffer) -> None: ...
    @typing.overload
    def __init__(self, arg0: int) -> None: ...
    @typing.overload
    def __init__(self, arg0: int, arg1: int, arg2: int) -> None: ...
    @typing.overload
    def __init__(self, arg0: typing.Tuple[int, int, int]) -> None: ...
    def __isub__(self, arg0: Vec3i) -> Vec3i: ...
    def __itruediv__(self, arg0: int) -> Vec3i: ...
    def __len__(self) -> int: ...
    @typing.overload
    def __mul__(self, arg0: Vec3i) -> int: ...
    @typing.overload
    def __mul__(self, arg0: int) -> Vec3i: ...
    def __ne__(self, arg0: Vec3i) -> bool: ...
    def __neg__(self) -> Vec3i: ...
    def __repr__(self) -> str: ...
    def __rmul__(self, arg0: int) -> Vec3i: ...
    @typing.overload
    def __setitem__(self, arg0: int, arg1: int) -> None: ...
    @typing.overload
    def __setitem__(self, arg0: slice, arg1: sequence) -> None: ...
    def __str__(self) -> str: ...
    def __sub__(self, arg0: Vec3i) -> Vec3i: ...
    def __truediv__(self, arg0: int) -> Vec3i: ...
    def __xor__(self, arg0: Vec3i) -> Vec3i: ...
    __hash__ = None
    __isGfVec = True
    dimension = 3
    pass
class Vec4d():
    @staticmethod
    def Axis(arg0: int) -> Vec4d: ...
    def GetComplement(self, arg0: Vec4d) -> Vec4d: ...
    def GetDot(self, arg0: Vec4d) -> float: ...
    def GetLength(self) -> float: ...
    def GetNormalized(self) -> Vec4d: ...
    def GetProjection(self, arg0: Vec4d) -> Vec4d: ...
    def Normalize(self) -> float: ...
    @staticmethod
    def WAxis() -> Vec4d: ...
    @staticmethod
    def XAxis() -> Vec4d: ...
    @staticmethod
    def YAxis() -> Vec4d: ...
    @staticmethod
    def ZAxis() -> Vec4d: ...
    def __add__(self, arg0: Vec4d) -> Vec4d: ...
    def __copy__(self) -> Vec4d: ...
    def __deepcopy__(self, memo: dict) -> Vec4d: ...
    @staticmethod
    @typing.overload
    def __eq__(*args, **kwargs) -> typing.Any: ...
    @typing.overload
    def __eq__(self, arg0: Vec4d) -> bool: ...
    @typing.overload
    def __eq__(self, arg0: Vec4f) -> bool: ...
    @typing.overload
    def __getitem__(self, arg0: int) -> float: ...
    @typing.overload
    def __getitem__(self, arg0: slice) -> typing.List[float]: ...
    def __iadd__(self, arg0: Vec4d) -> Vec4d: ...
    def __imul__(self, arg0: float) -> Vec4d: ...
    @staticmethod
    @typing.overload
    def __init__(*args, **kwargs) -> typing.Any: ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, arg0: Vec4d) -> None: ...
    @typing.overload
    def __init__(self, arg0: Vec4f) -> None: ...
    @typing.overload
    def __init__(self, arg0: buffer) -> None: ...
    @typing.overload
    def __init__(self, arg0: float) -> None: ...
    @typing.overload
    def __init__(self, arg0: float, arg1: float, arg2: float, arg3: float) -> None: ...
    @typing.overload
    def __init__(self, arg0: typing.Tuple[float, float, float, float]) -> None: ...
    def __isub__(self, arg0: Vec4d) -> Vec4d: ...
    def __itruediv__(self, arg0: float) -> Vec4d: ...
    def __len__(self) -> int: ...
    @typing.overload
    def __mul__(self, arg0: Vec4d) -> float: ...
    @typing.overload
    def __mul__(self, arg0: float) -> Vec4d: ...
    @staticmethod
    @typing.overload
    def __ne__(*args, **kwargs) -> typing.Any: ...
    @typing.overload
    def __ne__(self, arg0: Vec4d) -> bool: ...
    @typing.overload
    def __ne__(self, arg0: Vec4f) -> bool: ...
    def __neg__(self) -> Vec4d: ...
    def __repr__(self) -> str: ...
    def __rmul__(self, arg0: float) -> Vec4d: ...
    @typing.overload
    def __setitem__(self, arg0: int, arg1: float) -> None: ...
    @typing.overload
    def __setitem__(self, arg0: slice, arg1: sequence) -> None: ...
    def __str__(self) -> str: ...
    def __sub__(self, arg0: Vec4d) -> Vec4d: ...
    def __truediv__(self, arg0: float) -> Vec4d: ...
    __hash__ = None
    __isGfVec = True
    dimension = 4
    pass
class Vec4f():
    @staticmethod
    def Axis(arg0: int) -> Vec4f: ...
    def GetComplement(self, arg0: Vec4f) -> Vec4f: ...
    def GetDot(self, arg0: Vec4f) -> float: ...
    def GetLength(self) -> float: ...
    def GetNormalized(self) -> Vec4f: ...
    def GetProjection(self, arg0: Vec4f) -> Vec4f: ...
    def Normalize(self) -> float: ...
    @staticmethod
    def WAxis() -> Vec4f: ...
    @staticmethod
    def XAxis() -> Vec4f: ...
    @staticmethod
    def YAxis() -> Vec4f: ...
    @staticmethod
    def ZAxis() -> Vec4f: ...
    def __add__(self, arg0: Vec4f) -> Vec4f: ...
    def __copy__(self) -> Vec4f: ...
    def __deepcopy__(self, memo: dict) -> Vec4f: ...
    @staticmethod
    @typing.overload
    def __eq__(*args, **kwargs) -> typing.Any: ...
    @typing.overload
    def __eq__(self, arg0: Vec4f) -> bool: ...
    @typing.overload
    def __getitem__(self, arg0: int) -> float: ...
    @typing.overload
    def __getitem__(self, arg0: slice) -> typing.List[float]: ...
    def __iadd__(self, arg0: Vec4f) -> Vec4f: ...
    def __imul__(self, arg0: float) -> Vec4f: ...
    @staticmethod
    @typing.overload
    def __init__(*args, **kwargs) -> typing.Any: ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, arg0: Vec4f) -> None: ...
    @typing.overload
    def __init__(self, arg0: buffer) -> None: ...
    @typing.overload
    def __init__(self, arg0: float) -> None: ...
    @typing.overload
    def __init__(self, arg0: float, arg1: float, arg2: float, arg3: float) -> None: ...
    @typing.overload
    def __init__(self, arg0: typing.Tuple[float, float, float, float]) -> None: ...
    def __isub__(self, arg0: Vec4f) -> Vec4f: ...
    def __itruediv__(self, arg0: float) -> Vec4f: ...
    def __len__(self) -> int: ...
    @typing.overload
    def __mul__(self, arg0: Vec4f) -> float: ...
    @typing.overload
    def __mul__(self, arg0: float) -> Vec4f: ...
    @staticmethod
    @typing.overload
    def __ne__(*args, **kwargs) -> typing.Any: ...
    @typing.overload
    def __ne__(self, arg0: Vec4f) -> bool: ...
    def __neg__(self) -> Vec4f: ...
    def __repr__(self) -> str: ...
    def __rmul__(self, arg0: float) -> Vec4f: ...
    @typing.overload
    def __setitem__(self, arg0: int, arg1: float) -> None: ...
    @typing.overload
    def __setitem__(self, arg0: slice, arg1: sequence) -> None: ...
    def __str__(self) -> str: ...
    def __sub__(self, arg0: Vec4f) -> Vec4f: ...
    def __truediv__(self, arg0: float) -> Vec4f: ...
    __hash__ = None
    __isGfVec = True
    dimension = 4
    pass
class Vec4h():
    @staticmethod
    def Axis(arg0: int) -> Vec4h: ...
    def GetComplement(self, arg0: Vec4h) -> Vec4h: ...
    def GetDot(self, arg0: Vec4h) -> GfHalf: ...
    def GetLength(self) -> float: ...
    def GetNormalized(self) -> Vec4h: ...
    def GetProjection(self, arg0: Vec4h) -> Vec4h: ...
    def Normalize(self) -> float: ...
    @staticmethod
    def WAxis() -> Vec4h: ...
    @staticmethod
    def XAxis() -> Vec4h: ...
    @staticmethod
    def YAxis() -> Vec4h: ...
    @staticmethod
    def ZAxis() -> Vec4h: ...
    def __add__(self, arg0: Vec4h) -> Vec4h: ...
    def __copy__(self) -> Vec4h: ...
    def __deepcopy__(self, memo: dict) -> Vec4h: ...
    @typing.overload
    def __eq__(self, arg0: Vec4h) -> bool: ...
    @typing.overload
    def __eq__(self, arg0: Vec4i) -> bool: ...
    @typing.overload
    def __getitem__(self, arg0: int) -> GfHalf: ...
    @typing.overload
    def __getitem__(self, arg0: slice) -> typing.List[GfHalf]: ...
    def __iadd__(self, arg0: Vec4h) -> Vec4h: ...
    def __imul__(self, arg0: GfHalf) -> Vec4h: ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, arg0: GfHalf) -> None: ...
    @typing.overload
    def __init__(self, arg0: GfHalf, arg1: GfHalf, arg2: GfHalf, arg3: GfHalf) -> None: ...
    @typing.overload
    def __init__(self, arg0: Vec4d) -> None: ...
    @typing.overload
    def __init__(self, arg0: Vec4f) -> None: ...
    @typing.overload
    def __init__(self, arg0: Vec4h) -> None: ...
    @typing.overload
    def __init__(self, arg0: Vec4i) -> None: ...
    @typing.overload
    def __init__(self, arg0: buffer) -> None: ...
    @typing.overload
    def __init__(self, arg0: typing.Tuple[GfHalf, GfHalf, GfHalf, GfHalf]) -> None: ...
    def __isub__(self, arg0: Vec4h) -> Vec4h: ...
    def __itruediv__(self, arg0: GfHalf) -> Vec4h: ...
    def __len__(self) -> int: ...
    @typing.overload
    def __mul__(self, arg0: GfHalf) -> Vec4h: ...
    @typing.overload
    def __mul__(self, arg0: Vec4h) -> GfHalf: ...
    @typing.overload
    def __ne__(self, arg0: Vec4h) -> bool: ...
    @typing.overload
    def __ne__(self, arg0: Vec4i) -> bool: ...
    def __neg__(self) -> Vec4h: ...
    def __repr__(self) -> str: ...
    def __rmul__(self, arg0: GfHalf) -> Vec4h: ...
    @typing.overload
    def __setitem__(self, arg0: int, arg1: GfHalf) -> None: ...
    @typing.overload
    def __setitem__(self, arg0: slice, arg1: sequence) -> None: ...
    def __str__(self) -> str: ...
    def __sub__(self, arg0: Vec4h) -> Vec4h: ...
    def __truediv__(self, arg0: GfHalf) -> Vec4h: ...
    __hash__ = None
    __isGfVec = True
    dimension = 4
    pass
class Vec4i():
    @staticmethod
    def Axis(arg0: int) -> Vec4i: ...
    def GetComplement(self, arg0: Vec4i) -> Vec4i: ...
    def GetDot(self, arg0: Vec4i) -> int: ...
    def GetLength(self) -> float: ...
    def GetNormalized(self) -> Vec4i: ...
    def GetProjection(self, arg0: Vec4i) -> Vec4i: ...
    def Normalize(self) -> float: ...
    @staticmethod
    def WAxis() -> Vec4i: ...
    @staticmethod
    def XAxis() -> Vec4i: ...
    @staticmethod
    def YAxis() -> Vec4i: ...
    @staticmethod
    def ZAxis() -> Vec4i: ...
    def __add__(self, arg0: Vec4i) -> Vec4i: ...
    def __copy__(self) -> Vec4i: ...
    def __deepcopy__(self, memo: dict) -> Vec4i: ...
    def __eq__(self, arg0: Vec4i) -> bool: ...
    @typing.overload
    def __getitem__(self, arg0: int) -> int: ...
    @typing.overload
    def __getitem__(self, arg0: slice) -> typing.List[int]: ...
    def __iadd__(self, arg0: Vec4i) -> Vec4i: ...
    def __imul__(self, arg0: int) -> Vec4i: ...
    @staticmethod
    @typing.overload
    def __init__(*args, **kwargs) -> typing.Any: ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, arg0: Vec4d) -> None: ...
    @typing.overload
    def __init__(self, arg0: Vec4f) -> None: ...
    @typing.overload
    def __init__(self, arg0: Vec4i) -> None: ...
    @typing.overload
    def __init__(self, arg0: buffer) -> None: ...
    @typing.overload
    def __init__(self, arg0: int) -> None: ...
    @typing.overload
    def __init__(self, arg0: int, arg1: int, arg2: int, arg3: int) -> None: ...
    @typing.overload
    def __init__(self, arg0: typing.Tuple[int, int, int, int]) -> None: ...
    def __isub__(self, arg0: Vec4i) -> Vec4i: ...
    def __itruediv__(self, arg0: int) -> Vec4i: ...
    def __len__(self) -> int: ...
    @typing.overload
    def __mul__(self, arg0: Vec4i) -> int: ...
    @typing.overload
    def __mul__(self, arg0: int) -> Vec4i: ...
    def __ne__(self, arg0: Vec4i) -> bool: ...
    def __neg__(self) -> Vec4i: ...
    def __repr__(self) -> str: ...
    def __rmul__(self, arg0: int) -> Vec4i: ...
    @typing.overload
    def __setitem__(self, arg0: int, arg1: int) -> None: ...
    @typing.overload
    def __setitem__(self, arg0: slice, arg1: sequence) -> None: ...
    def __str__(self) -> str: ...
    def __sub__(self, arg0: Vec4i) -> Vec4i: ...
    def __truediv__(self, arg0: int) -> Vec4i: ...
    __hash__ = None
    __isGfVec = True
    dimension = 4
    pass
@typing.overload
def CompDiv(arg0: Vec2d, arg1: Vec2d) -> Vec2d:
    pass
@typing.overload
def CompDiv(arg0: Vec2f, arg1: Vec2f) -> Vec2f:
    pass
@typing.overload
def CompDiv(arg0: Vec2h, arg1: Vec2h) -> Vec2h:
    pass
@typing.overload
def CompDiv(arg0: Vec2i, arg1: Vec2i) -> Vec2i:
    pass
@typing.overload
def CompDiv(arg0: Vec3d, arg1: Vec3d) -> Vec3d:
    pass
@typing.overload
def CompDiv(arg0: Vec3f, arg1: Vec3f) -> Vec3f:
    pass
@typing.overload
def CompDiv(arg0: Vec3h, arg1: Vec3h) -> Vec3h:
    pass
@typing.overload
def CompDiv(arg0: Vec3i, arg1: Vec3i) -> Vec3i:
    pass
@typing.overload
def CompDiv(arg0: Vec4d, arg1: Vec4d) -> Vec4d:
    pass
@typing.overload
def CompDiv(arg0: Vec4f, arg1: Vec4f) -> Vec4f:
    pass
@typing.overload
def CompDiv(arg0: Vec4h, arg1: Vec4h) -> Vec4h:
    pass
@typing.overload
def CompDiv(arg0: Vec4i, arg1: Vec4i) -> Vec4i:
    pass
@typing.overload
def CompMult(arg0: Vec2d, arg1: Vec2d) -> Vec2d:
    pass
@typing.overload
def CompMult(arg0: Vec2f, arg1: Vec2f) -> Vec2f:
    pass
@typing.overload
def CompMult(arg0: Vec2h, arg1: Vec2h) -> Vec2h:
    pass
@typing.overload
def CompMult(arg0: Vec2i, arg1: Vec2i) -> Vec2i:
    pass
@typing.overload
def CompMult(arg0: Vec3d, arg1: Vec3d) -> Vec3d:
    pass
@typing.overload
def CompMult(arg0: Vec3f, arg1: Vec3f) -> Vec3f:
    pass
@typing.overload
def CompMult(arg0: Vec3h, arg1: Vec3h) -> Vec3h:
    pass
@typing.overload
def CompMult(arg0: Vec3i, arg1: Vec3i) -> Vec3i:
    pass
@typing.overload
def CompMult(arg0: Vec4d, arg1: Vec4d) -> Vec4d:
    pass
@typing.overload
def CompMult(arg0: Vec4f, arg1: Vec4f) -> Vec4f:
    pass
@typing.overload
def CompMult(arg0: Vec4h, arg1: Vec4h) -> Vec4h:
    pass
@typing.overload
def CompMult(arg0: Vec4i, arg1: Vec4i) -> Vec4i:
    pass
@typing.overload
def Cross(arg0: Vec3d, arg1: Vec3d) -> Vec3d:
    pass
@typing.overload
def Cross(arg0: Vec3f, arg1: Vec3f) -> Vec3f:
    pass
@typing.overload
def Cross(arg0: Vec3h, arg1: Vec3h) -> Vec3h:
    pass
@typing.overload
def Cross(arg0: Vec3i, arg1: Vec3i) -> Vec3i:
    pass
def DegreesToRadians(arg0: float) -> float:
    pass
@typing.overload
def Dot(arg0: Quatd, arg1: Quatd) -> float:
    pass
@typing.overload
def Dot(arg0: Quatf, arg1: Quatf) -> float:
    pass
@typing.overload
def Dot(arg0: Quath, arg1: Quath) -> GfHalf:
    pass
@typing.overload
def Dot(arg0: Vec2d, arg1: Vec2d) -> float:
    pass
@typing.overload
def Dot(arg0: Vec2f, arg1: Vec2f) -> float:
    pass
@typing.overload
def Dot(arg0: Vec2h, arg1: Vec2h) -> GfHalf:
    pass
@typing.overload
def Dot(arg0: Vec2i, arg1: Vec2i) -> int:
    pass
@typing.overload
def Dot(arg0: Vec3d, arg1: Vec3d) -> float:
    pass
@typing.overload
def Dot(arg0: Vec3f, arg1: Vec3f) -> float:
    pass
@typing.overload
def Dot(arg0: Vec3h, arg1: Vec3h) -> GfHalf:
    pass
@typing.overload
def Dot(arg0: Vec3i, arg1: Vec3i) -> int:
    pass
@typing.overload
def Dot(arg0: Vec4d, arg1: Vec4d) -> float:
    pass
@typing.overload
def Dot(arg0: Vec4f, arg1: Vec4f) -> float:
    pass
@typing.overload
def Dot(arg0: Vec4h, arg1: Vec4h) -> GfHalf:
    pass
@typing.overload
def Dot(arg0: Vec4i, arg1: Vec4i) -> int:
    pass
@typing.overload
def GetComplement(arg0: Vec2d, arg1: Vec2d) -> Vec2d:
    pass
@typing.overload
def GetComplement(arg0: Vec2f, arg1: Vec2f) -> Vec2f:
    pass
@typing.overload
def GetComplement(arg0: Vec2h, arg1: Vec2h) -> Vec2h:
    pass
@typing.overload
def GetComplement(arg0: Vec2i, arg1: Vec2i) -> Vec2i:
    pass
@typing.overload
def GetComplement(arg0: Vec3d, arg1: Vec3d) -> Vec3d:
    pass
@typing.overload
def GetComplement(arg0: Vec3f, arg1: Vec3f) -> Vec3f:
    pass
@typing.overload
def GetComplement(arg0: Vec3h, arg1: Vec3h) -> Vec3h:
    pass
@typing.overload
def GetComplement(arg0: Vec3i, arg1: Vec3i) -> Vec3i:
    pass
@typing.overload
def GetComplement(arg0: Vec4d, arg1: Vec4d) -> Vec4d:
    pass
@typing.overload
def GetComplement(arg0: Vec4f, arg1: Vec4f) -> Vec4f:
    pass
@typing.overload
def GetComplement(arg0: Vec4h, arg1: Vec4h) -> Vec4h:
    pass
@typing.overload
def GetComplement(arg0: Vec4i, arg1: Vec4i) -> Vec4i:
    pass
@typing.overload
def GetLength(arg0: Vec2d) -> float:
    pass
@typing.overload
def GetLength(arg0: Vec2f) -> float:
    pass
@typing.overload
def GetLength(arg0: Vec2h) -> float:
    pass
@typing.overload
def GetLength(arg0: Vec2i) -> float:
    pass
@typing.overload
def GetLength(arg0: Vec3d) -> float:
    pass
@typing.overload
def GetLength(arg0: Vec3f) -> float:
    pass
@typing.overload
def GetLength(arg0: Vec3h) -> float:
    pass
@typing.overload
def GetLength(arg0: Vec3i) -> float:
    pass
@typing.overload
def GetLength(arg0: Vec4d) -> float:
    pass
@typing.overload
def GetLength(arg0: Vec4f) -> float:
    pass
@typing.overload
def GetLength(arg0: Vec4h) -> float:
    pass
@typing.overload
def GetLength(arg0: Vec4i) -> float:
    pass
@typing.overload
def GetNormalized(arg0: Vec2d) -> Vec2d:
    pass
@typing.overload
def GetNormalized(arg0: Vec2f) -> Vec2f:
    pass
@typing.overload
def GetNormalized(arg0: Vec2h) -> Vec2h:
    pass
@typing.overload
def GetNormalized(arg0: Vec2i) -> Vec2i:
    pass
@typing.overload
def GetNormalized(arg0: Vec3d) -> Vec3d:
    pass
@typing.overload
def GetNormalized(arg0: Vec3f) -> Vec3f:
    pass
@typing.overload
def GetNormalized(arg0: Vec3h) -> Vec3h:
    pass
@typing.overload
def GetNormalized(arg0: Vec3i) -> Vec3i:
    pass
@typing.overload
def GetNormalized(arg0: Vec4d) -> Vec4d:
    pass
@typing.overload
def GetNormalized(arg0: Vec4f) -> Vec4f:
    pass
@typing.overload
def GetNormalized(arg0: Vec4h) -> Vec4h:
    pass
@typing.overload
def GetNormalized(arg0: Vec4i) -> Vec4i:
    pass
@typing.overload
def GetProjection(arg0: Vec2d, arg1: Vec2d) -> Vec2d:
    pass
@typing.overload
def GetProjection(arg0: Vec2f, arg1: Vec2f) -> Vec2f:
    pass
@typing.overload
def GetProjection(arg0: Vec2h, arg1: Vec2h) -> Vec2h:
    pass
@typing.overload
def GetProjection(arg0: Vec2i, arg1: Vec2i) -> Vec2i:
    pass
@typing.overload
def GetProjection(arg0: Vec3d, arg1: Vec3d) -> Vec3d:
    pass
@typing.overload
def GetProjection(arg0: Vec3f, arg1: Vec3f) -> Vec3f:
    pass
@typing.overload
def GetProjection(arg0: Vec3h, arg1: Vec3h) -> Vec3h:
    pass
@typing.overload
def GetProjection(arg0: Vec3i, arg1: Vec3i) -> Vec3i:
    pass
@typing.overload
def GetProjection(arg0: Vec4d, arg1: Vec4d) -> Vec4d:
    pass
@typing.overload
def GetProjection(arg0: Vec4f, arg1: Vec4f) -> Vec4f:
    pass
@typing.overload
def GetProjection(arg0: Vec4h, arg1: Vec4h) -> Vec4h:
    pass
@typing.overload
def GetProjection(arg0: Vec4i, arg1: Vec4i) -> Vec4i:
    pass
@typing.overload
def IsClose(arg0: Matrix4d, arg1: Matrix4d, arg2: float) -> bool:
    pass
@typing.overload
def IsClose(arg0: Matrix4f, arg1: Matrix4f, arg2: float) -> bool:
    pass
@typing.overload
def IsClose(arg0: Quatd, arg1: Quatd, arg2: float) -> bool:
    pass
@typing.overload
def IsClose(arg0: Quatf, arg1: Quatf, arg2: float) -> bool:
    pass
@typing.overload
def IsClose(arg0: Quath, arg1: Quath, arg2: float) -> bool:
    pass
@typing.overload
def IsClose(arg0: Vec2d, arg1: Vec2d, arg2: float) -> bool:
    pass
@typing.overload
def IsClose(arg0: Vec2f, arg1: Vec2f, arg2: float) -> bool:
    pass
@typing.overload
def IsClose(arg0: Vec2h, arg1: Vec2h, arg2: float) -> bool:
    pass
@typing.overload
def IsClose(arg0: Vec2i, arg1: Vec2i, arg2: float) -> bool:
    pass
@typing.overload
def IsClose(arg0: Vec3d, arg1: Vec3d, arg2: float) -> bool:
    pass
@typing.overload
def IsClose(arg0: Vec3f, arg1: Vec3f, arg2: float) -> bool:
    pass
@typing.overload
def IsClose(arg0: Vec3h, arg1: Vec3h, arg2: float) -> bool:
    pass
@typing.overload
def IsClose(arg0: Vec3i, arg1: Vec3i, arg2: float) -> bool:
    pass
@typing.overload
def IsClose(arg0: Vec4d, arg1: Vec4d, arg2: float) -> bool:
    pass
@typing.overload
def IsClose(arg0: Vec4f, arg1: Vec4f, arg2: float) -> bool:
    pass
@typing.overload
def IsClose(arg0: Vec4h, arg1: Vec4h, arg2: float) -> bool:
    pass
@typing.overload
def IsClose(arg0: Vec4i, arg1: Vec4i, arg2: float) -> bool:
    pass
@typing.overload
def IsClose(arg0: float, arg1: float, arg2: float) -> bool:
    pass
@typing.overload
def Lerp(alpha: float, a: Vec2d, b: Vec2d) -> Vec2d:
    pass
@typing.overload
def Lerp(alpha: float, a: Vec2f, b: Vec2f) -> Vec2f:
    pass
@typing.overload
def Lerp(alpha: float, a: Vec2h, b: Vec2h) -> Vec2h:
    pass
@typing.overload
def Lerp(alpha: float, a: Vec2i, b: Vec2i) -> Vec2i:
    pass
@typing.overload
def Lerp(alpha: float, a: Vec3d, b: Vec3d) -> Vec3d:
    pass
@typing.overload
def Lerp(alpha: float, a: Vec3f, b: Vec3f) -> Vec3f:
    pass
@typing.overload
def Lerp(alpha: float, a: Vec3h, b: Vec3h) -> Vec3h:
    pass
@typing.overload
def Lerp(alpha: float, a: Vec3i, b: Vec3i) -> Vec3i:
    pass
@typing.overload
def Lerp(alpha: float, a: Vec4d, b: Vec4d) -> Vec4d:
    pass
@typing.overload
def Lerp(alpha: float, a: Vec4f, b: Vec4f) -> Vec4f:
    pass
@typing.overload
def Lerp(alpha: float, a: Vec4h, b: Vec4h) -> Vec4h:
    pass
@typing.overload
def Lerp(alpha: float, a: Vec4i, b: Vec4i) -> Vec4i:
    pass
@typing.overload
def Lerp(alpha: float, a: float, b: float) -> float:
    pass
def Lerpf(alpha: float, a: float, b: float) -> float:
    pass
@typing.overload
def Max(arg0: float, arg1: float) -> float:
    pass
@typing.overload
def Max(arg0: float, arg1: float, arg2: float) -> float:
    pass
@typing.overload
def Max(arg0: float, arg1: float, arg2: float, arg3: float) -> float:
    pass
@typing.overload
def Max(arg0: float, arg1: float, arg2: float, arg3: float, arg4: float) -> float:
    pass
@typing.overload
def Max(arg0: int, arg1: int) -> int:
    pass
@typing.overload
def Max(arg0: int, arg1: int, arg2: int) -> int:
    pass
@typing.overload
def Max(arg0: int, arg1: int, arg2: int, arg3: int) -> int:
    pass
@typing.overload
def Max(arg0: int, arg1: int, arg2: int, arg3: int, arg4: int) -> int:
    pass
@typing.overload
def Min(arg0: float, arg1: float) -> float:
    pass
@typing.overload
def Min(arg0: float, arg1: float, arg2: float) -> float:
    pass
@typing.overload
def Min(arg0: float, arg1: float, arg2: float, arg3: float) -> float:
    pass
@typing.overload
def Min(arg0: float, arg1: float, arg2: float, arg3: float, arg4: float) -> float:
    pass
@typing.overload
def Min(arg0: int, arg1: int) -> int:
    pass
@typing.overload
def Min(arg0: int, arg1: int, arg2: int) -> int:
    pass
@typing.overload
def Min(arg0: int, arg1: int, arg2: int, arg3: int) -> int:
    pass
@typing.overload
def Min(arg0: int, arg1: int, arg2: int, arg3: int, arg4: int) -> int:
    pass
@typing.overload
def Normalize(arg0: Vec2d) -> float:
    pass
@typing.overload
def Normalize(arg0: Vec2f) -> float:
    pass
@typing.overload
def Normalize(arg0: Vec2h) -> float:
    pass
@typing.overload
def Normalize(arg0: Vec2i) -> float:
    pass
@typing.overload
def Normalize(arg0: Vec3d) -> float:
    pass
@typing.overload
def Normalize(arg0: Vec3f) -> float:
    pass
@typing.overload
def Normalize(arg0: Vec3h) -> float:
    pass
@typing.overload
def Normalize(arg0: Vec3i) -> float:
    pass
@typing.overload
def Normalize(arg0: Vec4d) -> float:
    pass
@typing.overload
def Normalize(arg0: Vec4f) -> float:
    pass
@typing.overload
def Normalize(arg0: Vec4h) -> float:
    pass
@typing.overload
def Normalize(arg0: Vec4i) -> float:
    pass
def RadiansToDegrees(arg0: float) -> float:
    pass
@typing.overload
def Slerp(alpha: float, v1: Vec2d, v2: Vec2d) -> Vec2d:
    pass
@typing.overload
def Slerp(alpha: float, v1: Vec2f, v2: Vec2f) -> Vec2f:
    pass
@typing.overload
def Slerp(alpha: float, v1: Vec2h, v2: Vec2h) -> Vec2h:
    pass
@typing.overload
def Slerp(alpha: float, v1: Vec2i, v2: Vec2i) -> Vec2i:
    pass
@typing.overload
def Slerp(alpha: float, v1: Vec3d, v2: Vec3d) -> Vec3d:
    pass
@typing.overload
def Slerp(alpha: float, v1: Vec3f, v2: Vec3f) -> Vec3f:
    pass
@typing.overload
def Slerp(alpha: float, v1: Vec3h, v2: Vec3h) -> Vec3h:
    pass
@typing.overload
def Slerp(alpha: float, v1: Vec3i, v2: Vec3i) -> Vec3i:
    pass
@typing.overload
def Slerp(alpha: float, v1: Vec4d, v2: Vec4d) -> Vec4d:
    pass
@typing.overload
def Slerp(alpha: float, v1: Vec4f, v2: Vec4f) -> Vec4f:
    pass
@typing.overload
def Slerp(alpha: float, v1: Vec4h, v2: Vec4h) -> Vec4h:
    pass
@typing.overload
def Slerp(alpha: float, v1: Vec4i, v2: Vec4i) -> Vec4i:
    pass
@typing.overload
def Slerp(arg0: float, arg1: Quatd, arg2: Quatd) -> Quatd:
    pass
@typing.overload
def Slerp(arg0: float, arg1: Quatf, arg2: Quatf) -> Quatf:
    pass
@typing.overload
def Slerp(arg0: float, arg1: Quath, arg2: Quath) -> Quath:
    pass
