# Path: vulk/math/vector.py
# class Vector():
# class XMixin():
# class YMixin():
# class ZMixin():
# class WMixin():
# class Vector2(Vector, XMixin, YMixin):
# class Vector3(Vector, XMixin, YMixin, ZMixin):
# class Vector4(Vector, XMixin, YMixin, ZMixin, WMixin):
#     def __init__(self, values):
#     def __iter__(self):
#     def __len__(self):
#     def __add__(self, value):
#     def __iadd__(self, value):
#     def __sub__(self, value):
#     def __isub__(self, value):
#     def __mul__(self, value):
#     def __imul__(self, value):
#     def __matmul__(self, value):
#     def __imatmul__(self, value):
#     def __truediv__(self, value):
#     def __itruediv__(self, value):
#     def __str__(self):
#     def __eq__(self, other):
#     def __copy__(self):
#     def values(self):
#     def values(self, values):
#     def size(self):
#     def nor(self):
#     def crs(self, vector):
#     def crs2(self, values):
#     def sub(self, vector):
#     def sub2(self, values):
#     def add(self, vector):
#     def add2(self, values):
#     def x(self):
#     def x(self, value):
#     def y(self):
#     def y(self, value):
#     def z(self):
#     def z(self, value):
#     def w(self):
#     def w(self, value):
#     def __init__(self, values=None):
#     def __init__(self, values=None):
#     def mul(self, vector):
#     def mul2(self, matrix):
#     def prj(self, matrix):
#     def set(self, x, y, z):
#     def set2(self, vector):
#     def __init__(self, values=None):
#     def set(self, vector):
#     def set2(self, vector):
#     def mul(self, vector):
#     def mul2(self, matrix):
#     def norw(self):
#     X = None
#     Y = None
#     X = None
#     Y = None
#     Z = None


from vulk.math import vector


class Plane():
    OnPlane = 1
    Back = 2
    Front = 3

    def __init__(self, normal=None, distance=0):

# Path: vulk/math/vector.py
# class Vector():
# class XMixin():
# class YMixin():
# class ZMixin():
# class WMixin():
# class Vector2(Vector, XMixin, YMixin):
# class Vector3(Vector, XMixin, YMixin, ZMixin):
# class Vector4(Vector, XMixin, YMixin, ZMixin, WMixin):
#     def __init__(self, values):
#     def __iter__(self):
#     def __len__(self):
#     def __add__(self, value):
#     def __iadd__(self, value):
#     def __sub__(self, value):
#     def __isub__(self, value):
#     def __mul__(self, value):
#     def __imul__(self, value):
#     def __matmul__(self, value):
#     def __imatmul__(self, value):
#     def __truediv__(self, value):
#     def __itruediv__(self, value):
#     def __str__(self):
#     def __eq__(self, other):
#     def __copy__(self):
#     def values(self):
#     def values(self, values):
#     def size(self):
#     def nor(self):
#     def crs(self, vector):
#     def crs2(self, values):
#     def sub(self, vector):
#     def sub2(self, values):
#     def add(self, vector):
#     def add2(self, values):
#     def x(self):
#     def x(self, value):
#     def y(self):
#     def y(self, value):
#     def z(self):
#     def z(self, value):
#     def w(self):
#     def w(self, value):
#     def __init__(self, values=None):
#     def __init__(self, values=None):
#     def mul(self, vector):
#     def mul2(self, matrix):
#     def prj(self, matrix):
#     def set(self, x, y, z):
#     def set2(self, vector):
#     def __init__(self, values=None):
#     def set(self, vector):
#     def set2(self, vector):
#     def mul(self, vector):
#     def mul2(self, matrix):
#     def norw(self):
#     X = None
#     Y = None
#     X = None
#     Y = None
#     Z = None


# Path: vulk/math/plane.py
from vulk.math import vector



class Plane():
    OnPlane = 1
    Back = 2
    Front = 3

    def __init__(self, normal=None, distance=0):

        if not normal: