from ..VarType import *

class PyGeVector3d(vDoubleArray):
    def __init__(self, *args) -> None: ...
    @property
    def x(self): ...
    @x.setter
    def x(self, value) -> None: ...
    @property
    def y(self): ...
    @y.setter
    def y(self, value) -> None: ...
    @property
    def z(self): ...
    @z.setter
    def z(self, value) -> None: ...
    def __add__(self, vector: PyGeVector3d) -> PyGeVector3d: ...
    def __sub__(self, vector: PyGeVector3d) -> PyGeVector3d: ...
    def __mul__(self, scalar: int | float) -> PyGeVector3d: ...
    def __rmul__(self, scalar: int | float) -> PyGeVector3d: ...
    def __truediv__(self, scalar: int | float) -> PyGeVector3d: ...
    def __neg__(self) -> PyGeVector3d: ...
    def __iadd__(self, vector) -> PyGeVector3d: ...
    def __isub__(self, vector) -> PyGeVector3d: ...
    def __imul__(self, scalar) -> PyGeVector3d: ...
    def __itruediv__(self, scalar) -> PyGeVector3d: ...
    def length(self) -> float: ...
    def lengthSqrd(self) -> float: ...
    def normalize(self) -> None: ...
    def normal(self) -> PyGeVector3d: ...
    def dotProduct(self, vector: PyGeVector3d) -> float: ...
    def crossProduct(self, vector: PyGeVector3d) -> PyGeVector3d: ...
    def angleTo(self, vector: PyGeVector3d) -> float: ...
    def isEqualTo(self, vector: PyGeVector3d, tolerance: float = 1e-09) -> bool: ...
    def negate(self) -> None: ...
    kIdentity: PyGeVector3d
    kXaxis: PyGeVector3d
    kYaxis: PyGeVector3d
    kZaxis: PyGeVector3d

class PyGeVector2d(vDoubleArray):
    def __init__(self, *args) -> None: ...
    @property
    def x(self): ...
    @x.setter
    def x(self, value) -> None: ...
    @property
    def y(self): ...
    @y.setter
    def y(self, value) -> None: ...
    def __add__(self, vector: PyGeVector2d) -> PyGeVector3d: ...
    def __sub__(self, vector: PyGeVector2d) -> PyGeVector2d: ...
    def __mul__(self, scalar: int | float) -> PyGeVector2d: ...
    def __rmul__(self, scalar: int | float) -> PyGeVector2d: ...
    def __truediv__(self, scalar: int | float) -> PyGeVector2d: ...
    def __neg__(self) -> PyGeVector2d: ...
    def __iadd__(self, vector) -> PyGeVector2d: ...
    def __isub__(self, vector) -> PyGeVector2d: ...
    def __imul__(self, scalar) -> PyGeVector2d: ...
    def __itruediv__(self, scalar) -> PyGeVector2d: ...
    def length(self) -> float: ...
    def lengthSqrd(self) -> float: ...
    def normalize(self) -> PyGeVector2d: ...
    def normal(self) -> PyGeVector2d: ...
    def dotProduct(self, vector: PyGeVector2d) -> float: ...
    def crossProduct(self, vector: PyGeVector2d) -> float: ...
    def angleTo(self, vector: PyGeVector2d) -> float: ...
    def isEqualTo(self, vector: PyGeVector2d, tolerance: float = 1e-09) -> bool: ...
    def negate(self) -> PyGeVector2d: ...
    kIdentity: PyGeVector2d
    kXaxis: PyGeVector2d
    kYaxis: PyGeVector2d
