From be80cbbe4713c491581496ac064aaeeafcd13ea8 Mon Sep 17 00:00:00 2001 From: Zuzu-Typ Date: Fri, 13 Jan 2023 11:32:04 +0100 Subject: [PATCH 1/5] Updated PyGLM packaging structure + Using setuptools + build now + Using VERSION for the version constant + Using pyproject.toml instead of just setup.py + PyGLM is now packaged as: + PyGLM (root package) + .glm (library) + .glm_typing (typing stubs) + glm (for backwards compatibility) --- .gitmodules | 2 +- MANIFEST.in | 10 - PyGLM/__init__.py | 3 + PyGLM/__init__.pyi | 19284 ++++++++++++++++ PyGLM/glm_typing.py | 530 + PyGLM.cpp => PyGLM_lib/PyGLM.cpp | 2 + {PyGLM => PyGLM_lib/PyGLM}/compiler_setup.h | 0 {PyGLM => PyGLM_lib/PyGLM}/functions/all.h | 0 .../PyGLM}/functions/detail/all.h | 0 .../PyGLM}/functions/detail/func_common.h | 0 .../functions/detail/func_exponential.h | 0 .../PyGLM}/functions/detail/func_geometric.h | 0 .../PyGLM}/functions/detail/func_integer.h | 0 .../PyGLM}/functions/detail/func_matrix.h | 0 .../PyGLM}/functions/detail/func_packing.h | 0 .../functions/detail/func_trigonometric.h | 0 .../functions/detail/func_vector_relational.h | 0 .../functions/function_generator_macros.h | 0 .../PyGLM}/functions/other/all.h | 0 .../PyGLM}/functions/other/binary.h | 0 .../PyGLM}/functions/other/custom.h | 0 .../PyGLM}/functions/other/ternary.h | 0 .../PyGLM}/functions/other/unary.h | 0 .../PyGLM}/functions/stable_extensions/all.h | 0 .../functions/stable_extensions/color_space.h | 0 .../functions/stable_extensions/constants.h | 0 .../functions/stable_extensions/epsilon.h | 0 .../functions/stable_extensions/integer.h | 0 .../stable_extensions/matrix_access.h | 0 .../stable_extensions/matrix_clip_space.h | 0 .../stable_extensions/matrix_inverse.h | 0 .../stable_extensions/matrix_projection.h | 0 .../stable_extensions/matrix_transform.h | 0 .../functions/stable_extensions/noise.h | 0 .../functions/stable_extensions/packing.h | 0 .../functions/stable_extensions/quaternion.h | 0 .../stable_extensions/quaternion_common.h | 0 .../quaternion_trigonometric.h | 0 .../functions/stable_extensions/random.h | 0 .../functions/stable_extensions/reciprocal.h | 0 .../functions/stable_extensions/round.h | 0 .../functions/stable_extensions/type_ptr.h | 0 .../PyGLM}/functions/stable_extensions/ulp.h | 0 .../functions/unstable_extensions/all.h | 0 .../unstable_extensions/compatibility.h | 0 .../unstable_extensions/matrix_decompose.h | 0 .../unstable_extensions/matrix_transform_2d.h | 0 .../functions/unstable_extensions/norm.h | 0 .../unstable_extensions/polar_coordinates.h | 0 .../unstable_extensions/rotate_vector.h | 0 {PyGLM => PyGLM_lib/PyGLM}/imports.h | 0 .../PyGLM}/internal_functions/all.h | 0 .../internal_functions/ctypes_pointers.h | 0 .../internal_functions/error_functions.h | 0 .../PyGLM}/internal_functions/helper_macros.h | 0 .../internal_functions/number_functions.h | 0 .../PyGLM}/internal_functions/packers.h | 0 .../PyGLM}/internal_functions/type_checkers.h | 0 .../internal_functions/type_getters/all.h | 0 .../type_getters/ctypes_datatypes.h | 0 .../internal_functions/type_getters/mat.h | 0 .../type_getters/mat_iter.h | 0 .../internal_functions/type_getters/mvec.h | 0 .../type_getters/mvec_iter.h | 0 .../internal_functions/type_getters/qua.h | 0 .../type_getters/qua_iter.h | 0 .../type_getters/type_checkers.h | 0 .../internal_functions/type_getters/vec.h | 0 .../type_getters/vec_iter.h | 0 .../PyGLM}/internal_functions/unpackers.h | 0 .../PyGLM}/internal_functions/version_info.h | 0 .../PyGLM}/internal_functions/warnings.h | 0 {PyGLM => PyGLM_lib/PyGLM}/type_methods/all.h | 0 .../PyGLM}/type_methods/glmArray.h | 0 {PyGLM => PyGLM_lib/PyGLM}/type_methods/mat.h | 0 .../PyGLM}/type_methods/mvec.h | 0 {PyGLM => PyGLM_lib/PyGLM}/type_methods/qua.h | 0 {PyGLM => PyGLM_lib/PyGLM}/type_methods/vec.h | 0 {PyGLM => PyGLM_lib/PyGLM}/types/all.h | 0 .../PyGLM}/types/forward_declarations.h | 0 .../types/glmArray/forward_declarations.h | 0 .../PyGLM}/types/glmArray/glmArray.h | 0 {PyGLM => PyGLM_lib/PyGLM}/types/mat/all.h | 0 .../PyGLM}/types/mat/double/all.h | 0 .../PyGLM}/types/mat/double/mat2x2.h | 0 .../PyGLM}/types/mat/double/mat2x3.h | 0 .../PyGLM}/types/mat/double/mat2x4.h | 0 .../PyGLM}/types/mat/double/mat3x2.h | 0 .../PyGLM}/types/mat/double/mat3x3.h | 0 .../PyGLM}/types/mat/double/mat3x4.h | 0 .../PyGLM}/types/mat/double/mat4x2.h | 0 .../PyGLM}/types/mat/double/mat4x3.h | 0 .../PyGLM}/types/mat/double/mat4x4.h | 0 .../PyGLM}/types/mat/float/all.h | 0 .../PyGLM}/types/mat/float/mat2x2.h | 0 .../PyGLM}/types/mat/float/mat2x3.h | 0 .../PyGLM}/types/mat/float/mat2x4.h | 0 .../PyGLM}/types/mat/float/mat3x2.h | 0 .../PyGLM}/types/mat/float/mat3x3.h | 0 .../PyGLM}/types/mat/float/mat3x4.h | 0 .../PyGLM}/types/mat/float/mat4x2.h | 0 .../PyGLM}/types/mat/float/mat4x3.h | 0 .../PyGLM}/types/mat/float/mat4x4.h | 0 .../PyGLM}/types/mat/forward_declarations.h | 0 .../PyGLM}/types/mat/int/all.h | 0 .../PyGLM}/types/mat/int/mat2x2.h | 0 .../PyGLM}/types/mat/int/mat2x3.h | 0 .../PyGLM}/types/mat/int/mat2x4.h | 0 .../PyGLM}/types/mat/int/mat3x2.h | 0 .../PyGLM}/types/mat/int/mat3x3.h | 0 .../PyGLM}/types/mat/int/mat3x4.h | 0 .../PyGLM}/types/mat/int/mat4x2.h | 0 .../PyGLM}/types/mat/int/mat4x3.h | 0 .../PyGLM}/types/mat/int/mat4x4.h | 0 .../PyGLM}/types/mat/uint/all.h | 0 .../PyGLM}/types/mat/uint/float.h | 0 .../types/mat/uint/forward_declarations.h | 0 .../PyGLM}/types/mat/uint/mat2x2.h | 0 .../PyGLM}/types/mat/uint/mat2x3.h | 0 .../PyGLM}/types/mat/uint/mat2x4.h | 0 .../PyGLM}/types/mat/uint/mat3x2.h | 0 .../PyGLM}/types/mat/uint/mat3x3.h | 0 .../PyGLM}/types/mat/uint/mat3x4.h | 0 .../PyGLM}/types/mat/uint/mat4x2.h | 0 .../PyGLM}/types/mat/uint/mat4x3.h | 0 .../PyGLM}/types/mat/uint/mat4x4.h | 0 {PyGLM => PyGLM_lib/PyGLM}/types/mvec/all.h | 0 .../PyGLM}/types/mvec/double/all.h | 0 .../PyGLM}/types/mvec/double/mvec2.h | 0 .../PyGLM}/types/mvec/double/mvec3.h | 0 .../PyGLM}/types/mvec/double/mvec4.h | 0 .../PyGLM}/types/mvec/float/all.h | 0 .../PyGLM}/types/mvec/float/mvec2.h | 0 .../PyGLM}/types/mvec/float/mvec3.h | 0 .../PyGLM}/types/mvec/float/mvec4.h | 0 .../PyGLM}/types/mvec/forward_declarations.h | 0 .../PyGLM}/types/mvec/int/all.h | 0 .../PyGLM}/types/mvec/int/mvec2.h | 0 .../PyGLM}/types/mvec/int/mvec3.h | 0 .../PyGLM}/types/mvec/int/mvec4.h | 0 .../PyGLM}/types/mvec/uint/all.h | 0 .../PyGLM}/types/mvec/uint/mvec2.h | 0 .../PyGLM}/types/mvec/uint/mvec3.h | 0 .../PyGLM}/types/mvec/uint/mvec4.h | 0 {PyGLM => PyGLM_lib/PyGLM}/types/qua/all.h | 0 .../PyGLM}/types/qua/double/quat.h | 0 .../PyGLM}/types/qua/float/quat.h | 0 .../PyGLM}/types/qua/forward_declarations.h | 0 {PyGLM => PyGLM_lib/PyGLM}/types/types.h | 0 {PyGLM => PyGLM_lib/PyGLM}/types/vec/all.h | 0 .../PyGLM}/types/vec/bool/all.h | 0 .../PyGLM}/types/vec/bool/vec1.h | 0 .../PyGLM}/types/vec/bool/vec2.h | 0 .../PyGLM}/types/vec/bool/vec3.h | 0 .../PyGLM}/types/vec/bool/vec4.h | 0 .../PyGLM}/types/vec/double/all.h | 0 .../PyGLM}/types/vec/double/vec1.h | 0 .../PyGLM}/types/vec/double/vec2.h | 0 .../PyGLM}/types/vec/double/vec3.h | 0 .../PyGLM}/types/vec/double/vec4.h | 0 .../PyGLM}/types/vec/float/all.h | 0 .../PyGLM}/types/vec/float/vec1.h | 0 .../PyGLM}/types/vec/float/vec2.h | 0 .../PyGLM}/types/vec/float/vec3.h | 0 .../PyGLM}/types/vec/float/vec4.h | 0 .../PyGLM}/types/vec/forward_declarations.h | 0 .../PyGLM}/types/vec/int16/all.h | 0 .../PyGLM}/types/vec/int16/vec1.h | 0 .../PyGLM}/types/vec/int16/vec2.h | 0 .../PyGLM}/types/vec/int16/vec3.h | 0 .../PyGLM}/types/vec/int16/vec4.h | 0 .../PyGLM}/types/vec/int32/all.h | 0 .../PyGLM}/types/vec/int32/vec1.h | 0 .../PyGLM}/types/vec/int32/vec2.h | 0 .../PyGLM}/types/vec/int32/vec3.h | 0 .../PyGLM}/types/vec/int32/vec4.h | 0 .../PyGLM}/types/vec/int64/all.h | 0 .../PyGLM}/types/vec/int64/vec1.h | 0 .../PyGLM}/types/vec/int64/vec2.h | 0 .../PyGLM}/types/vec/int64/vec3.h | 0 .../PyGLM}/types/vec/int64/vec4.h | 0 .../PyGLM}/types/vec/int8/all.h | 0 .../PyGLM}/types/vec/int8/vec1.h | 0 .../PyGLM}/types/vec/int8/vec2.h | 0 .../PyGLM}/types/vec/int8/vec3.h | 0 .../PyGLM}/types/vec/int8/vec4.h | 0 .../PyGLM}/types/vec/uint16/all.h | 0 .../PyGLM}/types/vec/uint16/vec1.h | 0 .../PyGLM}/types/vec/uint16/vec2.h | 0 .../PyGLM}/types/vec/uint16/vec3.h | 0 .../PyGLM}/types/vec/uint16/vec4.h | 0 .../PyGLM}/types/vec/uint32/all.h | 0 .../PyGLM}/types/vec/uint32/vec1.h | 0 .../PyGLM}/types/vec/uint32/vec2.h | 0 .../PyGLM}/types/vec/uint32/vec3.h | 0 .../PyGLM}/types/vec/uint32/vec4.h | 0 .../PyGLM}/types/vec/uint64/all.h | 0 .../PyGLM}/types/vec/uint64/vec1.h | 0 .../PyGLM}/types/vec/uint64/vec2.h | 0 .../PyGLM}/types/vec/uint64/vec3.h | 0 .../PyGLM}/types/vec/uint64/vec4.h | 0 .../PyGLM}/types/vec/uint8/all.h | 0 .../PyGLM}/types/vec/uint8/vec1.h | 0 .../PyGLM}/types/vec/uint8/vec2.h | 0 .../PyGLM}/types/vec/uint8/vec3.h | 0 .../PyGLM}/types/vec/uint8/vec4.h | 0 build_options.h => PyGLM_lib/build_options.h | 0 PyGLM_lib/glm | 1 + license.h => PyGLM_lib/license.h | 0 PyGLM_lib/version.h | 4 + VERSION | 1 + glm | 1 - glm/__init__.py | 6 + pyproject.toml | 3 + setup.cfg | 38 +- setup.py | 133 +- version.h | 1 - 217 files changed, 19880 insertions(+), 139 deletions(-) delete mode 100644 MANIFEST.in create mode 100644 PyGLM/__init__.py create mode 100644 PyGLM/__init__.pyi create mode 100644 PyGLM/glm_typing.py rename PyGLM.cpp => PyGLM_lib/PyGLM.cpp (99%) rename {PyGLM => PyGLM_lib/PyGLM}/compiler_setup.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/functions/all.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/functions/detail/all.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/functions/detail/func_common.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/functions/detail/func_exponential.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/functions/detail/func_geometric.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/functions/detail/func_integer.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/functions/detail/func_matrix.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/functions/detail/func_packing.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/functions/detail/func_trigonometric.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/functions/detail/func_vector_relational.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/functions/function_generator_macros.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/functions/other/all.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/functions/other/binary.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/functions/other/custom.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/functions/other/ternary.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/functions/other/unary.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/functions/stable_extensions/all.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/functions/stable_extensions/color_space.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/functions/stable_extensions/constants.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/functions/stable_extensions/epsilon.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/functions/stable_extensions/integer.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/functions/stable_extensions/matrix_access.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/functions/stable_extensions/matrix_clip_space.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/functions/stable_extensions/matrix_inverse.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/functions/stable_extensions/matrix_projection.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/functions/stable_extensions/matrix_transform.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/functions/stable_extensions/noise.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/functions/stable_extensions/packing.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/functions/stable_extensions/quaternion.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/functions/stable_extensions/quaternion_common.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/functions/stable_extensions/quaternion_trigonometric.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/functions/stable_extensions/random.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/functions/stable_extensions/reciprocal.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/functions/stable_extensions/round.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/functions/stable_extensions/type_ptr.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/functions/stable_extensions/ulp.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/functions/unstable_extensions/all.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/functions/unstable_extensions/compatibility.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/functions/unstable_extensions/matrix_decompose.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/functions/unstable_extensions/matrix_transform_2d.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/functions/unstable_extensions/norm.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/functions/unstable_extensions/polar_coordinates.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/functions/unstable_extensions/rotate_vector.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/imports.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/internal_functions/all.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/internal_functions/ctypes_pointers.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/internal_functions/error_functions.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/internal_functions/helper_macros.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/internal_functions/number_functions.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/internal_functions/packers.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/internal_functions/type_checkers.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/internal_functions/type_getters/all.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/internal_functions/type_getters/ctypes_datatypes.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/internal_functions/type_getters/mat.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/internal_functions/type_getters/mat_iter.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/internal_functions/type_getters/mvec.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/internal_functions/type_getters/mvec_iter.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/internal_functions/type_getters/qua.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/internal_functions/type_getters/qua_iter.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/internal_functions/type_getters/type_checkers.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/internal_functions/type_getters/vec.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/internal_functions/type_getters/vec_iter.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/internal_functions/unpackers.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/internal_functions/version_info.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/internal_functions/warnings.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/type_methods/all.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/type_methods/glmArray.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/type_methods/mat.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/type_methods/mvec.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/type_methods/qua.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/type_methods/vec.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/all.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/forward_declarations.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/glmArray/forward_declarations.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/glmArray/glmArray.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/mat/all.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/mat/double/all.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/mat/double/mat2x2.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/mat/double/mat2x3.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/mat/double/mat2x4.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/mat/double/mat3x2.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/mat/double/mat3x3.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/mat/double/mat3x4.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/mat/double/mat4x2.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/mat/double/mat4x3.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/mat/double/mat4x4.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/mat/float/all.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/mat/float/mat2x2.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/mat/float/mat2x3.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/mat/float/mat2x4.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/mat/float/mat3x2.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/mat/float/mat3x3.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/mat/float/mat3x4.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/mat/float/mat4x2.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/mat/float/mat4x3.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/mat/float/mat4x4.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/mat/forward_declarations.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/mat/int/all.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/mat/int/mat2x2.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/mat/int/mat2x3.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/mat/int/mat2x4.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/mat/int/mat3x2.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/mat/int/mat3x3.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/mat/int/mat3x4.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/mat/int/mat4x2.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/mat/int/mat4x3.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/mat/int/mat4x4.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/mat/uint/all.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/mat/uint/float.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/mat/uint/forward_declarations.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/mat/uint/mat2x2.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/mat/uint/mat2x3.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/mat/uint/mat2x4.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/mat/uint/mat3x2.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/mat/uint/mat3x3.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/mat/uint/mat3x4.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/mat/uint/mat4x2.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/mat/uint/mat4x3.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/mat/uint/mat4x4.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/mvec/all.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/mvec/double/all.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/mvec/double/mvec2.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/mvec/double/mvec3.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/mvec/double/mvec4.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/mvec/float/all.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/mvec/float/mvec2.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/mvec/float/mvec3.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/mvec/float/mvec4.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/mvec/forward_declarations.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/mvec/int/all.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/mvec/int/mvec2.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/mvec/int/mvec3.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/mvec/int/mvec4.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/mvec/uint/all.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/mvec/uint/mvec2.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/mvec/uint/mvec3.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/mvec/uint/mvec4.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/qua/all.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/qua/double/quat.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/qua/float/quat.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/qua/forward_declarations.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/types.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/vec/all.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/vec/bool/all.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/vec/bool/vec1.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/vec/bool/vec2.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/vec/bool/vec3.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/vec/bool/vec4.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/vec/double/all.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/vec/double/vec1.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/vec/double/vec2.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/vec/double/vec3.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/vec/double/vec4.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/vec/float/all.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/vec/float/vec1.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/vec/float/vec2.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/vec/float/vec3.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/vec/float/vec4.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/vec/forward_declarations.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/vec/int16/all.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/vec/int16/vec1.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/vec/int16/vec2.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/vec/int16/vec3.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/vec/int16/vec4.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/vec/int32/all.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/vec/int32/vec1.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/vec/int32/vec2.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/vec/int32/vec3.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/vec/int32/vec4.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/vec/int64/all.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/vec/int64/vec1.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/vec/int64/vec2.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/vec/int64/vec3.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/vec/int64/vec4.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/vec/int8/all.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/vec/int8/vec1.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/vec/int8/vec2.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/vec/int8/vec3.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/vec/int8/vec4.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/vec/uint16/all.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/vec/uint16/vec1.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/vec/uint16/vec2.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/vec/uint16/vec3.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/vec/uint16/vec4.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/vec/uint32/all.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/vec/uint32/vec1.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/vec/uint32/vec2.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/vec/uint32/vec3.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/vec/uint32/vec4.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/vec/uint64/all.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/vec/uint64/vec1.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/vec/uint64/vec2.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/vec/uint64/vec3.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/vec/uint64/vec4.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/vec/uint8/all.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/vec/uint8/vec1.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/vec/uint8/vec2.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/vec/uint8/vec3.h (100%) rename {PyGLM => PyGLM_lib/PyGLM}/types/vec/uint8/vec4.h (100%) rename build_options.h => PyGLM_lib/build_options.h (100%) create mode 160000 PyGLM_lib/glm rename license.h => PyGLM_lib/license.h (100%) create mode 100644 PyGLM_lib/version.h create mode 100644 VERSION delete mode 160000 glm create mode 100644 glm/__init__.py create mode 100644 pyproject.toml delete mode 100644 version.h diff --git a/.gitmodules b/.gitmodules index ee16f331..2df25807 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,4 +1,4 @@ [submodule "glm"] - path = glm + path = PyGLM_lib/glm url = https://github.com/Zuzu-Typ/glm branch = PyGLM diff --git a/MANIFEST.in b/MANIFEST.in deleted file mode 100644 index cf446ead..00000000 --- a/MANIFEST.in +++ /dev/null @@ -1,10 +0,0 @@ -include LICENSE -include COPYING -include README.md -include setup.py -include setup.cfg -include build_options.h -include version.h -include license.h -recursive-include PyGLM * -recursive-include glm * \ No newline at end of file diff --git a/PyGLM/__init__.py b/PyGLM/__init__.py new file mode 100644 index 00000000..5bad3156 --- /dev/null +++ b/PyGLM/__init__.py @@ -0,0 +1,3 @@ +from . import glm +from . import glm_typing +typing = glm_typing \ No newline at end of file diff --git a/PyGLM/__init__.pyi b/PyGLM/__init__.pyi new file mode 100644 index 00000000..8befeea5 --- /dev/null +++ b/PyGLM/__init__.pyi @@ -0,0 +1,19284 @@ + +# generated by tools/generate.py +# https://github.com/esoma/pyglm-typing/ + +import ctypes +from typing import (Any, Callable, Generator, Generic, Iterable, List, Literal, + Optional, SupportsInt, Tuple, Type, TypeVar, Union, + overload) + +from . import glm_typing + +_T = TypeVar('_T') +_VT = TypeVar('_VT', bvec1, bvec2, bvec3, bvec4, dmvec2, dmvec3, dmvec4, dvec1, dvec2, dvec3, dvec4, i16vec1, i16vec2, i16vec3, i16vec4, i64vec1, i64vec2, i64vec3, i64vec4, i8vec1, i8vec2, i8vec3, i8vec4, imvec2, imvec3, imvec4, ivec1, ivec2, ivec3, ivec4, mvec2, mvec3, mvec4, u16vec1, u16vec2, u16vec3, u16vec4, u64vec1, u64vec2, u64vec3, u64vec4, u8vec1, u8vec2, u8vec3, u8vec4, umvec2, umvec3, umvec4, uvec1, uvec2, uvec3, uvec4, vec1, vec2, vec3, vec4) +_NF32VT = TypeVar('_NF32VT', bvec1, bvec2, bvec3, bvec4, dmvec2, dmvec3, dmvec4, dvec1, dvec2, dvec3, dvec4, i16vec1, i16vec2, i16vec3, i16vec4, i64vec1, i64vec2, i64vec3, i64vec4, i8vec1, i8vec2, i8vec3, i8vec4, imvec2, imvec3, imvec4, ivec1, ivec2, ivec3, ivec4, u16vec1, u16vec2, u16vec3, u16vec4, u64vec1, u64vec2, u64vec3, u64vec4, u8vec1, u8vec2, u8vec3, u8vec4, umvec2, umvec3, umvec4, uvec1, uvec2, uvec3, uvec4) +_FDVT = TypeVar('_FDVT', dmvec2, dmvec3, dmvec4, dvec1, dvec2, dvec3, dvec4, mvec2, mvec3, mvec4, vec1, vec2, vec3, vec4) +_NF32DFVT = TypeVar('_NF32DFVT', dmvec2, dmvec3, dmvec4, dvec1, dvec2, dvec3, dvec4) +_NF32DFV1T = TypeVar('_NF32DFV1T', bound=dvec1) +_NF32DFV2T = TypeVar('_NF32DFV2T', dmvec2, dvec2) +_NF32DFV3T = TypeVar('_NF32DFV3T', dmvec3, dvec3) +_NF32DFV4T = TypeVar('_NF32DFV4T', dmvec4, dvec4) +_NF32V1T = TypeVar('_NF32V1T', bvec1, dvec1, i16vec1, i64vec1, i8vec1, ivec1, u16vec1, u64vec1, u8vec1, uvec1) +_NF32V2T = TypeVar('_NF32V2T', bvec2, dmvec2, dvec2, i16vec2, i64vec2, i8vec2, imvec2, ivec2, u16vec2, u64vec2, u8vec2, umvec2, uvec2) +_NF32V3T = TypeVar('_NF32V3T', bvec3, dmvec3, dvec3, i16vec3, i64vec3, i8vec3, imvec3, ivec3, u16vec3, u64vec3, u8vec3, umvec3, uvec3) +_NF32V4T = TypeVar('_NF32V4T', bvec4, dmvec4, dvec4, i16vec4, i64vec4, i8vec4, imvec4, ivec4, u16vec4, u64vec4, u8vec4, umvec4, uvec4) +_IVT = TypeVar('_IVT', i16vec1, i16vec2, i16vec3, i16vec4, i64vec1, i64vec2, i64vec3, i64vec4, i8vec1, i8vec2, i8vec3, i8vec4, imvec2, imvec3, imvec4, ivec1, ivec2, ivec3, ivec4) +_UVT = TypeVar('_UVT', u16vec1, u16vec2, u16vec3, u16vec4, u64vec1, u64vec2, u64vec3, u64vec4, u8vec1, u8vec2, u8vec3, u8vec4, umvec2, umvec3, umvec4, uvec1, uvec2, uvec3, uvec4) +_NI32IVT = TypeVar('_NI32IVT', i16vec1, i16vec2, i16vec3, i16vec4, i64vec1, i64vec2, i64vec3, i64vec4, i8vec1, i8vec2, i8vec3, i8vec4) +_NI32IUVT = TypeVar('_NI32IUVT', i16vec1, i16vec2, i16vec3, i16vec4, i64vec1, i64vec2, i64vec3, i64vec4, i8vec1, i8vec2, i8vec3, i8vec4, u16vec1, u16vec2, u16vec3, u16vec4, u64vec1, u64vec2, u64vec3, u64vec4, u8vec1, u8vec2, u8vec3, u8vec4, umvec2, umvec3, umvec4, uvec1, uvec2, uvec3, uvec4) +_NI32IUV1T = TypeVar('_NI32IUV1T', i16vec1, i64vec1, i8vec1, u16vec1, u64vec1, u8vec1, uvec1) +_NI32IUV2T = TypeVar('_NI32IUV2T', i16vec2, i64vec2, i8vec2, u16vec2, u64vec2, u8vec2, umvec2, uvec2) +_NI32IUV3T = TypeVar('_NI32IUV3T', i16vec3, i64vec3, i8vec3, u16vec3, u64vec3, u8vec3, umvec3, uvec3) +_NI32IUV4T = TypeVar('_NI32IUV4T', i16vec4, i64vec4, i8vec4, u16vec4, u64vec4, u8vec4, umvec4, uvec4) +_MT = TypeVar('_MT', dmat2x2, dmat2x3, dmat2x4, dmat3x2, dmat3x3, dmat3x4, dmat4x2, dmat4x3, dmat4x4, imat2x2, imat2x3, imat2x4, imat3x2, imat3x3, imat3x4, imat4x2, imat4x3, imat4x4, mat2x2, mat2x3, mat2x4, mat3x2, mat3x3, mat3x4, mat4x2, mat4x3, mat4x4, umat2x2, umat2x3, umat2x4, umat3x2, umat3x3, umat3x4, umat4x2, umat4x3, umat4x4) +_NF32FDMSQRT = TypeVar('_NF32FDMSQRT', dmat2x2, dmat3x3, dmat4x4) +_NF32M2XNT = TypeVar('_NF32M2XNT', dmat2x2, dmat2x3, dmat2x4, imat2x2, imat2x3, imat2x4, umat2x2, umat2x3, umat2x4) +_NF32M3XNT = TypeVar('_NF32M3XNT', dmat3x2, dmat3x3, dmat3x4, imat3x2, imat3x3, imat3x4, umat3x2, umat3x3, umat3x4) +_NF32M4XNT = TypeVar('_NF32M4XNT', dmat4x2, dmat4x3, dmat4x4, imat4x2, imat4x3, imat4x4, umat4x2, umat4x3, umat4x4) +_NF32M2X2T = TypeVar('_NF32M2X2T', dmat2x2, imat2x2, umat2x2) +_NF32M2X3T = TypeVar('_NF32M2X3T', dmat2x3, imat2x3, umat2x3) +_NF32M2X4T = TypeVar('_NF32M2X4T', dmat2x4, imat2x4, umat2x4) +_NF32M3X2T = TypeVar('_NF32M3X2T', dmat3x2, imat3x2, umat3x2) +_NF32M3X3T = TypeVar('_NF32M3X3T', dmat3x3, imat3x3, umat3x3) +_NF32M3X4T = TypeVar('_NF32M3X4T', dmat3x4, imat3x4, umat3x4) +_NF32M4X2T = TypeVar('_NF32M4X2T', dmat4x2, imat4x2, umat4x2) +_NF32M4X3T = TypeVar('_NF32M4X3T', dmat4x3, imat4x3, umat4x3) +_NF32M4X4T = TypeVar('_NF32M4X4T', dmat4x4, imat4x4, umat4x4) +_QT = TypeVar('_QT', dquat, quat) +_NF32QT = TypeVar('_NF32QT', bound=dquat) + +bool_ = ctypes.c_bool +c_int16 = ctypes.c_short +int16 = ctypes.c_short +c_int32 = ctypes.c_long +int32 = ctypes.c_long +c_int64 = ctypes.c_longlong +int64 = ctypes.c_longlong +c_int8 = ctypes.c_byte +int8 = ctypes.c_byte +c_uint16 = ctypes.c_ushort +uint16 = ctypes.c_ushort +c_uint32 = ctypes.c_ulong +uint32 = ctypes.c_ulong +c_uint64 = ctypes.c_ulonglong +uint64 = ctypes.c_ulonglong +c_uint8 = ctypes.c_ubyte +uint8 = ctypes.c_ubyte +double = ctypes.c_double +float64 = ctypes.c_double +float32 = ctypes.c_float +float_ = ctypes.c_float + + +class bvec1: + x: bool + + + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: Union[glm_typing.AnyAnyVector1, glm_typing.BAnyVector2, glm_typing.BAnyVector3, glm_typing.BAnyVector4]) -> None: ... + + def __len__(self) -> Literal[1]: ... + def __getitem__(self, index: int) -> bool: ... + def __setitem__(self, index: int, value: glm_typing.Number) -> None: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[bool, None, None]: ... + + def __neg__(self) -> bvec1: ... + def __pos__(self) -> bvec1: ... + def __abs__(self) -> bvec1: ... + + def __lt__(self, other: Any) -> bool: ... + def __le__(self, other: Any) -> bool: ... + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + def __ge__(self, other: Any) -> bool: ... + def __gt__(self, other: Any) -> bool: ... + + def to_list(self) -> List[bool]: ... + def to_tuple(self) -> Tuple[bool]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> bvec1: ... + + def __add__(self, other: Union[glm_typing.B8Vector1, glm_typing.Number]) -> bvec1: ... + def __radd__(self, other: Union[glm_typing.B8Vector1, glm_typing.Number]) -> bvec1: ... + def __iadd__(self, other: Union[glm_typing.B8Vector1, glm_typing.Number]) -> bvec1: ... + + def __sub__(self, other: Union[glm_typing.B8Vector1, glm_typing.Number]) -> bvec1: ... + def __rsub__(self, other: Union[glm_typing.B8Vector1, glm_typing.Number]) -> bvec1: ... + def __isub__(self, other: Union[glm_typing.B8Vector1, glm_typing.Number]) -> bvec1: ... + + @overload + def __mul__(self, other: glm_typing.Number) -> bvec1: ... + @overload + def __mul__(self, other: glm_typing.B8Vector1) -> bvec1: ... + @overload + def __rmul__(self, other: glm_typing.Number) -> bvec1: ... + @overload + def __rmul__(self, other: glm_typing.B8Vector1) -> bvec1: ... + @overload + def __imul__(self, other: glm_typing.Number) -> bvec1: ... + @overload + def __imul__(self, other: glm_typing.B8Vector1) -> bvec1: ... + + def __mod__(self, other: Union[glm_typing.B8Vector1, glm_typing.Number]) -> bvec1: ... + def __rmod__(self, other: Union[glm_typing.B8Vector1, glm_typing.Number]) -> bvec1: ... + def __imod__(self, other: Union[glm_typing.B8Vector1, glm_typing.Number]) -> bvec1: ... + + def __pow__(self, other: Union[glm_typing.B8Vector1, glm_typing.Number]) -> bvec1: ... + def __rpow__(self, other: Union[glm_typing.B8Vector1, glm_typing.Number]) -> bvec1: ... + def __ipow__(self, other: Union[glm_typing.B8Vector1, glm_typing.Number]) -> bvec1: ... + + def __truediv__(self, other: Union[glm_typing.B8Vector1, glm_typing.Number]) -> bvec1: ... + def __rtruediv__(self, other: Union[glm_typing.B8Vector1, glm_typing.Number]) -> bvec1: ... + def __itruediv__(self, other: Union[glm_typing.B8Vector1, glm_typing.Number]) -> bvec1: ... + + def __floordiv__(self, other: Union[glm_typing.B8Vector1, glm_typing.Number]) -> bvec1: ... + def __rfloordiv__(self, other: Union[glm_typing.B8Vector1, glm_typing.Number]) -> bvec1: ... + def __ifloordiv__(self, other: Union[glm_typing.B8Vector1, glm_typing.Number]) -> bvec1: ... + + @overload + def __matmul__(self, other: glm_typing.Number) -> bvec1: ... + @overload + def __matmul__(self, other: glm_typing.B8Vector1) -> bvec1: ... + @overload + def __rmatmul__(self, other: glm_typing.Number) -> bvec1: ... + @overload + def __rmatmul__(self, other: glm_typing.B8Vector1) -> bvec1: ... + @overload + def __imatmul__(self, other: glm_typing.Number) -> bvec1: ... + @overload + def __imatmul__(self, other: glm_typing.B8Vector1) -> bvec1: ... + + def __divmod__(self, other: bvec1) -> Tuple[bvec1, bvec1]: ... + + + +class bvec2: + x: bool + y: bool + + + @property + def xy(self) -> b8vec2: ... + @xy.setter + def xy(self, value: glm_typing.B8Vector2) -> None: ... + + @property + def yx(self) -> b8vec2: ... + @yx.setter + def yx(self, value: glm_typing.B8Vector2) -> None: ... + + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: glm_typing.Number, y: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: Union[glm_typing.AnyAnyVector2, glm_typing.BAnyVector3, glm_typing.BAnyVector4]) -> None: ... + + def __len__(self) -> Literal[2]: ... + def __getitem__(self, index: int) -> bool: ... + def __setitem__(self, index: int, value: glm_typing.Number) -> None: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[bool, None, None]: ... + + def __neg__(self) -> bvec2: ... + def __pos__(self) -> bvec2: ... + def __abs__(self) -> bvec2: ... + + def __lt__(self, other: Any) -> bool: ... + def __le__(self, other: Any) -> bool: ... + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + def __ge__(self, other: Any) -> bool: ... + def __gt__(self, other: Any) -> bool: ... + + def to_list(self) -> List[bool]: ... + def to_tuple(self) -> Tuple[bool, bool]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> bvec2: ... + + def __add__(self, other: Union[glm_typing.B8Vector2, glm_typing.Number]) -> bvec2: ... + def __radd__(self, other: Union[glm_typing.B8Vector2, glm_typing.Number]) -> bvec2: ... + def __iadd__(self, other: Union[glm_typing.B8Vector2, glm_typing.Number]) -> bvec2: ... + + def __sub__(self, other: Union[glm_typing.B8Vector2, glm_typing.Number]) -> bvec2: ... + def __rsub__(self, other: Union[glm_typing.B8Vector2, glm_typing.Number]) -> bvec2: ... + def __isub__(self, other: Union[glm_typing.B8Vector2, glm_typing.Number]) -> bvec2: ... + + @overload + def __mul__(self, other: glm_typing.Number) -> bvec2: ... + @overload + def __mul__(self, other: glm_typing.B8Vector2) -> bvec2: ... + @overload + def __rmul__(self, other: glm_typing.Number) -> bvec2: ... + @overload + def __rmul__(self, other: glm_typing.B8Vector2) -> bvec2: ... + @overload + def __imul__(self, other: glm_typing.Number) -> bvec2: ... + @overload + def __imul__(self, other: glm_typing.B8Vector2) -> bvec2: ... + + def __mod__(self, other: Union[glm_typing.B8Vector2, glm_typing.Number]) -> bvec2: ... + def __rmod__(self, other: Union[glm_typing.B8Vector2, glm_typing.Number]) -> bvec2: ... + def __imod__(self, other: Union[glm_typing.B8Vector2, glm_typing.Number]) -> bvec2: ... + + def __pow__(self, other: Union[glm_typing.B8Vector2, glm_typing.Number]) -> bvec2: ... + def __rpow__(self, other: Union[glm_typing.B8Vector2, glm_typing.Number]) -> bvec2: ... + def __ipow__(self, other: Union[glm_typing.B8Vector2, glm_typing.Number]) -> bvec2: ... + + def __truediv__(self, other: Union[glm_typing.B8Vector2, glm_typing.Number]) -> bvec2: ... + def __rtruediv__(self, other: Union[glm_typing.B8Vector2, glm_typing.Number]) -> bvec2: ... + def __itruediv__(self, other: Union[glm_typing.B8Vector2, glm_typing.Number]) -> bvec2: ... + + def __floordiv__(self, other: Union[glm_typing.B8Vector2, glm_typing.Number]) -> bvec2: ... + def __rfloordiv__(self, other: Union[glm_typing.B8Vector2, glm_typing.Number]) -> bvec2: ... + def __ifloordiv__(self, other: Union[glm_typing.B8Vector2, glm_typing.Number]) -> bvec2: ... + + @overload + def __matmul__(self, other: glm_typing.Number) -> bvec2: ... + @overload + def __matmul__(self, other: glm_typing.B8Vector2) -> bvec2: ... + @overload + def __rmatmul__(self, other: glm_typing.Number) -> bvec2: ... + @overload + def __rmatmul__(self, other: glm_typing.B8Vector2) -> bvec2: ... + @overload + def __imatmul__(self, other: glm_typing.Number) -> bvec2: ... + @overload + def __imatmul__(self, other: glm_typing.B8Vector2) -> bvec2: ... + + def __divmod__(self, other: bvec2) -> Tuple[bvec2, bvec2]: ... + + + +class bvec3: + x: bool + y: bool + z: bool + + + @property + def xy(self) -> b8vec2: ... + @xy.setter + def xy(self, value: glm_typing.B8Vector2) -> None: ... + + @property + def yx(self) -> b8vec2: ... + @yx.setter + def yx(self, value: glm_typing.B8Vector2) -> None: ... + + @property + def xz(self) -> b8vec2: ... + @xz.setter + def xz(self, value: glm_typing.B8Vector2) -> None: ... + + @property + def zx(self) -> b8vec2: ... + @zx.setter + def zx(self, value: glm_typing.B8Vector2) -> None: ... + + @property + def yz(self) -> b8vec2: ... + @yz.setter + def yz(self, value: glm_typing.B8Vector2) -> None: ... + + @property + def zy(self) -> b8vec2: ... + @zy.setter + def zy(self, value: glm_typing.B8Vector2) -> None: ... + + @property + def xyz(self) -> b8vec3: ... + @xyz.setter + def xyz(self, value: glm_typing.B8Vector3) -> None: ... + + @property + def xzy(self) -> b8vec3: ... + @xzy.setter + def xzy(self, value: glm_typing.B8Vector3) -> None: ... + + @property + def yxz(self) -> b8vec3: ... + @yxz.setter + def yxz(self, value: glm_typing.B8Vector3) -> None: ... + + @property + def yzx(self) -> b8vec3: ... + @yzx.setter + def yzx(self, value: glm_typing.B8Vector3) -> None: ... + + @property + def zxy(self) -> b8vec3: ... + @zxy.setter + def zxy(self, value: glm_typing.B8Vector3) -> None: ... + + @property + def zyx(self) -> b8vec3: ... + @zyx.setter + def zyx(self, value: glm_typing.B8Vector3) -> None: ... + + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: glm_typing.Number, y: glm_typing.Number, z: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: Union[glm_typing.AnyAnyVector3, glm_typing.BAnyVector4]) -> None: ... + + def __len__(self) -> Literal[3]: ... + def __getitem__(self, index: int) -> bool: ... + def __setitem__(self, index: int, value: glm_typing.Number) -> None: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[bool, None, None]: ... + + def __neg__(self) -> bvec3: ... + def __pos__(self) -> bvec3: ... + def __abs__(self) -> bvec3: ... + + def __lt__(self, other: Any) -> bool: ... + def __le__(self, other: Any) -> bool: ... + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + def __ge__(self, other: Any) -> bool: ... + def __gt__(self, other: Any) -> bool: ... + + def to_list(self) -> List[bool]: ... + def to_tuple(self) -> Tuple[bool, bool, bool]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> bvec3: ... + + def __add__(self, other: Union[glm_typing.B8Vector3, glm_typing.Number]) -> bvec3: ... + def __radd__(self, other: Union[glm_typing.B8Vector3, glm_typing.Number]) -> bvec3: ... + def __iadd__(self, other: Union[glm_typing.B8Vector3, glm_typing.Number]) -> bvec3: ... + + def __sub__(self, other: Union[glm_typing.B8Vector3, glm_typing.Number]) -> bvec3: ... + def __rsub__(self, other: Union[glm_typing.B8Vector3, glm_typing.Number]) -> bvec3: ... + def __isub__(self, other: Union[glm_typing.B8Vector3, glm_typing.Number]) -> bvec3: ... + + @overload + def __mul__(self, other: glm_typing.Number) -> bvec3: ... + @overload + def __mul__(self, other: glm_typing.B8Vector3) -> bvec3: ... + @overload + def __rmul__(self, other: glm_typing.Number) -> bvec3: ... + @overload + def __rmul__(self, other: glm_typing.B8Vector3) -> bvec3: ... + @overload + def __imul__(self, other: glm_typing.Number) -> bvec3: ... + @overload + def __imul__(self, other: glm_typing.B8Vector3) -> bvec3: ... + + def __mod__(self, other: Union[glm_typing.B8Vector3, glm_typing.Number]) -> bvec3: ... + def __rmod__(self, other: Union[glm_typing.B8Vector3, glm_typing.Number]) -> bvec3: ... + def __imod__(self, other: Union[glm_typing.B8Vector3, glm_typing.Number]) -> bvec3: ... + + def __pow__(self, other: Union[glm_typing.B8Vector3, glm_typing.Number]) -> bvec3: ... + def __rpow__(self, other: Union[glm_typing.B8Vector3, glm_typing.Number]) -> bvec3: ... + def __ipow__(self, other: Union[glm_typing.B8Vector3, glm_typing.Number]) -> bvec3: ... + + def __truediv__(self, other: Union[glm_typing.B8Vector3, glm_typing.Number]) -> bvec3: ... + def __rtruediv__(self, other: Union[glm_typing.B8Vector3, glm_typing.Number]) -> bvec3: ... + def __itruediv__(self, other: Union[glm_typing.B8Vector3, glm_typing.Number]) -> bvec3: ... + + def __floordiv__(self, other: Union[glm_typing.B8Vector3, glm_typing.Number]) -> bvec3: ... + def __rfloordiv__(self, other: Union[glm_typing.B8Vector3, glm_typing.Number]) -> bvec3: ... + def __ifloordiv__(self, other: Union[glm_typing.B8Vector3, glm_typing.Number]) -> bvec3: ... + + @overload + def __matmul__(self, other: glm_typing.Number) -> bvec3: ... + @overload + def __matmul__(self, other: glm_typing.B8Vector3) -> bvec3: ... + @overload + def __rmatmul__(self, other: glm_typing.Number) -> bvec3: ... + @overload + def __rmatmul__(self, other: glm_typing.B8Vector3) -> bvec3: ... + @overload + def __imatmul__(self, other: glm_typing.Number) -> bvec3: ... + @overload + def __imatmul__(self, other: glm_typing.B8Vector3) -> bvec3: ... + + def __divmod__(self, other: bvec3) -> Tuple[bvec3, bvec3]: ... + + + +class bvec4: + x: bool + y: bool + z: bool + w: bool + + + @property + def xy(self) -> b8vec2: ... + @xy.setter + def xy(self, value: glm_typing.B8Vector2) -> None: ... + + @property + def yx(self) -> b8vec2: ... + @yx.setter + def yx(self, value: glm_typing.B8Vector2) -> None: ... + + @property + def xz(self) -> b8vec2: ... + @xz.setter + def xz(self, value: glm_typing.B8Vector2) -> None: ... + + @property + def zx(self) -> b8vec2: ... + @zx.setter + def zx(self, value: glm_typing.B8Vector2) -> None: ... + + @property + def xw(self) -> b8vec2: ... + @xw.setter + def xw(self, value: glm_typing.B8Vector2) -> None: ... + + @property + def wx(self) -> b8vec2: ... + @wx.setter + def wx(self, value: glm_typing.B8Vector2) -> None: ... + + @property + def yz(self) -> b8vec2: ... + @yz.setter + def yz(self, value: glm_typing.B8Vector2) -> None: ... + + @property + def zy(self) -> b8vec2: ... + @zy.setter + def zy(self, value: glm_typing.B8Vector2) -> None: ... + + @property + def yw(self) -> b8vec2: ... + @yw.setter + def yw(self, value: glm_typing.B8Vector2) -> None: ... + + @property + def wy(self) -> b8vec2: ... + @wy.setter + def wy(self, value: glm_typing.B8Vector2) -> None: ... + + @property + def zw(self) -> b8vec2: ... + @zw.setter + def zw(self, value: glm_typing.B8Vector2) -> None: ... + + @property + def wz(self) -> b8vec2: ... + @wz.setter + def wz(self, value: glm_typing.B8Vector2) -> None: ... + + @property + def xyz(self) -> b8vec3: ... + @xyz.setter + def xyz(self, value: glm_typing.B8Vector3) -> None: ... + + @property + def xzy(self) -> b8vec3: ... + @xzy.setter + def xzy(self, value: glm_typing.B8Vector3) -> None: ... + + @property + def yxz(self) -> b8vec3: ... + @yxz.setter + def yxz(self, value: glm_typing.B8Vector3) -> None: ... + + @property + def yzx(self) -> b8vec3: ... + @yzx.setter + def yzx(self, value: glm_typing.B8Vector3) -> None: ... + + @property + def zxy(self) -> b8vec3: ... + @zxy.setter + def zxy(self, value: glm_typing.B8Vector3) -> None: ... + + @property + def zyx(self) -> b8vec3: ... + @zyx.setter + def zyx(self, value: glm_typing.B8Vector3) -> None: ... + + @property + def xyw(self) -> b8vec3: ... + @xyw.setter + def xyw(self, value: glm_typing.B8Vector3) -> None: ... + + @property + def xwy(self) -> b8vec3: ... + @xwy.setter + def xwy(self, value: glm_typing.B8Vector3) -> None: ... + + @property + def yxw(self) -> b8vec3: ... + @yxw.setter + def yxw(self, value: glm_typing.B8Vector3) -> None: ... + + @property + def ywx(self) -> b8vec3: ... + @ywx.setter + def ywx(self, value: glm_typing.B8Vector3) -> None: ... + + @property + def wxy(self) -> b8vec3: ... + @wxy.setter + def wxy(self, value: glm_typing.B8Vector3) -> None: ... + + @property + def wyx(self) -> b8vec3: ... + @wyx.setter + def wyx(self, value: glm_typing.B8Vector3) -> None: ... + + @property + def xzw(self) -> b8vec3: ... + @xzw.setter + def xzw(self, value: glm_typing.B8Vector3) -> None: ... + + @property + def xwz(self) -> b8vec3: ... + @xwz.setter + def xwz(self, value: glm_typing.B8Vector3) -> None: ... + + @property + def zxw(self) -> b8vec3: ... + @zxw.setter + def zxw(self, value: glm_typing.B8Vector3) -> None: ... + + @property + def zwx(self) -> b8vec3: ... + @zwx.setter + def zwx(self, value: glm_typing.B8Vector3) -> None: ... + + @property + def wxz(self) -> b8vec3: ... + @wxz.setter + def wxz(self, value: glm_typing.B8Vector3) -> None: ... + + @property + def wzx(self) -> b8vec3: ... + @wzx.setter + def wzx(self, value: glm_typing.B8Vector3) -> None: ... + + @property + def yzw(self) -> b8vec3: ... + @yzw.setter + def yzw(self, value: glm_typing.B8Vector3) -> None: ... + + @property + def ywz(self) -> b8vec3: ... + @ywz.setter + def ywz(self, value: glm_typing.B8Vector3) -> None: ... + + @property + def zyw(self) -> b8vec3: ... + @zyw.setter + def zyw(self, value: glm_typing.B8Vector3) -> None: ... + + @property + def zwy(self) -> b8vec3: ... + @zwy.setter + def zwy(self, value: glm_typing.B8Vector3) -> None: ... + + @property + def wyz(self) -> b8vec3: ... + @wyz.setter + def wyz(self, value: glm_typing.B8Vector3) -> None: ... + + @property + def wzy(self) -> b8vec3: ... + @wzy.setter + def wzy(self, value: glm_typing.B8Vector3) -> None: ... + + @property + def xyzw(self) -> b8vec4: ... + @xyzw.setter + def xyzw(self, value: glm_typing.B8Vector4) -> None: ... + + @property + def xywz(self) -> b8vec4: ... + @xywz.setter + def xywz(self, value: glm_typing.B8Vector4) -> None: ... + + @property + def xzyw(self) -> b8vec4: ... + @xzyw.setter + def xzyw(self, value: glm_typing.B8Vector4) -> None: ... + + @property + def xzwy(self) -> b8vec4: ... + @xzwy.setter + def xzwy(self, value: glm_typing.B8Vector4) -> None: ... + + @property + def xwyz(self) -> b8vec4: ... + @xwyz.setter + def xwyz(self, value: glm_typing.B8Vector4) -> None: ... + + @property + def xwzy(self) -> b8vec4: ... + @xwzy.setter + def xwzy(self, value: glm_typing.B8Vector4) -> None: ... + + @property + def yxzw(self) -> b8vec4: ... + @yxzw.setter + def yxzw(self, value: glm_typing.B8Vector4) -> None: ... + + @property + def yxwz(self) -> b8vec4: ... + @yxwz.setter + def yxwz(self, value: glm_typing.B8Vector4) -> None: ... + + @property + def yzxw(self) -> b8vec4: ... + @yzxw.setter + def yzxw(self, value: glm_typing.B8Vector4) -> None: ... + + @property + def yzwx(self) -> b8vec4: ... + @yzwx.setter + def yzwx(self, value: glm_typing.B8Vector4) -> None: ... + + @property + def ywxz(self) -> b8vec4: ... + @ywxz.setter + def ywxz(self, value: glm_typing.B8Vector4) -> None: ... + + @property + def ywzx(self) -> b8vec4: ... + @ywzx.setter + def ywzx(self, value: glm_typing.B8Vector4) -> None: ... + + @property + def zxyw(self) -> b8vec4: ... + @zxyw.setter + def zxyw(self, value: glm_typing.B8Vector4) -> None: ... + + @property + def zxwy(self) -> b8vec4: ... + @zxwy.setter + def zxwy(self, value: glm_typing.B8Vector4) -> None: ... + + @property + def zyxw(self) -> b8vec4: ... + @zyxw.setter + def zyxw(self, value: glm_typing.B8Vector4) -> None: ... + + @property + def zywx(self) -> b8vec4: ... + @zywx.setter + def zywx(self, value: glm_typing.B8Vector4) -> None: ... + + @property + def zwxy(self) -> b8vec4: ... + @zwxy.setter + def zwxy(self, value: glm_typing.B8Vector4) -> None: ... + + @property + def zwyx(self) -> b8vec4: ... + @zwyx.setter + def zwyx(self, value: glm_typing.B8Vector4) -> None: ... + + @property + def wxyz(self) -> b8vec4: ... + @wxyz.setter + def wxyz(self, value: glm_typing.B8Vector4) -> None: ... + + @property + def wxzy(self) -> b8vec4: ... + @wxzy.setter + def wxzy(self, value: glm_typing.B8Vector4) -> None: ... + + @property + def wyxz(self) -> b8vec4: ... + @wyxz.setter + def wyxz(self, value: glm_typing.B8Vector4) -> None: ... + + @property + def wyzx(self) -> b8vec4: ... + @wyzx.setter + def wyzx(self, value: glm_typing.B8Vector4) -> None: ... + + @property + def wzxy(self) -> b8vec4: ... + @wzxy.setter + def wzxy(self, value: glm_typing.B8Vector4) -> None: ... + + @property + def wzyx(self) -> b8vec4: ... + @wzyx.setter + def wzyx(self, value: glm_typing.B8Vector4) -> None: ... + + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: glm_typing.Number, y: glm_typing.Number, z: glm_typing.Number, w: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: glm_typing.AnyAnyVector4) -> None: ... + + def __len__(self) -> Literal[4]: ... + def __getitem__(self, index: int) -> bool: ... + def __setitem__(self, index: int, value: glm_typing.Number) -> None: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[bool, None, None]: ... + + def __neg__(self) -> bvec4: ... + def __pos__(self) -> bvec4: ... + def __abs__(self) -> bvec4: ... + + def __lt__(self, other: Any) -> bool: ... + def __le__(self, other: Any) -> bool: ... + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + def __ge__(self, other: Any) -> bool: ... + def __gt__(self, other: Any) -> bool: ... + + def to_list(self) -> List[bool]: ... + def to_tuple(self) -> Tuple[bool, bool, bool, bool]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> bvec4: ... + + def __add__(self, other: Union[glm_typing.B8Vector4, glm_typing.Number]) -> bvec4: ... + def __radd__(self, other: Union[glm_typing.B8Vector4, glm_typing.Number]) -> bvec4: ... + def __iadd__(self, other: Union[glm_typing.B8Vector4, glm_typing.Number]) -> bvec4: ... + + def __sub__(self, other: Union[glm_typing.B8Vector4, glm_typing.Number]) -> bvec4: ... + def __rsub__(self, other: Union[glm_typing.B8Vector4, glm_typing.Number]) -> bvec4: ... + def __isub__(self, other: Union[glm_typing.B8Vector4, glm_typing.Number]) -> bvec4: ... + + @overload + def __mul__(self, other: glm_typing.Number) -> bvec4: ... + @overload + def __mul__(self, other: glm_typing.B8Vector4) -> bvec4: ... + @overload + def __rmul__(self, other: glm_typing.Number) -> bvec4: ... + @overload + def __rmul__(self, other: glm_typing.B8Vector4) -> bvec4: ... + @overload + def __imul__(self, other: glm_typing.Number) -> bvec4: ... + @overload + def __imul__(self, other: glm_typing.B8Vector4) -> bvec4: ... + + def __mod__(self, other: Union[glm_typing.B8Vector4, glm_typing.Number]) -> bvec4: ... + def __rmod__(self, other: Union[glm_typing.B8Vector4, glm_typing.Number]) -> bvec4: ... + def __imod__(self, other: Union[glm_typing.B8Vector4, glm_typing.Number]) -> bvec4: ... + + def __pow__(self, other: Union[glm_typing.B8Vector4, glm_typing.Number]) -> bvec4: ... + def __rpow__(self, other: Union[glm_typing.B8Vector4, glm_typing.Number]) -> bvec4: ... + def __ipow__(self, other: Union[glm_typing.B8Vector4, glm_typing.Number]) -> bvec4: ... + + def __truediv__(self, other: Union[glm_typing.B8Vector4, glm_typing.Number]) -> bvec4: ... + def __rtruediv__(self, other: Union[glm_typing.B8Vector4, glm_typing.Number]) -> bvec4: ... + def __itruediv__(self, other: Union[glm_typing.B8Vector4, glm_typing.Number]) -> bvec4: ... + + def __floordiv__(self, other: Union[glm_typing.B8Vector4, glm_typing.Number]) -> bvec4: ... + def __rfloordiv__(self, other: Union[glm_typing.B8Vector4, glm_typing.Number]) -> bvec4: ... + def __ifloordiv__(self, other: Union[glm_typing.B8Vector4, glm_typing.Number]) -> bvec4: ... + + @overload + def __matmul__(self, other: glm_typing.Number) -> bvec4: ... + @overload + def __matmul__(self, other: glm_typing.B8Vector4) -> bvec4: ... + @overload + def __rmatmul__(self, other: glm_typing.Number) -> bvec4: ... + @overload + def __rmatmul__(self, other: glm_typing.B8Vector4) -> bvec4: ... + @overload + def __imatmul__(self, other: glm_typing.Number) -> bvec4: ... + @overload + def __imatmul__(self, other: glm_typing.B8Vector4) -> bvec4: ... + + def __divmod__(self, other: bvec4) -> Tuple[bvec4, bvec4]: ... + + + +class dmvec2: + x: float + y: float + + + @property + def xy(self) -> d64vec2: ... + @xy.setter + def xy(self, value: glm_typing.D64Vector2) -> None: ... + + @property + def yx(self) -> d64vec2: ... + @yx.setter + def yx(self, value: glm_typing.D64Vector2) -> None: ... + + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: glm_typing.Number, y: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: Union[glm_typing.AnyAnyVector2, glm_typing.DAnyVector3, glm_typing.DAnyVector4]) -> None: ... + + def __len__(self) -> Literal[2]: ... + def __getitem__(self, index: int) -> float: ... + def __setitem__(self, index: int, value: glm_typing.Number) -> None: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[float, None, None]: ... + + def __neg__(self) -> dmvec2: ... + def __pos__(self) -> dmvec2: ... + def __abs__(self) -> dmvec2: ... + + def __lt__(self, other: Any) -> bool: ... + def __le__(self, other: Any) -> bool: ... + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + def __ge__(self, other: Any) -> bool: ... + def __gt__(self, other: Any) -> bool: ... + + def to_list(self) -> List[float]: ... + def to_tuple(self) -> Tuple[float, float]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> dmvec2: ... + + def __add__(self, other: Union[glm_typing.D64Vector2, glm_typing.Number]) -> dmvec2: ... + def __radd__(self, other: Union[glm_typing.D64Vector2, glm_typing.Number]) -> dmvec2: ... + def __iadd__(self, other: Union[glm_typing.D64Vector2, glm_typing.Number]) -> dmvec2: ... + + def __sub__(self, other: Union[glm_typing.D64Vector2, glm_typing.Number]) -> dmvec2: ... + def __rsub__(self, other: Union[glm_typing.D64Vector2, glm_typing.Number]) -> dmvec2: ... + def __isub__(self, other: Union[glm_typing.D64Vector2, glm_typing.Number]) -> dmvec2: ... + + @overload + def __mul__(self, other: glm_typing.Number) -> dmvec2: ... + @overload + def __mul__(self, other: glm_typing.D64Vector2) -> dmvec2: ... + @overload + def __mul__(self, other: glm_typing.D64Matrix2x2) -> vec2: ... + @overload + def __mul__(self, other: glm_typing.D64Matrix3x2) -> vec3: ... + @overload + def __mul__(self, other: glm_typing.D64Matrix4x2) -> vec4: ... + @overload + def __rmul__(self, other: glm_typing.Number) -> dmvec2: ... + @overload + def __rmul__(self, other: glm_typing.D64Vector2) -> dmvec2: ... + @overload + def __rmul__(self, other: glm_typing.D64Matrix2x2) -> vec2: ... + @overload + def __rmul__(self, other: glm_typing.D64Matrix3x2) -> vec3: ... + @overload + def __rmul__(self, other: glm_typing.D64Matrix4x2) -> vec4: ... + @overload + def __imul__(self, other: glm_typing.Number) -> dmvec2: ... + @overload + def __imul__(self, other: glm_typing.D64Vector2) -> dmvec2: ... + @overload + def __imul__(self, other: glm_typing.D64Matrix2x2) -> vec2: ... + @overload + def __imul__(self, other: glm_typing.D64Matrix3x2) -> vec3: ... + @overload + def __imul__(self, other: glm_typing.D64Matrix4x2) -> vec4: ... + + def __mod__(self, other: Union[glm_typing.D64Vector2, glm_typing.Number]) -> dmvec2: ... + def __rmod__(self, other: Union[glm_typing.D64Vector2, glm_typing.Number]) -> dmvec2: ... + def __imod__(self, other: Union[glm_typing.D64Vector2, glm_typing.Number]) -> dmvec2: ... + + def __pow__(self, other: Union[glm_typing.D64Vector2, glm_typing.Number]) -> dmvec2: ... + def __rpow__(self, other: Union[glm_typing.D64Vector2, glm_typing.Number]) -> dmvec2: ... + def __ipow__(self, other: Union[glm_typing.D64Vector2, glm_typing.Number]) -> dmvec2: ... + + def __truediv__(self, other: Union[glm_typing.D64Vector2, glm_typing.Number]) -> dmvec2: ... + def __rtruediv__(self, other: Union[glm_typing.D64Vector2, glm_typing.Number]) -> dmvec2: ... + def __itruediv__(self, other: Union[glm_typing.D64Vector2, glm_typing.Number]) -> dmvec2: ... + + def __floordiv__(self, other: Union[glm_typing.D64Vector2, glm_typing.Number]) -> dmvec2: ... + def __rfloordiv__(self, other: Union[glm_typing.D64Vector2, glm_typing.Number]) -> dmvec2: ... + def __ifloordiv__(self, other: Union[glm_typing.D64Vector2, glm_typing.Number]) -> dmvec2: ... + + @overload + def __matmul__(self, other: glm_typing.Number) -> dmvec2: ... + @overload + def __matmul__(self, other: glm_typing.D64Vector2) -> dmvec2: ... + @overload + def __matmul__(self, other: glm_typing.D64Matrix2x2) -> vec2: ... + @overload + def __matmul__(self, other: glm_typing.D64Matrix3x2) -> vec3: ... + @overload + def __matmul__(self, other: glm_typing.D64Matrix4x2) -> vec4: ... + @overload + def __rmatmul__(self, other: glm_typing.Number) -> dmvec2: ... + @overload + def __rmatmul__(self, other: glm_typing.D64Vector2) -> dmvec2: ... + @overload + def __rmatmul__(self, other: glm_typing.D64Matrix2x2) -> vec2: ... + @overload + def __rmatmul__(self, other: glm_typing.D64Matrix3x2) -> vec3: ... + @overload + def __rmatmul__(self, other: glm_typing.D64Matrix4x2) -> vec4: ... + @overload + def __imatmul__(self, other: glm_typing.Number) -> dmvec2: ... + @overload + def __imatmul__(self, other: glm_typing.D64Vector2) -> dmvec2: ... + @overload + def __imatmul__(self, other: glm_typing.D64Matrix2x2) -> vec2: ... + @overload + def __imatmul__(self, other: glm_typing.D64Matrix3x2) -> vec3: ... + @overload + def __imatmul__(self, other: glm_typing.D64Matrix4x2) -> vec4: ... + + def __divmod__(self, other: dmvec2) -> Tuple[dmvec2, dmvec2]: ... + + + +class dmvec3: + x: float + y: float + z: float + + + @property + def xy(self) -> d64vec2: ... + @xy.setter + def xy(self, value: glm_typing.D64Vector2) -> None: ... + + @property + def yx(self) -> d64vec2: ... + @yx.setter + def yx(self, value: glm_typing.D64Vector2) -> None: ... + + @property + def xz(self) -> d64vec2: ... + @xz.setter + def xz(self, value: glm_typing.D64Vector2) -> None: ... + + @property + def zx(self) -> d64vec2: ... + @zx.setter + def zx(self, value: glm_typing.D64Vector2) -> None: ... + + @property + def yz(self) -> d64vec2: ... + @yz.setter + def yz(self, value: glm_typing.D64Vector2) -> None: ... + + @property + def zy(self) -> d64vec2: ... + @zy.setter + def zy(self, value: glm_typing.D64Vector2) -> None: ... + + @property + def xyz(self) -> d64vec3: ... + @xyz.setter + def xyz(self, value: glm_typing.D64Vector3) -> None: ... + + @property + def xzy(self) -> d64vec3: ... + @xzy.setter + def xzy(self, value: glm_typing.D64Vector3) -> None: ... + + @property + def yxz(self) -> d64vec3: ... + @yxz.setter + def yxz(self, value: glm_typing.D64Vector3) -> None: ... + + @property + def yzx(self) -> d64vec3: ... + @yzx.setter + def yzx(self, value: glm_typing.D64Vector3) -> None: ... + + @property + def zxy(self) -> d64vec3: ... + @zxy.setter + def zxy(self, value: glm_typing.D64Vector3) -> None: ... + + @property + def zyx(self) -> d64vec3: ... + @zyx.setter + def zyx(self, value: glm_typing.D64Vector3) -> None: ... + + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: glm_typing.Number, y: glm_typing.Number, z: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: Union[glm_typing.AnyAnyVector3, glm_typing.DAnyVector4]) -> None: ... + + def __len__(self) -> Literal[3]: ... + def __getitem__(self, index: int) -> float: ... + def __setitem__(self, index: int, value: glm_typing.Number) -> None: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[float, None, None]: ... + + def __neg__(self) -> dmvec3: ... + def __pos__(self) -> dmvec3: ... + def __abs__(self) -> dmvec3: ... + + def __lt__(self, other: Any) -> bool: ... + def __le__(self, other: Any) -> bool: ... + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + def __ge__(self, other: Any) -> bool: ... + def __gt__(self, other: Any) -> bool: ... + + def to_list(self) -> List[float]: ... + def to_tuple(self) -> Tuple[float, float, float]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> dmvec3: ... + + def __add__(self, other: Union[glm_typing.D64Vector3, glm_typing.Number]) -> dmvec3: ... + def __radd__(self, other: Union[glm_typing.D64Vector3, glm_typing.Number]) -> dmvec3: ... + def __iadd__(self, other: Union[glm_typing.D64Vector3, glm_typing.Number]) -> dmvec3: ... + + def __sub__(self, other: Union[glm_typing.D64Vector3, glm_typing.Number]) -> dmvec3: ... + def __rsub__(self, other: Union[glm_typing.D64Vector3, glm_typing.Number]) -> dmvec3: ... + def __isub__(self, other: Union[glm_typing.D64Vector3, glm_typing.Number]) -> dmvec3: ... + + @overload + def __mul__(self, other: glm_typing.Number) -> dmvec3: ... + @overload + def __mul__(self, other: glm_typing.D64Vector3) -> dmvec3: ... + @overload + def __mul__(self, other: glm_typing.D64Matrix2x2) -> vec2: ... + @overload + def __mul__(self, other: glm_typing.D64Matrix3x2) -> vec3: ... + @overload + def __mul__(self, other: glm_typing.D64Matrix4x2) -> vec4: ... + @overload + def __rmul__(self, other: glm_typing.Number) -> dmvec3: ... + @overload + def __rmul__(self, other: glm_typing.D64Vector3) -> dmvec3: ... + @overload + def __rmul__(self, other: glm_typing.D64Matrix2x2) -> vec2: ... + @overload + def __rmul__(self, other: glm_typing.D64Matrix3x2) -> vec3: ... + @overload + def __rmul__(self, other: glm_typing.D64Matrix4x2) -> vec4: ... + @overload + def __imul__(self, other: glm_typing.Number) -> dmvec3: ... + @overload + def __imul__(self, other: glm_typing.D64Vector3) -> dmvec3: ... + @overload + def __imul__(self, other: glm_typing.D64Matrix2x2) -> vec2: ... + @overload + def __imul__(self, other: glm_typing.D64Matrix3x2) -> vec3: ... + @overload + def __imul__(self, other: glm_typing.D64Matrix4x2) -> vec4: ... + + def __mod__(self, other: Union[glm_typing.D64Vector3, glm_typing.Number]) -> dmvec3: ... + def __rmod__(self, other: Union[glm_typing.D64Vector3, glm_typing.Number]) -> dmvec3: ... + def __imod__(self, other: Union[glm_typing.D64Vector3, glm_typing.Number]) -> dmvec3: ... + + def __pow__(self, other: Union[glm_typing.D64Vector3, glm_typing.Number]) -> dmvec3: ... + def __rpow__(self, other: Union[glm_typing.D64Vector3, glm_typing.Number]) -> dmvec3: ... + def __ipow__(self, other: Union[glm_typing.D64Vector3, glm_typing.Number]) -> dmvec3: ... + + def __truediv__(self, other: Union[glm_typing.D64Vector3, glm_typing.Number]) -> dmvec3: ... + def __rtruediv__(self, other: Union[glm_typing.D64Vector3, glm_typing.Number]) -> dmvec3: ... + def __itruediv__(self, other: Union[glm_typing.D64Vector3, glm_typing.Number]) -> dmvec3: ... + + def __floordiv__(self, other: Union[glm_typing.D64Vector3, glm_typing.Number]) -> dmvec3: ... + def __rfloordiv__(self, other: Union[glm_typing.D64Vector3, glm_typing.Number]) -> dmvec3: ... + def __ifloordiv__(self, other: Union[glm_typing.D64Vector3, glm_typing.Number]) -> dmvec3: ... + + @overload + def __matmul__(self, other: glm_typing.Number) -> dmvec3: ... + @overload + def __matmul__(self, other: glm_typing.D64Vector3) -> dmvec3: ... + @overload + def __matmul__(self, other: glm_typing.D64Matrix2x2) -> vec2: ... + @overload + def __matmul__(self, other: glm_typing.D64Matrix3x2) -> vec3: ... + @overload + def __matmul__(self, other: glm_typing.D64Matrix4x2) -> vec4: ... + @overload + def __rmatmul__(self, other: glm_typing.Number) -> dmvec3: ... + @overload + def __rmatmul__(self, other: glm_typing.D64Vector3) -> dmvec3: ... + @overload + def __rmatmul__(self, other: glm_typing.D64Matrix2x2) -> vec2: ... + @overload + def __rmatmul__(self, other: glm_typing.D64Matrix3x2) -> vec3: ... + @overload + def __rmatmul__(self, other: glm_typing.D64Matrix4x2) -> vec4: ... + @overload + def __imatmul__(self, other: glm_typing.Number) -> dmvec3: ... + @overload + def __imatmul__(self, other: glm_typing.D64Vector3) -> dmvec3: ... + @overload + def __imatmul__(self, other: glm_typing.D64Matrix2x2) -> vec2: ... + @overload + def __imatmul__(self, other: glm_typing.D64Matrix3x2) -> vec3: ... + @overload + def __imatmul__(self, other: glm_typing.D64Matrix4x2) -> vec4: ... + + def __divmod__(self, other: dmvec3) -> Tuple[dmvec3, dmvec3]: ... + + + +class dmvec4: + x: float + y: float + z: float + w: float + + + @property + def xy(self) -> d64vec2: ... + @xy.setter + def xy(self, value: glm_typing.D64Vector2) -> None: ... + + @property + def yx(self) -> d64vec2: ... + @yx.setter + def yx(self, value: glm_typing.D64Vector2) -> None: ... + + @property + def xz(self) -> d64vec2: ... + @xz.setter + def xz(self, value: glm_typing.D64Vector2) -> None: ... + + @property + def zx(self) -> d64vec2: ... + @zx.setter + def zx(self, value: glm_typing.D64Vector2) -> None: ... + + @property + def xw(self) -> d64vec2: ... + @xw.setter + def xw(self, value: glm_typing.D64Vector2) -> None: ... + + @property + def wx(self) -> d64vec2: ... + @wx.setter + def wx(self, value: glm_typing.D64Vector2) -> None: ... + + @property + def yz(self) -> d64vec2: ... + @yz.setter + def yz(self, value: glm_typing.D64Vector2) -> None: ... + + @property + def zy(self) -> d64vec2: ... + @zy.setter + def zy(self, value: glm_typing.D64Vector2) -> None: ... + + @property + def yw(self) -> d64vec2: ... + @yw.setter + def yw(self, value: glm_typing.D64Vector2) -> None: ... + + @property + def wy(self) -> d64vec2: ... + @wy.setter + def wy(self, value: glm_typing.D64Vector2) -> None: ... + + @property + def zw(self) -> d64vec2: ... + @zw.setter + def zw(self, value: glm_typing.D64Vector2) -> None: ... + + @property + def wz(self) -> d64vec2: ... + @wz.setter + def wz(self, value: glm_typing.D64Vector2) -> None: ... + + @property + def xyz(self) -> d64vec3: ... + @xyz.setter + def xyz(self, value: glm_typing.D64Vector3) -> None: ... + + @property + def xzy(self) -> d64vec3: ... + @xzy.setter + def xzy(self, value: glm_typing.D64Vector3) -> None: ... + + @property + def yxz(self) -> d64vec3: ... + @yxz.setter + def yxz(self, value: glm_typing.D64Vector3) -> None: ... + + @property + def yzx(self) -> d64vec3: ... + @yzx.setter + def yzx(self, value: glm_typing.D64Vector3) -> None: ... + + @property + def zxy(self) -> d64vec3: ... + @zxy.setter + def zxy(self, value: glm_typing.D64Vector3) -> None: ... + + @property + def zyx(self) -> d64vec3: ... + @zyx.setter + def zyx(self, value: glm_typing.D64Vector3) -> None: ... + + @property + def xyw(self) -> d64vec3: ... + @xyw.setter + def xyw(self, value: glm_typing.D64Vector3) -> None: ... + + @property + def xwy(self) -> d64vec3: ... + @xwy.setter + def xwy(self, value: glm_typing.D64Vector3) -> None: ... + + @property + def yxw(self) -> d64vec3: ... + @yxw.setter + def yxw(self, value: glm_typing.D64Vector3) -> None: ... + + @property + def ywx(self) -> d64vec3: ... + @ywx.setter + def ywx(self, value: glm_typing.D64Vector3) -> None: ... + + @property + def wxy(self) -> d64vec3: ... + @wxy.setter + def wxy(self, value: glm_typing.D64Vector3) -> None: ... + + @property + def wyx(self) -> d64vec3: ... + @wyx.setter + def wyx(self, value: glm_typing.D64Vector3) -> None: ... + + @property + def xzw(self) -> d64vec3: ... + @xzw.setter + def xzw(self, value: glm_typing.D64Vector3) -> None: ... + + @property + def xwz(self) -> d64vec3: ... + @xwz.setter + def xwz(self, value: glm_typing.D64Vector3) -> None: ... + + @property + def zxw(self) -> d64vec3: ... + @zxw.setter + def zxw(self, value: glm_typing.D64Vector3) -> None: ... + + @property + def zwx(self) -> d64vec3: ... + @zwx.setter + def zwx(self, value: glm_typing.D64Vector3) -> None: ... + + @property + def wxz(self) -> d64vec3: ... + @wxz.setter + def wxz(self, value: glm_typing.D64Vector3) -> None: ... + + @property + def wzx(self) -> d64vec3: ... + @wzx.setter + def wzx(self, value: glm_typing.D64Vector3) -> None: ... + + @property + def yzw(self) -> d64vec3: ... + @yzw.setter + def yzw(self, value: glm_typing.D64Vector3) -> None: ... + + @property + def ywz(self) -> d64vec3: ... + @ywz.setter + def ywz(self, value: glm_typing.D64Vector3) -> None: ... + + @property + def zyw(self) -> d64vec3: ... + @zyw.setter + def zyw(self, value: glm_typing.D64Vector3) -> None: ... + + @property + def zwy(self) -> d64vec3: ... + @zwy.setter + def zwy(self, value: glm_typing.D64Vector3) -> None: ... + + @property + def wyz(self) -> d64vec3: ... + @wyz.setter + def wyz(self, value: glm_typing.D64Vector3) -> None: ... + + @property + def wzy(self) -> d64vec3: ... + @wzy.setter + def wzy(self, value: glm_typing.D64Vector3) -> None: ... + + @property + def xyzw(self) -> d64vec4: ... + @xyzw.setter + def xyzw(self, value: glm_typing.D64Vector4) -> None: ... + + @property + def xywz(self) -> d64vec4: ... + @xywz.setter + def xywz(self, value: glm_typing.D64Vector4) -> None: ... + + @property + def xzyw(self) -> d64vec4: ... + @xzyw.setter + def xzyw(self, value: glm_typing.D64Vector4) -> None: ... + + @property + def xzwy(self) -> d64vec4: ... + @xzwy.setter + def xzwy(self, value: glm_typing.D64Vector4) -> None: ... + + @property + def xwyz(self) -> d64vec4: ... + @xwyz.setter + def xwyz(self, value: glm_typing.D64Vector4) -> None: ... + + @property + def xwzy(self) -> d64vec4: ... + @xwzy.setter + def xwzy(self, value: glm_typing.D64Vector4) -> None: ... + + @property + def yxzw(self) -> d64vec4: ... + @yxzw.setter + def yxzw(self, value: glm_typing.D64Vector4) -> None: ... + + @property + def yxwz(self) -> d64vec4: ... + @yxwz.setter + def yxwz(self, value: glm_typing.D64Vector4) -> None: ... + + @property + def yzxw(self) -> d64vec4: ... + @yzxw.setter + def yzxw(self, value: glm_typing.D64Vector4) -> None: ... + + @property + def yzwx(self) -> d64vec4: ... + @yzwx.setter + def yzwx(self, value: glm_typing.D64Vector4) -> None: ... + + @property + def ywxz(self) -> d64vec4: ... + @ywxz.setter + def ywxz(self, value: glm_typing.D64Vector4) -> None: ... + + @property + def ywzx(self) -> d64vec4: ... + @ywzx.setter + def ywzx(self, value: glm_typing.D64Vector4) -> None: ... + + @property + def zxyw(self) -> d64vec4: ... + @zxyw.setter + def zxyw(self, value: glm_typing.D64Vector4) -> None: ... + + @property + def zxwy(self) -> d64vec4: ... + @zxwy.setter + def zxwy(self, value: glm_typing.D64Vector4) -> None: ... + + @property + def zyxw(self) -> d64vec4: ... + @zyxw.setter + def zyxw(self, value: glm_typing.D64Vector4) -> None: ... + + @property + def zywx(self) -> d64vec4: ... + @zywx.setter + def zywx(self, value: glm_typing.D64Vector4) -> None: ... + + @property + def zwxy(self) -> d64vec4: ... + @zwxy.setter + def zwxy(self, value: glm_typing.D64Vector4) -> None: ... + + @property + def zwyx(self) -> d64vec4: ... + @zwyx.setter + def zwyx(self, value: glm_typing.D64Vector4) -> None: ... + + @property + def wxyz(self) -> d64vec4: ... + @wxyz.setter + def wxyz(self, value: glm_typing.D64Vector4) -> None: ... + + @property + def wxzy(self) -> d64vec4: ... + @wxzy.setter + def wxzy(self, value: glm_typing.D64Vector4) -> None: ... + + @property + def wyxz(self) -> d64vec4: ... + @wyxz.setter + def wyxz(self, value: glm_typing.D64Vector4) -> None: ... + + @property + def wyzx(self) -> d64vec4: ... + @wyzx.setter + def wyzx(self, value: glm_typing.D64Vector4) -> None: ... + + @property + def wzxy(self) -> d64vec4: ... + @wzxy.setter + def wzxy(self, value: glm_typing.D64Vector4) -> None: ... + + @property + def wzyx(self) -> d64vec4: ... + @wzyx.setter + def wzyx(self, value: glm_typing.D64Vector4) -> None: ... + + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: glm_typing.Number, y: glm_typing.Number, z: glm_typing.Number, w: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: glm_typing.AnyAnyVector4) -> None: ... + + def __len__(self) -> Literal[4]: ... + def __getitem__(self, index: int) -> float: ... + def __setitem__(self, index: int, value: glm_typing.Number) -> None: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[float, None, None]: ... + + def __neg__(self) -> dmvec4: ... + def __pos__(self) -> dmvec4: ... + def __abs__(self) -> dmvec4: ... + + def __lt__(self, other: Any) -> bool: ... + def __le__(self, other: Any) -> bool: ... + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + def __ge__(self, other: Any) -> bool: ... + def __gt__(self, other: Any) -> bool: ... + + def to_list(self) -> List[float]: ... + def to_tuple(self) -> Tuple[float, float, float, float]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> dmvec4: ... + + def __add__(self, other: Union[glm_typing.D64Vector4, glm_typing.Number]) -> dmvec4: ... + def __radd__(self, other: Union[glm_typing.D64Vector4, glm_typing.Number]) -> dmvec4: ... + def __iadd__(self, other: Union[glm_typing.D64Vector4, glm_typing.Number]) -> dmvec4: ... + + def __sub__(self, other: Union[glm_typing.D64Vector4, glm_typing.Number]) -> dmvec4: ... + def __rsub__(self, other: Union[glm_typing.D64Vector4, glm_typing.Number]) -> dmvec4: ... + def __isub__(self, other: Union[glm_typing.D64Vector4, glm_typing.Number]) -> dmvec4: ... + + @overload + def __mul__(self, other: glm_typing.Number) -> dmvec4: ... + @overload + def __mul__(self, other: glm_typing.D64Vector4) -> dmvec4: ... + @overload + def __mul__(self, other: glm_typing.D64Matrix2x2) -> vec2: ... + @overload + def __mul__(self, other: glm_typing.D64Matrix3x2) -> vec3: ... + @overload + def __mul__(self, other: glm_typing.D64Matrix4x2) -> vec4: ... + @overload + def __rmul__(self, other: glm_typing.Number) -> dmvec4: ... + @overload + def __rmul__(self, other: glm_typing.D64Vector4) -> dmvec4: ... + @overload + def __rmul__(self, other: glm_typing.D64Matrix2x2) -> vec2: ... + @overload + def __rmul__(self, other: glm_typing.D64Matrix3x2) -> vec3: ... + @overload + def __rmul__(self, other: glm_typing.D64Matrix4x2) -> vec4: ... + @overload + def __imul__(self, other: glm_typing.Number) -> dmvec4: ... + @overload + def __imul__(self, other: glm_typing.D64Vector4) -> dmvec4: ... + @overload + def __imul__(self, other: glm_typing.D64Matrix2x2) -> vec2: ... + @overload + def __imul__(self, other: glm_typing.D64Matrix3x2) -> vec3: ... + @overload + def __imul__(self, other: glm_typing.D64Matrix4x2) -> vec4: ... + + def __mod__(self, other: Union[glm_typing.D64Vector4, glm_typing.Number]) -> dmvec4: ... + def __rmod__(self, other: Union[glm_typing.D64Vector4, glm_typing.Number]) -> dmvec4: ... + def __imod__(self, other: Union[glm_typing.D64Vector4, glm_typing.Number]) -> dmvec4: ... + + def __pow__(self, other: Union[glm_typing.D64Vector4, glm_typing.Number]) -> dmvec4: ... + def __rpow__(self, other: Union[glm_typing.D64Vector4, glm_typing.Number]) -> dmvec4: ... + def __ipow__(self, other: Union[glm_typing.D64Vector4, glm_typing.Number]) -> dmvec4: ... + + def __truediv__(self, other: Union[glm_typing.D64Vector4, glm_typing.Number]) -> dmvec4: ... + def __rtruediv__(self, other: Union[glm_typing.D64Vector4, glm_typing.Number]) -> dmvec4: ... + def __itruediv__(self, other: Union[glm_typing.D64Vector4, glm_typing.Number]) -> dmvec4: ... + + def __floordiv__(self, other: Union[glm_typing.D64Vector4, glm_typing.Number]) -> dmvec4: ... + def __rfloordiv__(self, other: Union[glm_typing.D64Vector4, glm_typing.Number]) -> dmvec4: ... + def __ifloordiv__(self, other: Union[glm_typing.D64Vector4, glm_typing.Number]) -> dmvec4: ... + + @overload + def __matmul__(self, other: glm_typing.Number) -> dmvec4: ... + @overload + def __matmul__(self, other: glm_typing.D64Vector4) -> dmvec4: ... + @overload + def __matmul__(self, other: glm_typing.D64Matrix2x2) -> vec2: ... + @overload + def __matmul__(self, other: glm_typing.D64Matrix3x2) -> vec3: ... + @overload + def __matmul__(self, other: glm_typing.D64Matrix4x2) -> vec4: ... + @overload + def __rmatmul__(self, other: glm_typing.Number) -> dmvec4: ... + @overload + def __rmatmul__(self, other: glm_typing.D64Vector4) -> dmvec4: ... + @overload + def __rmatmul__(self, other: glm_typing.D64Matrix2x2) -> vec2: ... + @overload + def __rmatmul__(self, other: glm_typing.D64Matrix3x2) -> vec3: ... + @overload + def __rmatmul__(self, other: glm_typing.D64Matrix4x2) -> vec4: ... + @overload + def __imatmul__(self, other: glm_typing.Number) -> dmvec4: ... + @overload + def __imatmul__(self, other: glm_typing.D64Vector4) -> dmvec4: ... + @overload + def __imatmul__(self, other: glm_typing.D64Matrix2x2) -> vec2: ... + @overload + def __imatmul__(self, other: glm_typing.D64Matrix3x2) -> vec3: ... + @overload + def __imatmul__(self, other: glm_typing.D64Matrix4x2) -> vec4: ... + + def __divmod__(self, other: dmvec4) -> Tuple[dmvec4, dmvec4]: ... + + +f64vec1 = dvec1 + +class dvec1: + x: float + + + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: Union[glm_typing.AnyAnyVector1, glm_typing.DAnyVector2, glm_typing.DAnyVector3, glm_typing.DAnyVector4]) -> None: ... + + def __len__(self) -> Literal[1]: ... + def __getitem__(self, index: int) -> float: ... + def __setitem__(self, index: int, value: glm_typing.Number) -> None: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[float, None, None]: ... + + def __neg__(self) -> dvec1: ... + def __pos__(self) -> dvec1: ... + def __abs__(self) -> dvec1: ... + + def __lt__(self, other: Any) -> bool: ... + def __le__(self, other: Any) -> bool: ... + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + def __ge__(self, other: Any) -> bool: ... + def __gt__(self, other: Any) -> bool: ... + + def to_list(self) -> List[float]: ... + def to_tuple(self) -> Tuple[float]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> dvec1: ... + + def __add__(self, other: Union[glm_typing.D64Vector1, glm_typing.Number]) -> dvec1: ... + def __radd__(self, other: Union[glm_typing.D64Vector1, glm_typing.Number]) -> dvec1: ... + def __iadd__(self, other: Union[glm_typing.D64Vector1, glm_typing.Number]) -> dvec1: ... + + def __sub__(self, other: Union[glm_typing.D64Vector1, glm_typing.Number]) -> dvec1: ... + def __rsub__(self, other: Union[glm_typing.D64Vector1, glm_typing.Number]) -> dvec1: ... + def __isub__(self, other: Union[glm_typing.D64Vector1, glm_typing.Number]) -> dvec1: ... + + @overload + def __mul__(self, other: glm_typing.Number) -> dvec1: ... + @overload + def __mul__(self, other: glm_typing.D64Vector1) -> dvec1: ... + @overload + def __mul__(self, other: glm_typing.D64Matrix2x2) -> vec2: ... + @overload + def __mul__(self, other: glm_typing.D64Matrix3x2) -> vec3: ... + @overload + def __mul__(self, other: glm_typing.D64Matrix4x2) -> vec4: ... + @overload + def __rmul__(self, other: glm_typing.Number) -> dvec1: ... + @overload + def __rmul__(self, other: glm_typing.D64Vector1) -> dvec1: ... + @overload + def __rmul__(self, other: glm_typing.D64Matrix2x2) -> vec2: ... + @overload + def __rmul__(self, other: glm_typing.D64Matrix3x2) -> vec3: ... + @overload + def __rmul__(self, other: glm_typing.D64Matrix4x2) -> vec4: ... + @overload + def __imul__(self, other: glm_typing.Number) -> dvec1: ... + @overload + def __imul__(self, other: glm_typing.D64Vector1) -> dvec1: ... + @overload + def __imul__(self, other: glm_typing.D64Matrix2x2) -> vec2: ... + @overload + def __imul__(self, other: glm_typing.D64Matrix3x2) -> vec3: ... + @overload + def __imul__(self, other: glm_typing.D64Matrix4x2) -> vec4: ... + + def __mod__(self, other: Union[glm_typing.D64Vector1, glm_typing.Number]) -> dvec1: ... + def __rmod__(self, other: Union[glm_typing.D64Vector1, glm_typing.Number]) -> dvec1: ... + def __imod__(self, other: Union[glm_typing.D64Vector1, glm_typing.Number]) -> dvec1: ... + + def __pow__(self, other: Union[glm_typing.D64Vector1, glm_typing.Number]) -> dvec1: ... + def __rpow__(self, other: Union[glm_typing.D64Vector1, glm_typing.Number]) -> dvec1: ... + def __ipow__(self, other: Union[glm_typing.D64Vector1, glm_typing.Number]) -> dvec1: ... + + def __truediv__(self, other: Union[glm_typing.D64Vector1, glm_typing.Number]) -> dvec1: ... + def __rtruediv__(self, other: Union[glm_typing.D64Vector1, glm_typing.Number]) -> dvec1: ... + def __itruediv__(self, other: Union[glm_typing.D64Vector1, glm_typing.Number]) -> dvec1: ... + + def __floordiv__(self, other: Union[glm_typing.D64Vector1, glm_typing.Number]) -> dvec1: ... + def __rfloordiv__(self, other: Union[glm_typing.D64Vector1, glm_typing.Number]) -> dvec1: ... + def __ifloordiv__(self, other: Union[glm_typing.D64Vector1, glm_typing.Number]) -> dvec1: ... + + @overload + def __matmul__(self, other: glm_typing.Number) -> dvec1: ... + @overload + def __matmul__(self, other: glm_typing.D64Vector1) -> dvec1: ... + @overload + def __matmul__(self, other: glm_typing.D64Matrix2x2) -> vec2: ... + @overload + def __matmul__(self, other: glm_typing.D64Matrix3x2) -> vec3: ... + @overload + def __matmul__(self, other: glm_typing.D64Matrix4x2) -> vec4: ... + @overload + def __rmatmul__(self, other: glm_typing.Number) -> dvec1: ... + @overload + def __rmatmul__(self, other: glm_typing.D64Vector1) -> dvec1: ... + @overload + def __rmatmul__(self, other: glm_typing.D64Matrix2x2) -> vec2: ... + @overload + def __rmatmul__(self, other: glm_typing.D64Matrix3x2) -> vec3: ... + @overload + def __rmatmul__(self, other: glm_typing.D64Matrix4x2) -> vec4: ... + @overload + def __imatmul__(self, other: glm_typing.Number) -> dvec1: ... + @overload + def __imatmul__(self, other: glm_typing.D64Vector1) -> dvec1: ... + @overload + def __imatmul__(self, other: glm_typing.D64Matrix2x2) -> vec2: ... + @overload + def __imatmul__(self, other: glm_typing.D64Matrix3x2) -> vec3: ... + @overload + def __imatmul__(self, other: glm_typing.D64Matrix4x2) -> vec4: ... + + def __divmod__(self, other: dvec1) -> Tuple[dvec1, dvec1]: ... + + +f64vec2 = dvec2 + +class dvec2: + x: float + y: float + + + @property + def xy(self) -> d64vec2: ... + @xy.setter + def xy(self, value: glm_typing.D64Vector2) -> None: ... + + @property + def yx(self) -> d64vec2: ... + @yx.setter + def yx(self, value: glm_typing.D64Vector2) -> None: ... + + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: glm_typing.Number, y: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: Union[glm_typing.AnyAnyVector2, glm_typing.DAnyVector3, glm_typing.DAnyVector4]) -> None: ... + + def __len__(self) -> Literal[2]: ... + def __getitem__(self, index: int) -> float: ... + def __setitem__(self, index: int, value: glm_typing.Number) -> None: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[float, None, None]: ... + + def __neg__(self) -> dvec2: ... + def __pos__(self) -> dvec2: ... + def __abs__(self) -> dvec2: ... + + def __lt__(self, other: Any) -> bool: ... + def __le__(self, other: Any) -> bool: ... + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + def __ge__(self, other: Any) -> bool: ... + def __gt__(self, other: Any) -> bool: ... + + def to_list(self) -> List[float]: ... + def to_tuple(self) -> Tuple[float, float]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> dvec2: ... + + def __add__(self, other: Union[glm_typing.D64Vector2, glm_typing.Number]) -> dvec2: ... + def __radd__(self, other: Union[glm_typing.D64Vector2, glm_typing.Number]) -> dvec2: ... + def __iadd__(self, other: Union[glm_typing.D64Vector2, glm_typing.Number]) -> dvec2: ... + + def __sub__(self, other: Union[glm_typing.D64Vector2, glm_typing.Number]) -> dvec2: ... + def __rsub__(self, other: Union[glm_typing.D64Vector2, glm_typing.Number]) -> dvec2: ... + def __isub__(self, other: Union[glm_typing.D64Vector2, glm_typing.Number]) -> dvec2: ... + + @overload + def __mul__(self, other: glm_typing.Number) -> dvec2: ... + @overload + def __mul__(self, other: glm_typing.D64Vector2) -> dvec2: ... + @overload + def __mul__(self, other: glm_typing.D64Matrix2x2) -> vec2: ... + @overload + def __mul__(self, other: glm_typing.D64Matrix3x2) -> vec3: ... + @overload + def __mul__(self, other: glm_typing.D64Matrix4x2) -> vec4: ... + @overload + def __rmul__(self, other: glm_typing.Number) -> dvec2: ... + @overload + def __rmul__(self, other: glm_typing.D64Vector2) -> dvec2: ... + @overload + def __rmul__(self, other: glm_typing.D64Matrix2x2) -> vec2: ... + @overload + def __rmul__(self, other: glm_typing.D64Matrix3x2) -> vec3: ... + @overload + def __rmul__(self, other: glm_typing.D64Matrix4x2) -> vec4: ... + @overload + def __imul__(self, other: glm_typing.Number) -> dvec2: ... + @overload + def __imul__(self, other: glm_typing.D64Vector2) -> dvec2: ... + @overload + def __imul__(self, other: glm_typing.D64Matrix2x2) -> vec2: ... + @overload + def __imul__(self, other: glm_typing.D64Matrix3x2) -> vec3: ... + @overload + def __imul__(self, other: glm_typing.D64Matrix4x2) -> vec4: ... + + def __mod__(self, other: Union[glm_typing.D64Vector2, glm_typing.Number]) -> dvec2: ... + def __rmod__(self, other: Union[glm_typing.D64Vector2, glm_typing.Number]) -> dvec2: ... + def __imod__(self, other: Union[glm_typing.D64Vector2, glm_typing.Number]) -> dvec2: ... + + def __pow__(self, other: Union[glm_typing.D64Vector2, glm_typing.Number]) -> dvec2: ... + def __rpow__(self, other: Union[glm_typing.D64Vector2, glm_typing.Number]) -> dvec2: ... + def __ipow__(self, other: Union[glm_typing.D64Vector2, glm_typing.Number]) -> dvec2: ... + + def __truediv__(self, other: Union[glm_typing.D64Vector2, glm_typing.Number]) -> dvec2: ... + def __rtruediv__(self, other: Union[glm_typing.D64Vector2, glm_typing.Number]) -> dvec2: ... + def __itruediv__(self, other: Union[glm_typing.D64Vector2, glm_typing.Number]) -> dvec2: ... + + def __floordiv__(self, other: Union[glm_typing.D64Vector2, glm_typing.Number]) -> dvec2: ... + def __rfloordiv__(self, other: Union[glm_typing.D64Vector2, glm_typing.Number]) -> dvec2: ... + def __ifloordiv__(self, other: Union[glm_typing.D64Vector2, glm_typing.Number]) -> dvec2: ... + + @overload + def __matmul__(self, other: glm_typing.Number) -> dvec2: ... + @overload + def __matmul__(self, other: glm_typing.D64Vector2) -> dvec2: ... + @overload + def __matmul__(self, other: glm_typing.D64Matrix2x2) -> vec2: ... + @overload + def __matmul__(self, other: glm_typing.D64Matrix3x2) -> vec3: ... + @overload + def __matmul__(self, other: glm_typing.D64Matrix4x2) -> vec4: ... + @overload + def __rmatmul__(self, other: glm_typing.Number) -> dvec2: ... + @overload + def __rmatmul__(self, other: glm_typing.D64Vector2) -> dvec2: ... + @overload + def __rmatmul__(self, other: glm_typing.D64Matrix2x2) -> vec2: ... + @overload + def __rmatmul__(self, other: glm_typing.D64Matrix3x2) -> vec3: ... + @overload + def __rmatmul__(self, other: glm_typing.D64Matrix4x2) -> vec4: ... + @overload + def __imatmul__(self, other: glm_typing.Number) -> dvec2: ... + @overload + def __imatmul__(self, other: glm_typing.D64Vector2) -> dvec2: ... + @overload + def __imatmul__(self, other: glm_typing.D64Matrix2x2) -> vec2: ... + @overload + def __imatmul__(self, other: glm_typing.D64Matrix3x2) -> vec3: ... + @overload + def __imatmul__(self, other: glm_typing.D64Matrix4x2) -> vec4: ... + + def __divmod__(self, other: dvec2) -> Tuple[dvec2, dvec2]: ... + + +f64vec3 = dvec3 + +class dvec3: + x: float + y: float + z: float + + + @property + def xy(self) -> d64vec2: ... + @xy.setter + def xy(self, value: glm_typing.D64Vector2) -> None: ... + + @property + def yx(self) -> d64vec2: ... + @yx.setter + def yx(self, value: glm_typing.D64Vector2) -> None: ... + + @property + def xz(self) -> d64vec2: ... + @xz.setter + def xz(self, value: glm_typing.D64Vector2) -> None: ... + + @property + def zx(self) -> d64vec2: ... + @zx.setter + def zx(self, value: glm_typing.D64Vector2) -> None: ... + + @property + def yz(self) -> d64vec2: ... + @yz.setter + def yz(self, value: glm_typing.D64Vector2) -> None: ... + + @property + def zy(self) -> d64vec2: ... + @zy.setter + def zy(self, value: glm_typing.D64Vector2) -> None: ... + + @property + def xyz(self) -> d64vec3: ... + @xyz.setter + def xyz(self, value: glm_typing.D64Vector3) -> None: ... + + @property + def xzy(self) -> d64vec3: ... + @xzy.setter + def xzy(self, value: glm_typing.D64Vector3) -> None: ... + + @property + def yxz(self) -> d64vec3: ... + @yxz.setter + def yxz(self, value: glm_typing.D64Vector3) -> None: ... + + @property + def yzx(self) -> d64vec3: ... + @yzx.setter + def yzx(self, value: glm_typing.D64Vector3) -> None: ... + + @property + def zxy(self) -> d64vec3: ... + @zxy.setter + def zxy(self, value: glm_typing.D64Vector3) -> None: ... + + @property + def zyx(self) -> d64vec3: ... + @zyx.setter + def zyx(self, value: glm_typing.D64Vector3) -> None: ... + + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: glm_typing.Number, y: glm_typing.Number, z: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: Union[glm_typing.AnyAnyVector3, glm_typing.DAnyVector4]) -> None: ... + + def __len__(self) -> Literal[3]: ... + def __getitem__(self, index: int) -> float: ... + def __setitem__(self, index: int, value: glm_typing.Number) -> None: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[float, None, None]: ... + + def __neg__(self) -> dvec3: ... + def __pos__(self) -> dvec3: ... + def __abs__(self) -> dvec3: ... + + def __lt__(self, other: Any) -> bool: ... + def __le__(self, other: Any) -> bool: ... + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + def __ge__(self, other: Any) -> bool: ... + def __gt__(self, other: Any) -> bool: ... + + def to_list(self) -> List[float]: ... + def to_tuple(self) -> Tuple[float, float, float]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> dvec3: ... + + def __add__(self, other: Union[glm_typing.D64Vector3, glm_typing.Number]) -> dvec3: ... + def __radd__(self, other: Union[glm_typing.D64Vector3, glm_typing.Number]) -> dvec3: ... + def __iadd__(self, other: Union[glm_typing.D64Vector3, glm_typing.Number]) -> dvec3: ... + + def __sub__(self, other: Union[glm_typing.D64Vector3, glm_typing.Number]) -> dvec3: ... + def __rsub__(self, other: Union[glm_typing.D64Vector3, glm_typing.Number]) -> dvec3: ... + def __isub__(self, other: Union[glm_typing.D64Vector3, glm_typing.Number]) -> dvec3: ... + + @overload + def __mul__(self, other: glm_typing.Number) -> dvec3: ... + @overload + def __mul__(self, other: glm_typing.D64Vector3) -> dvec3: ... + @overload + def __mul__(self, other: glm_typing.D64Matrix2x2) -> vec2: ... + @overload + def __mul__(self, other: glm_typing.D64Matrix3x2) -> vec3: ... + @overload + def __mul__(self, other: glm_typing.D64Matrix4x2) -> vec4: ... + @overload + def __rmul__(self, other: glm_typing.Number) -> dvec3: ... + @overload + def __rmul__(self, other: glm_typing.D64Vector3) -> dvec3: ... + @overload + def __rmul__(self, other: glm_typing.D64Matrix2x2) -> vec2: ... + @overload + def __rmul__(self, other: glm_typing.D64Matrix3x2) -> vec3: ... + @overload + def __rmul__(self, other: glm_typing.D64Matrix4x2) -> vec4: ... + @overload + def __imul__(self, other: glm_typing.Number) -> dvec3: ... + @overload + def __imul__(self, other: glm_typing.D64Vector3) -> dvec3: ... + @overload + def __imul__(self, other: glm_typing.D64Matrix2x2) -> vec2: ... + @overload + def __imul__(self, other: glm_typing.D64Matrix3x2) -> vec3: ... + @overload + def __imul__(self, other: glm_typing.D64Matrix4x2) -> vec4: ... + + def __mod__(self, other: Union[glm_typing.D64Vector3, glm_typing.Number]) -> dvec3: ... + def __rmod__(self, other: Union[glm_typing.D64Vector3, glm_typing.Number]) -> dvec3: ... + def __imod__(self, other: Union[glm_typing.D64Vector3, glm_typing.Number]) -> dvec3: ... + + def __pow__(self, other: Union[glm_typing.D64Vector3, glm_typing.Number]) -> dvec3: ... + def __rpow__(self, other: Union[glm_typing.D64Vector3, glm_typing.Number]) -> dvec3: ... + def __ipow__(self, other: Union[glm_typing.D64Vector3, glm_typing.Number]) -> dvec3: ... + + def __truediv__(self, other: Union[glm_typing.D64Vector3, glm_typing.Number]) -> dvec3: ... + def __rtruediv__(self, other: Union[glm_typing.D64Vector3, glm_typing.Number]) -> dvec3: ... + def __itruediv__(self, other: Union[glm_typing.D64Vector3, glm_typing.Number]) -> dvec3: ... + + def __floordiv__(self, other: Union[glm_typing.D64Vector3, glm_typing.Number]) -> dvec3: ... + def __rfloordiv__(self, other: Union[glm_typing.D64Vector3, glm_typing.Number]) -> dvec3: ... + def __ifloordiv__(self, other: Union[glm_typing.D64Vector3, glm_typing.Number]) -> dvec3: ... + + @overload + def __matmul__(self, other: glm_typing.Number) -> dvec3: ... + @overload + def __matmul__(self, other: glm_typing.D64Vector3) -> dvec3: ... + @overload + def __matmul__(self, other: glm_typing.D64Matrix2x2) -> vec2: ... + @overload + def __matmul__(self, other: glm_typing.D64Matrix3x2) -> vec3: ... + @overload + def __matmul__(self, other: glm_typing.D64Matrix4x2) -> vec4: ... + @overload + def __rmatmul__(self, other: glm_typing.Number) -> dvec3: ... + @overload + def __rmatmul__(self, other: glm_typing.D64Vector3) -> dvec3: ... + @overload + def __rmatmul__(self, other: glm_typing.D64Matrix2x2) -> vec2: ... + @overload + def __rmatmul__(self, other: glm_typing.D64Matrix3x2) -> vec3: ... + @overload + def __rmatmul__(self, other: glm_typing.D64Matrix4x2) -> vec4: ... + @overload + def __imatmul__(self, other: glm_typing.Number) -> dvec3: ... + @overload + def __imatmul__(self, other: glm_typing.D64Vector3) -> dvec3: ... + @overload + def __imatmul__(self, other: glm_typing.D64Matrix2x2) -> vec2: ... + @overload + def __imatmul__(self, other: glm_typing.D64Matrix3x2) -> vec3: ... + @overload + def __imatmul__(self, other: glm_typing.D64Matrix4x2) -> vec4: ... + + def __divmod__(self, other: dvec3) -> Tuple[dvec3, dvec3]: ... + + +f64vec4 = dvec4 + +class dvec4: + x: float + y: float + z: float + w: float + + + @property + def xy(self) -> d64vec2: ... + @xy.setter + def xy(self, value: glm_typing.D64Vector2) -> None: ... + + @property + def yx(self) -> d64vec2: ... + @yx.setter + def yx(self, value: glm_typing.D64Vector2) -> None: ... + + @property + def xz(self) -> d64vec2: ... + @xz.setter + def xz(self, value: glm_typing.D64Vector2) -> None: ... + + @property + def zx(self) -> d64vec2: ... + @zx.setter + def zx(self, value: glm_typing.D64Vector2) -> None: ... + + @property + def xw(self) -> d64vec2: ... + @xw.setter + def xw(self, value: glm_typing.D64Vector2) -> None: ... + + @property + def wx(self) -> d64vec2: ... + @wx.setter + def wx(self, value: glm_typing.D64Vector2) -> None: ... + + @property + def yz(self) -> d64vec2: ... + @yz.setter + def yz(self, value: glm_typing.D64Vector2) -> None: ... + + @property + def zy(self) -> d64vec2: ... + @zy.setter + def zy(self, value: glm_typing.D64Vector2) -> None: ... + + @property + def yw(self) -> d64vec2: ... + @yw.setter + def yw(self, value: glm_typing.D64Vector2) -> None: ... + + @property + def wy(self) -> d64vec2: ... + @wy.setter + def wy(self, value: glm_typing.D64Vector2) -> None: ... + + @property + def zw(self) -> d64vec2: ... + @zw.setter + def zw(self, value: glm_typing.D64Vector2) -> None: ... + + @property + def wz(self) -> d64vec2: ... + @wz.setter + def wz(self, value: glm_typing.D64Vector2) -> None: ... + + @property + def xyz(self) -> d64vec3: ... + @xyz.setter + def xyz(self, value: glm_typing.D64Vector3) -> None: ... + + @property + def xzy(self) -> d64vec3: ... + @xzy.setter + def xzy(self, value: glm_typing.D64Vector3) -> None: ... + + @property + def yxz(self) -> d64vec3: ... + @yxz.setter + def yxz(self, value: glm_typing.D64Vector3) -> None: ... + + @property + def yzx(self) -> d64vec3: ... + @yzx.setter + def yzx(self, value: glm_typing.D64Vector3) -> None: ... + + @property + def zxy(self) -> d64vec3: ... + @zxy.setter + def zxy(self, value: glm_typing.D64Vector3) -> None: ... + + @property + def zyx(self) -> d64vec3: ... + @zyx.setter + def zyx(self, value: glm_typing.D64Vector3) -> None: ... + + @property + def xyw(self) -> d64vec3: ... + @xyw.setter + def xyw(self, value: glm_typing.D64Vector3) -> None: ... + + @property + def xwy(self) -> d64vec3: ... + @xwy.setter + def xwy(self, value: glm_typing.D64Vector3) -> None: ... + + @property + def yxw(self) -> d64vec3: ... + @yxw.setter + def yxw(self, value: glm_typing.D64Vector3) -> None: ... + + @property + def ywx(self) -> d64vec3: ... + @ywx.setter + def ywx(self, value: glm_typing.D64Vector3) -> None: ... + + @property + def wxy(self) -> d64vec3: ... + @wxy.setter + def wxy(self, value: glm_typing.D64Vector3) -> None: ... + + @property + def wyx(self) -> d64vec3: ... + @wyx.setter + def wyx(self, value: glm_typing.D64Vector3) -> None: ... + + @property + def xzw(self) -> d64vec3: ... + @xzw.setter + def xzw(self, value: glm_typing.D64Vector3) -> None: ... + + @property + def xwz(self) -> d64vec3: ... + @xwz.setter + def xwz(self, value: glm_typing.D64Vector3) -> None: ... + + @property + def zxw(self) -> d64vec3: ... + @zxw.setter + def zxw(self, value: glm_typing.D64Vector3) -> None: ... + + @property + def zwx(self) -> d64vec3: ... + @zwx.setter + def zwx(self, value: glm_typing.D64Vector3) -> None: ... + + @property + def wxz(self) -> d64vec3: ... + @wxz.setter + def wxz(self, value: glm_typing.D64Vector3) -> None: ... + + @property + def wzx(self) -> d64vec3: ... + @wzx.setter + def wzx(self, value: glm_typing.D64Vector3) -> None: ... + + @property + def yzw(self) -> d64vec3: ... + @yzw.setter + def yzw(self, value: glm_typing.D64Vector3) -> None: ... + + @property + def ywz(self) -> d64vec3: ... + @ywz.setter + def ywz(self, value: glm_typing.D64Vector3) -> None: ... + + @property + def zyw(self) -> d64vec3: ... + @zyw.setter + def zyw(self, value: glm_typing.D64Vector3) -> None: ... + + @property + def zwy(self) -> d64vec3: ... + @zwy.setter + def zwy(self, value: glm_typing.D64Vector3) -> None: ... + + @property + def wyz(self) -> d64vec3: ... + @wyz.setter + def wyz(self, value: glm_typing.D64Vector3) -> None: ... + + @property + def wzy(self) -> d64vec3: ... + @wzy.setter + def wzy(self, value: glm_typing.D64Vector3) -> None: ... + + @property + def xyzw(self) -> d64vec4: ... + @xyzw.setter + def xyzw(self, value: glm_typing.D64Vector4) -> None: ... + + @property + def xywz(self) -> d64vec4: ... + @xywz.setter + def xywz(self, value: glm_typing.D64Vector4) -> None: ... + + @property + def xzyw(self) -> d64vec4: ... + @xzyw.setter + def xzyw(self, value: glm_typing.D64Vector4) -> None: ... + + @property + def xzwy(self) -> d64vec4: ... + @xzwy.setter + def xzwy(self, value: glm_typing.D64Vector4) -> None: ... + + @property + def xwyz(self) -> d64vec4: ... + @xwyz.setter + def xwyz(self, value: glm_typing.D64Vector4) -> None: ... + + @property + def xwzy(self) -> d64vec4: ... + @xwzy.setter + def xwzy(self, value: glm_typing.D64Vector4) -> None: ... + + @property + def yxzw(self) -> d64vec4: ... + @yxzw.setter + def yxzw(self, value: glm_typing.D64Vector4) -> None: ... + + @property + def yxwz(self) -> d64vec4: ... + @yxwz.setter + def yxwz(self, value: glm_typing.D64Vector4) -> None: ... + + @property + def yzxw(self) -> d64vec4: ... + @yzxw.setter + def yzxw(self, value: glm_typing.D64Vector4) -> None: ... + + @property + def yzwx(self) -> d64vec4: ... + @yzwx.setter + def yzwx(self, value: glm_typing.D64Vector4) -> None: ... + + @property + def ywxz(self) -> d64vec4: ... + @ywxz.setter + def ywxz(self, value: glm_typing.D64Vector4) -> None: ... + + @property + def ywzx(self) -> d64vec4: ... + @ywzx.setter + def ywzx(self, value: glm_typing.D64Vector4) -> None: ... + + @property + def zxyw(self) -> d64vec4: ... + @zxyw.setter + def zxyw(self, value: glm_typing.D64Vector4) -> None: ... + + @property + def zxwy(self) -> d64vec4: ... + @zxwy.setter + def zxwy(self, value: glm_typing.D64Vector4) -> None: ... + + @property + def zyxw(self) -> d64vec4: ... + @zyxw.setter + def zyxw(self, value: glm_typing.D64Vector4) -> None: ... + + @property + def zywx(self) -> d64vec4: ... + @zywx.setter + def zywx(self, value: glm_typing.D64Vector4) -> None: ... + + @property + def zwxy(self) -> d64vec4: ... + @zwxy.setter + def zwxy(self, value: glm_typing.D64Vector4) -> None: ... + + @property + def zwyx(self) -> d64vec4: ... + @zwyx.setter + def zwyx(self, value: glm_typing.D64Vector4) -> None: ... + + @property + def wxyz(self) -> d64vec4: ... + @wxyz.setter + def wxyz(self, value: glm_typing.D64Vector4) -> None: ... + + @property + def wxzy(self) -> d64vec4: ... + @wxzy.setter + def wxzy(self, value: glm_typing.D64Vector4) -> None: ... + + @property + def wyxz(self) -> d64vec4: ... + @wyxz.setter + def wyxz(self, value: glm_typing.D64Vector4) -> None: ... + + @property + def wyzx(self) -> d64vec4: ... + @wyzx.setter + def wyzx(self, value: glm_typing.D64Vector4) -> None: ... + + @property + def wzxy(self) -> d64vec4: ... + @wzxy.setter + def wzxy(self, value: glm_typing.D64Vector4) -> None: ... + + @property + def wzyx(self) -> d64vec4: ... + @wzyx.setter + def wzyx(self, value: glm_typing.D64Vector4) -> None: ... + + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: glm_typing.Number, y: glm_typing.Number, z: glm_typing.Number, w: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: glm_typing.AnyAnyVector4) -> None: ... + + def __len__(self) -> Literal[4]: ... + def __getitem__(self, index: int) -> float: ... + def __setitem__(self, index: int, value: glm_typing.Number) -> None: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[float, None, None]: ... + + def __neg__(self) -> dvec4: ... + def __pos__(self) -> dvec4: ... + def __abs__(self) -> dvec4: ... + + def __lt__(self, other: Any) -> bool: ... + def __le__(self, other: Any) -> bool: ... + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + def __ge__(self, other: Any) -> bool: ... + def __gt__(self, other: Any) -> bool: ... + + def to_list(self) -> List[float]: ... + def to_tuple(self) -> Tuple[float, float, float, float]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> dvec4: ... + + def __add__(self, other: Union[glm_typing.D64Vector4, glm_typing.Number]) -> dvec4: ... + def __radd__(self, other: Union[glm_typing.D64Vector4, glm_typing.Number]) -> dvec4: ... + def __iadd__(self, other: Union[glm_typing.D64Vector4, glm_typing.Number]) -> dvec4: ... + + def __sub__(self, other: Union[glm_typing.D64Vector4, glm_typing.Number]) -> dvec4: ... + def __rsub__(self, other: Union[glm_typing.D64Vector4, glm_typing.Number]) -> dvec4: ... + def __isub__(self, other: Union[glm_typing.D64Vector4, glm_typing.Number]) -> dvec4: ... + + @overload + def __mul__(self, other: glm_typing.Number) -> dvec4: ... + @overload + def __mul__(self, other: glm_typing.D64Vector4) -> dvec4: ... + @overload + def __mul__(self, other: glm_typing.D64Matrix2x2) -> vec2: ... + @overload + def __mul__(self, other: glm_typing.D64Matrix3x2) -> vec3: ... + @overload + def __mul__(self, other: glm_typing.D64Matrix4x2) -> vec4: ... + @overload + def __rmul__(self, other: glm_typing.Number) -> dvec4: ... + @overload + def __rmul__(self, other: glm_typing.D64Vector4) -> dvec4: ... + @overload + def __rmul__(self, other: glm_typing.D64Matrix2x2) -> vec2: ... + @overload + def __rmul__(self, other: glm_typing.D64Matrix3x2) -> vec3: ... + @overload + def __rmul__(self, other: glm_typing.D64Matrix4x2) -> vec4: ... + @overload + def __imul__(self, other: glm_typing.Number) -> dvec4: ... + @overload + def __imul__(self, other: glm_typing.D64Vector4) -> dvec4: ... + @overload + def __imul__(self, other: glm_typing.D64Matrix2x2) -> vec2: ... + @overload + def __imul__(self, other: glm_typing.D64Matrix3x2) -> vec3: ... + @overload + def __imul__(self, other: glm_typing.D64Matrix4x2) -> vec4: ... + + def __mod__(self, other: Union[glm_typing.D64Vector4, glm_typing.Number]) -> dvec4: ... + def __rmod__(self, other: Union[glm_typing.D64Vector4, glm_typing.Number]) -> dvec4: ... + def __imod__(self, other: Union[glm_typing.D64Vector4, glm_typing.Number]) -> dvec4: ... + + def __pow__(self, other: Union[glm_typing.D64Vector4, glm_typing.Number]) -> dvec4: ... + def __rpow__(self, other: Union[glm_typing.D64Vector4, glm_typing.Number]) -> dvec4: ... + def __ipow__(self, other: Union[glm_typing.D64Vector4, glm_typing.Number]) -> dvec4: ... + + def __truediv__(self, other: Union[glm_typing.D64Vector4, glm_typing.Number]) -> dvec4: ... + def __rtruediv__(self, other: Union[glm_typing.D64Vector4, glm_typing.Number]) -> dvec4: ... + def __itruediv__(self, other: Union[glm_typing.D64Vector4, glm_typing.Number]) -> dvec4: ... + + def __floordiv__(self, other: Union[glm_typing.D64Vector4, glm_typing.Number]) -> dvec4: ... + def __rfloordiv__(self, other: Union[glm_typing.D64Vector4, glm_typing.Number]) -> dvec4: ... + def __ifloordiv__(self, other: Union[glm_typing.D64Vector4, glm_typing.Number]) -> dvec4: ... + + @overload + def __matmul__(self, other: glm_typing.Number) -> dvec4: ... + @overload + def __matmul__(self, other: glm_typing.D64Vector4) -> dvec4: ... + @overload + def __matmul__(self, other: glm_typing.D64Matrix2x2) -> vec2: ... + @overload + def __matmul__(self, other: glm_typing.D64Matrix3x2) -> vec3: ... + @overload + def __matmul__(self, other: glm_typing.D64Matrix4x2) -> vec4: ... + @overload + def __rmatmul__(self, other: glm_typing.Number) -> dvec4: ... + @overload + def __rmatmul__(self, other: glm_typing.D64Vector4) -> dvec4: ... + @overload + def __rmatmul__(self, other: glm_typing.D64Matrix2x2) -> vec2: ... + @overload + def __rmatmul__(self, other: glm_typing.D64Matrix3x2) -> vec3: ... + @overload + def __rmatmul__(self, other: glm_typing.D64Matrix4x2) -> vec4: ... + @overload + def __imatmul__(self, other: glm_typing.Number) -> dvec4: ... + @overload + def __imatmul__(self, other: glm_typing.D64Vector4) -> dvec4: ... + @overload + def __imatmul__(self, other: glm_typing.D64Matrix2x2) -> vec2: ... + @overload + def __imatmul__(self, other: glm_typing.D64Matrix3x2) -> vec3: ... + @overload + def __imatmul__(self, other: glm_typing.D64Matrix4x2) -> vec4: ... + + def __divmod__(self, other: dvec4) -> Tuple[dvec4, dvec4]: ... + + + +class i16vec1: + x: int + + + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: Union[glm_typing.AnyAnyVector1, glm_typing.IAnyVector2, glm_typing.IAnyVector3, glm_typing.IAnyVector4]) -> None: ... + + def __len__(self) -> Literal[1]: ... + def __getitem__(self, index: int) -> int: ... + def __setitem__(self, index: int, value: glm_typing.Number) -> None: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[int, None, None]: ... + + def __neg__(self) -> i16vec1: ... + def __pos__(self) -> i16vec1: ... + def __abs__(self) -> i16vec1: ... + + def __lt__(self, other: Any) -> bool: ... + def __le__(self, other: Any) -> bool: ... + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + def __ge__(self, other: Any) -> bool: ... + def __gt__(self, other: Any) -> bool: ... + + def to_list(self) -> List[int]: ... + def to_tuple(self) -> Tuple[int]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> i16vec1: ... + + def __add__(self, other: Union[glm_typing.I16Vector1, glm_typing.Number]) -> i16vec1: ... + def __radd__(self, other: Union[glm_typing.I16Vector1, glm_typing.Number]) -> i16vec1: ... + def __iadd__(self, other: Union[glm_typing.I16Vector1, glm_typing.Number]) -> i16vec1: ... + + def __sub__(self, other: Union[glm_typing.I16Vector1, glm_typing.Number]) -> i16vec1: ... + def __rsub__(self, other: Union[glm_typing.I16Vector1, glm_typing.Number]) -> i16vec1: ... + def __isub__(self, other: Union[glm_typing.I16Vector1, glm_typing.Number]) -> i16vec1: ... + + @overload + def __mul__(self, other: glm_typing.Number) -> i16vec1: ... + @overload + def __mul__(self, other: glm_typing.I16Vector1) -> i16vec1: ... + @overload + def __rmul__(self, other: glm_typing.Number) -> i16vec1: ... + @overload + def __rmul__(self, other: glm_typing.I16Vector1) -> i16vec1: ... + @overload + def __imul__(self, other: glm_typing.Number) -> i16vec1: ... + @overload + def __imul__(self, other: glm_typing.I16Vector1) -> i16vec1: ... + + def __mod__(self, other: Union[glm_typing.I16Vector1, glm_typing.Number]) -> i16vec1: ... + def __rmod__(self, other: Union[glm_typing.I16Vector1, glm_typing.Number]) -> i16vec1: ... + def __imod__(self, other: Union[glm_typing.I16Vector1, glm_typing.Number]) -> i16vec1: ... + + def __pow__(self, other: Union[glm_typing.I16Vector1, glm_typing.Number]) -> i16vec1: ... + def __rpow__(self, other: Union[glm_typing.I16Vector1, glm_typing.Number]) -> i16vec1: ... + def __ipow__(self, other: Union[glm_typing.I16Vector1, glm_typing.Number]) -> i16vec1: ... + + def __truediv__(self, other: Union[glm_typing.I16Vector1, glm_typing.Number]) -> i16vec1: ... + def __rtruediv__(self, other: Union[glm_typing.I16Vector1, glm_typing.Number]) -> i16vec1: ... + def __itruediv__(self, other: Union[glm_typing.I16Vector1, glm_typing.Number]) -> i16vec1: ... + + def __floordiv__(self, other: Union[glm_typing.I16Vector1, glm_typing.Number]) -> i16vec1: ... + def __rfloordiv__(self, other: Union[glm_typing.I16Vector1, glm_typing.Number]) -> i16vec1: ... + def __ifloordiv__(self, other: Union[glm_typing.I16Vector1, glm_typing.Number]) -> i16vec1: ... + + @overload + def __matmul__(self, other: glm_typing.Number) -> i16vec1: ... + @overload + def __matmul__(self, other: glm_typing.I16Vector1) -> i16vec1: ... + @overload + def __rmatmul__(self, other: glm_typing.Number) -> i16vec1: ... + @overload + def __rmatmul__(self, other: glm_typing.I16Vector1) -> i16vec1: ... + @overload + def __imatmul__(self, other: glm_typing.Number) -> i16vec1: ... + @overload + def __imatmul__(self, other: glm_typing.I16Vector1) -> i16vec1: ... + + def __divmod__(self, other: i16vec1) -> Tuple[i16vec1, i16vec1]: ... + + + +class i16vec2: + x: int + y: int + + + @property + def xy(self) -> i16vec2: ... + @xy.setter + def xy(self, value: glm_typing.I16Vector2) -> None: ... + + @property + def yx(self) -> i16vec2: ... + @yx.setter + def yx(self, value: glm_typing.I16Vector2) -> None: ... + + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: glm_typing.Number, y: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: Union[glm_typing.AnyAnyVector2, glm_typing.IAnyVector3, glm_typing.IAnyVector4]) -> None: ... + + def __len__(self) -> Literal[2]: ... + def __getitem__(self, index: int) -> int: ... + def __setitem__(self, index: int, value: glm_typing.Number) -> None: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[int, None, None]: ... + + def __neg__(self) -> i16vec2: ... + def __pos__(self) -> i16vec2: ... + def __abs__(self) -> i16vec2: ... + + def __lt__(self, other: Any) -> bool: ... + def __le__(self, other: Any) -> bool: ... + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + def __ge__(self, other: Any) -> bool: ... + def __gt__(self, other: Any) -> bool: ... + + def to_list(self) -> List[int]: ... + def to_tuple(self) -> Tuple[int, int]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> i16vec2: ... + + def __add__(self, other: Union[glm_typing.I16Vector2, glm_typing.Number]) -> i16vec2: ... + def __radd__(self, other: Union[glm_typing.I16Vector2, glm_typing.Number]) -> i16vec2: ... + def __iadd__(self, other: Union[glm_typing.I16Vector2, glm_typing.Number]) -> i16vec2: ... + + def __sub__(self, other: Union[glm_typing.I16Vector2, glm_typing.Number]) -> i16vec2: ... + def __rsub__(self, other: Union[glm_typing.I16Vector2, glm_typing.Number]) -> i16vec2: ... + def __isub__(self, other: Union[glm_typing.I16Vector2, glm_typing.Number]) -> i16vec2: ... + + @overload + def __mul__(self, other: glm_typing.Number) -> i16vec2: ... + @overload + def __mul__(self, other: glm_typing.I16Vector2) -> i16vec2: ... + @overload + def __rmul__(self, other: glm_typing.Number) -> i16vec2: ... + @overload + def __rmul__(self, other: glm_typing.I16Vector2) -> i16vec2: ... + @overload + def __imul__(self, other: glm_typing.Number) -> i16vec2: ... + @overload + def __imul__(self, other: glm_typing.I16Vector2) -> i16vec2: ... + + def __mod__(self, other: Union[glm_typing.I16Vector2, glm_typing.Number]) -> i16vec2: ... + def __rmod__(self, other: Union[glm_typing.I16Vector2, glm_typing.Number]) -> i16vec2: ... + def __imod__(self, other: Union[glm_typing.I16Vector2, glm_typing.Number]) -> i16vec2: ... + + def __pow__(self, other: Union[glm_typing.I16Vector2, glm_typing.Number]) -> i16vec2: ... + def __rpow__(self, other: Union[glm_typing.I16Vector2, glm_typing.Number]) -> i16vec2: ... + def __ipow__(self, other: Union[glm_typing.I16Vector2, glm_typing.Number]) -> i16vec2: ... + + def __truediv__(self, other: Union[glm_typing.I16Vector2, glm_typing.Number]) -> i16vec2: ... + def __rtruediv__(self, other: Union[glm_typing.I16Vector2, glm_typing.Number]) -> i16vec2: ... + def __itruediv__(self, other: Union[glm_typing.I16Vector2, glm_typing.Number]) -> i16vec2: ... + + def __floordiv__(self, other: Union[glm_typing.I16Vector2, glm_typing.Number]) -> i16vec2: ... + def __rfloordiv__(self, other: Union[glm_typing.I16Vector2, glm_typing.Number]) -> i16vec2: ... + def __ifloordiv__(self, other: Union[glm_typing.I16Vector2, glm_typing.Number]) -> i16vec2: ... + + @overload + def __matmul__(self, other: glm_typing.Number) -> i16vec2: ... + @overload + def __matmul__(self, other: glm_typing.I16Vector2) -> i16vec2: ... + @overload + def __rmatmul__(self, other: glm_typing.Number) -> i16vec2: ... + @overload + def __rmatmul__(self, other: glm_typing.I16Vector2) -> i16vec2: ... + @overload + def __imatmul__(self, other: glm_typing.Number) -> i16vec2: ... + @overload + def __imatmul__(self, other: glm_typing.I16Vector2) -> i16vec2: ... + + def __divmod__(self, other: i16vec2) -> Tuple[i16vec2, i16vec2]: ... + + + +class i16vec3: + x: int + y: int + z: int + + + @property + def xy(self) -> i16vec2: ... + @xy.setter + def xy(self, value: glm_typing.I16Vector2) -> None: ... + + @property + def yx(self) -> i16vec2: ... + @yx.setter + def yx(self, value: glm_typing.I16Vector2) -> None: ... + + @property + def xz(self) -> i16vec2: ... + @xz.setter + def xz(self, value: glm_typing.I16Vector2) -> None: ... + + @property + def zx(self) -> i16vec2: ... + @zx.setter + def zx(self, value: glm_typing.I16Vector2) -> None: ... + + @property + def yz(self) -> i16vec2: ... + @yz.setter + def yz(self, value: glm_typing.I16Vector2) -> None: ... + + @property + def zy(self) -> i16vec2: ... + @zy.setter + def zy(self, value: glm_typing.I16Vector2) -> None: ... + + @property + def xyz(self) -> i16vec3: ... + @xyz.setter + def xyz(self, value: glm_typing.I16Vector3) -> None: ... + + @property + def xzy(self) -> i16vec3: ... + @xzy.setter + def xzy(self, value: glm_typing.I16Vector3) -> None: ... + + @property + def yxz(self) -> i16vec3: ... + @yxz.setter + def yxz(self, value: glm_typing.I16Vector3) -> None: ... + + @property + def yzx(self) -> i16vec3: ... + @yzx.setter + def yzx(self, value: glm_typing.I16Vector3) -> None: ... + + @property + def zxy(self) -> i16vec3: ... + @zxy.setter + def zxy(self, value: glm_typing.I16Vector3) -> None: ... + + @property + def zyx(self) -> i16vec3: ... + @zyx.setter + def zyx(self, value: glm_typing.I16Vector3) -> None: ... + + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: glm_typing.Number, y: glm_typing.Number, z: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: Union[glm_typing.AnyAnyVector3, glm_typing.IAnyVector4]) -> None: ... + + def __len__(self) -> Literal[3]: ... + def __getitem__(self, index: int) -> int: ... + def __setitem__(self, index: int, value: glm_typing.Number) -> None: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[int, None, None]: ... + + def __neg__(self) -> i16vec3: ... + def __pos__(self) -> i16vec3: ... + def __abs__(self) -> i16vec3: ... + + def __lt__(self, other: Any) -> bool: ... + def __le__(self, other: Any) -> bool: ... + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + def __ge__(self, other: Any) -> bool: ... + def __gt__(self, other: Any) -> bool: ... + + def to_list(self) -> List[int]: ... + def to_tuple(self) -> Tuple[int, int, int]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> i16vec3: ... + + def __add__(self, other: Union[glm_typing.I16Vector3, glm_typing.Number]) -> i16vec3: ... + def __radd__(self, other: Union[glm_typing.I16Vector3, glm_typing.Number]) -> i16vec3: ... + def __iadd__(self, other: Union[glm_typing.I16Vector3, glm_typing.Number]) -> i16vec3: ... + + def __sub__(self, other: Union[glm_typing.I16Vector3, glm_typing.Number]) -> i16vec3: ... + def __rsub__(self, other: Union[glm_typing.I16Vector3, glm_typing.Number]) -> i16vec3: ... + def __isub__(self, other: Union[glm_typing.I16Vector3, glm_typing.Number]) -> i16vec3: ... + + @overload + def __mul__(self, other: glm_typing.Number) -> i16vec3: ... + @overload + def __mul__(self, other: glm_typing.I16Vector3) -> i16vec3: ... + @overload + def __rmul__(self, other: glm_typing.Number) -> i16vec3: ... + @overload + def __rmul__(self, other: glm_typing.I16Vector3) -> i16vec3: ... + @overload + def __imul__(self, other: glm_typing.Number) -> i16vec3: ... + @overload + def __imul__(self, other: glm_typing.I16Vector3) -> i16vec3: ... + + def __mod__(self, other: Union[glm_typing.I16Vector3, glm_typing.Number]) -> i16vec3: ... + def __rmod__(self, other: Union[glm_typing.I16Vector3, glm_typing.Number]) -> i16vec3: ... + def __imod__(self, other: Union[glm_typing.I16Vector3, glm_typing.Number]) -> i16vec3: ... + + def __pow__(self, other: Union[glm_typing.I16Vector3, glm_typing.Number]) -> i16vec3: ... + def __rpow__(self, other: Union[glm_typing.I16Vector3, glm_typing.Number]) -> i16vec3: ... + def __ipow__(self, other: Union[glm_typing.I16Vector3, glm_typing.Number]) -> i16vec3: ... + + def __truediv__(self, other: Union[glm_typing.I16Vector3, glm_typing.Number]) -> i16vec3: ... + def __rtruediv__(self, other: Union[glm_typing.I16Vector3, glm_typing.Number]) -> i16vec3: ... + def __itruediv__(self, other: Union[glm_typing.I16Vector3, glm_typing.Number]) -> i16vec3: ... + + def __floordiv__(self, other: Union[glm_typing.I16Vector3, glm_typing.Number]) -> i16vec3: ... + def __rfloordiv__(self, other: Union[glm_typing.I16Vector3, glm_typing.Number]) -> i16vec3: ... + def __ifloordiv__(self, other: Union[glm_typing.I16Vector3, glm_typing.Number]) -> i16vec3: ... + + @overload + def __matmul__(self, other: glm_typing.Number) -> i16vec3: ... + @overload + def __matmul__(self, other: glm_typing.I16Vector3) -> i16vec3: ... + @overload + def __rmatmul__(self, other: glm_typing.Number) -> i16vec3: ... + @overload + def __rmatmul__(self, other: glm_typing.I16Vector3) -> i16vec3: ... + @overload + def __imatmul__(self, other: glm_typing.Number) -> i16vec3: ... + @overload + def __imatmul__(self, other: glm_typing.I16Vector3) -> i16vec3: ... + + def __divmod__(self, other: i16vec3) -> Tuple[i16vec3, i16vec3]: ... + + + +class i16vec4: + x: int + y: int + z: int + w: int + + + @property + def xy(self) -> i16vec2: ... + @xy.setter + def xy(self, value: glm_typing.I16Vector2) -> None: ... + + @property + def yx(self) -> i16vec2: ... + @yx.setter + def yx(self, value: glm_typing.I16Vector2) -> None: ... + + @property + def xz(self) -> i16vec2: ... + @xz.setter + def xz(self, value: glm_typing.I16Vector2) -> None: ... + + @property + def zx(self) -> i16vec2: ... + @zx.setter + def zx(self, value: glm_typing.I16Vector2) -> None: ... + + @property + def xw(self) -> i16vec2: ... + @xw.setter + def xw(self, value: glm_typing.I16Vector2) -> None: ... + + @property + def wx(self) -> i16vec2: ... + @wx.setter + def wx(self, value: glm_typing.I16Vector2) -> None: ... + + @property + def yz(self) -> i16vec2: ... + @yz.setter + def yz(self, value: glm_typing.I16Vector2) -> None: ... + + @property + def zy(self) -> i16vec2: ... + @zy.setter + def zy(self, value: glm_typing.I16Vector2) -> None: ... + + @property + def yw(self) -> i16vec2: ... + @yw.setter + def yw(self, value: glm_typing.I16Vector2) -> None: ... + + @property + def wy(self) -> i16vec2: ... + @wy.setter + def wy(self, value: glm_typing.I16Vector2) -> None: ... + + @property + def zw(self) -> i16vec2: ... + @zw.setter + def zw(self, value: glm_typing.I16Vector2) -> None: ... + + @property + def wz(self) -> i16vec2: ... + @wz.setter + def wz(self, value: glm_typing.I16Vector2) -> None: ... + + @property + def xyz(self) -> i16vec3: ... + @xyz.setter + def xyz(self, value: glm_typing.I16Vector3) -> None: ... + + @property + def xzy(self) -> i16vec3: ... + @xzy.setter + def xzy(self, value: glm_typing.I16Vector3) -> None: ... + + @property + def yxz(self) -> i16vec3: ... + @yxz.setter + def yxz(self, value: glm_typing.I16Vector3) -> None: ... + + @property + def yzx(self) -> i16vec3: ... + @yzx.setter + def yzx(self, value: glm_typing.I16Vector3) -> None: ... + + @property + def zxy(self) -> i16vec3: ... + @zxy.setter + def zxy(self, value: glm_typing.I16Vector3) -> None: ... + + @property + def zyx(self) -> i16vec3: ... + @zyx.setter + def zyx(self, value: glm_typing.I16Vector3) -> None: ... + + @property + def xyw(self) -> i16vec3: ... + @xyw.setter + def xyw(self, value: glm_typing.I16Vector3) -> None: ... + + @property + def xwy(self) -> i16vec3: ... + @xwy.setter + def xwy(self, value: glm_typing.I16Vector3) -> None: ... + + @property + def yxw(self) -> i16vec3: ... + @yxw.setter + def yxw(self, value: glm_typing.I16Vector3) -> None: ... + + @property + def ywx(self) -> i16vec3: ... + @ywx.setter + def ywx(self, value: glm_typing.I16Vector3) -> None: ... + + @property + def wxy(self) -> i16vec3: ... + @wxy.setter + def wxy(self, value: glm_typing.I16Vector3) -> None: ... + + @property + def wyx(self) -> i16vec3: ... + @wyx.setter + def wyx(self, value: glm_typing.I16Vector3) -> None: ... + + @property + def xzw(self) -> i16vec3: ... + @xzw.setter + def xzw(self, value: glm_typing.I16Vector3) -> None: ... + + @property + def xwz(self) -> i16vec3: ... + @xwz.setter + def xwz(self, value: glm_typing.I16Vector3) -> None: ... + + @property + def zxw(self) -> i16vec3: ... + @zxw.setter + def zxw(self, value: glm_typing.I16Vector3) -> None: ... + + @property + def zwx(self) -> i16vec3: ... + @zwx.setter + def zwx(self, value: glm_typing.I16Vector3) -> None: ... + + @property + def wxz(self) -> i16vec3: ... + @wxz.setter + def wxz(self, value: glm_typing.I16Vector3) -> None: ... + + @property + def wzx(self) -> i16vec3: ... + @wzx.setter + def wzx(self, value: glm_typing.I16Vector3) -> None: ... + + @property + def yzw(self) -> i16vec3: ... + @yzw.setter + def yzw(self, value: glm_typing.I16Vector3) -> None: ... + + @property + def ywz(self) -> i16vec3: ... + @ywz.setter + def ywz(self, value: glm_typing.I16Vector3) -> None: ... + + @property + def zyw(self) -> i16vec3: ... + @zyw.setter + def zyw(self, value: glm_typing.I16Vector3) -> None: ... + + @property + def zwy(self) -> i16vec3: ... + @zwy.setter + def zwy(self, value: glm_typing.I16Vector3) -> None: ... + + @property + def wyz(self) -> i16vec3: ... + @wyz.setter + def wyz(self, value: glm_typing.I16Vector3) -> None: ... + + @property + def wzy(self) -> i16vec3: ... + @wzy.setter + def wzy(self, value: glm_typing.I16Vector3) -> None: ... + + @property + def xyzw(self) -> i16vec4: ... + @xyzw.setter + def xyzw(self, value: glm_typing.I16Vector4) -> None: ... + + @property + def xywz(self) -> i16vec4: ... + @xywz.setter + def xywz(self, value: glm_typing.I16Vector4) -> None: ... + + @property + def xzyw(self) -> i16vec4: ... + @xzyw.setter + def xzyw(self, value: glm_typing.I16Vector4) -> None: ... + + @property + def xzwy(self) -> i16vec4: ... + @xzwy.setter + def xzwy(self, value: glm_typing.I16Vector4) -> None: ... + + @property + def xwyz(self) -> i16vec4: ... + @xwyz.setter + def xwyz(self, value: glm_typing.I16Vector4) -> None: ... + + @property + def xwzy(self) -> i16vec4: ... + @xwzy.setter + def xwzy(self, value: glm_typing.I16Vector4) -> None: ... + + @property + def yxzw(self) -> i16vec4: ... + @yxzw.setter + def yxzw(self, value: glm_typing.I16Vector4) -> None: ... + + @property + def yxwz(self) -> i16vec4: ... + @yxwz.setter + def yxwz(self, value: glm_typing.I16Vector4) -> None: ... + + @property + def yzxw(self) -> i16vec4: ... + @yzxw.setter + def yzxw(self, value: glm_typing.I16Vector4) -> None: ... + + @property + def yzwx(self) -> i16vec4: ... + @yzwx.setter + def yzwx(self, value: glm_typing.I16Vector4) -> None: ... + + @property + def ywxz(self) -> i16vec4: ... + @ywxz.setter + def ywxz(self, value: glm_typing.I16Vector4) -> None: ... + + @property + def ywzx(self) -> i16vec4: ... + @ywzx.setter + def ywzx(self, value: glm_typing.I16Vector4) -> None: ... + + @property + def zxyw(self) -> i16vec4: ... + @zxyw.setter + def zxyw(self, value: glm_typing.I16Vector4) -> None: ... + + @property + def zxwy(self) -> i16vec4: ... + @zxwy.setter + def zxwy(self, value: glm_typing.I16Vector4) -> None: ... + + @property + def zyxw(self) -> i16vec4: ... + @zyxw.setter + def zyxw(self, value: glm_typing.I16Vector4) -> None: ... + + @property + def zywx(self) -> i16vec4: ... + @zywx.setter + def zywx(self, value: glm_typing.I16Vector4) -> None: ... + + @property + def zwxy(self) -> i16vec4: ... + @zwxy.setter + def zwxy(self, value: glm_typing.I16Vector4) -> None: ... + + @property + def zwyx(self) -> i16vec4: ... + @zwyx.setter + def zwyx(self, value: glm_typing.I16Vector4) -> None: ... + + @property + def wxyz(self) -> i16vec4: ... + @wxyz.setter + def wxyz(self, value: glm_typing.I16Vector4) -> None: ... + + @property + def wxzy(self) -> i16vec4: ... + @wxzy.setter + def wxzy(self, value: glm_typing.I16Vector4) -> None: ... + + @property + def wyxz(self) -> i16vec4: ... + @wyxz.setter + def wyxz(self, value: glm_typing.I16Vector4) -> None: ... + + @property + def wyzx(self) -> i16vec4: ... + @wyzx.setter + def wyzx(self, value: glm_typing.I16Vector4) -> None: ... + + @property + def wzxy(self) -> i16vec4: ... + @wzxy.setter + def wzxy(self, value: glm_typing.I16Vector4) -> None: ... + + @property + def wzyx(self) -> i16vec4: ... + @wzyx.setter + def wzyx(self, value: glm_typing.I16Vector4) -> None: ... + + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: glm_typing.Number, y: glm_typing.Number, z: glm_typing.Number, w: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: glm_typing.AnyAnyVector4) -> None: ... + + def __len__(self) -> Literal[4]: ... + def __getitem__(self, index: int) -> int: ... + def __setitem__(self, index: int, value: glm_typing.Number) -> None: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[int, None, None]: ... + + def __neg__(self) -> i16vec4: ... + def __pos__(self) -> i16vec4: ... + def __abs__(self) -> i16vec4: ... + + def __lt__(self, other: Any) -> bool: ... + def __le__(self, other: Any) -> bool: ... + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + def __ge__(self, other: Any) -> bool: ... + def __gt__(self, other: Any) -> bool: ... + + def to_list(self) -> List[int]: ... + def to_tuple(self) -> Tuple[int, int, int, int]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> i16vec4: ... + + def __add__(self, other: Union[glm_typing.I16Vector4, glm_typing.Number]) -> i16vec4: ... + def __radd__(self, other: Union[glm_typing.I16Vector4, glm_typing.Number]) -> i16vec4: ... + def __iadd__(self, other: Union[glm_typing.I16Vector4, glm_typing.Number]) -> i16vec4: ... + + def __sub__(self, other: Union[glm_typing.I16Vector4, glm_typing.Number]) -> i16vec4: ... + def __rsub__(self, other: Union[glm_typing.I16Vector4, glm_typing.Number]) -> i16vec4: ... + def __isub__(self, other: Union[glm_typing.I16Vector4, glm_typing.Number]) -> i16vec4: ... + + @overload + def __mul__(self, other: glm_typing.Number) -> i16vec4: ... + @overload + def __mul__(self, other: glm_typing.I16Vector4) -> i16vec4: ... + @overload + def __rmul__(self, other: glm_typing.Number) -> i16vec4: ... + @overload + def __rmul__(self, other: glm_typing.I16Vector4) -> i16vec4: ... + @overload + def __imul__(self, other: glm_typing.Number) -> i16vec4: ... + @overload + def __imul__(self, other: glm_typing.I16Vector4) -> i16vec4: ... + + def __mod__(self, other: Union[glm_typing.I16Vector4, glm_typing.Number]) -> i16vec4: ... + def __rmod__(self, other: Union[glm_typing.I16Vector4, glm_typing.Number]) -> i16vec4: ... + def __imod__(self, other: Union[glm_typing.I16Vector4, glm_typing.Number]) -> i16vec4: ... + + def __pow__(self, other: Union[glm_typing.I16Vector4, glm_typing.Number]) -> i16vec4: ... + def __rpow__(self, other: Union[glm_typing.I16Vector4, glm_typing.Number]) -> i16vec4: ... + def __ipow__(self, other: Union[glm_typing.I16Vector4, glm_typing.Number]) -> i16vec4: ... + + def __truediv__(self, other: Union[glm_typing.I16Vector4, glm_typing.Number]) -> i16vec4: ... + def __rtruediv__(self, other: Union[glm_typing.I16Vector4, glm_typing.Number]) -> i16vec4: ... + def __itruediv__(self, other: Union[glm_typing.I16Vector4, glm_typing.Number]) -> i16vec4: ... + + def __floordiv__(self, other: Union[glm_typing.I16Vector4, glm_typing.Number]) -> i16vec4: ... + def __rfloordiv__(self, other: Union[glm_typing.I16Vector4, glm_typing.Number]) -> i16vec4: ... + def __ifloordiv__(self, other: Union[glm_typing.I16Vector4, glm_typing.Number]) -> i16vec4: ... + + @overload + def __matmul__(self, other: glm_typing.Number) -> i16vec4: ... + @overload + def __matmul__(self, other: glm_typing.I16Vector4) -> i16vec4: ... + @overload + def __rmatmul__(self, other: glm_typing.Number) -> i16vec4: ... + @overload + def __rmatmul__(self, other: glm_typing.I16Vector4) -> i16vec4: ... + @overload + def __imatmul__(self, other: glm_typing.Number) -> i16vec4: ... + @overload + def __imatmul__(self, other: glm_typing.I16Vector4) -> i16vec4: ... + + def __divmod__(self, other: i16vec4) -> Tuple[i16vec4, i16vec4]: ... + + + +class i64vec1: + x: int + + + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: Union[glm_typing.AnyAnyVector1, glm_typing.IAnyVector2, glm_typing.IAnyVector3, glm_typing.IAnyVector4]) -> None: ... + + def __len__(self) -> Literal[1]: ... + def __getitem__(self, index: int) -> int: ... + def __setitem__(self, index: int, value: glm_typing.Number) -> None: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[int, None, None]: ... + + def __neg__(self) -> i64vec1: ... + def __pos__(self) -> i64vec1: ... + def __abs__(self) -> i64vec1: ... + + def __lt__(self, other: Any) -> bool: ... + def __le__(self, other: Any) -> bool: ... + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + def __ge__(self, other: Any) -> bool: ... + def __gt__(self, other: Any) -> bool: ... + + def to_list(self) -> List[int]: ... + def to_tuple(self) -> Tuple[int]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> i64vec1: ... + + def __add__(self, other: Union[glm_typing.I64Vector1, glm_typing.Number]) -> i64vec1: ... + def __radd__(self, other: Union[glm_typing.I64Vector1, glm_typing.Number]) -> i64vec1: ... + def __iadd__(self, other: Union[glm_typing.I64Vector1, glm_typing.Number]) -> i64vec1: ... + + def __sub__(self, other: Union[glm_typing.I64Vector1, glm_typing.Number]) -> i64vec1: ... + def __rsub__(self, other: Union[glm_typing.I64Vector1, glm_typing.Number]) -> i64vec1: ... + def __isub__(self, other: Union[glm_typing.I64Vector1, glm_typing.Number]) -> i64vec1: ... + + @overload + def __mul__(self, other: glm_typing.Number) -> i64vec1: ... + @overload + def __mul__(self, other: glm_typing.I64Vector1) -> i64vec1: ... + @overload + def __rmul__(self, other: glm_typing.Number) -> i64vec1: ... + @overload + def __rmul__(self, other: glm_typing.I64Vector1) -> i64vec1: ... + @overload + def __imul__(self, other: glm_typing.Number) -> i64vec1: ... + @overload + def __imul__(self, other: glm_typing.I64Vector1) -> i64vec1: ... + + def __mod__(self, other: Union[glm_typing.I64Vector1, glm_typing.Number]) -> i64vec1: ... + def __rmod__(self, other: Union[glm_typing.I64Vector1, glm_typing.Number]) -> i64vec1: ... + def __imod__(self, other: Union[glm_typing.I64Vector1, glm_typing.Number]) -> i64vec1: ... + + def __pow__(self, other: Union[glm_typing.I64Vector1, glm_typing.Number]) -> i64vec1: ... + def __rpow__(self, other: Union[glm_typing.I64Vector1, glm_typing.Number]) -> i64vec1: ... + def __ipow__(self, other: Union[glm_typing.I64Vector1, glm_typing.Number]) -> i64vec1: ... + + def __truediv__(self, other: Union[glm_typing.I64Vector1, glm_typing.Number]) -> i64vec1: ... + def __rtruediv__(self, other: Union[glm_typing.I64Vector1, glm_typing.Number]) -> i64vec1: ... + def __itruediv__(self, other: Union[glm_typing.I64Vector1, glm_typing.Number]) -> i64vec1: ... + + def __floordiv__(self, other: Union[glm_typing.I64Vector1, glm_typing.Number]) -> i64vec1: ... + def __rfloordiv__(self, other: Union[glm_typing.I64Vector1, glm_typing.Number]) -> i64vec1: ... + def __ifloordiv__(self, other: Union[glm_typing.I64Vector1, glm_typing.Number]) -> i64vec1: ... + + @overload + def __matmul__(self, other: glm_typing.Number) -> i64vec1: ... + @overload + def __matmul__(self, other: glm_typing.I64Vector1) -> i64vec1: ... + @overload + def __rmatmul__(self, other: glm_typing.Number) -> i64vec1: ... + @overload + def __rmatmul__(self, other: glm_typing.I64Vector1) -> i64vec1: ... + @overload + def __imatmul__(self, other: glm_typing.Number) -> i64vec1: ... + @overload + def __imatmul__(self, other: glm_typing.I64Vector1) -> i64vec1: ... + + def __divmod__(self, other: i64vec1) -> Tuple[i64vec1, i64vec1]: ... + + + +class i64vec2: + x: int + y: int + + + @property + def xy(self) -> i64vec2: ... + @xy.setter + def xy(self, value: glm_typing.I64Vector2) -> None: ... + + @property + def yx(self) -> i64vec2: ... + @yx.setter + def yx(self, value: glm_typing.I64Vector2) -> None: ... + + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: glm_typing.Number, y: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: Union[glm_typing.AnyAnyVector2, glm_typing.IAnyVector3, glm_typing.IAnyVector4]) -> None: ... + + def __len__(self) -> Literal[2]: ... + def __getitem__(self, index: int) -> int: ... + def __setitem__(self, index: int, value: glm_typing.Number) -> None: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[int, None, None]: ... + + def __neg__(self) -> i64vec2: ... + def __pos__(self) -> i64vec2: ... + def __abs__(self) -> i64vec2: ... + + def __lt__(self, other: Any) -> bool: ... + def __le__(self, other: Any) -> bool: ... + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + def __ge__(self, other: Any) -> bool: ... + def __gt__(self, other: Any) -> bool: ... + + def to_list(self) -> List[int]: ... + def to_tuple(self) -> Tuple[int, int]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> i64vec2: ... + + def __add__(self, other: Union[glm_typing.I64Vector2, glm_typing.Number]) -> i64vec2: ... + def __radd__(self, other: Union[glm_typing.I64Vector2, glm_typing.Number]) -> i64vec2: ... + def __iadd__(self, other: Union[glm_typing.I64Vector2, glm_typing.Number]) -> i64vec2: ... + + def __sub__(self, other: Union[glm_typing.I64Vector2, glm_typing.Number]) -> i64vec2: ... + def __rsub__(self, other: Union[glm_typing.I64Vector2, glm_typing.Number]) -> i64vec2: ... + def __isub__(self, other: Union[glm_typing.I64Vector2, glm_typing.Number]) -> i64vec2: ... + + @overload + def __mul__(self, other: glm_typing.Number) -> i64vec2: ... + @overload + def __mul__(self, other: glm_typing.I64Vector2) -> i64vec2: ... + @overload + def __rmul__(self, other: glm_typing.Number) -> i64vec2: ... + @overload + def __rmul__(self, other: glm_typing.I64Vector2) -> i64vec2: ... + @overload + def __imul__(self, other: glm_typing.Number) -> i64vec2: ... + @overload + def __imul__(self, other: glm_typing.I64Vector2) -> i64vec2: ... + + def __mod__(self, other: Union[glm_typing.I64Vector2, glm_typing.Number]) -> i64vec2: ... + def __rmod__(self, other: Union[glm_typing.I64Vector2, glm_typing.Number]) -> i64vec2: ... + def __imod__(self, other: Union[glm_typing.I64Vector2, glm_typing.Number]) -> i64vec2: ... + + def __pow__(self, other: Union[glm_typing.I64Vector2, glm_typing.Number]) -> i64vec2: ... + def __rpow__(self, other: Union[glm_typing.I64Vector2, glm_typing.Number]) -> i64vec2: ... + def __ipow__(self, other: Union[glm_typing.I64Vector2, glm_typing.Number]) -> i64vec2: ... + + def __truediv__(self, other: Union[glm_typing.I64Vector2, glm_typing.Number]) -> i64vec2: ... + def __rtruediv__(self, other: Union[glm_typing.I64Vector2, glm_typing.Number]) -> i64vec2: ... + def __itruediv__(self, other: Union[glm_typing.I64Vector2, glm_typing.Number]) -> i64vec2: ... + + def __floordiv__(self, other: Union[glm_typing.I64Vector2, glm_typing.Number]) -> i64vec2: ... + def __rfloordiv__(self, other: Union[glm_typing.I64Vector2, glm_typing.Number]) -> i64vec2: ... + def __ifloordiv__(self, other: Union[glm_typing.I64Vector2, glm_typing.Number]) -> i64vec2: ... + + @overload + def __matmul__(self, other: glm_typing.Number) -> i64vec2: ... + @overload + def __matmul__(self, other: glm_typing.I64Vector2) -> i64vec2: ... + @overload + def __rmatmul__(self, other: glm_typing.Number) -> i64vec2: ... + @overload + def __rmatmul__(self, other: glm_typing.I64Vector2) -> i64vec2: ... + @overload + def __imatmul__(self, other: glm_typing.Number) -> i64vec2: ... + @overload + def __imatmul__(self, other: glm_typing.I64Vector2) -> i64vec2: ... + + def __divmod__(self, other: i64vec2) -> Tuple[i64vec2, i64vec2]: ... + + + +class i64vec3: + x: int + y: int + z: int + + + @property + def xy(self) -> i64vec2: ... + @xy.setter + def xy(self, value: glm_typing.I64Vector2) -> None: ... + + @property + def yx(self) -> i64vec2: ... + @yx.setter + def yx(self, value: glm_typing.I64Vector2) -> None: ... + + @property + def xz(self) -> i64vec2: ... + @xz.setter + def xz(self, value: glm_typing.I64Vector2) -> None: ... + + @property + def zx(self) -> i64vec2: ... + @zx.setter + def zx(self, value: glm_typing.I64Vector2) -> None: ... + + @property + def yz(self) -> i64vec2: ... + @yz.setter + def yz(self, value: glm_typing.I64Vector2) -> None: ... + + @property + def zy(self) -> i64vec2: ... + @zy.setter + def zy(self, value: glm_typing.I64Vector2) -> None: ... + + @property + def xyz(self) -> i64vec3: ... + @xyz.setter + def xyz(self, value: glm_typing.I64Vector3) -> None: ... + + @property + def xzy(self) -> i64vec3: ... + @xzy.setter + def xzy(self, value: glm_typing.I64Vector3) -> None: ... + + @property + def yxz(self) -> i64vec3: ... + @yxz.setter + def yxz(self, value: glm_typing.I64Vector3) -> None: ... + + @property + def yzx(self) -> i64vec3: ... + @yzx.setter + def yzx(self, value: glm_typing.I64Vector3) -> None: ... + + @property + def zxy(self) -> i64vec3: ... + @zxy.setter + def zxy(self, value: glm_typing.I64Vector3) -> None: ... + + @property + def zyx(self) -> i64vec3: ... + @zyx.setter + def zyx(self, value: glm_typing.I64Vector3) -> None: ... + + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: glm_typing.Number, y: glm_typing.Number, z: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: Union[glm_typing.AnyAnyVector3, glm_typing.IAnyVector4]) -> None: ... + + def __len__(self) -> Literal[3]: ... + def __getitem__(self, index: int) -> int: ... + def __setitem__(self, index: int, value: glm_typing.Number) -> None: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[int, None, None]: ... + + def __neg__(self) -> i64vec3: ... + def __pos__(self) -> i64vec3: ... + def __abs__(self) -> i64vec3: ... + + def __lt__(self, other: Any) -> bool: ... + def __le__(self, other: Any) -> bool: ... + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + def __ge__(self, other: Any) -> bool: ... + def __gt__(self, other: Any) -> bool: ... + + def to_list(self) -> List[int]: ... + def to_tuple(self) -> Tuple[int, int, int]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> i64vec3: ... + + def __add__(self, other: Union[glm_typing.I64Vector3, glm_typing.Number]) -> i64vec3: ... + def __radd__(self, other: Union[glm_typing.I64Vector3, glm_typing.Number]) -> i64vec3: ... + def __iadd__(self, other: Union[glm_typing.I64Vector3, glm_typing.Number]) -> i64vec3: ... + + def __sub__(self, other: Union[glm_typing.I64Vector3, glm_typing.Number]) -> i64vec3: ... + def __rsub__(self, other: Union[glm_typing.I64Vector3, glm_typing.Number]) -> i64vec3: ... + def __isub__(self, other: Union[glm_typing.I64Vector3, glm_typing.Number]) -> i64vec3: ... + + @overload + def __mul__(self, other: glm_typing.Number) -> i64vec3: ... + @overload + def __mul__(self, other: glm_typing.I64Vector3) -> i64vec3: ... + @overload + def __rmul__(self, other: glm_typing.Number) -> i64vec3: ... + @overload + def __rmul__(self, other: glm_typing.I64Vector3) -> i64vec3: ... + @overload + def __imul__(self, other: glm_typing.Number) -> i64vec3: ... + @overload + def __imul__(self, other: glm_typing.I64Vector3) -> i64vec3: ... + + def __mod__(self, other: Union[glm_typing.I64Vector3, glm_typing.Number]) -> i64vec3: ... + def __rmod__(self, other: Union[glm_typing.I64Vector3, glm_typing.Number]) -> i64vec3: ... + def __imod__(self, other: Union[glm_typing.I64Vector3, glm_typing.Number]) -> i64vec3: ... + + def __pow__(self, other: Union[glm_typing.I64Vector3, glm_typing.Number]) -> i64vec3: ... + def __rpow__(self, other: Union[glm_typing.I64Vector3, glm_typing.Number]) -> i64vec3: ... + def __ipow__(self, other: Union[glm_typing.I64Vector3, glm_typing.Number]) -> i64vec3: ... + + def __truediv__(self, other: Union[glm_typing.I64Vector3, glm_typing.Number]) -> i64vec3: ... + def __rtruediv__(self, other: Union[glm_typing.I64Vector3, glm_typing.Number]) -> i64vec3: ... + def __itruediv__(self, other: Union[glm_typing.I64Vector3, glm_typing.Number]) -> i64vec3: ... + + def __floordiv__(self, other: Union[glm_typing.I64Vector3, glm_typing.Number]) -> i64vec3: ... + def __rfloordiv__(self, other: Union[glm_typing.I64Vector3, glm_typing.Number]) -> i64vec3: ... + def __ifloordiv__(self, other: Union[glm_typing.I64Vector3, glm_typing.Number]) -> i64vec3: ... + + @overload + def __matmul__(self, other: glm_typing.Number) -> i64vec3: ... + @overload + def __matmul__(self, other: glm_typing.I64Vector3) -> i64vec3: ... + @overload + def __rmatmul__(self, other: glm_typing.Number) -> i64vec3: ... + @overload + def __rmatmul__(self, other: glm_typing.I64Vector3) -> i64vec3: ... + @overload + def __imatmul__(self, other: glm_typing.Number) -> i64vec3: ... + @overload + def __imatmul__(self, other: glm_typing.I64Vector3) -> i64vec3: ... + + def __divmod__(self, other: i64vec3) -> Tuple[i64vec3, i64vec3]: ... + + + +class i64vec4: + x: int + y: int + z: int + w: int + + + @property + def xy(self) -> i64vec2: ... + @xy.setter + def xy(self, value: glm_typing.I64Vector2) -> None: ... + + @property + def yx(self) -> i64vec2: ... + @yx.setter + def yx(self, value: glm_typing.I64Vector2) -> None: ... + + @property + def xz(self) -> i64vec2: ... + @xz.setter + def xz(self, value: glm_typing.I64Vector2) -> None: ... + + @property + def zx(self) -> i64vec2: ... + @zx.setter + def zx(self, value: glm_typing.I64Vector2) -> None: ... + + @property + def xw(self) -> i64vec2: ... + @xw.setter + def xw(self, value: glm_typing.I64Vector2) -> None: ... + + @property + def wx(self) -> i64vec2: ... + @wx.setter + def wx(self, value: glm_typing.I64Vector2) -> None: ... + + @property + def yz(self) -> i64vec2: ... + @yz.setter + def yz(self, value: glm_typing.I64Vector2) -> None: ... + + @property + def zy(self) -> i64vec2: ... + @zy.setter + def zy(self, value: glm_typing.I64Vector2) -> None: ... + + @property + def yw(self) -> i64vec2: ... + @yw.setter + def yw(self, value: glm_typing.I64Vector2) -> None: ... + + @property + def wy(self) -> i64vec2: ... + @wy.setter + def wy(self, value: glm_typing.I64Vector2) -> None: ... + + @property + def zw(self) -> i64vec2: ... + @zw.setter + def zw(self, value: glm_typing.I64Vector2) -> None: ... + + @property + def wz(self) -> i64vec2: ... + @wz.setter + def wz(self, value: glm_typing.I64Vector2) -> None: ... + + @property + def xyz(self) -> i64vec3: ... + @xyz.setter + def xyz(self, value: glm_typing.I64Vector3) -> None: ... + + @property + def xzy(self) -> i64vec3: ... + @xzy.setter + def xzy(self, value: glm_typing.I64Vector3) -> None: ... + + @property + def yxz(self) -> i64vec3: ... + @yxz.setter + def yxz(self, value: glm_typing.I64Vector3) -> None: ... + + @property + def yzx(self) -> i64vec3: ... + @yzx.setter + def yzx(self, value: glm_typing.I64Vector3) -> None: ... + + @property + def zxy(self) -> i64vec3: ... + @zxy.setter + def zxy(self, value: glm_typing.I64Vector3) -> None: ... + + @property + def zyx(self) -> i64vec3: ... + @zyx.setter + def zyx(self, value: glm_typing.I64Vector3) -> None: ... + + @property + def xyw(self) -> i64vec3: ... + @xyw.setter + def xyw(self, value: glm_typing.I64Vector3) -> None: ... + + @property + def xwy(self) -> i64vec3: ... + @xwy.setter + def xwy(self, value: glm_typing.I64Vector3) -> None: ... + + @property + def yxw(self) -> i64vec3: ... + @yxw.setter + def yxw(self, value: glm_typing.I64Vector3) -> None: ... + + @property + def ywx(self) -> i64vec3: ... + @ywx.setter + def ywx(self, value: glm_typing.I64Vector3) -> None: ... + + @property + def wxy(self) -> i64vec3: ... + @wxy.setter + def wxy(self, value: glm_typing.I64Vector3) -> None: ... + + @property + def wyx(self) -> i64vec3: ... + @wyx.setter + def wyx(self, value: glm_typing.I64Vector3) -> None: ... + + @property + def xzw(self) -> i64vec3: ... + @xzw.setter + def xzw(self, value: glm_typing.I64Vector3) -> None: ... + + @property + def xwz(self) -> i64vec3: ... + @xwz.setter + def xwz(self, value: glm_typing.I64Vector3) -> None: ... + + @property + def zxw(self) -> i64vec3: ... + @zxw.setter + def zxw(self, value: glm_typing.I64Vector3) -> None: ... + + @property + def zwx(self) -> i64vec3: ... + @zwx.setter + def zwx(self, value: glm_typing.I64Vector3) -> None: ... + + @property + def wxz(self) -> i64vec3: ... + @wxz.setter + def wxz(self, value: glm_typing.I64Vector3) -> None: ... + + @property + def wzx(self) -> i64vec3: ... + @wzx.setter + def wzx(self, value: glm_typing.I64Vector3) -> None: ... + + @property + def yzw(self) -> i64vec3: ... + @yzw.setter + def yzw(self, value: glm_typing.I64Vector3) -> None: ... + + @property + def ywz(self) -> i64vec3: ... + @ywz.setter + def ywz(self, value: glm_typing.I64Vector3) -> None: ... + + @property + def zyw(self) -> i64vec3: ... + @zyw.setter + def zyw(self, value: glm_typing.I64Vector3) -> None: ... + + @property + def zwy(self) -> i64vec3: ... + @zwy.setter + def zwy(self, value: glm_typing.I64Vector3) -> None: ... + + @property + def wyz(self) -> i64vec3: ... + @wyz.setter + def wyz(self, value: glm_typing.I64Vector3) -> None: ... + + @property + def wzy(self) -> i64vec3: ... + @wzy.setter + def wzy(self, value: glm_typing.I64Vector3) -> None: ... + + @property + def xyzw(self) -> i64vec4: ... + @xyzw.setter + def xyzw(self, value: glm_typing.I64Vector4) -> None: ... + + @property + def xywz(self) -> i64vec4: ... + @xywz.setter + def xywz(self, value: glm_typing.I64Vector4) -> None: ... + + @property + def xzyw(self) -> i64vec4: ... + @xzyw.setter + def xzyw(self, value: glm_typing.I64Vector4) -> None: ... + + @property + def xzwy(self) -> i64vec4: ... + @xzwy.setter + def xzwy(self, value: glm_typing.I64Vector4) -> None: ... + + @property + def xwyz(self) -> i64vec4: ... + @xwyz.setter + def xwyz(self, value: glm_typing.I64Vector4) -> None: ... + + @property + def xwzy(self) -> i64vec4: ... + @xwzy.setter + def xwzy(self, value: glm_typing.I64Vector4) -> None: ... + + @property + def yxzw(self) -> i64vec4: ... + @yxzw.setter + def yxzw(self, value: glm_typing.I64Vector4) -> None: ... + + @property + def yxwz(self) -> i64vec4: ... + @yxwz.setter + def yxwz(self, value: glm_typing.I64Vector4) -> None: ... + + @property + def yzxw(self) -> i64vec4: ... + @yzxw.setter + def yzxw(self, value: glm_typing.I64Vector4) -> None: ... + + @property + def yzwx(self) -> i64vec4: ... + @yzwx.setter + def yzwx(self, value: glm_typing.I64Vector4) -> None: ... + + @property + def ywxz(self) -> i64vec4: ... + @ywxz.setter + def ywxz(self, value: glm_typing.I64Vector4) -> None: ... + + @property + def ywzx(self) -> i64vec4: ... + @ywzx.setter + def ywzx(self, value: glm_typing.I64Vector4) -> None: ... + + @property + def zxyw(self) -> i64vec4: ... + @zxyw.setter + def zxyw(self, value: glm_typing.I64Vector4) -> None: ... + + @property + def zxwy(self) -> i64vec4: ... + @zxwy.setter + def zxwy(self, value: glm_typing.I64Vector4) -> None: ... + + @property + def zyxw(self) -> i64vec4: ... + @zyxw.setter + def zyxw(self, value: glm_typing.I64Vector4) -> None: ... + + @property + def zywx(self) -> i64vec4: ... + @zywx.setter + def zywx(self, value: glm_typing.I64Vector4) -> None: ... + + @property + def zwxy(self) -> i64vec4: ... + @zwxy.setter + def zwxy(self, value: glm_typing.I64Vector4) -> None: ... + + @property + def zwyx(self) -> i64vec4: ... + @zwyx.setter + def zwyx(self, value: glm_typing.I64Vector4) -> None: ... + + @property + def wxyz(self) -> i64vec4: ... + @wxyz.setter + def wxyz(self, value: glm_typing.I64Vector4) -> None: ... + + @property + def wxzy(self) -> i64vec4: ... + @wxzy.setter + def wxzy(self, value: glm_typing.I64Vector4) -> None: ... + + @property + def wyxz(self) -> i64vec4: ... + @wyxz.setter + def wyxz(self, value: glm_typing.I64Vector4) -> None: ... + + @property + def wyzx(self) -> i64vec4: ... + @wyzx.setter + def wyzx(self, value: glm_typing.I64Vector4) -> None: ... + + @property + def wzxy(self) -> i64vec4: ... + @wzxy.setter + def wzxy(self, value: glm_typing.I64Vector4) -> None: ... + + @property + def wzyx(self) -> i64vec4: ... + @wzyx.setter + def wzyx(self, value: glm_typing.I64Vector4) -> None: ... + + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: glm_typing.Number, y: glm_typing.Number, z: glm_typing.Number, w: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: glm_typing.AnyAnyVector4) -> None: ... + + def __len__(self) -> Literal[4]: ... + def __getitem__(self, index: int) -> int: ... + def __setitem__(self, index: int, value: glm_typing.Number) -> None: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[int, None, None]: ... + + def __neg__(self) -> i64vec4: ... + def __pos__(self) -> i64vec4: ... + def __abs__(self) -> i64vec4: ... + + def __lt__(self, other: Any) -> bool: ... + def __le__(self, other: Any) -> bool: ... + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + def __ge__(self, other: Any) -> bool: ... + def __gt__(self, other: Any) -> bool: ... + + def to_list(self) -> List[int]: ... + def to_tuple(self) -> Tuple[int, int, int, int]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> i64vec4: ... + + def __add__(self, other: Union[glm_typing.I64Vector4, glm_typing.Number]) -> i64vec4: ... + def __radd__(self, other: Union[glm_typing.I64Vector4, glm_typing.Number]) -> i64vec4: ... + def __iadd__(self, other: Union[glm_typing.I64Vector4, glm_typing.Number]) -> i64vec4: ... + + def __sub__(self, other: Union[glm_typing.I64Vector4, glm_typing.Number]) -> i64vec4: ... + def __rsub__(self, other: Union[glm_typing.I64Vector4, glm_typing.Number]) -> i64vec4: ... + def __isub__(self, other: Union[glm_typing.I64Vector4, glm_typing.Number]) -> i64vec4: ... + + @overload + def __mul__(self, other: glm_typing.Number) -> i64vec4: ... + @overload + def __mul__(self, other: glm_typing.I64Vector4) -> i64vec4: ... + @overload + def __rmul__(self, other: glm_typing.Number) -> i64vec4: ... + @overload + def __rmul__(self, other: glm_typing.I64Vector4) -> i64vec4: ... + @overload + def __imul__(self, other: glm_typing.Number) -> i64vec4: ... + @overload + def __imul__(self, other: glm_typing.I64Vector4) -> i64vec4: ... + + def __mod__(self, other: Union[glm_typing.I64Vector4, glm_typing.Number]) -> i64vec4: ... + def __rmod__(self, other: Union[glm_typing.I64Vector4, glm_typing.Number]) -> i64vec4: ... + def __imod__(self, other: Union[glm_typing.I64Vector4, glm_typing.Number]) -> i64vec4: ... + + def __pow__(self, other: Union[glm_typing.I64Vector4, glm_typing.Number]) -> i64vec4: ... + def __rpow__(self, other: Union[glm_typing.I64Vector4, glm_typing.Number]) -> i64vec4: ... + def __ipow__(self, other: Union[glm_typing.I64Vector4, glm_typing.Number]) -> i64vec4: ... + + def __truediv__(self, other: Union[glm_typing.I64Vector4, glm_typing.Number]) -> i64vec4: ... + def __rtruediv__(self, other: Union[glm_typing.I64Vector4, glm_typing.Number]) -> i64vec4: ... + def __itruediv__(self, other: Union[glm_typing.I64Vector4, glm_typing.Number]) -> i64vec4: ... + + def __floordiv__(self, other: Union[glm_typing.I64Vector4, glm_typing.Number]) -> i64vec4: ... + def __rfloordiv__(self, other: Union[glm_typing.I64Vector4, glm_typing.Number]) -> i64vec4: ... + def __ifloordiv__(self, other: Union[glm_typing.I64Vector4, glm_typing.Number]) -> i64vec4: ... + + @overload + def __matmul__(self, other: glm_typing.Number) -> i64vec4: ... + @overload + def __matmul__(self, other: glm_typing.I64Vector4) -> i64vec4: ... + @overload + def __rmatmul__(self, other: glm_typing.Number) -> i64vec4: ... + @overload + def __rmatmul__(self, other: glm_typing.I64Vector4) -> i64vec4: ... + @overload + def __imatmul__(self, other: glm_typing.Number) -> i64vec4: ... + @overload + def __imatmul__(self, other: glm_typing.I64Vector4) -> i64vec4: ... + + def __divmod__(self, other: i64vec4) -> Tuple[i64vec4, i64vec4]: ... + + + +class i8vec1: + x: int + + + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: Union[glm_typing.AnyAnyVector1, glm_typing.IAnyVector2, glm_typing.IAnyVector3, glm_typing.IAnyVector4]) -> None: ... + + def __len__(self) -> Literal[1]: ... + def __getitem__(self, index: int) -> int: ... + def __setitem__(self, index: int, value: glm_typing.Number) -> None: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[int, None, None]: ... + + def __neg__(self) -> i8vec1: ... + def __pos__(self) -> i8vec1: ... + def __abs__(self) -> i8vec1: ... + + def __lt__(self, other: Any) -> bool: ... + def __le__(self, other: Any) -> bool: ... + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + def __ge__(self, other: Any) -> bool: ... + def __gt__(self, other: Any) -> bool: ... + + def to_list(self) -> List[int]: ... + def to_tuple(self) -> Tuple[int]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> i8vec1: ... + + def __add__(self, other: Union[glm_typing.I8Vector1, glm_typing.Number]) -> i8vec1: ... + def __radd__(self, other: Union[glm_typing.I8Vector1, glm_typing.Number]) -> i8vec1: ... + def __iadd__(self, other: Union[glm_typing.I8Vector1, glm_typing.Number]) -> i8vec1: ... + + def __sub__(self, other: Union[glm_typing.I8Vector1, glm_typing.Number]) -> i8vec1: ... + def __rsub__(self, other: Union[glm_typing.I8Vector1, glm_typing.Number]) -> i8vec1: ... + def __isub__(self, other: Union[glm_typing.I8Vector1, glm_typing.Number]) -> i8vec1: ... + + @overload + def __mul__(self, other: glm_typing.Number) -> i8vec1: ... + @overload + def __mul__(self, other: glm_typing.I8Vector1) -> i8vec1: ... + @overload + def __rmul__(self, other: glm_typing.Number) -> i8vec1: ... + @overload + def __rmul__(self, other: glm_typing.I8Vector1) -> i8vec1: ... + @overload + def __imul__(self, other: glm_typing.Number) -> i8vec1: ... + @overload + def __imul__(self, other: glm_typing.I8Vector1) -> i8vec1: ... + + def __mod__(self, other: Union[glm_typing.I8Vector1, glm_typing.Number]) -> i8vec1: ... + def __rmod__(self, other: Union[glm_typing.I8Vector1, glm_typing.Number]) -> i8vec1: ... + def __imod__(self, other: Union[glm_typing.I8Vector1, glm_typing.Number]) -> i8vec1: ... + + def __pow__(self, other: Union[glm_typing.I8Vector1, glm_typing.Number]) -> i8vec1: ... + def __rpow__(self, other: Union[glm_typing.I8Vector1, glm_typing.Number]) -> i8vec1: ... + def __ipow__(self, other: Union[glm_typing.I8Vector1, glm_typing.Number]) -> i8vec1: ... + + def __truediv__(self, other: Union[glm_typing.I8Vector1, glm_typing.Number]) -> i8vec1: ... + def __rtruediv__(self, other: Union[glm_typing.I8Vector1, glm_typing.Number]) -> i8vec1: ... + def __itruediv__(self, other: Union[glm_typing.I8Vector1, glm_typing.Number]) -> i8vec1: ... + + def __floordiv__(self, other: Union[glm_typing.I8Vector1, glm_typing.Number]) -> i8vec1: ... + def __rfloordiv__(self, other: Union[glm_typing.I8Vector1, glm_typing.Number]) -> i8vec1: ... + def __ifloordiv__(self, other: Union[glm_typing.I8Vector1, glm_typing.Number]) -> i8vec1: ... + + @overload + def __matmul__(self, other: glm_typing.Number) -> i8vec1: ... + @overload + def __matmul__(self, other: glm_typing.I8Vector1) -> i8vec1: ... + @overload + def __rmatmul__(self, other: glm_typing.Number) -> i8vec1: ... + @overload + def __rmatmul__(self, other: glm_typing.I8Vector1) -> i8vec1: ... + @overload + def __imatmul__(self, other: glm_typing.Number) -> i8vec1: ... + @overload + def __imatmul__(self, other: glm_typing.I8Vector1) -> i8vec1: ... + + def __divmod__(self, other: i8vec1) -> Tuple[i8vec1, i8vec1]: ... + + + +class i8vec2: + x: int + y: int + + + @property + def xy(self) -> i8vec2: ... + @xy.setter + def xy(self, value: glm_typing.I8Vector2) -> None: ... + + @property + def yx(self) -> i8vec2: ... + @yx.setter + def yx(self, value: glm_typing.I8Vector2) -> None: ... + + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: glm_typing.Number, y: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: Union[glm_typing.AnyAnyVector2, glm_typing.IAnyVector3, glm_typing.IAnyVector4]) -> None: ... + + def __len__(self) -> Literal[2]: ... + def __getitem__(self, index: int) -> int: ... + def __setitem__(self, index: int, value: glm_typing.Number) -> None: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[int, None, None]: ... + + def __neg__(self) -> i8vec2: ... + def __pos__(self) -> i8vec2: ... + def __abs__(self) -> i8vec2: ... + + def __lt__(self, other: Any) -> bool: ... + def __le__(self, other: Any) -> bool: ... + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + def __ge__(self, other: Any) -> bool: ... + def __gt__(self, other: Any) -> bool: ... + + def to_list(self) -> List[int]: ... + def to_tuple(self) -> Tuple[int, int]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> i8vec2: ... + + def __add__(self, other: Union[glm_typing.I8Vector2, glm_typing.Number]) -> i8vec2: ... + def __radd__(self, other: Union[glm_typing.I8Vector2, glm_typing.Number]) -> i8vec2: ... + def __iadd__(self, other: Union[glm_typing.I8Vector2, glm_typing.Number]) -> i8vec2: ... + + def __sub__(self, other: Union[glm_typing.I8Vector2, glm_typing.Number]) -> i8vec2: ... + def __rsub__(self, other: Union[glm_typing.I8Vector2, glm_typing.Number]) -> i8vec2: ... + def __isub__(self, other: Union[glm_typing.I8Vector2, glm_typing.Number]) -> i8vec2: ... + + @overload + def __mul__(self, other: glm_typing.Number) -> i8vec2: ... + @overload + def __mul__(self, other: glm_typing.I8Vector2) -> i8vec2: ... + @overload + def __rmul__(self, other: glm_typing.Number) -> i8vec2: ... + @overload + def __rmul__(self, other: glm_typing.I8Vector2) -> i8vec2: ... + @overload + def __imul__(self, other: glm_typing.Number) -> i8vec2: ... + @overload + def __imul__(self, other: glm_typing.I8Vector2) -> i8vec2: ... + + def __mod__(self, other: Union[glm_typing.I8Vector2, glm_typing.Number]) -> i8vec2: ... + def __rmod__(self, other: Union[glm_typing.I8Vector2, glm_typing.Number]) -> i8vec2: ... + def __imod__(self, other: Union[glm_typing.I8Vector2, glm_typing.Number]) -> i8vec2: ... + + def __pow__(self, other: Union[glm_typing.I8Vector2, glm_typing.Number]) -> i8vec2: ... + def __rpow__(self, other: Union[glm_typing.I8Vector2, glm_typing.Number]) -> i8vec2: ... + def __ipow__(self, other: Union[glm_typing.I8Vector2, glm_typing.Number]) -> i8vec2: ... + + def __truediv__(self, other: Union[glm_typing.I8Vector2, glm_typing.Number]) -> i8vec2: ... + def __rtruediv__(self, other: Union[glm_typing.I8Vector2, glm_typing.Number]) -> i8vec2: ... + def __itruediv__(self, other: Union[glm_typing.I8Vector2, glm_typing.Number]) -> i8vec2: ... + + def __floordiv__(self, other: Union[glm_typing.I8Vector2, glm_typing.Number]) -> i8vec2: ... + def __rfloordiv__(self, other: Union[glm_typing.I8Vector2, glm_typing.Number]) -> i8vec2: ... + def __ifloordiv__(self, other: Union[glm_typing.I8Vector2, glm_typing.Number]) -> i8vec2: ... + + @overload + def __matmul__(self, other: glm_typing.Number) -> i8vec2: ... + @overload + def __matmul__(self, other: glm_typing.I8Vector2) -> i8vec2: ... + @overload + def __rmatmul__(self, other: glm_typing.Number) -> i8vec2: ... + @overload + def __rmatmul__(self, other: glm_typing.I8Vector2) -> i8vec2: ... + @overload + def __imatmul__(self, other: glm_typing.Number) -> i8vec2: ... + @overload + def __imatmul__(self, other: glm_typing.I8Vector2) -> i8vec2: ... + + def __divmod__(self, other: i8vec2) -> Tuple[i8vec2, i8vec2]: ... + + + +class i8vec3: + x: int + y: int + z: int + + + @property + def xy(self) -> i8vec2: ... + @xy.setter + def xy(self, value: glm_typing.I8Vector2) -> None: ... + + @property + def yx(self) -> i8vec2: ... + @yx.setter + def yx(self, value: glm_typing.I8Vector2) -> None: ... + + @property + def xz(self) -> i8vec2: ... + @xz.setter + def xz(self, value: glm_typing.I8Vector2) -> None: ... + + @property + def zx(self) -> i8vec2: ... + @zx.setter + def zx(self, value: glm_typing.I8Vector2) -> None: ... + + @property + def yz(self) -> i8vec2: ... + @yz.setter + def yz(self, value: glm_typing.I8Vector2) -> None: ... + + @property + def zy(self) -> i8vec2: ... + @zy.setter + def zy(self, value: glm_typing.I8Vector2) -> None: ... + + @property + def xyz(self) -> i8vec3: ... + @xyz.setter + def xyz(self, value: glm_typing.I8Vector3) -> None: ... + + @property + def xzy(self) -> i8vec3: ... + @xzy.setter + def xzy(self, value: glm_typing.I8Vector3) -> None: ... + + @property + def yxz(self) -> i8vec3: ... + @yxz.setter + def yxz(self, value: glm_typing.I8Vector3) -> None: ... + + @property + def yzx(self) -> i8vec3: ... + @yzx.setter + def yzx(self, value: glm_typing.I8Vector3) -> None: ... + + @property + def zxy(self) -> i8vec3: ... + @zxy.setter + def zxy(self, value: glm_typing.I8Vector3) -> None: ... + + @property + def zyx(self) -> i8vec3: ... + @zyx.setter + def zyx(self, value: glm_typing.I8Vector3) -> None: ... + + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: glm_typing.Number, y: glm_typing.Number, z: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: Union[glm_typing.AnyAnyVector3, glm_typing.IAnyVector4]) -> None: ... + + def __len__(self) -> Literal[3]: ... + def __getitem__(self, index: int) -> int: ... + def __setitem__(self, index: int, value: glm_typing.Number) -> None: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[int, None, None]: ... + + def __neg__(self) -> i8vec3: ... + def __pos__(self) -> i8vec3: ... + def __abs__(self) -> i8vec3: ... + + def __lt__(self, other: Any) -> bool: ... + def __le__(self, other: Any) -> bool: ... + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + def __ge__(self, other: Any) -> bool: ... + def __gt__(self, other: Any) -> bool: ... + + def to_list(self) -> List[int]: ... + def to_tuple(self) -> Tuple[int, int, int]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> i8vec3: ... + + def __add__(self, other: Union[glm_typing.I8Vector3, glm_typing.Number]) -> i8vec3: ... + def __radd__(self, other: Union[glm_typing.I8Vector3, glm_typing.Number]) -> i8vec3: ... + def __iadd__(self, other: Union[glm_typing.I8Vector3, glm_typing.Number]) -> i8vec3: ... + + def __sub__(self, other: Union[glm_typing.I8Vector3, glm_typing.Number]) -> i8vec3: ... + def __rsub__(self, other: Union[glm_typing.I8Vector3, glm_typing.Number]) -> i8vec3: ... + def __isub__(self, other: Union[glm_typing.I8Vector3, glm_typing.Number]) -> i8vec3: ... + + @overload + def __mul__(self, other: glm_typing.Number) -> i8vec3: ... + @overload + def __mul__(self, other: glm_typing.I8Vector3) -> i8vec3: ... + @overload + def __rmul__(self, other: glm_typing.Number) -> i8vec3: ... + @overload + def __rmul__(self, other: glm_typing.I8Vector3) -> i8vec3: ... + @overload + def __imul__(self, other: glm_typing.Number) -> i8vec3: ... + @overload + def __imul__(self, other: glm_typing.I8Vector3) -> i8vec3: ... + + def __mod__(self, other: Union[glm_typing.I8Vector3, glm_typing.Number]) -> i8vec3: ... + def __rmod__(self, other: Union[glm_typing.I8Vector3, glm_typing.Number]) -> i8vec3: ... + def __imod__(self, other: Union[glm_typing.I8Vector3, glm_typing.Number]) -> i8vec3: ... + + def __pow__(self, other: Union[glm_typing.I8Vector3, glm_typing.Number]) -> i8vec3: ... + def __rpow__(self, other: Union[glm_typing.I8Vector3, glm_typing.Number]) -> i8vec3: ... + def __ipow__(self, other: Union[glm_typing.I8Vector3, glm_typing.Number]) -> i8vec3: ... + + def __truediv__(self, other: Union[glm_typing.I8Vector3, glm_typing.Number]) -> i8vec3: ... + def __rtruediv__(self, other: Union[glm_typing.I8Vector3, glm_typing.Number]) -> i8vec3: ... + def __itruediv__(self, other: Union[glm_typing.I8Vector3, glm_typing.Number]) -> i8vec3: ... + + def __floordiv__(self, other: Union[glm_typing.I8Vector3, glm_typing.Number]) -> i8vec3: ... + def __rfloordiv__(self, other: Union[glm_typing.I8Vector3, glm_typing.Number]) -> i8vec3: ... + def __ifloordiv__(self, other: Union[glm_typing.I8Vector3, glm_typing.Number]) -> i8vec3: ... + + @overload + def __matmul__(self, other: glm_typing.Number) -> i8vec3: ... + @overload + def __matmul__(self, other: glm_typing.I8Vector3) -> i8vec3: ... + @overload + def __rmatmul__(self, other: glm_typing.Number) -> i8vec3: ... + @overload + def __rmatmul__(self, other: glm_typing.I8Vector3) -> i8vec3: ... + @overload + def __imatmul__(self, other: glm_typing.Number) -> i8vec3: ... + @overload + def __imatmul__(self, other: glm_typing.I8Vector3) -> i8vec3: ... + + def __divmod__(self, other: i8vec3) -> Tuple[i8vec3, i8vec3]: ... + + + +class i8vec4: + x: int + y: int + z: int + w: int + + + @property + def xy(self) -> i8vec2: ... + @xy.setter + def xy(self, value: glm_typing.I8Vector2) -> None: ... + + @property + def yx(self) -> i8vec2: ... + @yx.setter + def yx(self, value: glm_typing.I8Vector2) -> None: ... + + @property + def xz(self) -> i8vec2: ... + @xz.setter + def xz(self, value: glm_typing.I8Vector2) -> None: ... + + @property + def zx(self) -> i8vec2: ... + @zx.setter + def zx(self, value: glm_typing.I8Vector2) -> None: ... + + @property + def xw(self) -> i8vec2: ... + @xw.setter + def xw(self, value: glm_typing.I8Vector2) -> None: ... + + @property + def wx(self) -> i8vec2: ... + @wx.setter + def wx(self, value: glm_typing.I8Vector2) -> None: ... + + @property + def yz(self) -> i8vec2: ... + @yz.setter + def yz(self, value: glm_typing.I8Vector2) -> None: ... + + @property + def zy(self) -> i8vec2: ... + @zy.setter + def zy(self, value: glm_typing.I8Vector2) -> None: ... + + @property + def yw(self) -> i8vec2: ... + @yw.setter + def yw(self, value: glm_typing.I8Vector2) -> None: ... + + @property + def wy(self) -> i8vec2: ... + @wy.setter + def wy(self, value: glm_typing.I8Vector2) -> None: ... + + @property + def zw(self) -> i8vec2: ... + @zw.setter + def zw(self, value: glm_typing.I8Vector2) -> None: ... + + @property + def wz(self) -> i8vec2: ... + @wz.setter + def wz(self, value: glm_typing.I8Vector2) -> None: ... + + @property + def xyz(self) -> i8vec3: ... + @xyz.setter + def xyz(self, value: glm_typing.I8Vector3) -> None: ... + + @property + def xzy(self) -> i8vec3: ... + @xzy.setter + def xzy(self, value: glm_typing.I8Vector3) -> None: ... + + @property + def yxz(self) -> i8vec3: ... + @yxz.setter + def yxz(self, value: glm_typing.I8Vector3) -> None: ... + + @property + def yzx(self) -> i8vec3: ... + @yzx.setter + def yzx(self, value: glm_typing.I8Vector3) -> None: ... + + @property + def zxy(self) -> i8vec3: ... + @zxy.setter + def zxy(self, value: glm_typing.I8Vector3) -> None: ... + + @property + def zyx(self) -> i8vec3: ... + @zyx.setter + def zyx(self, value: glm_typing.I8Vector3) -> None: ... + + @property + def xyw(self) -> i8vec3: ... + @xyw.setter + def xyw(self, value: glm_typing.I8Vector3) -> None: ... + + @property + def xwy(self) -> i8vec3: ... + @xwy.setter + def xwy(self, value: glm_typing.I8Vector3) -> None: ... + + @property + def yxw(self) -> i8vec3: ... + @yxw.setter + def yxw(self, value: glm_typing.I8Vector3) -> None: ... + + @property + def ywx(self) -> i8vec3: ... + @ywx.setter + def ywx(self, value: glm_typing.I8Vector3) -> None: ... + + @property + def wxy(self) -> i8vec3: ... + @wxy.setter + def wxy(self, value: glm_typing.I8Vector3) -> None: ... + + @property + def wyx(self) -> i8vec3: ... + @wyx.setter + def wyx(self, value: glm_typing.I8Vector3) -> None: ... + + @property + def xzw(self) -> i8vec3: ... + @xzw.setter + def xzw(self, value: glm_typing.I8Vector3) -> None: ... + + @property + def xwz(self) -> i8vec3: ... + @xwz.setter + def xwz(self, value: glm_typing.I8Vector3) -> None: ... + + @property + def zxw(self) -> i8vec3: ... + @zxw.setter + def zxw(self, value: glm_typing.I8Vector3) -> None: ... + + @property + def zwx(self) -> i8vec3: ... + @zwx.setter + def zwx(self, value: glm_typing.I8Vector3) -> None: ... + + @property + def wxz(self) -> i8vec3: ... + @wxz.setter + def wxz(self, value: glm_typing.I8Vector3) -> None: ... + + @property + def wzx(self) -> i8vec3: ... + @wzx.setter + def wzx(self, value: glm_typing.I8Vector3) -> None: ... + + @property + def yzw(self) -> i8vec3: ... + @yzw.setter + def yzw(self, value: glm_typing.I8Vector3) -> None: ... + + @property + def ywz(self) -> i8vec3: ... + @ywz.setter + def ywz(self, value: glm_typing.I8Vector3) -> None: ... + + @property + def zyw(self) -> i8vec3: ... + @zyw.setter + def zyw(self, value: glm_typing.I8Vector3) -> None: ... + + @property + def zwy(self) -> i8vec3: ... + @zwy.setter + def zwy(self, value: glm_typing.I8Vector3) -> None: ... + + @property + def wyz(self) -> i8vec3: ... + @wyz.setter + def wyz(self, value: glm_typing.I8Vector3) -> None: ... + + @property + def wzy(self) -> i8vec3: ... + @wzy.setter + def wzy(self, value: glm_typing.I8Vector3) -> None: ... + + @property + def xyzw(self) -> i8vec4: ... + @xyzw.setter + def xyzw(self, value: glm_typing.I8Vector4) -> None: ... + + @property + def xywz(self) -> i8vec4: ... + @xywz.setter + def xywz(self, value: glm_typing.I8Vector4) -> None: ... + + @property + def xzyw(self) -> i8vec4: ... + @xzyw.setter + def xzyw(self, value: glm_typing.I8Vector4) -> None: ... + + @property + def xzwy(self) -> i8vec4: ... + @xzwy.setter + def xzwy(self, value: glm_typing.I8Vector4) -> None: ... + + @property + def xwyz(self) -> i8vec4: ... + @xwyz.setter + def xwyz(self, value: glm_typing.I8Vector4) -> None: ... + + @property + def xwzy(self) -> i8vec4: ... + @xwzy.setter + def xwzy(self, value: glm_typing.I8Vector4) -> None: ... + + @property + def yxzw(self) -> i8vec4: ... + @yxzw.setter + def yxzw(self, value: glm_typing.I8Vector4) -> None: ... + + @property + def yxwz(self) -> i8vec4: ... + @yxwz.setter + def yxwz(self, value: glm_typing.I8Vector4) -> None: ... + + @property + def yzxw(self) -> i8vec4: ... + @yzxw.setter + def yzxw(self, value: glm_typing.I8Vector4) -> None: ... + + @property + def yzwx(self) -> i8vec4: ... + @yzwx.setter + def yzwx(self, value: glm_typing.I8Vector4) -> None: ... + + @property + def ywxz(self) -> i8vec4: ... + @ywxz.setter + def ywxz(self, value: glm_typing.I8Vector4) -> None: ... + + @property + def ywzx(self) -> i8vec4: ... + @ywzx.setter + def ywzx(self, value: glm_typing.I8Vector4) -> None: ... + + @property + def zxyw(self) -> i8vec4: ... + @zxyw.setter + def zxyw(self, value: glm_typing.I8Vector4) -> None: ... + + @property + def zxwy(self) -> i8vec4: ... + @zxwy.setter + def zxwy(self, value: glm_typing.I8Vector4) -> None: ... + + @property + def zyxw(self) -> i8vec4: ... + @zyxw.setter + def zyxw(self, value: glm_typing.I8Vector4) -> None: ... + + @property + def zywx(self) -> i8vec4: ... + @zywx.setter + def zywx(self, value: glm_typing.I8Vector4) -> None: ... + + @property + def zwxy(self) -> i8vec4: ... + @zwxy.setter + def zwxy(self, value: glm_typing.I8Vector4) -> None: ... + + @property + def zwyx(self) -> i8vec4: ... + @zwyx.setter + def zwyx(self, value: glm_typing.I8Vector4) -> None: ... + + @property + def wxyz(self) -> i8vec4: ... + @wxyz.setter + def wxyz(self, value: glm_typing.I8Vector4) -> None: ... + + @property + def wxzy(self) -> i8vec4: ... + @wxzy.setter + def wxzy(self, value: glm_typing.I8Vector4) -> None: ... + + @property + def wyxz(self) -> i8vec4: ... + @wyxz.setter + def wyxz(self, value: glm_typing.I8Vector4) -> None: ... + + @property + def wyzx(self) -> i8vec4: ... + @wyzx.setter + def wyzx(self, value: glm_typing.I8Vector4) -> None: ... + + @property + def wzxy(self) -> i8vec4: ... + @wzxy.setter + def wzxy(self, value: glm_typing.I8Vector4) -> None: ... + + @property + def wzyx(self) -> i8vec4: ... + @wzyx.setter + def wzyx(self, value: glm_typing.I8Vector4) -> None: ... + + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: glm_typing.Number, y: glm_typing.Number, z: glm_typing.Number, w: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: glm_typing.AnyAnyVector4) -> None: ... + + def __len__(self) -> Literal[4]: ... + def __getitem__(self, index: int) -> int: ... + def __setitem__(self, index: int, value: glm_typing.Number) -> None: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[int, None, None]: ... + + def __neg__(self) -> i8vec4: ... + def __pos__(self) -> i8vec4: ... + def __abs__(self) -> i8vec4: ... + + def __lt__(self, other: Any) -> bool: ... + def __le__(self, other: Any) -> bool: ... + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + def __ge__(self, other: Any) -> bool: ... + def __gt__(self, other: Any) -> bool: ... + + def to_list(self) -> List[int]: ... + def to_tuple(self) -> Tuple[int, int, int, int]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> i8vec4: ... + + def __add__(self, other: Union[glm_typing.I8Vector4, glm_typing.Number]) -> i8vec4: ... + def __radd__(self, other: Union[glm_typing.I8Vector4, glm_typing.Number]) -> i8vec4: ... + def __iadd__(self, other: Union[glm_typing.I8Vector4, glm_typing.Number]) -> i8vec4: ... + + def __sub__(self, other: Union[glm_typing.I8Vector4, glm_typing.Number]) -> i8vec4: ... + def __rsub__(self, other: Union[glm_typing.I8Vector4, glm_typing.Number]) -> i8vec4: ... + def __isub__(self, other: Union[glm_typing.I8Vector4, glm_typing.Number]) -> i8vec4: ... + + @overload + def __mul__(self, other: glm_typing.Number) -> i8vec4: ... + @overload + def __mul__(self, other: glm_typing.I8Vector4) -> i8vec4: ... + @overload + def __rmul__(self, other: glm_typing.Number) -> i8vec4: ... + @overload + def __rmul__(self, other: glm_typing.I8Vector4) -> i8vec4: ... + @overload + def __imul__(self, other: glm_typing.Number) -> i8vec4: ... + @overload + def __imul__(self, other: glm_typing.I8Vector4) -> i8vec4: ... + + def __mod__(self, other: Union[glm_typing.I8Vector4, glm_typing.Number]) -> i8vec4: ... + def __rmod__(self, other: Union[glm_typing.I8Vector4, glm_typing.Number]) -> i8vec4: ... + def __imod__(self, other: Union[glm_typing.I8Vector4, glm_typing.Number]) -> i8vec4: ... + + def __pow__(self, other: Union[glm_typing.I8Vector4, glm_typing.Number]) -> i8vec4: ... + def __rpow__(self, other: Union[glm_typing.I8Vector4, glm_typing.Number]) -> i8vec4: ... + def __ipow__(self, other: Union[glm_typing.I8Vector4, glm_typing.Number]) -> i8vec4: ... + + def __truediv__(self, other: Union[glm_typing.I8Vector4, glm_typing.Number]) -> i8vec4: ... + def __rtruediv__(self, other: Union[glm_typing.I8Vector4, glm_typing.Number]) -> i8vec4: ... + def __itruediv__(self, other: Union[glm_typing.I8Vector4, glm_typing.Number]) -> i8vec4: ... + + def __floordiv__(self, other: Union[glm_typing.I8Vector4, glm_typing.Number]) -> i8vec4: ... + def __rfloordiv__(self, other: Union[glm_typing.I8Vector4, glm_typing.Number]) -> i8vec4: ... + def __ifloordiv__(self, other: Union[glm_typing.I8Vector4, glm_typing.Number]) -> i8vec4: ... + + @overload + def __matmul__(self, other: glm_typing.Number) -> i8vec4: ... + @overload + def __matmul__(self, other: glm_typing.I8Vector4) -> i8vec4: ... + @overload + def __rmatmul__(self, other: glm_typing.Number) -> i8vec4: ... + @overload + def __rmatmul__(self, other: glm_typing.I8Vector4) -> i8vec4: ... + @overload + def __imatmul__(self, other: glm_typing.Number) -> i8vec4: ... + @overload + def __imatmul__(self, other: glm_typing.I8Vector4) -> i8vec4: ... + + def __divmod__(self, other: i8vec4) -> Tuple[i8vec4, i8vec4]: ... + + + +class imvec2: + x: int + y: int + + + @property + def xy(self) -> i32vec2: ... + @xy.setter + def xy(self, value: glm_typing.I32Vector2) -> None: ... + + @property + def yx(self) -> i32vec2: ... + @yx.setter + def yx(self, value: glm_typing.I32Vector2) -> None: ... + + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: glm_typing.Number, y: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: Union[glm_typing.AnyAnyVector2, glm_typing.IAnyVector3, glm_typing.IAnyVector4]) -> None: ... + + def __len__(self) -> Literal[2]: ... + def __getitem__(self, index: int) -> int: ... + def __setitem__(self, index: int, value: glm_typing.Number) -> None: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[int, None, None]: ... + + def __neg__(self) -> imvec2: ... + def __pos__(self) -> imvec2: ... + def __abs__(self) -> imvec2: ... + + def __lt__(self, other: Any) -> bool: ... + def __le__(self, other: Any) -> bool: ... + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + def __ge__(self, other: Any) -> bool: ... + def __gt__(self, other: Any) -> bool: ... + + def to_list(self) -> List[int]: ... + def to_tuple(self) -> Tuple[int, int]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> imvec2: ... + + def __add__(self, other: Union[glm_typing.I32Vector2, glm_typing.Number]) -> imvec2: ... + def __radd__(self, other: Union[glm_typing.I32Vector2, glm_typing.Number]) -> imvec2: ... + def __iadd__(self, other: Union[glm_typing.I32Vector2, glm_typing.Number]) -> imvec2: ... + + def __sub__(self, other: Union[glm_typing.I32Vector2, glm_typing.Number]) -> imvec2: ... + def __rsub__(self, other: Union[glm_typing.I32Vector2, glm_typing.Number]) -> imvec2: ... + def __isub__(self, other: Union[glm_typing.I32Vector2, glm_typing.Number]) -> imvec2: ... + + @overload + def __mul__(self, other: glm_typing.Number) -> imvec2: ... + @overload + def __mul__(self, other: glm_typing.I32Vector2) -> imvec2: ... + @overload + def __mul__(self, other: glm_typing.I32Matrix2x2) -> vec2: ... + @overload + def __mul__(self, other: glm_typing.I32Matrix3x2) -> vec3: ... + @overload + def __mul__(self, other: glm_typing.I32Matrix4x2) -> vec4: ... + @overload + def __rmul__(self, other: glm_typing.Number) -> imvec2: ... + @overload + def __rmul__(self, other: glm_typing.I32Vector2) -> imvec2: ... + @overload + def __rmul__(self, other: glm_typing.I32Matrix2x2) -> vec2: ... + @overload + def __rmul__(self, other: glm_typing.I32Matrix3x2) -> vec3: ... + @overload + def __rmul__(self, other: glm_typing.I32Matrix4x2) -> vec4: ... + @overload + def __imul__(self, other: glm_typing.Number) -> imvec2: ... + @overload + def __imul__(self, other: glm_typing.I32Vector2) -> imvec2: ... + @overload + def __imul__(self, other: glm_typing.I32Matrix2x2) -> vec2: ... + @overload + def __imul__(self, other: glm_typing.I32Matrix3x2) -> vec3: ... + @overload + def __imul__(self, other: glm_typing.I32Matrix4x2) -> vec4: ... + + def __mod__(self, other: Union[glm_typing.I32Vector2, glm_typing.Number]) -> imvec2: ... + def __rmod__(self, other: Union[glm_typing.I32Vector2, glm_typing.Number]) -> imvec2: ... + def __imod__(self, other: Union[glm_typing.I32Vector2, glm_typing.Number]) -> imvec2: ... + + def __pow__(self, other: Union[glm_typing.I32Vector2, glm_typing.Number]) -> imvec2: ... + def __rpow__(self, other: Union[glm_typing.I32Vector2, glm_typing.Number]) -> imvec2: ... + def __ipow__(self, other: Union[glm_typing.I32Vector2, glm_typing.Number]) -> imvec2: ... + + def __truediv__(self, other: Union[glm_typing.I32Vector2, glm_typing.Number]) -> imvec2: ... + def __rtruediv__(self, other: Union[glm_typing.I32Vector2, glm_typing.Number]) -> imvec2: ... + def __itruediv__(self, other: Union[glm_typing.I32Vector2, glm_typing.Number]) -> imvec2: ... + + def __floordiv__(self, other: Union[glm_typing.I32Vector2, glm_typing.Number]) -> imvec2: ... + def __rfloordiv__(self, other: Union[glm_typing.I32Vector2, glm_typing.Number]) -> imvec2: ... + def __ifloordiv__(self, other: Union[glm_typing.I32Vector2, glm_typing.Number]) -> imvec2: ... + + @overload + def __matmul__(self, other: glm_typing.Number) -> imvec2: ... + @overload + def __matmul__(self, other: glm_typing.I32Vector2) -> imvec2: ... + @overload + def __matmul__(self, other: glm_typing.I32Matrix2x2) -> vec2: ... + @overload + def __matmul__(self, other: glm_typing.I32Matrix3x2) -> vec3: ... + @overload + def __matmul__(self, other: glm_typing.I32Matrix4x2) -> vec4: ... + @overload + def __rmatmul__(self, other: glm_typing.Number) -> imvec2: ... + @overload + def __rmatmul__(self, other: glm_typing.I32Vector2) -> imvec2: ... + @overload + def __rmatmul__(self, other: glm_typing.I32Matrix2x2) -> vec2: ... + @overload + def __rmatmul__(self, other: glm_typing.I32Matrix3x2) -> vec3: ... + @overload + def __rmatmul__(self, other: glm_typing.I32Matrix4x2) -> vec4: ... + @overload + def __imatmul__(self, other: glm_typing.Number) -> imvec2: ... + @overload + def __imatmul__(self, other: glm_typing.I32Vector2) -> imvec2: ... + @overload + def __imatmul__(self, other: glm_typing.I32Matrix2x2) -> vec2: ... + @overload + def __imatmul__(self, other: glm_typing.I32Matrix3x2) -> vec3: ... + @overload + def __imatmul__(self, other: glm_typing.I32Matrix4x2) -> vec4: ... + + def __divmod__(self, other: imvec2) -> Tuple[imvec2, imvec2]: ... + + + +class imvec3: + x: int + y: int + z: int + + + @property + def xy(self) -> i32vec2: ... + @xy.setter + def xy(self, value: glm_typing.I32Vector2) -> None: ... + + @property + def yx(self) -> i32vec2: ... + @yx.setter + def yx(self, value: glm_typing.I32Vector2) -> None: ... + + @property + def xz(self) -> i32vec2: ... + @xz.setter + def xz(self, value: glm_typing.I32Vector2) -> None: ... + + @property + def zx(self) -> i32vec2: ... + @zx.setter + def zx(self, value: glm_typing.I32Vector2) -> None: ... + + @property + def yz(self) -> i32vec2: ... + @yz.setter + def yz(self, value: glm_typing.I32Vector2) -> None: ... + + @property + def zy(self) -> i32vec2: ... + @zy.setter + def zy(self, value: glm_typing.I32Vector2) -> None: ... + + @property + def xyz(self) -> i32vec3: ... + @xyz.setter + def xyz(self, value: glm_typing.I32Vector3) -> None: ... + + @property + def xzy(self) -> i32vec3: ... + @xzy.setter + def xzy(self, value: glm_typing.I32Vector3) -> None: ... + + @property + def yxz(self) -> i32vec3: ... + @yxz.setter + def yxz(self, value: glm_typing.I32Vector3) -> None: ... + + @property + def yzx(self) -> i32vec3: ... + @yzx.setter + def yzx(self, value: glm_typing.I32Vector3) -> None: ... + + @property + def zxy(self) -> i32vec3: ... + @zxy.setter + def zxy(self, value: glm_typing.I32Vector3) -> None: ... + + @property + def zyx(self) -> i32vec3: ... + @zyx.setter + def zyx(self, value: glm_typing.I32Vector3) -> None: ... + + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: glm_typing.Number, y: glm_typing.Number, z: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: Union[glm_typing.AnyAnyVector3, glm_typing.IAnyVector4]) -> None: ... + + def __len__(self) -> Literal[3]: ... + def __getitem__(self, index: int) -> int: ... + def __setitem__(self, index: int, value: glm_typing.Number) -> None: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[int, None, None]: ... + + def __neg__(self) -> imvec3: ... + def __pos__(self) -> imvec3: ... + def __abs__(self) -> imvec3: ... + + def __lt__(self, other: Any) -> bool: ... + def __le__(self, other: Any) -> bool: ... + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + def __ge__(self, other: Any) -> bool: ... + def __gt__(self, other: Any) -> bool: ... + + def to_list(self) -> List[int]: ... + def to_tuple(self) -> Tuple[int, int, int]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> imvec3: ... + + def __add__(self, other: Union[glm_typing.I32Vector3, glm_typing.Number]) -> imvec3: ... + def __radd__(self, other: Union[glm_typing.I32Vector3, glm_typing.Number]) -> imvec3: ... + def __iadd__(self, other: Union[glm_typing.I32Vector3, glm_typing.Number]) -> imvec3: ... + + def __sub__(self, other: Union[glm_typing.I32Vector3, glm_typing.Number]) -> imvec3: ... + def __rsub__(self, other: Union[glm_typing.I32Vector3, glm_typing.Number]) -> imvec3: ... + def __isub__(self, other: Union[glm_typing.I32Vector3, glm_typing.Number]) -> imvec3: ... + + @overload + def __mul__(self, other: glm_typing.Number) -> imvec3: ... + @overload + def __mul__(self, other: glm_typing.I32Vector3) -> imvec3: ... + @overload + def __mul__(self, other: glm_typing.I32Matrix2x2) -> vec2: ... + @overload + def __mul__(self, other: glm_typing.I32Matrix3x2) -> vec3: ... + @overload + def __mul__(self, other: glm_typing.I32Matrix4x2) -> vec4: ... + @overload + def __rmul__(self, other: glm_typing.Number) -> imvec3: ... + @overload + def __rmul__(self, other: glm_typing.I32Vector3) -> imvec3: ... + @overload + def __rmul__(self, other: glm_typing.I32Matrix2x2) -> vec2: ... + @overload + def __rmul__(self, other: glm_typing.I32Matrix3x2) -> vec3: ... + @overload + def __rmul__(self, other: glm_typing.I32Matrix4x2) -> vec4: ... + @overload + def __imul__(self, other: glm_typing.Number) -> imvec3: ... + @overload + def __imul__(self, other: glm_typing.I32Vector3) -> imvec3: ... + @overload + def __imul__(self, other: glm_typing.I32Matrix2x2) -> vec2: ... + @overload + def __imul__(self, other: glm_typing.I32Matrix3x2) -> vec3: ... + @overload + def __imul__(self, other: glm_typing.I32Matrix4x2) -> vec4: ... + + def __mod__(self, other: Union[glm_typing.I32Vector3, glm_typing.Number]) -> imvec3: ... + def __rmod__(self, other: Union[glm_typing.I32Vector3, glm_typing.Number]) -> imvec3: ... + def __imod__(self, other: Union[glm_typing.I32Vector3, glm_typing.Number]) -> imvec3: ... + + def __pow__(self, other: Union[glm_typing.I32Vector3, glm_typing.Number]) -> imvec3: ... + def __rpow__(self, other: Union[glm_typing.I32Vector3, glm_typing.Number]) -> imvec3: ... + def __ipow__(self, other: Union[glm_typing.I32Vector3, glm_typing.Number]) -> imvec3: ... + + def __truediv__(self, other: Union[glm_typing.I32Vector3, glm_typing.Number]) -> imvec3: ... + def __rtruediv__(self, other: Union[glm_typing.I32Vector3, glm_typing.Number]) -> imvec3: ... + def __itruediv__(self, other: Union[glm_typing.I32Vector3, glm_typing.Number]) -> imvec3: ... + + def __floordiv__(self, other: Union[glm_typing.I32Vector3, glm_typing.Number]) -> imvec3: ... + def __rfloordiv__(self, other: Union[glm_typing.I32Vector3, glm_typing.Number]) -> imvec3: ... + def __ifloordiv__(self, other: Union[glm_typing.I32Vector3, glm_typing.Number]) -> imvec3: ... + + @overload + def __matmul__(self, other: glm_typing.Number) -> imvec3: ... + @overload + def __matmul__(self, other: glm_typing.I32Vector3) -> imvec3: ... + @overload + def __matmul__(self, other: glm_typing.I32Matrix2x2) -> vec2: ... + @overload + def __matmul__(self, other: glm_typing.I32Matrix3x2) -> vec3: ... + @overload + def __matmul__(self, other: glm_typing.I32Matrix4x2) -> vec4: ... + @overload + def __rmatmul__(self, other: glm_typing.Number) -> imvec3: ... + @overload + def __rmatmul__(self, other: glm_typing.I32Vector3) -> imvec3: ... + @overload + def __rmatmul__(self, other: glm_typing.I32Matrix2x2) -> vec2: ... + @overload + def __rmatmul__(self, other: glm_typing.I32Matrix3x2) -> vec3: ... + @overload + def __rmatmul__(self, other: glm_typing.I32Matrix4x2) -> vec4: ... + @overload + def __imatmul__(self, other: glm_typing.Number) -> imvec3: ... + @overload + def __imatmul__(self, other: glm_typing.I32Vector3) -> imvec3: ... + @overload + def __imatmul__(self, other: glm_typing.I32Matrix2x2) -> vec2: ... + @overload + def __imatmul__(self, other: glm_typing.I32Matrix3x2) -> vec3: ... + @overload + def __imatmul__(self, other: glm_typing.I32Matrix4x2) -> vec4: ... + + def __divmod__(self, other: imvec3) -> Tuple[imvec3, imvec3]: ... + + + +class imvec4: + x: int + y: int + z: int + w: int + + + @property + def xy(self) -> i32vec2: ... + @xy.setter + def xy(self, value: glm_typing.I32Vector2) -> None: ... + + @property + def yx(self) -> i32vec2: ... + @yx.setter + def yx(self, value: glm_typing.I32Vector2) -> None: ... + + @property + def xz(self) -> i32vec2: ... + @xz.setter + def xz(self, value: glm_typing.I32Vector2) -> None: ... + + @property + def zx(self) -> i32vec2: ... + @zx.setter + def zx(self, value: glm_typing.I32Vector2) -> None: ... + + @property + def xw(self) -> i32vec2: ... + @xw.setter + def xw(self, value: glm_typing.I32Vector2) -> None: ... + + @property + def wx(self) -> i32vec2: ... + @wx.setter + def wx(self, value: glm_typing.I32Vector2) -> None: ... + + @property + def yz(self) -> i32vec2: ... + @yz.setter + def yz(self, value: glm_typing.I32Vector2) -> None: ... + + @property + def zy(self) -> i32vec2: ... + @zy.setter + def zy(self, value: glm_typing.I32Vector2) -> None: ... + + @property + def yw(self) -> i32vec2: ... + @yw.setter + def yw(self, value: glm_typing.I32Vector2) -> None: ... + + @property + def wy(self) -> i32vec2: ... + @wy.setter + def wy(self, value: glm_typing.I32Vector2) -> None: ... + + @property + def zw(self) -> i32vec2: ... + @zw.setter + def zw(self, value: glm_typing.I32Vector2) -> None: ... + + @property + def wz(self) -> i32vec2: ... + @wz.setter + def wz(self, value: glm_typing.I32Vector2) -> None: ... + + @property + def xyz(self) -> i32vec3: ... + @xyz.setter + def xyz(self, value: glm_typing.I32Vector3) -> None: ... + + @property + def xzy(self) -> i32vec3: ... + @xzy.setter + def xzy(self, value: glm_typing.I32Vector3) -> None: ... + + @property + def yxz(self) -> i32vec3: ... + @yxz.setter + def yxz(self, value: glm_typing.I32Vector3) -> None: ... + + @property + def yzx(self) -> i32vec3: ... + @yzx.setter + def yzx(self, value: glm_typing.I32Vector3) -> None: ... + + @property + def zxy(self) -> i32vec3: ... + @zxy.setter + def zxy(self, value: glm_typing.I32Vector3) -> None: ... + + @property + def zyx(self) -> i32vec3: ... + @zyx.setter + def zyx(self, value: glm_typing.I32Vector3) -> None: ... + + @property + def xyw(self) -> i32vec3: ... + @xyw.setter + def xyw(self, value: glm_typing.I32Vector3) -> None: ... + + @property + def xwy(self) -> i32vec3: ... + @xwy.setter + def xwy(self, value: glm_typing.I32Vector3) -> None: ... + + @property + def yxw(self) -> i32vec3: ... + @yxw.setter + def yxw(self, value: glm_typing.I32Vector3) -> None: ... + + @property + def ywx(self) -> i32vec3: ... + @ywx.setter + def ywx(self, value: glm_typing.I32Vector3) -> None: ... + + @property + def wxy(self) -> i32vec3: ... + @wxy.setter + def wxy(self, value: glm_typing.I32Vector3) -> None: ... + + @property + def wyx(self) -> i32vec3: ... + @wyx.setter + def wyx(self, value: glm_typing.I32Vector3) -> None: ... + + @property + def xzw(self) -> i32vec3: ... + @xzw.setter + def xzw(self, value: glm_typing.I32Vector3) -> None: ... + + @property + def xwz(self) -> i32vec3: ... + @xwz.setter + def xwz(self, value: glm_typing.I32Vector3) -> None: ... + + @property + def zxw(self) -> i32vec3: ... + @zxw.setter + def zxw(self, value: glm_typing.I32Vector3) -> None: ... + + @property + def zwx(self) -> i32vec3: ... + @zwx.setter + def zwx(self, value: glm_typing.I32Vector3) -> None: ... + + @property + def wxz(self) -> i32vec3: ... + @wxz.setter + def wxz(self, value: glm_typing.I32Vector3) -> None: ... + + @property + def wzx(self) -> i32vec3: ... + @wzx.setter + def wzx(self, value: glm_typing.I32Vector3) -> None: ... + + @property + def yzw(self) -> i32vec3: ... + @yzw.setter + def yzw(self, value: glm_typing.I32Vector3) -> None: ... + + @property + def ywz(self) -> i32vec3: ... + @ywz.setter + def ywz(self, value: glm_typing.I32Vector3) -> None: ... + + @property + def zyw(self) -> i32vec3: ... + @zyw.setter + def zyw(self, value: glm_typing.I32Vector3) -> None: ... + + @property + def zwy(self) -> i32vec3: ... + @zwy.setter + def zwy(self, value: glm_typing.I32Vector3) -> None: ... + + @property + def wyz(self) -> i32vec3: ... + @wyz.setter + def wyz(self, value: glm_typing.I32Vector3) -> None: ... + + @property + def wzy(self) -> i32vec3: ... + @wzy.setter + def wzy(self, value: glm_typing.I32Vector3) -> None: ... + + @property + def xyzw(self) -> i32vec4: ... + @xyzw.setter + def xyzw(self, value: glm_typing.I32Vector4) -> None: ... + + @property + def xywz(self) -> i32vec4: ... + @xywz.setter + def xywz(self, value: glm_typing.I32Vector4) -> None: ... + + @property + def xzyw(self) -> i32vec4: ... + @xzyw.setter + def xzyw(self, value: glm_typing.I32Vector4) -> None: ... + + @property + def xzwy(self) -> i32vec4: ... + @xzwy.setter + def xzwy(self, value: glm_typing.I32Vector4) -> None: ... + + @property + def xwyz(self) -> i32vec4: ... + @xwyz.setter + def xwyz(self, value: glm_typing.I32Vector4) -> None: ... + + @property + def xwzy(self) -> i32vec4: ... + @xwzy.setter + def xwzy(self, value: glm_typing.I32Vector4) -> None: ... + + @property + def yxzw(self) -> i32vec4: ... + @yxzw.setter + def yxzw(self, value: glm_typing.I32Vector4) -> None: ... + + @property + def yxwz(self) -> i32vec4: ... + @yxwz.setter + def yxwz(self, value: glm_typing.I32Vector4) -> None: ... + + @property + def yzxw(self) -> i32vec4: ... + @yzxw.setter + def yzxw(self, value: glm_typing.I32Vector4) -> None: ... + + @property + def yzwx(self) -> i32vec4: ... + @yzwx.setter + def yzwx(self, value: glm_typing.I32Vector4) -> None: ... + + @property + def ywxz(self) -> i32vec4: ... + @ywxz.setter + def ywxz(self, value: glm_typing.I32Vector4) -> None: ... + + @property + def ywzx(self) -> i32vec4: ... + @ywzx.setter + def ywzx(self, value: glm_typing.I32Vector4) -> None: ... + + @property + def zxyw(self) -> i32vec4: ... + @zxyw.setter + def zxyw(self, value: glm_typing.I32Vector4) -> None: ... + + @property + def zxwy(self) -> i32vec4: ... + @zxwy.setter + def zxwy(self, value: glm_typing.I32Vector4) -> None: ... + + @property + def zyxw(self) -> i32vec4: ... + @zyxw.setter + def zyxw(self, value: glm_typing.I32Vector4) -> None: ... + + @property + def zywx(self) -> i32vec4: ... + @zywx.setter + def zywx(self, value: glm_typing.I32Vector4) -> None: ... + + @property + def zwxy(self) -> i32vec4: ... + @zwxy.setter + def zwxy(self, value: glm_typing.I32Vector4) -> None: ... + + @property + def zwyx(self) -> i32vec4: ... + @zwyx.setter + def zwyx(self, value: glm_typing.I32Vector4) -> None: ... + + @property + def wxyz(self) -> i32vec4: ... + @wxyz.setter + def wxyz(self, value: glm_typing.I32Vector4) -> None: ... + + @property + def wxzy(self) -> i32vec4: ... + @wxzy.setter + def wxzy(self, value: glm_typing.I32Vector4) -> None: ... + + @property + def wyxz(self) -> i32vec4: ... + @wyxz.setter + def wyxz(self, value: glm_typing.I32Vector4) -> None: ... + + @property + def wyzx(self) -> i32vec4: ... + @wyzx.setter + def wyzx(self, value: glm_typing.I32Vector4) -> None: ... + + @property + def wzxy(self) -> i32vec4: ... + @wzxy.setter + def wzxy(self, value: glm_typing.I32Vector4) -> None: ... + + @property + def wzyx(self) -> i32vec4: ... + @wzyx.setter + def wzyx(self, value: glm_typing.I32Vector4) -> None: ... + + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: glm_typing.Number, y: glm_typing.Number, z: glm_typing.Number, w: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: glm_typing.AnyAnyVector4) -> None: ... + + def __len__(self) -> Literal[4]: ... + def __getitem__(self, index: int) -> int: ... + def __setitem__(self, index: int, value: glm_typing.Number) -> None: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[int, None, None]: ... + + def __neg__(self) -> imvec4: ... + def __pos__(self) -> imvec4: ... + def __abs__(self) -> imvec4: ... + + def __lt__(self, other: Any) -> bool: ... + def __le__(self, other: Any) -> bool: ... + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + def __ge__(self, other: Any) -> bool: ... + def __gt__(self, other: Any) -> bool: ... + + def to_list(self) -> List[int]: ... + def to_tuple(self) -> Tuple[int, int, int, int]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> imvec4: ... + + def __add__(self, other: Union[glm_typing.I32Vector4, glm_typing.Number]) -> imvec4: ... + def __radd__(self, other: Union[glm_typing.I32Vector4, glm_typing.Number]) -> imvec4: ... + def __iadd__(self, other: Union[glm_typing.I32Vector4, glm_typing.Number]) -> imvec4: ... + + def __sub__(self, other: Union[glm_typing.I32Vector4, glm_typing.Number]) -> imvec4: ... + def __rsub__(self, other: Union[glm_typing.I32Vector4, glm_typing.Number]) -> imvec4: ... + def __isub__(self, other: Union[glm_typing.I32Vector4, glm_typing.Number]) -> imvec4: ... + + @overload + def __mul__(self, other: glm_typing.Number) -> imvec4: ... + @overload + def __mul__(self, other: glm_typing.I32Vector4) -> imvec4: ... + @overload + def __mul__(self, other: glm_typing.I32Matrix2x2) -> vec2: ... + @overload + def __mul__(self, other: glm_typing.I32Matrix3x2) -> vec3: ... + @overload + def __mul__(self, other: glm_typing.I32Matrix4x2) -> vec4: ... + @overload + def __rmul__(self, other: glm_typing.Number) -> imvec4: ... + @overload + def __rmul__(self, other: glm_typing.I32Vector4) -> imvec4: ... + @overload + def __rmul__(self, other: glm_typing.I32Matrix2x2) -> vec2: ... + @overload + def __rmul__(self, other: glm_typing.I32Matrix3x2) -> vec3: ... + @overload + def __rmul__(self, other: glm_typing.I32Matrix4x2) -> vec4: ... + @overload + def __imul__(self, other: glm_typing.Number) -> imvec4: ... + @overload + def __imul__(self, other: glm_typing.I32Vector4) -> imvec4: ... + @overload + def __imul__(self, other: glm_typing.I32Matrix2x2) -> vec2: ... + @overload + def __imul__(self, other: glm_typing.I32Matrix3x2) -> vec3: ... + @overload + def __imul__(self, other: glm_typing.I32Matrix4x2) -> vec4: ... + + def __mod__(self, other: Union[glm_typing.I32Vector4, glm_typing.Number]) -> imvec4: ... + def __rmod__(self, other: Union[glm_typing.I32Vector4, glm_typing.Number]) -> imvec4: ... + def __imod__(self, other: Union[glm_typing.I32Vector4, glm_typing.Number]) -> imvec4: ... + + def __pow__(self, other: Union[glm_typing.I32Vector4, glm_typing.Number]) -> imvec4: ... + def __rpow__(self, other: Union[glm_typing.I32Vector4, glm_typing.Number]) -> imvec4: ... + def __ipow__(self, other: Union[glm_typing.I32Vector4, glm_typing.Number]) -> imvec4: ... + + def __truediv__(self, other: Union[glm_typing.I32Vector4, glm_typing.Number]) -> imvec4: ... + def __rtruediv__(self, other: Union[glm_typing.I32Vector4, glm_typing.Number]) -> imvec4: ... + def __itruediv__(self, other: Union[glm_typing.I32Vector4, glm_typing.Number]) -> imvec4: ... + + def __floordiv__(self, other: Union[glm_typing.I32Vector4, glm_typing.Number]) -> imvec4: ... + def __rfloordiv__(self, other: Union[glm_typing.I32Vector4, glm_typing.Number]) -> imvec4: ... + def __ifloordiv__(self, other: Union[glm_typing.I32Vector4, glm_typing.Number]) -> imvec4: ... + + @overload + def __matmul__(self, other: glm_typing.Number) -> imvec4: ... + @overload + def __matmul__(self, other: glm_typing.I32Vector4) -> imvec4: ... + @overload + def __matmul__(self, other: glm_typing.I32Matrix2x2) -> vec2: ... + @overload + def __matmul__(self, other: glm_typing.I32Matrix3x2) -> vec3: ... + @overload + def __matmul__(self, other: glm_typing.I32Matrix4x2) -> vec4: ... + @overload + def __rmatmul__(self, other: glm_typing.Number) -> imvec4: ... + @overload + def __rmatmul__(self, other: glm_typing.I32Vector4) -> imvec4: ... + @overload + def __rmatmul__(self, other: glm_typing.I32Matrix2x2) -> vec2: ... + @overload + def __rmatmul__(self, other: glm_typing.I32Matrix3x2) -> vec3: ... + @overload + def __rmatmul__(self, other: glm_typing.I32Matrix4x2) -> vec4: ... + @overload + def __imatmul__(self, other: glm_typing.Number) -> imvec4: ... + @overload + def __imatmul__(self, other: glm_typing.I32Vector4) -> imvec4: ... + @overload + def __imatmul__(self, other: glm_typing.I32Matrix2x2) -> vec2: ... + @overload + def __imatmul__(self, other: glm_typing.I32Matrix3x2) -> vec3: ... + @overload + def __imatmul__(self, other: glm_typing.I32Matrix4x2) -> vec4: ... + + def __divmod__(self, other: imvec4) -> Tuple[imvec4, imvec4]: ... + + +i32vec1 = ivec1 + +class ivec1: + x: int + + + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: Union[glm_typing.AnyAnyVector1, glm_typing.IAnyVector2, glm_typing.IAnyVector3, glm_typing.IAnyVector4]) -> None: ... + + def __len__(self) -> Literal[1]: ... + def __getitem__(self, index: int) -> int: ... + def __setitem__(self, index: int, value: glm_typing.Number) -> None: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[int, None, None]: ... + + def __neg__(self) -> ivec1: ... + def __pos__(self) -> ivec1: ... + def __abs__(self) -> ivec1: ... + + def __lt__(self, other: Any) -> bool: ... + def __le__(self, other: Any) -> bool: ... + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + def __ge__(self, other: Any) -> bool: ... + def __gt__(self, other: Any) -> bool: ... + + def to_list(self) -> List[int]: ... + def to_tuple(self) -> Tuple[int]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> ivec1: ... + + def __add__(self, other: Union[glm_typing.I32Vector1, glm_typing.Number]) -> ivec1: ... + def __radd__(self, other: Union[glm_typing.I32Vector1, glm_typing.Number]) -> ivec1: ... + def __iadd__(self, other: Union[glm_typing.I32Vector1, glm_typing.Number]) -> ivec1: ... + + def __sub__(self, other: Union[glm_typing.I32Vector1, glm_typing.Number]) -> ivec1: ... + def __rsub__(self, other: Union[glm_typing.I32Vector1, glm_typing.Number]) -> ivec1: ... + def __isub__(self, other: Union[glm_typing.I32Vector1, glm_typing.Number]) -> ivec1: ... + + @overload + def __mul__(self, other: glm_typing.Number) -> ivec1: ... + @overload + def __mul__(self, other: glm_typing.I32Vector1) -> ivec1: ... + @overload + def __mul__(self, other: glm_typing.I32Matrix2x2) -> vec2: ... + @overload + def __mul__(self, other: glm_typing.I32Matrix3x2) -> vec3: ... + @overload + def __mul__(self, other: glm_typing.I32Matrix4x2) -> vec4: ... + @overload + def __rmul__(self, other: glm_typing.Number) -> ivec1: ... + @overload + def __rmul__(self, other: glm_typing.I32Vector1) -> ivec1: ... + @overload + def __rmul__(self, other: glm_typing.I32Matrix2x2) -> vec2: ... + @overload + def __rmul__(self, other: glm_typing.I32Matrix3x2) -> vec3: ... + @overload + def __rmul__(self, other: glm_typing.I32Matrix4x2) -> vec4: ... + @overload + def __imul__(self, other: glm_typing.Number) -> ivec1: ... + @overload + def __imul__(self, other: glm_typing.I32Vector1) -> ivec1: ... + @overload + def __imul__(self, other: glm_typing.I32Matrix2x2) -> vec2: ... + @overload + def __imul__(self, other: glm_typing.I32Matrix3x2) -> vec3: ... + @overload + def __imul__(self, other: glm_typing.I32Matrix4x2) -> vec4: ... + + def __mod__(self, other: Union[glm_typing.I32Vector1, glm_typing.Number]) -> ivec1: ... + def __rmod__(self, other: Union[glm_typing.I32Vector1, glm_typing.Number]) -> ivec1: ... + def __imod__(self, other: Union[glm_typing.I32Vector1, glm_typing.Number]) -> ivec1: ... + + def __pow__(self, other: Union[glm_typing.I32Vector1, glm_typing.Number]) -> ivec1: ... + def __rpow__(self, other: Union[glm_typing.I32Vector1, glm_typing.Number]) -> ivec1: ... + def __ipow__(self, other: Union[glm_typing.I32Vector1, glm_typing.Number]) -> ivec1: ... + + def __truediv__(self, other: Union[glm_typing.I32Vector1, glm_typing.Number]) -> ivec1: ... + def __rtruediv__(self, other: Union[glm_typing.I32Vector1, glm_typing.Number]) -> ivec1: ... + def __itruediv__(self, other: Union[glm_typing.I32Vector1, glm_typing.Number]) -> ivec1: ... + + def __floordiv__(self, other: Union[glm_typing.I32Vector1, glm_typing.Number]) -> ivec1: ... + def __rfloordiv__(self, other: Union[glm_typing.I32Vector1, glm_typing.Number]) -> ivec1: ... + def __ifloordiv__(self, other: Union[glm_typing.I32Vector1, glm_typing.Number]) -> ivec1: ... + + @overload + def __matmul__(self, other: glm_typing.Number) -> ivec1: ... + @overload + def __matmul__(self, other: glm_typing.I32Vector1) -> ivec1: ... + @overload + def __matmul__(self, other: glm_typing.I32Matrix2x2) -> vec2: ... + @overload + def __matmul__(self, other: glm_typing.I32Matrix3x2) -> vec3: ... + @overload + def __matmul__(self, other: glm_typing.I32Matrix4x2) -> vec4: ... + @overload + def __rmatmul__(self, other: glm_typing.Number) -> ivec1: ... + @overload + def __rmatmul__(self, other: glm_typing.I32Vector1) -> ivec1: ... + @overload + def __rmatmul__(self, other: glm_typing.I32Matrix2x2) -> vec2: ... + @overload + def __rmatmul__(self, other: glm_typing.I32Matrix3x2) -> vec3: ... + @overload + def __rmatmul__(self, other: glm_typing.I32Matrix4x2) -> vec4: ... + @overload + def __imatmul__(self, other: glm_typing.Number) -> ivec1: ... + @overload + def __imatmul__(self, other: glm_typing.I32Vector1) -> ivec1: ... + @overload + def __imatmul__(self, other: glm_typing.I32Matrix2x2) -> vec2: ... + @overload + def __imatmul__(self, other: glm_typing.I32Matrix3x2) -> vec3: ... + @overload + def __imatmul__(self, other: glm_typing.I32Matrix4x2) -> vec4: ... + + def __divmod__(self, other: ivec1) -> Tuple[ivec1, ivec1]: ... + + +i32vec2 = ivec2 + +class ivec2: + x: int + y: int + + + @property + def xy(self) -> i32vec2: ... + @xy.setter + def xy(self, value: glm_typing.I32Vector2) -> None: ... + + @property + def yx(self) -> i32vec2: ... + @yx.setter + def yx(self, value: glm_typing.I32Vector2) -> None: ... + + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: glm_typing.Number, y: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: Union[glm_typing.AnyAnyVector2, glm_typing.IAnyVector3, glm_typing.IAnyVector4]) -> None: ... + + def __len__(self) -> Literal[2]: ... + def __getitem__(self, index: int) -> int: ... + def __setitem__(self, index: int, value: glm_typing.Number) -> None: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[int, None, None]: ... + + def __neg__(self) -> ivec2: ... + def __pos__(self) -> ivec2: ... + def __abs__(self) -> ivec2: ... + + def __lt__(self, other: Any) -> bool: ... + def __le__(self, other: Any) -> bool: ... + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + def __ge__(self, other: Any) -> bool: ... + def __gt__(self, other: Any) -> bool: ... + + def to_list(self) -> List[int]: ... + def to_tuple(self) -> Tuple[int, int]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> ivec2: ... + + def __add__(self, other: Union[glm_typing.I32Vector2, glm_typing.Number]) -> ivec2: ... + def __radd__(self, other: Union[glm_typing.I32Vector2, glm_typing.Number]) -> ivec2: ... + def __iadd__(self, other: Union[glm_typing.I32Vector2, glm_typing.Number]) -> ivec2: ... + + def __sub__(self, other: Union[glm_typing.I32Vector2, glm_typing.Number]) -> ivec2: ... + def __rsub__(self, other: Union[glm_typing.I32Vector2, glm_typing.Number]) -> ivec2: ... + def __isub__(self, other: Union[glm_typing.I32Vector2, glm_typing.Number]) -> ivec2: ... + + @overload + def __mul__(self, other: glm_typing.Number) -> ivec2: ... + @overload + def __mul__(self, other: glm_typing.I32Vector2) -> ivec2: ... + @overload + def __mul__(self, other: glm_typing.I32Matrix2x2) -> vec2: ... + @overload + def __mul__(self, other: glm_typing.I32Matrix3x2) -> vec3: ... + @overload + def __mul__(self, other: glm_typing.I32Matrix4x2) -> vec4: ... + @overload + def __rmul__(self, other: glm_typing.Number) -> ivec2: ... + @overload + def __rmul__(self, other: glm_typing.I32Vector2) -> ivec2: ... + @overload + def __rmul__(self, other: glm_typing.I32Matrix2x2) -> vec2: ... + @overload + def __rmul__(self, other: glm_typing.I32Matrix3x2) -> vec3: ... + @overload + def __rmul__(self, other: glm_typing.I32Matrix4x2) -> vec4: ... + @overload + def __imul__(self, other: glm_typing.Number) -> ivec2: ... + @overload + def __imul__(self, other: glm_typing.I32Vector2) -> ivec2: ... + @overload + def __imul__(self, other: glm_typing.I32Matrix2x2) -> vec2: ... + @overload + def __imul__(self, other: glm_typing.I32Matrix3x2) -> vec3: ... + @overload + def __imul__(self, other: glm_typing.I32Matrix4x2) -> vec4: ... + + def __mod__(self, other: Union[glm_typing.I32Vector2, glm_typing.Number]) -> ivec2: ... + def __rmod__(self, other: Union[glm_typing.I32Vector2, glm_typing.Number]) -> ivec2: ... + def __imod__(self, other: Union[glm_typing.I32Vector2, glm_typing.Number]) -> ivec2: ... + + def __pow__(self, other: Union[glm_typing.I32Vector2, glm_typing.Number]) -> ivec2: ... + def __rpow__(self, other: Union[glm_typing.I32Vector2, glm_typing.Number]) -> ivec2: ... + def __ipow__(self, other: Union[glm_typing.I32Vector2, glm_typing.Number]) -> ivec2: ... + + def __truediv__(self, other: Union[glm_typing.I32Vector2, glm_typing.Number]) -> ivec2: ... + def __rtruediv__(self, other: Union[glm_typing.I32Vector2, glm_typing.Number]) -> ivec2: ... + def __itruediv__(self, other: Union[glm_typing.I32Vector2, glm_typing.Number]) -> ivec2: ... + + def __floordiv__(self, other: Union[glm_typing.I32Vector2, glm_typing.Number]) -> ivec2: ... + def __rfloordiv__(self, other: Union[glm_typing.I32Vector2, glm_typing.Number]) -> ivec2: ... + def __ifloordiv__(self, other: Union[glm_typing.I32Vector2, glm_typing.Number]) -> ivec2: ... + + @overload + def __matmul__(self, other: glm_typing.Number) -> ivec2: ... + @overload + def __matmul__(self, other: glm_typing.I32Vector2) -> ivec2: ... + @overload + def __matmul__(self, other: glm_typing.I32Matrix2x2) -> vec2: ... + @overload + def __matmul__(self, other: glm_typing.I32Matrix3x2) -> vec3: ... + @overload + def __matmul__(self, other: glm_typing.I32Matrix4x2) -> vec4: ... + @overload + def __rmatmul__(self, other: glm_typing.Number) -> ivec2: ... + @overload + def __rmatmul__(self, other: glm_typing.I32Vector2) -> ivec2: ... + @overload + def __rmatmul__(self, other: glm_typing.I32Matrix2x2) -> vec2: ... + @overload + def __rmatmul__(self, other: glm_typing.I32Matrix3x2) -> vec3: ... + @overload + def __rmatmul__(self, other: glm_typing.I32Matrix4x2) -> vec4: ... + @overload + def __imatmul__(self, other: glm_typing.Number) -> ivec2: ... + @overload + def __imatmul__(self, other: glm_typing.I32Vector2) -> ivec2: ... + @overload + def __imatmul__(self, other: glm_typing.I32Matrix2x2) -> vec2: ... + @overload + def __imatmul__(self, other: glm_typing.I32Matrix3x2) -> vec3: ... + @overload + def __imatmul__(self, other: glm_typing.I32Matrix4x2) -> vec4: ... + + def __divmod__(self, other: ivec2) -> Tuple[ivec2, ivec2]: ... + + +i32vec3 = ivec3 + +class ivec3: + x: int + y: int + z: int + + + @property + def xy(self) -> i32vec2: ... + @xy.setter + def xy(self, value: glm_typing.I32Vector2) -> None: ... + + @property + def yx(self) -> i32vec2: ... + @yx.setter + def yx(self, value: glm_typing.I32Vector2) -> None: ... + + @property + def xz(self) -> i32vec2: ... + @xz.setter + def xz(self, value: glm_typing.I32Vector2) -> None: ... + + @property + def zx(self) -> i32vec2: ... + @zx.setter + def zx(self, value: glm_typing.I32Vector2) -> None: ... + + @property + def yz(self) -> i32vec2: ... + @yz.setter + def yz(self, value: glm_typing.I32Vector2) -> None: ... + + @property + def zy(self) -> i32vec2: ... + @zy.setter + def zy(self, value: glm_typing.I32Vector2) -> None: ... + + @property + def xyz(self) -> i32vec3: ... + @xyz.setter + def xyz(self, value: glm_typing.I32Vector3) -> None: ... + + @property + def xzy(self) -> i32vec3: ... + @xzy.setter + def xzy(self, value: glm_typing.I32Vector3) -> None: ... + + @property + def yxz(self) -> i32vec3: ... + @yxz.setter + def yxz(self, value: glm_typing.I32Vector3) -> None: ... + + @property + def yzx(self) -> i32vec3: ... + @yzx.setter + def yzx(self, value: glm_typing.I32Vector3) -> None: ... + + @property + def zxy(self) -> i32vec3: ... + @zxy.setter + def zxy(self, value: glm_typing.I32Vector3) -> None: ... + + @property + def zyx(self) -> i32vec3: ... + @zyx.setter + def zyx(self, value: glm_typing.I32Vector3) -> None: ... + + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: glm_typing.Number, y: glm_typing.Number, z: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: Union[glm_typing.AnyAnyVector3, glm_typing.IAnyVector4]) -> None: ... + + def __len__(self) -> Literal[3]: ... + def __getitem__(self, index: int) -> int: ... + def __setitem__(self, index: int, value: glm_typing.Number) -> None: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[int, None, None]: ... + + def __neg__(self) -> ivec3: ... + def __pos__(self) -> ivec3: ... + def __abs__(self) -> ivec3: ... + + def __lt__(self, other: Any) -> bool: ... + def __le__(self, other: Any) -> bool: ... + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + def __ge__(self, other: Any) -> bool: ... + def __gt__(self, other: Any) -> bool: ... + + def to_list(self) -> List[int]: ... + def to_tuple(self) -> Tuple[int, int, int]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> ivec3: ... + + def __add__(self, other: Union[glm_typing.I32Vector3, glm_typing.Number]) -> ivec3: ... + def __radd__(self, other: Union[glm_typing.I32Vector3, glm_typing.Number]) -> ivec3: ... + def __iadd__(self, other: Union[glm_typing.I32Vector3, glm_typing.Number]) -> ivec3: ... + + def __sub__(self, other: Union[glm_typing.I32Vector3, glm_typing.Number]) -> ivec3: ... + def __rsub__(self, other: Union[glm_typing.I32Vector3, glm_typing.Number]) -> ivec3: ... + def __isub__(self, other: Union[glm_typing.I32Vector3, glm_typing.Number]) -> ivec3: ... + + @overload + def __mul__(self, other: glm_typing.Number) -> ivec3: ... + @overload + def __mul__(self, other: glm_typing.I32Vector3) -> ivec3: ... + @overload + def __mul__(self, other: glm_typing.I32Matrix2x2) -> vec2: ... + @overload + def __mul__(self, other: glm_typing.I32Matrix3x2) -> vec3: ... + @overload + def __mul__(self, other: glm_typing.I32Matrix4x2) -> vec4: ... + @overload + def __rmul__(self, other: glm_typing.Number) -> ivec3: ... + @overload + def __rmul__(self, other: glm_typing.I32Vector3) -> ivec3: ... + @overload + def __rmul__(self, other: glm_typing.I32Matrix2x2) -> vec2: ... + @overload + def __rmul__(self, other: glm_typing.I32Matrix3x2) -> vec3: ... + @overload + def __rmul__(self, other: glm_typing.I32Matrix4x2) -> vec4: ... + @overload + def __imul__(self, other: glm_typing.Number) -> ivec3: ... + @overload + def __imul__(self, other: glm_typing.I32Vector3) -> ivec3: ... + @overload + def __imul__(self, other: glm_typing.I32Matrix2x2) -> vec2: ... + @overload + def __imul__(self, other: glm_typing.I32Matrix3x2) -> vec3: ... + @overload + def __imul__(self, other: glm_typing.I32Matrix4x2) -> vec4: ... + + def __mod__(self, other: Union[glm_typing.I32Vector3, glm_typing.Number]) -> ivec3: ... + def __rmod__(self, other: Union[glm_typing.I32Vector3, glm_typing.Number]) -> ivec3: ... + def __imod__(self, other: Union[glm_typing.I32Vector3, glm_typing.Number]) -> ivec3: ... + + def __pow__(self, other: Union[glm_typing.I32Vector3, glm_typing.Number]) -> ivec3: ... + def __rpow__(self, other: Union[glm_typing.I32Vector3, glm_typing.Number]) -> ivec3: ... + def __ipow__(self, other: Union[glm_typing.I32Vector3, glm_typing.Number]) -> ivec3: ... + + def __truediv__(self, other: Union[glm_typing.I32Vector3, glm_typing.Number]) -> ivec3: ... + def __rtruediv__(self, other: Union[glm_typing.I32Vector3, glm_typing.Number]) -> ivec3: ... + def __itruediv__(self, other: Union[glm_typing.I32Vector3, glm_typing.Number]) -> ivec3: ... + + def __floordiv__(self, other: Union[glm_typing.I32Vector3, glm_typing.Number]) -> ivec3: ... + def __rfloordiv__(self, other: Union[glm_typing.I32Vector3, glm_typing.Number]) -> ivec3: ... + def __ifloordiv__(self, other: Union[glm_typing.I32Vector3, glm_typing.Number]) -> ivec3: ... + + @overload + def __matmul__(self, other: glm_typing.Number) -> ivec3: ... + @overload + def __matmul__(self, other: glm_typing.I32Vector3) -> ivec3: ... + @overload + def __matmul__(self, other: glm_typing.I32Matrix2x2) -> vec2: ... + @overload + def __matmul__(self, other: glm_typing.I32Matrix3x2) -> vec3: ... + @overload + def __matmul__(self, other: glm_typing.I32Matrix4x2) -> vec4: ... + @overload + def __rmatmul__(self, other: glm_typing.Number) -> ivec3: ... + @overload + def __rmatmul__(self, other: glm_typing.I32Vector3) -> ivec3: ... + @overload + def __rmatmul__(self, other: glm_typing.I32Matrix2x2) -> vec2: ... + @overload + def __rmatmul__(self, other: glm_typing.I32Matrix3x2) -> vec3: ... + @overload + def __rmatmul__(self, other: glm_typing.I32Matrix4x2) -> vec4: ... + @overload + def __imatmul__(self, other: glm_typing.Number) -> ivec3: ... + @overload + def __imatmul__(self, other: glm_typing.I32Vector3) -> ivec3: ... + @overload + def __imatmul__(self, other: glm_typing.I32Matrix2x2) -> vec2: ... + @overload + def __imatmul__(self, other: glm_typing.I32Matrix3x2) -> vec3: ... + @overload + def __imatmul__(self, other: glm_typing.I32Matrix4x2) -> vec4: ... + + def __divmod__(self, other: ivec3) -> Tuple[ivec3, ivec3]: ... + + +i32vec4 = ivec4 + +class ivec4: + x: int + y: int + z: int + w: int + + + @property + def xy(self) -> i32vec2: ... + @xy.setter + def xy(self, value: glm_typing.I32Vector2) -> None: ... + + @property + def yx(self) -> i32vec2: ... + @yx.setter + def yx(self, value: glm_typing.I32Vector2) -> None: ... + + @property + def xz(self) -> i32vec2: ... + @xz.setter + def xz(self, value: glm_typing.I32Vector2) -> None: ... + + @property + def zx(self) -> i32vec2: ... + @zx.setter + def zx(self, value: glm_typing.I32Vector2) -> None: ... + + @property + def xw(self) -> i32vec2: ... + @xw.setter + def xw(self, value: glm_typing.I32Vector2) -> None: ... + + @property + def wx(self) -> i32vec2: ... + @wx.setter + def wx(self, value: glm_typing.I32Vector2) -> None: ... + + @property + def yz(self) -> i32vec2: ... + @yz.setter + def yz(self, value: glm_typing.I32Vector2) -> None: ... + + @property + def zy(self) -> i32vec2: ... + @zy.setter + def zy(self, value: glm_typing.I32Vector2) -> None: ... + + @property + def yw(self) -> i32vec2: ... + @yw.setter + def yw(self, value: glm_typing.I32Vector2) -> None: ... + + @property + def wy(self) -> i32vec2: ... + @wy.setter + def wy(self, value: glm_typing.I32Vector2) -> None: ... + + @property + def zw(self) -> i32vec2: ... + @zw.setter + def zw(self, value: glm_typing.I32Vector2) -> None: ... + + @property + def wz(self) -> i32vec2: ... + @wz.setter + def wz(self, value: glm_typing.I32Vector2) -> None: ... + + @property + def xyz(self) -> i32vec3: ... + @xyz.setter + def xyz(self, value: glm_typing.I32Vector3) -> None: ... + + @property + def xzy(self) -> i32vec3: ... + @xzy.setter + def xzy(self, value: glm_typing.I32Vector3) -> None: ... + + @property + def yxz(self) -> i32vec3: ... + @yxz.setter + def yxz(self, value: glm_typing.I32Vector3) -> None: ... + + @property + def yzx(self) -> i32vec3: ... + @yzx.setter + def yzx(self, value: glm_typing.I32Vector3) -> None: ... + + @property + def zxy(self) -> i32vec3: ... + @zxy.setter + def zxy(self, value: glm_typing.I32Vector3) -> None: ... + + @property + def zyx(self) -> i32vec3: ... + @zyx.setter + def zyx(self, value: glm_typing.I32Vector3) -> None: ... + + @property + def xyw(self) -> i32vec3: ... + @xyw.setter + def xyw(self, value: glm_typing.I32Vector3) -> None: ... + + @property + def xwy(self) -> i32vec3: ... + @xwy.setter + def xwy(self, value: glm_typing.I32Vector3) -> None: ... + + @property + def yxw(self) -> i32vec3: ... + @yxw.setter + def yxw(self, value: glm_typing.I32Vector3) -> None: ... + + @property + def ywx(self) -> i32vec3: ... + @ywx.setter + def ywx(self, value: glm_typing.I32Vector3) -> None: ... + + @property + def wxy(self) -> i32vec3: ... + @wxy.setter + def wxy(self, value: glm_typing.I32Vector3) -> None: ... + + @property + def wyx(self) -> i32vec3: ... + @wyx.setter + def wyx(self, value: glm_typing.I32Vector3) -> None: ... + + @property + def xzw(self) -> i32vec3: ... + @xzw.setter + def xzw(self, value: glm_typing.I32Vector3) -> None: ... + + @property + def xwz(self) -> i32vec3: ... + @xwz.setter + def xwz(self, value: glm_typing.I32Vector3) -> None: ... + + @property + def zxw(self) -> i32vec3: ... + @zxw.setter + def zxw(self, value: glm_typing.I32Vector3) -> None: ... + + @property + def zwx(self) -> i32vec3: ... + @zwx.setter + def zwx(self, value: glm_typing.I32Vector3) -> None: ... + + @property + def wxz(self) -> i32vec3: ... + @wxz.setter + def wxz(self, value: glm_typing.I32Vector3) -> None: ... + + @property + def wzx(self) -> i32vec3: ... + @wzx.setter + def wzx(self, value: glm_typing.I32Vector3) -> None: ... + + @property + def yzw(self) -> i32vec3: ... + @yzw.setter + def yzw(self, value: glm_typing.I32Vector3) -> None: ... + + @property + def ywz(self) -> i32vec3: ... + @ywz.setter + def ywz(self, value: glm_typing.I32Vector3) -> None: ... + + @property + def zyw(self) -> i32vec3: ... + @zyw.setter + def zyw(self, value: glm_typing.I32Vector3) -> None: ... + + @property + def zwy(self) -> i32vec3: ... + @zwy.setter + def zwy(self, value: glm_typing.I32Vector3) -> None: ... + + @property + def wyz(self) -> i32vec3: ... + @wyz.setter + def wyz(self, value: glm_typing.I32Vector3) -> None: ... + + @property + def wzy(self) -> i32vec3: ... + @wzy.setter + def wzy(self, value: glm_typing.I32Vector3) -> None: ... + + @property + def xyzw(self) -> i32vec4: ... + @xyzw.setter + def xyzw(self, value: glm_typing.I32Vector4) -> None: ... + + @property + def xywz(self) -> i32vec4: ... + @xywz.setter + def xywz(self, value: glm_typing.I32Vector4) -> None: ... + + @property + def xzyw(self) -> i32vec4: ... + @xzyw.setter + def xzyw(self, value: glm_typing.I32Vector4) -> None: ... + + @property + def xzwy(self) -> i32vec4: ... + @xzwy.setter + def xzwy(self, value: glm_typing.I32Vector4) -> None: ... + + @property + def xwyz(self) -> i32vec4: ... + @xwyz.setter + def xwyz(self, value: glm_typing.I32Vector4) -> None: ... + + @property + def xwzy(self) -> i32vec4: ... + @xwzy.setter + def xwzy(self, value: glm_typing.I32Vector4) -> None: ... + + @property + def yxzw(self) -> i32vec4: ... + @yxzw.setter + def yxzw(self, value: glm_typing.I32Vector4) -> None: ... + + @property + def yxwz(self) -> i32vec4: ... + @yxwz.setter + def yxwz(self, value: glm_typing.I32Vector4) -> None: ... + + @property + def yzxw(self) -> i32vec4: ... + @yzxw.setter + def yzxw(self, value: glm_typing.I32Vector4) -> None: ... + + @property + def yzwx(self) -> i32vec4: ... + @yzwx.setter + def yzwx(self, value: glm_typing.I32Vector4) -> None: ... + + @property + def ywxz(self) -> i32vec4: ... + @ywxz.setter + def ywxz(self, value: glm_typing.I32Vector4) -> None: ... + + @property + def ywzx(self) -> i32vec4: ... + @ywzx.setter + def ywzx(self, value: glm_typing.I32Vector4) -> None: ... + + @property + def zxyw(self) -> i32vec4: ... + @zxyw.setter + def zxyw(self, value: glm_typing.I32Vector4) -> None: ... + + @property + def zxwy(self) -> i32vec4: ... + @zxwy.setter + def zxwy(self, value: glm_typing.I32Vector4) -> None: ... + + @property + def zyxw(self) -> i32vec4: ... + @zyxw.setter + def zyxw(self, value: glm_typing.I32Vector4) -> None: ... + + @property + def zywx(self) -> i32vec4: ... + @zywx.setter + def zywx(self, value: glm_typing.I32Vector4) -> None: ... + + @property + def zwxy(self) -> i32vec4: ... + @zwxy.setter + def zwxy(self, value: glm_typing.I32Vector4) -> None: ... + + @property + def zwyx(self) -> i32vec4: ... + @zwyx.setter + def zwyx(self, value: glm_typing.I32Vector4) -> None: ... + + @property + def wxyz(self) -> i32vec4: ... + @wxyz.setter + def wxyz(self, value: glm_typing.I32Vector4) -> None: ... + + @property + def wxzy(self) -> i32vec4: ... + @wxzy.setter + def wxzy(self, value: glm_typing.I32Vector4) -> None: ... + + @property + def wyxz(self) -> i32vec4: ... + @wyxz.setter + def wyxz(self, value: glm_typing.I32Vector4) -> None: ... + + @property + def wyzx(self) -> i32vec4: ... + @wyzx.setter + def wyzx(self, value: glm_typing.I32Vector4) -> None: ... + + @property + def wzxy(self) -> i32vec4: ... + @wzxy.setter + def wzxy(self, value: glm_typing.I32Vector4) -> None: ... + + @property + def wzyx(self) -> i32vec4: ... + @wzyx.setter + def wzyx(self, value: glm_typing.I32Vector4) -> None: ... + + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: glm_typing.Number, y: glm_typing.Number, z: glm_typing.Number, w: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: glm_typing.AnyAnyVector4) -> None: ... + + def __len__(self) -> Literal[4]: ... + def __getitem__(self, index: int) -> int: ... + def __setitem__(self, index: int, value: glm_typing.Number) -> None: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[int, None, None]: ... + + def __neg__(self) -> ivec4: ... + def __pos__(self) -> ivec4: ... + def __abs__(self) -> ivec4: ... + + def __lt__(self, other: Any) -> bool: ... + def __le__(self, other: Any) -> bool: ... + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + def __ge__(self, other: Any) -> bool: ... + def __gt__(self, other: Any) -> bool: ... + + def to_list(self) -> List[int]: ... + def to_tuple(self) -> Tuple[int, int, int, int]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> ivec4: ... + + def __add__(self, other: Union[glm_typing.I32Vector4, glm_typing.Number]) -> ivec4: ... + def __radd__(self, other: Union[glm_typing.I32Vector4, glm_typing.Number]) -> ivec4: ... + def __iadd__(self, other: Union[glm_typing.I32Vector4, glm_typing.Number]) -> ivec4: ... + + def __sub__(self, other: Union[glm_typing.I32Vector4, glm_typing.Number]) -> ivec4: ... + def __rsub__(self, other: Union[glm_typing.I32Vector4, glm_typing.Number]) -> ivec4: ... + def __isub__(self, other: Union[glm_typing.I32Vector4, glm_typing.Number]) -> ivec4: ... + + @overload + def __mul__(self, other: glm_typing.Number) -> ivec4: ... + @overload + def __mul__(self, other: glm_typing.I32Vector4) -> ivec4: ... + @overload + def __mul__(self, other: glm_typing.I32Matrix2x2) -> vec2: ... + @overload + def __mul__(self, other: glm_typing.I32Matrix3x2) -> vec3: ... + @overload + def __mul__(self, other: glm_typing.I32Matrix4x2) -> vec4: ... + @overload + def __rmul__(self, other: glm_typing.Number) -> ivec4: ... + @overload + def __rmul__(self, other: glm_typing.I32Vector4) -> ivec4: ... + @overload + def __rmul__(self, other: glm_typing.I32Matrix2x2) -> vec2: ... + @overload + def __rmul__(self, other: glm_typing.I32Matrix3x2) -> vec3: ... + @overload + def __rmul__(self, other: glm_typing.I32Matrix4x2) -> vec4: ... + @overload + def __imul__(self, other: glm_typing.Number) -> ivec4: ... + @overload + def __imul__(self, other: glm_typing.I32Vector4) -> ivec4: ... + @overload + def __imul__(self, other: glm_typing.I32Matrix2x2) -> vec2: ... + @overload + def __imul__(self, other: glm_typing.I32Matrix3x2) -> vec3: ... + @overload + def __imul__(self, other: glm_typing.I32Matrix4x2) -> vec4: ... + + def __mod__(self, other: Union[glm_typing.I32Vector4, glm_typing.Number]) -> ivec4: ... + def __rmod__(self, other: Union[glm_typing.I32Vector4, glm_typing.Number]) -> ivec4: ... + def __imod__(self, other: Union[glm_typing.I32Vector4, glm_typing.Number]) -> ivec4: ... + + def __pow__(self, other: Union[glm_typing.I32Vector4, glm_typing.Number]) -> ivec4: ... + def __rpow__(self, other: Union[glm_typing.I32Vector4, glm_typing.Number]) -> ivec4: ... + def __ipow__(self, other: Union[glm_typing.I32Vector4, glm_typing.Number]) -> ivec4: ... + + def __truediv__(self, other: Union[glm_typing.I32Vector4, glm_typing.Number]) -> ivec4: ... + def __rtruediv__(self, other: Union[glm_typing.I32Vector4, glm_typing.Number]) -> ivec4: ... + def __itruediv__(self, other: Union[glm_typing.I32Vector4, glm_typing.Number]) -> ivec4: ... + + def __floordiv__(self, other: Union[glm_typing.I32Vector4, glm_typing.Number]) -> ivec4: ... + def __rfloordiv__(self, other: Union[glm_typing.I32Vector4, glm_typing.Number]) -> ivec4: ... + def __ifloordiv__(self, other: Union[glm_typing.I32Vector4, glm_typing.Number]) -> ivec4: ... + + @overload + def __matmul__(self, other: glm_typing.Number) -> ivec4: ... + @overload + def __matmul__(self, other: glm_typing.I32Vector4) -> ivec4: ... + @overload + def __matmul__(self, other: glm_typing.I32Matrix2x2) -> vec2: ... + @overload + def __matmul__(self, other: glm_typing.I32Matrix3x2) -> vec3: ... + @overload + def __matmul__(self, other: glm_typing.I32Matrix4x2) -> vec4: ... + @overload + def __rmatmul__(self, other: glm_typing.Number) -> ivec4: ... + @overload + def __rmatmul__(self, other: glm_typing.I32Vector4) -> ivec4: ... + @overload + def __rmatmul__(self, other: glm_typing.I32Matrix2x2) -> vec2: ... + @overload + def __rmatmul__(self, other: glm_typing.I32Matrix3x2) -> vec3: ... + @overload + def __rmatmul__(self, other: glm_typing.I32Matrix4x2) -> vec4: ... + @overload + def __imatmul__(self, other: glm_typing.Number) -> ivec4: ... + @overload + def __imatmul__(self, other: glm_typing.I32Vector4) -> ivec4: ... + @overload + def __imatmul__(self, other: glm_typing.I32Matrix2x2) -> vec2: ... + @overload + def __imatmul__(self, other: glm_typing.I32Matrix3x2) -> vec3: ... + @overload + def __imatmul__(self, other: glm_typing.I32Matrix4x2) -> vec4: ... + + def __divmod__(self, other: ivec4) -> Tuple[ivec4, ivec4]: ... + + + +class mvec2: + x: float + y: float + + + @property + def xy(self) -> f32vec2: ... + @xy.setter + def xy(self, value: glm_typing.F32Vector2) -> None: ... + + @property + def yx(self) -> f32vec2: ... + @yx.setter + def yx(self, value: glm_typing.F32Vector2) -> None: ... + + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: glm_typing.Number, y: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: Union[glm_typing.AnyAnyVector2, glm_typing.FAnyVector3, glm_typing.FAnyVector4]) -> None: ... + + def __len__(self) -> Literal[2]: ... + def __getitem__(self, index: int) -> float: ... + def __setitem__(self, index: int, value: glm_typing.Number) -> None: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[float, None, None]: ... + + def __neg__(self) -> mvec2: ... + def __pos__(self) -> mvec2: ... + def __abs__(self) -> mvec2: ... + + def __lt__(self, other: Any) -> bool: ... + def __le__(self, other: Any) -> bool: ... + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + def __ge__(self, other: Any) -> bool: ... + def __gt__(self, other: Any) -> bool: ... + + def to_list(self) -> List[float]: ... + def to_tuple(self) -> Tuple[float, float]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> mvec2: ... + + def __add__(self, other: Union[glm_typing.F32Vector2, glm_typing.Number]) -> mvec2: ... + def __radd__(self, other: Union[glm_typing.F32Vector2, glm_typing.Number]) -> mvec2: ... + def __iadd__(self, other: Union[glm_typing.F32Vector2, glm_typing.Number]) -> mvec2: ... + + def __sub__(self, other: Union[glm_typing.F32Vector2, glm_typing.Number]) -> mvec2: ... + def __rsub__(self, other: Union[glm_typing.F32Vector2, glm_typing.Number]) -> mvec2: ... + def __isub__(self, other: Union[glm_typing.F32Vector2, glm_typing.Number]) -> mvec2: ... + + @overload + def __mul__(self, other: glm_typing.Number) -> mvec2: ... + @overload + def __mul__(self, other: glm_typing.F32Vector2) -> mvec2: ... + @overload + def __mul__(self, other: glm_typing.F32Matrix2x2) -> vec2: ... + @overload + def __mul__(self, other: glm_typing.F32Matrix3x2) -> vec3: ... + @overload + def __mul__(self, other: glm_typing.F32Matrix4x2) -> vec4: ... + @overload + def __rmul__(self, other: glm_typing.Number) -> mvec2: ... + @overload + def __rmul__(self, other: glm_typing.F32Vector2) -> mvec2: ... + @overload + def __rmul__(self, other: glm_typing.F32Matrix2x2) -> vec2: ... + @overload + def __rmul__(self, other: glm_typing.F32Matrix3x2) -> vec3: ... + @overload + def __rmul__(self, other: glm_typing.F32Matrix4x2) -> vec4: ... + @overload + def __imul__(self, other: glm_typing.Number) -> mvec2: ... + @overload + def __imul__(self, other: glm_typing.F32Vector2) -> mvec2: ... + @overload + def __imul__(self, other: glm_typing.F32Matrix2x2) -> vec2: ... + @overload + def __imul__(self, other: glm_typing.F32Matrix3x2) -> vec3: ... + @overload + def __imul__(self, other: glm_typing.F32Matrix4x2) -> vec4: ... + + def __mod__(self, other: Union[glm_typing.F32Vector2, glm_typing.Number]) -> mvec2: ... + def __rmod__(self, other: Union[glm_typing.F32Vector2, glm_typing.Number]) -> mvec2: ... + def __imod__(self, other: Union[glm_typing.F32Vector2, glm_typing.Number]) -> mvec2: ... + + def __pow__(self, other: Union[glm_typing.F32Vector2, glm_typing.Number]) -> mvec2: ... + def __rpow__(self, other: Union[glm_typing.F32Vector2, glm_typing.Number]) -> mvec2: ... + def __ipow__(self, other: Union[glm_typing.F32Vector2, glm_typing.Number]) -> mvec2: ... + + def __truediv__(self, other: Union[glm_typing.F32Vector2, glm_typing.Number]) -> mvec2: ... + def __rtruediv__(self, other: Union[glm_typing.F32Vector2, glm_typing.Number]) -> mvec2: ... + def __itruediv__(self, other: Union[glm_typing.F32Vector2, glm_typing.Number]) -> mvec2: ... + + def __floordiv__(self, other: Union[glm_typing.F32Vector2, glm_typing.Number]) -> mvec2: ... + def __rfloordiv__(self, other: Union[glm_typing.F32Vector2, glm_typing.Number]) -> mvec2: ... + def __ifloordiv__(self, other: Union[glm_typing.F32Vector2, glm_typing.Number]) -> mvec2: ... + + @overload + def __matmul__(self, other: glm_typing.Number) -> mvec2: ... + @overload + def __matmul__(self, other: glm_typing.F32Vector2) -> mvec2: ... + @overload + def __matmul__(self, other: glm_typing.F32Matrix2x2) -> vec2: ... + @overload + def __matmul__(self, other: glm_typing.F32Matrix3x2) -> vec3: ... + @overload + def __matmul__(self, other: glm_typing.F32Matrix4x2) -> vec4: ... + @overload + def __rmatmul__(self, other: glm_typing.Number) -> mvec2: ... + @overload + def __rmatmul__(self, other: glm_typing.F32Vector2) -> mvec2: ... + @overload + def __rmatmul__(self, other: glm_typing.F32Matrix2x2) -> vec2: ... + @overload + def __rmatmul__(self, other: glm_typing.F32Matrix3x2) -> vec3: ... + @overload + def __rmatmul__(self, other: glm_typing.F32Matrix4x2) -> vec4: ... + @overload + def __imatmul__(self, other: glm_typing.Number) -> mvec2: ... + @overload + def __imatmul__(self, other: glm_typing.F32Vector2) -> mvec2: ... + @overload + def __imatmul__(self, other: glm_typing.F32Matrix2x2) -> vec2: ... + @overload + def __imatmul__(self, other: glm_typing.F32Matrix3x2) -> vec3: ... + @overload + def __imatmul__(self, other: glm_typing.F32Matrix4x2) -> vec4: ... + + def __divmod__(self, other: mvec2) -> Tuple[mvec2, mvec2]: ... + + + +class mvec3: + x: float + y: float + z: float + + + @property + def xy(self) -> f32vec2: ... + @xy.setter + def xy(self, value: glm_typing.F32Vector2) -> None: ... + + @property + def yx(self) -> f32vec2: ... + @yx.setter + def yx(self, value: glm_typing.F32Vector2) -> None: ... + + @property + def xz(self) -> f32vec2: ... + @xz.setter + def xz(self, value: glm_typing.F32Vector2) -> None: ... + + @property + def zx(self) -> f32vec2: ... + @zx.setter + def zx(self, value: glm_typing.F32Vector2) -> None: ... + + @property + def yz(self) -> f32vec2: ... + @yz.setter + def yz(self, value: glm_typing.F32Vector2) -> None: ... + + @property + def zy(self) -> f32vec2: ... + @zy.setter + def zy(self, value: glm_typing.F32Vector2) -> None: ... + + @property + def xyz(self) -> f32vec3: ... + @xyz.setter + def xyz(self, value: glm_typing.F32Vector3) -> None: ... + + @property + def xzy(self) -> f32vec3: ... + @xzy.setter + def xzy(self, value: glm_typing.F32Vector3) -> None: ... + + @property + def yxz(self) -> f32vec3: ... + @yxz.setter + def yxz(self, value: glm_typing.F32Vector3) -> None: ... + + @property + def yzx(self) -> f32vec3: ... + @yzx.setter + def yzx(self, value: glm_typing.F32Vector3) -> None: ... + + @property + def zxy(self) -> f32vec3: ... + @zxy.setter + def zxy(self, value: glm_typing.F32Vector3) -> None: ... + + @property + def zyx(self) -> f32vec3: ... + @zyx.setter + def zyx(self, value: glm_typing.F32Vector3) -> None: ... + + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: glm_typing.Number, y: glm_typing.Number, z: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: Union[glm_typing.AnyAnyVector3, glm_typing.FAnyVector4]) -> None: ... + + def __len__(self) -> Literal[3]: ... + def __getitem__(self, index: int) -> float: ... + def __setitem__(self, index: int, value: glm_typing.Number) -> None: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[float, None, None]: ... + + def __neg__(self) -> mvec3: ... + def __pos__(self) -> mvec3: ... + def __abs__(self) -> mvec3: ... + + def __lt__(self, other: Any) -> bool: ... + def __le__(self, other: Any) -> bool: ... + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + def __ge__(self, other: Any) -> bool: ... + def __gt__(self, other: Any) -> bool: ... + + def to_list(self) -> List[float]: ... + def to_tuple(self) -> Tuple[float, float, float]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> mvec3: ... + + def __add__(self, other: Union[glm_typing.F32Vector3, glm_typing.Number]) -> mvec3: ... + def __radd__(self, other: Union[glm_typing.F32Vector3, glm_typing.Number]) -> mvec3: ... + def __iadd__(self, other: Union[glm_typing.F32Vector3, glm_typing.Number]) -> mvec3: ... + + def __sub__(self, other: Union[glm_typing.F32Vector3, glm_typing.Number]) -> mvec3: ... + def __rsub__(self, other: Union[glm_typing.F32Vector3, glm_typing.Number]) -> mvec3: ... + def __isub__(self, other: Union[glm_typing.F32Vector3, glm_typing.Number]) -> mvec3: ... + + @overload + def __mul__(self, other: glm_typing.Number) -> mvec3: ... + @overload + def __mul__(self, other: glm_typing.F32Vector3) -> mvec3: ... + @overload + def __mul__(self, other: glm_typing.F32Matrix2x2) -> vec2: ... + @overload + def __mul__(self, other: glm_typing.F32Matrix3x2) -> vec3: ... + @overload + def __mul__(self, other: glm_typing.F32Matrix4x2) -> vec4: ... + @overload + def __rmul__(self, other: glm_typing.Number) -> mvec3: ... + @overload + def __rmul__(self, other: glm_typing.F32Vector3) -> mvec3: ... + @overload + def __rmul__(self, other: glm_typing.F32Matrix2x2) -> vec2: ... + @overload + def __rmul__(self, other: glm_typing.F32Matrix3x2) -> vec3: ... + @overload + def __rmul__(self, other: glm_typing.F32Matrix4x2) -> vec4: ... + @overload + def __imul__(self, other: glm_typing.Number) -> mvec3: ... + @overload + def __imul__(self, other: glm_typing.F32Vector3) -> mvec3: ... + @overload + def __imul__(self, other: glm_typing.F32Matrix2x2) -> vec2: ... + @overload + def __imul__(self, other: glm_typing.F32Matrix3x2) -> vec3: ... + @overload + def __imul__(self, other: glm_typing.F32Matrix4x2) -> vec4: ... + + def __mod__(self, other: Union[glm_typing.F32Vector3, glm_typing.Number]) -> mvec3: ... + def __rmod__(self, other: Union[glm_typing.F32Vector3, glm_typing.Number]) -> mvec3: ... + def __imod__(self, other: Union[glm_typing.F32Vector3, glm_typing.Number]) -> mvec3: ... + + def __pow__(self, other: Union[glm_typing.F32Vector3, glm_typing.Number]) -> mvec3: ... + def __rpow__(self, other: Union[glm_typing.F32Vector3, glm_typing.Number]) -> mvec3: ... + def __ipow__(self, other: Union[glm_typing.F32Vector3, glm_typing.Number]) -> mvec3: ... + + def __truediv__(self, other: Union[glm_typing.F32Vector3, glm_typing.Number]) -> mvec3: ... + def __rtruediv__(self, other: Union[glm_typing.F32Vector3, glm_typing.Number]) -> mvec3: ... + def __itruediv__(self, other: Union[glm_typing.F32Vector3, glm_typing.Number]) -> mvec3: ... + + def __floordiv__(self, other: Union[glm_typing.F32Vector3, glm_typing.Number]) -> mvec3: ... + def __rfloordiv__(self, other: Union[glm_typing.F32Vector3, glm_typing.Number]) -> mvec3: ... + def __ifloordiv__(self, other: Union[glm_typing.F32Vector3, glm_typing.Number]) -> mvec3: ... + + @overload + def __matmul__(self, other: glm_typing.Number) -> mvec3: ... + @overload + def __matmul__(self, other: glm_typing.F32Vector3) -> mvec3: ... + @overload + def __matmul__(self, other: glm_typing.F32Matrix2x2) -> vec2: ... + @overload + def __matmul__(self, other: glm_typing.F32Matrix3x2) -> vec3: ... + @overload + def __matmul__(self, other: glm_typing.F32Matrix4x2) -> vec4: ... + @overload + def __rmatmul__(self, other: glm_typing.Number) -> mvec3: ... + @overload + def __rmatmul__(self, other: glm_typing.F32Vector3) -> mvec3: ... + @overload + def __rmatmul__(self, other: glm_typing.F32Matrix2x2) -> vec2: ... + @overload + def __rmatmul__(self, other: glm_typing.F32Matrix3x2) -> vec3: ... + @overload + def __rmatmul__(self, other: glm_typing.F32Matrix4x2) -> vec4: ... + @overload + def __imatmul__(self, other: glm_typing.Number) -> mvec3: ... + @overload + def __imatmul__(self, other: glm_typing.F32Vector3) -> mvec3: ... + @overload + def __imatmul__(self, other: glm_typing.F32Matrix2x2) -> vec2: ... + @overload + def __imatmul__(self, other: glm_typing.F32Matrix3x2) -> vec3: ... + @overload + def __imatmul__(self, other: glm_typing.F32Matrix4x2) -> vec4: ... + + def __divmod__(self, other: mvec3) -> Tuple[mvec3, mvec3]: ... + + + +class mvec4: + x: float + y: float + z: float + w: float + + + @property + def xy(self) -> f32vec2: ... + @xy.setter + def xy(self, value: glm_typing.F32Vector2) -> None: ... + + @property + def yx(self) -> f32vec2: ... + @yx.setter + def yx(self, value: glm_typing.F32Vector2) -> None: ... + + @property + def xz(self) -> f32vec2: ... + @xz.setter + def xz(self, value: glm_typing.F32Vector2) -> None: ... + + @property + def zx(self) -> f32vec2: ... + @zx.setter + def zx(self, value: glm_typing.F32Vector2) -> None: ... + + @property + def xw(self) -> f32vec2: ... + @xw.setter + def xw(self, value: glm_typing.F32Vector2) -> None: ... + + @property + def wx(self) -> f32vec2: ... + @wx.setter + def wx(self, value: glm_typing.F32Vector2) -> None: ... + + @property + def yz(self) -> f32vec2: ... + @yz.setter + def yz(self, value: glm_typing.F32Vector2) -> None: ... + + @property + def zy(self) -> f32vec2: ... + @zy.setter + def zy(self, value: glm_typing.F32Vector2) -> None: ... + + @property + def yw(self) -> f32vec2: ... + @yw.setter + def yw(self, value: glm_typing.F32Vector2) -> None: ... + + @property + def wy(self) -> f32vec2: ... + @wy.setter + def wy(self, value: glm_typing.F32Vector2) -> None: ... + + @property + def zw(self) -> f32vec2: ... + @zw.setter + def zw(self, value: glm_typing.F32Vector2) -> None: ... + + @property + def wz(self) -> f32vec2: ... + @wz.setter + def wz(self, value: glm_typing.F32Vector2) -> None: ... + + @property + def xyz(self) -> f32vec3: ... + @xyz.setter + def xyz(self, value: glm_typing.F32Vector3) -> None: ... + + @property + def xzy(self) -> f32vec3: ... + @xzy.setter + def xzy(self, value: glm_typing.F32Vector3) -> None: ... + + @property + def yxz(self) -> f32vec3: ... + @yxz.setter + def yxz(self, value: glm_typing.F32Vector3) -> None: ... + + @property + def yzx(self) -> f32vec3: ... + @yzx.setter + def yzx(self, value: glm_typing.F32Vector3) -> None: ... + + @property + def zxy(self) -> f32vec3: ... + @zxy.setter + def zxy(self, value: glm_typing.F32Vector3) -> None: ... + + @property + def zyx(self) -> f32vec3: ... + @zyx.setter + def zyx(self, value: glm_typing.F32Vector3) -> None: ... + + @property + def xyw(self) -> f32vec3: ... + @xyw.setter + def xyw(self, value: glm_typing.F32Vector3) -> None: ... + + @property + def xwy(self) -> f32vec3: ... + @xwy.setter + def xwy(self, value: glm_typing.F32Vector3) -> None: ... + + @property + def yxw(self) -> f32vec3: ... + @yxw.setter + def yxw(self, value: glm_typing.F32Vector3) -> None: ... + + @property + def ywx(self) -> f32vec3: ... + @ywx.setter + def ywx(self, value: glm_typing.F32Vector3) -> None: ... + + @property + def wxy(self) -> f32vec3: ... + @wxy.setter + def wxy(self, value: glm_typing.F32Vector3) -> None: ... + + @property + def wyx(self) -> f32vec3: ... + @wyx.setter + def wyx(self, value: glm_typing.F32Vector3) -> None: ... + + @property + def xzw(self) -> f32vec3: ... + @xzw.setter + def xzw(self, value: glm_typing.F32Vector3) -> None: ... + + @property + def xwz(self) -> f32vec3: ... + @xwz.setter + def xwz(self, value: glm_typing.F32Vector3) -> None: ... + + @property + def zxw(self) -> f32vec3: ... + @zxw.setter + def zxw(self, value: glm_typing.F32Vector3) -> None: ... + + @property + def zwx(self) -> f32vec3: ... + @zwx.setter + def zwx(self, value: glm_typing.F32Vector3) -> None: ... + + @property + def wxz(self) -> f32vec3: ... + @wxz.setter + def wxz(self, value: glm_typing.F32Vector3) -> None: ... + + @property + def wzx(self) -> f32vec3: ... + @wzx.setter + def wzx(self, value: glm_typing.F32Vector3) -> None: ... + + @property + def yzw(self) -> f32vec3: ... + @yzw.setter + def yzw(self, value: glm_typing.F32Vector3) -> None: ... + + @property + def ywz(self) -> f32vec3: ... + @ywz.setter + def ywz(self, value: glm_typing.F32Vector3) -> None: ... + + @property + def zyw(self) -> f32vec3: ... + @zyw.setter + def zyw(self, value: glm_typing.F32Vector3) -> None: ... + + @property + def zwy(self) -> f32vec3: ... + @zwy.setter + def zwy(self, value: glm_typing.F32Vector3) -> None: ... + + @property + def wyz(self) -> f32vec3: ... + @wyz.setter + def wyz(self, value: glm_typing.F32Vector3) -> None: ... + + @property + def wzy(self) -> f32vec3: ... + @wzy.setter + def wzy(self, value: glm_typing.F32Vector3) -> None: ... + + @property + def xyzw(self) -> f32vec4: ... + @xyzw.setter + def xyzw(self, value: glm_typing.F32Vector4) -> None: ... + + @property + def xywz(self) -> f32vec4: ... + @xywz.setter + def xywz(self, value: glm_typing.F32Vector4) -> None: ... + + @property + def xzyw(self) -> f32vec4: ... + @xzyw.setter + def xzyw(self, value: glm_typing.F32Vector4) -> None: ... + + @property + def xzwy(self) -> f32vec4: ... + @xzwy.setter + def xzwy(self, value: glm_typing.F32Vector4) -> None: ... + + @property + def xwyz(self) -> f32vec4: ... + @xwyz.setter + def xwyz(self, value: glm_typing.F32Vector4) -> None: ... + + @property + def xwzy(self) -> f32vec4: ... + @xwzy.setter + def xwzy(self, value: glm_typing.F32Vector4) -> None: ... + + @property + def yxzw(self) -> f32vec4: ... + @yxzw.setter + def yxzw(self, value: glm_typing.F32Vector4) -> None: ... + + @property + def yxwz(self) -> f32vec4: ... + @yxwz.setter + def yxwz(self, value: glm_typing.F32Vector4) -> None: ... + + @property + def yzxw(self) -> f32vec4: ... + @yzxw.setter + def yzxw(self, value: glm_typing.F32Vector4) -> None: ... + + @property + def yzwx(self) -> f32vec4: ... + @yzwx.setter + def yzwx(self, value: glm_typing.F32Vector4) -> None: ... + + @property + def ywxz(self) -> f32vec4: ... + @ywxz.setter + def ywxz(self, value: glm_typing.F32Vector4) -> None: ... + + @property + def ywzx(self) -> f32vec4: ... + @ywzx.setter + def ywzx(self, value: glm_typing.F32Vector4) -> None: ... + + @property + def zxyw(self) -> f32vec4: ... + @zxyw.setter + def zxyw(self, value: glm_typing.F32Vector4) -> None: ... + + @property + def zxwy(self) -> f32vec4: ... + @zxwy.setter + def zxwy(self, value: glm_typing.F32Vector4) -> None: ... + + @property + def zyxw(self) -> f32vec4: ... + @zyxw.setter + def zyxw(self, value: glm_typing.F32Vector4) -> None: ... + + @property + def zywx(self) -> f32vec4: ... + @zywx.setter + def zywx(self, value: glm_typing.F32Vector4) -> None: ... + + @property + def zwxy(self) -> f32vec4: ... + @zwxy.setter + def zwxy(self, value: glm_typing.F32Vector4) -> None: ... + + @property + def zwyx(self) -> f32vec4: ... + @zwyx.setter + def zwyx(self, value: glm_typing.F32Vector4) -> None: ... + + @property + def wxyz(self) -> f32vec4: ... + @wxyz.setter + def wxyz(self, value: glm_typing.F32Vector4) -> None: ... + + @property + def wxzy(self) -> f32vec4: ... + @wxzy.setter + def wxzy(self, value: glm_typing.F32Vector4) -> None: ... + + @property + def wyxz(self) -> f32vec4: ... + @wyxz.setter + def wyxz(self, value: glm_typing.F32Vector4) -> None: ... + + @property + def wyzx(self) -> f32vec4: ... + @wyzx.setter + def wyzx(self, value: glm_typing.F32Vector4) -> None: ... + + @property + def wzxy(self) -> f32vec4: ... + @wzxy.setter + def wzxy(self, value: glm_typing.F32Vector4) -> None: ... + + @property + def wzyx(self) -> f32vec4: ... + @wzyx.setter + def wzyx(self, value: glm_typing.F32Vector4) -> None: ... + + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: glm_typing.Number, y: glm_typing.Number, z: glm_typing.Number, w: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: glm_typing.AnyAnyVector4) -> None: ... + + def __len__(self) -> Literal[4]: ... + def __getitem__(self, index: int) -> float: ... + def __setitem__(self, index: int, value: glm_typing.Number) -> None: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[float, None, None]: ... + + def __neg__(self) -> mvec4: ... + def __pos__(self) -> mvec4: ... + def __abs__(self) -> mvec4: ... + + def __lt__(self, other: Any) -> bool: ... + def __le__(self, other: Any) -> bool: ... + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + def __ge__(self, other: Any) -> bool: ... + def __gt__(self, other: Any) -> bool: ... + + def to_list(self) -> List[float]: ... + def to_tuple(self) -> Tuple[float, float, float, float]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> mvec4: ... + + def __add__(self, other: Union[glm_typing.F32Vector4, glm_typing.Number]) -> mvec4: ... + def __radd__(self, other: Union[glm_typing.F32Vector4, glm_typing.Number]) -> mvec4: ... + def __iadd__(self, other: Union[glm_typing.F32Vector4, glm_typing.Number]) -> mvec4: ... + + def __sub__(self, other: Union[glm_typing.F32Vector4, glm_typing.Number]) -> mvec4: ... + def __rsub__(self, other: Union[glm_typing.F32Vector4, glm_typing.Number]) -> mvec4: ... + def __isub__(self, other: Union[glm_typing.F32Vector4, glm_typing.Number]) -> mvec4: ... + + @overload + def __mul__(self, other: glm_typing.Number) -> mvec4: ... + @overload + def __mul__(self, other: glm_typing.F32Vector4) -> mvec4: ... + @overload + def __mul__(self, other: glm_typing.F32Matrix2x2) -> vec2: ... + @overload + def __mul__(self, other: glm_typing.F32Matrix3x2) -> vec3: ... + @overload + def __mul__(self, other: glm_typing.F32Matrix4x2) -> vec4: ... + @overload + def __rmul__(self, other: glm_typing.Number) -> mvec4: ... + @overload + def __rmul__(self, other: glm_typing.F32Vector4) -> mvec4: ... + @overload + def __rmul__(self, other: glm_typing.F32Matrix2x2) -> vec2: ... + @overload + def __rmul__(self, other: glm_typing.F32Matrix3x2) -> vec3: ... + @overload + def __rmul__(self, other: glm_typing.F32Matrix4x2) -> vec4: ... + @overload + def __imul__(self, other: glm_typing.Number) -> mvec4: ... + @overload + def __imul__(self, other: glm_typing.F32Vector4) -> mvec4: ... + @overload + def __imul__(self, other: glm_typing.F32Matrix2x2) -> vec2: ... + @overload + def __imul__(self, other: glm_typing.F32Matrix3x2) -> vec3: ... + @overload + def __imul__(self, other: glm_typing.F32Matrix4x2) -> vec4: ... + + def __mod__(self, other: Union[glm_typing.F32Vector4, glm_typing.Number]) -> mvec4: ... + def __rmod__(self, other: Union[glm_typing.F32Vector4, glm_typing.Number]) -> mvec4: ... + def __imod__(self, other: Union[glm_typing.F32Vector4, glm_typing.Number]) -> mvec4: ... + + def __pow__(self, other: Union[glm_typing.F32Vector4, glm_typing.Number]) -> mvec4: ... + def __rpow__(self, other: Union[glm_typing.F32Vector4, glm_typing.Number]) -> mvec4: ... + def __ipow__(self, other: Union[glm_typing.F32Vector4, glm_typing.Number]) -> mvec4: ... + + def __truediv__(self, other: Union[glm_typing.F32Vector4, glm_typing.Number]) -> mvec4: ... + def __rtruediv__(self, other: Union[glm_typing.F32Vector4, glm_typing.Number]) -> mvec4: ... + def __itruediv__(self, other: Union[glm_typing.F32Vector4, glm_typing.Number]) -> mvec4: ... + + def __floordiv__(self, other: Union[glm_typing.F32Vector4, glm_typing.Number]) -> mvec4: ... + def __rfloordiv__(self, other: Union[glm_typing.F32Vector4, glm_typing.Number]) -> mvec4: ... + def __ifloordiv__(self, other: Union[glm_typing.F32Vector4, glm_typing.Number]) -> mvec4: ... + + @overload + def __matmul__(self, other: glm_typing.Number) -> mvec4: ... + @overload + def __matmul__(self, other: glm_typing.F32Vector4) -> mvec4: ... + @overload + def __matmul__(self, other: glm_typing.F32Matrix2x2) -> vec2: ... + @overload + def __matmul__(self, other: glm_typing.F32Matrix3x2) -> vec3: ... + @overload + def __matmul__(self, other: glm_typing.F32Matrix4x2) -> vec4: ... + @overload + def __rmatmul__(self, other: glm_typing.Number) -> mvec4: ... + @overload + def __rmatmul__(self, other: glm_typing.F32Vector4) -> mvec4: ... + @overload + def __rmatmul__(self, other: glm_typing.F32Matrix2x2) -> vec2: ... + @overload + def __rmatmul__(self, other: glm_typing.F32Matrix3x2) -> vec3: ... + @overload + def __rmatmul__(self, other: glm_typing.F32Matrix4x2) -> vec4: ... + @overload + def __imatmul__(self, other: glm_typing.Number) -> mvec4: ... + @overload + def __imatmul__(self, other: glm_typing.F32Vector4) -> mvec4: ... + @overload + def __imatmul__(self, other: glm_typing.F32Matrix2x2) -> vec2: ... + @overload + def __imatmul__(self, other: glm_typing.F32Matrix3x2) -> vec3: ... + @overload + def __imatmul__(self, other: glm_typing.F32Matrix4x2) -> vec4: ... + + def __divmod__(self, other: mvec4) -> Tuple[mvec4, mvec4]: ... + + + +class u16vec1: + x: int + + + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: Union[glm_typing.AnyAnyVector1, glm_typing.UAnyVector2, glm_typing.UAnyVector3, glm_typing.UAnyVector4]) -> None: ... + + def __len__(self) -> Literal[1]: ... + def __getitem__(self, index: int) -> int: ... + def __setitem__(self, index: int, value: glm_typing.Number) -> None: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[int, None, None]: ... + + def __neg__(self) -> u16vec1: ... + def __pos__(self) -> u16vec1: ... + def __abs__(self) -> u16vec1: ... + + def __lt__(self, other: Any) -> bool: ... + def __le__(self, other: Any) -> bool: ... + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + def __ge__(self, other: Any) -> bool: ... + def __gt__(self, other: Any) -> bool: ... + + def to_list(self) -> List[int]: ... + def to_tuple(self) -> Tuple[int]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> u16vec1: ... + + def __add__(self, other: Union[glm_typing.U16Vector1, glm_typing.Number]) -> u16vec1: ... + def __radd__(self, other: Union[glm_typing.U16Vector1, glm_typing.Number]) -> u16vec1: ... + def __iadd__(self, other: Union[glm_typing.U16Vector1, glm_typing.Number]) -> u16vec1: ... + + def __sub__(self, other: Union[glm_typing.U16Vector1, glm_typing.Number]) -> u16vec1: ... + def __rsub__(self, other: Union[glm_typing.U16Vector1, glm_typing.Number]) -> u16vec1: ... + def __isub__(self, other: Union[glm_typing.U16Vector1, glm_typing.Number]) -> u16vec1: ... + + @overload + def __mul__(self, other: glm_typing.Number) -> u16vec1: ... + @overload + def __mul__(self, other: glm_typing.U16Vector1) -> u16vec1: ... + @overload + def __rmul__(self, other: glm_typing.Number) -> u16vec1: ... + @overload + def __rmul__(self, other: glm_typing.U16Vector1) -> u16vec1: ... + @overload + def __imul__(self, other: glm_typing.Number) -> u16vec1: ... + @overload + def __imul__(self, other: glm_typing.U16Vector1) -> u16vec1: ... + + def __mod__(self, other: Union[glm_typing.U16Vector1, glm_typing.Number]) -> u16vec1: ... + def __rmod__(self, other: Union[glm_typing.U16Vector1, glm_typing.Number]) -> u16vec1: ... + def __imod__(self, other: Union[glm_typing.U16Vector1, glm_typing.Number]) -> u16vec1: ... + + def __pow__(self, other: Union[glm_typing.U16Vector1, glm_typing.Number]) -> u16vec1: ... + def __rpow__(self, other: Union[glm_typing.U16Vector1, glm_typing.Number]) -> u16vec1: ... + def __ipow__(self, other: Union[glm_typing.U16Vector1, glm_typing.Number]) -> u16vec1: ... + + def __truediv__(self, other: Union[glm_typing.U16Vector1, glm_typing.Number]) -> u16vec1: ... + def __rtruediv__(self, other: Union[glm_typing.U16Vector1, glm_typing.Number]) -> u16vec1: ... + def __itruediv__(self, other: Union[glm_typing.U16Vector1, glm_typing.Number]) -> u16vec1: ... + + def __floordiv__(self, other: Union[glm_typing.U16Vector1, glm_typing.Number]) -> u16vec1: ... + def __rfloordiv__(self, other: Union[glm_typing.U16Vector1, glm_typing.Number]) -> u16vec1: ... + def __ifloordiv__(self, other: Union[glm_typing.U16Vector1, glm_typing.Number]) -> u16vec1: ... + + @overload + def __matmul__(self, other: glm_typing.Number) -> u16vec1: ... + @overload + def __matmul__(self, other: glm_typing.U16Vector1) -> u16vec1: ... + @overload + def __rmatmul__(self, other: glm_typing.Number) -> u16vec1: ... + @overload + def __rmatmul__(self, other: glm_typing.U16Vector1) -> u16vec1: ... + @overload + def __imatmul__(self, other: glm_typing.Number) -> u16vec1: ... + @overload + def __imatmul__(self, other: glm_typing.U16Vector1) -> u16vec1: ... + + def __divmod__(self, other: u16vec1) -> Tuple[u16vec1, u16vec1]: ... + + + +class u16vec2: + x: int + y: int + + + @property + def xy(self) -> u16vec2: ... + @xy.setter + def xy(self, value: glm_typing.U16Vector2) -> None: ... + + @property + def yx(self) -> u16vec2: ... + @yx.setter + def yx(self, value: glm_typing.U16Vector2) -> None: ... + + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: glm_typing.Number, y: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: Union[glm_typing.AnyAnyVector2, glm_typing.UAnyVector3, glm_typing.UAnyVector4]) -> None: ... + + def __len__(self) -> Literal[2]: ... + def __getitem__(self, index: int) -> int: ... + def __setitem__(self, index: int, value: glm_typing.Number) -> None: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[int, None, None]: ... + + def __neg__(self) -> u16vec2: ... + def __pos__(self) -> u16vec2: ... + def __abs__(self) -> u16vec2: ... + + def __lt__(self, other: Any) -> bool: ... + def __le__(self, other: Any) -> bool: ... + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + def __ge__(self, other: Any) -> bool: ... + def __gt__(self, other: Any) -> bool: ... + + def to_list(self) -> List[int]: ... + def to_tuple(self) -> Tuple[int, int]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> u16vec2: ... + + def __add__(self, other: Union[glm_typing.U16Vector2, glm_typing.Number]) -> u16vec2: ... + def __radd__(self, other: Union[glm_typing.U16Vector2, glm_typing.Number]) -> u16vec2: ... + def __iadd__(self, other: Union[glm_typing.U16Vector2, glm_typing.Number]) -> u16vec2: ... + + def __sub__(self, other: Union[glm_typing.U16Vector2, glm_typing.Number]) -> u16vec2: ... + def __rsub__(self, other: Union[glm_typing.U16Vector2, glm_typing.Number]) -> u16vec2: ... + def __isub__(self, other: Union[glm_typing.U16Vector2, glm_typing.Number]) -> u16vec2: ... + + @overload + def __mul__(self, other: glm_typing.Number) -> u16vec2: ... + @overload + def __mul__(self, other: glm_typing.U16Vector2) -> u16vec2: ... + @overload + def __rmul__(self, other: glm_typing.Number) -> u16vec2: ... + @overload + def __rmul__(self, other: glm_typing.U16Vector2) -> u16vec2: ... + @overload + def __imul__(self, other: glm_typing.Number) -> u16vec2: ... + @overload + def __imul__(self, other: glm_typing.U16Vector2) -> u16vec2: ... + + def __mod__(self, other: Union[glm_typing.U16Vector2, glm_typing.Number]) -> u16vec2: ... + def __rmod__(self, other: Union[glm_typing.U16Vector2, glm_typing.Number]) -> u16vec2: ... + def __imod__(self, other: Union[glm_typing.U16Vector2, glm_typing.Number]) -> u16vec2: ... + + def __pow__(self, other: Union[glm_typing.U16Vector2, glm_typing.Number]) -> u16vec2: ... + def __rpow__(self, other: Union[glm_typing.U16Vector2, glm_typing.Number]) -> u16vec2: ... + def __ipow__(self, other: Union[glm_typing.U16Vector2, glm_typing.Number]) -> u16vec2: ... + + def __truediv__(self, other: Union[glm_typing.U16Vector2, glm_typing.Number]) -> u16vec2: ... + def __rtruediv__(self, other: Union[glm_typing.U16Vector2, glm_typing.Number]) -> u16vec2: ... + def __itruediv__(self, other: Union[glm_typing.U16Vector2, glm_typing.Number]) -> u16vec2: ... + + def __floordiv__(self, other: Union[glm_typing.U16Vector2, glm_typing.Number]) -> u16vec2: ... + def __rfloordiv__(self, other: Union[glm_typing.U16Vector2, glm_typing.Number]) -> u16vec2: ... + def __ifloordiv__(self, other: Union[glm_typing.U16Vector2, glm_typing.Number]) -> u16vec2: ... + + @overload + def __matmul__(self, other: glm_typing.Number) -> u16vec2: ... + @overload + def __matmul__(self, other: glm_typing.U16Vector2) -> u16vec2: ... + @overload + def __rmatmul__(self, other: glm_typing.Number) -> u16vec2: ... + @overload + def __rmatmul__(self, other: glm_typing.U16Vector2) -> u16vec2: ... + @overload + def __imatmul__(self, other: glm_typing.Number) -> u16vec2: ... + @overload + def __imatmul__(self, other: glm_typing.U16Vector2) -> u16vec2: ... + + def __divmod__(self, other: u16vec2) -> Tuple[u16vec2, u16vec2]: ... + + + +class u16vec3: + x: int + y: int + z: int + + + @property + def xy(self) -> u16vec2: ... + @xy.setter + def xy(self, value: glm_typing.U16Vector2) -> None: ... + + @property + def yx(self) -> u16vec2: ... + @yx.setter + def yx(self, value: glm_typing.U16Vector2) -> None: ... + + @property + def xz(self) -> u16vec2: ... + @xz.setter + def xz(self, value: glm_typing.U16Vector2) -> None: ... + + @property + def zx(self) -> u16vec2: ... + @zx.setter + def zx(self, value: glm_typing.U16Vector2) -> None: ... + + @property + def yz(self) -> u16vec2: ... + @yz.setter + def yz(self, value: glm_typing.U16Vector2) -> None: ... + + @property + def zy(self) -> u16vec2: ... + @zy.setter + def zy(self, value: glm_typing.U16Vector2) -> None: ... + + @property + def xyz(self) -> u16vec3: ... + @xyz.setter + def xyz(self, value: glm_typing.U16Vector3) -> None: ... + + @property + def xzy(self) -> u16vec3: ... + @xzy.setter + def xzy(self, value: glm_typing.U16Vector3) -> None: ... + + @property + def yxz(self) -> u16vec3: ... + @yxz.setter + def yxz(self, value: glm_typing.U16Vector3) -> None: ... + + @property + def yzx(self) -> u16vec3: ... + @yzx.setter + def yzx(self, value: glm_typing.U16Vector3) -> None: ... + + @property + def zxy(self) -> u16vec3: ... + @zxy.setter + def zxy(self, value: glm_typing.U16Vector3) -> None: ... + + @property + def zyx(self) -> u16vec3: ... + @zyx.setter + def zyx(self, value: glm_typing.U16Vector3) -> None: ... + + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: glm_typing.Number, y: glm_typing.Number, z: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: Union[glm_typing.AnyAnyVector3, glm_typing.UAnyVector4]) -> None: ... + + def __len__(self) -> Literal[3]: ... + def __getitem__(self, index: int) -> int: ... + def __setitem__(self, index: int, value: glm_typing.Number) -> None: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[int, None, None]: ... + + def __neg__(self) -> u16vec3: ... + def __pos__(self) -> u16vec3: ... + def __abs__(self) -> u16vec3: ... + + def __lt__(self, other: Any) -> bool: ... + def __le__(self, other: Any) -> bool: ... + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + def __ge__(self, other: Any) -> bool: ... + def __gt__(self, other: Any) -> bool: ... + + def to_list(self) -> List[int]: ... + def to_tuple(self) -> Tuple[int, int, int]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> u16vec3: ... + + def __add__(self, other: Union[glm_typing.U16Vector3, glm_typing.Number]) -> u16vec3: ... + def __radd__(self, other: Union[glm_typing.U16Vector3, glm_typing.Number]) -> u16vec3: ... + def __iadd__(self, other: Union[glm_typing.U16Vector3, glm_typing.Number]) -> u16vec3: ... + + def __sub__(self, other: Union[glm_typing.U16Vector3, glm_typing.Number]) -> u16vec3: ... + def __rsub__(self, other: Union[glm_typing.U16Vector3, glm_typing.Number]) -> u16vec3: ... + def __isub__(self, other: Union[glm_typing.U16Vector3, glm_typing.Number]) -> u16vec3: ... + + @overload + def __mul__(self, other: glm_typing.Number) -> u16vec3: ... + @overload + def __mul__(self, other: glm_typing.U16Vector3) -> u16vec3: ... + @overload + def __rmul__(self, other: glm_typing.Number) -> u16vec3: ... + @overload + def __rmul__(self, other: glm_typing.U16Vector3) -> u16vec3: ... + @overload + def __imul__(self, other: glm_typing.Number) -> u16vec3: ... + @overload + def __imul__(self, other: glm_typing.U16Vector3) -> u16vec3: ... + + def __mod__(self, other: Union[glm_typing.U16Vector3, glm_typing.Number]) -> u16vec3: ... + def __rmod__(self, other: Union[glm_typing.U16Vector3, glm_typing.Number]) -> u16vec3: ... + def __imod__(self, other: Union[glm_typing.U16Vector3, glm_typing.Number]) -> u16vec3: ... + + def __pow__(self, other: Union[glm_typing.U16Vector3, glm_typing.Number]) -> u16vec3: ... + def __rpow__(self, other: Union[glm_typing.U16Vector3, glm_typing.Number]) -> u16vec3: ... + def __ipow__(self, other: Union[glm_typing.U16Vector3, glm_typing.Number]) -> u16vec3: ... + + def __truediv__(self, other: Union[glm_typing.U16Vector3, glm_typing.Number]) -> u16vec3: ... + def __rtruediv__(self, other: Union[glm_typing.U16Vector3, glm_typing.Number]) -> u16vec3: ... + def __itruediv__(self, other: Union[glm_typing.U16Vector3, glm_typing.Number]) -> u16vec3: ... + + def __floordiv__(self, other: Union[glm_typing.U16Vector3, glm_typing.Number]) -> u16vec3: ... + def __rfloordiv__(self, other: Union[glm_typing.U16Vector3, glm_typing.Number]) -> u16vec3: ... + def __ifloordiv__(self, other: Union[glm_typing.U16Vector3, glm_typing.Number]) -> u16vec3: ... + + @overload + def __matmul__(self, other: glm_typing.Number) -> u16vec3: ... + @overload + def __matmul__(self, other: glm_typing.U16Vector3) -> u16vec3: ... + @overload + def __rmatmul__(self, other: glm_typing.Number) -> u16vec3: ... + @overload + def __rmatmul__(self, other: glm_typing.U16Vector3) -> u16vec3: ... + @overload + def __imatmul__(self, other: glm_typing.Number) -> u16vec3: ... + @overload + def __imatmul__(self, other: glm_typing.U16Vector3) -> u16vec3: ... + + def __divmod__(self, other: u16vec3) -> Tuple[u16vec3, u16vec3]: ... + + + +class u16vec4: + x: int + y: int + z: int + w: int + + + @property + def xy(self) -> u16vec2: ... + @xy.setter + def xy(self, value: glm_typing.U16Vector2) -> None: ... + + @property + def yx(self) -> u16vec2: ... + @yx.setter + def yx(self, value: glm_typing.U16Vector2) -> None: ... + + @property + def xz(self) -> u16vec2: ... + @xz.setter + def xz(self, value: glm_typing.U16Vector2) -> None: ... + + @property + def zx(self) -> u16vec2: ... + @zx.setter + def zx(self, value: glm_typing.U16Vector2) -> None: ... + + @property + def xw(self) -> u16vec2: ... + @xw.setter + def xw(self, value: glm_typing.U16Vector2) -> None: ... + + @property + def wx(self) -> u16vec2: ... + @wx.setter + def wx(self, value: glm_typing.U16Vector2) -> None: ... + + @property + def yz(self) -> u16vec2: ... + @yz.setter + def yz(self, value: glm_typing.U16Vector2) -> None: ... + + @property + def zy(self) -> u16vec2: ... + @zy.setter + def zy(self, value: glm_typing.U16Vector2) -> None: ... + + @property + def yw(self) -> u16vec2: ... + @yw.setter + def yw(self, value: glm_typing.U16Vector2) -> None: ... + + @property + def wy(self) -> u16vec2: ... + @wy.setter + def wy(self, value: glm_typing.U16Vector2) -> None: ... + + @property + def zw(self) -> u16vec2: ... + @zw.setter + def zw(self, value: glm_typing.U16Vector2) -> None: ... + + @property + def wz(self) -> u16vec2: ... + @wz.setter + def wz(self, value: glm_typing.U16Vector2) -> None: ... + + @property + def xyz(self) -> u16vec3: ... + @xyz.setter + def xyz(self, value: glm_typing.U16Vector3) -> None: ... + + @property + def xzy(self) -> u16vec3: ... + @xzy.setter + def xzy(self, value: glm_typing.U16Vector3) -> None: ... + + @property + def yxz(self) -> u16vec3: ... + @yxz.setter + def yxz(self, value: glm_typing.U16Vector3) -> None: ... + + @property + def yzx(self) -> u16vec3: ... + @yzx.setter + def yzx(self, value: glm_typing.U16Vector3) -> None: ... + + @property + def zxy(self) -> u16vec3: ... + @zxy.setter + def zxy(self, value: glm_typing.U16Vector3) -> None: ... + + @property + def zyx(self) -> u16vec3: ... + @zyx.setter + def zyx(self, value: glm_typing.U16Vector3) -> None: ... + + @property + def xyw(self) -> u16vec3: ... + @xyw.setter + def xyw(self, value: glm_typing.U16Vector3) -> None: ... + + @property + def xwy(self) -> u16vec3: ... + @xwy.setter + def xwy(self, value: glm_typing.U16Vector3) -> None: ... + + @property + def yxw(self) -> u16vec3: ... + @yxw.setter + def yxw(self, value: glm_typing.U16Vector3) -> None: ... + + @property + def ywx(self) -> u16vec3: ... + @ywx.setter + def ywx(self, value: glm_typing.U16Vector3) -> None: ... + + @property + def wxy(self) -> u16vec3: ... + @wxy.setter + def wxy(self, value: glm_typing.U16Vector3) -> None: ... + + @property + def wyx(self) -> u16vec3: ... + @wyx.setter + def wyx(self, value: glm_typing.U16Vector3) -> None: ... + + @property + def xzw(self) -> u16vec3: ... + @xzw.setter + def xzw(self, value: glm_typing.U16Vector3) -> None: ... + + @property + def xwz(self) -> u16vec3: ... + @xwz.setter + def xwz(self, value: glm_typing.U16Vector3) -> None: ... + + @property + def zxw(self) -> u16vec3: ... + @zxw.setter + def zxw(self, value: glm_typing.U16Vector3) -> None: ... + + @property + def zwx(self) -> u16vec3: ... + @zwx.setter + def zwx(self, value: glm_typing.U16Vector3) -> None: ... + + @property + def wxz(self) -> u16vec3: ... + @wxz.setter + def wxz(self, value: glm_typing.U16Vector3) -> None: ... + + @property + def wzx(self) -> u16vec3: ... + @wzx.setter + def wzx(self, value: glm_typing.U16Vector3) -> None: ... + + @property + def yzw(self) -> u16vec3: ... + @yzw.setter + def yzw(self, value: glm_typing.U16Vector3) -> None: ... + + @property + def ywz(self) -> u16vec3: ... + @ywz.setter + def ywz(self, value: glm_typing.U16Vector3) -> None: ... + + @property + def zyw(self) -> u16vec3: ... + @zyw.setter + def zyw(self, value: glm_typing.U16Vector3) -> None: ... + + @property + def zwy(self) -> u16vec3: ... + @zwy.setter + def zwy(self, value: glm_typing.U16Vector3) -> None: ... + + @property + def wyz(self) -> u16vec3: ... + @wyz.setter + def wyz(self, value: glm_typing.U16Vector3) -> None: ... + + @property + def wzy(self) -> u16vec3: ... + @wzy.setter + def wzy(self, value: glm_typing.U16Vector3) -> None: ... + + @property + def xyzw(self) -> u16vec4: ... + @xyzw.setter + def xyzw(self, value: glm_typing.U16Vector4) -> None: ... + + @property + def xywz(self) -> u16vec4: ... + @xywz.setter + def xywz(self, value: glm_typing.U16Vector4) -> None: ... + + @property + def xzyw(self) -> u16vec4: ... + @xzyw.setter + def xzyw(self, value: glm_typing.U16Vector4) -> None: ... + + @property + def xzwy(self) -> u16vec4: ... + @xzwy.setter + def xzwy(self, value: glm_typing.U16Vector4) -> None: ... + + @property + def xwyz(self) -> u16vec4: ... + @xwyz.setter + def xwyz(self, value: glm_typing.U16Vector4) -> None: ... + + @property + def xwzy(self) -> u16vec4: ... + @xwzy.setter + def xwzy(self, value: glm_typing.U16Vector4) -> None: ... + + @property + def yxzw(self) -> u16vec4: ... + @yxzw.setter + def yxzw(self, value: glm_typing.U16Vector4) -> None: ... + + @property + def yxwz(self) -> u16vec4: ... + @yxwz.setter + def yxwz(self, value: glm_typing.U16Vector4) -> None: ... + + @property + def yzxw(self) -> u16vec4: ... + @yzxw.setter + def yzxw(self, value: glm_typing.U16Vector4) -> None: ... + + @property + def yzwx(self) -> u16vec4: ... + @yzwx.setter + def yzwx(self, value: glm_typing.U16Vector4) -> None: ... + + @property + def ywxz(self) -> u16vec4: ... + @ywxz.setter + def ywxz(self, value: glm_typing.U16Vector4) -> None: ... + + @property + def ywzx(self) -> u16vec4: ... + @ywzx.setter + def ywzx(self, value: glm_typing.U16Vector4) -> None: ... + + @property + def zxyw(self) -> u16vec4: ... + @zxyw.setter + def zxyw(self, value: glm_typing.U16Vector4) -> None: ... + + @property + def zxwy(self) -> u16vec4: ... + @zxwy.setter + def zxwy(self, value: glm_typing.U16Vector4) -> None: ... + + @property + def zyxw(self) -> u16vec4: ... + @zyxw.setter + def zyxw(self, value: glm_typing.U16Vector4) -> None: ... + + @property + def zywx(self) -> u16vec4: ... + @zywx.setter + def zywx(self, value: glm_typing.U16Vector4) -> None: ... + + @property + def zwxy(self) -> u16vec4: ... + @zwxy.setter + def zwxy(self, value: glm_typing.U16Vector4) -> None: ... + + @property + def zwyx(self) -> u16vec4: ... + @zwyx.setter + def zwyx(self, value: glm_typing.U16Vector4) -> None: ... + + @property + def wxyz(self) -> u16vec4: ... + @wxyz.setter + def wxyz(self, value: glm_typing.U16Vector4) -> None: ... + + @property + def wxzy(self) -> u16vec4: ... + @wxzy.setter + def wxzy(self, value: glm_typing.U16Vector4) -> None: ... + + @property + def wyxz(self) -> u16vec4: ... + @wyxz.setter + def wyxz(self, value: glm_typing.U16Vector4) -> None: ... + + @property + def wyzx(self) -> u16vec4: ... + @wyzx.setter + def wyzx(self, value: glm_typing.U16Vector4) -> None: ... + + @property + def wzxy(self) -> u16vec4: ... + @wzxy.setter + def wzxy(self, value: glm_typing.U16Vector4) -> None: ... + + @property + def wzyx(self) -> u16vec4: ... + @wzyx.setter + def wzyx(self, value: glm_typing.U16Vector4) -> None: ... + + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: glm_typing.Number, y: glm_typing.Number, z: glm_typing.Number, w: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: glm_typing.AnyAnyVector4) -> None: ... + + def __len__(self) -> Literal[4]: ... + def __getitem__(self, index: int) -> int: ... + def __setitem__(self, index: int, value: glm_typing.Number) -> None: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[int, None, None]: ... + + def __neg__(self) -> u16vec4: ... + def __pos__(self) -> u16vec4: ... + def __abs__(self) -> u16vec4: ... + + def __lt__(self, other: Any) -> bool: ... + def __le__(self, other: Any) -> bool: ... + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + def __ge__(self, other: Any) -> bool: ... + def __gt__(self, other: Any) -> bool: ... + + def to_list(self) -> List[int]: ... + def to_tuple(self) -> Tuple[int, int, int, int]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> u16vec4: ... + + def __add__(self, other: Union[glm_typing.U16Vector4, glm_typing.Number]) -> u16vec4: ... + def __radd__(self, other: Union[glm_typing.U16Vector4, glm_typing.Number]) -> u16vec4: ... + def __iadd__(self, other: Union[glm_typing.U16Vector4, glm_typing.Number]) -> u16vec4: ... + + def __sub__(self, other: Union[glm_typing.U16Vector4, glm_typing.Number]) -> u16vec4: ... + def __rsub__(self, other: Union[glm_typing.U16Vector4, glm_typing.Number]) -> u16vec4: ... + def __isub__(self, other: Union[glm_typing.U16Vector4, glm_typing.Number]) -> u16vec4: ... + + @overload + def __mul__(self, other: glm_typing.Number) -> u16vec4: ... + @overload + def __mul__(self, other: glm_typing.U16Vector4) -> u16vec4: ... + @overload + def __rmul__(self, other: glm_typing.Number) -> u16vec4: ... + @overload + def __rmul__(self, other: glm_typing.U16Vector4) -> u16vec4: ... + @overload + def __imul__(self, other: glm_typing.Number) -> u16vec4: ... + @overload + def __imul__(self, other: glm_typing.U16Vector4) -> u16vec4: ... + + def __mod__(self, other: Union[glm_typing.U16Vector4, glm_typing.Number]) -> u16vec4: ... + def __rmod__(self, other: Union[glm_typing.U16Vector4, glm_typing.Number]) -> u16vec4: ... + def __imod__(self, other: Union[glm_typing.U16Vector4, glm_typing.Number]) -> u16vec4: ... + + def __pow__(self, other: Union[glm_typing.U16Vector4, glm_typing.Number]) -> u16vec4: ... + def __rpow__(self, other: Union[glm_typing.U16Vector4, glm_typing.Number]) -> u16vec4: ... + def __ipow__(self, other: Union[glm_typing.U16Vector4, glm_typing.Number]) -> u16vec4: ... + + def __truediv__(self, other: Union[glm_typing.U16Vector4, glm_typing.Number]) -> u16vec4: ... + def __rtruediv__(self, other: Union[glm_typing.U16Vector4, glm_typing.Number]) -> u16vec4: ... + def __itruediv__(self, other: Union[glm_typing.U16Vector4, glm_typing.Number]) -> u16vec4: ... + + def __floordiv__(self, other: Union[glm_typing.U16Vector4, glm_typing.Number]) -> u16vec4: ... + def __rfloordiv__(self, other: Union[glm_typing.U16Vector4, glm_typing.Number]) -> u16vec4: ... + def __ifloordiv__(self, other: Union[glm_typing.U16Vector4, glm_typing.Number]) -> u16vec4: ... + + @overload + def __matmul__(self, other: glm_typing.Number) -> u16vec4: ... + @overload + def __matmul__(self, other: glm_typing.U16Vector4) -> u16vec4: ... + @overload + def __rmatmul__(self, other: glm_typing.Number) -> u16vec4: ... + @overload + def __rmatmul__(self, other: glm_typing.U16Vector4) -> u16vec4: ... + @overload + def __imatmul__(self, other: glm_typing.Number) -> u16vec4: ... + @overload + def __imatmul__(self, other: glm_typing.U16Vector4) -> u16vec4: ... + + def __divmod__(self, other: u16vec4) -> Tuple[u16vec4, u16vec4]: ... + + + +class u64vec1: + x: int + + + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: Union[glm_typing.AnyAnyVector1, glm_typing.UAnyVector2, glm_typing.UAnyVector3, glm_typing.UAnyVector4]) -> None: ... + + def __len__(self) -> Literal[1]: ... + def __getitem__(self, index: int) -> int: ... + def __setitem__(self, index: int, value: glm_typing.Number) -> None: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[int, None, None]: ... + + def __neg__(self) -> u64vec1: ... + def __pos__(self) -> u64vec1: ... + def __abs__(self) -> u64vec1: ... + + def __lt__(self, other: Any) -> bool: ... + def __le__(self, other: Any) -> bool: ... + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + def __ge__(self, other: Any) -> bool: ... + def __gt__(self, other: Any) -> bool: ... + + def to_list(self) -> List[int]: ... + def to_tuple(self) -> Tuple[int]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> u64vec1: ... + + def __add__(self, other: Union[glm_typing.U64Vector1, glm_typing.Number]) -> u64vec1: ... + def __radd__(self, other: Union[glm_typing.U64Vector1, glm_typing.Number]) -> u64vec1: ... + def __iadd__(self, other: Union[glm_typing.U64Vector1, glm_typing.Number]) -> u64vec1: ... + + def __sub__(self, other: Union[glm_typing.U64Vector1, glm_typing.Number]) -> u64vec1: ... + def __rsub__(self, other: Union[glm_typing.U64Vector1, glm_typing.Number]) -> u64vec1: ... + def __isub__(self, other: Union[glm_typing.U64Vector1, glm_typing.Number]) -> u64vec1: ... + + @overload + def __mul__(self, other: glm_typing.Number) -> u64vec1: ... + @overload + def __mul__(self, other: glm_typing.U64Vector1) -> u64vec1: ... + @overload + def __rmul__(self, other: glm_typing.Number) -> u64vec1: ... + @overload + def __rmul__(self, other: glm_typing.U64Vector1) -> u64vec1: ... + @overload + def __imul__(self, other: glm_typing.Number) -> u64vec1: ... + @overload + def __imul__(self, other: glm_typing.U64Vector1) -> u64vec1: ... + + def __mod__(self, other: Union[glm_typing.U64Vector1, glm_typing.Number]) -> u64vec1: ... + def __rmod__(self, other: Union[glm_typing.U64Vector1, glm_typing.Number]) -> u64vec1: ... + def __imod__(self, other: Union[glm_typing.U64Vector1, glm_typing.Number]) -> u64vec1: ... + + def __pow__(self, other: Union[glm_typing.U64Vector1, glm_typing.Number]) -> u64vec1: ... + def __rpow__(self, other: Union[glm_typing.U64Vector1, glm_typing.Number]) -> u64vec1: ... + def __ipow__(self, other: Union[glm_typing.U64Vector1, glm_typing.Number]) -> u64vec1: ... + + def __truediv__(self, other: Union[glm_typing.U64Vector1, glm_typing.Number]) -> u64vec1: ... + def __rtruediv__(self, other: Union[glm_typing.U64Vector1, glm_typing.Number]) -> u64vec1: ... + def __itruediv__(self, other: Union[glm_typing.U64Vector1, glm_typing.Number]) -> u64vec1: ... + + def __floordiv__(self, other: Union[glm_typing.U64Vector1, glm_typing.Number]) -> u64vec1: ... + def __rfloordiv__(self, other: Union[glm_typing.U64Vector1, glm_typing.Number]) -> u64vec1: ... + def __ifloordiv__(self, other: Union[glm_typing.U64Vector1, glm_typing.Number]) -> u64vec1: ... + + @overload + def __matmul__(self, other: glm_typing.Number) -> u64vec1: ... + @overload + def __matmul__(self, other: glm_typing.U64Vector1) -> u64vec1: ... + @overload + def __rmatmul__(self, other: glm_typing.Number) -> u64vec1: ... + @overload + def __rmatmul__(self, other: glm_typing.U64Vector1) -> u64vec1: ... + @overload + def __imatmul__(self, other: glm_typing.Number) -> u64vec1: ... + @overload + def __imatmul__(self, other: glm_typing.U64Vector1) -> u64vec1: ... + + def __divmod__(self, other: u64vec1) -> Tuple[u64vec1, u64vec1]: ... + + + +class u64vec2: + x: int + y: int + + + @property + def xy(self) -> u64vec2: ... + @xy.setter + def xy(self, value: glm_typing.U64Vector2) -> None: ... + + @property + def yx(self) -> u64vec2: ... + @yx.setter + def yx(self, value: glm_typing.U64Vector2) -> None: ... + + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: glm_typing.Number, y: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: Union[glm_typing.AnyAnyVector2, glm_typing.UAnyVector3, glm_typing.UAnyVector4]) -> None: ... + + def __len__(self) -> Literal[2]: ... + def __getitem__(self, index: int) -> int: ... + def __setitem__(self, index: int, value: glm_typing.Number) -> None: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[int, None, None]: ... + + def __neg__(self) -> u64vec2: ... + def __pos__(self) -> u64vec2: ... + def __abs__(self) -> u64vec2: ... + + def __lt__(self, other: Any) -> bool: ... + def __le__(self, other: Any) -> bool: ... + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + def __ge__(self, other: Any) -> bool: ... + def __gt__(self, other: Any) -> bool: ... + + def to_list(self) -> List[int]: ... + def to_tuple(self) -> Tuple[int, int]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> u64vec2: ... + + def __add__(self, other: Union[glm_typing.U64Vector2, glm_typing.Number]) -> u64vec2: ... + def __radd__(self, other: Union[glm_typing.U64Vector2, glm_typing.Number]) -> u64vec2: ... + def __iadd__(self, other: Union[glm_typing.U64Vector2, glm_typing.Number]) -> u64vec2: ... + + def __sub__(self, other: Union[glm_typing.U64Vector2, glm_typing.Number]) -> u64vec2: ... + def __rsub__(self, other: Union[glm_typing.U64Vector2, glm_typing.Number]) -> u64vec2: ... + def __isub__(self, other: Union[glm_typing.U64Vector2, glm_typing.Number]) -> u64vec2: ... + + @overload + def __mul__(self, other: glm_typing.Number) -> u64vec2: ... + @overload + def __mul__(self, other: glm_typing.U64Vector2) -> u64vec2: ... + @overload + def __rmul__(self, other: glm_typing.Number) -> u64vec2: ... + @overload + def __rmul__(self, other: glm_typing.U64Vector2) -> u64vec2: ... + @overload + def __imul__(self, other: glm_typing.Number) -> u64vec2: ... + @overload + def __imul__(self, other: glm_typing.U64Vector2) -> u64vec2: ... + + def __mod__(self, other: Union[glm_typing.U64Vector2, glm_typing.Number]) -> u64vec2: ... + def __rmod__(self, other: Union[glm_typing.U64Vector2, glm_typing.Number]) -> u64vec2: ... + def __imod__(self, other: Union[glm_typing.U64Vector2, glm_typing.Number]) -> u64vec2: ... + + def __pow__(self, other: Union[glm_typing.U64Vector2, glm_typing.Number]) -> u64vec2: ... + def __rpow__(self, other: Union[glm_typing.U64Vector2, glm_typing.Number]) -> u64vec2: ... + def __ipow__(self, other: Union[glm_typing.U64Vector2, glm_typing.Number]) -> u64vec2: ... + + def __truediv__(self, other: Union[glm_typing.U64Vector2, glm_typing.Number]) -> u64vec2: ... + def __rtruediv__(self, other: Union[glm_typing.U64Vector2, glm_typing.Number]) -> u64vec2: ... + def __itruediv__(self, other: Union[glm_typing.U64Vector2, glm_typing.Number]) -> u64vec2: ... + + def __floordiv__(self, other: Union[glm_typing.U64Vector2, glm_typing.Number]) -> u64vec2: ... + def __rfloordiv__(self, other: Union[glm_typing.U64Vector2, glm_typing.Number]) -> u64vec2: ... + def __ifloordiv__(self, other: Union[glm_typing.U64Vector2, glm_typing.Number]) -> u64vec2: ... + + @overload + def __matmul__(self, other: glm_typing.Number) -> u64vec2: ... + @overload + def __matmul__(self, other: glm_typing.U64Vector2) -> u64vec2: ... + @overload + def __rmatmul__(self, other: glm_typing.Number) -> u64vec2: ... + @overload + def __rmatmul__(self, other: glm_typing.U64Vector2) -> u64vec2: ... + @overload + def __imatmul__(self, other: glm_typing.Number) -> u64vec2: ... + @overload + def __imatmul__(self, other: glm_typing.U64Vector2) -> u64vec2: ... + + def __divmod__(self, other: u64vec2) -> Tuple[u64vec2, u64vec2]: ... + + + +class u64vec3: + x: int + y: int + z: int + + + @property + def xy(self) -> u64vec2: ... + @xy.setter + def xy(self, value: glm_typing.U64Vector2) -> None: ... + + @property + def yx(self) -> u64vec2: ... + @yx.setter + def yx(self, value: glm_typing.U64Vector2) -> None: ... + + @property + def xz(self) -> u64vec2: ... + @xz.setter + def xz(self, value: glm_typing.U64Vector2) -> None: ... + + @property + def zx(self) -> u64vec2: ... + @zx.setter + def zx(self, value: glm_typing.U64Vector2) -> None: ... + + @property + def yz(self) -> u64vec2: ... + @yz.setter + def yz(self, value: glm_typing.U64Vector2) -> None: ... + + @property + def zy(self) -> u64vec2: ... + @zy.setter + def zy(self, value: glm_typing.U64Vector2) -> None: ... + + @property + def xyz(self) -> u64vec3: ... + @xyz.setter + def xyz(self, value: glm_typing.U64Vector3) -> None: ... + + @property + def xzy(self) -> u64vec3: ... + @xzy.setter + def xzy(self, value: glm_typing.U64Vector3) -> None: ... + + @property + def yxz(self) -> u64vec3: ... + @yxz.setter + def yxz(self, value: glm_typing.U64Vector3) -> None: ... + + @property + def yzx(self) -> u64vec3: ... + @yzx.setter + def yzx(self, value: glm_typing.U64Vector3) -> None: ... + + @property + def zxy(self) -> u64vec3: ... + @zxy.setter + def zxy(self, value: glm_typing.U64Vector3) -> None: ... + + @property + def zyx(self) -> u64vec3: ... + @zyx.setter + def zyx(self, value: glm_typing.U64Vector3) -> None: ... + + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: glm_typing.Number, y: glm_typing.Number, z: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: Union[glm_typing.AnyAnyVector3, glm_typing.UAnyVector4]) -> None: ... + + def __len__(self) -> Literal[3]: ... + def __getitem__(self, index: int) -> int: ... + def __setitem__(self, index: int, value: glm_typing.Number) -> None: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[int, None, None]: ... + + def __neg__(self) -> u64vec3: ... + def __pos__(self) -> u64vec3: ... + def __abs__(self) -> u64vec3: ... + + def __lt__(self, other: Any) -> bool: ... + def __le__(self, other: Any) -> bool: ... + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + def __ge__(self, other: Any) -> bool: ... + def __gt__(self, other: Any) -> bool: ... + + def to_list(self) -> List[int]: ... + def to_tuple(self) -> Tuple[int, int, int]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> u64vec3: ... + + def __add__(self, other: Union[glm_typing.U64Vector3, glm_typing.Number]) -> u64vec3: ... + def __radd__(self, other: Union[glm_typing.U64Vector3, glm_typing.Number]) -> u64vec3: ... + def __iadd__(self, other: Union[glm_typing.U64Vector3, glm_typing.Number]) -> u64vec3: ... + + def __sub__(self, other: Union[glm_typing.U64Vector3, glm_typing.Number]) -> u64vec3: ... + def __rsub__(self, other: Union[glm_typing.U64Vector3, glm_typing.Number]) -> u64vec3: ... + def __isub__(self, other: Union[glm_typing.U64Vector3, glm_typing.Number]) -> u64vec3: ... + + @overload + def __mul__(self, other: glm_typing.Number) -> u64vec3: ... + @overload + def __mul__(self, other: glm_typing.U64Vector3) -> u64vec3: ... + @overload + def __rmul__(self, other: glm_typing.Number) -> u64vec3: ... + @overload + def __rmul__(self, other: glm_typing.U64Vector3) -> u64vec3: ... + @overload + def __imul__(self, other: glm_typing.Number) -> u64vec3: ... + @overload + def __imul__(self, other: glm_typing.U64Vector3) -> u64vec3: ... + + def __mod__(self, other: Union[glm_typing.U64Vector3, glm_typing.Number]) -> u64vec3: ... + def __rmod__(self, other: Union[glm_typing.U64Vector3, glm_typing.Number]) -> u64vec3: ... + def __imod__(self, other: Union[glm_typing.U64Vector3, glm_typing.Number]) -> u64vec3: ... + + def __pow__(self, other: Union[glm_typing.U64Vector3, glm_typing.Number]) -> u64vec3: ... + def __rpow__(self, other: Union[glm_typing.U64Vector3, glm_typing.Number]) -> u64vec3: ... + def __ipow__(self, other: Union[glm_typing.U64Vector3, glm_typing.Number]) -> u64vec3: ... + + def __truediv__(self, other: Union[glm_typing.U64Vector3, glm_typing.Number]) -> u64vec3: ... + def __rtruediv__(self, other: Union[glm_typing.U64Vector3, glm_typing.Number]) -> u64vec3: ... + def __itruediv__(self, other: Union[glm_typing.U64Vector3, glm_typing.Number]) -> u64vec3: ... + + def __floordiv__(self, other: Union[glm_typing.U64Vector3, glm_typing.Number]) -> u64vec3: ... + def __rfloordiv__(self, other: Union[glm_typing.U64Vector3, glm_typing.Number]) -> u64vec3: ... + def __ifloordiv__(self, other: Union[glm_typing.U64Vector3, glm_typing.Number]) -> u64vec3: ... + + @overload + def __matmul__(self, other: glm_typing.Number) -> u64vec3: ... + @overload + def __matmul__(self, other: glm_typing.U64Vector3) -> u64vec3: ... + @overload + def __rmatmul__(self, other: glm_typing.Number) -> u64vec3: ... + @overload + def __rmatmul__(self, other: glm_typing.U64Vector3) -> u64vec3: ... + @overload + def __imatmul__(self, other: glm_typing.Number) -> u64vec3: ... + @overload + def __imatmul__(self, other: glm_typing.U64Vector3) -> u64vec3: ... + + def __divmod__(self, other: u64vec3) -> Tuple[u64vec3, u64vec3]: ... + + + +class u64vec4: + x: int + y: int + z: int + w: int + + + @property + def xy(self) -> u64vec2: ... + @xy.setter + def xy(self, value: glm_typing.U64Vector2) -> None: ... + + @property + def yx(self) -> u64vec2: ... + @yx.setter + def yx(self, value: glm_typing.U64Vector2) -> None: ... + + @property + def xz(self) -> u64vec2: ... + @xz.setter + def xz(self, value: glm_typing.U64Vector2) -> None: ... + + @property + def zx(self) -> u64vec2: ... + @zx.setter + def zx(self, value: glm_typing.U64Vector2) -> None: ... + + @property + def xw(self) -> u64vec2: ... + @xw.setter + def xw(self, value: glm_typing.U64Vector2) -> None: ... + + @property + def wx(self) -> u64vec2: ... + @wx.setter + def wx(self, value: glm_typing.U64Vector2) -> None: ... + + @property + def yz(self) -> u64vec2: ... + @yz.setter + def yz(self, value: glm_typing.U64Vector2) -> None: ... + + @property + def zy(self) -> u64vec2: ... + @zy.setter + def zy(self, value: glm_typing.U64Vector2) -> None: ... + + @property + def yw(self) -> u64vec2: ... + @yw.setter + def yw(self, value: glm_typing.U64Vector2) -> None: ... + + @property + def wy(self) -> u64vec2: ... + @wy.setter + def wy(self, value: glm_typing.U64Vector2) -> None: ... + + @property + def zw(self) -> u64vec2: ... + @zw.setter + def zw(self, value: glm_typing.U64Vector2) -> None: ... + + @property + def wz(self) -> u64vec2: ... + @wz.setter + def wz(self, value: glm_typing.U64Vector2) -> None: ... + + @property + def xyz(self) -> u64vec3: ... + @xyz.setter + def xyz(self, value: glm_typing.U64Vector3) -> None: ... + + @property + def xzy(self) -> u64vec3: ... + @xzy.setter + def xzy(self, value: glm_typing.U64Vector3) -> None: ... + + @property + def yxz(self) -> u64vec3: ... + @yxz.setter + def yxz(self, value: glm_typing.U64Vector3) -> None: ... + + @property + def yzx(self) -> u64vec3: ... + @yzx.setter + def yzx(self, value: glm_typing.U64Vector3) -> None: ... + + @property + def zxy(self) -> u64vec3: ... + @zxy.setter + def zxy(self, value: glm_typing.U64Vector3) -> None: ... + + @property + def zyx(self) -> u64vec3: ... + @zyx.setter + def zyx(self, value: glm_typing.U64Vector3) -> None: ... + + @property + def xyw(self) -> u64vec3: ... + @xyw.setter + def xyw(self, value: glm_typing.U64Vector3) -> None: ... + + @property + def xwy(self) -> u64vec3: ... + @xwy.setter + def xwy(self, value: glm_typing.U64Vector3) -> None: ... + + @property + def yxw(self) -> u64vec3: ... + @yxw.setter + def yxw(self, value: glm_typing.U64Vector3) -> None: ... + + @property + def ywx(self) -> u64vec3: ... + @ywx.setter + def ywx(self, value: glm_typing.U64Vector3) -> None: ... + + @property + def wxy(self) -> u64vec3: ... + @wxy.setter + def wxy(self, value: glm_typing.U64Vector3) -> None: ... + + @property + def wyx(self) -> u64vec3: ... + @wyx.setter + def wyx(self, value: glm_typing.U64Vector3) -> None: ... + + @property + def xzw(self) -> u64vec3: ... + @xzw.setter + def xzw(self, value: glm_typing.U64Vector3) -> None: ... + + @property + def xwz(self) -> u64vec3: ... + @xwz.setter + def xwz(self, value: glm_typing.U64Vector3) -> None: ... + + @property + def zxw(self) -> u64vec3: ... + @zxw.setter + def zxw(self, value: glm_typing.U64Vector3) -> None: ... + + @property + def zwx(self) -> u64vec3: ... + @zwx.setter + def zwx(self, value: glm_typing.U64Vector3) -> None: ... + + @property + def wxz(self) -> u64vec3: ... + @wxz.setter + def wxz(self, value: glm_typing.U64Vector3) -> None: ... + + @property + def wzx(self) -> u64vec3: ... + @wzx.setter + def wzx(self, value: glm_typing.U64Vector3) -> None: ... + + @property + def yzw(self) -> u64vec3: ... + @yzw.setter + def yzw(self, value: glm_typing.U64Vector3) -> None: ... + + @property + def ywz(self) -> u64vec3: ... + @ywz.setter + def ywz(self, value: glm_typing.U64Vector3) -> None: ... + + @property + def zyw(self) -> u64vec3: ... + @zyw.setter + def zyw(self, value: glm_typing.U64Vector3) -> None: ... + + @property + def zwy(self) -> u64vec3: ... + @zwy.setter + def zwy(self, value: glm_typing.U64Vector3) -> None: ... + + @property + def wyz(self) -> u64vec3: ... + @wyz.setter + def wyz(self, value: glm_typing.U64Vector3) -> None: ... + + @property + def wzy(self) -> u64vec3: ... + @wzy.setter + def wzy(self, value: glm_typing.U64Vector3) -> None: ... + + @property + def xyzw(self) -> u64vec4: ... + @xyzw.setter + def xyzw(self, value: glm_typing.U64Vector4) -> None: ... + + @property + def xywz(self) -> u64vec4: ... + @xywz.setter + def xywz(self, value: glm_typing.U64Vector4) -> None: ... + + @property + def xzyw(self) -> u64vec4: ... + @xzyw.setter + def xzyw(self, value: glm_typing.U64Vector4) -> None: ... + + @property + def xzwy(self) -> u64vec4: ... + @xzwy.setter + def xzwy(self, value: glm_typing.U64Vector4) -> None: ... + + @property + def xwyz(self) -> u64vec4: ... + @xwyz.setter + def xwyz(self, value: glm_typing.U64Vector4) -> None: ... + + @property + def xwzy(self) -> u64vec4: ... + @xwzy.setter + def xwzy(self, value: glm_typing.U64Vector4) -> None: ... + + @property + def yxzw(self) -> u64vec4: ... + @yxzw.setter + def yxzw(self, value: glm_typing.U64Vector4) -> None: ... + + @property + def yxwz(self) -> u64vec4: ... + @yxwz.setter + def yxwz(self, value: glm_typing.U64Vector4) -> None: ... + + @property + def yzxw(self) -> u64vec4: ... + @yzxw.setter + def yzxw(self, value: glm_typing.U64Vector4) -> None: ... + + @property + def yzwx(self) -> u64vec4: ... + @yzwx.setter + def yzwx(self, value: glm_typing.U64Vector4) -> None: ... + + @property + def ywxz(self) -> u64vec4: ... + @ywxz.setter + def ywxz(self, value: glm_typing.U64Vector4) -> None: ... + + @property + def ywzx(self) -> u64vec4: ... + @ywzx.setter + def ywzx(self, value: glm_typing.U64Vector4) -> None: ... + + @property + def zxyw(self) -> u64vec4: ... + @zxyw.setter + def zxyw(self, value: glm_typing.U64Vector4) -> None: ... + + @property + def zxwy(self) -> u64vec4: ... + @zxwy.setter + def zxwy(self, value: glm_typing.U64Vector4) -> None: ... + + @property + def zyxw(self) -> u64vec4: ... + @zyxw.setter + def zyxw(self, value: glm_typing.U64Vector4) -> None: ... + + @property + def zywx(self) -> u64vec4: ... + @zywx.setter + def zywx(self, value: glm_typing.U64Vector4) -> None: ... + + @property + def zwxy(self) -> u64vec4: ... + @zwxy.setter + def zwxy(self, value: glm_typing.U64Vector4) -> None: ... + + @property + def zwyx(self) -> u64vec4: ... + @zwyx.setter + def zwyx(self, value: glm_typing.U64Vector4) -> None: ... + + @property + def wxyz(self) -> u64vec4: ... + @wxyz.setter + def wxyz(self, value: glm_typing.U64Vector4) -> None: ... + + @property + def wxzy(self) -> u64vec4: ... + @wxzy.setter + def wxzy(self, value: glm_typing.U64Vector4) -> None: ... + + @property + def wyxz(self) -> u64vec4: ... + @wyxz.setter + def wyxz(self, value: glm_typing.U64Vector4) -> None: ... + + @property + def wyzx(self) -> u64vec4: ... + @wyzx.setter + def wyzx(self, value: glm_typing.U64Vector4) -> None: ... + + @property + def wzxy(self) -> u64vec4: ... + @wzxy.setter + def wzxy(self, value: glm_typing.U64Vector4) -> None: ... + + @property + def wzyx(self) -> u64vec4: ... + @wzyx.setter + def wzyx(self, value: glm_typing.U64Vector4) -> None: ... + + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: glm_typing.Number, y: glm_typing.Number, z: glm_typing.Number, w: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: glm_typing.AnyAnyVector4) -> None: ... + + def __len__(self) -> Literal[4]: ... + def __getitem__(self, index: int) -> int: ... + def __setitem__(self, index: int, value: glm_typing.Number) -> None: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[int, None, None]: ... + + def __neg__(self) -> u64vec4: ... + def __pos__(self) -> u64vec4: ... + def __abs__(self) -> u64vec4: ... + + def __lt__(self, other: Any) -> bool: ... + def __le__(self, other: Any) -> bool: ... + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + def __ge__(self, other: Any) -> bool: ... + def __gt__(self, other: Any) -> bool: ... + + def to_list(self) -> List[int]: ... + def to_tuple(self) -> Tuple[int, int, int, int]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> u64vec4: ... + + def __add__(self, other: Union[glm_typing.U64Vector4, glm_typing.Number]) -> u64vec4: ... + def __radd__(self, other: Union[glm_typing.U64Vector4, glm_typing.Number]) -> u64vec4: ... + def __iadd__(self, other: Union[glm_typing.U64Vector4, glm_typing.Number]) -> u64vec4: ... + + def __sub__(self, other: Union[glm_typing.U64Vector4, glm_typing.Number]) -> u64vec4: ... + def __rsub__(self, other: Union[glm_typing.U64Vector4, glm_typing.Number]) -> u64vec4: ... + def __isub__(self, other: Union[glm_typing.U64Vector4, glm_typing.Number]) -> u64vec4: ... + + @overload + def __mul__(self, other: glm_typing.Number) -> u64vec4: ... + @overload + def __mul__(self, other: glm_typing.U64Vector4) -> u64vec4: ... + @overload + def __rmul__(self, other: glm_typing.Number) -> u64vec4: ... + @overload + def __rmul__(self, other: glm_typing.U64Vector4) -> u64vec4: ... + @overload + def __imul__(self, other: glm_typing.Number) -> u64vec4: ... + @overload + def __imul__(self, other: glm_typing.U64Vector4) -> u64vec4: ... + + def __mod__(self, other: Union[glm_typing.U64Vector4, glm_typing.Number]) -> u64vec4: ... + def __rmod__(self, other: Union[glm_typing.U64Vector4, glm_typing.Number]) -> u64vec4: ... + def __imod__(self, other: Union[glm_typing.U64Vector4, glm_typing.Number]) -> u64vec4: ... + + def __pow__(self, other: Union[glm_typing.U64Vector4, glm_typing.Number]) -> u64vec4: ... + def __rpow__(self, other: Union[glm_typing.U64Vector4, glm_typing.Number]) -> u64vec4: ... + def __ipow__(self, other: Union[glm_typing.U64Vector4, glm_typing.Number]) -> u64vec4: ... + + def __truediv__(self, other: Union[glm_typing.U64Vector4, glm_typing.Number]) -> u64vec4: ... + def __rtruediv__(self, other: Union[glm_typing.U64Vector4, glm_typing.Number]) -> u64vec4: ... + def __itruediv__(self, other: Union[glm_typing.U64Vector4, glm_typing.Number]) -> u64vec4: ... + + def __floordiv__(self, other: Union[glm_typing.U64Vector4, glm_typing.Number]) -> u64vec4: ... + def __rfloordiv__(self, other: Union[glm_typing.U64Vector4, glm_typing.Number]) -> u64vec4: ... + def __ifloordiv__(self, other: Union[glm_typing.U64Vector4, glm_typing.Number]) -> u64vec4: ... + + @overload + def __matmul__(self, other: glm_typing.Number) -> u64vec4: ... + @overload + def __matmul__(self, other: glm_typing.U64Vector4) -> u64vec4: ... + @overload + def __rmatmul__(self, other: glm_typing.Number) -> u64vec4: ... + @overload + def __rmatmul__(self, other: glm_typing.U64Vector4) -> u64vec4: ... + @overload + def __imatmul__(self, other: glm_typing.Number) -> u64vec4: ... + @overload + def __imatmul__(self, other: glm_typing.U64Vector4) -> u64vec4: ... + + def __divmod__(self, other: u64vec4) -> Tuple[u64vec4, u64vec4]: ... + + + +class u8vec1: + x: int + + + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: Union[glm_typing.AnyAnyVector1, glm_typing.UAnyVector2, glm_typing.UAnyVector3, glm_typing.UAnyVector4]) -> None: ... + + def __len__(self) -> Literal[1]: ... + def __getitem__(self, index: int) -> int: ... + def __setitem__(self, index: int, value: glm_typing.Number) -> None: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[int, None, None]: ... + + def __neg__(self) -> u8vec1: ... + def __pos__(self) -> u8vec1: ... + def __abs__(self) -> u8vec1: ... + + def __lt__(self, other: Any) -> bool: ... + def __le__(self, other: Any) -> bool: ... + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + def __ge__(self, other: Any) -> bool: ... + def __gt__(self, other: Any) -> bool: ... + + def to_list(self) -> List[int]: ... + def to_tuple(self) -> Tuple[int]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> u8vec1: ... + + def __add__(self, other: Union[glm_typing.U8Vector1, glm_typing.Number]) -> u8vec1: ... + def __radd__(self, other: Union[glm_typing.U8Vector1, glm_typing.Number]) -> u8vec1: ... + def __iadd__(self, other: Union[glm_typing.U8Vector1, glm_typing.Number]) -> u8vec1: ... + + def __sub__(self, other: Union[glm_typing.U8Vector1, glm_typing.Number]) -> u8vec1: ... + def __rsub__(self, other: Union[glm_typing.U8Vector1, glm_typing.Number]) -> u8vec1: ... + def __isub__(self, other: Union[glm_typing.U8Vector1, glm_typing.Number]) -> u8vec1: ... + + @overload + def __mul__(self, other: glm_typing.Number) -> u8vec1: ... + @overload + def __mul__(self, other: glm_typing.U8Vector1) -> u8vec1: ... + @overload + def __rmul__(self, other: glm_typing.Number) -> u8vec1: ... + @overload + def __rmul__(self, other: glm_typing.U8Vector1) -> u8vec1: ... + @overload + def __imul__(self, other: glm_typing.Number) -> u8vec1: ... + @overload + def __imul__(self, other: glm_typing.U8Vector1) -> u8vec1: ... + + def __mod__(self, other: Union[glm_typing.U8Vector1, glm_typing.Number]) -> u8vec1: ... + def __rmod__(self, other: Union[glm_typing.U8Vector1, glm_typing.Number]) -> u8vec1: ... + def __imod__(self, other: Union[glm_typing.U8Vector1, glm_typing.Number]) -> u8vec1: ... + + def __pow__(self, other: Union[glm_typing.U8Vector1, glm_typing.Number]) -> u8vec1: ... + def __rpow__(self, other: Union[glm_typing.U8Vector1, glm_typing.Number]) -> u8vec1: ... + def __ipow__(self, other: Union[glm_typing.U8Vector1, glm_typing.Number]) -> u8vec1: ... + + def __truediv__(self, other: Union[glm_typing.U8Vector1, glm_typing.Number]) -> u8vec1: ... + def __rtruediv__(self, other: Union[glm_typing.U8Vector1, glm_typing.Number]) -> u8vec1: ... + def __itruediv__(self, other: Union[glm_typing.U8Vector1, glm_typing.Number]) -> u8vec1: ... + + def __floordiv__(self, other: Union[glm_typing.U8Vector1, glm_typing.Number]) -> u8vec1: ... + def __rfloordiv__(self, other: Union[glm_typing.U8Vector1, glm_typing.Number]) -> u8vec1: ... + def __ifloordiv__(self, other: Union[glm_typing.U8Vector1, glm_typing.Number]) -> u8vec1: ... + + @overload + def __matmul__(self, other: glm_typing.Number) -> u8vec1: ... + @overload + def __matmul__(self, other: glm_typing.U8Vector1) -> u8vec1: ... + @overload + def __rmatmul__(self, other: glm_typing.Number) -> u8vec1: ... + @overload + def __rmatmul__(self, other: glm_typing.U8Vector1) -> u8vec1: ... + @overload + def __imatmul__(self, other: glm_typing.Number) -> u8vec1: ... + @overload + def __imatmul__(self, other: glm_typing.U8Vector1) -> u8vec1: ... + + def __divmod__(self, other: u8vec1) -> Tuple[u8vec1, u8vec1]: ... + + + +class u8vec2: + x: int + y: int + + + @property + def xy(self) -> u8vec2: ... + @xy.setter + def xy(self, value: glm_typing.U8Vector2) -> None: ... + + @property + def yx(self) -> u8vec2: ... + @yx.setter + def yx(self, value: glm_typing.U8Vector2) -> None: ... + + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: glm_typing.Number, y: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: Union[glm_typing.AnyAnyVector2, glm_typing.UAnyVector3, glm_typing.UAnyVector4]) -> None: ... + + def __len__(self) -> Literal[2]: ... + def __getitem__(self, index: int) -> int: ... + def __setitem__(self, index: int, value: glm_typing.Number) -> None: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[int, None, None]: ... + + def __neg__(self) -> u8vec2: ... + def __pos__(self) -> u8vec2: ... + def __abs__(self) -> u8vec2: ... + + def __lt__(self, other: Any) -> bool: ... + def __le__(self, other: Any) -> bool: ... + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + def __ge__(self, other: Any) -> bool: ... + def __gt__(self, other: Any) -> bool: ... + + def to_list(self) -> List[int]: ... + def to_tuple(self) -> Tuple[int, int]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> u8vec2: ... + + def __add__(self, other: Union[glm_typing.U8Vector2, glm_typing.Number]) -> u8vec2: ... + def __radd__(self, other: Union[glm_typing.U8Vector2, glm_typing.Number]) -> u8vec2: ... + def __iadd__(self, other: Union[glm_typing.U8Vector2, glm_typing.Number]) -> u8vec2: ... + + def __sub__(self, other: Union[glm_typing.U8Vector2, glm_typing.Number]) -> u8vec2: ... + def __rsub__(self, other: Union[glm_typing.U8Vector2, glm_typing.Number]) -> u8vec2: ... + def __isub__(self, other: Union[glm_typing.U8Vector2, glm_typing.Number]) -> u8vec2: ... + + @overload + def __mul__(self, other: glm_typing.Number) -> u8vec2: ... + @overload + def __mul__(self, other: glm_typing.U8Vector2) -> u8vec2: ... + @overload + def __rmul__(self, other: glm_typing.Number) -> u8vec2: ... + @overload + def __rmul__(self, other: glm_typing.U8Vector2) -> u8vec2: ... + @overload + def __imul__(self, other: glm_typing.Number) -> u8vec2: ... + @overload + def __imul__(self, other: glm_typing.U8Vector2) -> u8vec2: ... + + def __mod__(self, other: Union[glm_typing.U8Vector2, glm_typing.Number]) -> u8vec2: ... + def __rmod__(self, other: Union[glm_typing.U8Vector2, glm_typing.Number]) -> u8vec2: ... + def __imod__(self, other: Union[glm_typing.U8Vector2, glm_typing.Number]) -> u8vec2: ... + + def __pow__(self, other: Union[glm_typing.U8Vector2, glm_typing.Number]) -> u8vec2: ... + def __rpow__(self, other: Union[glm_typing.U8Vector2, glm_typing.Number]) -> u8vec2: ... + def __ipow__(self, other: Union[glm_typing.U8Vector2, glm_typing.Number]) -> u8vec2: ... + + def __truediv__(self, other: Union[glm_typing.U8Vector2, glm_typing.Number]) -> u8vec2: ... + def __rtruediv__(self, other: Union[glm_typing.U8Vector2, glm_typing.Number]) -> u8vec2: ... + def __itruediv__(self, other: Union[glm_typing.U8Vector2, glm_typing.Number]) -> u8vec2: ... + + def __floordiv__(self, other: Union[glm_typing.U8Vector2, glm_typing.Number]) -> u8vec2: ... + def __rfloordiv__(self, other: Union[glm_typing.U8Vector2, glm_typing.Number]) -> u8vec2: ... + def __ifloordiv__(self, other: Union[glm_typing.U8Vector2, glm_typing.Number]) -> u8vec2: ... + + @overload + def __matmul__(self, other: glm_typing.Number) -> u8vec2: ... + @overload + def __matmul__(self, other: glm_typing.U8Vector2) -> u8vec2: ... + @overload + def __rmatmul__(self, other: glm_typing.Number) -> u8vec2: ... + @overload + def __rmatmul__(self, other: glm_typing.U8Vector2) -> u8vec2: ... + @overload + def __imatmul__(self, other: glm_typing.Number) -> u8vec2: ... + @overload + def __imatmul__(self, other: glm_typing.U8Vector2) -> u8vec2: ... + + def __divmod__(self, other: u8vec2) -> Tuple[u8vec2, u8vec2]: ... + + + +class u8vec3: + x: int + y: int + z: int + + + @property + def xy(self) -> u8vec2: ... + @xy.setter + def xy(self, value: glm_typing.U8Vector2) -> None: ... + + @property + def yx(self) -> u8vec2: ... + @yx.setter + def yx(self, value: glm_typing.U8Vector2) -> None: ... + + @property + def xz(self) -> u8vec2: ... + @xz.setter + def xz(self, value: glm_typing.U8Vector2) -> None: ... + + @property + def zx(self) -> u8vec2: ... + @zx.setter + def zx(self, value: glm_typing.U8Vector2) -> None: ... + + @property + def yz(self) -> u8vec2: ... + @yz.setter + def yz(self, value: glm_typing.U8Vector2) -> None: ... + + @property + def zy(self) -> u8vec2: ... + @zy.setter + def zy(self, value: glm_typing.U8Vector2) -> None: ... + + @property + def xyz(self) -> u8vec3: ... + @xyz.setter + def xyz(self, value: glm_typing.U8Vector3) -> None: ... + + @property + def xzy(self) -> u8vec3: ... + @xzy.setter + def xzy(self, value: glm_typing.U8Vector3) -> None: ... + + @property + def yxz(self) -> u8vec3: ... + @yxz.setter + def yxz(self, value: glm_typing.U8Vector3) -> None: ... + + @property + def yzx(self) -> u8vec3: ... + @yzx.setter + def yzx(self, value: glm_typing.U8Vector3) -> None: ... + + @property + def zxy(self) -> u8vec3: ... + @zxy.setter + def zxy(self, value: glm_typing.U8Vector3) -> None: ... + + @property + def zyx(self) -> u8vec3: ... + @zyx.setter + def zyx(self, value: glm_typing.U8Vector3) -> None: ... + + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: glm_typing.Number, y: glm_typing.Number, z: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: Union[glm_typing.AnyAnyVector3, glm_typing.UAnyVector4]) -> None: ... + + def __len__(self) -> Literal[3]: ... + def __getitem__(self, index: int) -> int: ... + def __setitem__(self, index: int, value: glm_typing.Number) -> None: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[int, None, None]: ... + + def __neg__(self) -> u8vec3: ... + def __pos__(self) -> u8vec3: ... + def __abs__(self) -> u8vec3: ... + + def __lt__(self, other: Any) -> bool: ... + def __le__(self, other: Any) -> bool: ... + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + def __ge__(self, other: Any) -> bool: ... + def __gt__(self, other: Any) -> bool: ... + + def to_list(self) -> List[int]: ... + def to_tuple(self) -> Tuple[int, int, int]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> u8vec3: ... + + def __add__(self, other: Union[glm_typing.U8Vector3, glm_typing.Number]) -> u8vec3: ... + def __radd__(self, other: Union[glm_typing.U8Vector3, glm_typing.Number]) -> u8vec3: ... + def __iadd__(self, other: Union[glm_typing.U8Vector3, glm_typing.Number]) -> u8vec3: ... + + def __sub__(self, other: Union[glm_typing.U8Vector3, glm_typing.Number]) -> u8vec3: ... + def __rsub__(self, other: Union[glm_typing.U8Vector3, glm_typing.Number]) -> u8vec3: ... + def __isub__(self, other: Union[glm_typing.U8Vector3, glm_typing.Number]) -> u8vec3: ... + + @overload + def __mul__(self, other: glm_typing.Number) -> u8vec3: ... + @overload + def __mul__(self, other: glm_typing.U8Vector3) -> u8vec3: ... + @overload + def __rmul__(self, other: glm_typing.Number) -> u8vec3: ... + @overload + def __rmul__(self, other: glm_typing.U8Vector3) -> u8vec3: ... + @overload + def __imul__(self, other: glm_typing.Number) -> u8vec3: ... + @overload + def __imul__(self, other: glm_typing.U8Vector3) -> u8vec3: ... + + def __mod__(self, other: Union[glm_typing.U8Vector3, glm_typing.Number]) -> u8vec3: ... + def __rmod__(self, other: Union[glm_typing.U8Vector3, glm_typing.Number]) -> u8vec3: ... + def __imod__(self, other: Union[glm_typing.U8Vector3, glm_typing.Number]) -> u8vec3: ... + + def __pow__(self, other: Union[glm_typing.U8Vector3, glm_typing.Number]) -> u8vec3: ... + def __rpow__(self, other: Union[glm_typing.U8Vector3, glm_typing.Number]) -> u8vec3: ... + def __ipow__(self, other: Union[glm_typing.U8Vector3, glm_typing.Number]) -> u8vec3: ... + + def __truediv__(self, other: Union[glm_typing.U8Vector3, glm_typing.Number]) -> u8vec3: ... + def __rtruediv__(self, other: Union[glm_typing.U8Vector3, glm_typing.Number]) -> u8vec3: ... + def __itruediv__(self, other: Union[glm_typing.U8Vector3, glm_typing.Number]) -> u8vec3: ... + + def __floordiv__(self, other: Union[glm_typing.U8Vector3, glm_typing.Number]) -> u8vec3: ... + def __rfloordiv__(self, other: Union[glm_typing.U8Vector3, glm_typing.Number]) -> u8vec3: ... + def __ifloordiv__(self, other: Union[glm_typing.U8Vector3, glm_typing.Number]) -> u8vec3: ... + + @overload + def __matmul__(self, other: glm_typing.Number) -> u8vec3: ... + @overload + def __matmul__(self, other: glm_typing.U8Vector3) -> u8vec3: ... + @overload + def __rmatmul__(self, other: glm_typing.Number) -> u8vec3: ... + @overload + def __rmatmul__(self, other: glm_typing.U8Vector3) -> u8vec3: ... + @overload + def __imatmul__(self, other: glm_typing.Number) -> u8vec3: ... + @overload + def __imatmul__(self, other: glm_typing.U8Vector3) -> u8vec3: ... + + def __divmod__(self, other: u8vec3) -> Tuple[u8vec3, u8vec3]: ... + + + +class u8vec4: + x: int + y: int + z: int + w: int + + + @property + def xy(self) -> u8vec2: ... + @xy.setter + def xy(self, value: glm_typing.U8Vector2) -> None: ... + + @property + def yx(self) -> u8vec2: ... + @yx.setter + def yx(self, value: glm_typing.U8Vector2) -> None: ... + + @property + def xz(self) -> u8vec2: ... + @xz.setter + def xz(self, value: glm_typing.U8Vector2) -> None: ... + + @property + def zx(self) -> u8vec2: ... + @zx.setter + def zx(self, value: glm_typing.U8Vector2) -> None: ... + + @property + def xw(self) -> u8vec2: ... + @xw.setter + def xw(self, value: glm_typing.U8Vector2) -> None: ... + + @property + def wx(self) -> u8vec2: ... + @wx.setter + def wx(self, value: glm_typing.U8Vector2) -> None: ... + + @property + def yz(self) -> u8vec2: ... + @yz.setter + def yz(self, value: glm_typing.U8Vector2) -> None: ... + + @property + def zy(self) -> u8vec2: ... + @zy.setter + def zy(self, value: glm_typing.U8Vector2) -> None: ... + + @property + def yw(self) -> u8vec2: ... + @yw.setter + def yw(self, value: glm_typing.U8Vector2) -> None: ... + + @property + def wy(self) -> u8vec2: ... + @wy.setter + def wy(self, value: glm_typing.U8Vector2) -> None: ... + + @property + def zw(self) -> u8vec2: ... + @zw.setter + def zw(self, value: glm_typing.U8Vector2) -> None: ... + + @property + def wz(self) -> u8vec2: ... + @wz.setter + def wz(self, value: glm_typing.U8Vector2) -> None: ... + + @property + def xyz(self) -> u8vec3: ... + @xyz.setter + def xyz(self, value: glm_typing.U8Vector3) -> None: ... + + @property + def xzy(self) -> u8vec3: ... + @xzy.setter + def xzy(self, value: glm_typing.U8Vector3) -> None: ... + + @property + def yxz(self) -> u8vec3: ... + @yxz.setter + def yxz(self, value: glm_typing.U8Vector3) -> None: ... + + @property + def yzx(self) -> u8vec3: ... + @yzx.setter + def yzx(self, value: glm_typing.U8Vector3) -> None: ... + + @property + def zxy(self) -> u8vec3: ... + @zxy.setter + def zxy(self, value: glm_typing.U8Vector3) -> None: ... + + @property + def zyx(self) -> u8vec3: ... + @zyx.setter + def zyx(self, value: glm_typing.U8Vector3) -> None: ... + + @property + def xyw(self) -> u8vec3: ... + @xyw.setter + def xyw(self, value: glm_typing.U8Vector3) -> None: ... + + @property + def xwy(self) -> u8vec3: ... + @xwy.setter + def xwy(self, value: glm_typing.U8Vector3) -> None: ... + + @property + def yxw(self) -> u8vec3: ... + @yxw.setter + def yxw(self, value: glm_typing.U8Vector3) -> None: ... + + @property + def ywx(self) -> u8vec3: ... + @ywx.setter + def ywx(self, value: glm_typing.U8Vector3) -> None: ... + + @property + def wxy(self) -> u8vec3: ... + @wxy.setter + def wxy(self, value: glm_typing.U8Vector3) -> None: ... + + @property + def wyx(self) -> u8vec3: ... + @wyx.setter + def wyx(self, value: glm_typing.U8Vector3) -> None: ... + + @property + def xzw(self) -> u8vec3: ... + @xzw.setter + def xzw(self, value: glm_typing.U8Vector3) -> None: ... + + @property + def xwz(self) -> u8vec3: ... + @xwz.setter + def xwz(self, value: glm_typing.U8Vector3) -> None: ... + + @property + def zxw(self) -> u8vec3: ... + @zxw.setter + def zxw(self, value: glm_typing.U8Vector3) -> None: ... + + @property + def zwx(self) -> u8vec3: ... + @zwx.setter + def zwx(self, value: glm_typing.U8Vector3) -> None: ... + + @property + def wxz(self) -> u8vec3: ... + @wxz.setter + def wxz(self, value: glm_typing.U8Vector3) -> None: ... + + @property + def wzx(self) -> u8vec3: ... + @wzx.setter + def wzx(self, value: glm_typing.U8Vector3) -> None: ... + + @property + def yzw(self) -> u8vec3: ... + @yzw.setter + def yzw(self, value: glm_typing.U8Vector3) -> None: ... + + @property + def ywz(self) -> u8vec3: ... + @ywz.setter + def ywz(self, value: glm_typing.U8Vector3) -> None: ... + + @property + def zyw(self) -> u8vec3: ... + @zyw.setter + def zyw(self, value: glm_typing.U8Vector3) -> None: ... + + @property + def zwy(self) -> u8vec3: ... + @zwy.setter + def zwy(self, value: glm_typing.U8Vector3) -> None: ... + + @property + def wyz(self) -> u8vec3: ... + @wyz.setter + def wyz(self, value: glm_typing.U8Vector3) -> None: ... + + @property + def wzy(self) -> u8vec3: ... + @wzy.setter + def wzy(self, value: glm_typing.U8Vector3) -> None: ... + + @property + def xyzw(self) -> u8vec4: ... + @xyzw.setter + def xyzw(self, value: glm_typing.U8Vector4) -> None: ... + + @property + def xywz(self) -> u8vec4: ... + @xywz.setter + def xywz(self, value: glm_typing.U8Vector4) -> None: ... + + @property + def xzyw(self) -> u8vec4: ... + @xzyw.setter + def xzyw(self, value: glm_typing.U8Vector4) -> None: ... + + @property + def xzwy(self) -> u8vec4: ... + @xzwy.setter + def xzwy(self, value: glm_typing.U8Vector4) -> None: ... + + @property + def xwyz(self) -> u8vec4: ... + @xwyz.setter + def xwyz(self, value: glm_typing.U8Vector4) -> None: ... + + @property + def xwzy(self) -> u8vec4: ... + @xwzy.setter + def xwzy(self, value: glm_typing.U8Vector4) -> None: ... + + @property + def yxzw(self) -> u8vec4: ... + @yxzw.setter + def yxzw(self, value: glm_typing.U8Vector4) -> None: ... + + @property + def yxwz(self) -> u8vec4: ... + @yxwz.setter + def yxwz(self, value: glm_typing.U8Vector4) -> None: ... + + @property + def yzxw(self) -> u8vec4: ... + @yzxw.setter + def yzxw(self, value: glm_typing.U8Vector4) -> None: ... + + @property + def yzwx(self) -> u8vec4: ... + @yzwx.setter + def yzwx(self, value: glm_typing.U8Vector4) -> None: ... + + @property + def ywxz(self) -> u8vec4: ... + @ywxz.setter + def ywxz(self, value: glm_typing.U8Vector4) -> None: ... + + @property + def ywzx(self) -> u8vec4: ... + @ywzx.setter + def ywzx(self, value: glm_typing.U8Vector4) -> None: ... + + @property + def zxyw(self) -> u8vec4: ... + @zxyw.setter + def zxyw(self, value: glm_typing.U8Vector4) -> None: ... + + @property + def zxwy(self) -> u8vec4: ... + @zxwy.setter + def zxwy(self, value: glm_typing.U8Vector4) -> None: ... + + @property + def zyxw(self) -> u8vec4: ... + @zyxw.setter + def zyxw(self, value: glm_typing.U8Vector4) -> None: ... + + @property + def zywx(self) -> u8vec4: ... + @zywx.setter + def zywx(self, value: glm_typing.U8Vector4) -> None: ... + + @property + def zwxy(self) -> u8vec4: ... + @zwxy.setter + def zwxy(self, value: glm_typing.U8Vector4) -> None: ... + + @property + def zwyx(self) -> u8vec4: ... + @zwyx.setter + def zwyx(self, value: glm_typing.U8Vector4) -> None: ... + + @property + def wxyz(self) -> u8vec4: ... + @wxyz.setter + def wxyz(self, value: glm_typing.U8Vector4) -> None: ... + + @property + def wxzy(self) -> u8vec4: ... + @wxzy.setter + def wxzy(self, value: glm_typing.U8Vector4) -> None: ... + + @property + def wyxz(self) -> u8vec4: ... + @wyxz.setter + def wyxz(self, value: glm_typing.U8Vector4) -> None: ... + + @property + def wyzx(self) -> u8vec4: ... + @wyzx.setter + def wyzx(self, value: glm_typing.U8Vector4) -> None: ... + + @property + def wzxy(self) -> u8vec4: ... + @wzxy.setter + def wzxy(self, value: glm_typing.U8Vector4) -> None: ... + + @property + def wzyx(self) -> u8vec4: ... + @wzyx.setter + def wzyx(self, value: glm_typing.U8Vector4) -> None: ... + + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: glm_typing.Number, y: glm_typing.Number, z: glm_typing.Number, w: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: glm_typing.AnyAnyVector4) -> None: ... + + def __len__(self) -> Literal[4]: ... + def __getitem__(self, index: int) -> int: ... + def __setitem__(self, index: int, value: glm_typing.Number) -> None: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[int, None, None]: ... + + def __neg__(self) -> u8vec4: ... + def __pos__(self) -> u8vec4: ... + def __abs__(self) -> u8vec4: ... + + def __lt__(self, other: Any) -> bool: ... + def __le__(self, other: Any) -> bool: ... + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + def __ge__(self, other: Any) -> bool: ... + def __gt__(self, other: Any) -> bool: ... + + def to_list(self) -> List[int]: ... + def to_tuple(self) -> Tuple[int, int, int, int]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> u8vec4: ... + + def __add__(self, other: Union[glm_typing.U8Vector4, glm_typing.Number]) -> u8vec4: ... + def __radd__(self, other: Union[glm_typing.U8Vector4, glm_typing.Number]) -> u8vec4: ... + def __iadd__(self, other: Union[glm_typing.U8Vector4, glm_typing.Number]) -> u8vec4: ... + + def __sub__(self, other: Union[glm_typing.U8Vector4, glm_typing.Number]) -> u8vec4: ... + def __rsub__(self, other: Union[glm_typing.U8Vector4, glm_typing.Number]) -> u8vec4: ... + def __isub__(self, other: Union[glm_typing.U8Vector4, glm_typing.Number]) -> u8vec4: ... + + @overload + def __mul__(self, other: glm_typing.Number) -> u8vec4: ... + @overload + def __mul__(self, other: glm_typing.U8Vector4) -> u8vec4: ... + @overload + def __rmul__(self, other: glm_typing.Number) -> u8vec4: ... + @overload + def __rmul__(self, other: glm_typing.U8Vector4) -> u8vec4: ... + @overload + def __imul__(self, other: glm_typing.Number) -> u8vec4: ... + @overload + def __imul__(self, other: glm_typing.U8Vector4) -> u8vec4: ... + + def __mod__(self, other: Union[glm_typing.U8Vector4, glm_typing.Number]) -> u8vec4: ... + def __rmod__(self, other: Union[glm_typing.U8Vector4, glm_typing.Number]) -> u8vec4: ... + def __imod__(self, other: Union[glm_typing.U8Vector4, glm_typing.Number]) -> u8vec4: ... + + def __pow__(self, other: Union[glm_typing.U8Vector4, glm_typing.Number]) -> u8vec4: ... + def __rpow__(self, other: Union[glm_typing.U8Vector4, glm_typing.Number]) -> u8vec4: ... + def __ipow__(self, other: Union[glm_typing.U8Vector4, glm_typing.Number]) -> u8vec4: ... + + def __truediv__(self, other: Union[glm_typing.U8Vector4, glm_typing.Number]) -> u8vec4: ... + def __rtruediv__(self, other: Union[glm_typing.U8Vector4, glm_typing.Number]) -> u8vec4: ... + def __itruediv__(self, other: Union[glm_typing.U8Vector4, glm_typing.Number]) -> u8vec4: ... + + def __floordiv__(self, other: Union[glm_typing.U8Vector4, glm_typing.Number]) -> u8vec4: ... + def __rfloordiv__(self, other: Union[glm_typing.U8Vector4, glm_typing.Number]) -> u8vec4: ... + def __ifloordiv__(self, other: Union[glm_typing.U8Vector4, glm_typing.Number]) -> u8vec4: ... + + @overload + def __matmul__(self, other: glm_typing.Number) -> u8vec4: ... + @overload + def __matmul__(self, other: glm_typing.U8Vector4) -> u8vec4: ... + @overload + def __rmatmul__(self, other: glm_typing.Number) -> u8vec4: ... + @overload + def __rmatmul__(self, other: glm_typing.U8Vector4) -> u8vec4: ... + @overload + def __imatmul__(self, other: glm_typing.Number) -> u8vec4: ... + @overload + def __imatmul__(self, other: glm_typing.U8Vector4) -> u8vec4: ... + + def __divmod__(self, other: u8vec4) -> Tuple[u8vec4, u8vec4]: ... + + + +class umvec2: + x: int + y: int + + + @property + def xy(self) -> u32vec2: ... + @xy.setter + def xy(self, value: glm_typing.U32Vector2) -> None: ... + + @property + def yx(self) -> u32vec2: ... + @yx.setter + def yx(self, value: glm_typing.U32Vector2) -> None: ... + + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: glm_typing.Number, y: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: Union[glm_typing.AnyAnyVector2, glm_typing.UAnyVector3, glm_typing.UAnyVector4]) -> None: ... + + def __len__(self) -> Literal[2]: ... + def __getitem__(self, index: int) -> int: ... + def __setitem__(self, index: int, value: glm_typing.Number) -> None: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[int, None, None]: ... + + def __neg__(self) -> umvec2: ... + def __pos__(self) -> umvec2: ... + def __abs__(self) -> umvec2: ... + + def __lt__(self, other: Any) -> bool: ... + def __le__(self, other: Any) -> bool: ... + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + def __ge__(self, other: Any) -> bool: ... + def __gt__(self, other: Any) -> bool: ... + + def to_list(self) -> List[int]: ... + def to_tuple(self) -> Tuple[int, int]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> umvec2: ... + + def __add__(self, other: Union[glm_typing.U32Vector2, glm_typing.Number]) -> umvec2: ... + def __radd__(self, other: Union[glm_typing.U32Vector2, glm_typing.Number]) -> umvec2: ... + def __iadd__(self, other: Union[glm_typing.U32Vector2, glm_typing.Number]) -> umvec2: ... + + def __sub__(self, other: Union[glm_typing.U32Vector2, glm_typing.Number]) -> umvec2: ... + def __rsub__(self, other: Union[glm_typing.U32Vector2, glm_typing.Number]) -> umvec2: ... + def __isub__(self, other: Union[glm_typing.U32Vector2, glm_typing.Number]) -> umvec2: ... + + @overload + def __mul__(self, other: glm_typing.Number) -> umvec2: ... + @overload + def __mul__(self, other: glm_typing.U32Vector2) -> umvec2: ... + @overload + def __mul__(self, other: glm_typing.U32Matrix2x2) -> vec2: ... + @overload + def __mul__(self, other: glm_typing.U32Matrix3x2) -> vec3: ... + @overload + def __mul__(self, other: glm_typing.U32Matrix4x2) -> vec4: ... + @overload + def __rmul__(self, other: glm_typing.Number) -> umvec2: ... + @overload + def __rmul__(self, other: glm_typing.U32Vector2) -> umvec2: ... + @overload + def __rmul__(self, other: glm_typing.U32Matrix2x2) -> vec2: ... + @overload + def __rmul__(self, other: glm_typing.U32Matrix3x2) -> vec3: ... + @overload + def __rmul__(self, other: glm_typing.U32Matrix4x2) -> vec4: ... + @overload + def __imul__(self, other: glm_typing.Number) -> umvec2: ... + @overload + def __imul__(self, other: glm_typing.U32Vector2) -> umvec2: ... + @overload + def __imul__(self, other: glm_typing.U32Matrix2x2) -> vec2: ... + @overload + def __imul__(self, other: glm_typing.U32Matrix3x2) -> vec3: ... + @overload + def __imul__(self, other: glm_typing.U32Matrix4x2) -> vec4: ... + + def __mod__(self, other: Union[glm_typing.U32Vector2, glm_typing.Number]) -> umvec2: ... + def __rmod__(self, other: Union[glm_typing.U32Vector2, glm_typing.Number]) -> umvec2: ... + def __imod__(self, other: Union[glm_typing.U32Vector2, glm_typing.Number]) -> umvec2: ... + + def __pow__(self, other: Union[glm_typing.U32Vector2, glm_typing.Number]) -> umvec2: ... + def __rpow__(self, other: Union[glm_typing.U32Vector2, glm_typing.Number]) -> umvec2: ... + def __ipow__(self, other: Union[glm_typing.U32Vector2, glm_typing.Number]) -> umvec2: ... + + def __truediv__(self, other: Union[glm_typing.U32Vector2, glm_typing.Number]) -> umvec2: ... + def __rtruediv__(self, other: Union[glm_typing.U32Vector2, glm_typing.Number]) -> umvec2: ... + def __itruediv__(self, other: Union[glm_typing.U32Vector2, glm_typing.Number]) -> umvec2: ... + + def __floordiv__(self, other: Union[glm_typing.U32Vector2, glm_typing.Number]) -> umvec2: ... + def __rfloordiv__(self, other: Union[glm_typing.U32Vector2, glm_typing.Number]) -> umvec2: ... + def __ifloordiv__(self, other: Union[glm_typing.U32Vector2, glm_typing.Number]) -> umvec2: ... + + @overload + def __matmul__(self, other: glm_typing.Number) -> umvec2: ... + @overload + def __matmul__(self, other: glm_typing.U32Vector2) -> umvec2: ... + @overload + def __matmul__(self, other: glm_typing.U32Matrix2x2) -> vec2: ... + @overload + def __matmul__(self, other: glm_typing.U32Matrix3x2) -> vec3: ... + @overload + def __matmul__(self, other: glm_typing.U32Matrix4x2) -> vec4: ... + @overload + def __rmatmul__(self, other: glm_typing.Number) -> umvec2: ... + @overload + def __rmatmul__(self, other: glm_typing.U32Vector2) -> umvec2: ... + @overload + def __rmatmul__(self, other: glm_typing.U32Matrix2x2) -> vec2: ... + @overload + def __rmatmul__(self, other: glm_typing.U32Matrix3x2) -> vec3: ... + @overload + def __rmatmul__(self, other: glm_typing.U32Matrix4x2) -> vec4: ... + @overload + def __imatmul__(self, other: glm_typing.Number) -> umvec2: ... + @overload + def __imatmul__(self, other: glm_typing.U32Vector2) -> umvec2: ... + @overload + def __imatmul__(self, other: glm_typing.U32Matrix2x2) -> vec2: ... + @overload + def __imatmul__(self, other: glm_typing.U32Matrix3x2) -> vec3: ... + @overload + def __imatmul__(self, other: glm_typing.U32Matrix4x2) -> vec4: ... + + def __divmod__(self, other: umvec2) -> Tuple[umvec2, umvec2]: ... + + + +class umvec3: + x: int + y: int + z: int + + + @property + def xy(self) -> u32vec2: ... + @xy.setter + def xy(self, value: glm_typing.U32Vector2) -> None: ... + + @property + def yx(self) -> u32vec2: ... + @yx.setter + def yx(self, value: glm_typing.U32Vector2) -> None: ... + + @property + def xz(self) -> u32vec2: ... + @xz.setter + def xz(self, value: glm_typing.U32Vector2) -> None: ... + + @property + def zx(self) -> u32vec2: ... + @zx.setter + def zx(self, value: glm_typing.U32Vector2) -> None: ... + + @property + def yz(self) -> u32vec2: ... + @yz.setter + def yz(self, value: glm_typing.U32Vector2) -> None: ... + + @property + def zy(self) -> u32vec2: ... + @zy.setter + def zy(self, value: glm_typing.U32Vector2) -> None: ... + + @property + def xyz(self) -> u32vec3: ... + @xyz.setter + def xyz(self, value: glm_typing.U32Vector3) -> None: ... + + @property + def xzy(self) -> u32vec3: ... + @xzy.setter + def xzy(self, value: glm_typing.U32Vector3) -> None: ... + + @property + def yxz(self) -> u32vec3: ... + @yxz.setter + def yxz(self, value: glm_typing.U32Vector3) -> None: ... + + @property + def yzx(self) -> u32vec3: ... + @yzx.setter + def yzx(self, value: glm_typing.U32Vector3) -> None: ... + + @property + def zxy(self) -> u32vec3: ... + @zxy.setter + def zxy(self, value: glm_typing.U32Vector3) -> None: ... + + @property + def zyx(self) -> u32vec3: ... + @zyx.setter + def zyx(self, value: glm_typing.U32Vector3) -> None: ... + + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: glm_typing.Number, y: glm_typing.Number, z: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: Union[glm_typing.AnyAnyVector3, glm_typing.UAnyVector4]) -> None: ... + + def __len__(self) -> Literal[3]: ... + def __getitem__(self, index: int) -> int: ... + def __setitem__(self, index: int, value: glm_typing.Number) -> None: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[int, None, None]: ... + + def __neg__(self) -> umvec3: ... + def __pos__(self) -> umvec3: ... + def __abs__(self) -> umvec3: ... + + def __lt__(self, other: Any) -> bool: ... + def __le__(self, other: Any) -> bool: ... + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + def __ge__(self, other: Any) -> bool: ... + def __gt__(self, other: Any) -> bool: ... + + def to_list(self) -> List[int]: ... + def to_tuple(self) -> Tuple[int, int, int]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> umvec3: ... + + def __add__(self, other: Union[glm_typing.U32Vector3, glm_typing.Number]) -> umvec3: ... + def __radd__(self, other: Union[glm_typing.U32Vector3, glm_typing.Number]) -> umvec3: ... + def __iadd__(self, other: Union[glm_typing.U32Vector3, glm_typing.Number]) -> umvec3: ... + + def __sub__(self, other: Union[glm_typing.U32Vector3, glm_typing.Number]) -> umvec3: ... + def __rsub__(self, other: Union[glm_typing.U32Vector3, glm_typing.Number]) -> umvec3: ... + def __isub__(self, other: Union[glm_typing.U32Vector3, glm_typing.Number]) -> umvec3: ... + + @overload + def __mul__(self, other: glm_typing.Number) -> umvec3: ... + @overload + def __mul__(self, other: glm_typing.U32Vector3) -> umvec3: ... + @overload + def __mul__(self, other: glm_typing.U32Matrix2x2) -> vec2: ... + @overload + def __mul__(self, other: glm_typing.U32Matrix3x2) -> vec3: ... + @overload + def __mul__(self, other: glm_typing.U32Matrix4x2) -> vec4: ... + @overload + def __rmul__(self, other: glm_typing.Number) -> umvec3: ... + @overload + def __rmul__(self, other: glm_typing.U32Vector3) -> umvec3: ... + @overload + def __rmul__(self, other: glm_typing.U32Matrix2x2) -> vec2: ... + @overload + def __rmul__(self, other: glm_typing.U32Matrix3x2) -> vec3: ... + @overload + def __rmul__(self, other: glm_typing.U32Matrix4x2) -> vec4: ... + @overload + def __imul__(self, other: glm_typing.Number) -> umvec3: ... + @overload + def __imul__(self, other: glm_typing.U32Vector3) -> umvec3: ... + @overload + def __imul__(self, other: glm_typing.U32Matrix2x2) -> vec2: ... + @overload + def __imul__(self, other: glm_typing.U32Matrix3x2) -> vec3: ... + @overload + def __imul__(self, other: glm_typing.U32Matrix4x2) -> vec4: ... + + def __mod__(self, other: Union[glm_typing.U32Vector3, glm_typing.Number]) -> umvec3: ... + def __rmod__(self, other: Union[glm_typing.U32Vector3, glm_typing.Number]) -> umvec3: ... + def __imod__(self, other: Union[glm_typing.U32Vector3, glm_typing.Number]) -> umvec3: ... + + def __pow__(self, other: Union[glm_typing.U32Vector3, glm_typing.Number]) -> umvec3: ... + def __rpow__(self, other: Union[glm_typing.U32Vector3, glm_typing.Number]) -> umvec3: ... + def __ipow__(self, other: Union[glm_typing.U32Vector3, glm_typing.Number]) -> umvec3: ... + + def __truediv__(self, other: Union[glm_typing.U32Vector3, glm_typing.Number]) -> umvec3: ... + def __rtruediv__(self, other: Union[glm_typing.U32Vector3, glm_typing.Number]) -> umvec3: ... + def __itruediv__(self, other: Union[glm_typing.U32Vector3, glm_typing.Number]) -> umvec3: ... + + def __floordiv__(self, other: Union[glm_typing.U32Vector3, glm_typing.Number]) -> umvec3: ... + def __rfloordiv__(self, other: Union[glm_typing.U32Vector3, glm_typing.Number]) -> umvec3: ... + def __ifloordiv__(self, other: Union[glm_typing.U32Vector3, glm_typing.Number]) -> umvec3: ... + + @overload + def __matmul__(self, other: glm_typing.Number) -> umvec3: ... + @overload + def __matmul__(self, other: glm_typing.U32Vector3) -> umvec3: ... + @overload + def __matmul__(self, other: glm_typing.U32Matrix2x2) -> vec2: ... + @overload + def __matmul__(self, other: glm_typing.U32Matrix3x2) -> vec3: ... + @overload + def __matmul__(self, other: glm_typing.U32Matrix4x2) -> vec4: ... + @overload + def __rmatmul__(self, other: glm_typing.Number) -> umvec3: ... + @overload + def __rmatmul__(self, other: glm_typing.U32Vector3) -> umvec3: ... + @overload + def __rmatmul__(self, other: glm_typing.U32Matrix2x2) -> vec2: ... + @overload + def __rmatmul__(self, other: glm_typing.U32Matrix3x2) -> vec3: ... + @overload + def __rmatmul__(self, other: glm_typing.U32Matrix4x2) -> vec4: ... + @overload + def __imatmul__(self, other: glm_typing.Number) -> umvec3: ... + @overload + def __imatmul__(self, other: glm_typing.U32Vector3) -> umvec3: ... + @overload + def __imatmul__(self, other: glm_typing.U32Matrix2x2) -> vec2: ... + @overload + def __imatmul__(self, other: glm_typing.U32Matrix3x2) -> vec3: ... + @overload + def __imatmul__(self, other: glm_typing.U32Matrix4x2) -> vec4: ... + + def __divmod__(self, other: umvec3) -> Tuple[umvec3, umvec3]: ... + + + +class umvec4: + x: int + y: int + z: int + w: int + + + @property + def xy(self) -> u32vec2: ... + @xy.setter + def xy(self, value: glm_typing.U32Vector2) -> None: ... + + @property + def yx(self) -> u32vec2: ... + @yx.setter + def yx(self, value: glm_typing.U32Vector2) -> None: ... + + @property + def xz(self) -> u32vec2: ... + @xz.setter + def xz(self, value: glm_typing.U32Vector2) -> None: ... + + @property + def zx(self) -> u32vec2: ... + @zx.setter + def zx(self, value: glm_typing.U32Vector2) -> None: ... + + @property + def xw(self) -> u32vec2: ... + @xw.setter + def xw(self, value: glm_typing.U32Vector2) -> None: ... + + @property + def wx(self) -> u32vec2: ... + @wx.setter + def wx(self, value: glm_typing.U32Vector2) -> None: ... + + @property + def yz(self) -> u32vec2: ... + @yz.setter + def yz(self, value: glm_typing.U32Vector2) -> None: ... + + @property + def zy(self) -> u32vec2: ... + @zy.setter + def zy(self, value: glm_typing.U32Vector2) -> None: ... + + @property + def yw(self) -> u32vec2: ... + @yw.setter + def yw(self, value: glm_typing.U32Vector2) -> None: ... + + @property + def wy(self) -> u32vec2: ... + @wy.setter + def wy(self, value: glm_typing.U32Vector2) -> None: ... + + @property + def zw(self) -> u32vec2: ... + @zw.setter + def zw(self, value: glm_typing.U32Vector2) -> None: ... + + @property + def wz(self) -> u32vec2: ... + @wz.setter + def wz(self, value: glm_typing.U32Vector2) -> None: ... + + @property + def xyz(self) -> u32vec3: ... + @xyz.setter + def xyz(self, value: glm_typing.U32Vector3) -> None: ... + + @property + def xzy(self) -> u32vec3: ... + @xzy.setter + def xzy(self, value: glm_typing.U32Vector3) -> None: ... + + @property + def yxz(self) -> u32vec3: ... + @yxz.setter + def yxz(self, value: glm_typing.U32Vector3) -> None: ... + + @property + def yzx(self) -> u32vec3: ... + @yzx.setter + def yzx(self, value: glm_typing.U32Vector3) -> None: ... + + @property + def zxy(self) -> u32vec3: ... + @zxy.setter + def zxy(self, value: glm_typing.U32Vector3) -> None: ... + + @property + def zyx(self) -> u32vec3: ... + @zyx.setter + def zyx(self, value: glm_typing.U32Vector3) -> None: ... + + @property + def xyw(self) -> u32vec3: ... + @xyw.setter + def xyw(self, value: glm_typing.U32Vector3) -> None: ... + + @property + def xwy(self) -> u32vec3: ... + @xwy.setter + def xwy(self, value: glm_typing.U32Vector3) -> None: ... + + @property + def yxw(self) -> u32vec3: ... + @yxw.setter + def yxw(self, value: glm_typing.U32Vector3) -> None: ... + + @property + def ywx(self) -> u32vec3: ... + @ywx.setter + def ywx(self, value: glm_typing.U32Vector3) -> None: ... + + @property + def wxy(self) -> u32vec3: ... + @wxy.setter + def wxy(self, value: glm_typing.U32Vector3) -> None: ... + + @property + def wyx(self) -> u32vec3: ... + @wyx.setter + def wyx(self, value: glm_typing.U32Vector3) -> None: ... + + @property + def xzw(self) -> u32vec3: ... + @xzw.setter + def xzw(self, value: glm_typing.U32Vector3) -> None: ... + + @property + def xwz(self) -> u32vec3: ... + @xwz.setter + def xwz(self, value: glm_typing.U32Vector3) -> None: ... + + @property + def zxw(self) -> u32vec3: ... + @zxw.setter + def zxw(self, value: glm_typing.U32Vector3) -> None: ... + + @property + def zwx(self) -> u32vec3: ... + @zwx.setter + def zwx(self, value: glm_typing.U32Vector3) -> None: ... + + @property + def wxz(self) -> u32vec3: ... + @wxz.setter + def wxz(self, value: glm_typing.U32Vector3) -> None: ... + + @property + def wzx(self) -> u32vec3: ... + @wzx.setter + def wzx(self, value: glm_typing.U32Vector3) -> None: ... + + @property + def yzw(self) -> u32vec3: ... + @yzw.setter + def yzw(self, value: glm_typing.U32Vector3) -> None: ... + + @property + def ywz(self) -> u32vec3: ... + @ywz.setter + def ywz(self, value: glm_typing.U32Vector3) -> None: ... + + @property + def zyw(self) -> u32vec3: ... + @zyw.setter + def zyw(self, value: glm_typing.U32Vector3) -> None: ... + + @property + def zwy(self) -> u32vec3: ... + @zwy.setter + def zwy(self, value: glm_typing.U32Vector3) -> None: ... + + @property + def wyz(self) -> u32vec3: ... + @wyz.setter + def wyz(self, value: glm_typing.U32Vector3) -> None: ... + + @property + def wzy(self) -> u32vec3: ... + @wzy.setter + def wzy(self, value: glm_typing.U32Vector3) -> None: ... + + @property + def xyzw(self) -> u32vec4: ... + @xyzw.setter + def xyzw(self, value: glm_typing.U32Vector4) -> None: ... + + @property + def xywz(self) -> u32vec4: ... + @xywz.setter + def xywz(self, value: glm_typing.U32Vector4) -> None: ... + + @property + def xzyw(self) -> u32vec4: ... + @xzyw.setter + def xzyw(self, value: glm_typing.U32Vector4) -> None: ... + + @property + def xzwy(self) -> u32vec4: ... + @xzwy.setter + def xzwy(self, value: glm_typing.U32Vector4) -> None: ... + + @property + def xwyz(self) -> u32vec4: ... + @xwyz.setter + def xwyz(self, value: glm_typing.U32Vector4) -> None: ... + + @property + def xwzy(self) -> u32vec4: ... + @xwzy.setter + def xwzy(self, value: glm_typing.U32Vector4) -> None: ... + + @property + def yxzw(self) -> u32vec4: ... + @yxzw.setter + def yxzw(self, value: glm_typing.U32Vector4) -> None: ... + + @property + def yxwz(self) -> u32vec4: ... + @yxwz.setter + def yxwz(self, value: glm_typing.U32Vector4) -> None: ... + + @property + def yzxw(self) -> u32vec4: ... + @yzxw.setter + def yzxw(self, value: glm_typing.U32Vector4) -> None: ... + + @property + def yzwx(self) -> u32vec4: ... + @yzwx.setter + def yzwx(self, value: glm_typing.U32Vector4) -> None: ... + + @property + def ywxz(self) -> u32vec4: ... + @ywxz.setter + def ywxz(self, value: glm_typing.U32Vector4) -> None: ... + + @property + def ywzx(self) -> u32vec4: ... + @ywzx.setter + def ywzx(self, value: glm_typing.U32Vector4) -> None: ... + + @property + def zxyw(self) -> u32vec4: ... + @zxyw.setter + def zxyw(self, value: glm_typing.U32Vector4) -> None: ... + + @property + def zxwy(self) -> u32vec4: ... + @zxwy.setter + def zxwy(self, value: glm_typing.U32Vector4) -> None: ... + + @property + def zyxw(self) -> u32vec4: ... + @zyxw.setter + def zyxw(self, value: glm_typing.U32Vector4) -> None: ... + + @property + def zywx(self) -> u32vec4: ... + @zywx.setter + def zywx(self, value: glm_typing.U32Vector4) -> None: ... + + @property + def zwxy(self) -> u32vec4: ... + @zwxy.setter + def zwxy(self, value: glm_typing.U32Vector4) -> None: ... + + @property + def zwyx(self) -> u32vec4: ... + @zwyx.setter + def zwyx(self, value: glm_typing.U32Vector4) -> None: ... + + @property + def wxyz(self) -> u32vec4: ... + @wxyz.setter + def wxyz(self, value: glm_typing.U32Vector4) -> None: ... + + @property + def wxzy(self) -> u32vec4: ... + @wxzy.setter + def wxzy(self, value: glm_typing.U32Vector4) -> None: ... + + @property + def wyxz(self) -> u32vec4: ... + @wyxz.setter + def wyxz(self, value: glm_typing.U32Vector4) -> None: ... + + @property + def wyzx(self) -> u32vec4: ... + @wyzx.setter + def wyzx(self, value: glm_typing.U32Vector4) -> None: ... + + @property + def wzxy(self) -> u32vec4: ... + @wzxy.setter + def wzxy(self, value: glm_typing.U32Vector4) -> None: ... + + @property + def wzyx(self) -> u32vec4: ... + @wzyx.setter + def wzyx(self, value: glm_typing.U32Vector4) -> None: ... + + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: glm_typing.Number, y: glm_typing.Number, z: glm_typing.Number, w: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: glm_typing.AnyAnyVector4) -> None: ... + + def __len__(self) -> Literal[4]: ... + def __getitem__(self, index: int) -> int: ... + def __setitem__(self, index: int, value: glm_typing.Number) -> None: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[int, None, None]: ... + + def __neg__(self) -> umvec4: ... + def __pos__(self) -> umvec4: ... + def __abs__(self) -> umvec4: ... + + def __lt__(self, other: Any) -> bool: ... + def __le__(self, other: Any) -> bool: ... + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + def __ge__(self, other: Any) -> bool: ... + def __gt__(self, other: Any) -> bool: ... + + def to_list(self) -> List[int]: ... + def to_tuple(self) -> Tuple[int, int, int, int]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> umvec4: ... + + def __add__(self, other: Union[glm_typing.U32Vector4, glm_typing.Number]) -> umvec4: ... + def __radd__(self, other: Union[glm_typing.U32Vector4, glm_typing.Number]) -> umvec4: ... + def __iadd__(self, other: Union[glm_typing.U32Vector4, glm_typing.Number]) -> umvec4: ... + + def __sub__(self, other: Union[glm_typing.U32Vector4, glm_typing.Number]) -> umvec4: ... + def __rsub__(self, other: Union[glm_typing.U32Vector4, glm_typing.Number]) -> umvec4: ... + def __isub__(self, other: Union[glm_typing.U32Vector4, glm_typing.Number]) -> umvec4: ... + + @overload + def __mul__(self, other: glm_typing.Number) -> umvec4: ... + @overload + def __mul__(self, other: glm_typing.U32Vector4) -> umvec4: ... + @overload + def __mul__(self, other: glm_typing.U32Matrix2x2) -> vec2: ... + @overload + def __mul__(self, other: glm_typing.U32Matrix3x2) -> vec3: ... + @overload + def __mul__(self, other: glm_typing.U32Matrix4x2) -> vec4: ... + @overload + def __rmul__(self, other: glm_typing.Number) -> umvec4: ... + @overload + def __rmul__(self, other: glm_typing.U32Vector4) -> umvec4: ... + @overload + def __rmul__(self, other: glm_typing.U32Matrix2x2) -> vec2: ... + @overload + def __rmul__(self, other: glm_typing.U32Matrix3x2) -> vec3: ... + @overload + def __rmul__(self, other: glm_typing.U32Matrix4x2) -> vec4: ... + @overload + def __imul__(self, other: glm_typing.Number) -> umvec4: ... + @overload + def __imul__(self, other: glm_typing.U32Vector4) -> umvec4: ... + @overload + def __imul__(self, other: glm_typing.U32Matrix2x2) -> vec2: ... + @overload + def __imul__(self, other: glm_typing.U32Matrix3x2) -> vec3: ... + @overload + def __imul__(self, other: glm_typing.U32Matrix4x2) -> vec4: ... + + def __mod__(self, other: Union[glm_typing.U32Vector4, glm_typing.Number]) -> umvec4: ... + def __rmod__(self, other: Union[glm_typing.U32Vector4, glm_typing.Number]) -> umvec4: ... + def __imod__(self, other: Union[glm_typing.U32Vector4, glm_typing.Number]) -> umvec4: ... + + def __pow__(self, other: Union[glm_typing.U32Vector4, glm_typing.Number]) -> umvec4: ... + def __rpow__(self, other: Union[glm_typing.U32Vector4, glm_typing.Number]) -> umvec4: ... + def __ipow__(self, other: Union[glm_typing.U32Vector4, glm_typing.Number]) -> umvec4: ... + + def __truediv__(self, other: Union[glm_typing.U32Vector4, glm_typing.Number]) -> umvec4: ... + def __rtruediv__(self, other: Union[glm_typing.U32Vector4, glm_typing.Number]) -> umvec4: ... + def __itruediv__(self, other: Union[glm_typing.U32Vector4, glm_typing.Number]) -> umvec4: ... + + def __floordiv__(self, other: Union[glm_typing.U32Vector4, glm_typing.Number]) -> umvec4: ... + def __rfloordiv__(self, other: Union[glm_typing.U32Vector4, glm_typing.Number]) -> umvec4: ... + def __ifloordiv__(self, other: Union[glm_typing.U32Vector4, glm_typing.Number]) -> umvec4: ... + + @overload + def __matmul__(self, other: glm_typing.Number) -> umvec4: ... + @overload + def __matmul__(self, other: glm_typing.U32Vector4) -> umvec4: ... + @overload + def __matmul__(self, other: glm_typing.U32Matrix2x2) -> vec2: ... + @overload + def __matmul__(self, other: glm_typing.U32Matrix3x2) -> vec3: ... + @overload + def __matmul__(self, other: glm_typing.U32Matrix4x2) -> vec4: ... + @overload + def __rmatmul__(self, other: glm_typing.Number) -> umvec4: ... + @overload + def __rmatmul__(self, other: glm_typing.U32Vector4) -> umvec4: ... + @overload + def __rmatmul__(self, other: glm_typing.U32Matrix2x2) -> vec2: ... + @overload + def __rmatmul__(self, other: glm_typing.U32Matrix3x2) -> vec3: ... + @overload + def __rmatmul__(self, other: glm_typing.U32Matrix4x2) -> vec4: ... + @overload + def __imatmul__(self, other: glm_typing.Number) -> umvec4: ... + @overload + def __imatmul__(self, other: glm_typing.U32Vector4) -> umvec4: ... + @overload + def __imatmul__(self, other: glm_typing.U32Matrix2x2) -> vec2: ... + @overload + def __imatmul__(self, other: glm_typing.U32Matrix3x2) -> vec3: ... + @overload + def __imatmul__(self, other: glm_typing.U32Matrix4x2) -> vec4: ... + + def __divmod__(self, other: umvec4) -> Tuple[umvec4, umvec4]: ... + + +u32vec1 = uvec1 + +class uvec1: + x: int + + + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: Union[glm_typing.AnyAnyVector1, glm_typing.UAnyVector2, glm_typing.UAnyVector3, glm_typing.UAnyVector4]) -> None: ... + + def __len__(self) -> Literal[1]: ... + def __getitem__(self, index: int) -> int: ... + def __setitem__(self, index: int, value: glm_typing.Number) -> None: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[int, None, None]: ... + + def __neg__(self) -> uvec1: ... + def __pos__(self) -> uvec1: ... + def __abs__(self) -> uvec1: ... + + def __lt__(self, other: Any) -> bool: ... + def __le__(self, other: Any) -> bool: ... + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + def __ge__(self, other: Any) -> bool: ... + def __gt__(self, other: Any) -> bool: ... + + def to_list(self) -> List[int]: ... + def to_tuple(self) -> Tuple[int]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> uvec1: ... + + def __add__(self, other: Union[glm_typing.U32Vector1, glm_typing.Number]) -> uvec1: ... + def __radd__(self, other: Union[glm_typing.U32Vector1, glm_typing.Number]) -> uvec1: ... + def __iadd__(self, other: Union[glm_typing.U32Vector1, glm_typing.Number]) -> uvec1: ... + + def __sub__(self, other: Union[glm_typing.U32Vector1, glm_typing.Number]) -> uvec1: ... + def __rsub__(self, other: Union[glm_typing.U32Vector1, glm_typing.Number]) -> uvec1: ... + def __isub__(self, other: Union[glm_typing.U32Vector1, glm_typing.Number]) -> uvec1: ... + + @overload + def __mul__(self, other: glm_typing.Number) -> uvec1: ... + @overload + def __mul__(self, other: glm_typing.U32Vector1) -> uvec1: ... + @overload + def __mul__(self, other: glm_typing.U32Matrix2x2) -> vec2: ... + @overload + def __mul__(self, other: glm_typing.U32Matrix3x2) -> vec3: ... + @overload + def __mul__(self, other: glm_typing.U32Matrix4x2) -> vec4: ... + @overload + def __rmul__(self, other: glm_typing.Number) -> uvec1: ... + @overload + def __rmul__(self, other: glm_typing.U32Vector1) -> uvec1: ... + @overload + def __rmul__(self, other: glm_typing.U32Matrix2x2) -> vec2: ... + @overload + def __rmul__(self, other: glm_typing.U32Matrix3x2) -> vec3: ... + @overload + def __rmul__(self, other: glm_typing.U32Matrix4x2) -> vec4: ... + @overload + def __imul__(self, other: glm_typing.Number) -> uvec1: ... + @overload + def __imul__(self, other: glm_typing.U32Vector1) -> uvec1: ... + @overload + def __imul__(self, other: glm_typing.U32Matrix2x2) -> vec2: ... + @overload + def __imul__(self, other: glm_typing.U32Matrix3x2) -> vec3: ... + @overload + def __imul__(self, other: glm_typing.U32Matrix4x2) -> vec4: ... + + def __mod__(self, other: Union[glm_typing.U32Vector1, glm_typing.Number]) -> uvec1: ... + def __rmod__(self, other: Union[glm_typing.U32Vector1, glm_typing.Number]) -> uvec1: ... + def __imod__(self, other: Union[glm_typing.U32Vector1, glm_typing.Number]) -> uvec1: ... + + def __pow__(self, other: Union[glm_typing.U32Vector1, glm_typing.Number]) -> uvec1: ... + def __rpow__(self, other: Union[glm_typing.U32Vector1, glm_typing.Number]) -> uvec1: ... + def __ipow__(self, other: Union[glm_typing.U32Vector1, glm_typing.Number]) -> uvec1: ... + + def __truediv__(self, other: Union[glm_typing.U32Vector1, glm_typing.Number]) -> uvec1: ... + def __rtruediv__(self, other: Union[glm_typing.U32Vector1, glm_typing.Number]) -> uvec1: ... + def __itruediv__(self, other: Union[glm_typing.U32Vector1, glm_typing.Number]) -> uvec1: ... + + def __floordiv__(self, other: Union[glm_typing.U32Vector1, glm_typing.Number]) -> uvec1: ... + def __rfloordiv__(self, other: Union[glm_typing.U32Vector1, glm_typing.Number]) -> uvec1: ... + def __ifloordiv__(self, other: Union[glm_typing.U32Vector1, glm_typing.Number]) -> uvec1: ... + + @overload + def __matmul__(self, other: glm_typing.Number) -> uvec1: ... + @overload + def __matmul__(self, other: glm_typing.U32Vector1) -> uvec1: ... + @overload + def __matmul__(self, other: glm_typing.U32Matrix2x2) -> vec2: ... + @overload + def __matmul__(self, other: glm_typing.U32Matrix3x2) -> vec3: ... + @overload + def __matmul__(self, other: glm_typing.U32Matrix4x2) -> vec4: ... + @overload + def __rmatmul__(self, other: glm_typing.Number) -> uvec1: ... + @overload + def __rmatmul__(self, other: glm_typing.U32Vector1) -> uvec1: ... + @overload + def __rmatmul__(self, other: glm_typing.U32Matrix2x2) -> vec2: ... + @overload + def __rmatmul__(self, other: glm_typing.U32Matrix3x2) -> vec3: ... + @overload + def __rmatmul__(self, other: glm_typing.U32Matrix4x2) -> vec4: ... + @overload + def __imatmul__(self, other: glm_typing.Number) -> uvec1: ... + @overload + def __imatmul__(self, other: glm_typing.U32Vector1) -> uvec1: ... + @overload + def __imatmul__(self, other: glm_typing.U32Matrix2x2) -> vec2: ... + @overload + def __imatmul__(self, other: glm_typing.U32Matrix3x2) -> vec3: ... + @overload + def __imatmul__(self, other: glm_typing.U32Matrix4x2) -> vec4: ... + + def __divmod__(self, other: uvec1) -> Tuple[uvec1, uvec1]: ... + + +u32vec2 = uvec2 + +class uvec2: + x: int + y: int + + + @property + def xy(self) -> u32vec2: ... + @xy.setter + def xy(self, value: glm_typing.U32Vector2) -> None: ... + + @property + def yx(self) -> u32vec2: ... + @yx.setter + def yx(self, value: glm_typing.U32Vector2) -> None: ... + + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: glm_typing.Number, y: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: Union[glm_typing.AnyAnyVector2, glm_typing.UAnyVector3, glm_typing.UAnyVector4]) -> None: ... + + def __len__(self) -> Literal[2]: ... + def __getitem__(self, index: int) -> int: ... + def __setitem__(self, index: int, value: glm_typing.Number) -> None: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[int, None, None]: ... + + def __neg__(self) -> uvec2: ... + def __pos__(self) -> uvec2: ... + def __abs__(self) -> uvec2: ... + + def __lt__(self, other: Any) -> bool: ... + def __le__(self, other: Any) -> bool: ... + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + def __ge__(self, other: Any) -> bool: ... + def __gt__(self, other: Any) -> bool: ... + + def to_list(self) -> List[int]: ... + def to_tuple(self) -> Tuple[int, int]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> uvec2: ... + + def __add__(self, other: Union[glm_typing.U32Vector2, glm_typing.Number]) -> uvec2: ... + def __radd__(self, other: Union[glm_typing.U32Vector2, glm_typing.Number]) -> uvec2: ... + def __iadd__(self, other: Union[glm_typing.U32Vector2, glm_typing.Number]) -> uvec2: ... + + def __sub__(self, other: Union[glm_typing.U32Vector2, glm_typing.Number]) -> uvec2: ... + def __rsub__(self, other: Union[glm_typing.U32Vector2, glm_typing.Number]) -> uvec2: ... + def __isub__(self, other: Union[glm_typing.U32Vector2, glm_typing.Number]) -> uvec2: ... + + @overload + def __mul__(self, other: glm_typing.Number) -> uvec2: ... + @overload + def __mul__(self, other: glm_typing.U32Vector2) -> uvec2: ... + @overload + def __mul__(self, other: glm_typing.U32Matrix2x2) -> vec2: ... + @overload + def __mul__(self, other: glm_typing.U32Matrix3x2) -> vec3: ... + @overload + def __mul__(self, other: glm_typing.U32Matrix4x2) -> vec4: ... + @overload + def __rmul__(self, other: glm_typing.Number) -> uvec2: ... + @overload + def __rmul__(self, other: glm_typing.U32Vector2) -> uvec2: ... + @overload + def __rmul__(self, other: glm_typing.U32Matrix2x2) -> vec2: ... + @overload + def __rmul__(self, other: glm_typing.U32Matrix3x2) -> vec3: ... + @overload + def __rmul__(self, other: glm_typing.U32Matrix4x2) -> vec4: ... + @overload + def __imul__(self, other: glm_typing.Number) -> uvec2: ... + @overload + def __imul__(self, other: glm_typing.U32Vector2) -> uvec2: ... + @overload + def __imul__(self, other: glm_typing.U32Matrix2x2) -> vec2: ... + @overload + def __imul__(self, other: glm_typing.U32Matrix3x2) -> vec3: ... + @overload + def __imul__(self, other: glm_typing.U32Matrix4x2) -> vec4: ... + + def __mod__(self, other: Union[glm_typing.U32Vector2, glm_typing.Number]) -> uvec2: ... + def __rmod__(self, other: Union[glm_typing.U32Vector2, glm_typing.Number]) -> uvec2: ... + def __imod__(self, other: Union[glm_typing.U32Vector2, glm_typing.Number]) -> uvec2: ... + + def __pow__(self, other: Union[glm_typing.U32Vector2, glm_typing.Number]) -> uvec2: ... + def __rpow__(self, other: Union[glm_typing.U32Vector2, glm_typing.Number]) -> uvec2: ... + def __ipow__(self, other: Union[glm_typing.U32Vector2, glm_typing.Number]) -> uvec2: ... + + def __truediv__(self, other: Union[glm_typing.U32Vector2, glm_typing.Number]) -> uvec2: ... + def __rtruediv__(self, other: Union[glm_typing.U32Vector2, glm_typing.Number]) -> uvec2: ... + def __itruediv__(self, other: Union[glm_typing.U32Vector2, glm_typing.Number]) -> uvec2: ... + + def __floordiv__(self, other: Union[glm_typing.U32Vector2, glm_typing.Number]) -> uvec2: ... + def __rfloordiv__(self, other: Union[glm_typing.U32Vector2, glm_typing.Number]) -> uvec2: ... + def __ifloordiv__(self, other: Union[glm_typing.U32Vector2, glm_typing.Number]) -> uvec2: ... + + @overload + def __matmul__(self, other: glm_typing.Number) -> uvec2: ... + @overload + def __matmul__(self, other: glm_typing.U32Vector2) -> uvec2: ... + @overload + def __matmul__(self, other: glm_typing.U32Matrix2x2) -> vec2: ... + @overload + def __matmul__(self, other: glm_typing.U32Matrix3x2) -> vec3: ... + @overload + def __matmul__(self, other: glm_typing.U32Matrix4x2) -> vec4: ... + @overload + def __rmatmul__(self, other: glm_typing.Number) -> uvec2: ... + @overload + def __rmatmul__(self, other: glm_typing.U32Vector2) -> uvec2: ... + @overload + def __rmatmul__(self, other: glm_typing.U32Matrix2x2) -> vec2: ... + @overload + def __rmatmul__(self, other: glm_typing.U32Matrix3x2) -> vec3: ... + @overload + def __rmatmul__(self, other: glm_typing.U32Matrix4x2) -> vec4: ... + @overload + def __imatmul__(self, other: glm_typing.Number) -> uvec2: ... + @overload + def __imatmul__(self, other: glm_typing.U32Vector2) -> uvec2: ... + @overload + def __imatmul__(self, other: glm_typing.U32Matrix2x2) -> vec2: ... + @overload + def __imatmul__(self, other: glm_typing.U32Matrix3x2) -> vec3: ... + @overload + def __imatmul__(self, other: glm_typing.U32Matrix4x2) -> vec4: ... + + def __divmod__(self, other: uvec2) -> Tuple[uvec2, uvec2]: ... + + +u32vec3 = uvec3 + +class uvec3: + x: int + y: int + z: int + + + @property + def xy(self) -> u32vec2: ... + @xy.setter + def xy(self, value: glm_typing.U32Vector2) -> None: ... + + @property + def yx(self) -> u32vec2: ... + @yx.setter + def yx(self, value: glm_typing.U32Vector2) -> None: ... + + @property + def xz(self) -> u32vec2: ... + @xz.setter + def xz(self, value: glm_typing.U32Vector2) -> None: ... + + @property + def zx(self) -> u32vec2: ... + @zx.setter + def zx(self, value: glm_typing.U32Vector2) -> None: ... + + @property + def yz(self) -> u32vec2: ... + @yz.setter + def yz(self, value: glm_typing.U32Vector2) -> None: ... + + @property + def zy(self) -> u32vec2: ... + @zy.setter + def zy(self, value: glm_typing.U32Vector2) -> None: ... + + @property + def xyz(self) -> u32vec3: ... + @xyz.setter + def xyz(self, value: glm_typing.U32Vector3) -> None: ... + + @property + def xzy(self) -> u32vec3: ... + @xzy.setter + def xzy(self, value: glm_typing.U32Vector3) -> None: ... + + @property + def yxz(self) -> u32vec3: ... + @yxz.setter + def yxz(self, value: glm_typing.U32Vector3) -> None: ... + + @property + def yzx(self) -> u32vec3: ... + @yzx.setter + def yzx(self, value: glm_typing.U32Vector3) -> None: ... + + @property + def zxy(self) -> u32vec3: ... + @zxy.setter + def zxy(self, value: glm_typing.U32Vector3) -> None: ... + + @property + def zyx(self) -> u32vec3: ... + @zyx.setter + def zyx(self, value: glm_typing.U32Vector3) -> None: ... + + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: glm_typing.Number, y: glm_typing.Number, z: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: Union[glm_typing.AnyAnyVector3, glm_typing.UAnyVector4]) -> None: ... + + def __len__(self) -> Literal[3]: ... + def __getitem__(self, index: int) -> int: ... + def __setitem__(self, index: int, value: glm_typing.Number) -> None: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[int, None, None]: ... + + def __neg__(self) -> uvec3: ... + def __pos__(self) -> uvec3: ... + def __abs__(self) -> uvec3: ... + + def __lt__(self, other: Any) -> bool: ... + def __le__(self, other: Any) -> bool: ... + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + def __ge__(self, other: Any) -> bool: ... + def __gt__(self, other: Any) -> bool: ... + + def to_list(self) -> List[int]: ... + def to_tuple(self) -> Tuple[int, int, int]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> uvec3: ... + + def __add__(self, other: Union[glm_typing.U32Vector3, glm_typing.Number]) -> uvec3: ... + def __radd__(self, other: Union[glm_typing.U32Vector3, glm_typing.Number]) -> uvec3: ... + def __iadd__(self, other: Union[glm_typing.U32Vector3, glm_typing.Number]) -> uvec3: ... + + def __sub__(self, other: Union[glm_typing.U32Vector3, glm_typing.Number]) -> uvec3: ... + def __rsub__(self, other: Union[glm_typing.U32Vector3, glm_typing.Number]) -> uvec3: ... + def __isub__(self, other: Union[glm_typing.U32Vector3, glm_typing.Number]) -> uvec3: ... + + @overload + def __mul__(self, other: glm_typing.Number) -> uvec3: ... + @overload + def __mul__(self, other: glm_typing.U32Vector3) -> uvec3: ... + @overload + def __mul__(self, other: glm_typing.U32Matrix2x2) -> vec2: ... + @overload + def __mul__(self, other: glm_typing.U32Matrix3x2) -> vec3: ... + @overload + def __mul__(self, other: glm_typing.U32Matrix4x2) -> vec4: ... + @overload + def __rmul__(self, other: glm_typing.Number) -> uvec3: ... + @overload + def __rmul__(self, other: glm_typing.U32Vector3) -> uvec3: ... + @overload + def __rmul__(self, other: glm_typing.U32Matrix2x2) -> vec2: ... + @overload + def __rmul__(self, other: glm_typing.U32Matrix3x2) -> vec3: ... + @overload + def __rmul__(self, other: glm_typing.U32Matrix4x2) -> vec4: ... + @overload + def __imul__(self, other: glm_typing.Number) -> uvec3: ... + @overload + def __imul__(self, other: glm_typing.U32Vector3) -> uvec3: ... + @overload + def __imul__(self, other: glm_typing.U32Matrix2x2) -> vec2: ... + @overload + def __imul__(self, other: glm_typing.U32Matrix3x2) -> vec3: ... + @overload + def __imul__(self, other: glm_typing.U32Matrix4x2) -> vec4: ... + + def __mod__(self, other: Union[glm_typing.U32Vector3, glm_typing.Number]) -> uvec3: ... + def __rmod__(self, other: Union[glm_typing.U32Vector3, glm_typing.Number]) -> uvec3: ... + def __imod__(self, other: Union[glm_typing.U32Vector3, glm_typing.Number]) -> uvec3: ... + + def __pow__(self, other: Union[glm_typing.U32Vector3, glm_typing.Number]) -> uvec3: ... + def __rpow__(self, other: Union[glm_typing.U32Vector3, glm_typing.Number]) -> uvec3: ... + def __ipow__(self, other: Union[glm_typing.U32Vector3, glm_typing.Number]) -> uvec3: ... + + def __truediv__(self, other: Union[glm_typing.U32Vector3, glm_typing.Number]) -> uvec3: ... + def __rtruediv__(self, other: Union[glm_typing.U32Vector3, glm_typing.Number]) -> uvec3: ... + def __itruediv__(self, other: Union[glm_typing.U32Vector3, glm_typing.Number]) -> uvec3: ... + + def __floordiv__(self, other: Union[glm_typing.U32Vector3, glm_typing.Number]) -> uvec3: ... + def __rfloordiv__(self, other: Union[glm_typing.U32Vector3, glm_typing.Number]) -> uvec3: ... + def __ifloordiv__(self, other: Union[glm_typing.U32Vector3, glm_typing.Number]) -> uvec3: ... + + @overload + def __matmul__(self, other: glm_typing.Number) -> uvec3: ... + @overload + def __matmul__(self, other: glm_typing.U32Vector3) -> uvec3: ... + @overload + def __matmul__(self, other: glm_typing.U32Matrix2x2) -> vec2: ... + @overload + def __matmul__(self, other: glm_typing.U32Matrix3x2) -> vec3: ... + @overload + def __matmul__(self, other: glm_typing.U32Matrix4x2) -> vec4: ... + @overload + def __rmatmul__(self, other: glm_typing.Number) -> uvec3: ... + @overload + def __rmatmul__(self, other: glm_typing.U32Vector3) -> uvec3: ... + @overload + def __rmatmul__(self, other: glm_typing.U32Matrix2x2) -> vec2: ... + @overload + def __rmatmul__(self, other: glm_typing.U32Matrix3x2) -> vec3: ... + @overload + def __rmatmul__(self, other: glm_typing.U32Matrix4x2) -> vec4: ... + @overload + def __imatmul__(self, other: glm_typing.Number) -> uvec3: ... + @overload + def __imatmul__(self, other: glm_typing.U32Vector3) -> uvec3: ... + @overload + def __imatmul__(self, other: glm_typing.U32Matrix2x2) -> vec2: ... + @overload + def __imatmul__(self, other: glm_typing.U32Matrix3x2) -> vec3: ... + @overload + def __imatmul__(self, other: glm_typing.U32Matrix4x2) -> vec4: ... + + def __divmod__(self, other: uvec3) -> Tuple[uvec3, uvec3]: ... + + +u32vec4 = uvec4 + +class uvec4: + x: int + y: int + z: int + w: int + + + @property + def xy(self) -> u32vec2: ... + @xy.setter + def xy(self, value: glm_typing.U32Vector2) -> None: ... + + @property + def yx(self) -> u32vec2: ... + @yx.setter + def yx(self, value: glm_typing.U32Vector2) -> None: ... + + @property + def xz(self) -> u32vec2: ... + @xz.setter + def xz(self, value: glm_typing.U32Vector2) -> None: ... + + @property + def zx(self) -> u32vec2: ... + @zx.setter + def zx(self, value: glm_typing.U32Vector2) -> None: ... + + @property + def xw(self) -> u32vec2: ... + @xw.setter + def xw(self, value: glm_typing.U32Vector2) -> None: ... + + @property + def wx(self) -> u32vec2: ... + @wx.setter + def wx(self, value: glm_typing.U32Vector2) -> None: ... + + @property + def yz(self) -> u32vec2: ... + @yz.setter + def yz(self, value: glm_typing.U32Vector2) -> None: ... + + @property + def zy(self) -> u32vec2: ... + @zy.setter + def zy(self, value: glm_typing.U32Vector2) -> None: ... + + @property + def yw(self) -> u32vec2: ... + @yw.setter + def yw(self, value: glm_typing.U32Vector2) -> None: ... + + @property + def wy(self) -> u32vec2: ... + @wy.setter + def wy(self, value: glm_typing.U32Vector2) -> None: ... + + @property + def zw(self) -> u32vec2: ... + @zw.setter + def zw(self, value: glm_typing.U32Vector2) -> None: ... + + @property + def wz(self) -> u32vec2: ... + @wz.setter + def wz(self, value: glm_typing.U32Vector2) -> None: ... + + @property + def xyz(self) -> u32vec3: ... + @xyz.setter + def xyz(self, value: glm_typing.U32Vector3) -> None: ... + + @property + def xzy(self) -> u32vec3: ... + @xzy.setter + def xzy(self, value: glm_typing.U32Vector3) -> None: ... + + @property + def yxz(self) -> u32vec3: ... + @yxz.setter + def yxz(self, value: glm_typing.U32Vector3) -> None: ... + + @property + def yzx(self) -> u32vec3: ... + @yzx.setter + def yzx(self, value: glm_typing.U32Vector3) -> None: ... + + @property + def zxy(self) -> u32vec3: ... + @zxy.setter + def zxy(self, value: glm_typing.U32Vector3) -> None: ... + + @property + def zyx(self) -> u32vec3: ... + @zyx.setter + def zyx(self, value: glm_typing.U32Vector3) -> None: ... + + @property + def xyw(self) -> u32vec3: ... + @xyw.setter + def xyw(self, value: glm_typing.U32Vector3) -> None: ... + + @property + def xwy(self) -> u32vec3: ... + @xwy.setter + def xwy(self, value: glm_typing.U32Vector3) -> None: ... + + @property + def yxw(self) -> u32vec3: ... + @yxw.setter + def yxw(self, value: glm_typing.U32Vector3) -> None: ... + + @property + def ywx(self) -> u32vec3: ... + @ywx.setter + def ywx(self, value: glm_typing.U32Vector3) -> None: ... + + @property + def wxy(self) -> u32vec3: ... + @wxy.setter + def wxy(self, value: glm_typing.U32Vector3) -> None: ... + + @property + def wyx(self) -> u32vec3: ... + @wyx.setter + def wyx(self, value: glm_typing.U32Vector3) -> None: ... + + @property + def xzw(self) -> u32vec3: ... + @xzw.setter + def xzw(self, value: glm_typing.U32Vector3) -> None: ... + + @property + def xwz(self) -> u32vec3: ... + @xwz.setter + def xwz(self, value: glm_typing.U32Vector3) -> None: ... + + @property + def zxw(self) -> u32vec3: ... + @zxw.setter + def zxw(self, value: glm_typing.U32Vector3) -> None: ... + + @property + def zwx(self) -> u32vec3: ... + @zwx.setter + def zwx(self, value: glm_typing.U32Vector3) -> None: ... + + @property + def wxz(self) -> u32vec3: ... + @wxz.setter + def wxz(self, value: glm_typing.U32Vector3) -> None: ... + + @property + def wzx(self) -> u32vec3: ... + @wzx.setter + def wzx(self, value: glm_typing.U32Vector3) -> None: ... + + @property + def yzw(self) -> u32vec3: ... + @yzw.setter + def yzw(self, value: glm_typing.U32Vector3) -> None: ... + + @property + def ywz(self) -> u32vec3: ... + @ywz.setter + def ywz(self, value: glm_typing.U32Vector3) -> None: ... + + @property + def zyw(self) -> u32vec3: ... + @zyw.setter + def zyw(self, value: glm_typing.U32Vector3) -> None: ... + + @property + def zwy(self) -> u32vec3: ... + @zwy.setter + def zwy(self, value: glm_typing.U32Vector3) -> None: ... + + @property + def wyz(self) -> u32vec3: ... + @wyz.setter + def wyz(self, value: glm_typing.U32Vector3) -> None: ... + + @property + def wzy(self) -> u32vec3: ... + @wzy.setter + def wzy(self, value: glm_typing.U32Vector3) -> None: ... + + @property + def xyzw(self) -> u32vec4: ... + @xyzw.setter + def xyzw(self, value: glm_typing.U32Vector4) -> None: ... + + @property + def xywz(self) -> u32vec4: ... + @xywz.setter + def xywz(self, value: glm_typing.U32Vector4) -> None: ... + + @property + def xzyw(self) -> u32vec4: ... + @xzyw.setter + def xzyw(self, value: glm_typing.U32Vector4) -> None: ... + + @property + def xzwy(self) -> u32vec4: ... + @xzwy.setter + def xzwy(self, value: glm_typing.U32Vector4) -> None: ... + + @property + def xwyz(self) -> u32vec4: ... + @xwyz.setter + def xwyz(self, value: glm_typing.U32Vector4) -> None: ... + + @property + def xwzy(self) -> u32vec4: ... + @xwzy.setter + def xwzy(self, value: glm_typing.U32Vector4) -> None: ... + + @property + def yxzw(self) -> u32vec4: ... + @yxzw.setter + def yxzw(self, value: glm_typing.U32Vector4) -> None: ... + + @property + def yxwz(self) -> u32vec4: ... + @yxwz.setter + def yxwz(self, value: glm_typing.U32Vector4) -> None: ... + + @property + def yzxw(self) -> u32vec4: ... + @yzxw.setter + def yzxw(self, value: glm_typing.U32Vector4) -> None: ... + + @property + def yzwx(self) -> u32vec4: ... + @yzwx.setter + def yzwx(self, value: glm_typing.U32Vector4) -> None: ... + + @property + def ywxz(self) -> u32vec4: ... + @ywxz.setter + def ywxz(self, value: glm_typing.U32Vector4) -> None: ... + + @property + def ywzx(self) -> u32vec4: ... + @ywzx.setter + def ywzx(self, value: glm_typing.U32Vector4) -> None: ... + + @property + def zxyw(self) -> u32vec4: ... + @zxyw.setter + def zxyw(self, value: glm_typing.U32Vector4) -> None: ... + + @property + def zxwy(self) -> u32vec4: ... + @zxwy.setter + def zxwy(self, value: glm_typing.U32Vector4) -> None: ... + + @property + def zyxw(self) -> u32vec4: ... + @zyxw.setter + def zyxw(self, value: glm_typing.U32Vector4) -> None: ... + + @property + def zywx(self) -> u32vec4: ... + @zywx.setter + def zywx(self, value: glm_typing.U32Vector4) -> None: ... + + @property + def zwxy(self) -> u32vec4: ... + @zwxy.setter + def zwxy(self, value: glm_typing.U32Vector4) -> None: ... + + @property + def zwyx(self) -> u32vec4: ... + @zwyx.setter + def zwyx(self, value: glm_typing.U32Vector4) -> None: ... + + @property + def wxyz(self) -> u32vec4: ... + @wxyz.setter + def wxyz(self, value: glm_typing.U32Vector4) -> None: ... + + @property + def wxzy(self) -> u32vec4: ... + @wxzy.setter + def wxzy(self, value: glm_typing.U32Vector4) -> None: ... + + @property + def wyxz(self) -> u32vec4: ... + @wyxz.setter + def wyxz(self, value: glm_typing.U32Vector4) -> None: ... + + @property + def wyzx(self) -> u32vec4: ... + @wyzx.setter + def wyzx(self, value: glm_typing.U32Vector4) -> None: ... + + @property + def wzxy(self) -> u32vec4: ... + @wzxy.setter + def wzxy(self, value: glm_typing.U32Vector4) -> None: ... + + @property + def wzyx(self) -> u32vec4: ... + @wzyx.setter + def wzyx(self, value: glm_typing.U32Vector4) -> None: ... + + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: glm_typing.Number, y: glm_typing.Number, z: glm_typing.Number, w: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: glm_typing.AnyAnyVector4) -> None: ... + + def __len__(self) -> Literal[4]: ... + def __getitem__(self, index: int) -> int: ... + def __setitem__(self, index: int, value: glm_typing.Number) -> None: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[int, None, None]: ... + + def __neg__(self) -> uvec4: ... + def __pos__(self) -> uvec4: ... + def __abs__(self) -> uvec4: ... + + def __lt__(self, other: Any) -> bool: ... + def __le__(self, other: Any) -> bool: ... + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + def __ge__(self, other: Any) -> bool: ... + def __gt__(self, other: Any) -> bool: ... + + def to_list(self) -> List[int]: ... + def to_tuple(self) -> Tuple[int, int, int, int]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> uvec4: ... + + def __add__(self, other: Union[glm_typing.U32Vector4, glm_typing.Number]) -> uvec4: ... + def __radd__(self, other: Union[glm_typing.U32Vector4, glm_typing.Number]) -> uvec4: ... + def __iadd__(self, other: Union[glm_typing.U32Vector4, glm_typing.Number]) -> uvec4: ... + + def __sub__(self, other: Union[glm_typing.U32Vector4, glm_typing.Number]) -> uvec4: ... + def __rsub__(self, other: Union[glm_typing.U32Vector4, glm_typing.Number]) -> uvec4: ... + def __isub__(self, other: Union[glm_typing.U32Vector4, glm_typing.Number]) -> uvec4: ... + + @overload + def __mul__(self, other: glm_typing.Number) -> uvec4: ... + @overload + def __mul__(self, other: glm_typing.U32Vector4) -> uvec4: ... + @overload + def __mul__(self, other: glm_typing.U32Matrix2x2) -> vec2: ... + @overload + def __mul__(self, other: glm_typing.U32Matrix3x2) -> vec3: ... + @overload + def __mul__(self, other: glm_typing.U32Matrix4x2) -> vec4: ... + @overload + def __rmul__(self, other: glm_typing.Number) -> uvec4: ... + @overload + def __rmul__(self, other: glm_typing.U32Vector4) -> uvec4: ... + @overload + def __rmul__(self, other: glm_typing.U32Matrix2x2) -> vec2: ... + @overload + def __rmul__(self, other: glm_typing.U32Matrix3x2) -> vec3: ... + @overload + def __rmul__(self, other: glm_typing.U32Matrix4x2) -> vec4: ... + @overload + def __imul__(self, other: glm_typing.Number) -> uvec4: ... + @overload + def __imul__(self, other: glm_typing.U32Vector4) -> uvec4: ... + @overload + def __imul__(self, other: glm_typing.U32Matrix2x2) -> vec2: ... + @overload + def __imul__(self, other: glm_typing.U32Matrix3x2) -> vec3: ... + @overload + def __imul__(self, other: glm_typing.U32Matrix4x2) -> vec4: ... + + def __mod__(self, other: Union[glm_typing.U32Vector4, glm_typing.Number]) -> uvec4: ... + def __rmod__(self, other: Union[glm_typing.U32Vector4, glm_typing.Number]) -> uvec4: ... + def __imod__(self, other: Union[glm_typing.U32Vector4, glm_typing.Number]) -> uvec4: ... + + def __pow__(self, other: Union[glm_typing.U32Vector4, glm_typing.Number]) -> uvec4: ... + def __rpow__(self, other: Union[glm_typing.U32Vector4, glm_typing.Number]) -> uvec4: ... + def __ipow__(self, other: Union[glm_typing.U32Vector4, glm_typing.Number]) -> uvec4: ... + + def __truediv__(self, other: Union[glm_typing.U32Vector4, glm_typing.Number]) -> uvec4: ... + def __rtruediv__(self, other: Union[glm_typing.U32Vector4, glm_typing.Number]) -> uvec4: ... + def __itruediv__(self, other: Union[glm_typing.U32Vector4, glm_typing.Number]) -> uvec4: ... + + def __floordiv__(self, other: Union[glm_typing.U32Vector4, glm_typing.Number]) -> uvec4: ... + def __rfloordiv__(self, other: Union[glm_typing.U32Vector4, glm_typing.Number]) -> uvec4: ... + def __ifloordiv__(self, other: Union[glm_typing.U32Vector4, glm_typing.Number]) -> uvec4: ... + + @overload + def __matmul__(self, other: glm_typing.Number) -> uvec4: ... + @overload + def __matmul__(self, other: glm_typing.U32Vector4) -> uvec4: ... + @overload + def __matmul__(self, other: glm_typing.U32Matrix2x2) -> vec2: ... + @overload + def __matmul__(self, other: glm_typing.U32Matrix3x2) -> vec3: ... + @overload + def __matmul__(self, other: glm_typing.U32Matrix4x2) -> vec4: ... + @overload + def __rmatmul__(self, other: glm_typing.Number) -> uvec4: ... + @overload + def __rmatmul__(self, other: glm_typing.U32Vector4) -> uvec4: ... + @overload + def __rmatmul__(self, other: glm_typing.U32Matrix2x2) -> vec2: ... + @overload + def __rmatmul__(self, other: glm_typing.U32Matrix3x2) -> vec3: ... + @overload + def __rmatmul__(self, other: glm_typing.U32Matrix4x2) -> vec4: ... + @overload + def __imatmul__(self, other: glm_typing.Number) -> uvec4: ... + @overload + def __imatmul__(self, other: glm_typing.U32Vector4) -> uvec4: ... + @overload + def __imatmul__(self, other: glm_typing.U32Matrix2x2) -> vec2: ... + @overload + def __imatmul__(self, other: glm_typing.U32Matrix3x2) -> vec3: ... + @overload + def __imatmul__(self, other: glm_typing.U32Matrix4x2) -> vec4: ... + + def __divmod__(self, other: uvec4) -> Tuple[uvec4, uvec4]: ... + + +f32vec1 = vec1 +fvec1 = vec1 + +class vec1: + x: float + + + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: Union[glm_typing.AnyAnyVector1, glm_typing.FAnyVector2, glm_typing.FAnyVector3, glm_typing.FAnyVector4]) -> None: ... + + def __len__(self) -> Literal[1]: ... + def __getitem__(self, index: int) -> float: ... + def __setitem__(self, index: int, value: glm_typing.Number) -> None: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[float, None, None]: ... + + def __neg__(self) -> vec1: ... + def __pos__(self) -> vec1: ... + def __abs__(self) -> vec1: ... + + def __lt__(self, other: Any) -> bool: ... + def __le__(self, other: Any) -> bool: ... + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + def __ge__(self, other: Any) -> bool: ... + def __gt__(self, other: Any) -> bool: ... + + def to_list(self) -> List[float]: ... + def to_tuple(self) -> Tuple[float]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> vec1: ... + + def __add__(self, other: Union[glm_typing.F32Vector1, glm_typing.Number]) -> vec1: ... + def __radd__(self, other: Union[glm_typing.F32Vector1, glm_typing.Number]) -> vec1: ... + def __iadd__(self, other: Union[glm_typing.F32Vector1, glm_typing.Number]) -> vec1: ... + + def __sub__(self, other: Union[glm_typing.F32Vector1, glm_typing.Number]) -> vec1: ... + def __rsub__(self, other: Union[glm_typing.F32Vector1, glm_typing.Number]) -> vec1: ... + def __isub__(self, other: Union[glm_typing.F32Vector1, glm_typing.Number]) -> vec1: ... + + @overload + def __mul__(self, other: glm_typing.Number) -> vec1: ... + @overload + def __mul__(self, other: glm_typing.F32Vector1) -> vec1: ... + @overload + def __mul__(self, other: glm_typing.F32Matrix2x2) -> vec2: ... + @overload + def __mul__(self, other: glm_typing.F32Matrix3x2) -> vec3: ... + @overload + def __mul__(self, other: glm_typing.F32Matrix4x2) -> vec4: ... + @overload + def __rmul__(self, other: glm_typing.Number) -> vec1: ... + @overload + def __rmul__(self, other: glm_typing.F32Vector1) -> vec1: ... + @overload + def __rmul__(self, other: glm_typing.F32Matrix2x2) -> vec2: ... + @overload + def __rmul__(self, other: glm_typing.F32Matrix3x2) -> vec3: ... + @overload + def __rmul__(self, other: glm_typing.F32Matrix4x2) -> vec4: ... + @overload + def __imul__(self, other: glm_typing.Number) -> vec1: ... + @overload + def __imul__(self, other: glm_typing.F32Vector1) -> vec1: ... + @overload + def __imul__(self, other: glm_typing.F32Matrix2x2) -> vec2: ... + @overload + def __imul__(self, other: glm_typing.F32Matrix3x2) -> vec3: ... + @overload + def __imul__(self, other: glm_typing.F32Matrix4x2) -> vec4: ... + + def __mod__(self, other: Union[glm_typing.F32Vector1, glm_typing.Number]) -> vec1: ... + def __rmod__(self, other: Union[glm_typing.F32Vector1, glm_typing.Number]) -> vec1: ... + def __imod__(self, other: Union[glm_typing.F32Vector1, glm_typing.Number]) -> vec1: ... + + def __pow__(self, other: Union[glm_typing.F32Vector1, glm_typing.Number]) -> vec1: ... + def __rpow__(self, other: Union[glm_typing.F32Vector1, glm_typing.Number]) -> vec1: ... + def __ipow__(self, other: Union[glm_typing.F32Vector1, glm_typing.Number]) -> vec1: ... + + def __truediv__(self, other: Union[glm_typing.F32Vector1, glm_typing.Number]) -> vec1: ... + def __rtruediv__(self, other: Union[glm_typing.F32Vector1, glm_typing.Number]) -> vec1: ... + def __itruediv__(self, other: Union[glm_typing.F32Vector1, glm_typing.Number]) -> vec1: ... + + def __floordiv__(self, other: Union[glm_typing.F32Vector1, glm_typing.Number]) -> vec1: ... + def __rfloordiv__(self, other: Union[glm_typing.F32Vector1, glm_typing.Number]) -> vec1: ... + def __ifloordiv__(self, other: Union[glm_typing.F32Vector1, glm_typing.Number]) -> vec1: ... + + @overload + def __matmul__(self, other: glm_typing.Number) -> vec1: ... + @overload + def __matmul__(self, other: glm_typing.F32Vector1) -> vec1: ... + @overload + def __matmul__(self, other: glm_typing.F32Matrix2x2) -> vec2: ... + @overload + def __matmul__(self, other: glm_typing.F32Matrix3x2) -> vec3: ... + @overload + def __matmul__(self, other: glm_typing.F32Matrix4x2) -> vec4: ... + @overload + def __rmatmul__(self, other: glm_typing.Number) -> vec1: ... + @overload + def __rmatmul__(self, other: glm_typing.F32Vector1) -> vec1: ... + @overload + def __rmatmul__(self, other: glm_typing.F32Matrix2x2) -> vec2: ... + @overload + def __rmatmul__(self, other: glm_typing.F32Matrix3x2) -> vec3: ... + @overload + def __rmatmul__(self, other: glm_typing.F32Matrix4x2) -> vec4: ... + @overload + def __imatmul__(self, other: glm_typing.Number) -> vec1: ... + @overload + def __imatmul__(self, other: glm_typing.F32Vector1) -> vec1: ... + @overload + def __imatmul__(self, other: glm_typing.F32Matrix2x2) -> vec2: ... + @overload + def __imatmul__(self, other: glm_typing.F32Matrix3x2) -> vec3: ... + @overload + def __imatmul__(self, other: glm_typing.F32Matrix4x2) -> vec4: ... + + def __divmod__(self, other: vec1) -> Tuple[vec1, vec1]: ... + + +f32vec2 = vec2 +fvec2 = vec2 + +class vec2: + x: float + y: float + + + @property + def xy(self) -> f32vec2: ... + @xy.setter + def xy(self, value: glm_typing.F32Vector2) -> None: ... + + @property + def yx(self) -> f32vec2: ... + @yx.setter + def yx(self, value: glm_typing.F32Vector2) -> None: ... + + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: glm_typing.Number, y: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: Union[glm_typing.AnyAnyVector2, glm_typing.FAnyVector3, glm_typing.FAnyVector4]) -> None: ... + + def __len__(self) -> Literal[2]: ... + def __getitem__(self, index: int) -> float: ... + def __setitem__(self, index: int, value: glm_typing.Number) -> None: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[float, None, None]: ... + + def __neg__(self) -> vec2: ... + def __pos__(self) -> vec2: ... + def __abs__(self) -> vec2: ... + + def __lt__(self, other: Any) -> bool: ... + def __le__(self, other: Any) -> bool: ... + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + def __ge__(self, other: Any) -> bool: ... + def __gt__(self, other: Any) -> bool: ... + + def to_list(self) -> List[float]: ... + def to_tuple(self) -> Tuple[float, float]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> vec2: ... + + def __add__(self, other: Union[glm_typing.F32Vector2, glm_typing.Number]) -> vec2: ... + def __radd__(self, other: Union[glm_typing.F32Vector2, glm_typing.Number]) -> vec2: ... + def __iadd__(self, other: Union[glm_typing.F32Vector2, glm_typing.Number]) -> vec2: ... + + def __sub__(self, other: Union[glm_typing.F32Vector2, glm_typing.Number]) -> vec2: ... + def __rsub__(self, other: Union[glm_typing.F32Vector2, glm_typing.Number]) -> vec2: ... + def __isub__(self, other: Union[glm_typing.F32Vector2, glm_typing.Number]) -> vec2: ... + + @overload + def __mul__(self, other: glm_typing.Number) -> vec2: ... + @overload + def __mul__(self, other: glm_typing.F32Vector2) -> vec2: ... + @overload + def __mul__(self, other: glm_typing.F32Matrix2x2) -> vec2: ... + @overload + def __mul__(self, other: glm_typing.F32Matrix3x2) -> vec3: ... + @overload + def __mul__(self, other: glm_typing.F32Matrix4x2) -> vec4: ... + @overload + def __rmul__(self, other: glm_typing.Number) -> vec2: ... + @overload + def __rmul__(self, other: glm_typing.F32Vector2) -> vec2: ... + @overload + def __rmul__(self, other: glm_typing.F32Matrix2x2) -> vec2: ... + @overload + def __rmul__(self, other: glm_typing.F32Matrix3x2) -> vec3: ... + @overload + def __rmul__(self, other: glm_typing.F32Matrix4x2) -> vec4: ... + @overload + def __imul__(self, other: glm_typing.Number) -> vec2: ... + @overload + def __imul__(self, other: glm_typing.F32Vector2) -> vec2: ... + @overload + def __imul__(self, other: glm_typing.F32Matrix2x2) -> vec2: ... + @overload + def __imul__(self, other: glm_typing.F32Matrix3x2) -> vec3: ... + @overload + def __imul__(self, other: glm_typing.F32Matrix4x2) -> vec4: ... + + def __mod__(self, other: Union[glm_typing.F32Vector2, glm_typing.Number]) -> vec2: ... + def __rmod__(self, other: Union[glm_typing.F32Vector2, glm_typing.Number]) -> vec2: ... + def __imod__(self, other: Union[glm_typing.F32Vector2, glm_typing.Number]) -> vec2: ... + + def __pow__(self, other: Union[glm_typing.F32Vector2, glm_typing.Number]) -> vec2: ... + def __rpow__(self, other: Union[glm_typing.F32Vector2, glm_typing.Number]) -> vec2: ... + def __ipow__(self, other: Union[glm_typing.F32Vector2, glm_typing.Number]) -> vec2: ... + + def __truediv__(self, other: Union[glm_typing.F32Vector2, glm_typing.Number]) -> vec2: ... + def __rtruediv__(self, other: Union[glm_typing.F32Vector2, glm_typing.Number]) -> vec2: ... + def __itruediv__(self, other: Union[glm_typing.F32Vector2, glm_typing.Number]) -> vec2: ... + + def __floordiv__(self, other: Union[glm_typing.F32Vector2, glm_typing.Number]) -> vec2: ... + def __rfloordiv__(self, other: Union[glm_typing.F32Vector2, glm_typing.Number]) -> vec2: ... + def __ifloordiv__(self, other: Union[glm_typing.F32Vector2, glm_typing.Number]) -> vec2: ... + + @overload + def __matmul__(self, other: glm_typing.Number) -> vec2: ... + @overload + def __matmul__(self, other: glm_typing.F32Vector2) -> vec2: ... + @overload + def __matmul__(self, other: glm_typing.F32Matrix2x2) -> vec2: ... + @overload + def __matmul__(self, other: glm_typing.F32Matrix3x2) -> vec3: ... + @overload + def __matmul__(self, other: glm_typing.F32Matrix4x2) -> vec4: ... + @overload + def __rmatmul__(self, other: glm_typing.Number) -> vec2: ... + @overload + def __rmatmul__(self, other: glm_typing.F32Vector2) -> vec2: ... + @overload + def __rmatmul__(self, other: glm_typing.F32Matrix2x2) -> vec2: ... + @overload + def __rmatmul__(self, other: glm_typing.F32Matrix3x2) -> vec3: ... + @overload + def __rmatmul__(self, other: glm_typing.F32Matrix4x2) -> vec4: ... + @overload + def __imatmul__(self, other: glm_typing.Number) -> vec2: ... + @overload + def __imatmul__(self, other: glm_typing.F32Vector2) -> vec2: ... + @overload + def __imatmul__(self, other: glm_typing.F32Matrix2x2) -> vec2: ... + @overload + def __imatmul__(self, other: glm_typing.F32Matrix3x2) -> vec3: ... + @overload + def __imatmul__(self, other: glm_typing.F32Matrix4x2) -> vec4: ... + + def __divmod__(self, other: vec2) -> Tuple[vec2, vec2]: ... + + +f32vec3 = vec3 +fvec3 = vec3 + +class vec3: + x: float + y: float + z: float + + + @property + def xy(self) -> f32vec2: ... + @xy.setter + def xy(self, value: glm_typing.F32Vector2) -> None: ... + + @property + def yx(self) -> f32vec2: ... + @yx.setter + def yx(self, value: glm_typing.F32Vector2) -> None: ... + + @property + def xz(self) -> f32vec2: ... + @xz.setter + def xz(self, value: glm_typing.F32Vector2) -> None: ... + + @property + def zx(self) -> f32vec2: ... + @zx.setter + def zx(self, value: glm_typing.F32Vector2) -> None: ... + + @property + def yz(self) -> f32vec2: ... + @yz.setter + def yz(self, value: glm_typing.F32Vector2) -> None: ... + + @property + def zy(self) -> f32vec2: ... + @zy.setter + def zy(self, value: glm_typing.F32Vector2) -> None: ... + + @property + def xyz(self) -> f32vec3: ... + @xyz.setter + def xyz(self, value: glm_typing.F32Vector3) -> None: ... + + @property + def xzy(self) -> f32vec3: ... + @xzy.setter + def xzy(self, value: glm_typing.F32Vector3) -> None: ... + + @property + def yxz(self) -> f32vec3: ... + @yxz.setter + def yxz(self, value: glm_typing.F32Vector3) -> None: ... + + @property + def yzx(self) -> f32vec3: ... + @yzx.setter + def yzx(self, value: glm_typing.F32Vector3) -> None: ... + + @property + def zxy(self) -> f32vec3: ... + @zxy.setter + def zxy(self, value: glm_typing.F32Vector3) -> None: ... + + @property + def zyx(self) -> f32vec3: ... + @zyx.setter + def zyx(self, value: glm_typing.F32Vector3) -> None: ... + + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: glm_typing.Number, y: glm_typing.Number, z: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: Union[glm_typing.AnyAnyVector3, glm_typing.FAnyVector4]) -> None: ... + + def __len__(self) -> Literal[3]: ... + def __getitem__(self, index: int) -> float: ... + def __setitem__(self, index: int, value: glm_typing.Number) -> None: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[float, None, None]: ... + + def __neg__(self) -> vec3: ... + def __pos__(self) -> vec3: ... + def __abs__(self) -> vec3: ... + + def __lt__(self, other: Any) -> bool: ... + def __le__(self, other: Any) -> bool: ... + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + def __ge__(self, other: Any) -> bool: ... + def __gt__(self, other: Any) -> bool: ... + + def to_list(self) -> List[float]: ... + def to_tuple(self) -> Tuple[float, float, float]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> vec3: ... + + def __add__(self, other: Union[glm_typing.F32Vector3, glm_typing.Number]) -> vec3: ... + def __radd__(self, other: Union[glm_typing.F32Vector3, glm_typing.Number]) -> vec3: ... + def __iadd__(self, other: Union[glm_typing.F32Vector3, glm_typing.Number]) -> vec3: ... + + def __sub__(self, other: Union[glm_typing.F32Vector3, glm_typing.Number]) -> vec3: ... + def __rsub__(self, other: Union[glm_typing.F32Vector3, glm_typing.Number]) -> vec3: ... + def __isub__(self, other: Union[glm_typing.F32Vector3, glm_typing.Number]) -> vec3: ... + + @overload + def __mul__(self, other: glm_typing.Number) -> vec3: ... + @overload + def __mul__(self, other: glm_typing.F32Vector3) -> vec3: ... + @overload + def __mul__(self, other: glm_typing.F32Matrix2x2) -> vec2: ... + @overload + def __mul__(self, other: glm_typing.F32Matrix3x2) -> vec3: ... + @overload + def __mul__(self, other: glm_typing.F32Matrix4x2) -> vec4: ... + @overload + def __rmul__(self, other: glm_typing.Number) -> vec3: ... + @overload + def __rmul__(self, other: glm_typing.F32Vector3) -> vec3: ... + @overload + def __rmul__(self, other: glm_typing.F32Matrix2x2) -> vec2: ... + @overload + def __rmul__(self, other: glm_typing.F32Matrix3x2) -> vec3: ... + @overload + def __rmul__(self, other: glm_typing.F32Matrix4x2) -> vec4: ... + @overload + def __imul__(self, other: glm_typing.Number) -> vec3: ... + @overload + def __imul__(self, other: glm_typing.F32Vector3) -> vec3: ... + @overload + def __imul__(self, other: glm_typing.F32Matrix2x2) -> vec2: ... + @overload + def __imul__(self, other: glm_typing.F32Matrix3x2) -> vec3: ... + @overload + def __imul__(self, other: glm_typing.F32Matrix4x2) -> vec4: ... + + def __mod__(self, other: Union[glm_typing.F32Vector3, glm_typing.Number]) -> vec3: ... + def __rmod__(self, other: Union[glm_typing.F32Vector3, glm_typing.Number]) -> vec3: ... + def __imod__(self, other: Union[glm_typing.F32Vector3, glm_typing.Number]) -> vec3: ... + + def __pow__(self, other: Union[glm_typing.F32Vector3, glm_typing.Number]) -> vec3: ... + def __rpow__(self, other: Union[glm_typing.F32Vector3, glm_typing.Number]) -> vec3: ... + def __ipow__(self, other: Union[glm_typing.F32Vector3, glm_typing.Number]) -> vec3: ... + + def __truediv__(self, other: Union[glm_typing.F32Vector3, glm_typing.Number]) -> vec3: ... + def __rtruediv__(self, other: Union[glm_typing.F32Vector3, glm_typing.Number]) -> vec3: ... + def __itruediv__(self, other: Union[glm_typing.F32Vector3, glm_typing.Number]) -> vec3: ... + + def __floordiv__(self, other: Union[glm_typing.F32Vector3, glm_typing.Number]) -> vec3: ... + def __rfloordiv__(self, other: Union[glm_typing.F32Vector3, glm_typing.Number]) -> vec3: ... + def __ifloordiv__(self, other: Union[glm_typing.F32Vector3, glm_typing.Number]) -> vec3: ... + + @overload + def __matmul__(self, other: glm_typing.Number) -> vec3: ... + @overload + def __matmul__(self, other: glm_typing.F32Vector3) -> vec3: ... + @overload + def __matmul__(self, other: glm_typing.F32Matrix2x2) -> vec2: ... + @overload + def __matmul__(self, other: glm_typing.F32Matrix3x2) -> vec3: ... + @overload + def __matmul__(self, other: glm_typing.F32Matrix4x2) -> vec4: ... + @overload + def __rmatmul__(self, other: glm_typing.Number) -> vec3: ... + @overload + def __rmatmul__(self, other: glm_typing.F32Vector3) -> vec3: ... + @overload + def __rmatmul__(self, other: glm_typing.F32Matrix2x2) -> vec2: ... + @overload + def __rmatmul__(self, other: glm_typing.F32Matrix3x2) -> vec3: ... + @overload + def __rmatmul__(self, other: glm_typing.F32Matrix4x2) -> vec4: ... + @overload + def __imatmul__(self, other: glm_typing.Number) -> vec3: ... + @overload + def __imatmul__(self, other: glm_typing.F32Vector3) -> vec3: ... + @overload + def __imatmul__(self, other: glm_typing.F32Matrix2x2) -> vec2: ... + @overload + def __imatmul__(self, other: glm_typing.F32Matrix3x2) -> vec3: ... + @overload + def __imatmul__(self, other: glm_typing.F32Matrix4x2) -> vec4: ... + + def __divmod__(self, other: vec3) -> Tuple[vec3, vec3]: ... + + +f32vec4 = vec4 +fvec4 = vec4 + +class vec4: + x: float + y: float + z: float + w: float + + + @property + def xy(self) -> f32vec2: ... + @xy.setter + def xy(self, value: glm_typing.F32Vector2) -> None: ... + + @property + def yx(self) -> f32vec2: ... + @yx.setter + def yx(self, value: glm_typing.F32Vector2) -> None: ... + + @property + def xz(self) -> f32vec2: ... + @xz.setter + def xz(self, value: glm_typing.F32Vector2) -> None: ... + + @property + def zx(self) -> f32vec2: ... + @zx.setter + def zx(self, value: glm_typing.F32Vector2) -> None: ... + + @property + def xw(self) -> f32vec2: ... + @xw.setter + def xw(self, value: glm_typing.F32Vector2) -> None: ... + + @property + def wx(self) -> f32vec2: ... + @wx.setter + def wx(self, value: glm_typing.F32Vector2) -> None: ... + + @property + def yz(self) -> f32vec2: ... + @yz.setter + def yz(self, value: glm_typing.F32Vector2) -> None: ... + + @property + def zy(self) -> f32vec2: ... + @zy.setter + def zy(self, value: glm_typing.F32Vector2) -> None: ... + + @property + def yw(self) -> f32vec2: ... + @yw.setter + def yw(self, value: glm_typing.F32Vector2) -> None: ... + + @property + def wy(self) -> f32vec2: ... + @wy.setter + def wy(self, value: glm_typing.F32Vector2) -> None: ... + + @property + def zw(self) -> f32vec2: ... + @zw.setter + def zw(self, value: glm_typing.F32Vector2) -> None: ... + + @property + def wz(self) -> f32vec2: ... + @wz.setter + def wz(self, value: glm_typing.F32Vector2) -> None: ... + + @property + def xyz(self) -> f32vec3: ... + @xyz.setter + def xyz(self, value: glm_typing.F32Vector3) -> None: ... + + @property + def xzy(self) -> f32vec3: ... + @xzy.setter + def xzy(self, value: glm_typing.F32Vector3) -> None: ... + + @property + def yxz(self) -> f32vec3: ... + @yxz.setter + def yxz(self, value: glm_typing.F32Vector3) -> None: ... + + @property + def yzx(self) -> f32vec3: ... + @yzx.setter + def yzx(self, value: glm_typing.F32Vector3) -> None: ... + + @property + def zxy(self) -> f32vec3: ... + @zxy.setter + def zxy(self, value: glm_typing.F32Vector3) -> None: ... + + @property + def zyx(self) -> f32vec3: ... + @zyx.setter + def zyx(self, value: glm_typing.F32Vector3) -> None: ... + + @property + def xyw(self) -> f32vec3: ... + @xyw.setter + def xyw(self, value: glm_typing.F32Vector3) -> None: ... + + @property + def xwy(self) -> f32vec3: ... + @xwy.setter + def xwy(self, value: glm_typing.F32Vector3) -> None: ... + + @property + def yxw(self) -> f32vec3: ... + @yxw.setter + def yxw(self, value: glm_typing.F32Vector3) -> None: ... + + @property + def ywx(self) -> f32vec3: ... + @ywx.setter + def ywx(self, value: glm_typing.F32Vector3) -> None: ... + + @property + def wxy(self) -> f32vec3: ... + @wxy.setter + def wxy(self, value: glm_typing.F32Vector3) -> None: ... + + @property + def wyx(self) -> f32vec3: ... + @wyx.setter + def wyx(self, value: glm_typing.F32Vector3) -> None: ... + + @property + def xzw(self) -> f32vec3: ... + @xzw.setter + def xzw(self, value: glm_typing.F32Vector3) -> None: ... + + @property + def xwz(self) -> f32vec3: ... + @xwz.setter + def xwz(self, value: glm_typing.F32Vector3) -> None: ... + + @property + def zxw(self) -> f32vec3: ... + @zxw.setter + def zxw(self, value: glm_typing.F32Vector3) -> None: ... + + @property + def zwx(self) -> f32vec3: ... + @zwx.setter + def zwx(self, value: glm_typing.F32Vector3) -> None: ... + + @property + def wxz(self) -> f32vec3: ... + @wxz.setter + def wxz(self, value: glm_typing.F32Vector3) -> None: ... + + @property + def wzx(self) -> f32vec3: ... + @wzx.setter + def wzx(self, value: glm_typing.F32Vector3) -> None: ... + + @property + def yzw(self) -> f32vec3: ... + @yzw.setter + def yzw(self, value: glm_typing.F32Vector3) -> None: ... + + @property + def ywz(self) -> f32vec3: ... + @ywz.setter + def ywz(self, value: glm_typing.F32Vector3) -> None: ... + + @property + def zyw(self) -> f32vec3: ... + @zyw.setter + def zyw(self, value: glm_typing.F32Vector3) -> None: ... + + @property + def zwy(self) -> f32vec3: ... + @zwy.setter + def zwy(self, value: glm_typing.F32Vector3) -> None: ... + + @property + def wyz(self) -> f32vec3: ... + @wyz.setter + def wyz(self, value: glm_typing.F32Vector3) -> None: ... + + @property + def wzy(self) -> f32vec3: ... + @wzy.setter + def wzy(self, value: glm_typing.F32Vector3) -> None: ... + + @property + def xyzw(self) -> f32vec4: ... + @xyzw.setter + def xyzw(self, value: glm_typing.F32Vector4) -> None: ... + + @property + def xywz(self) -> f32vec4: ... + @xywz.setter + def xywz(self, value: glm_typing.F32Vector4) -> None: ... + + @property + def xzyw(self) -> f32vec4: ... + @xzyw.setter + def xzyw(self, value: glm_typing.F32Vector4) -> None: ... + + @property + def xzwy(self) -> f32vec4: ... + @xzwy.setter + def xzwy(self, value: glm_typing.F32Vector4) -> None: ... + + @property + def xwyz(self) -> f32vec4: ... + @xwyz.setter + def xwyz(self, value: glm_typing.F32Vector4) -> None: ... + + @property + def xwzy(self) -> f32vec4: ... + @xwzy.setter + def xwzy(self, value: glm_typing.F32Vector4) -> None: ... + + @property + def yxzw(self) -> f32vec4: ... + @yxzw.setter + def yxzw(self, value: glm_typing.F32Vector4) -> None: ... + + @property + def yxwz(self) -> f32vec4: ... + @yxwz.setter + def yxwz(self, value: glm_typing.F32Vector4) -> None: ... + + @property + def yzxw(self) -> f32vec4: ... + @yzxw.setter + def yzxw(self, value: glm_typing.F32Vector4) -> None: ... + + @property + def yzwx(self) -> f32vec4: ... + @yzwx.setter + def yzwx(self, value: glm_typing.F32Vector4) -> None: ... + + @property + def ywxz(self) -> f32vec4: ... + @ywxz.setter + def ywxz(self, value: glm_typing.F32Vector4) -> None: ... + + @property + def ywzx(self) -> f32vec4: ... + @ywzx.setter + def ywzx(self, value: glm_typing.F32Vector4) -> None: ... + + @property + def zxyw(self) -> f32vec4: ... + @zxyw.setter + def zxyw(self, value: glm_typing.F32Vector4) -> None: ... + + @property + def zxwy(self) -> f32vec4: ... + @zxwy.setter + def zxwy(self, value: glm_typing.F32Vector4) -> None: ... + + @property + def zyxw(self) -> f32vec4: ... + @zyxw.setter + def zyxw(self, value: glm_typing.F32Vector4) -> None: ... + + @property + def zywx(self) -> f32vec4: ... + @zywx.setter + def zywx(self, value: glm_typing.F32Vector4) -> None: ... + + @property + def zwxy(self) -> f32vec4: ... + @zwxy.setter + def zwxy(self, value: glm_typing.F32Vector4) -> None: ... + + @property + def zwyx(self) -> f32vec4: ... + @zwyx.setter + def zwyx(self, value: glm_typing.F32Vector4) -> None: ... + + @property + def wxyz(self) -> f32vec4: ... + @wxyz.setter + def wxyz(self, value: glm_typing.F32Vector4) -> None: ... + + @property + def wxzy(self) -> f32vec4: ... + @wxzy.setter + def wxzy(self, value: glm_typing.F32Vector4) -> None: ... + + @property + def wyxz(self) -> f32vec4: ... + @wyxz.setter + def wyxz(self, value: glm_typing.F32Vector4) -> None: ... + + @property + def wyzx(self) -> f32vec4: ... + @wyzx.setter + def wyzx(self, value: glm_typing.F32Vector4) -> None: ... + + @property + def wzxy(self) -> f32vec4: ... + @wzxy.setter + def wzxy(self, value: glm_typing.F32Vector4) -> None: ... + + @property + def wzyx(self) -> f32vec4: ... + @wzyx.setter + def wzyx(self, value: glm_typing.F32Vector4) -> None: ... + + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: glm_typing.Number, y: glm_typing.Number, z: glm_typing.Number, w: glm_typing.Number) -> None: ... + @overload + def __init__(self, x: glm_typing.AnyAnyVector4) -> None: ... + + def __len__(self) -> Literal[4]: ... + def __getitem__(self, index: int) -> float: ... + def __setitem__(self, index: int, value: glm_typing.Number) -> None: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[float, None, None]: ... + + def __neg__(self) -> vec4: ... + def __pos__(self) -> vec4: ... + def __abs__(self) -> vec4: ... + + def __lt__(self, other: Any) -> bool: ... + def __le__(self, other: Any) -> bool: ... + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + def __ge__(self, other: Any) -> bool: ... + def __gt__(self, other: Any) -> bool: ... + + def to_list(self) -> List[float]: ... + def to_tuple(self) -> Tuple[float, float, float, float]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> vec4: ... + + def __add__(self, other: Union[glm_typing.F32Vector4, glm_typing.Number]) -> vec4: ... + def __radd__(self, other: Union[glm_typing.F32Vector4, glm_typing.Number]) -> vec4: ... + def __iadd__(self, other: Union[glm_typing.F32Vector4, glm_typing.Number]) -> vec4: ... + + def __sub__(self, other: Union[glm_typing.F32Vector4, glm_typing.Number]) -> vec4: ... + def __rsub__(self, other: Union[glm_typing.F32Vector4, glm_typing.Number]) -> vec4: ... + def __isub__(self, other: Union[glm_typing.F32Vector4, glm_typing.Number]) -> vec4: ... + + @overload + def __mul__(self, other: glm_typing.Number) -> vec4: ... + @overload + def __mul__(self, other: glm_typing.F32Vector4) -> vec4: ... + @overload + def __mul__(self, other: glm_typing.F32Matrix2x2) -> vec2: ... + @overload + def __mul__(self, other: glm_typing.F32Matrix3x2) -> vec3: ... + @overload + def __mul__(self, other: glm_typing.F32Matrix4x2) -> vec4: ... + @overload + def __rmul__(self, other: glm_typing.Number) -> vec4: ... + @overload + def __rmul__(self, other: glm_typing.F32Vector4) -> vec4: ... + @overload + def __rmul__(self, other: glm_typing.F32Matrix2x2) -> vec2: ... + @overload + def __rmul__(self, other: glm_typing.F32Matrix3x2) -> vec3: ... + @overload + def __rmul__(self, other: glm_typing.F32Matrix4x2) -> vec4: ... + @overload + def __imul__(self, other: glm_typing.Number) -> vec4: ... + @overload + def __imul__(self, other: glm_typing.F32Vector4) -> vec4: ... + @overload + def __imul__(self, other: glm_typing.F32Matrix2x2) -> vec2: ... + @overload + def __imul__(self, other: glm_typing.F32Matrix3x2) -> vec3: ... + @overload + def __imul__(self, other: glm_typing.F32Matrix4x2) -> vec4: ... + + def __mod__(self, other: Union[glm_typing.F32Vector4, glm_typing.Number]) -> vec4: ... + def __rmod__(self, other: Union[glm_typing.F32Vector4, glm_typing.Number]) -> vec4: ... + def __imod__(self, other: Union[glm_typing.F32Vector4, glm_typing.Number]) -> vec4: ... + + def __pow__(self, other: Union[glm_typing.F32Vector4, glm_typing.Number]) -> vec4: ... + def __rpow__(self, other: Union[glm_typing.F32Vector4, glm_typing.Number]) -> vec4: ... + def __ipow__(self, other: Union[glm_typing.F32Vector4, glm_typing.Number]) -> vec4: ... + + def __truediv__(self, other: Union[glm_typing.F32Vector4, glm_typing.Number]) -> vec4: ... + def __rtruediv__(self, other: Union[glm_typing.F32Vector4, glm_typing.Number]) -> vec4: ... + def __itruediv__(self, other: Union[glm_typing.F32Vector4, glm_typing.Number]) -> vec4: ... + + def __floordiv__(self, other: Union[glm_typing.F32Vector4, glm_typing.Number]) -> vec4: ... + def __rfloordiv__(self, other: Union[glm_typing.F32Vector4, glm_typing.Number]) -> vec4: ... + def __ifloordiv__(self, other: Union[glm_typing.F32Vector4, glm_typing.Number]) -> vec4: ... + + @overload + def __matmul__(self, other: glm_typing.Number) -> vec4: ... + @overload + def __matmul__(self, other: glm_typing.F32Vector4) -> vec4: ... + @overload + def __matmul__(self, other: glm_typing.F32Matrix2x2) -> vec2: ... + @overload + def __matmul__(self, other: glm_typing.F32Matrix3x2) -> vec3: ... + @overload + def __matmul__(self, other: glm_typing.F32Matrix4x2) -> vec4: ... + @overload + def __rmatmul__(self, other: glm_typing.Number) -> vec4: ... + @overload + def __rmatmul__(self, other: glm_typing.F32Vector4) -> vec4: ... + @overload + def __rmatmul__(self, other: glm_typing.F32Matrix2x2) -> vec2: ... + @overload + def __rmatmul__(self, other: glm_typing.F32Matrix3x2) -> vec3: ... + @overload + def __rmatmul__(self, other: glm_typing.F32Matrix4x2) -> vec4: ... + @overload + def __imatmul__(self, other: glm_typing.Number) -> vec4: ... + @overload + def __imatmul__(self, other: glm_typing.F32Vector4) -> vec4: ... + @overload + def __imatmul__(self, other: glm_typing.F32Matrix2x2) -> vec2: ... + @overload + def __imatmul__(self, other: glm_typing.F32Matrix3x2) -> vec3: ... + @overload + def __imatmul__(self, other: glm_typing.F32Matrix4x2) -> vec4: ... + + def __divmod__(self, other: vec4) -> Tuple[vec4, vec4]: ... + + +dmat2 = dmat2x2 +f64mat2 = dmat2x2 +f64mat2x2 = dmat2x2 + +class dmat2x2: + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number, /) -> None: ... + @overload + def __init__(self, _0: glm_typing.Number, _1: glm_typing.Number, _2: glm_typing.Number, _3: glm_typing.Number, /) -> None: ... + @overload + def __init__(self, x: Union[glm_typing.AnyAnyMatrix2x2, glm_typing.DAnyMatrix2x2, glm_typing.DAnyMatrix2x3, glm_typing.DAnyMatrix2x4, glm_typing.DAnyMatrix3x2, glm_typing.DAnyMatrix3x3, glm_typing.DAnyMatrix3x4, glm_typing.DAnyMatrix4x2, glm_typing.DAnyMatrix4x3, glm_typing.DAnyMatrix4x4], /) -> None: ... + + def length(self) -> Literal[2]: ... + def __len__(self) -> Literal[2]: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[dmvec2, None, None]: ... + + @overload + def __getitem__(self, index: Tuple[int, int]) -> float: ... + @overload + def __getitem__(self, index: int) -> dmvec2: ... + + @overload + def __setitem__(self, index: Tuple[int, int], value: glm_typing.Number) -> None: ... + @overload + def __setitem__(self, index: int, value: Union[dvec2, dmvec2]) -> None: ... + + def __neg__(self) -> dmat2x2: ... + def __pos__(self) -> dmat2x2: ... + + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + + def to_list(self) -> List[List[float]]: ... + def to_tuple(self) -> Tuple[Tuple[float, float], Tuple[float, float]]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> dmat2x2: ... + + def __add__(self, other: glm_typing.DAnyMatrix2x2) -> dmat2x2: ... + def __radd__(self, other: glm_typing.DAnyMatrix2x2) -> dmat2x2: ... + def __iadd__(self, other: glm_typing.DAnyMatrix2x2) -> dmat2x2: ... + + def __sub__(self, other: glm_typing.DAnyMatrix2x2) -> dmat2x2: ... + def __rsub__(self, other: glm_typing.DAnyMatrix2x2) -> dmat2x2: ... + def __isub__(self, other: glm_typing.DAnyMatrix2x2) -> dmat2x2: ... + + @overload + def __mul__(self, other: glm_typing.DAnyMatrix2x2) -> dmat2x2: ... + @overload + def __mul__(self, other: glm_typing.DAnyMatrix2x3) -> dmat2x3: ... + @overload + def __mul__(self, other: glm_typing.DAnyMatrix2x4) -> dmat2x4: ... + @overload + def __mul__(self, other: glm_typing.D64Vector2) -> dvec2: ... + @overload + def __mul__(self, other: glm_typing.D64Vector1) -> dvec1: ... + @overload + def __rmul__(self, other: glm_typing.DAnyMatrix2x2) -> dmat2x2: ... + @overload + def __rmul__(self, other: glm_typing.DAnyMatrix2x3) -> dmat2x3: ... + @overload + def __rmul__(self, other: glm_typing.DAnyMatrix2x4) -> dmat2x4: ... + @overload + def __rmul__(self, other: glm_typing.D64Vector2) -> dvec2: ... + @overload + def __rmul__(self, other: glm_typing.D64Vector1) -> dvec1: ... + @overload + def __imul__(self, other: glm_typing.DAnyMatrix2x2) -> dmat2x2: ... + @overload + def __imul__(self, other: glm_typing.DAnyMatrix2x3) -> dmat2x3: ... + @overload + def __imul__(self, other: glm_typing.DAnyMatrix2x4) -> dmat2x4: ... + @overload + def __imul__(self, other: glm_typing.D64Vector2) -> dvec2: ... + @overload + def __imul__(self, other: glm_typing.D64Vector1) -> dvec1: ... + + @overload + def __truediv__(self, other: glm_typing.DAnyMatrix2x2) -> dmat2x2: ... + @overload + def __truediv__(self, other: glm_typing.D64Vector2) -> dvec2: ... + @overload + def __rtruediv__(self, other: glm_typing.DAnyMatrix2x2) -> dmat2x2: ... + @overload + def __rtruediv__(self, other: glm_typing.D64Vector2) -> dvec2: ... + @overload + def __itruediv__(self, other: glm_typing.DAnyMatrix2x2) -> dmat2x2: ... + @overload + def __itruediv__(self, other: glm_typing.D64Vector2) -> dvec2: ... + + @overload + def __matmul__(self, other: glm_typing.DAnyMatrix2x2) -> dmat2x2: ... + @overload + def __matmul__(self, other: glm_typing.DAnyMatrix2x3) -> dmat2x3: ... + @overload + def __matmul__(self, other: glm_typing.DAnyMatrix2x4) -> dmat2x4: ... + @overload + def __matmul__(self, other: glm_typing.D64Vector2) -> dvec2: ... + @overload + def __matmul__(self, other: glm_typing.D64Vector1) -> dvec1: ... + @overload + def __rmatmul__(self, other: glm_typing.DAnyMatrix2x2) -> dmat2x2: ... + @overload + def __rmatmul__(self, other: glm_typing.DAnyMatrix2x3) -> dmat2x3: ... + @overload + def __rmatmul__(self, other: glm_typing.DAnyMatrix2x4) -> dmat2x4: ... + @overload + def __rmatmul__(self, other: glm_typing.D64Vector2) -> dvec2: ... + @overload + def __rmatmul__(self, other: glm_typing.D64Vector1) -> dvec1: ... + @overload + def __imatmul__(self, other: glm_typing.DAnyMatrix2x2) -> dmat2x2: ... + @overload + def __imatmul__(self, other: glm_typing.DAnyMatrix2x3) -> dmat2x3: ... + @overload + def __imatmul__(self, other: glm_typing.DAnyMatrix2x4) -> dmat2x4: ... + @overload + def __imatmul__(self, other: glm_typing.D64Vector2) -> dvec2: ... + @overload + def __imatmul__(self, other: glm_typing.D64Vector1) -> dvec1: ... + + +f64mat2x3 = dmat2x3 + +class dmat2x3: + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number, /) -> None: ... + @overload + def __init__(self, _0: glm_typing.Number, _1: glm_typing.Number, _2: glm_typing.Number, _3: glm_typing.Number, _4: glm_typing.Number, _5: glm_typing.Number, /) -> None: ... + @overload + def __init__(self, x: Union[glm_typing.AnyAnyMatrix2x3, glm_typing.DAnyMatrix2x3, glm_typing.DAnyMatrix2x4, glm_typing.DAnyMatrix3x3, glm_typing.DAnyMatrix3x4, glm_typing.DAnyMatrix4x3, glm_typing.DAnyMatrix4x4], /) -> None: ... + + def length(self) -> Literal[2]: ... + def __len__(self) -> Literal[2]: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[dmvec3, None, None]: ... + + @overload + def __getitem__(self, index: Tuple[int, int]) -> float: ... + @overload + def __getitem__(self, index: int) -> dmvec3: ... + + @overload + def __setitem__(self, index: Tuple[int, int], value: glm_typing.Number) -> None: ... + @overload + def __setitem__(self, index: int, value: Union[dvec3, dmvec3]) -> None: ... + + def __neg__(self) -> dmat2x3: ... + def __pos__(self) -> dmat2x3: ... + + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + + def to_list(self) -> List[List[float]]: ... + def to_tuple(self) -> Tuple[Tuple[float, float, float], Tuple[float, float, float]]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> dmat2x3: ... + + def __add__(self, other: glm_typing.DAnyMatrix2x3) -> dmat2x3: ... + def __radd__(self, other: glm_typing.DAnyMatrix2x3) -> dmat2x3: ... + def __iadd__(self, other: glm_typing.DAnyMatrix2x3) -> dmat2x3: ... + + def __sub__(self, other: glm_typing.DAnyMatrix2x3) -> dmat2x3: ... + def __rsub__(self, other: glm_typing.DAnyMatrix2x3) -> dmat2x3: ... + def __isub__(self, other: glm_typing.DAnyMatrix2x3) -> dmat2x3: ... + + @overload + def __mul__(self, other: glm_typing.DAnyMatrix2x2) -> dmat2x2: ... + @overload + def __mul__(self, other: glm_typing.DAnyMatrix2x3) -> dmat2x3: ... + @overload + def __mul__(self, other: glm_typing.DAnyMatrix2x4) -> dmat2x4: ... + @overload + def __mul__(self, other: glm_typing.D64Vector2) -> dvec3: ... + @overload + def __rmul__(self, other: glm_typing.DAnyMatrix2x2) -> dmat2x2: ... + @overload + def __rmul__(self, other: glm_typing.DAnyMatrix2x3) -> dmat2x3: ... + @overload + def __rmul__(self, other: glm_typing.DAnyMatrix2x4) -> dmat2x4: ... + @overload + def __rmul__(self, other: glm_typing.D64Vector2) -> dvec3: ... + @overload + def __imul__(self, other: glm_typing.DAnyMatrix2x2) -> dmat2x2: ... + @overload + def __imul__(self, other: glm_typing.DAnyMatrix2x3) -> dmat2x3: ... + @overload + def __imul__(self, other: glm_typing.DAnyMatrix2x4) -> dmat2x4: ... + @overload + def __imul__(self, other: glm_typing.D64Vector2) -> dvec3: ... + + @overload + def __matmul__(self, other: glm_typing.DAnyMatrix2x2) -> dmat2x2: ... + @overload + def __matmul__(self, other: glm_typing.DAnyMatrix2x3) -> dmat2x3: ... + @overload + def __matmul__(self, other: glm_typing.DAnyMatrix2x4) -> dmat2x4: ... + @overload + def __matmul__(self, other: glm_typing.D64Vector2) -> dvec3: ... + @overload + def __rmatmul__(self, other: glm_typing.DAnyMatrix2x2) -> dmat2x2: ... + @overload + def __rmatmul__(self, other: glm_typing.DAnyMatrix2x3) -> dmat2x3: ... + @overload + def __rmatmul__(self, other: glm_typing.DAnyMatrix2x4) -> dmat2x4: ... + @overload + def __rmatmul__(self, other: glm_typing.D64Vector2) -> dvec3: ... + @overload + def __imatmul__(self, other: glm_typing.DAnyMatrix2x2) -> dmat2x2: ... + @overload + def __imatmul__(self, other: glm_typing.DAnyMatrix2x3) -> dmat2x3: ... + @overload + def __imatmul__(self, other: glm_typing.DAnyMatrix2x4) -> dmat2x4: ... + @overload + def __imatmul__(self, other: glm_typing.D64Vector2) -> dvec3: ... + + +f64mat2x4 = dmat2x4 + +class dmat2x4: + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number, /) -> None: ... + @overload + def __init__(self, _0: glm_typing.Number, _1: glm_typing.Number, _2: glm_typing.Number, _3: glm_typing.Number, _4: glm_typing.Number, _5: glm_typing.Number, _6: glm_typing.Number, _7: glm_typing.Number, /) -> None: ... + @overload + def __init__(self, x: Union[glm_typing.AnyAnyMatrix2x4, glm_typing.DAnyMatrix2x4, glm_typing.DAnyMatrix3x4, glm_typing.DAnyMatrix4x4], /) -> None: ... + + def length(self) -> Literal[2]: ... + def __len__(self) -> Literal[2]: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[dmvec4, None, None]: ... + + @overload + def __getitem__(self, index: Tuple[int, int]) -> float: ... + @overload + def __getitem__(self, index: int) -> dmvec4: ... + + @overload + def __setitem__(self, index: Tuple[int, int], value: glm_typing.Number) -> None: ... + @overload + def __setitem__(self, index: int, value: Union[dvec4, dmvec4]) -> None: ... + + def __neg__(self) -> dmat2x4: ... + def __pos__(self) -> dmat2x4: ... + + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + + def to_list(self) -> List[List[float]]: ... + def to_tuple(self) -> Tuple[Tuple[float, float, float, float], Tuple[float, float, float, float]]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> dmat2x4: ... + + def __add__(self, other: glm_typing.DAnyMatrix2x4) -> dmat2x4: ... + def __radd__(self, other: glm_typing.DAnyMatrix2x4) -> dmat2x4: ... + def __iadd__(self, other: glm_typing.DAnyMatrix2x4) -> dmat2x4: ... + + def __sub__(self, other: glm_typing.DAnyMatrix2x4) -> dmat2x4: ... + def __rsub__(self, other: glm_typing.DAnyMatrix2x4) -> dmat2x4: ... + def __isub__(self, other: glm_typing.DAnyMatrix2x4) -> dmat2x4: ... + + @overload + def __mul__(self, other: glm_typing.DAnyMatrix2x2) -> dmat2x2: ... + @overload + def __mul__(self, other: glm_typing.DAnyMatrix2x3) -> dmat2x3: ... + @overload + def __mul__(self, other: glm_typing.DAnyMatrix2x4) -> dmat2x4: ... + @overload + def __mul__(self, other: glm_typing.D64Vector2) -> dvec4: ... + @overload + def __rmul__(self, other: glm_typing.DAnyMatrix2x2) -> dmat2x2: ... + @overload + def __rmul__(self, other: glm_typing.DAnyMatrix2x3) -> dmat2x3: ... + @overload + def __rmul__(self, other: glm_typing.DAnyMatrix2x4) -> dmat2x4: ... + @overload + def __rmul__(self, other: glm_typing.D64Vector2) -> dvec4: ... + @overload + def __imul__(self, other: glm_typing.DAnyMatrix2x2) -> dmat2x2: ... + @overload + def __imul__(self, other: glm_typing.DAnyMatrix2x3) -> dmat2x3: ... + @overload + def __imul__(self, other: glm_typing.DAnyMatrix2x4) -> dmat2x4: ... + @overload + def __imul__(self, other: glm_typing.D64Vector2) -> dvec4: ... + + @overload + def __matmul__(self, other: glm_typing.DAnyMatrix2x2) -> dmat2x2: ... + @overload + def __matmul__(self, other: glm_typing.DAnyMatrix2x3) -> dmat2x3: ... + @overload + def __matmul__(self, other: glm_typing.DAnyMatrix2x4) -> dmat2x4: ... + @overload + def __matmul__(self, other: glm_typing.D64Vector2) -> dvec4: ... + @overload + def __rmatmul__(self, other: glm_typing.DAnyMatrix2x2) -> dmat2x2: ... + @overload + def __rmatmul__(self, other: glm_typing.DAnyMatrix2x3) -> dmat2x3: ... + @overload + def __rmatmul__(self, other: glm_typing.DAnyMatrix2x4) -> dmat2x4: ... + @overload + def __rmatmul__(self, other: glm_typing.D64Vector2) -> dvec4: ... + @overload + def __imatmul__(self, other: glm_typing.DAnyMatrix2x2) -> dmat2x2: ... + @overload + def __imatmul__(self, other: glm_typing.DAnyMatrix2x3) -> dmat2x3: ... + @overload + def __imatmul__(self, other: glm_typing.DAnyMatrix2x4) -> dmat2x4: ... + @overload + def __imatmul__(self, other: glm_typing.D64Vector2) -> dvec4: ... + + +f64mat3x2 = dmat3x2 + +class dmat3x2: + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number, /) -> None: ... + @overload + def __init__(self, _0: glm_typing.Number, _1: glm_typing.Number, _2: glm_typing.Number, _3: glm_typing.Number, _4: glm_typing.Number, _5: glm_typing.Number, /) -> None: ... + @overload + def __init__(self, x: Union[glm_typing.AnyAnyMatrix3x2, glm_typing.DAnyMatrix3x2, glm_typing.DAnyMatrix3x3, glm_typing.DAnyMatrix3x4, glm_typing.DAnyMatrix4x2, glm_typing.DAnyMatrix4x3, glm_typing.DAnyMatrix4x4], /) -> None: ... + + def length(self) -> Literal[3]: ... + def __len__(self) -> Literal[3]: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[dmvec2, None, None]: ... + + @overload + def __getitem__(self, index: Tuple[int, int]) -> float: ... + @overload + def __getitem__(self, index: int) -> dmvec2: ... + + @overload + def __setitem__(self, index: Tuple[int, int], value: glm_typing.Number) -> None: ... + @overload + def __setitem__(self, index: int, value: Union[dvec2, dmvec2]) -> None: ... + + def __neg__(self) -> dmat3x2: ... + def __pos__(self) -> dmat3x2: ... + + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + + def to_list(self) -> List[List[float]]: ... + def to_tuple(self) -> Tuple[Tuple[float, float], Tuple[float, float], Tuple[float, float]]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> dmat3x2: ... + + def __add__(self, other: glm_typing.DAnyMatrix3x2) -> dmat3x2: ... + def __radd__(self, other: glm_typing.DAnyMatrix3x2) -> dmat3x2: ... + def __iadd__(self, other: glm_typing.DAnyMatrix3x2) -> dmat3x2: ... + + def __sub__(self, other: glm_typing.DAnyMatrix3x2) -> dmat3x2: ... + def __rsub__(self, other: glm_typing.DAnyMatrix3x2) -> dmat3x2: ... + def __isub__(self, other: glm_typing.DAnyMatrix3x2) -> dmat3x2: ... + + @overload + def __mul__(self, other: glm_typing.DAnyMatrix3x2) -> dmat3x2: ... + @overload + def __mul__(self, other: glm_typing.DAnyMatrix3x3) -> dmat3x3: ... + @overload + def __mul__(self, other: glm_typing.DAnyMatrix3x4) -> dmat3x4: ... + @overload + def __mul__(self, other: glm_typing.D64Vector3) -> dvec2: ... + @overload + def __rmul__(self, other: glm_typing.DAnyMatrix3x2) -> dmat3x2: ... + @overload + def __rmul__(self, other: glm_typing.DAnyMatrix3x3) -> dmat3x3: ... + @overload + def __rmul__(self, other: glm_typing.DAnyMatrix3x4) -> dmat3x4: ... + @overload + def __rmul__(self, other: glm_typing.D64Vector3) -> dvec2: ... + @overload + def __imul__(self, other: glm_typing.DAnyMatrix3x2) -> dmat3x2: ... + @overload + def __imul__(self, other: glm_typing.DAnyMatrix3x3) -> dmat3x3: ... + @overload + def __imul__(self, other: glm_typing.DAnyMatrix3x4) -> dmat3x4: ... + @overload + def __imul__(self, other: glm_typing.D64Vector3) -> dvec2: ... + + @overload + def __matmul__(self, other: glm_typing.DAnyMatrix3x2) -> dmat3x2: ... + @overload + def __matmul__(self, other: glm_typing.DAnyMatrix3x3) -> dmat3x3: ... + @overload + def __matmul__(self, other: glm_typing.DAnyMatrix3x4) -> dmat3x4: ... + @overload + def __matmul__(self, other: glm_typing.D64Vector3) -> dvec2: ... + @overload + def __rmatmul__(self, other: glm_typing.DAnyMatrix3x2) -> dmat3x2: ... + @overload + def __rmatmul__(self, other: glm_typing.DAnyMatrix3x3) -> dmat3x3: ... + @overload + def __rmatmul__(self, other: glm_typing.DAnyMatrix3x4) -> dmat3x4: ... + @overload + def __rmatmul__(self, other: glm_typing.D64Vector3) -> dvec2: ... + @overload + def __imatmul__(self, other: glm_typing.DAnyMatrix3x2) -> dmat3x2: ... + @overload + def __imatmul__(self, other: glm_typing.DAnyMatrix3x3) -> dmat3x3: ... + @overload + def __imatmul__(self, other: glm_typing.DAnyMatrix3x4) -> dmat3x4: ... + @overload + def __imatmul__(self, other: glm_typing.D64Vector3) -> dvec2: ... + + +dmat3 = dmat3x3 +f64mat3 = dmat3x3 +f64mat3x3 = dmat3x3 + +class dmat3x3: + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number, /) -> None: ... + @overload + def __init__(self, _0: glm_typing.Number, _1: glm_typing.Number, _2: glm_typing.Number, _3: glm_typing.Number, _4: glm_typing.Number, _5: glm_typing.Number, _6: glm_typing.Number, _7: glm_typing.Number, _8: glm_typing.Number, /) -> None: ... + @overload + def __init__(self, x: Union[glm_typing.AnyAnyMatrix3x3, glm_typing.DAnyMatrix3x3, glm_typing.DAnyMatrix3x4, glm_typing.DAnyMatrix4x3, glm_typing.DAnyMatrix4x4], /) -> None: ... + + def length(self) -> Literal[3]: ... + def __len__(self) -> Literal[3]: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[dmvec3, None, None]: ... + + @overload + def __getitem__(self, index: Tuple[int, int]) -> float: ... + @overload + def __getitem__(self, index: int) -> dmvec3: ... + + @overload + def __setitem__(self, index: Tuple[int, int], value: glm_typing.Number) -> None: ... + @overload + def __setitem__(self, index: int, value: Union[dvec3, dmvec3]) -> None: ... + + def __neg__(self) -> dmat3x3: ... + def __pos__(self) -> dmat3x3: ... + + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + + def to_list(self) -> List[List[float]]: ... + def to_tuple(self) -> Tuple[Tuple[float, float, float], Tuple[float, float, float], Tuple[float, float, float]]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> dmat3x3: ... + + def __add__(self, other: glm_typing.DAnyMatrix3x3) -> dmat3x3: ... + def __radd__(self, other: glm_typing.DAnyMatrix3x3) -> dmat3x3: ... + def __iadd__(self, other: glm_typing.DAnyMatrix3x3) -> dmat3x3: ... + + def __sub__(self, other: glm_typing.DAnyMatrix3x3) -> dmat3x3: ... + def __rsub__(self, other: glm_typing.DAnyMatrix3x3) -> dmat3x3: ... + def __isub__(self, other: glm_typing.DAnyMatrix3x3) -> dmat3x3: ... + + @overload + def __mul__(self, other: glm_typing.DAnyMatrix3x2) -> dmat3x2: ... + @overload + def __mul__(self, other: glm_typing.DAnyMatrix3x3) -> dmat3x3: ... + @overload + def __mul__(self, other: glm_typing.DAnyMatrix3x4) -> dmat3x4: ... + @overload + def __mul__(self, other: glm_typing.D64Vector3) -> dvec3: ... + @overload + def __mul__(self, other: glm_typing.D64Vector2) -> dvec2: ... + @overload + def __rmul__(self, other: glm_typing.DAnyMatrix3x2) -> dmat3x2: ... + @overload + def __rmul__(self, other: glm_typing.DAnyMatrix3x3) -> dmat3x3: ... + @overload + def __rmul__(self, other: glm_typing.DAnyMatrix3x4) -> dmat3x4: ... + @overload + def __rmul__(self, other: glm_typing.D64Vector3) -> dvec3: ... + @overload + def __rmul__(self, other: glm_typing.D64Vector2) -> dvec2: ... + @overload + def __imul__(self, other: glm_typing.DAnyMatrix3x2) -> dmat3x2: ... + @overload + def __imul__(self, other: glm_typing.DAnyMatrix3x3) -> dmat3x3: ... + @overload + def __imul__(self, other: glm_typing.DAnyMatrix3x4) -> dmat3x4: ... + @overload + def __imul__(self, other: glm_typing.D64Vector3) -> dvec3: ... + @overload + def __imul__(self, other: glm_typing.D64Vector2) -> dvec2: ... + + @overload + def __truediv__(self, other: glm_typing.DAnyMatrix3x3) -> dmat3x3: ... + @overload + def __truediv__(self, other: glm_typing.D64Vector3) -> dvec3: ... + @overload + def __rtruediv__(self, other: glm_typing.DAnyMatrix3x3) -> dmat3x3: ... + @overload + def __rtruediv__(self, other: glm_typing.D64Vector3) -> dvec3: ... + @overload + def __itruediv__(self, other: glm_typing.DAnyMatrix3x3) -> dmat3x3: ... + @overload + def __itruediv__(self, other: glm_typing.D64Vector3) -> dvec3: ... + + @overload + def __matmul__(self, other: glm_typing.DAnyMatrix3x2) -> dmat3x2: ... + @overload + def __matmul__(self, other: glm_typing.DAnyMatrix3x3) -> dmat3x3: ... + @overload + def __matmul__(self, other: glm_typing.DAnyMatrix3x4) -> dmat3x4: ... + @overload + def __matmul__(self, other: glm_typing.D64Vector3) -> dvec3: ... + @overload + def __matmul__(self, other: glm_typing.D64Vector2) -> dvec2: ... + @overload + def __rmatmul__(self, other: glm_typing.DAnyMatrix3x2) -> dmat3x2: ... + @overload + def __rmatmul__(self, other: glm_typing.DAnyMatrix3x3) -> dmat3x3: ... + @overload + def __rmatmul__(self, other: glm_typing.DAnyMatrix3x4) -> dmat3x4: ... + @overload + def __rmatmul__(self, other: glm_typing.D64Vector3) -> dvec3: ... + @overload + def __rmatmul__(self, other: glm_typing.D64Vector2) -> dvec2: ... + @overload + def __imatmul__(self, other: glm_typing.DAnyMatrix3x2) -> dmat3x2: ... + @overload + def __imatmul__(self, other: glm_typing.DAnyMatrix3x3) -> dmat3x3: ... + @overload + def __imatmul__(self, other: glm_typing.DAnyMatrix3x4) -> dmat3x4: ... + @overload + def __imatmul__(self, other: glm_typing.D64Vector3) -> dvec3: ... + @overload + def __imatmul__(self, other: glm_typing.D64Vector2) -> dvec2: ... + + +f64mat3x4 = dmat3x4 + +class dmat3x4: + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number, /) -> None: ... + @overload + def __init__(self, _0: glm_typing.Number, _1: glm_typing.Number, _2: glm_typing.Number, _3: glm_typing.Number, _4: glm_typing.Number, _5: glm_typing.Number, _6: glm_typing.Number, _7: glm_typing.Number, _8: glm_typing.Number, _9: glm_typing.Number, _10: glm_typing.Number, _11: glm_typing.Number, /) -> None: ... + @overload + def __init__(self, x: Union[glm_typing.AnyAnyMatrix3x4, glm_typing.DAnyMatrix3x4, glm_typing.DAnyMatrix4x4], /) -> None: ... + + def length(self) -> Literal[3]: ... + def __len__(self) -> Literal[3]: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[dmvec4, None, None]: ... + + @overload + def __getitem__(self, index: Tuple[int, int]) -> float: ... + @overload + def __getitem__(self, index: int) -> dmvec4: ... + + @overload + def __setitem__(self, index: Tuple[int, int], value: glm_typing.Number) -> None: ... + @overload + def __setitem__(self, index: int, value: Union[dvec4, dmvec4]) -> None: ... + + def __neg__(self) -> dmat3x4: ... + def __pos__(self) -> dmat3x4: ... + + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + + def to_list(self) -> List[List[float]]: ... + def to_tuple(self) -> Tuple[Tuple[float, float, float, float], Tuple[float, float, float, float], Tuple[float, float, float, float]]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> dmat3x4: ... + + def __add__(self, other: glm_typing.DAnyMatrix3x4) -> dmat3x4: ... + def __radd__(self, other: glm_typing.DAnyMatrix3x4) -> dmat3x4: ... + def __iadd__(self, other: glm_typing.DAnyMatrix3x4) -> dmat3x4: ... + + def __sub__(self, other: glm_typing.DAnyMatrix3x4) -> dmat3x4: ... + def __rsub__(self, other: glm_typing.DAnyMatrix3x4) -> dmat3x4: ... + def __isub__(self, other: glm_typing.DAnyMatrix3x4) -> dmat3x4: ... + + @overload + def __mul__(self, other: glm_typing.DAnyMatrix3x2) -> dmat3x2: ... + @overload + def __mul__(self, other: glm_typing.DAnyMatrix3x3) -> dmat3x3: ... + @overload + def __mul__(self, other: glm_typing.DAnyMatrix3x4) -> dmat3x4: ... + @overload + def __mul__(self, other: glm_typing.D64Vector3) -> dvec4: ... + @overload + def __rmul__(self, other: glm_typing.DAnyMatrix3x2) -> dmat3x2: ... + @overload + def __rmul__(self, other: glm_typing.DAnyMatrix3x3) -> dmat3x3: ... + @overload + def __rmul__(self, other: glm_typing.DAnyMatrix3x4) -> dmat3x4: ... + @overload + def __rmul__(self, other: glm_typing.D64Vector3) -> dvec4: ... + @overload + def __imul__(self, other: glm_typing.DAnyMatrix3x2) -> dmat3x2: ... + @overload + def __imul__(self, other: glm_typing.DAnyMatrix3x3) -> dmat3x3: ... + @overload + def __imul__(self, other: glm_typing.DAnyMatrix3x4) -> dmat3x4: ... + @overload + def __imul__(self, other: glm_typing.D64Vector3) -> dvec4: ... + + @overload + def __matmul__(self, other: glm_typing.DAnyMatrix3x2) -> dmat3x2: ... + @overload + def __matmul__(self, other: glm_typing.DAnyMatrix3x3) -> dmat3x3: ... + @overload + def __matmul__(self, other: glm_typing.DAnyMatrix3x4) -> dmat3x4: ... + @overload + def __matmul__(self, other: glm_typing.D64Vector3) -> dvec4: ... + @overload + def __rmatmul__(self, other: glm_typing.DAnyMatrix3x2) -> dmat3x2: ... + @overload + def __rmatmul__(self, other: glm_typing.DAnyMatrix3x3) -> dmat3x3: ... + @overload + def __rmatmul__(self, other: glm_typing.DAnyMatrix3x4) -> dmat3x4: ... + @overload + def __rmatmul__(self, other: glm_typing.D64Vector3) -> dvec4: ... + @overload + def __imatmul__(self, other: glm_typing.DAnyMatrix3x2) -> dmat3x2: ... + @overload + def __imatmul__(self, other: glm_typing.DAnyMatrix3x3) -> dmat3x3: ... + @overload + def __imatmul__(self, other: glm_typing.DAnyMatrix3x4) -> dmat3x4: ... + @overload + def __imatmul__(self, other: glm_typing.D64Vector3) -> dvec4: ... + + +f64mat4x2 = dmat4x2 + +class dmat4x2: + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number, /) -> None: ... + @overload + def __init__(self, _0: glm_typing.Number, _1: glm_typing.Number, _2: glm_typing.Number, _3: glm_typing.Number, _4: glm_typing.Number, _5: glm_typing.Number, _6: glm_typing.Number, _7: glm_typing.Number, /) -> None: ... + @overload + def __init__(self, x: Union[glm_typing.AnyAnyMatrix4x2, glm_typing.DAnyMatrix4x2, glm_typing.DAnyMatrix4x3, glm_typing.DAnyMatrix4x4], /) -> None: ... + + def length(self) -> Literal[4]: ... + def __len__(self) -> Literal[4]: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[dmvec2, None, None]: ... + + @overload + def __getitem__(self, index: Tuple[int, int]) -> float: ... + @overload + def __getitem__(self, index: int) -> dmvec2: ... + + @overload + def __setitem__(self, index: Tuple[int, int], value: glm_typing.Number) -> None: ... + @overload + def __setitem__(self, index: int, value: Union[dvec2, dmvec2]) -> None: ... + + def __neg__(self) -> dmat4x2: ... + def __pos__(self) -> dmat4x2: ... + + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + + def to_list(self) -> List[List[float]]: ... + def to_tuple(self) -> Tuple[Tuple[float, float], Tuple[float, float], Tuple[float, float], Tuple[float, float]]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> dmat4x2: ... + + def __add__(self, other: glm_typing.DAnyMatrix4x2) -> dmat4x2: ... + def __radd__(self, other: glm_typing.DAnyMatrix4x2) -> dmat4x2: ... + def __iadd__(self, other: glm_typing.DAnyMatrix4x2) -> dmat4x2: ... + + def __sub__(self, other: glm_typing.DAnyMatrix4x2) -> dmat4x2: ... + def __rsub__(self, other: glm_typing.DAnyMatrix4x2) -> dmat4x2: ... + def __isub__(self, other: glm_typing.DAnyMatrix4x2) -> dmat4x2: ... + + @overload + def __mul__(self, other: glm_typing.DAnyMatrix4x2) -> dmat4x2: ... + @overload + def __mul__(self, other: glm_typing.DAnyMatrix4x3) -> dmat4x3: ... + @overload + def __mul__(self, other: glm_typing.DAnyMatrix4x4) -> dmat4x4: ... + @overload + def __mul__(self, other: glm_typing.D64Vector4) -> dvec2: ... + @overload + def __rmul__(self, other: glm_typing.DAnyMatrix4x2) -> dmat4x2: ... + @overload + def __rmul__(self, other: glm_typing.DAnyMatrix4x3) -> dmat4x3: ... + @overload + def __rmul__(self, other: glm_typing.DAnyMatrix4x4) -> dmat4x4: ... + @overload + def __rmul__(self, other: glm_typing.D64Vector4) -> dvec2: ... + @overload + def __imul__(self, other: glm_typing.DAnyMatrix4x2) -> dmat4x2: ... + @overload + def __imul__(self, other: glm_typing.DAnyMatrix4x3) -> dmat4x3: ... + @overload + def __imul__(self, other: glm_typing.DAnyMatrix4x4) -> dmat4x4: ... + @overload + def __imul__(self, other: glm_typing.D64Vector4) -> dvec2: ... + + @overload + def __matmul__(self, other: glm_typing.DAnyMatrix4x2) -> dmat4x2: ... + @overload + def __matmul__(self, other: glm_typing.DAnyMatrix4x3) -> dmat4x3: ... + @overload + def __matmul__(self, other: glm_typing.DAnyMatrix4x4) -> dmat4x4: ... + @overload + def __matmul__(self, other: glm_typing.D64Vector4) -> dvec2: ... + @overload + def __rmatmul__(self, other: glm_typing.DAnyMatrix4x2) -> dmat4x2: ... + @overload + def __rmatmul__(self, other: glm_typing.DAnyMatrix4x3) -> dmat4x3: ... + @overload + def __rmatmul__(self, other: glm_typing.DAnyMatrix4x4) -> dmat4x4: ... + @overload + def __rmatmul__(self, other: glm_typing.D64Vector4) -> dvec2: ... + @overload + def __imatmul__(self, other: glm_typing.DAnyMatrix4x2) -> dmat4x2: ... + @overload + def __imatmul__(self, other: glm_typing.DAnyMatrix4x3) -> dmat4x3: ... + @overload + def __imatmul__(self, other: glm_typing.DAnyMatrix4x4) -> dmat4x4: ... + @overload + def __imatmul__(self, other: glm_typing.D64Vector4) -> dvec2: ... + + +f64mat4x3 = dmat4x3 + +class dmat4x3: + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number, /) -> None: ... + @overload + def __init__(self, _0: glm_typing.Number, _1: glm_typing.Number, _2: glm_typing.Number, _3: glm_typing.Number, _4: glm_typing.Number, _5: glm_typing.Number, _6: glm_typing.Number, _7: glm_typing.Number, _8: glm_typing.Number, _9: glm_typing.Number, _10: glm_typing.Number, _11: glm_typing.Number, /) -> None: ... + @overload + def __init__(self, x: Union[glm_typing.AnyAnyMatrix4x3, glm_typing.DAnyMatrix4x3, glm_typing.DAnyMatrix4x4], /) -> None: ... + + def length(self) -> Literal[4]: ... + def __len__(self) -> Literal[4]: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[dmvec3, None, None]: ... + + @overload + def __getitem__(self, index: Tuple[int, int]) -> float: ... + @overload + def __getitem__(self, index: int) -> dmvec3: ... + + @overload + def __setitem__(self, index: Tuple[int, int], value: glm_typing.Number) -> None: ... + @overload + def __setitem__(self, index: int, value: Union[dvec3, dmvec3]) -> None: ... + + def __neg__(self) -> dmat4x3: ... + def __pos__(self) -> dmat4x3: ... + + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + + def to_list(self) -> List[List[float]]: ... + def to_tuple(self) -> Tuple[Tuple[float, float, float], Tuple[float, float, float], Tuple[float, float, float], Tuple[float, float, float]]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> dmat4x3: ... + + def __add__(self, other: glm_typing.DAnyMatrix4x3) -> dmat4x3: ... + def __radd__(self, other: glm_typing.DAnyMatrix4x3) -> dmat4x3: ... + def __iadd__(self, other: glm_typing.DAnyMatrix4x3) -> dmat4x3: ... + + def __sub__(self, other: glm_typing.DAnyMatrix4x3) -> dmat4x3: ... + def __rsub__(self, other: glm_typing.DAnyMatrix4x3) -> dmat4x3: ... + def __isub__(self, other: glm_typing.DAnyMatrix4x3) -> dmat4x3: ... + + @overload + def __mul__(self, other: glm_typing.DAnyMatrix4x2) -> dmat4x2: ... + @overload + def __mul__(self, other: glm_typing.DAnyMatrix4x3) -> dmat4x3: ... + @overload + def __mul__(self, other: glm_typing.DAnyMatrix4x4) -> dmat4x4: ... + @overload + def __mul__(self, other: glm_typing.D64Vector4) -> dvec3: ... + @overload + def __rmul__(self, other: glm_typing.DAnyMatrix4x2) -> dmat4x2: ... + @overload + def __rmul__(self, other: glm_typing.DAnyMatrix4x3) -> dmat4x3: ... + @overload + def __rmul__(self, other: glm_typing.DAnyMatrix4x4) -> dmat4x4: ... + @overload + def __rmul__(self, other: glm_typing.D64Vector4) -> dvec3: ... + @overload + def __imul__(self, other: glm_typing.DAnyMatrix4x2) -> dmat4x2: ... + @overload + def __imul__(self, other: glm_typing.DAnyMatrix4x3) -> dmat4x3: ... + @overload + def __imul__(self, other: glm_typing.DAnyMatrix4x4) -> dmat4x4: ... + @overload + def __imul__(self, other: glm_typing.D64Vector4) -> dvec3: ... + + @overload + def __matmul__(self, other: glm_typing.DAnyMatrix4x2) -> dmat4x2: ... + @overload + def __matmul__(self, other: glm_typing.DAnyMatrix4x3) -> dmat4x3: ... + @overload + def __matmul__(self, other: glm_typing.DAnyMatrix4x4) -> dmat4x4: ... + @overload + def __matmul__(self, other: glm_typing.D64Vector4) -> dvec3: ... + @overload + def __rmatmul__(self, other: glm_typing.DAnyMatrix4x2) -> dmat4x2: ... + @overload + def __rmatmul__(self, other: glm_typing.DAnyMatrix4x3) -> dmat4x3: ... + @overload + def __rmatmul__(self, other: glm_typing.DAnyMatrix4x4) -> dmat4x4: ... + @overload + def __rmatmul__(self, other: glm_typing.D64Vector4) -> dvec3: ... + @overload + def __imatmul__(self, other: glm_typing.DAnyMatrix4x2) -> dmat4x2: ... + @overload + def __imatmul__(self, other: glm_typing.DAnyMatrix4x3) -> dmat4x3: ... + @overload + def __imatmul__(self, other: glm_typing.DAnyMatrix4x4) -> dmat4x4: ... + @overload + def __imatmul__(self, other: glm_typing.D64Vector4) -> dvec3: ... + + +dmat4 = dmat4x4 +f64mat4 = dmat4x4 +f64mat4x4 = dmat4x4 + +class dmat4x4: + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number, /) -> None: ... + @overload + def __init__(self, _0: glm_typing.Number, _1: glm_typing.Number, _2: glm_typing.Number, _3: glm_typing.Number, _4: glm_typing.Number, _5: glm_typing.Number, _6: glm_typing.Number, _7: glm_typing.Number, _8: glm_typing.Number, _9: glm_typing.Number, _10: glm_typing.Number, _11: glm_typing.Number, _12: glm_typing.Number, _13: glm_typing.Number, _14: glm_typing.Number, _15: glm_typing.Number, /) -> None: ... + @overload + def __init__(self, x: Union[glm_typing.AnyAnyMatrix4x4, glm_typing.DAnyMatrix4x4], /) -> None: ... + + def length(self) -> Literal[4]: ... + def __len__(self) -> Literal[4]: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[dmvec4, None, None]: ... + + @overload + def __getitem__(self, index: Tuple[int, int]) -> float: ... + @overload + def __getitem__(self, index: int) -> dmvec4: ... + + @overload + def __setitem__(self, index: Tuple[int, int], value: glm_typing.Number) -> None: ... + @overload + def __setitem__(self, index: int, value: Union[dvec4, dmvec4]) -> None: ... + + def __neg__(self) -> dmat4x4: ... + def __pos__(self) -> dmat4x4: ... + + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + + def to_list(self) -> List[List[float]]: ... + def to_tuple(self) -> Tuple[Tuple[float, float, float, float], Tuple[float, float, float, float], Tuple[float, float, float, float], Tuple[float, float, float, float]]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> dmat4x4: ... + + def __add__(self, other: glm_typing.DAnyMatrix4x4) -> dmat4x4: ... + def __radd__(self, other: glm_typing.DAnyMatrix4x4) -> dmat4x4: ... + def __iadd__(self, other: glm_typing.DAnyMatrix4x4) -> dmat4x4: ... + + def __sub__(self, other: glm_typing.DAnyMatrix4x4) -> dmat4x4: ... + def __rsub__(self, other: glm_typing.DAnyMatrix4x4) -> dmat4x4: ... + def __isub__(self, other: glm_typing.DAnyMatrix4x4) -> dmat4x4: ... + + @overload + def __mul__(self, other: glm_typing.DAnyMatrix4x2) -> dmat4x2: ... + @overload + def __mul__(self, other: glm_typing.DAnyMatrix4x3) -> dmat4x3: ... + @overload + def __mul__(self, other: glm_typing.DAnyMatrix4x4) -> dmat4x4: ... + @overload + def __mul__(self, other: glm_typing.D64Vector4) -> dvec4: ... + @overload + def __mul__(self, other: glm_typing.D64Vector3) -> dvec3: ... + @overload + def __rmul__(self, other: glm_typing.DAnyMatrix4x2) -> dmat4x2: ... + @overload + def __rmul__(self, other: glm_typing.DAnyMatrix4x3) -> dmat4x3: ... + @overload + def __rmul__(self, other: glm_typing.DAnyMatrix4x4) -> dmat4x4: ... + @overload + def __rmul__(self, other: glm_typing.D64Vector4) -> dvec4: ... + @overload + def __rmul__(self, other: glm_typing.D64Vector3) -> dvec3: ... + @overload + def __imul__(self, other: glm_typing.DAnyMatrix4x2) -> dmat4x2: ... + @overload + def __imul__(self, other: glm_typing.DAnyMatrix4x3) -> dmat4x3: ... + @overload + def __imul__(self, other: glm_typing.DAnyMatrix4x4) -> dmat4x4: ... + @overload + def __imul__(self, other: glm_typing.D64Vector4) -> dvec4: ... + @overload + def __imul__(self, other: glm_typing.D64Vector3) -> dvec3: ... + + @overload + def __truediv__(self, other: glm_typing.DAnyMatrix4x4) -> dmat4x4: ... + @overload + def __truediv__(self, other: glm_typing.D64Vector4) -> dvec4: ... + @overload + def __rtruediv__(self, other: glm_typing.DAnyMatrix4x4) -> dmat4x4: ... + @overload + def __rtruediv__(self, other: glm_typing.D64Vector4) -> dvec4: ... + @overload + def __itruediv__(self, other: glm_typing.DAnyMatrix4x4) -> dmat4x4: ... + @overload + def __itruediv__(self, other: glm_typing.D64Vector4) -> dvec4: ... + + @overload + def __matmul__(self, other: glm_typing.DAnyMatrix4x2) -> dmat4x2: ... + @overload + def __matmul__(self, other: glm_typing.DAnyMatrix4x3) -> dmat4x3: ... + @overload + def __matmul__(self, other: glm_typing.DAnyMatrix4x4) -> dmat4x4: ... + @overload + def __matmul__(self, other: glm_typing.D64Vector4) -> dvec4: ... + @overload + def __matmul__(self, other: glm_typing.D64Vector3) -> dvec3: ... + @overload + def __rmatmul__(self, other: glm_typing.DAnyMatrix4x2) -> dmat4x2: ... + @overload + def __rmatmul__(self, other: glm_typing.DAnyMatrix4x3) -> dmat4x3: ... + @overload + def __rmatmul__(self, other: glm_typing.DAnyMatrix4x4) -> dmat4x4: ... + @overload + def __rmatmul__(self, other: glm_typing.D64Vector4) -> dvec4: ... + @overload + def __rmatmul__(self, other: glm_typing.D64Vector3) -> dvec3: ... + @overload + def __imatmul__(self, other: glm_typing.DAnyMatrix4x2) -> dmat4x2: ... + @overload + def __imatmul__(self, other: glm_typing.DAnyMatrix4x3) -> dmat4x3: ... + @overload + def __imatmul__(self, other: glm_typing.DAnyMatrix4x4) -> dmat4x4: ... + @overload + def __imatmul__(self, other: glm_typing.D64Vector4) -> dvec4: ... + @overload + def __imatmul__(self, other: glm_typing.D64Vector3) -> dvec3: ... + + +i32mat2 = imat2x2 +i32mat2x2 = imat2x2 +imat2 = imat2x2 + +class imat2x2: + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number, /) -> None: ... + @overload + def __init__(self, _0: glm_typing.Number, _1: glm_typing.Number, _2: glm_typing.Number, _3: glm_typing.Number, /) -> None: ... + @overload + def __init__(self, x: Union[glm_typing.AnyAnyMatrix2x2, glm_typing.IAnyMatrix2x2, glm_typing.IAnyMatrix2x3, glm_typing.IAnyMatrix2x4, glm_typing.IAnyMatrix3x2, glm_typing.IAnyMatrix3x3, glm_typing.IAnyMatrix3x4, glm_typing.IAnyMatrix4x2, glm_typing.IAnyMatrix4x3, glm_typing.IAnyMatrix4x4], /) -> None: ... + + def length(self) -> Literal[2]: ... + def __len__(self) -> Literal[2]: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[imvec2, None, None]: ... + + @overload + def __getitem__(self, index: Tuple[int, int]) -> int: ... + @overload + def __getitem__(self, index: int) -> imvec2: ... + + @overload + def __setitem__(self, index: Tuple[int, int], value: glm_typing.Number) -> None: ... + @overload + def __setitem__(self, index: int, value: Union[ivec2, imvec2]) -> None: ... + + def __neg__(self) -> imat2x2: ... + def __pos__(self) -> imat2x2: ... + + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + + def to_list(self) -> List[List[int]]: ... + def to_tuple(self) -> Tuple[Tuple[int, int], Tuple[int, int]]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> imat2x2: ... + + def __add__(self, other: glm_typing.IAnyMatrix2x2) -> imat2x2: ... + def __radd__(self, other: glm_typing.IAnyMatrix2x2) -> imat2x2: ... + def __iadd__(self, other: glm_typing.IAnyMatrix2x2) -> imat2x2: ... + + def __sub__(self, other: glm_typing.IAnyMatrix2x2) -> imat2x2: ... + def __rsub__(self, other: glm_typing.IAnyMatrix2x2) -> imat2x2: ... + def __isub__(self, other: glm_typing.IAnyMatrix2x2) -> imat2x2: ... + + @overload + def __mul__(self, other: glm_typing.IAnyMatrix2x2) -> imat2x2: ... + @overload + def __mul__(self, other: glm_typing.IAnyMatrix2x3) -> imat2x3: ... + @overload + def __mul__(self, other: glm_typing.IAnyMatrix2x4) -> imat2x4: ... + @overload + def __mul__(self, other: glm_typing.I32Vector2) -> ivec2: ... + @overload + def __mul__(self, other: glm_typing.I32Vector1) -> ivec1: ... + @overload + def __rmul__(self, other: glm_typing.IAnyMatrix2x2) -> imat2x2: ... + @overload + def __rmul__(self, other: glm_typing.IAnyMatrix2x3) -> imat2x3: ... + @overload + def __rmul__(self, other: glm_typing.IAnyMatrix2x4) -> imat2x4: ... + @overload + def __rmul__(self, other: glm_typing.I32Vector2) -> ivec2: ... + @overload + def __rmul__(self, other: glm_typing.I32Vector1) -> ivec1: ... + @overload + def __imul__(self, other: glm_typing.IAnyMatrix2x2) -> imat2x2: ... + @overload + def __imul__(self, other: glm_typing.IAnyMatrix2x3) -> imat2x3: ... + @overload + def __imul__(self, other: glm_typing.IAnyMatrix2x4) -> imat2x4: ... + @overload + def __imul__(self, other: glm_typing.I32Vector2) -> ivec2: ... + @overload + def __imul__(self, other: glm_typing.I32Vector1) -> ivec1: ... + + @overload + def __truediv__(self, other: glm_typing.IAnyMatrix2x2) -> imat2x2: ... + @overload + def __truediv__(self, other: glm_typing.I32Vector2) -> ivec2: ... + @overload + def __rtruediv__(self, other: glm_typing.IAnyMatrix2x2) -> imat2x2: ... + @overload + def __rtruediv__(self, other: glm_typing.I32Vector2) -> ivec2: ... + @overload + def __itruediv__(self, other: glm_typing.IAnyMatrix2x2) -> imat2x2: ... + @overload + def __itruediv__(self, other: glm_typing.I32Vector2) -> ivec2: ... + + @overload + def __matmul__(self, other: glm_typing.IAnyMatrix2x2) -> imat2x2: ... + @overload + def __matmul__(self, other: glm_typing.IAnyMatrix2x3) -> imat2x3: ... + @overload + def __matmul__(self, other: glm_typing.IAnyMatrix2x4) -> imat2x4: ... + @overload + def __matmul__(self, other: glm_typing.I32Vector2) -> ivec2: ... + @overload + def __matmul__(self, other: glm_typing.I32Vector1) -> ivec1: ... + @overload + def __rmatmul__(self, other: glm_typing.IAnyMatrix2x2) -> imat2x2: ... + @overload + def __rmatmul__(self, other: glm_typing.IAnyMatrix2x3) -> imat2x3: ... + @overload + def __rmatmul__(self, other: glm_typing.IAnyMatrix2x4) -> imat2x4: ... + @overload + def __rmatmul__(self, other: glm_typing.I32Vector2) -> ivec2: ... + @overload + def __rmatmul__(self, other: glm_typing.I32Vector1) -> ivec1: ... + @overload + def __imatmul__(self, other: glm_typing.IAnyMatrix2x2) -> imat2x2: ... + @overload + def __imatmul__(self, other: glm_typing.IAnyMatrix2x3) -> imat2x3: ... + @overload + def __imatmul__(self, other: glm_typing.IAnyMatrix2x4) -> imat2x4: ... + @overload + def __imatmul__(self, other: glm_typing.I32Vector2) -> ivec2: ... + @overload + def __imatmul__(self, other: glm_typing.I32Vector1) -> ivec1: ... + + +i32mat2x3 = imat2x3 + +class imat2x3: + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number, /) -> None: ... + @overload + def __init__(self, _0: glm_typing.Number, _1: glm_typing.Number, _2: glm_typing.Number, _3: glm_typing.Number, _4: glm_typing.Number, _5: glm_typing.Number, /) -> None: ... + @overload + def __init__(self, x: Union[glm_typing.AnyAnyMatrix2x3, glm_typing.IAnyMatrix2x3, glm_typing.IAnyMatrix2x4, glm_typing.IAnyMatrix3x3, glm_typing.IAnyMatrix3x4, glm_typing.IAnyMatrix4x3, glm_typing.IAnyMatrix4x4], /) -> None: ... + + def length(self) -> Literal[2]: ... + def __len__(self) -> Literal[2]: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[imvec3, None, None]: ... + + @overload + def __getitem__(self, index: Tuple[int, int]) -> int: ... + @overload + def __getitem__(self, index: int) -> imvec3: ... + + @overload + def __setitem__(self, index: Tuple[int, int], value: glm_typing.Number) -> None: ... + @overload + def __setitem__(self, index: int, value: Union[ivec3, imvec3]) -> None: ... + + def __neg__(self) -> imat2x3: ... + def __pos__(self) -> imat2x3: ... + + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + + def to_list(self) -> List[List[int]]: ... + def to_tuple(self) -> Tuple[Tuple[int, int, int], Tuple[int, int, int]]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> imat2x3: ... + + def __add__(self, other: glm_typing.IAnyMatrix2x3) -> imat2x3: ... + def __radd__(self, other: glm_typing.IAnyMatrix2x3) -> imat2x3: ... + def __iadd__(self, other: glm_typing.IAnyMatrix2x3) -> imat2x3: ... + + def __sub__(self, other: glm_typing.IAnyMatrix2x3) -> imat2x3: ... + def __rsub__(self, other: glm_typing.IAnyMatrix2x3) -> imat2x3: ... + def __isub__(self, other: glm_typing.IAnyMatrix2x3) -> imat2x3: ... + + @overload + def __mul__(self, other: glm_typing.IAnyMatrix2x2) -> imat2x2: ... + @overload + def __mul__(self, other: glm_typing.IAnyMatrix2x3) -> imat2x3: ... + @overload + def __mul__(self, other: glm_typing.IAnyMatrix2x4) -> imat2x4: ... + @overload + def __mul__(self, other: glm_typing.I32Vector2) -> ivec3: ... + @overload + def __rmul__(self, other: glm_typing.IAnyMatrix2x2) -> imat2x2: ... + @overload + def __rmul__(self, other: glm_typing.IAnyMatrix2x3) -> imat2x3: ... + @overload + def __rmul__(self, other: glm_typing.IAnyMatrix2x4) -> imat2x4: ... + @overload + def __rmul__(self, other: glm_typing.I32Vector2) -> ivec3: ... + @overload + def __imul__(self, other: glm_typing.IAnyMatrix2x2) -> imat2x2: ... + @overload + def __imul__(self, other: glm_typing.IAnyMatrix2x3) -> imat2x3: ... + @overload + def __imul__(self, other: glm_typing.IAnyMatrix2x4) -> imat2x4: ... + @overload + def __imul__(self, other: glm_typing.I32Vector2) -> ivec3: ... + + @overload + def __matmul__(self, other: glm_typing.IAnyMatrix2x2) -> imat2x2: ... + @overload + def __matmul__(self, other: glm_typing.IAnyMatrix2x3) -> imat2x3: ... + @overload + def __matmul__(self, other: glm_typing.IAnyMatrix2x4) -> imat2x4: ... + @overload + def __matmul__(self, other: glm_typing.I32Vector2) -> ivec3: ... + @overload + def __rmatmul__(self, other: glm_typing.IAnyMatrix2x2) -> imat2x2: ... + @overload + def __rmatmul__(self, other: glm_typing.IAnyMatrix2x3) -> imat2x3: ... + @overload + def __rmatmul__(self, other: glm_typing.IAnyMatrix2x4) -> imat2x4: ... + @overload + def __rmatmul__(self, other: glm_typing.I32Vector2) -> ivec3: ... + @overload + def __imatmul__(self, other: glm_typing.IAnyMatrix2x2) -> imat2x2: ... + @overload + def __imatmul__(self, other: glm_typing.IAnyMatrix2x3) -> imat2x3: ... + @overload + def __imatmul__(self, other: glm_typing.IAnyMatrix2x4) -> imat2x4: ... + @overload + def __imatmul__(self, other: glm_typing.I32Vector2) -> ivec3: ... + + +i32mat2x4 = imat2x4 + +class imat2x4: + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number, /) -> None: ... + @overload + def __init__(self, _0: glm_typing.Number, _1: glm_typing.Number, _2: glm_typing.Number, _3: glm_typing.Number, _4: glm_typing.Number, _5: glm_typing.Number, _6: glm_typing.Number, _7: glm_typing.Number, /) -> None: ... + @overload + def __init__(self, x: Union[glm_typing.AnyAnyMatrix2x4, glm_typing.IAnyMatrix2x4, glm_typing.IAnyMatrix3x4, glm_typing.IAnyMatrix4x4], /) -> None: ... + + def length(self) -> Literal[2]: ... + def __len__(self) -> Literal[2]: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[imvec4, None, None]: ... + + @overload + def __getitem__(self, index: Tuple[int, int]) -> int: ... + @overload + def __getitem__(self, index: int) -> imvec4: ... + + @overload + def __setitem__(self, index: Tuple[int, int], value: glm_typing.Number) -> None: ... + @overload + def __setitem__(self, index: int, value: Union[ivec4, imvec4]) -> None: ... + + def __neg__(self) -> imat2x4: ... + def __pos__(self) -> imat2x4: ... + + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + + def to_list(self) -> List[List[int]]: ... + def to_tuple(self) -> Tuple[Tuple[int, int, int, int], Tuple[int, int, int, int]]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> imat2x4: ... + + def __add__(self, other: glm_typing.IAnyMatrix2x4) -> imat2x4: ... + def __radd__(self, other: glm_typing.IAnyMatrix2x4) -> imat2x4: ... + def __iadd__(self, other: glm_typing.IAnyMatrix2x4) -> imat2x4: ... + + def __sub__(self, other: glm_typing.IAnyMatrix2x4) -> imat2x4: ... + def __rsub__(self, other: glm_typing.IAnyMatrix2x4) -> imat2x4: ... + def __isub__(self, other: glm_typing.IAnyMatrix2x4) -> imat2x4: ... + + @overload + def __mul__(self, other: glm_typing.IAnyMatrix2x2) -> imat2x2: ... + @overload + def __mul__(self, other: glm_typing.IAnyMatrix2x3) -> imat2x3: ... + @overload + def __mul__(self, other: glm_typing.IAnyMatrix2x4) -> imat2x4: ... + @overload + def __mul__(self, other: glm_typing.I32Vector2) -> ivec4: ... + @overload + def __rmul__(self, other: glm_typing.IAnyMatrix2x2) -> imat2x2: ... + @overload + def __rmul__(self, other: glm_typing.IAnyMatrix2x3) -> imat2x3: ... + @overload + def __rmul__(self, other: glm_typing.IAnyMatrix2x4) -> imat2x4: ... + @overload + def __rmul__(self, other: glm_typing.I32Vector2) -> ivec4: ... + @overload + def __imul__(self, other: glm_typing.IAnyMatrix2x2) -> imat2x2: ... + @overload + def __imul__(self, other: glm_typing.IAnyMatrix2x3) -> imat2x3: ... + @overload + def __imul__(self, other: glm_typing.IAnyMatrix2x4) -> imat2x4: ... + @overload + def __imul__(self, other: glm_typing.I32Vector2) -> ivec4: ... + + @overload + def __matmul__(self, other: glm_typing.IAnyMatrix2x2) -> imat2x2: ... + @overload + def __matmul__(self, other: glm_typing.IAnyMatrix2x3) -> imat2x3: ... + @overload + def __matmul__(self, other: glm_typing.IAnyMatrix2x4) -> imat2x4: ... + @overload + def __matmul__(self, other: glm_typing.I32Vector2) -> ivec4: ... + @overload + def __rmatmul__(self, other: glm_typing.IAnyMatrix2x2) -> imat2x2: ... + @overload + def __rmatmul__(self, other: glm_typing.IAnyMatrix2x3) -> imat2x3: ... + @overload + def __rmatmul__(self, other: glm_typing.IAnyMatrix2x4) -> imat2x4: ... + @overload + def __rmatmul__(self, other: glm_typing.I32Vector2) -> ivec4: ... + @overload + def __imatmul__(self, other: glm_typing.IAnyMatrix2x2) -> imat2x2: ... + @overload + def __imatmul__(self, other: glm_typing.IAnyMatrix2x3) -> imat2x3: ... + @overload + def __imatmul__(self, other: glm_typing.IAnyMatrix2x4) -> imat2x4: ... + @overload + def __imatmul__(self, other: glm_typing.I32Vector2) -> ivec4: ... + + +i32mat3x2 = imat3x2 + +class imat3x2: + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number, /) -> None: ... + @overload + def __init__(self, _0: glm_typing.Number, _1: glm_typing.Number, _2: glm_typing.Number, _3: glm_typing.Number, _4: glm_typing.Number, _5: glm_typing.Number, /) -> None: ... + @overload + def __init__(self, x: Union[glm_typing.AnyAnyMatrix3x2, glm_typing.IAnyMatrix3x2, glm_typing.IAnyMatrix3x3, glm_typing.IAnyMatrix3x4, glm_typing.IAnyMatrix4x2, glm_typing.IAnyMatrix4x3, glm_typing.IAnyMatrix4x4], /) -> None: ... + + def length(self) -> Literal[3]: ... + def __len__(self) -> Literal[3]: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[imvec2, None, None]: ... + + @overload + def __getitem__(self, index: Tuple[int, int]) -> int: ... + @overload + def __getitem__(self, index: int) -> imvec2: ... + + @overload + def __setitem__(self, index: Tuple[int, int], value: glm_typing.Number) -> None: ... + @overload + def __setitem__(self, index: int, value: Union[ivec2, imvec2]) -> None: ... + + def __neg__(self) -> imat3x2: ... + def __pos__(self) -> imat3x2: ... + + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + + def to_list(self) -> List[List[int]]: ... + def to_tuple(self) -> Tuple[Tuple[int, int], Tuple[int, int], Tuple[int, int]]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> imat3x2: ... + + def __add__(self, other: glm_typing.IAnyMatrix3x2) -> imat3x2: ... + def __radd__(self, other: glm_typing.IAnyMatrix3x2) -> imat3x2: ... + def __iadd__(self, other: glm_typing.IAnyMatrix3x2) -> imat3x2: ... + + def __sub__(self, other: glm_typing.IAnyMatrix3x2) -> imat3x2: ... + def __rsub__(self, other: glm_typing.IAnyMatrix3x2) -> imat3x2: ... + def __isub__(self, other: glm_typing.IAnyMatrix3x2) -> imat3x2: ... + + @overload + def __mul__(self, other: glm_typing.IAnyMatrix3x2) -> imat3x2: ... + @overload + def __mul__(self, other: glm_typing.IAnyMatrix3x3) -> imat3x3: ... + @overload + def __mul__(self, other: glm_typing.IAnyMatrix3x4) -> imat3x4: ... + @overload + def __mul__(self, other: glm_typing.I32Vector3) -> ivec2: ... + @overload + def __rmul__(self, other: glm_typing.IAnyMatrix3x2) -> imat3x2: ... + @overload + def __rmul__(self, other: glm_typing.IAnyMatrix3x3) -> imat3x3: ... + @overload + def __rmul__(self, other: glm_typing.IAnyMatrix3x4) -> imat3x4: ... + @overload + def __rmul__(self, other: glm_typing.I32Vector3) -> ivec2: ... + @overload + def __imul__(self, other: glm_typing.IAnyMatrix3x2) -> imat3x2: ... + @overload + def __imul__(self, other: glm_typing.IAnyMatrix3x3) -> imat3x3: ... + @overload + def __imul__(self, other: glm_typing.IAnyMatrix3x4) -> imat3x4: ... + @overload + def __imul__(self, other: glm_typing.I32Vector3) -> ivec2: ... + + @overload + def __matmul__(self, other: glm_typing.IAnyMatrix3x2) -> imat3x2: ... + @overload + def __matmul__(self, other: glm_typing.IAnyMatrix3x3) -> imat3x3: ... + @overload + def __matmul__(self, other: glm_typing.IAnyMatrix3x4) -> imat3x4: ... + @overload + def __matmul__(self, other: glm_typing.I32Vector3) -> ivec2: ... + @overload + def __rmatmul__(self, other: glm_typing.IAnyMatrix3x2) -> imat3x2: ... + @overload + def __rmatmul__(self, other: glm_typing.IAnyMatrix3x3) -> imat3x3: ... + @overload + def __rmatmul__(self, other: glm_typing.IAnyMatrix3x4) -> imat3x4: ... + @overload + def __rmatmul__(self, other: glm_typing.I32Vector3) -> ivec2: ... + @overload + def __imatmul__(self, other: glm_typing.IAnyMatrix3x2) -> imat3x2: ... + @overload + def __imatmul__(self, other: glm_typing.IAnyMatrix3x3) -> imat3x3: ... + @overload + def __imatmul__(self, other: glm_typing.IAnyMatrix3x4) -> imat3x4: ... + @overload + def __imatmul__(self, other: glm_typing.I32Vector3) -> ivec2: ... + + +i32mat3 = imat3x3 +i32mat3x3 = imat3x3 +imat3 = imat3x3 + +class imat3x3: + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number, /) -> None: ... + @overload + def __init__(self, _0: glm_typing.Number, _1: glm_typing.Number, _2: glm_typing.Number, _3: glm_typing.Number, _4: glm_typing.Number, _5: glm_typing.Number, _6: glm_typing.Number, _7: glm_typing.Number, _8: glm_typing.Number, /) -> None: ... + @overload + def __init__(self, x: Union[glm_typing.AnyAnyMatrix3x3, glm_typing.IAnyMatrix3x3, glm_typing.IAnyMatrix3x4, glm_typing.IAnyMatrix4x3, glm_typing.IAnyMatrix4x4], /) -> None: ... + + def length(self) -> Literal[3]: ... + def __len__(self) -> Literal[3]: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[imvec3, None, None]: ... + + @overload + def __getitem__(self, index: Tuple[int, int]) -> int: ... + @overload + def __getitem__(self, index: int) -> imvec3: ... + + @overload + def __setitem__(self, index: Tuple[int, int], value: glm_typing.Number) -> None: ... + @overload + def __setitem__(self, index: int, value: Union[ivec3, imvec3]) -> None: ... + + def __neg__(self) -> imat3x3: ... + def __pos__(self) -> imat3x3: ... + + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + + def to_list(self) -> List[List[int]]: ... + def to_tuple(self) -> Tuple[Tuple[int, int, int], Tuple[int, int, int], Tuple[int, int, int]]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> imat3x3: ... + + def __add__(self, other: glm_typing.IAnyMatrix3x3) -> imat3x3: ... + def __radd__(self, other: glm_typing.IAnyMatrix3x3) -> imat3x3: ... + def __iadd__(self, other: glm_typing.IAnyMatrix3x3) -> imat3x3: ... + + def __sub__(self, other: glm_typing.IAnyMatrix3x3) -> imat3x3: ... + def __rsub__(self, other: glm_typing.IAnyMatrix3x3) -> imat3x3: ... + def __isub__(self, other: glm_typing.IAnyMatrix3x3) -> imat3x3: ... + + @overload + def __mul__(self, other: glm_typing.IAnyMatrix3x2) -> imat3x2: ... + @overload + def __mul__(self, other: glm_typing.IAnyMatrix3x3) -> imat3x3: ... + @overload + def __mul__(self, other: glm_typing.IAnyMatrix3x4) -> imat3x4: ... + @overload + def __mul__(self, other: glm_typing.I32Vector3) -> ivec3: ... + @overload + def __mul__(self, other: glm_typing.I32Vector2) -> ivec2: ... + @overload + def __rmul__(self, other: glm_typing.IAnyMatrix3x2) -> imat3x2: ... + @overload + def __rmul__(self, other: glm_typing.IAnyMatrix3x3) -> imat3x3: ... + @overload + def __rmul__(self, other: glm_typing.IAnyMatrix3x4) -> imat3x4: ... + @overload + def __rmul__(self, other: glm_typing.I32Vector3) -> ivec3: ... + @overload + def __rmul__(self, other: glm_typing.I32Vector2) -> ivec2: ... + @overload + def __imul__(self, other: glm_typing.IAnyMatrix3x2) -> imat3x2: ... + @overload + def __imul__(self, other: glm_typing.IAnyMatrix3x3) -> imat3x3: ... + @overload + def __imul__(self, other: glm_typing.IAnyMatrix3x4) -> imat3x4: ... + @overload + def __imul__(self, other: glm_typing.I32Vector3) -> ivec3: ... + @overload + def __imul__(self, other: glm_typing.I32Vector2) -> ivec2: ... + + @overload + def __truediv__(self, other: glm_typing.IAnyMatrix3x3) -> imat3x3: ... + @overload + def __truediv__(self, other: glm_typing.I32Vector3) -> ivec3: ... + @overload + def __rtruediv__(self, other: glm_typing.IAnyMatrix3x3) -> imat3x3: ... + @overload + def __rtruediv__(self, other: glm_typing.I32Vector3) -> ivec3: ... + @overload + def __itruediv__(self, other: glm_typing.IAnyMatrix3x3) -> imat3x3: ... + @overload + def __itruediv__(self, other: glm_typing.I32Vector3) -> ivec3: ... + + @overload + def __matmul__(self, other: glm_typing.IAnyMatrix3x2) -> imat3x2: ... + @overload + def __matmul__(self, other: glm_typing.IAnyMatrix3x3) -> imat3x3: ... + @overload + def __matmul__(self, other: glm_typing.IAnyMatrix3x4) -> imat3x4: ... + @overload + def __matmul__(self, other: glm_typing.I32Vector3) -> ivec3: ... + @overload + def __matmul__(self, other: glm_typing.I32Vector2) -> ivec2: ... + @overload + def __rmatmul__(self, other: glm_typing.IAnyMatrix3x2) -> imat3x2: ... + @overload + def __rmatmul__(self, other: glm_typing.IAnyMatrix3x3) -> imat3x3: ... + @overload + def __rmatmul__(self, other: glm_typing.IAnyMatrix3x4) -> imat3x4: ... + @overload + def __rmatmul__(self, other: glm_typing.I32Vector3) -> ivec3: ... + @overload + def __rmatmul__(self, other: glm_typing.I32Vector2) -> ivec2: ... + @overload + def __imatmul__(self, other: glm_typing.IAnyMatrix3x2) -> imat3x2: ... + @overload + def __imatmul__(self, other: glm_typing.IAnyMatrix3x3) -> imat3x3: ... + @overload + def __imatmul__(self, other: glm_typing.IAnyMatrix3x4) -> imat3x4: ... + @overload + def __imatmul__(self, other: glm_typing.I32Vector3) -> ivec3: ... + @overload + def __imatmul__(self, other: glm_typing.I32Vector2) -> ivec2: ... + + +i32mat3x4 = imat3x4 + +class imat3x4: + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number, /) -> None: ... + @overload + def __init__(self, _0: glm_typing.Number, _1: glm_typing.Number, _2: glm_typing.Number, _3: glm_typing.Number, _4: glm_typing.Number, _5: glm_typing.Number, _6: glm_typing.Number, _7: glm_typing.Number, _8: glm_typing.Number, _9: glm_typing.Number, _10: glm_typing.Number, _11: glm_typing.Number, /) -> None: ... + @overload + def __init__(self, x: Union[glm_typing.AnyAnyMatrix3x4, glm_typing.IAnyMatrix3x4, glm_typing.IAnyMatrix4x4], /) -> None: ... + + def length(self) -> Literal[3]: ... + def __len__(self) -> Literal[3]: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[imvec4, None, None]: ... + + @overload + def __getitem__(self, index: Tuple[int, int]) -> int: ... + @overload + def __getitem__(self, index: int) -> imvec4: ... + + @overload + def __setitem__(self, index: Tuple[int, int], value: glm_typing.Number) -> None: ... + @overload + def __setitem__(self, index: int, value: Union[ivec4, imvec4]) -> None: ... + + def __neg__(self) -> imat3x4: ... + def __pos__(self) -> imat3x4: ... + + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + + def to_list(self) -> List[List[int]]: ... + def to_tuple(self) -> Tuple[Tuple[int, int, int, int], Tuple[int, int, int, int], Tuple[int, int, int, int]]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> imat3x4: ... + + def __add__(self, other: glm_typing.IAnyMatrix3x4) -> imat3x4: ... + def __radd__(self, other: glm_typing.IAnyMatrix3x4) -> imat3x4: ... + def __iadd__(self, other: glm_typing.IAnyMatrix3x4) -> imat3x4: ... + + def __sub__(self, other: glm_typing.IAnyMatrix3x4) -> imat3x4: ... + def __rsub__(self, other: glm_typing.IAnyMatrix3x4) -> imat3x4: ... + def __isub__(self, other: glm_typing.IAnyMatrix3x4) -> imat3x4: ... + + @overload + def __mul__(self, other: glm_typing.IAnyMatrix3x2) -> imat3x2: ... + @overload + def __mul__(self, other: glm_typing.IAnyMatrix3x3) -> imat3x3: ... + @overload + def __mul__(self, other: glm_typing.IAnyMatrix3x4) -> imat3x4: ... + @overload + def __mul__(self, other: glm_typing.I32Vector3) -> ivec4: ... + @overload + def __rmul__(self, other: glm_typing.IAnyMatrix3x2) -> imat3x2: ... + @overload + def __rmul__(self, other: glm_typing.IAnyMatrix3x3) -> imat3x3: ... + @overload + def __rmul__(self, other: glm_typing.IAnyMatrix3x4) -> imat3x4: ... + @overload + def __rmul__(self, other: glm_typing.I32Vector3) -> ivec4: ... + @overload + def __imul__(self, other: glm_typing.IAnyMatrix3x2) -> imat3x2: ... + @overload + def __imul__(self, other: glm_typing.IAnyMatrix3x3) -> imat3x3: ... + @overload + def __imul__(self, other: glm_typing.IAnyMatrix3x4) -> imat3x4: ... + @overload + def __imul__(self, other: glm_typing.I32Vector3) -> ivec4: ... + + @overload + def __matmul__(self, other: glm_typing.IAnyMatrix3x2) -> imat3x2: ... + @overload + def __matmul__(self, other: glm_typing.IAnyMatrix3x3) -> imat3x3: ... + @overload + def __matmul__(self, other: glm_typing.IAnyMatrix3x4) -> imat3x4: ... + @overload + def __matmul__(self, other: glm_typing.I32Vector3) -> ivec4: ... + @overload + def __rmatmul__(self, other: glm_typing.IAnyMatrix3x2) -> imat3x2: ... + @overload + def __rmatmul__(self, other: glm_typing.IAnyMatrix3x3) -> imat3x3: ... + @overload + def __rmatmul__(self, other: glm_typing.IAnyMatrix3x4) -> imat3x4: ... + @overload + def __rmatmul__(self, other: glm_typing.I32Vector3) -> ivec4: ... + @overload + def __imatmul__(self, other: glm_typing.IAnyMatrix3x2) -> imat3x2: ... + @overload + def __imatmul__(self, other: glm_typing.IAnyMatrix3x3) -> imat3x3: ... + @overload + def __imatmul__(self, other: glm_typing.IAnyMatrix3x4) -> imat3x4: ... + @overload + def __imatmul__(self, other: glm_typing.I32Vector3) -> ivec4: ... + + +i32mat4x2 = imat4x2 + +class imat4x2: + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number, /) -> None: ... + @overload + def __init__(self, _0: glm_typing.Number, _1: glm_typing.Number, _2: glm_typing.Number, _3: glm_typing.Number, _4: glm_typing.Number, _5: glm_typing.Number, _6: glm_typing.Number, _7: glm_typing.Number, /) -> None: ... + @overload + def __init__(self, x: Union[glm_typing.AnyAnyMatrix4x2, glm_typing.IAnyMatrix4x2, glm_typing.IAnyMatrix4x3, glm_typing.IAnyMatrix4x4], /) -> None: ... + + def length(self) -> Literal[4]: ... + def __len__(self) -> Literal[4]: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[imvec2, None, None]: ... + + @overload + def __getitem__(self, index: Tuple[int, int]) -> int: ... + @overload + def __getitem__(self, index: int) -> imvec2: ... + + @overload + def __setitem__(self, index: Tuple[int, int], value: glm_typing.Number) -> None: ... + @overload + def __setitem__(self, index: int, value: Union[ivec2, imvec2]) -> None: ... + + def __neg__(self) -> imat4x2: ... + def __pos__(self) -> imat4x2: ... + + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + + def to_list(self) -> List[List[int]]: ... + def to_tuple(self) -> Tuple[Tuple[int, int], Tuple[int, int], Tuple[int, int], Tuple[int, int]]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> imat4x2: ... + + def __add__(self, other: glm_typing.IAnyMatrix4x2) -> imat4x2: ... + def __radd__(self, other: glm_typing.IAnyMatrix4x2) -> imat4x2: ... + def __iadd__(self, other: glm_typing.IAnyMatrix4x2) -> imat4x2: ... + + def __sub__(self, other: glm_typing.IAnyMatrix4x2) -> imat4x2: ... + def __rsub__(self, other: glm_typing.IAnyMatrix4x2) -> imat4x2: ... + def __isub__(self, other: glm_typing.IAnyMatrix4x2) -> imat4x2: ... + + @overload + def __mul__(self, other: glm_typing.IAnyMatrix4x2) -> imat4x2: ... + @overload + def __mul__(self, other: glm_typing.IAnyMatrix4x3) -> imat4x3: ... + @overload + def __mul__(self, other: glm_typing.IAnyMatrix4x4) -> imat4x4: ... + @overload + def __mul__(self, other: glm_typing.I32Vector4) -> ivec2: ... + @overload + def __rmul__(self, other: glm_typing.IAnyMatrix4x2) -> imat4x2: ... + @overload + def __rmul__(self, other: glm_typing.IAnyMatrix4x3) -> imat4x3: ... + @overload + def __rmul__(self, other: glm_typing.IAnyMatrix4x4) -> imat4x4: ... + @overload + def __rmul__(self, other: glm_typing.I32Vector4) -> ivec2: ... + @overload + def __imul__(self, other: glm_typing.IAnyMatrix4x2) -> imat4x2: ... + @overload + def __imul__(self, other: glm_typing.IAnyMatrix4x3) -> imat4x3: ... + @overload + def __imul__(self, other: glm_typing.IAnyMatrix4x4) -> imat4x4: ... + @overload + def __imul__(self, other: glm_typing.I32Vector4) -> ivec2: ... + + @overload + def __matmul__(self, other: glm_typing.IAnyMatrix4x2) -> imat4x2: ... + @overload + def __matmul__(self, other: glm_typing.IAnyMatrix4x3) -> imat4x3: ... + @overload + def __matmul__(self, other: glm_typing.IAnyMatrix4x4) -> imat4x4: ... + @overload + def __matmul__(self, other: glm_typing.I32Vector4) -> ivec2: ... + @overload + def __rmatmul__(self, other: glm_typing.IAnyMatrix4x2) -> imat4x2: ... + @overload + def __rmatmul__(self, other: glm_typing.IAnyMatrix4x3) -> imat4x3: ... + @overload + def __rmatmul__(self, other: glm_typing.IAnyMatrix4x4) -> imat4x4: ... + @overload + def __rmatmul__(self, other: glm_typing.I32Vector4) -> ivec2: ... + @overload + def __imatmul__(self, other: glm_typing.IAnyMatrix4x2) -> imat4x2: ... + @overload + def __imatmul__(self, other: glm_typing.IAnyMatrix4x3) -> imat4x3: ... + @overload + def __imatmul__(self, other: glm_typing.IAnyMatrix4x4) -> imat4x4: ... + @overload + def __imatmul__(self, other: glm_typing.I32Vector4) -> ivec2: ... + + +i32mat4x3 = imat4x3 + +class imat4x3: + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number, /) -> None: ... + @overload + def __init__(self, _0: glm_typing.Number, _1: glm_typing.Number, _2: glm_typing.Number, _3: glm_typing.Number, _4: glm_typing.Number, _5: glm_typing.Number, _6: glm_typing.Number, _7: glm_typing.Number, _8: glm_typing.Number, _9: glm_typing.Number, _10: glm_typing.Number, _11: glm_typing.Number, /) -> None: ... + @overload + def __init__(self, x: Union[glm_typing.AnyAnyMatrix4x3, glm_typing.IAnyMatrix4x3, glm_typing.IAnyMatrix4x4], /) -> None: ... + + def length(self) -> Literal[4]: ... + def __len__(self) -> Literal[4]: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[imvec3, None, None]: ... + + @overload + def __getitem__(self, index: Tuple[int, int]) -> int: ... + @overload + def __getitem__(self, index: int) -> imvec3: ... + + @overload + def __setitem__(self, index: Tuple[int, int], value: glm_typing.Number) -> None: ... + @overload + def __setitem__(self, index: int, value: Union[ivec3, imvec3]) -> None: ... + + def __neg__(self) -> imat4x3: ... + def __pos__(self) -> imat4x3: ... + + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + + def to_list(self) -> List[List[int]]: ... + def to_tuple(self) -> Tuple[Tuple[int, int, int], Tuple[int, int, int], Tuple[int, int, int], Tuple[int, int, int]]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> imat4x3: ... + + def __add__(self, other: glm_typing.IAnyMatrix4x3) -> imat4x3: ... + def __radd__(self, other: glm_typing.IAnyMatrix4x3) -> imat4x3: ... + def __iadd__(self, other: glm_typing.IAnyMatrix4x3) -> imat4x3: ... + + def __sub__(self, other: glm_typing.IAnyMatrix4x3) -> imat4x3: ... + def __rsub__(self, other: glm_typing.IAnyMatrix4x3) -> imat4x3: ... + def __isub__(self, other: glm_typing.IAnyMatrix4x3) -> imat4x3: ... + + @overload + def __mul__(self, other: glm_typing.IAnyMatrix4x2) -> imat4x2: ... + @overload + def __mul__(self, other: glm_typing.IAnyMatrix4x3) -> imat4x3: ... + @overload + def __mul__(self, other: glm_typing.IAnyMatrix4x4) -> imat4x4: ... + @overload + def __mul__(self, other: glm_typing.I32Vector4) -> ivec3: ... + @overload + def __rmul__(self, other: glm_typing.IAnyMatrix4x2) -> imat4x2: ... + @overload + def __rmul__(self, other: glm_typing.IAnyMatrix4x3) -> imat4x3: ... + @overload + def __rmul__(self, other: glm_typing.IAnyMatrix4x4) -> imat4x4: ... + @overload + def __rmul__(self, other: glm_typing.I32Vector4) -> ivec3: ... + @overload + def __imul__(self, other: glm_typing.IAnyMatrix4x2) -> imat4x2: ... + @overload + def __imul__(self, other: glm_typing.IAnyMatrix4x3) -> imat4x3: ... + @overload + def __imul__(self, other: glm_typing.IAnyMatrix4x4) -> imat4x4: ... + @overload + def __imul__(self, other: glm_typing.I32Vector4) -> ivec3: ... + + @overload + def __matmul__(self, other: glm_typing.IAnyMatrix4x2) -> imat4x2: ... + @overload + def __matmul__(self, other: glm_typing.IAnyMatrix4x3) -> imat4x3: ... + @overload + def __matmul__(self, other: glm_typing.IAnyMatrix4x4) -> imat4x4: ... + @overload + def __matmul__(self, other: glm_typing.I32Vector4) -> ivec3: ... + @overload + def __rmatmul__(self, other: glm_typing.IAnyMatrix4x2) -> imat4x2: ... + @overload + def __rmatmul__(self, other: glm_typing.IAnyMatrix4x3) -> imat4x3: ... + @overload + def __rmatmul__(self, other: glm_typing.IAnyMatrix4x4) -> imat4x4: ... + @overload + def __rmatmul__(self, other: glm_typing.I32Vector4) -> ivec3: ... + @overload + def __imatmul__(self, other: glm_typing.IAnyMatrix4x2) -> imat4x2: ... + @overload + def __imatmul__(self, other: glm_typing.IAnyMatrix4x3) -> imat4x3: ... + @overload + def __imatmul__(self, other: glm_typing.IAnyMatrix4x4) -> imat4x4: ... + @overload + def __imatmul__(self, other: glm_typing.I32Vector4) -> ivec3: ... + + +i32mat4 = imat4x4 +i32mat4x4 = imat4x4 +imat4 = imat4x4 + +class imat4x4: + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number, /) -> None: ... + @overload + def __init__(self, _0: glm_typing.Number, _1: glm_typing.Number, _2: glm_typing.Number, _3: glm_typing.Number, _4: glm_typing.Number, _5: glm_typing.Number, _6: glm_typing.Number, _7: glm_typing.Number, _8: glm_typing.Number, _9: glm_typing.Number, _10: glm_typing.Number, _11: glm_typing.Number, _12: glm_typing.Number, _13: glm_typing.Number, _14: glm_typing.Number, _15: glm_typing.Number, /) -> None: ... + @overload + def __init__(self, x: Union[glm_typing.AnyAnyMatrix4x4, glm_typing.IAnyMatrix4x4], /) -> None: ... + + def length(self) -> Literal[4]: ... + def __len__(self) -> Literal[4]: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[imvec4, None, None]: ... + + @overload + def __getitem__(self, index: Tuple[int, int]) -> int: ... + @overload + def __getitem__(self, index: int) -> imvec4: ... + + @overload + def __setitem__(self, index: Tuple[int, int], value: glm_typing.Number) -> None: ... + @overload + def __setitem__(self, index: int, value: Union[ivec4, imvec4]) -> None: ... + + def __neg__(self) -> imat4x4: ... + def __pos__(self) -> imat4x4: ... + + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + + def to_list(self) -> List[List[int]]: ... + def to_tuple(self) -> Tuple[Tuple[int, int, int, int], Tuple[int, int, int, int], Tuple[int, int, int, int], Tuple[int, int, int, int]]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> imat4x4: ... + + def __add__(self, other: glm_typing.IAnyMatrix4x4) -> imat4x4: ... + def __radd__(self, other: glm_typing.IAnyMatrix4x4) -> imat4x4: ... + def __iadd__(self, other: glm_typing.IAnyMatrix4x4) -> imat4x4: ... + + def __sub__(self, other: glm_typing.IAnyMatrix4x4) -> imat4x4: ... + def __rsub__(self, other: glm_typing.IAnyMatrix4x4) -> imat4x4: ... + def __isub__(self, other: glm_typing.IAnyMatrix4x4) -> imat4x4: ... + + @overload + def __mul__(self, other: glm_typing.IAnyMatrix4x2) -> imat4x2: ... + @overload + def __mul__(self, other: glm_typing.IAnyMatrix4x3) -> imat4x3: ... + @overload + def __mul__(self, other: glm_typing.IAnyMatrix4x4) -> imat4x4: ... + @overload + def __mul__(self, other: glm_typing.I32Vector4) -> ivec4: ... + @overload + def __mul__(self, other: glm_typing.I32Vector3) -> ivec3: ... + @overload + def __rmul__(self, other: glm_typing.IAnyMatrix4x2) -> imat4x2: ... + @overload + def __rmul__(self, other: glm_typing.IAnyMatrix4x3) -> imat4x3: ... + @overload + def __rmul__(self, other: glm_typing.IAnyMatrix4x4) -> imat4x4: ... + @overload + def __rmul__(self, other: glm_typing.I32Vector4) -> ivec4: ... + @overload + def __rmul__(self, other: glm_typing.I32Vector3) -> ivec3: ... + @overload + def __imul__(self, other: glm_typing.IAnyMatrix4x2) -> imat4x2: ... + @overload + def __imul__(self, other: glm_typing.IAnyMatrix4x3) -> imat4x3: ... + @overload + def __imul__(self, other: glm_typing.IAnyMatrix4x4) -> imat4x4: ... + @overload + def __imul__(self, other: glm_typing.I32Vector4) -> ivec4: ... + @overload + def __imul__(self, other: glm_typing.I32Vector3) -> ivec3: ... + + @overload + def __truediv__(self, other: glm_typing.IAnyMatrix4x4) -> imat4x4: ... + @overload + def __truediv__(self, other: glm_typing.I32Vector4) -> ivec4: ... + @overload + def __rtruediv__(self, other: glm_typing.IAnyMatrix4x4) -> imat4x4: ... + @overload + def __rtruediv__(self, other: glm_typing.I32Vector4) -> ivec4: ... + @overload + def __itruediv__(self, other: glm_typing.IAnyMatrix4x4) -> imat4x4: ... + @overload + def __itruediv__(self, other: glm_typing.I32Vector4) -> ivec4: ... + + @overload + def __matmul__(self, other: glm_typing.IAnyMatrix4x2) -> imat4x2: ... + @overload + def __matmul__(self, other: glm_typing.IAnyMatrix4x3) -> imat4x3: ... + @overload + def __matmul__(self, other: glm_typing.IAnyMatrix4x4) -> imat4x4: ... + @overload + def __matmul__(self, other: glm_typing.I32Vector4) -> ivec4: ... + @overload + def __matmul__(self, other: glm_typing.I32Vector3) -> ivec3: ... + @overload + def __rmatmul__(self, other: glm_typing.IAnyMatrix4x2) -> imat4x2: ... + @overload + def __rmatmul__(self, other: glm_typing.IAnyMatrix4x3) -> imat4x3: ... + @overload + def __rmatmul__(self, other: glm_typing.IAnyMatrix4x4) -> imat4x4: ... + @overload + def __rmatmul__(self, other: glm_typing.I32Vector4) -> ivec4: ... + @overload + def __rmatmul__(self, other: glm_typing.I32Vector3) -> ivec3: ... + @overload + def __imatmul__(self, other: glm_typing.IAnyMatrix4x2) -> imat4x2: ... + @overload + def __imatmul__(self, other: glm_typing.IAnyMatrix4x3) -> imat4x3: ... + @overload + def __imatmul__(self, other: glm_typing.IAnyMatrix4x4) -> imat4x4: ... + @overload + def __imatmul__(self, other: glm_typing.I32Vector4) -> ivec4: ... + @overload + def __imatmul__(self, other: glm_typing.I32Vector3) -> ivec3: ... + + +f32mat2 = mat2x2 +f32mat2x2 = mat2x2 +fmat2 = mat2x2 +fmat2x2 = mat2x2 +mat2 = mat2x2 + +class mat2x2: + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number, /) -> None: ... + @overload + def __init__(self, _0: glm_typing.Number, _1: glm_typing.Number, _2: glm_typing.Number, _3: glm_typing.Number, /) -> None: ... + @overload + def __init__(self, x: Union[glm_typing.AnyAnyMatrix2x2, glm_typing.FAnyMatrix2x2, glm_typing.FAnyMatrix2x3, glm_typing.FAnyMatrix2x4, glm_typing.FAnyMatrix3x2, glm_typing.FAnyMatrix3x3, glm_typing.FAnyMatrix3x4, glm_typing.FAnyMatrix4x2, glm_typing.FAnyMatrix4x3, glm_typing.FAnyMatrix4x4], /) -> None: ... + + def length(self) -> Literal[2]: ... + def __len__(self) -> Literal[2]: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[mvec2, None, None]: ... + + @overload + def __getitem__(self, index: Tuple[int, int]) -> float: ... + @overload + def __getitem__(self, index: int) -> mvec2: ... + + @overload + def __setitem__(self, index: Tuple[int, int], value: glm_typing.Number) -> None: ... + @overload + def __setitem__(self, index: int, value: Union[vec2, mvec2]) -> None: ... + + def __neg__(self) -> mat2x2: ... + def __pos__(self) -> mat2x2: ... + + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + + def to_list(self) -> List[List[float]]: ... + def to_tuple(self) -> Tuple[Tuple[float, float], Tuple[float, float]]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> mat2x2: ... + + def __add__(self, other: glm_typing.FAnyMatrix2x2) -> mat2x2: ... + def __radd__(self, other: glm_typing.FAnyMatrix2x2) -> mat2x2: ... + def __iadd__(self, other: glm_typing.FAnyMatrix2x2) -> mat2x2: ... + + def __sub__(self, other: glm_typing.FAnyMatrix2x2) -> mat2x2: ... + def __rsub__(self, other: glm_typing.FAnyMatrix2x2) -> mat2x2: ... + def __isub__(self, other: glm_typing.FAnyMatrix2x2) -> mat2x2: ... + + @overload + def __mul__(self, other: glm_typing.FAnyMatrix2x2) -> mat2x2: ... + @overload + def __mul__(self, other: glm_typing.FAnyMatrix2x3) -> mat2x3: ... + @overload + def __mul__(self, other: glm_typing.FAnyMatrix2x4) -> mat2x4: ... + @overload + def __mul__(self, other: glm_typing.F32Vector2) -> vec2: ... + @overload + def __mul__(self, other: glm_typing.F32Vector1) -> vec1: ... + @overload + def __rmul__(self, other: glm_typing.FAnyMatrix2x2) -> mat2x2: ... + @overload + def __rmul__(self, other: glm_typing.FAnyMatrix2x3) -> mat2x3: ... + @overload + def __rmul__(self, other: glm_typing.FAnyMatrix2x4) -> mat2x4: ... + @overload + def __rmul__(self, other: glm_typing.F32Vector2) -> vec2: ... + @overload + def __rmul__(self, other: glm_typing.F32Vector1) -> vec1: ... + @overload + def __imul__(self, other: glm_typing.FAnyMatrix2x2) -> mat2x2: ... + @overload + def __imul__(self, other: glm_typing.FAnyMatrix2x3) -> mat2x3: ... + @overload + def __imul__(self, other: glm_typing.FAnyMatrix2x4) -> mat2x4: ... + @overload + def __imul__(self, other: glm_typing.F32Vector2) -> vec2: ... + @overload + def __imul__(self, other: glm_typing.F32Vector1) -> vec1: ... + + @overload + def __truediv__(self, other: glm_typing.FAnyMatrix2x2) -> mat2x2: ... + @overload + def __truediv__(self, other: glm_typing.F32Vector2) -> vec2: ... + @overload + def __rtruediv__(self, other: glm_typing.FAnyMatrix2x2) -> mat2x2: ... + @overload + def __rtruediv__(self, other: glm_typing.F32Vector2) -> vec2: ... + @overload + def __itruediv__(self, other: glm_typing.FAnyMatrix2x2) -> mat2x2: ... + @overload + def __itruediv__(self, other: glm_typing.F32Vector2) -> vec2: ... + + @overload + def __matmul__(self, other: glm_typing.FAnyMatrix2x2) -> mat2x2: ... + @overload + def __matmul__(self, other: glm_typing.FAnyMatrix2x3) -> mat2x3: ... + @overload + def __matmul__(self, other: glm_typing.FAnyMatrix2x4) -> mat2x4: ... + @overload + def __matmul__(self, other: glm_typing.F32Vector2) -> vec2: ... + @overload + def __matmul__(self, other: glm_typing.F32Vector1) -> vec1: ... + @overload + def __rmatmul__(self, other: glm_typing.FAnyMatrix2x2) -> mat2x2: ... + @overload + def __rmatmul__(self, other: glm_typing.FAnyMatrix2x3) -> mat2x3: ... + @overload + def __rmatmul__(self, other: glm_typing.FAnyMatrix2x4) -> mat2x4: ... + @overload + def __rmatmul__(self, other: glm_typing.F32Vector2) -> vec2: ... + @overload + def __rmatmul__(self, other: glm_typing.F32Vector1) -> vec1: ... + @overload + def __imatmul__(self, other: glm_typing.FAnyMatrix2x2) -> mat2x2: ... + @overload + def __imatmul__(self, other: glm_typing.FAnyMatrix2x3) -> mat2x3: ... + @overload + def __imatmul__(self, other: glm_typing.FAnyMatrix2x4) -> mat2x4: ... + @overload + def __imatmul__(self, other: glm_typing.F32Vector2) -> vec2: ... + @overload + def __imatmul__(self, other: glm_typing.F32Vector1) -> vec1: ... + + +f32mat2x3 = mat2x3 +fmat2x3 = mat2x3 + +class mat2x3: + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number, /) -> None: ... + @overload + def __init__(self, _0: glm_typing.Number, _1: glm_typing.Number, _2: glm_typing.Number, _3: glm_typing.Number, _4: glm_typing.Number, _5: glm_typing.Number, /) -> None: ... + @overload + def __init__(self, x: Union[glm_typing.AnyAnyMatrix2x3, glm_typing.FAnyMatrix2x3, glm_typing.FAnyMatrix2x4, glm_typing.FAnyMatrix3x3, glm_typing.FAnyMatrix3x4, glm_typing.FAnyMatrix4x3, glm_typing.FAnyMatrix4x4], /) -> None: ... + + def length(self) -> Literal[2]: ... + def __len__(self) -> Literal[2]: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[mvec3, None, None]: ... + + @overload + def __getitem__(self, index: Tuple[int, int]) -> float: ... + @overload + def __getitem__(self, index: int) -> mvec3: ... + + @overload + def __setitem__(self, index: Tuple[int, int], value: glm_typing.Number) -> None: ... + @overload + def __setitem__(self, index: int, value: Union[vec3, mvec3]) -> None: ... + + def __neg__(self) -> mat2x3: ... + def __pos__(self) -> mat2x3: ... + + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + + def to_list(self) -> List[List[float]]: ... + def to_tuple(self) -> Tuple[Tuple[float, float, float], Tuple[float, float, float]]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> mat2x3: ... + + def __add__(self, other: glm_typing.FAnyMatrix2x3) -> mat2x3: ... + def __radd__(self, other: glm_typing.FAnyMatrix2x3) -> mat2x3: ... + def __iadd__(self, other: glm_typing.FAnyMatrix2x3) -> mat2x3: ... + + def __sub__(self, other: glm_typing.FAnyMatrix2x3) -> mat2x3: ... + def __rsub__(self, other: glm_typing.FAnyMatrix2x3) -> mat2x3: ... + def __isub__(self, other: glm_typing.FAnyMatrix2x3) -> mat2x3: ... + + @overload + def __mul__(self, other: glm_typing.FAnyMatrix2x2) -> mat2x2: ... + @overload + def __mul__(self, other: glm_typing.FAnyMatrix2x3) -> mat2x3: ... + @overload + def __mul__(self, other: glm_typing.FAnyMatrix2x4) -> mat2x4: ... + @overload + def __mul__(self, other: glm_typing.F32Vector2) -> vec3: ... + @overload + def __rmul__(self, other: glm_typing.FAnyMatrix2x2) -> mat2x2: ... + @overload + def __rmul__(self, other: glm_typing.FAnyMatrix2x3) -> mat2x3: ... + @overload + def __rmul__(self, other: glm_typing.FAnyMatrix2x4) -> mat2x4: ... + @overload + def __rmul__(self, other: glm_typing.F32Vector2) -> vec3: ... + @overload + def __imul__(self, other: glm_typing.FAnyMatrix2x2) -> mat2x2: ... + @overload + def __imul__(self, other: glm_typing.FAnyMatrix2x3) -> mat2x3: ... + @overload + def __imul__(self, other: glm_typing.FAnyMatrix2x4) -> mat2x4: ... + @overload + def __imul__(self, other: glm_typing.F32Vector2) -> vec3: ... + + @overload + def __matmul__(self, other: glm_typing.FAnyMatrix2x2) -> mat2x2: ... + @overload + def __matmul__(self, other: glm_typing.FAnyMatrix2x3) -> mat2x3: ... + @overload + def __matmul__(self, other: glm_typing.FAnyMatrix2x4) -> mat2x4: ... + @overload + def __matmul__(self, other: glm_typing.F32Vector2) -> vec3: ... + @overload + def __rmatmul__(self, other: glm_typing.FAnyMatrix2x2) -> mat2x2: ... + @overload + def __rmatmul__(self, other: glm_typing.FAnyMatrix2x3) -> mat2x3: ... + @overload + def __rmatmul__(self, other: glm_typing.FAnyMatrix2x4) -> mat2x4: ... + @overload + def __rmatmul__(self, other: glm_typing.F32Vector2) -> vec3: ... + @overload + def __imatmul__(self, other: glm_typing.FAnyMatrix2x2) -> mat2x2: ... + @overload + def __imatmul__(self, other: glm_typing.FAnyMatrix2x3) -> mat2x3: ... + @overload + def __imatmul__(self, other: glm_typing.FAnyMatrix2x4) -> mat2x4: ... + @overload + def __imatmul__(self, other: glm_typing.F32Vector2) -> vec3: ... + + +f32mat2x4 = mat2x4 +fmat2x4 = mat2x4 + +class mat2x4: + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number, /) -> None: ... + @overload + def __init__(self, _0: glm_typing.Number, _1: glm_typing.Number, _2: glm_typing.Number, _3: glm_typing.Number, _4: glm_typing.Number, _5: glm_typing.Number, _6: glm_typing.Number, _7: glm_typing.Number, /) -> None: ... + @overload + def __init__(self, x: Union[glm_typing.AnyAnyMatrix2x4, glm_typing.FAnyMatrix2x4, glm_typing.FAnyMatrix3x4, glm_typing.FAnyMatrix4x4], /) -> None: ... + + def length(self) -> Literal[2]: ... + def __len__(self) -> Literal[2]: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[mvec4, None, None]: ... + + @overload + def __getitem__(self, index: Tuple[int, int]) -> float: ... + @overload + def __getitem__(self, index: int) -> mvec4: ... + + @overload + def __setitem__(self, index: Tuple[int, int], value: glm_typing.Number) -> None: ... + @overload + def __setitem__(self, index: int, value: Union[vec4, mvec4]) -> None: ... + + def __neg__(self) -> mat2x4: ... + def __pos__(self) -> mat2x4: ... + + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + + def to_list(self) -> List[List[float]]: ... + def to_tuple(self) -> Tuple[Tuple[float, float, float, float], Tuple[float, float, float, float]]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> mat2x4: ... + + def __add__(self, other: glm_typing.FAnyMatrix2x4) -> mat2x4: ... + def __radd__(self, other: glm_typing.FAnyMatrix2x4) -> mat2x4: ... + def __iadd__(self, other: glm_typing.FAnyMatrix2x4) -> mat2x4: ... + + def __sub__(self, other: glm_typing.FAnyMatrix2x4) -> mat2x4: ... + def __rsub__(self, other: glm_typing.FAnyMatrix2x4) -> mat2x4: ... + def __isub__(self, other: glm_typing.FAnyMatrix2x4) -> mat2x4: ... + + @overload + def __mul__(self, other: glm_typing.FAnyMatrix2x2) -> mat2x2: ... + @overload + def __mul__(self, other: glm_typing.FAnyMatrix2x3) -> mat2x3: ... + @overload + def __mul__(self, other: glm_typing.FAnyMatrix2x4) -> mat2x4: ... + @overload + def __mul__(self, other: glm_typing.F32Vector2) -> vec4: ... + @overload + def __rmul__(self, other: glm_typing.FAnyMatrix2x2) -> mat2x2: ... + @overload + def __rmul__(self, other: glm_typing.FAnyMatrix2x3) -> mat2x3: ... + @overload + def __rmul__(self, other: glm_typing.FAnyMatrix2x4) -> mat2x4: ... + @overload + def __rmul__(self, other: glm_typing.F32Vector2) -> vec4: ... + @overload + def __imul__(self, other: glm_typing.FAnyMatrix2x2) -> mat2x2: ... + @overload + def __imul__(self, other: glm_typing.FAnyMatrix2x3) -> mat2x3: ... + @overload + def __imul__(self, other: glm_typing.FAnyMatrix2x4) -> mat2x4: ... + @overload + def __imul__(self, other: glm_typing.F32Vector2) -> vec4: ... + + @overload + def __matmul__(self, other: glm_typing.FAnyMatrix2x2) -> mat2x2: ... + @overload + def __matmul__(self, other: glm_typing.FAnyMatrix2x3) -> mat2x3: ... + @overload + def __matmul__(self, other: glm_typing.FAnyMatrix2x4) -> mat2x4: ... + @overload + def __matmul__(self, other: glm_typing.F32Vector2) -> vec4: ... + @overload + def __rmatmul__(self, other: glm_typing.FAnyMatrix2x2) -> mat2x2: ... + @overload + def __rmatmul__(self, other: glm_typing.FAnyMatrix2x3) -> mat2x3: ... + @overload + def __rmatmul__(self, other: glm_typing.FAnyMatrix2x4) -> mat2x4: ... + @overload + def __rmatmul__(self, other: glm_typing.F32Vector2) -> vec4: ... + @overload + def __imatmul__(self, other: glm_typing.FAnyMatrix2x2) -> mat2x2: ... + @overload + def __imatmul__(self, other: glm_typing.FAnyMatrix2x3) -> mat2x3: ... + @overload + def __imatmul__(self, other: glm_typing.FAnyMatrix2x4) -> mat2x4: ... + @overload + def __imatmul__(self, other: glm_typing.F32Vector2) -> vec4: ... + + +f32mat3x2 = mat3x2 +fmat3x2 = mat3x2 + +class mat3x2: + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number, /) -> None: ... + @overload + def __init__(self, _0: glm_typing.Number, _1: glm_typing.Number, _2: glm_typing.Number, _3: glm_typing.Number, _4: glm_typing.Number, _5: glm_typing.Number, /) -> None: ... + @overload + def __init__(self, x: Union[glm_typing.AnyAnyMatrix3x2, glm_typing.FAnyMatrix3x2, glm_typing.FAnyMatrix3x3, glm_typing.FAnyMatrix3x4, glm_typing.FAnyMatrix4x2, glm_typing.FAnyMatrix4x3, glm_typing.FAnyMatrix4x4], /) -> None: ... + + def length(self) -> Literal[3]: ... + def __len__(self) -> Literal[3]: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[mvec2, None, None]: ... + + @overload + def __getitem__(self, index: Tuple[int, int]) -> float: ... + @overload + def __getitem__(self, index: int) -> mvec2: ... + + @overload + def __setitem__(self, index: Tuple[int, int], value: glm_typing.Number) -> None: ... + @overload + def __setitem__(self, index: int, value: Union[vec2, mvec2]) -> None: ... + + def __neg__(self) -> mat3x2: ... + def __pos__(self) -> mat3x2: ... + + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + + def to_list(self) -> List[List[float]]: ... + def to_tuple(self) -> Tuple[Tuple[float, float], Tuple[float, float], Tuple[float, float]]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> mat3x2: ... + + def __add__(self, other: glm_typing.FAnyMatrix3x2) -> mat3x2: ... + def __radd__(self, other: glm_typing.FAnyMatrix3x2) -> mat3x2: ... + def __iadd__(self, other: glm_typing.FAnyMatrix3x2) -> mat3x2: ... + + def __sub__(self, other: glm_typing.FAnyMatrix3x2) -> mat3x2: ... + def __rsub__(self, other: glm_typing.FAnyMatrix3x2) -> mat3x2: ... + def __isub__(self, other: glm_typing.FAnyMatrix3x2) -> mat3x2: ... + + @overload + def __mul__(self, other: glm_typing.FAnyMatrix3x2) -> mat3x2: ... + @overload + def __mul__(self, other: glm_typing.FAnyMatrix3x3) -> mat3x3: ... + @overload + def __mul__(self, other: glm_typing.FAnyMatrix3x4) -> mat3x4: ... + @overload + def __mul__(self, other: glm_typing.F32Vector3) -> vec2: ... + @overload + def __rmul__(self, other: glm_typing.FAnyMatrix3x2) -> mat3x2: ... + @overload + def __rmul__(self, other: glm_typing.FAnyMatrix3x3) -> mat3x3: ... + @overload + def __rmul__(self, other: glm_typing.FAnyMatrix3x4) -> mat3x4: ... + @overload + def __rmul__(self, other: glm_typing.F32Vector3) -> vec2: ... + @overload + def __imul__(self, other: glm_typing.FAnyMatrix3x2) -> mat3x2: ... + @overload + def __imul__(self, other: glm_typing.FAnyMatrix3x3) -> mat3x3: ... + @overload + def __imul__(self, other: glm_typing.FAnyMatrix3x4) -> mat3x4: ... + @overload + def __imul__(self, other: glm_typing.F32Vector3) -> vec2: ... + + @overload + def __matmul__(self, other: glm_typing.FAnyMatrix3x2) -> mat3x2: ... + @overload + def __matmul__(self, other: glm_typing.FAnyMatrix3x3) -> mat3x3: ... + @overload + def __matmul__(self, other: glm_typing.FAnyMatrix3x4) -> mat3x4: ... + @overload + def __matmul__(self, other: glm_typing.F32Vector3) -> vec2: ... + @overload + def __rmatmul__(self, other: glm_typing.FAnyMatrix3x2) -> mat3x2: ... + @overload + def __rmatmul__(self, other: glm_typing.FAnyMatrix3x3) -> mat3x3: ... + @overload + def __rmatmul__(self, other: glm_typing.FAnyMatrix3x4) -> mat3x4: ... + @overload + def __rmatmul__(self, other: glm_typing.F32Vector3) -> vec2: ... + @overload + def __imatmul__(self, other: glm_typing.FAnyMatrix3x2) -> mat3x2: ... + @overload + def __imatmul__(self, other: glm_typing.FAnyMatrix3x3) -> mat3x3: ... + @overload + def __imatmul__(self, other: glm_typing.FAnyMatrix3x4) -> mat3x4: ... + @overload + def __imatmul__(self, other: glm_typing.F32Vector3) -> vec2: ... + + +f32mat3 = mat3x3 +f32mat3x3 = mat3x3 +fmat3 = mat3x3 +fmat3x3 = mat3x3 +mat3 = mat3x3 + +class mat3x3: + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number, /) -> None: ... + @overload + def __init__(self, _0: glm_typing.Number, _1: glm_typing.Number, _2: glm_typing.Number, _3: glm_typing.Number, _4: glm_typing.Number, _5: glm_typing.Number, _6: glm_typing.Number, _7: glm_typing.Number, _8: glm_typing.Number, /) -> None: ... + @overload + def __init__(self, x: Union[glm_typing.AnyAnyMatrix3x3, glm_typing.FAnyMatrix3x3, glm_typing.FAnyMatrix3x4, glm_typing.FAnyMatrix4x3, glm_typing.FAnyMatrix4x4], /) -> None: ... + + def length(self) -> Literal[3]: ... + def __len__(self) -> Literal[3]: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[mvec3, None, None]: ... + + @overload + def __getitem__(self, index: Tuple[int, int]) -> float: ... + @overload + def __getitem__(self, index: int) -> mvec3: ... + + @overload + def __setitem__(self, index: Tuple[int, int], value: glm_typing.Number) -> None: ... + @overload + def __setitem__(self, index: int, value: Union[vec3, mvec3]) -> None: ... + + def __neg__(self) -> mat3x3: ... + def __pos__(self) -> mat3x3: ... + + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + + def to_list(self) -> List[List[float]]: ... + def to_tuple(self) -> Tuple[Tuple[float, float, float], Tuple[float, float, float], Tuple[float, float, float]]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> mat3x3: ... + + def __add__(self, other: glm_typing.FAnyMatrix3x3) -> mat3x3: ... + def __radd__(self, other: glm_typing.FAnyMatrix3x3) -> mat3x3: ... + def __iadd__(self, other: glm_typing.FAnyMatrix3x3) -> mat3x3: ... + + def __sub__(self, other: glm_typing.FAnyMatrix3x3) -> mat3x3: ... + def __rsub__(self, other: glm_typing.FAnyMatrix3x3) -> mat3x3: ... + def __isub__(self, other: glm_typing.FAnyMatrix3x3) -> mat3x3: ... + + @overload + def __mul__(self, other: glm_typing.FAnyMatrix3x2) -> mat3x2: ... + @overload + def __mul__(self, other: glm_typing.FAnyMatrix3x3) -> mat3x3: ... + @overload + def __mul__(self, other: glm_typing.FAnyMatrix3x4) -> mat3x4: ... + @overload + def __mul__(self, other: glm_typing.F32Vector3) -> vec3: ... + @overload + def __mul__(self, other: glm_typing.F32Vector2) -> vec2: ... + @overload + def __rmul__(self, other: glm_typing.FAnyMatrix3x2) -> mat3x2: ... + @overload + def __rmul__(self, other: glm_typing.FAnyMatrix3x3) -> mat3x3: ... + @overload + def __rmul__(self, other: glm_typing.FAnyMatrix3x4) -> mat3x4: ... + @overload + def __rmul__(self, other: glm_typing.F32Vector3) -> vec3: ... + @overload + def __rmul__(self, other: glm_typing.F32Vector2) -> vec2: ... + @overload + def __imul__(self, other: glm_typing.FAnyMatrix3x2) -> mat3x2: ... + @overload + def __imul__(self, other: glm_typing.FAnyMatrix3x3) -> mat3x3: ... + @overload + def __imul__(self, other: glm_typing.FAnyMatrix3x4) -> mat3x4: ... + @overload + def __imul__(self, other: glm_typing.F32Vector3) -> vec3: ... + @overload + def __imul__(self, other: glm_typing.F32Vector2) -> vec2: ... + + @overload + def __truediv__(self, other: glm_typing.FAnyMatrix3x3) -> mat3x3: ... + @overload + def __truediv__(self, other: glm_typing.F32Vector3) -> vec3: ... + @overload + def __rtruediv__(self, other: glm_typing.FAnyMatrix3x3) -> mat3x3: ... + @overload + def __rtruediv__(self, other: glm_typing.F32Vector3) -> vec3: ... + @overload + def __itruediv__(self, other: glm_typing.FAnyMatrix3x3) -> mat3x3: ... + @overload + def __itruediv__(self, other: glm_typing.F32Vector3) -> vec3: ... + + @overload + def __matmul__(self, other: glm_typing.FAnyMatrix3x2) -> mat3x2: ... + @overload + def __matmul__(self, other: glm_typing.FAnyMatrix3x3) -> mat3x3: ... + @overload + def __matmul__(self, other: glm_typing.FAnyMatrix3x4) -> mat3x4: ... + @overload + def __matmul__(self, other: glm_typing.F32Vector3) -> vec3: ... + @overload + def __matmul__(self, other: glm_typing.F32Vector2) -> vec2: ... + @overload + def __rmatmul__(self, other: glm_typing.FAnyMatrix3x2) -> mat3x2: ... + @overload + def __rmatmul__(self, other: glm_typing.FAnyMatrix3x3) -> mat3x3: ... + @overload + def __rmatmul__(self, other: glm_typing.FAnyMatrix3x4) -> mat3x4: ... + @overload + def __rmatmul__(self, other: glm_typing.F32Vector3) -> vec3: ... + @overload + def __rmatmul__(self, other: glm_typing.F32Vector2) -> vec2: ... + @overload + def __imatmul__(self, other: glm_typing.FAnyMatrix3x2) -> mat3x2: ... + @overload + def __imatmul__(self, other: glm_typing.FAnyMatrix3x3) -> mat3x3: ... + @overload + def __imatmul__(self, other: glm_typing.FAnyMatrix3x4) -> mat3x4: ... + @overload + def __imatmul__(self, other: glm_typing.F32Vector3) -> vec3: ... + @overload + def __imatmul__(self, other: glm_typing.F32Vector2) -> vec2: ... + + +f32mat3x4 = mat3x4 +fmat3x4 = mat3x4 + +class mat3x4: + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number, /) -> None: ... + @overload + def __init__(self, _0: glm_typing.Number, _1: glm_typing.Number, _2: glm_typing.Number, _3: glm_typing.Number, _4: glm_typing.Number, _5: glm_typing.Number, _6: glm_typing.Number, _7: glm_typing.Number, _8: glm_typing.Number, _9: glm_typing.Number, _10: glm_typing.Number, _11: glm_typing.Number, /) -> None: ... + @overload + def __init__(self, x: Union[glm_typing.AnyAnyMatrix3x4, glm_typing.FAnyMatrix3x4, glm_typing.FAnyMatrix4x4], /) -> None: ... + + def length(self) -> Literal[3]: ... + def __len__(self) -> Literal[3]: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[mvec4, None, None]: ... + + @overload + def __getitem__(self, index: Tuple[int, int]) -> float: ... + @overload + def __getitem__(self, index: int) -> mvec4: ... + + @overload + def __setitem__(self, index: Tuple[int, int], value: glm_typing.Number) -> None: ... + @overload + def __setitem__(self, index: int, value: Union[vec4, mvec4]) -> None: ... + + def __neg__(self) -> mat3x4: ... + def __pos__(self) -> mat3x4: ... + + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + + def to_list(self) -> List[List[float]]: ... + def to_tuple(self) -> Tuple[Tuple[float, float, float, float], Tuple[float, float, float, float], Tuple[float, float, float, float]]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> mat3x4: ... + + def __add__(self, other: glm_typing.FAnyMatrix3x4) -> mat3x4: ... + def __radd__(self, other: glm_typing.FAnyMatrix3x4) -> mat3x4: ... + def __iadd__(self, other: glm_typing.FAnyMatrix3x4) -> mat3x4: ... + + def __sub__(self, other: glm_typing.FAnyMatrix3x4) -> mat3x4: ... + def __rsub__(self, other: glm_typing.FAnyMatrix3x4) -> mat3x4: ... + def __isub__(self, other: glm_typing.FAnyMatrix3x4) -> mat3x4: ... + + @overload + def __mul__(self, other: glm_typing.FAnyMatrix3x2) -> mat3x2: ... + @overload + def __mul__(self, other: glm_typing.FAnyMatrix3x3) -> mat3x3: ... + @overload + def __mul__(self, other: glm_typing.FAnyMatrix3x4) -> mat3x4: ... + @overload + def __mul__(self, other: glm_typing.F32Vector3) -> vec4: ... + @overload + def __rmul__(self, other: glm_typing.FAnyMatrix3x2) -> mat3x2: ... + @overload + def __rmul__(self, other: glm_typing.FAnyMatrix3x3) -> mat3x3: ... + @overload + def __rmul__(self, other: glm_typing.FAnyMatrix3x4) -> mat3x4: ... + @overload + def __rmul__(self, other: glm_typing.F32Vector3) -> vec4: ... + @overload + def __imul__(self, other: glm_typing.FAnyMatrix3x2) -> mat3x2: ... + @overload + def __imul__(self, other: glm_typing.FAnyMatrix3x3) -> mat3x3: ... + @overload + def __imul__(self, other: glm_typing.FAnyMatrix3x4) -> mat3x4: ... + @overload + def __imul__(self, other: glm_typing.F32Vector3) -> vec4: ... + + @overload + def __matmul__(self, other: glm_typing.FAnyMatrix3x2) -> mat3x2: ... + @overload + def __matmul__(self, other: glm_typing.FAnyMatrix3x3) -> mat3x3: ... + @overload + def __matmul__(self, other: glm_typing.FAnyMatrix3x4) -> mat3x4: ... + @overload + def __matmul__(self, other: glm_typing.F32Vector3) -> vec4: ... + @overload + def __rmatmul__(self, other: glm_typing.FAnyMatrix3x2) -> mat3x2: ... + @overload + def __rmatmul__(self, other: glm_typing.FAnyMatrix3x3) -> mat3x3: ... + @overload + def __rmatmul__(self, other: glm_typing.FAnyMatrix3x4) -> mat3x4: ... + @overload + def __rmatmul__(self, other: glm_typing.F32Vector3) -> vec4: ... + @overload + def __imatmul__(self, other: glm_typing.FAnyMatrix3x2) -> mat3x2: ... + @overload + def __imatmul__(self, other: glm_typing.FAnyMatrix3x3) -> mat3x3: ... + @overload + def __imatmul__(self, other: glm_typing.FAnyMatrix3x4) -> mat3x4: ... + @overload + def __imatmul__(self, other: glm_typing.F32Vector3) -> vec4: ... + + +f32mat4x2 = mat4x2 +fmat4x2 = mat4x2 + +class mat4x2: + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number, /) -> None: ... + @overload + def __init__(self, _0: glm_typing.Number, _1: glm_typing.Number, _2: glm_typing.Number, _3: glm_typing.Number, _4: glm_typing.Number, _5: glm_typing.Number, _6: glm_typing.Number, _7: glm_typing.Number, /) -> None: ... + @overload + def __init__(self, x: Union[glm_typing.AnyAnyMatrix4x2, glm_typing.FAnyMatrix4x2, glm_typing.FAnyMatrix4x3, glm_typing.FAnyMatrix4x4], /) -> None: ... + + def length(self) -> Literal[4]: ... + def __len__(self) -> Literal[4]: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[mvec2, None, None]: ... + + @overload + def __getitem__(self, index: Tuple[int, int]) -> float: ... + @overload + def __getitem__(self, index: int) -> mvec2: ... + + @overload + def __setitem__(self, index: Tuple[int, int], value: glm_typing.Number) -> None: ... + @overload + def __setitem__(self, index: int, value: Union[vec2, mvec2]) -> None: ... + + def __neg__(self) -> mat4x2: ... + def __pos__(self) -> mat4x2: ... + + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + + def to_list(self) -> List[List[float]]: ... + def to_tuple(self) -> Tuple[Tuple[float, float], Tuple[float, float], Tuple[float, float], Tuple[float, float]]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> mat4x2: ... + + def __add__(self, other: glm_typing.FAnyMatrix4x2) -> mat4x2: ... + def __radd__(self, other: glm_typing.FAnyMatrix4x2) -> mat4x2: ... + def __iadd__(self, other: glm_typing.FAnyMatrix4x2) -> mat4x2: ... + + def __sub__(self, other: glm_typing.FAnyMatrix4x2) -> mat4x2: ... + def __rsub__(self, other: glm_typing.FAnyMatrix4x2) -> mat4x2: ... + def __isub__(self, other: glm_typing.FAnyMatrix4x2) -> mat4x2: ... + + @overload + def __mul__(self, other: glm_typing.FAnyMatrix4x2) -> mat4x2: ... + @overload + def __mul__(self, other: glm_typing.FAnyMatrix4x3) -> mat4x3: ... + @overload + def __mul__(self, other: glm_typing.FAnyMatrix4x4) -> mat4x4: ... + @overload + def __mul__(self, other: glm_typing.F32Vector4) -> vec2: ... + @overload + def __rmul__(self, other: glm_typing.FAnyMatrix4x2) -> mat4x2: ... + @overload + def __rmul__(self, other: glm_typing.FAnyMatrix4x3) -> mat4x3: ... + @overload + def __rmul__(self, other: glm_typing.FAnyMatrix4x4) -> mat4x4: ... + @overload + def __rmul__(self, other: glm_typing.F32Vector4) -> vec2: ... + @overload + def __imul__(self, other: glm_typing.FAnyMatrix4x2) -> mat4x2: ... + @overload + def __imul__(self, other: glm_typing.FAnyMatrix4x3) -> mat4x3: ... + @overload + def __imul__(self, other: glm_typing.FAnyMatrix4x4) -> mat4x4: ... + @overload + def __imul__(self, other: glm_typing.F32Vector4) -> vec2: ... + + @overload + def __matmul__(self, other: glm_typing.FAnyMatrix4x2) -> mat4x2: ... + @overload + def __matmul__(self, other: glm_typing.FAnyMatrix4x3) -> mat4x3: ... + @overload + def __matmul__(self, other: glm_typing.FAnyMatrix4x4) -> mat4x4: ... + @overload + def __matmul__(self, other: glm_typing.F32Vector4) -> vec2: ... + @overload + def __rmatmul__(self, other: glm_typing.FAnyMatrix4x2) -> mat4x2: ... + @overload + def __rmatmul__(self, other: glm_typing.FAnyMatrix4x3) -> mat4x3: ... + @overload + def __rmatmul__(self, other: glm_typing.FAnyMatrix4x4) -> mat4x4: ... + @overload + def __rmatmul__(self, other: glm_typing.F32Vector4) -> vec2: ... + @overload + def __imatmul__(self, other: glm_typing.FAnyMatrix4x2) -> mat4x2: ... + @overload + def __imatmul__(self, other: glm_typing.FAnyMatrix4x3) -> mat4x3: ... + @overload + def __imatmul__(self, other: glm_typing.FAnyMatrix4x4) -> mat4x4: ... + @overload + def __imatmul__(self, other: glm_typing.F32Vector4) -> vec2: ... + + +f32mat4x3 = mat4x3 +fmat4x3 = mat4x3 + +class mat4x3: + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number, /) -> None: ... + @overload + def __init__(self, _0: glm_typing.Number, _1: glm_typing.Number, _2: glm_typing.Number, _3: glm_typing.Number, _4: glm_typing.Number, _5: glm_typing.Number, _6: glm_typing.Number, _7: glm_typing.Number, _8: glm_typing.Number, _9: glm_typing.Number, _10: glm_typing.Number, _11: glm_typing.Number, /) -> None: ... + @overload + def __init__(self, x: Union[glm_typing.AnyAnyMatrix4x3, glm_typing.FAnyMatrix4x3, glm_typing.FAnyMatrix4x4], /) -> None: ... + + def length(self) -> Literal[4]: ... + def __len__(self) -> Literal[4]: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[mvec3, None, None]: ... + + @overload + def __getitem__(self, index: Tuple[int, int]) -> float: ... + @overload + def __getitem__(self, index: int) -> mvec3: ... + + @overload + def __setitem__(self, index: Tuple[int, int], value: glm_typing.Number) -> None: ... + @overload + def __setitem__(self, index: int, value: Union[vec3, mvec3]) -> None: ... + + def __neg__(self) -> mat4x3: ... + def __pos__(self) -> mat4x3: ... + + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + + def to_list(self) -> List[List[float]]: ... + def to_tuple(self) -> Tuple[Tuple[float, float, float], Tuple[float, float, float], Tuple[float, float, float], Tuple[float, float, float]]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> mat4x3: ... + + def __add__(self, other: glm_typing.FAnyMatrix4x3) -> mat4x3: ... + def __radd__(self, other: glm_typing.FAnyMatrix4x3) -> mat4x3: ... + def __iadd__(self, other: glm_typing.FAnyMatrix4x3) -> mat4x3: ... + + def __sub__(self, other: glm_typing.FAnyMatrix4x3) -> mat4x3: ... + def __rsub__(self, other: glm_typing.FAnyMatrix4x3) -> mat4x3: ... + def __isub__(self, other: glm_typing.FAnyMatrix4x3) -> mat4x3: ... + + @overload + def __mul__(self, other: glm_typing.FAnyMatrix4x2) -> mat4x2: ... + @overload + def __mul__(self, other: glm_typing.FAnyMatrix4x3) -> mat4x3: ... + @overload + def __mul__(self, other: glm_typing.FAnyMatrix4x4) -> mat4x4: ... + @overload + def __mul__(self, other: glm_typing.F32Vector4) -> vec3: ... + @overload + def __rmul__(self, other: glm_typing.FAnyMatrix4x2) -> mat4x2: ... + @overload + def __rmul__(self, other: glm_typing.FAnyMatrix4x3) -> mat4x3: ... + @overload + def __rmul__(self, other: glm_typing.FAnyMatrix4x4) -> mat4x4: ... + @overload + def __rmul__(self, other: glm_typing.F32Vector4) -> vec3: ... + @overload + def __imul__(self, other: glm_typing.FAnyMatrix4x2) -> mat4x2: ... + @overload + def __imul__(self, other: glm_typing.FAnyMatrix4x3) -> mat4x3: ... + @overload + def __imul__(self, other: glm_typing.FAnyMatrix4x4) -> mat4x4: ... + @overload + def __imul__(self, other: glm_typing.F32Vector4) -> vec3: ... + + @overload + def __matmul__(self, other: glm_typing.FAnyMatrix4x2) -> mat4x2: ... + @overload + def __matmul__(self, other: glm_typing.FAnyMatrix4x3) -> mat4x3: ... + @overload + def __matmul__(self, other: glm_typing.FAnyMatrix4x4) -> mat4x4: ... + @overload + def __matmul__(self, other: glm_typing.F32Vector4) -> vec3: ... + @overload + def __rmatmul__(self, other: glm_typing.FAnyMatrix4x2) -> mat4x2: ... + @overload + def __rmatmul__(self, other: glm_typing.FAnyMatrix4x3) -> mat4x3: ... + @overload + def __rmatmul__(self, other: glm_typing.FAnyMatrix4x4) -> mat4x4: ... + @overload + def __rmatmul__(self, other: glm_typing.F32Vector4) -> vec3: ... + @overload + def __imatmul__(self, other: glm_typing.FAnyMatrix4x2) -> mat4x2: ... + @overload + def __imatmul__(self, other: glm_typing.FAnyMatrix4x3) -> mat4x3: ... + @overload + def __imatmul__(self, other: glm_typing.FAnyMatrix4x4) -> mat4x4: ... + @overload + def __imatmul__(self, other: glm_typing.F32Vector4) -> vec3: ... + + +f32mat4 = mat4x4 +f32mat4x4 = mat4x4 +fmat4 = mat4x4 +fmat4x4 = mat4x4 +mat4 = mat4x4 + +class mat4x4: + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number, /) -> None: ... + @overload + def __init__(self, _0: glm_typing.Number, _1: glm_typing.Number, _2: glm_typing.Number, _3: glm_typing.Number, _4: glm_typing.Number, _5: glm_typing.Number, _6: glm_typing.Number, _7: glm_typing.Number, _8: glm_typing.Number, _9: glm_typing.Number, _10: glm_typing.Number, _11: glm_typing.Number, _12: glm_typing.Number, _13: glm_typing.Number, _14: glm_typing.Number, _15: glm_typing.Number, /) -> None: ... + @overload + def __init__(self, x: Union[glm_typing.AnyAnyMatrix4x4, glm_typing.FAnyMatrix4x4], /) -> None: ... + + def length(self) -> Literal[4]: ... + def __len__(self) -> Literal[4]: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[mvec4, None, None]: ... + + @overload + def __getitem__(self, index: Tuple[int, int]) -> float: ... + @overload + def __getitem__(self, index: int) -> mvec4: ... + + @overload + def __setitem__(self, index: Tuple[int, int], value: glm_typing.Number) -> None: ... + @overload + def __setitem__(self, index: int, value: Union[vec4, mvec4]) -> None: ... + + def __neg__(self) -> mat4x4: ... + def __pos__(self) -> mat4x4: ... + + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + + def to_list(self) -> List[List[float]]: ... + def to_tuple(self) -> Tuple[Tuple[float, float, float, float], Tuple[float, float, float, float], Tuple[float, float, float, float], Tuple[float, float, float, float]]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> mat4x4: ... + + def __add__(self, other: glm_typing.FAnyMatrix4x4) -> mat4x4: ... + def __radd__(self, other: glm_typing.FAnyMatrix4x4) -> mat4x4: ... + def __iadd__(self, other: glm_typing.FAnyMatrix4x4) -> mat4x4: ... + + def __sub__(self, other: glm_typing.FAnyMatrix4x4) -> mat4x4: ... + def __rsub__(self, other: glm_typing.FAnyMatrix4x4) -> mat4x4: ... + def __isub__(self, other: glm_typing.FAnyMatrix4x4) -> mat4x4: ... + + @overload + def __mul__(self, other: glm_typing.FAnyMatrix4x2) -> mat4x2: ... + @overload + def __mul__(self, other: glm_typing.FAnyMatrix4x3) -> mat4x3: ... + @overload + def __mul__(self, other: glm_typing.FAnyMatrix4x4) -> mat4x4: ... + @overload + def __mul__(self, other: glm_typing.F32Vector4) -> vec4: ... + @overload + def __mul__(self, other: glm_typing.F32Vector3) -> vec3: ... + @overload + def __rmul__(self, other: glm_typing.FAnyMatrix4x2) -> mat4x2: ... + @overload + def __rmul__(self, other: glm_typing.FAnyMatrix4x3) -> mat4x3: ... + @overload + def __rmul__(self, other: glm_typing.FAnyMatrix4x4) -> mat4x4: ... + @overload + def __rmul__(self, other: glm_typing.F32Vector4) -> vec4: ... + @overload + def __rmul__(self, other: glm_typing.F32Vector3) -> vec3: ... + @overload + def __imul__(self, other: glm_typing.FAnyMatrix4x2) -> mat4x2: ... + @overload + def __imul__(self, other: glm_typing.FAnyMatrix4x3) -> mat4x3: ... + @overload + def __imul__(self, other: glm_typing.FAnyMatrix4x4) -> mat4x4: ... + @overload + def __imul__(self, other: glm_typing.F32Vector4) -> vec4: ... + @overload + def __imul__(self, other: glm_typing.F32Vector3) -> vec3: ... + + @overload + def __truediv__(self, other: glm_typing.FAnyMatrix4x4) -> mat4x4: ... + @overload + def __truediv__(self, other: glm_typing.F32Vector4) -> vec4: ... + @overload + def __rtruediv__(self, other: glm_typing.FAnyMatrix4x4) -> mat4x4: ... + @overload + def __rtruediv__(self, other: glm_typing.F32Vector4) -> vec4: ... + @overload + def __itruediv__(self, other: glm_typing.FAnyMatrix4x4) -> mat4x4: ... + @overload + def __itruediv__(self, other: glm_typing.F32Vector4) -> vec4: ... + + @overload + def __matmul__(self, other: glm_typing.FAnyMatrix4x2) -> mat4x2: ... + @overload + def __matmul__(self, other: glm_typing.FAnyMatrix4x3) -> mat4x3: ... + @overload + def __matmul__(self, other: glm_typing.FAnyMatrix4x4) -> mat4x4: ... + @overload + def __matmul__(self, other: glm_typing.F32Vector4) -> vec4: ... + @overload + def __matmul__(self, other: glm_typing.F32Vector3) -> vec3: ... + @overload + def __rmatmul__(self, other: glm_typing.FAnyMatrix4x2) -> mat4x2: ... + @overload + def __rmatmul__(self, other: glm_typing.FAnyMatrix4x3) -> mat4x3: ... + @overload + def __rmatmul__(self, other: glm_typing.FAnyMatrix4x4) -> mat4x4: ... + @overload + def __rmatmul__(self, other: glm_typing.F32Vector4) -> vec4: ... + @overload + def __rmatmul__(self, other: glm_typing.F32Vector3) -> vec3: ... + @overload + def __imatmul__(self, other: glm_typing.FAnyMatrix4x2) -> mat4x2: ... + @overload + def __imatmul__(self, other: glm_typing.FAnyMatrix4x3) -> mat4x3: ... + @overload + def __imatmul__(self, other: glm_typing.FAnyMatrix4x4) -> mat4x4: ... + @overload + def __imatmul__(self, other: glm_typing.F32Vector4) -> vec4: ... + @overload + def __imatmul__(self, other: glm_typing.F32Vector3) -> vec3: ... + + +u32mat2 = umat2x2 +u32mat2x2 = umat2x2 +umat2 = umat2x2 + +class umat2x2: + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number, /) -> None: ... + @overload + def __init__(self, _0: glm_typing.Number, _1: glm_typing.Number, _2: glm_typing.Number, _3: glm_typing.Number, /) -> None: ... + @overload + def __init__(self, x: Union[glm_typing.AnyAnyMatrix2x2, glm_typing.UAnyMatrix2x2, glm_typing.UAnyMatrix2x3, glm_typing.UAnyMatrix2x4, glm_typing.UAnyMatrix3x2, glm_typing.UAnyMatrix3x3, glm_typing.UAnyMatrix3x4, glm_typing.UAnyMatrix4x2, glm_typing.UAnyMatrix4x3, glm_typing.UAnyMatrix4x4], /) -> None: ... + + def length(self) -> Literal[2]: ... + def __len__(self) -> Literal[2]: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[umvec2, None, None]: ... + + @overload + def __getitem__(self, index: Tuple[int, int]) -> int: ... + @overload + def __getitem__(self, index: int) -> umvec2: ... + + @overload + def __setitem__(self, index: Tuple[int, int], value: glm_typing.Number) -> None: ... + @overload + def __setitem__(self, index: int, value: Union[uvec2, umvec2]) -> None: ... + + def __neg__(self) -> umat2x2: ... + def __pos__(self) -> umat2x2: ... + + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + + def to_list(self) -> List[List[int]]: ... + def to_tuple(self) -> Tuple[Tuple[int, int], Tuple[int, int]]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> umat2x2: ... + + def __add__(self, other: glm_typing.UAnyMatrix2x2) -> umat2x2: ... + def __radd__(self, other: glm_typing.UAnyMatrix2x2) -> umat2x2: ... + def __iadd__(self, other: glm_typing.UAnyMatrix2x2) -> umat2x2: ... + + def __sub__(self, other: glm_typing.UAnyMatrix2x2) -> umat2x2: ... + def __rsub__(self, other: glm_typing.UAnyMatrix2x2) -> umat2x2: ... + def __isub__(self, other: glm_typing.UAnyMatrix2x2) -> umat2x2: ... + + @overload + def __mul__(self, other: glm_typing.UAnyMatrix2x2) -> umat2x2: ... + @overload + def __mul__(self, other: glm_typing.UAnyMatrix2x3) -> umat2x3: ... + @overload + def __mul__(self, other: glm_typing.UAnyMatrix2x4) -> umat2x4: ... + @overload + def __mul__(self, other: glm_typing.U32Vector2) -> uvec2: ... + @overload + def __mul__(self, other: glm_typing.U32Vector1) -> uvec1: ... + @overload + def __rmul__(self, other: glm_typing.UAnyMatrix2x2) -> umat2x2: ... + @overload + def __rmul__(self, other: glm_typing.UAnyMatrix2x3) -> umat2x3: ... + @overload + def __rmul__(self, other: glm_typing.UAnyMatrix2x4) -> umat2x4: ... + @overload + def __rmul__(self, other: glm_typing.U32Vector2) -> uvec2: ... + @overload + def __rmul__(self, other: glm_typing.U32Vector1) -> uvec1: ... + @overload + def __imul__(self, other: glm_typing.UAnyMatrix2x2) -> umat2x2: ... + @overload + def __imul__(self, other: glm_typing.UAnyMatrix2x3) -> umat2x3: ... + @overload + def __imul__(self, other: glm_typing.UAnyMatrix2x4) -> umat2x4: ... + @overload + def __imul__(self, other: glm_typing.U32Vector2) -> uvec2: ... + @overload + def __imul__(self, other: glm_typing.U32Vector1) -> uvec1: ... + + @overload + def __truediv__(self, other: glm_typing.UAnyMatrix2x2) -> umat2x2: ... + @overload + def __truediv__(self, other: glm_typing.U32Vector2) -> uvec2: ... + @overload + def __rtruediv__(self, other: glm_typing.UAnyMatrix2x2) -> umat2x2: ... + @overload + def __rtruediv__(self, other: glm_typing.U32Vector2) -> uvec2: ... + @overload + def __itruediv__(self, other: glm_typing.UAnyMatrix2x2) -> umat2x2: ... + @overload + def __itruediv__(self, other: glm_typing.U32Vector2) -> uvec2: ... + + @overload + def __matmul__(self, other: glm_typing.UAnyMatrix2x2) -> umat2x2: ... + @overload + def __matmul__(self, other: glm_typing.UAnyMatrix2x3) -> umat2x3: ... + @overload + def __matmul__(self, other: glm_typing.UAnyMatrix2x4) -> umat2x4: ... + @overload + def __matmul__(self, other: glm_typing.U32Vector2) -> uvec2: ... + @overload + def __matmul__(self, other: glm_typing.U32Vector1) -> uvec1: ... + @overload + def __rmatmul__(self, other: glm_typing.UAnyMatrix2x2) -> umat2x2: ... + @overload + def __rmatmul__(self, other: glm_typing.UAnyMatrix2x3) -> umat2x3: ... + @overload + def __rmatmul__(self, other: glm_typing.UAnyMatrix2x4) -> umat2x4: ... + @overload + def __rmatmul__(self, other: glm_typing.U32Vector2) -> uvec2: ... + @overload + def __rmatmul__(self, other: glm_typing.U32Vector1) -> uvec1: ... + @overload + def __imatmul__(self, other: glm_typing.UAnyMatrix2x2) -> umat2x2: ... + @overload + def __imatmul__(self, other: glm_typing.UAnyMatrix2x3) -> umat2x3: ... + @overload + def __imatmul__(self, other: glm_typing.UAnyMatrix2x4) -> umat2x4: ... + @overload + def __imatmul__(self, other: glm_typing.U32Vector2) -> uvec2: ... + @overload + def __imatmul__(self, other: glm_typing.U32Vector1) -> uvec1: ... + + +u32mat2x3 = umat2x3 + +class umat2x3: + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number, /) -> None: ... + @overload + def __init__(self, _0: glm_typing.Number, _1: glm_typing.Number, _2: glm_typing.Number, _3: glm_typing.Number, _4: glm_typing.Number, _5: glm_typing.Number, /) -> None: ... + @overload + def __init__(self, x: Union[glm_typing.AnyAnyMatrix2x3, glm_typing.UAnyMatrix2x3, glm_typing.UAnyMatrix2x4, glm_typing.UAnyMatrix3x3, glm_typing.UAnyMatrix3x4, glm_typing.UAnyMatrix4x3, glm_typing.UAnyMatrix4x4], /) -> None: ... + + def length(self) -> Literal[2]: ... + def __len__(self) -> Literal[2]: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[umvec3, None, None]: ... + + @overload + def __getitem__(self, index: Tuple[int, int]) -> int: ... + @overload + def __getitem__(self, index: int) -> umvec3: ... + + @overload + def __setitem__(self, index: Tuple[int, int], value: glm_typing.Number) -> None: ... + @overload + def __setitem__(self, index: int, value: Union[uvec3, umvec3]) -> None: ... + + def __neg__(self) -> umat2x3: ... + def __pos__(self) -> umat2x3: ... + + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + + def to_list(self) -> List[List[int]]: ... + def to_tuple(self) -> Tuple[Tuple[int, int, int], Tuple[int, int, int]]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> umat2x3: ... + + def __add__(self, other: glm_typing.UAnyMatrix2x3) -> umat2x3: ... + def __radd__(self, other: glm_typing.UAnyMatrix2x3) -> umat2x3: ... + def __iadd__(self, other: glm_typing.UAnyMatrix2x3) -> umat2x3: ... + + def __sub__(self, other: glm_typing.UAnyMatrix2x3) -> umat2x3: ... + def __rsub__(self, other: glm_typing.UAnyMatrix2x3) -> umat2x3: ... + def __isub__(self, other: glm_typing.UAnyMatrix2x3) -> umat2x3: ... + + @overload + def __mul__(self, other: glm_typing.UAnyMatrix2x2) -> umat2x2: ... + @overload + def __mul__(self, other: glm_typing.UAnyMatrix2x3) -> umat2x3: ... + @overload + def __mul__(self, other: glm_typing.UAnyMatrix2x4) -> umat2x4: ... + @overload + def __mul__(self, other: glm_typing.U32Vector2) -> uvec3: ... + @overload + def __rmul__(self, other: glm_typing.UAnyMatrix2x2) -> umat2x2: ... + @overload + def __rmul__(self, other: glm_typing.UAnyMatrix2x3) -> umat2x3: ... + @overload + def __rmul__(self, other: glm_typing.UAnyMatrix2x4) -> umat2x4: ... + @overload + def __rmul__(self, other: glm_typing.U32Vector2) -> uvec3: ... + @overload + def __imul__(self, other: glm_typing.UAnyMatrix2x2) -> umat2x2: ... + @overload + def __imul__(self, other: glm_typing.UAnyMatrix2x3) -> umat2x3: ... + @overload + def __imul__(self, other: glm_typing.UAnyMatrix2x4) -> umat2x4: ... + @overload + def __imul__(self, other: glm_typing.U32Vector2) -> uvec3: ... + + @overload + def __matmul__(self, other: glm_typing.UAnyMatrix2x2) -> umat2x2: ... + @overload + def __matmul__(self, other: glm_typing.UAnyMatrix2x3) -> umat2x3: ... + @overload + def __matmul__(self, other: glm_typing.UAnyMatrix2x4) -> umat2x4: ... + @overload + def __matmul__(self, other: glm_typing.U32Vector2) -> uvec3: ... + @overload + def __rmatmul__(self, other: glm_typing.UAnyMatrix2x2) -> umat2x2: ... + @overload + def __rmatmul__(self, other: glm_typing.UAnyMatrix2x3) -> umat2x3: ... + @overload + def __rmatmul__(self, other: glm_typing.UAnyMatrix2x4) -> umat2x4: ... + @overload + def __rmatmul__(self, other: glm_typing.U32Vector2) -> uvec3: ... + @overload + def __imatmul__(self, other: glm_typing.UAnyMatrix2x2) -> umat2x2: ... + @overload + def __imatmul__(self, other: glm_typing.UAnyMatrix2x3) -> umat2x3: ... + @overload + def __imatmul__(self, other: glm_typing.UAnyMatrix2x4) -> umat2x4: ... + @overload + def __imatmul__(self, other: glm_typing.U32Vector2) -> uvec3: ... + + +u32mat2x4 = umat2x4 + +class umat2x4: + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number, /) -> None: ... + @overload + def __init__(self, _0: glm_typing.Number, _1: glm_typing.Number, _2: glm_typing.Number, _3: glm_typing.Number, _4: glm_typing.Number, _5: glm_typing.Number, _6: glm_typing.Number, _7: glm_typing.Number, /) -> None: ... + @overload + def __init__(self, x: Union[glm_typing.AnyAnyMatrix2x4, glm_typing.UAnyMatrix2x4, glm_typing.UAnyMatrix3x4, glm_typing.UAnyMatrix4x4], /) -> None: ... + + def length(self) -> Literal[2]: ... + def __len__(self) -> Literal[2]: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[umvec4, None, None]: ... + + @overload + def __getitem__(self, index: Tuple[int, int]) -> int: ... + @overload + def __getitem__(self, index: int) -> umvec4: ... + + @overload + def __setitem__(self, index: Tuple[int, int], value: glm_typing.Number) -> None: ... + @overload + def __setitem__(self, index: int, value: Union[uvec4, umvec4]) -> None: ... + + def __neg__(self) -> umat2x4: ... + def __pos__(self) -> umat2x4: ... + + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + + def to_list(self) -> List[List[int]]: ... + def to_tuple(self) -> Tuple[Tuple[int, int, int, int], Tuple[int, int, int, int]]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> umat2x4: ... + + def __add__(self, other: glm_typing.UAnyMatrix2x4) -> umat2x4: ... + def __radd__(self, other: glm_typing.UAnyMatrix2x4) -> umat2x4: ... + def __iadd__(self, other: glm_typing.UAnyMatrix2x4) -> umat2x4: ... + + def __sub__(self, other: glm_typing.UAnyMatrix2x4) -> umat2x4: ... + def __rsub__(self, other: glm_typing.UAnyMatrix2x4) -> umat2x4: ... + def __isub__(self, other: glm_typing.UAnyMatrix2x4) -> umat2x4: ... + + @overload + def __mul__(self, other: glm_typing.UAnyMatrix2x2) -> umat2x2: ... + @overload + def __mul__(self, other: glm_typing.UAnyMatrix2x3) -> umat2x3: ... + @overload + def __mul__(self, other: glm_typing.UAnyMatrix2x4) -> umat2x4: ... + @overload + def __mul__(self, other: glm_typing.U32Vector2) -> uvec4: ... + @overload + def __rmul__(self, other: glm_typing.UAnyMatrix2x2) -> umat2x2: ... + @overload + def __rmul__(self, other: glm_typing.UAnyMatrix2x3) -> umat2x3: ... + @overload + def __rmul__(self, other: glm_typing.UAnyMatrix2x4) -> umat2x4: ... + @overload + def __rmul__(self, other: glm_typing.U32Vector2) -> uvec4: ... + @overload + def __imul__(self, other: glm_typing.UAnyMatrix2x2) -> umat2x2: ... + @overload + def __imul__(self, other: glm_typing.UAnyMatrix2x3) -> umat2x3: ... + @overload + def __imul__(self, other: glm_typing.UAnyMatrix2x4) -> umat2x4: ... + @overload + def __imul__(self, other: glm_typing.U32Vector2) -> uvec4: ... + + @overload + def __matmul__(self, other: glm_typing.UAnyMatrix2x2) -> umat2x2: ... + @overload + def __matmul__(self, other: glm_typing.UAnyMatrix2x3) -> umat2x3: ... + @overload + def __matmul__(self, other: glm_typing.UAnyMatrix2x4) -> umat2x4: ... + @overload + def __matmul__(self, other: glm_typing.U32Vector2) -> uvec4: ... + @overload + def __rmatmul__(self, other: glm_typing.UAnyMatrix2x2) -> umat2x2: ... + @overload + def __rmatmul__(self, other: glm_typing.UAnyMatrix2x3) -> umat2x3: ... + @overload + def __rmatmul__(self, other: glm_typing.UAnyMatrix2x4) -> umat2x4: ... + @overload + def __rmatmul__(self, other: glm_typing.U32Vector2) -> uvec4: ... + @overload + def __imatmul__(self, other: glm_typing.UAnyMatrix2x2) -> umat2x2: ... + @overload + def __imatmul__(self, other: glm_typing.UAnyMatrix2x3) -> umat2x3: ... + @overload + def __imatmul__(self, other: glm_typing.UAnyMatrix2x4) -> umat2x4: ... + @overload + def __imatmul__(self, other: glm_typing.U32Vector2) -> uvec4: ... + + +u32mat3x2 = umat3x2 + +class umat3x2: + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number, /) -> None: ... + @overload + def __init__(self, _0: glm_typing.Number, _1: glm_typing.Number, _2: glm_typing.Number, _3: glm_typing.Number, _4: glm_typing.Number, _5: glm_typing.Number, /) -> None: ... + @overload + def __init__(self, x: Union[glm_typing.AnyAnyMatrix3x2, glm_typing.UAnyMatrix3x2, glm_typing.UAnyMatrix3x3, glm_typing.UAnyMatrix3x4, glm_typing.UAnyMatrix4x2, glm_typing.UAnyMatrix4x3, glm_typing.UAnyMatrix4x4], /) -> None: ... + + def length(self) -> Literal[3]: ... + def __len__(self) -> Literal[3]: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[umvec2, None, None]: ... + + @overload + def __getitem__(self, index: Tuple[int, int]) -> int: ... + @overload + def __getitem__(self, index: int) -> umvec2: ... + + @overload + def __setitem__(self, index: Tuple[int, int], value: glm_typing.Number) -> None: ... + @overload + def __setitem__(self, index: int, value: Union[uvec2, umvec2]) -> None: ... + + def __neg__(self) -> umat3x2: ... + def __pos__(self) -> umat3x2: ... + + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + + def to_list(self) -> List[List[int]]: ... + def to_tuple(self) -> Tuple[Tuple[int, int], Tuple[int, int], Tuple[int, int]]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> umat3x2: ... + + def __add__(self, other: glm_typing.UAnyMatrix3x2) -> umat3x2: ... + def __radd__(self, other: glm_typing.UAnyMatrix3x2) -> umat3x2: ... + def __iadd__(self, other: glm_typing.UAnyMatrix3x2) -> umat3x2: ... + + def __sub__(self, other: glm_typing.UAnyMatrix3x2) -> umat3x2: ... + def __rsub__(self, other: glm_typing.UAnyMatrix3x2) -> umat3x2: ... + def __isub__(self, other: glm_typing.UAnyMatrix3x2) -> umat3x2: ... + + @overload + def __mul__(self, other: glm_typing.UAnyMatrix3x2) -> umat3x2: ... + @overload + def __mul__(self, other: glm_typing.UAnyMatrix3x3) -> umat3x3: ... + @overload + def __mul__(self, other: glm_typing.UAnyMatrix3x4) -> umat3x4: ... + @overload + def __mul__(self, other: glm_typing.U32Vector3) -> uvec2: ... + @overload + def __rmul__(self, other: glm_typing.UAnyMatrix3x2) -> umat3x2: ... + @overload + def __rmul__(self, other: glm_typing.UAnyMatrix3x3) -> umat3x3: ... + @overload + def __rmul__(self, other: glm_typing.UAnyMatrix3x4) -> umat3x4: ... + @overload + def __rmul__(self, other: glm_typing.U32Vector3) -> uvec2: ... + @overload + def __imul__(self, other: glm_typing.UAnyMatrix3x2) -> umat3x2: ... + @overload + def __imul__(self, other: glm_typing.UAnyMatrix3x3) -> umat3x3: ... + @overload + def __imul__(self, other: glm_typing.UAnyMatrix3x4) -> umat3x4: ... + @overload + def __imul__(self, other: glm_typing.U32Vector3) -> uvec2: ... + + @overload + def __matmul__(self, other: glm_typing.UAnyMatrix3x2) -> umat3x2: ... + @overload + def __matmul__(self, other: glm_typing.UAnyMatrix3x3) -> umat3x3: ... + @overload + def __matmul__(self, other: glm_typing.UAnyMatrix3x4) -> umat3x4: ... + @overload + def __matmul__(self, other: glm_typing.U32Vector3) -> uvec2: ... + @overload + def __rmatmul__(self, other: glm_typing.UAnyMatrix3x2) -> umat3x2: ... + @overload + def __rmatmul__(self, other: glm_typing.UAnyMatrix3x3) -> umat3x3: ... + @overload + def __rmatmul__(self, other: glm_typing.UAnyMatrix3x4) -> umat3x4: ... + @overload + def __rmatmul__(self, other: glm_typing.U32Vector3) -> uvec2: ... + @overload + def __imatmul__(self, other: glm_typing.UAnyMatrix3x2) -> umat3x2: ... + @overload + def __imatmul__(self, other: glm_typing.UAnyMatrix3x3) -> umat3x3: ... + @overload + def __imatmul__(self, other: glm_typing.UAnyMatrix3x4) -> umat3x4: ... + @overload + def __imatmul__(self, other: glm_typing.U32Vector3) -> uvec2: ... + + +u32mat3 = umat3x3 +u32mat3x3 = umat3x3 +umat3 = umat3x3 + +class umat3x3: + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number, /) -> None: ... + @overload + def __init__(self, _0: glm_typing.Number, _1: glm_typing.Number, _2: glm_typing.Number, _3: glm_typing.Number, _4: glm_typing.Number, _5: glm_typing.Number, _6: glm_typing.Number, _7: glm_typing.Number, _8: glm_typing.Number, /) -> None: ... + @overload + def __init__(self, x: Union[glm_typing.AnyAnyMatrix3x3, glm_typing.UAnyMatrix3x3, glm_typing.UAnyMatrix3x4, glm_typing.UAnyMatrix4x3, glm_typing.UAnyMatrix4x4], /) -> None: ... + + def length(self) -> Literal[3]: ... + def __len__(self) -> Literal[3]: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[umvec3, None, None]: ... + + @overload + def __getitem__(self, index: Tuple[int, int]) -> int: ... + @overload + def __getitem__(self, index: int) -> umvec3: ... + + @overload + def __setitem__(self, index: Tuple[int, int], value: glm_typing.Number) -> None: ... + @overload + def __setitem__(self, index: int, value: Union[uvec3, umvec3]) -> None: ... + + def __neg__(self) -> umat3x3: ... + def __pos__(self) -> umat3x3: ... + + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + + def to_list(self) -> List[List[int]]: ... + def to_tuple(self) -> Tuple[Tuple[int, int, int], Tuple[int, int, int], Tuple[int, int, int]]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> umat3x3: ... + + def __add__(self, other: glm_typing.UAnyMatrix3x3) -> umat3x3: ... + def __radd__(self, other: glm_typing.UAnyMatrix3x3) -> umat3x3: ... + def __iadd__(self, other: glm_typing.UAnyMatrix3x3) -> umat3x3: ... + + def __sub__(self, other: glm_typing.UAnyMatrix3x3) -> umat3x3: ... + def __rsub__(self, other: glm_typing.UAnyMatrix3x3) -> umat3x3: ... + def __isub__(self, other: glm_typing.UAnyMatrix3x3) -> umat3x3: ... + + @overload + def __mul__(self, other: glm_typing.UAnyMatrix3x2) -> umat3x2: ... + @overload + def __mul__(self, other: glm_typing.UAnyMatrix3x3) -> umat3x3: ... + @overload + def __mul__(self, other: glm_typing.UAnyMatrix3x4) -> umat3x4: ... + @overload + def __mul__(self, other: glm_typing.U32Vector3) -> uvec3: ... + @overload + def __mul__(self, other: glm_typing.U32Vector2) -> uvec2: ... + @overload + def __rmul__(self, other: glm_typing.UAnyMatrix3x2) -> umat3x2: ... + @overload + def __rmul__(self, other: glm_typing.UAnyMatrix3x3) -> umat3x3: ... + @overload + def __rmul__(self, other: glm_typing.UAnyMatrix3x4) -> umat3x4: ... + @overload + def __rmul__(self, other: glm_typing.U32Vector3) -> uvec3: ... + @overload + def __rmul__(self, other: glm_typing.U32Vector2) -> uvec2: ... + @overload + def __imul__(self, other: glm_typing.UAnyMatrix3x2) -> umat3x2: ... + @overload + def __imul__(self, other: glm_typing.UAnyMatrix3x3) -> umat3x3: ... + @overload + def __imul__(self, other: glm_typing.UAnyMatrix3x4) -> umat3x4: ... + @overload + def __imul__(self, other: glm_typing.U32Vector3) -> uvec3: ... + @overload + def __imul__(self, other: glm_typing.U32Vector2) -> uvec2: ... + + @overload + def __truediv__(self, other: glm_typing.UAnyMatrix3x3) -> umat3x3: ... + @overload + def __truediv__(self, other: glm_typing.U32Vector3) -> uvec3: ... + @overload + def __rtruediv__(self, other: glm_typing.UAnyMatrix3x3) -> umat3x3: ... + @overload + def __rtruediv__(self, other: glm_typing.U32Vector3) -> uvec3: ... + @overload + def __itruediv__(self, other: glm_typing.UAnyMatrix3x3) -> umat3x3: ... + @overload + def __itruediv__(self, other: glm_typing.U32Vector3) -> uvec3: ... + + @overload + def __matmul__(self, other: glm_typing.UAnyMatrix3x2) -> umat3x2: ... + @overload + def __matmul__(self, other: glm_typing.UAnyMatrix3x3) -> umat3x3: ... + @overload + def __matmul__(self, other: glm_typing.UAnyMatrix3x4) -> umat3x4: ... + @overload + def __matmul__(self, other: glm_typing.U32Vector3) -> uvec3: ... + @overload + def __matmul__(self, other: glm_typing.U32Vector2) -> uvec2: ... + @overload + def __rmatmul__(self, other: glm_typing.UAnyMatrix3x2) -> umat3x2: ... + @overload + def __rmatmul__(self, other: glm_typing.UAnyMatrix3x3) -> umat3x3: ... + @overload + def __rmatmul__(self, other: glm_typing.UAnyMatrix3x4) -> umat3x4: ... + @overload + def __rmatmul__(self, other: glm_typing.U32Vector3) -> uvec3: ... + @overload + def __rmatmul__(self, other: glm_typing.U32Vector2) -> uvec2: ... + @overload + def __imatmul__(self, other: glm_typing.UAnyMatrix3x2) -> umat3x2: ... + @overload + def __imatmul__(self, other: glm_typing.UAnyMatrix3x3) -> umat3x3: ... + @overload + def __imatmul__(self, other: glm_typing.UAnyMatrix3x4) -> umat3x4: ... + @overload + def __imatmul__(self, other: glm_typing.U32Vector3) -> uvec3: ... + @overload + def __imatmul__(self, other: glm_typing.U32Vector2) -> uvec2: ... + + +u32mat3x4 = umat3x4 + +class umat3x4: + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number, /) -> None: ... + @overload + def __init__(self, _0: glm_typing.Number, _1: glm_typing.Number, _2: glm_typing.Number, _3: glm_typing.Number, _4: glm_typing.Number, _5: glm_typing.Number, _6: glm_typing.Number, _7: glm_typing.Number, _8: glm_typing.Number, _9: glm_typing.Number, _10: glm_typing.Number, _11: glm_typing.Number, /) -> None: ... + @overload + def __init__(self, x: Union[glm_typing.AnyAnyMatrix3x4, glm_typing.UAnyMatrix3x4, glm_typing.UAnyMatrix4x4], /) -> None: ... + + def length(self) -> Literal[3]: ... + def __len__(self) -> Literal[3]: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[umvec4, None, None]: ... + + @overload + def __getitem__(self, index: Tuple[int, int]) -> int: ... + @overload + def __getitem__(self, index: int) -> umvec4: ... + + @overload + def __setitem__(self, index: Tuple[int, int], value: glm_typing.Number) -> None: ... + @overload + def __setitem__(self, index: int, value: Union[uvec4, umvec4]) -> None: ... + + def __neg__(self) -> umat3x4: ... + def __pos__(self) -> umat3x4: ... + + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + + def to_list(self) -> List[List[int]]: ... + def to_tuple(self) -> Tuple[Tuple[int, int, int, int], Tuple[int, int, int, int], Tuple[int, int, int, int]]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> umat3x4: ... + + def __add__(self, other: glm_typing.UAnyMatrix3x4) -> umat3x4: ... + def __radd__(self, other: glm_typing.UAnyMatrix3x4) -> umat3x4: ... + def __iadd__(self, other: glm_typing.UAnyMatrix3x4) -> umat3x4: ... + + def __sub__(self, other: glm_typing.UAnyMatrix3x4) -> umat3x4: ... + def __rsub__(self, other: glm_typing.UAnyMatrix3x4) -> umat3x4: ... + def __isub__(self, other: glm_typing.UAnyMatrix3x4) -> umat3x4: ... + + @overload + def __mul__(self, other: glm_typing.UAnyMatrix3x2) -> umat3x2: ... + @overload + def __mul__(self, other: glm_typing.UAnyMatrix3x3) -> umat3x3: ... + @overload + def __mul__(self, other: glm_typing.UAnyMatrix3x4) -> umat3x4: ... + @overload + def __mul__(self, other: glm_typing.U32Vector3) -> uvec4: ... + @overload + def __rmul__(self, other: glm_typing.UAnyMatrix3x2) -> umat3x2: ... + @overload + def __rmul__(self, other: glm_typing.UAnyMatrix3x3) -> umat3x3: ... + @overload + def __rmul__(self, other: glm_typing.UAnyMatrix3x4) -> umat3x4: ... + @overload + def __rmul__(self, other: glm_typing.U32Vector3) -> uvec4: ... + @overload + def __imul__(self, other: glm_typing.UAnyMatrix3x2) -> umat3x2: ... + @overload + def __imul__(self, other: glm_typing.UAnyMatrix3x3) -> umat3x3: ... + @overload + def __imul__(self, other: glm_typing.UAnyMatrix3x4) -> umat3x4: ... + @overload + def __imul__(self, other: glm_typing.U32Vector3) -> uvec4: ... + + @overload + def __matmul__(self, other: glm_typing.UAnyMatrix3x2) -> umat3x2: ... + @overload + def __matmul__(self, other: glm_typing.UAnyMatrix3x3) -> umat3x3: ... + @overload + def __matmul__(self, other: glm_typing.UAnyMatrix3x4) -> umat3x4: ... + @overload + def __matmul__(self, other: glm_typing.U32Vector3) -> uvec4: ... + @overload + def __rmatmul__(self, other: glm_typing.UAnyMatrix3x2) -> umat3x2: ... + @overload + def __rmatmul__(self, other: glm_typing.UAnyMatrix3x3) -> umat3x3: ... + @overload + def __rmatmul__(self, other: glm_typing.UAnyMatrix3x4) -> umat3x4: ... + @overload + def __rmatmul__(self, other: glm_typing.U32Vector3) -> uvec4: ... + @overload + def __imatmul__(self, other: glm_typing.UAnyMatrix3x2) -> umat3x2: ... + @overload + def __imatmul__(self, other: glm_typing.UAnyMatrix3x3) -> umat3x3: ... + @overload + def __imatmul__(self, other: glm_typing.UAnyMatrix3x4) -> umat3x4: ... + @overload + def __imatmul__(self, other: glm_typing.U32Vector3) -> uvec4: ... + + +u32mat4x2 = umat4x2 + +class umat4x2: + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number, /) -> None: ... + @overload + def __init__(self, _0: glm_typing.Number, _1: glm_typing.Number, _2: glm_typing.Number, _3: glm_typing.Number, _4: glm_typing.Number, _5: glm_typing.Number, _6: glm_typing.Number, _7: glm_typing.Number, /) -> None: ... + @overload + def __init__(self, x: Union[glm_typing.AnyAnyMatrix4x2, glm_typing.UAnyMatrix4x2, glm_typing.UAnyMatrix4x3, glm_typing.UAnyMatrix4x4], /) -> None: ... + + def length(self) -> Literal[4]: ... + def __len__(self) -> Literal[4]: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[umvec2, None, None]: ... + + @overload + def __getitem__(self, index: Tuple[int, int]) -> int: ... + @overload + def __getitem__(self, index: int) -> umvec2: ... + + @overload + def __setitem__(self, index: Tuple[int, int], value: glm_typing.Number) -> None: ... + @overload + def __setitem__(self, index: int, value: Union[uvec2, umvec2]) -> None: ... + + def __neg__(self) -> umat4x2: ... + def __pos__(self) -> umat4x2: ... + + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + + def to_list(self) -> List[List[int]]: ... + def to_tuple(self) -> Tuple[Tuple[int, int], Tuple[int, int], Tuple[int, int], Tuple[int, int]]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> umat4x2: ... + + def __add__(self, other: glm_typing.UAnyMatrix4x2) -> umat4x2: ... + def __radd__(self, other: glm_typing.UAnyMatrix4x2) -> umat4x2: ... + def __iadd__(self, other: glm_typing.UAnyMatrix4x2) -> umat4x2: ... + + def __sub__(self, other: glm_typing.UAnyMatrix4x2) -> umat4x2: ... + def __rsub__(self, other: glm_typing.UAnyMatrix4x2) -> umat4x2: ... + def __isub__(self, other: glm_typing.UAnyMatrix4x2) -> umat4x2: ... + + @overload + def __mul__(self, other: glm_typing.UAnyMatrix4x2) -> umat4x2: ... + @overload + def __mul__(self, other: glm_typing.UAnyMatrix4x3) -> umat4x3: ... + @overload + def __mul__(self, other: glm_typing.UAnyMatrix4x4) -> umat4x4: ... + @overload + def __mul__(self, other: glm_typing.U32Vector4) -> uvec2: ... + @overload + def __rmul__(self, other: glm_typing.UAnyMatrix4x2) -> umat4x2: ... + @overload + def __rmul__(self, other: glm_typing.UAnyMatrix4x3) -> umat4x3: ... + @overload + def __rmul__(self, other: glm_typing.UAnyMatrix4x4) -> umat4x4: ... + @overload + def __rmul__(self, other: glm_typing.U32Vector4) -> uvec2: ... + @overload + def __imul__(self, other: glm_typing.UAnyMatrix4x2) -> umat4x2: ... + @overload + def __imul__(self, other: glm_typing.UAnyMatrix4x3) -> umat4x3: ... + @overload + def __imul__(self, other: glm_typing.UAnyMatrix4x4) -> umat4x4: ... + @overload + def __imul__(self, other: glm_typing.U32Vector4) -> uvec2: ... + + @overload + def __matmul__(self, other: glm_typing.UAnyMatrix4x2) -> umat4x2: ... + @overload + def __matmul__(self, other: glm_typing.UAnyMatrix4x3) -> umat4x3: ... + @overload + def __matmul__(self, other: glm_typing.UAnyMatrix4x4) -> umat4x4: ... + @overload + def __matmul__(self, other: glm_typing.U32Vector4) -> uvec2: ... + @overload + def __rmatmul__(self, other: glm_typing.UAnyMatrix4x2) -> umat4x2: ... + @overload + def __rmatmul__(self, other: glm_typing.UAnyMatrix4x3) -> umat4x3: ... + @overload + def __rmatmul__(self, other: glm_typing.UAnyMatrix4x4) -> umat4x4: ... + @overload + def __rmatmul__(self, other: glm_typing.U32Vector4) -> uvec2: ... + @overload + def __imatmul__(self, other: glm_typing.UAnyMatrix4x2) -> umat4x2: ... + @overload + def __imatmul__(self, other: glm_typing.UAnyMatrix4x3) -> umat4x3: ... + @overload + def __imatmul__(self, other: glm_typing.UAnyMatrix4x4) -> umat4x4: ... + @overload + def __imatmul__(self, other: glm_typing.U32Vector4) -> uvec2: ... + + +u32mat4x3 = umat4x3 + +class umat4x3: + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number, /) -> None: ... + @overload + def __init__(self, _0: glm_typing.Number, _1: glm_typing.Number, _2: glm_typing.Number, _3: glm_typing.Number, _4: glm_typing.Number, _5: glm_typing.Number, _6: glm_typing.Number, _7: glm_typing.Number, _8: glm_typing.Number, _9: glm_typing.Number, _10: glm_typing.Number, _11: glm_typing.Number, /) -> None: ... + @overload + def __init__(self, x: Union[glm_typing.AnyAnyMatrix4x3, glm_typing.UAnyMatrix4x3, glm_typing.UAnyMatrix4x4], /) -> None: ... + + def length(self) -> Literal[4]: ... + def __len__(self) -> Literal[4]: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[umvec3, None, None]: ... + + @overload + def __getitem__(self, index: Tuple[int, int]) -> int: ... + @overload + def __getitem__(self, index: int) -> umvec3: ... + + @overload + def __setitem__(self, index: Tuple[int, int], value: glm_typing.Number) -> None: ... + @overload + def __setitem__(self, index: int, value: Union[uvec3, umvec3]) -> None: ... + + def __neg__(self) -> umat4x3: ... + def __pos__(self) -> umat4x3: ... + + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + + def to_list(self) -> List[List[int]]: ... + def to_tuple(self) -> Tuple[Tuple[int, int, int], Tuple[int, int, int], Tuple[int, int, int], Tuple[int, int, int]]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> umat4x3: ... + + def __add__(self, other: glm_typing.UAnyMatrix4x3) -> umat4x3: ... + def __radd__(self, other: glm_typing.UAnyMatrix4x3) -> umat4x3: ... + def __iadd__(self, other: glm_typing.UAnyMatrix4x3) -> umat4x3: ... + + def __sub__(self, other: glm_typing.UAnyMatrix4x3) -> umat4x3: ... + def __rsub__(self, other: glm_typing.UAnyMatrix4x3) -> umat4x3: ... + def __isub__(self, other: glm_typing.UAnyMatrix4x3) -> umat4x3: ... + + @overload + def __mul__(self, other: glm_typing.UAnyMatrix4x2) -> umat4x2: ... + @overload + def __mul__(self, other: glm_typing.UAnyMatrix4x3) -> umat4x3: ... + @overload + def __mul__(self, other: glm_typing.UAnyMatrix4x4) -> umat4x4: ... + @overload + def __mul__(self, other: glm_typing.U32Vector4) -> uvec3: ... + @overload + def __rmul__(self, other: glm_typing.UAnyMatrix4x2) -> umat4x2: ... + @overload + def __rmul__(self, other: glm_typing.UAnyMatrix4x3) -> umat4x3: ... + @overload + def __rmul__(self, other: glm_typing.UAnyMatrix4x4) -> umat4x4: ... + @overload + def __rmul__(self, other: glm_typing.U32Vector4) -> uvec3: ... + @overload + def __imul__(self, other: glm_typing.UAnyMatrix4x2) -> umat4x2: ... + @overload + def __imul__(self, other: glm_typing.UAnyMatrix4x3) -> umat4x3: ... + @overload + def __imul__(self, other: glm_typing.UAnyMatrix4x4) -> umat4x4: ... + @overload + def __imul__(self, other: glm_typing.U32Vector4) -> uvec3: ... + + @overload + def __matmul__(self, other: glm_typing.UAnyMatrix4x2) -> umat4x2: ... + @overload + def __matmul__(self, other: glm_typing.UAnyMatrix4x3) -> umat4x3: ... + @overload + def __matmul__(self, other: glm_typing.UAnyMatrix4x4) -> umat4x4: ... + @overload + def __matmul__(self, other: glm_typing.U32Vector4) -> uvec3: ... + @overload + def __rmatmul__(self, other: glm_typing.UAnyMatrix4x2) -> umat4x2: ... + @overload + def __rmatmul__(self, other: glm_typing.UAnyMatrix4x3) -> umat4x3: ... + @overload + def __rmatmul__(self, other: glm_typing.UAnyMatrix4x4) -> umat4x4: ... + @overload + def __rmatmul__(self, other: glm_typing.U32Vector4) -> uvec3: ... + @overload + def __imatmul__(self, other: glm_typing.UAnyMatrix4x2) -> umat4x2: ... + @overload + def __imatmul__(self, other: glm_typing.UAnyMatrix4x3) -> umat4x3: ... + @overload + def __imatmul__(self, other: glm_typing.UAnyMatrix4x4) -> umat4x4: ... + @overload + def __imatmul__(self, other: glm_typing.U32Vector4) -> uvec3: ... + + +u32mat4 = umat4x4 +u32mat4x4 = umat4x4 +umat4 = umat4x4 + +class umat4x4: + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x: glm_typing.Number, /) -> None: ... + @overload + def __init__(self, _0: glm_typing.Number, _1: glm_typing.Number, _2: glm_typing.Number, _3: glm_typing.Number, _4: glm_typing.Number, _5: glm_typing.Number, _6: glm_typing.Number, _7: glm_typing.Number, _8: glm_typing.Number, _9: glm_typing.Number, _10: glm_typing.Number, _11: glm_typing.Number, _12: glm_typing.Number, _13: glm_typing.Number, _14: glm_typing.Number, _15: glm_typing.Number, /) -> None: ... + @overload + def __init__(self, x: Union[glm_typing.AnyAnyMatrix4x4, glm_typing.UAnyMatrix4x4], /) -> None: ... + + def length(self) -> Literal[4]: ... + def __len__(self) -> Literal[4]: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[umvec4, None, None]: ... + + @overload + def __getitem__(self, index: Tuple[int, int]) -> int: ... + @overload + def __getitem__(self, index: int) -> umvec4: ... + + @overload + def __setitem__(self, index: Tuple[int, int], value: glm_typing.Number) -> None: ... + @overload + def __setitem__(self, index: int, value: Union[uvec4, umvec4]) -> None: ... + + def __neg__(self) -> umat4x4: ... + def __pos__(self) -> umat4x4: ... + + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + + def to_list(self) -> List[List[int]]: ... + def to_tuple(self) -> Tuple[Tuple[int, int, int, int], Tuple[int, int, int, int], Tuple[int, int, int, int], Tuple[int, int, int, int]]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> umat4x4: ... + + def __add__(self, other: glm_typing.UAnyMatrix4x4) -> umat4x4: ... + def __radd__(self, other: glm_typing.UAnyMatrix4x4) -> umat4x4: ... + def __iadd__(self, other: glm_typing.UAnyMatrix4x4) -> umat4x4: ... + + def __sub__(self, other: glm_typing.UAnyMatrix4x4) -> umat4x4: ... + def __rsub__(self, other: glm_typing.UAnyMatrix4x4) -> umat4x4: ... + def __isub__(self, other: glm_typing.UAnyMatrix4x4) -> umat4x4: ... + + @overload + def __mul__(self, other: glm_typing.UAnyMatrix4x2) -> umat4x2: ... + @overload + def __mul__(self, other: glm_typing.UAnyMatrix4x3) -> umat4x3: ... + @overload + def __mul__(self, other: glm_typing.UAnyMatrix4x4) -> umat4x4: ... + @overload + def __mul__(self, other: glm_typing.U32Vector4) -> uvec4: ... + @overload + def __mul__(self, other: glm_typing.U32Vector3) -> uvec3: ... + @overload + def __rmul__(self, other: glm_typing.UAnyMatrix4x2) -> umat4x2: ... + @overload + def __rmul__(self, other: glm_typing.UAnyMatrix4x3) -> umat4x3: ... + @overload + def __rmul__(self, other: glm_typing.UAnyMatrix4x4) -> umat4x4: ... + @overload + def __rmul__(self, other: glm_typing.U32Vector4) -> uvec4: ... + @overload + def __rmul__(self, other: glm_typing.U32Vector3) -> uvec3: ... + @overload + def __imul__(self, other: glm_typing.UAnyMatrix4x2) -> umat4x2: ... + @overload + def __imul__(self, other: glm_typing.UAnyMatrix4x3) -> umat4x3: ... + @overload + def __imul__(self, other: glm_typing.UAnyMatrix4x4) -> umat4x4: ... + @overload + def __imul__(self, other: glm_typing.U32Vector4) -> uvec4: ... + @overload + def __imul__(self, other: glm_typing.U32Vector3) -> uvec3: ... + + @overload + def __truediv__(self, other: glm_typing.UAnyMatrix4x4) -> umat4x4: ... + @overload + def __truediv__(self, other: glm_typing.U32Vector4) -> uvec4: ... + @overload + def __rtruediv__(self, other: glm_typing.UAnyMatrix4x4) -> umat4x4: ... + @overload + def __rtruediv__(self, other: glm_typing.U32Vector4) -> uvec4: ... + @overload + def __itruediv__(self, other: glm_typing.UAnyMatrix4x4) -> umat4x4: ... + @overload + def __itruediv__(self, other: glm_typing.U32Vector4) -> uvec4: ... + + @overload + def __matmul__(self, other: glm_typing.UAnyMatrix4x2) -> umat4x2: ... + @overload + def __matmul__(self, other: glm_typing.UAnyMatrix4x3) -> umat4x3: ... + @overload + def __matmul__(self, other: glm_typing.UAnyMatrix4x4) -> umat4x4: ... + @overload + def __matmul__(self, other: glm_typing.U32Vector4) -> uvec4: ... + @overload + def __matmul__(self, other: glm_typing.U32Vector3) -> uvec3: ... + @overload + def __rmatmul__(self, other: glm_typing.UAnyMatrix4x2) -> umat4x2: ... + @overload + def __rmatmul__(self, other: glm_typing.UAnyMatrix4x3) -> umat4x3: ... + @overload + def __rmatmul__(self, other: glm_typing.UAnyMatrix4x4) -> umat4x4: ... + @overload + def __rmatmul__(self, other: glm_typing.U32Vector4) -> uvec4: ... + @overload + def __rmatmul__(self, other: glm_typing.U32Vector3) -> uvec3: ... + @overload + def __imatmul__(self, other: glm_typing.UAnyMatrix4x2) -> umat4x2: ... + @overload + def __imatmul__(self, other: glm_typing.UAnyMatrix4x3) -> umat4x3: ... + @overload + def __imatmul__(self, other: glm_typing.UAnyMatrix4x4) -> umat4x4: ... + @overload + def __imatmul__(self, other: glm_typing.U32Vector4) -> uvec4: ... + @overload + def __imatmul__(self, other: glm_typing.U32Vector3) -> uvec3: ... + + +f64quat = dquat + +class dquat: + w: float + x: float + y: float + z: float + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, w: glm_typing.Number, x: glm_typing.Number, y: glm_typing.Number, z: glm_typing.Number) -> None: ... + @overload + def __init__(self, w: Union[glm_typing.AnyAnyQuaternion, glm_typing.D64Matrix3x3, glm_typing.D64Matrix4x4, glm_typing.D64Vector3]) -> None: ... + + def length(self) -> Literal[4]: ... + def __len__(self) -> Literal[4]: ... + def __getitem__(self, index: int) -> float: ... + def __setitem__(self, index: int, value: glm_typing.Number) -> None: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[float, None, None]: ... + + def to_list(self) -> List[float]: ... + def to_tuple(self) -> Tuple[float, float, float, float]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> dquat: ... + + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + + @overload + def __mul__(self, other: Union[dquat, glm_typing.Number]) -> dquat: ... + @overload + def __mul__(self, other: glm_typing.D64Vector3) -> dvec3: ... + @overload + def __mul__(self, other: glm_typing.D64Vector4) -> dvec4: ... + @overload + def __rmul__(self, other: Union[dquat, glm_typing.Number]) -> dquat: ... + @overload + def __rmul__(self, other: glm_typing.D64Vector3) -> dvec3: ... + @overload + def __rmul__(self, other: glm_typing.D64Vector4) -> dvec4: ... + @overload + def __imul__(self, other: Union[dquat, glm_typing.Number]) -> dquat: ... + @overload + def __imul__(self, other: glm_typing.D64Vector3) -> dvec3: ... + @overload + def __imul__(self, other: glm_typing.D64Vector4) -> dvec4: ... + + @overload + def __matmul__(self, other: Union[dquat, glm_typing.Number]) -> dquat: ... + @overload + def __matmul__(self, other: glm_typing.D64Vector3) -> dvec3: ... + @overload + def __matmul__(self, other: glm_typing.D64Vector4) -> dvec4: ... + @overload + def __rmatmul__(self, other: Union[dquat, glm_typing.Number]) -> dquat: ... + @overload + def __rmatmul__(self, other: glm_typing.D64Vector3) -> dvec3: ... + @overload + def __rmatmul__(self, other: glm_typing.D64Vector4) -> dvec4: ... + @overload + def __imatmul__(self, other: Union[dquat, glm_typing.Number]) -> dquat: ... + @overload + def __imatmul__(self, other: glm_typing.D64Vector3) -> dvec3: ... + @overload + def __imatmul__(self, other: glm_typing.D64Vector4) -> dvec4: ... + + +f32quat = quat +fquat = quat + +class quat: + w: float + x: float + y: float + z: float + + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, w: glm_typing.Number, x: glm_typing.Number, y: glm_typing.Number, z: glm_typing.Number) -> None: ... + @overload + def __init__(self, w: Union[glm_typing.AnyAnyQuaternion, glm_typing.F32Matrix3x3, glm_typing.F32Matrix4x4, glm_typing.F32Vector3]) -> None: ... + + def length(self) -> Literal[4]: ... + def __len__(self) -> Literal[4]: ... + def __getitem__(self, index: int) -> float: ... + def __setitem__(self, index: int, value: glm_typing.Number) -> None: ... + def __contains__(self, value: Any) -> bool: ... + def __iter__(self) -> Generator[float, None, None]: ... + + def to_list(self) -> List[float]: ... + def to_tuple(self) -> Tuple[float, float, float, float]: ... + def to_bytes(self) -> bytes: ... + + @staticmethod + def from_bytes(bytes: bytes, /) -> quat: ... + + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + + @overload + def __mul__(self, other: Union[quat, glm_typing.Number]) -> quat: ... + @overload + def __mul__(self, other: glm_typing.F32Vector3) -> vec3: ... + @overload + def __mul__(self, other: glm_typing.F32Vector4) -> vec4: ... + @overload + def __rmul__(self, other: Union[quat, glm_typing.Number]) -> quat: ... + @overload + def __rmul__(self, other: glm_typing.F32Vector3) -> vec3: ... + @overload + def __rmul__(self, other: glm_typing.F32Vector4) -> vec4: ... + @overload + def __imul__(self, other: Union[quat, glm_typing.Number]) -> quat: ... + @overload + def __imul__(self, other: glm_typing.F32Vector3) -> vec3: ... + @overload + def __imul__(self, other: glm_typing.F32Vector4) -> vec4: ... + + @overload + def __matmul__(self, other: Union[quat, glm_typing.Number]) -> quat: ... + @overload + def __matmul__(self, other: glm_typing.F32Vector3) -> vec3: ... + @overload + def __matmul__(self, other: glm_typing.F32Vector4) -> vec4: ... + @overload + def __rmatmul__(self, other: Union[quat, glm_typing.Number]) -> quat: ... + @overload + def __rmatmul__(self, other: glm_typing.F32Vector3) -> vec3: ... + @overload + def __rmatmul__(self, other: glm_typing.F32Vector4) -> vec4: ... + @overload + def __imatmul__(self, other: Union[quat, glm_typing.Number]) -> quat: ... + @overload + def __imatmul__(self, other: glm_typing.F32Vector3) -> vec3: ... + @overload + def __imatmul__(self, other: glm_typing.F32Vector4) -> vec4: ... + + + +_AT = TypeVar('_AT', ctypes.c_bool, ctypes.c_byte, ctypes.c_int8, ctypes.c_ubyte, ctypes.c_uint8, ctypes.c_short, ctypes.c_int16, ctypes.c_ushort, ctypes.c_uint16, ctypes.c_int, ctypes.c_int32, ctypes.c_uint, ctypes.c_uint32, ctypes.c_long, ctypes.c_int64, ctypes.c_ulong, ctypes.c_uint64, ctypes.c_longlong, ctypes.c_ulonglong, ctypes.c_size_t, ctypes.c_ssize_t, ctypes.c_float, ctypes.c_double, ctypes.c_longdouble, dmat2x2, dmat2x3, dmat2x4, dmat3x2, dmat3x3, dmat3x4, dmat4x2, dmat4x3, dmat4x4, imat2x2, imat2x3, imat2x4, imat3x2, imat3x3, imat3x4, imat4x2, imat4x3, imat4x4, mat2x2, mat2x3, mat2x4, mat3x2, mat3x3, mat3x4, mat4x2, mat4x3, mat4x4, umat2x2, umat2x3, umat2x4, umat3x2, umat3x3, umat3x4, umat4x2, umat4x3, umat4x4, dquat, quat, bvec1, bvec2, bvec3, bvec4, dmvec2, dmvec3, dmvec4, dvec1, dvec2, dvec3, dvec4, i16vec1, i16vec2, i16vec3, i16vec4, i64vec1, i64vec2, i64vec3, i64vec4, i8vec1, i8vec2, i8vec3, i8vec4, imvec2, imvec3, imvec4, ivec1, ivec2, ivec3, ivec4, mvec2, mvec3, mvec4, u16vec1, u16vec2, u16vec3, u16vec4, u64vec1, u64vec2, u64vec3, u64vec4, u8vec1, u8vec2, u8vec3, u8vec4, umvec2, umvec3, umvec4, uvec1, uvec2, uvec3, uvec4, vec1, vec2, vec3, vec4) +_AT2 = TypeVar('_AT2', ctypes.c_bool, ctypes.c_byte, ctypes.c_int8, ctypes.c_ubyte, ctypes.c_uint8, ctypes.c_short, ctypes.c_int16, ctypes.c_ushort, ctypes.c_uint16, ctypes.c_int, ctypes.c_int32, ctypes.c_uint, ctypes.c_uint32, ctypes.c_long, ctypes.c_int64, ctypes.c_ulong, ctypes.c_uint64, ctypes.c_longlong, ctypes.c_ulonglong, ctypes.c_size_t, ctypes.c_ssize_t, ctypes.c_float, ctypes.c_double, ctypes.c_longdouble, dmat2x2, dmat2x3, dmat2x4, dmat3x2, dmat3x3, dmat3x4, dmat4x2, dmat4x3, dmat4x4, imat2x2, imat2x3, imat2x4, imat3x2, imat3x3, imat3x4, imat4x2, imat4x3, imat4x4, mat2x2, mat2x3, mat2x4, mat3x2, mat3x3, mat3x4, mat4x2, mat4x3, mat4x4, umat2x2, umat2x3, umat2x4, umat3x2, umat3x3, umat3x4, umat4x2, umat4x3, umat4x4, dquat, quat, bvec1, bvec2, bvec3, bvec4, dmvec2, dmvec3, dmvec4, dvec1, dvec2, dvec3, dvec4, i16vec1, i16vec2, i16vec3, i16vec4, i64vec1, i64vec2, i64vec3, i64vec4, i8vec1, i8vec2, i8vec3, i8vec4, imvec2, imvec3, imvec4, ivec1, ivec2, ivec3, ivec4, mvec2, mvec3, mvec4, u16vec1, u16vec2, u16vec3, u16vec4, u64vec1, u64vec2, u64vec3, u64vec4, u8vec1, u8vec2, u8vec3, u8vec4, umvec2, umvec3, umvec4, uvec1, uvec2, uvec3, uvec4, vec1, vec2, vec3, vec4) +_GLMT = TypeVar('_GLMT', dmat2x2, dmat2x3, dmat2x4, dmat3x2, dmat3x3, dmat3x4, dmat4x2, dmat4x3, dmat4x4, imat2x2, imat2x3, imat2x4, imat3x2, imat3x3, imat3x4, imat4x2, imat4x3, imat4x4, mat2x2, mat2x3, mat2x4, mat3x2, mat3x3, mat3x4, mat4x2, mat4x3, mat4x4, umat2x2, umat2x3, umat2x4, umat3x2, umat3x3, umat3x4, umat4x2, umat4x3, umat4x4, dquat, quat, bvec1, bvec2, bvec3, bvec4, dmvec2, dmvec3, dmvec4, dvec1, dvec2, dvec3, dvec4, i16vec1, i16vec2, i16vec3, i16vec4, i64vec1, i64vec2, i64vec3, i64vec4, i8vec1, i8vec2, i8vec3, i8vec4, imvec2, imvec3, imvec4, ivec1, ivec2, ivec3, ivec4, mvec2, mvec3, mvec4, u16vec1, u16vec2, u16vec3, u16vec4, u64vec1, u64vec2, u64vec3, u64vec4, u8vec1, u8vec2, u8vec3, u8vec4, umvec2, umvec3, umvec4, uvec1, uvec2, uvec3, uvec4, vec1, vec2, vec3, vec4) +_CT = TypeVar('_CT', ctypes.c_bool, ctypes.c_byte, ctypes.c_int8, ctypes.c_ubyte, ctypes.c_uint8, ctypes.c_short, ctypes.c_int16, ctypes.c_ushort, ctypes.c_uint16, ctypes.c_int, ctypes.c_int32, ctypes.c_uint, ctypes.c_uint32, ctypes.c_long, ctypes.c_int64, ctypes.c_ulong, ctypes.c_uint64, ctypes.c_longlong, ctypes.c_ulonglong, ctypes.c_size_t, ctypes.c_ssize_t, ctypes.c_float, ctypes.c_double, ctypes.c_longdouble) +_ICT = TypeVar('_ICT', ctypes.c_bool, ctypes.c_byte, ctypes.c_int8, ctypes.c_ubyte, ctypes.c_uint8, ctypes.c_short, ctypes.c_int16, ctypes.c_ushort, ctypes.c_uint16, ctypes.c_int, ctypes.c_int32, ctypes.c_uint, ctypes.c_uint32, ctypes.c_long, ctypes.c_int64, ctypes.c_ulong, ctypes.c_uint64, ctypes.c_longlong, ctypes.c_ulonglong, ctypes.c_size_t, ctypes.c_ssize_t) +_FCT = TypeVar('_FCT', ctypes.c_bool, ctypes.c_byte, ctypes.c_int8, ctypes.c_ubyte, ctypes.c_uint8, ctypes.c_short, ctypes.c_int16, ctypes.c_ushort, ctypes.c_uint16, ctypes.c_int, ctypes.c_int32, ctypes.c_uint, ctypes.c_uint32, ctypes.c_long, ctypes.c_int64, ctypes.c_ulong, ctypes.c_uint64, ctypes.c_longlong, ctypes.c_ulonglong, ctypes.c_size_t, ctypes.c_ssize_t) + +class array(Generic[_AT]): + + nbytes: int + typecode: str + element_type: Type[_AT] + itemsize: int + dt_size: int + address: int + length: int + readonly: bool + reference: Any + + @property + def ptr(self) -> ctypes.c_void_p: ... + + @property + def dtype(self) -> str: ... + + @property + def ctype(self) -> Type[Union[ctypes.c_bool, ctypes.c_byte, ctypes.c_int8, ctypes.c_ubyte, ctypes.c_uint8, ctypes.c_short, ctypes.c_int16, ctypes.c_ushort, ctypes.c_uint16, ctypes.c_int, ctypes.c_int32, ctypes.c_uint, ctypes.c_uint32, ctypes.c_long, ctypes.c_int64, ctypes.c_ulong, ctypes.c_uint64, ctypes.c_longlong, ctypes.c_ulonglong, ctypes.c_size_t, ctypes.c_ssize_t, ctypes.c_float, ctypes.c_double, ctypes.c_longdouble]]: ... + + @overload + def __init__(self, _1: _AT, /, *_: _AT) -> None: ... + @overload + def __init__(self, _: array[_AT], /) -> None: ... + @overload + def __init__(self, _: Iterable[_AT], /) -> None: ... + + def __len__(self) -> int: ... + def __contains__(self, value: Any) -> bool: ... + + @overload + def __iter__(self: Union[array[ctypes.c_bool], array[ctypes.c_byte], array[ctypes.c_int8], array[ctypes.c_ubyte], array[ctypes.c_uint8], array[ctypes.c_short], array[ctypes.c_int16], array[ctypes.c_ushort], array[ctypes.c_uint16], array[ctypes.c_int], array[ctypes.c_int32], array[ctypes.c_uint], array[ctypes.c_uint32], array[ctypes.c_long], array[ctypes.c_int64], array[ctypes.c_ulong], array[ctypes.c_uint64], array[ctypes.c_longlong], array[ctypes.c_ulonglong], array[ctypes.c_size_t], array[ctypes.c_ssize_t]]) -> Generator[int, None, None]: ... + @overload + def __iter__(self: Union[array[ctypes.c_float], array[ctypes.c_double], array[ctypes.c_longdouble]]) -> Generator[float, None, None]: ... + @overload + def __iter__(self: array[_GLMT]) -> Generator[_AT, None, None]: ... + + @overload + def __getitem__(self: Union[array[ctypes.c_bool], array[ctypes.c_byte], array[ctypes.c_int8], array[ctypes.c_ubyte], array[ctypes.c_uint8], array[ctypes.c_short], array[ctypes.c_int16], array[ctypes.c_ushort], array[ctypes.c_uint16], array[ctypes.c_int], array[ctypes.c_int32], array[ctypes.c_uint], array[ctypes.c_uint32], array[ctypes.c_long], array[ctypes.c_int64], array[ctypes.c_ulong], array[ctypes.c_uint64], array[ctypes.c_longlong], array[ctypes.c_ulonglong], array[ctypes.c_size_t], array[ctypes.c_ssize_t]], index: int) -> int: ... + @overload + def __getitem__(self: Union[array[ctypes.c_float], array[ctypes.c_double], array[ctypes.c_longdouble]], index: int) -> float: ... + @overload + def __getitem__(self: array[_GLMT], index: int) -> _AT: ... + @overload + def __getitem__(self, index: slice) -> array[_AT]: ... + + @overload + def __setitem__(self: array[_ICT], index: int, value: _ICT) -> None: ... + @overload + def __setitem__(self: array[_FCT], index: int, value: _FCT) -> None: ... + @overload + def __setitem__(self: array[_GLMT], index: int, value: _AT) -> None: ... + @overload + def __setitem__(self, index: slice, value: array[_AT]) -> None: ... + + @staticmethod + def from_bytes(bytes: bytes, type: Type[_AT], /) -> array[_AT]: ... + + @staticmethod + def from_numbers(type: Type[_CT], /, *numbers: glm_typing.Number) -> array[_CT]: ... + + @staticmethod + def zeros(length: int, type: Type[_AT], /) -> array[_AT]: ... + + @overload + def to_list(self: array[_GLMT]) -> List[_GLMT]: ... + @overload + def to_list(self: Union[array[ctypes.c_bool], array[ctypes.c_byte], array[ctypes.c_int8], array[ctypes.c_ubyte], array[ctypes.c_uint8], array[ctypes.c_short], array[ctypes.c_int16], array[ctypes.c_ushort], array[ctypes.c_uint16], array[ctypes.c_int], array[ctypes.c_int32], array[ctypes.c_uint], array[ctypes.c_uint32], array[ctypes.c_long], array[ctypes.c_int64], array[ctypes.c_ulong], array[ctypes.c_uint64], array[ctypes.c_longlong], array[ctypes.c_ulonglong], array[ctypes.c_size_t], array[ctypes.c_ssize_t]]) -> List[int]: ... + @overload + def to_list(self: Union[array[ctypes.c_float], array[ctypes.c_double], array[ctypes.c_longdouble]]) -> List[float]: ... + + @overload + def to_tuple(self: array[_GLMT]) -> Tuple[_GLMT, ...]: ... + @overload + def to_tuple(self: Union[array[ctypes.c_bool], array[ctypes.c_byte], array[ctypes.c_int8], array[ctypes.c_ubyte], array[ctypes.c_uint8], array[ctypes.c_short], array[ctypes.c_int16], array[ctypes.c_ushort], array[ctypes.c_uint16], array[ctypes.c_int], array[ctypes.c_int32], array[ctypes.c_uint], array[ctypes.c_uint32], array[ctypes.c_long], array[ctypes.c_int64], array[ctypes.c_ulong], array[ctypes.c_uint64], array[ctypes.c_longlong], array[ctypes.c_ulonglong], array[ctypes.c_size_t], array[ctypes.c_ssize_t]]) -> Tuple[int, ...]: ... + @overload + def to_tuple(self: Union[array[ctypes.c_float], array[ctypes.c_double], array[ctypes.c_longdouble]]) -> Tuple[float, ...]: ... + + @overload + def split_components(self: array[bvec1]) -> Tuple[array[ctypes.c_bool]]: ... + @overload + def split_components(self: array[bvec2]) -> Tuple[array[ctypes.c_bool], array[ctypes.c_bool]]: ... + @overload + def split_components(self: array[bvec3]) -> Tuple[array[ctypes.c_bool], array[ctypes.c_bool], array[ctypes.c_bool]]: ... + @overload + def split_components(self: array[bvec4]) -> Tuple[array[ctypes.c_bool], array[ctypes.c_bool], array[ctypes.c_bool], array[ctypes.c_bool]]: ... + @overload + def split_components(self: array[dmvec2]) -> Tuple[array[ctypes.c_double], array[ctypes.c_double]]: ... + @overload + def split_components(self: array[dmvec3]) -> Tuple[array[ctypes.c_double], array[ctypes.c_double], array[ctypes.c_double]]: ... + @overload + def split_components(self: array[dmvec4]) -> Tuple[array[ctypes.c_double], array[ctypes.c_double], array[ctypes.c_double], array[ctypes.c_double]]: ... + @overload + def split_components(self: array[dvec1]) -> Tuple[array[ctypes.c_double]]: ... + @overload + def split_components(self: array[dvec2]) -> Tuple[array[ctypes.c_double], array[ctypes.c_double]]: ... + @overload + def split_components(self: array[dvec3]) -> Tuple[array[ctypes.c_double], array[ctypes.c_double], array[ctypes.c_double]]: ... + @overload + def split_components(self: array[dvec4]) -> Tuple[array[ctypes.c_double], array[ctypes.c_double], array[ctypes.c_double], array[ctypes.c_double]]: ... + @overload + def split_components(self: array[i16vec1]) -> Tuple[array[ctypes.c_short]]: ... + @overload + def split_components(self: array[i16vec2]) -> Tuple[array[ctypes.c_short], array[ctypes.c_short]]: ... + @overload + def split_components(self: array[i16vec3]) -> Tuple[array[ctypes.c_short], array[ctypes.c_short], array[ctypes.c_short]]: ... + @overload + def split_components(self: array[i16vec4]) -> Tuple[array[ctypes.c_short], array[ctypes.c_short], array[ctypes.c_short], array[ctypes.c_short]]: ... + @overload + def split_components(self: array[i64vec1]) -> Tuple[array[ctypes.c_longlong]]: ... + @overload + def split_components(self: array[i64vec2]) -> Tuple[array[ctypes.c_longlong], array[ctypes.c_longlong]]: ... + @overload + def split_components(self: array[i64vec3]) -> Tuple[array[ctypes.c_longlong], array[ctypes.c_longlong], array[ctypes.c_longlong]]: ... + @overload + def split_components(self: array[i64vec4]) -> Tuple[array[ctypes.c_longlong], array[ctypes.c_longlong], array[ctypes.c_longlong], array[ctypes.c_longlong]]: ... + @overload + def split_components(self: array[i8vec1]) -> Tuple[array[ctypes.c_byte]]: ... + @overload + def split_components(self: array[i8vec2]) -> Tuple[array[ctypes.c_byte], array[ctypes.c_byte]]: ... + @overload + def split_components(self: array[i8vec3]) -> Tuple[array[ctypes.c_byte], array[ctypes.c_byte], array[ctypes.c_byte]]: ... + @overload + def split_components(self: array[i8vec4]) -> Tuple[array[ctypes.c_byte], array[ctypes.c_byte], array[ctypes.c_byte], array[ctypes.c_byte]]: ... + @overload + def split_components(self: array[imvec2]) -> Tuple[array[ctypes.c_long], array[ctypes.c_long]]: ... + @overload + def split_components(self: array[imvec3]) -> Tuple[array[ctypes.c_long], array[ctypes.c_long], array[ctypes.c_long]]: ... + @overload + def split_components(self: array[imvec4]) -> Tuple[array[ctypes.c_long], array[ctypes.c_long], array[ctypes.c_long], array[ctypes.c_long]]: ... + @overload + def split_components(self: array[ivec1]) -> Tuple[array[ctypes.c_long]]: ... + @overload + def split_components(self: array[ivec2]) -> Tuple[array[ctypes.c_long], array[ctypes.c_long]]: ... + @overload + def split_components(self: array[ivec3]) -> Tuple[array[ctypes.c_long], array[ctypes.c_long], array[ctypes.c_long]]: ... + @overload + def split_components(self: array[ivec4]) -> Tuple[array[ctypes.c_long], array[ctypes.c_long], array[ctypes.c_long], array[ctypes.c_long]]: ... + @overload + def split_components(self: array[mvec2]) -> Tuple[array[ctypes.c_float], array[ctypes.c_float]]: ... + @overload + def split_components(self: array[mvec3]) -> Tuple[array[ctypes.c_float], array[ctypes.c_float], array[ctypes.c_float]]: ... + @overload + def split_components(self: array[mvec4]) -> Tuple[array[ctypes.c_float], array[ctypes.c_float], array[ctypes.c_float], array[ctypes.c_float]]: ... + @overload + def split_components(self: array[u16vec1]) -> Tuple[array[ctypes.c_ushort]]: ... + @overload + def split_components(self: array[u16vec2]) -> Tuple[array[ctypes.c_ushort], array[ctypes.c_ushort]]: ... + @overload + def split_components(self: array[u16vec3]) -> Tuple[array[ctypes.c_ushort], array[ctypes.c_ushort], array[ctypes.c_ushort]]: ... + @overload + def split_components(self: array[u16vec4]) -> Tuple[array[ctypes.c_ushort], array[ctypes.c_ushort], array[ctypes.c_ushort], array[ctypes.c_ushort]]: ... + @overload + def split_components(self: array[u64vec1]) -> Tuple[array[ctypes.c_ulonglong]]: ... + @overload + def split_components(self: array[u64vec2]) -> Tuple[array[ctypes.c_ulonglong], array[ctypes.c_ulonglong]]: ... + @overload + def split_components(self: array[u64vec3]) -> Tuple[array[ctypes.c_ulonglong], array[ctypes.c_ulonglong], array[ctypes.c_ulonglong]]: ... + @overload + def split_components(self: array[u64vec4]) -> Tuple[array[ctypes.c_ulonglong], array[ctypes.c_ulonglong], array[ctypes.c_ulonglong], array[ctypes.c_ulonglong]]: ... + @overload + def split_components(self: array[u8vec1]) -> Tuple[array[ctypes.c_ubyte]]: ... + @overload + def split_components(self: array[u8vec2]) -> Tuple[array[ctypes.c_ubyte], array[ctypes.c_ubyte]]: ... + @overload + def split_components(self: array[u8vec3]) -> Tuple[array[ctypes.c_ubyte], array[ctypes.c_ubyte], array[ctypes.c_ubyte]]: ... + @overload + def split_components(self: array[u8vec4]) -> Tuple[array[ctypes.c_ubyte], array[ctypes.c_ubyte], array[ctypes.c_ubyte], array[ctypes.c_ubyte]]: ... + @overload + def split_components(self: array[umvec2]) -> Tuple[array[ctypes.c_ulong], array[ctypes.c_ulong]]: ... + @overload + def split_components(self: array[umvec3]) -> Tuple[array[ctypes.c_ulong], array[ctypes.c_ulong], array[ctypes.c_ulong]]: ... + @overload + def split_components(self: array[umvec4]) -> Tuple[array[ctypes.c_ulong], array[ctypes.c_ulong], array[ctypes.c_ulong], array[ctypes.c_ulong]]: ... + @overload + def split_components(self: array[uvec1]) -> Tuple[array[ctypes.c_ulong]]: ... + @overload + def split_components(self: array[uvec2]) -> Tuple[array[ctypes.c_ulong], array[ctypes.c_ulong]]: ... + @overload + def split_components(self: array[uvec3]) -> Tuple[array[ctypes.c_ulong], array[ctypes.c_ulong], array[ctypes.c_ulong]]: ... + @overload + def split_components(self: array[uvec4]) -> Tuple[array[ctypes.c_ulong], array[ctypes.c_ulong], array[ctypes.c_ulong], array[ctypes.c_ulong]]: ... + @overload + def split_components(self: array[vec1]) -> Tuple[array[ctypes.c_float]]: ... + @overload + def split_components(self: array[vec2]) -> Tuple[array[ctypes.c_float], array[ctypes.c_float]]: ... + @overload + def split_components(self: array[vec3]) -> Tuple[array[ctypes.c_float], array[ctypes.c_float], array[ctypes.c_float]]: ... + @overload + def split_components(self: array[vec4]) -> Tuple[array[ctypes.c_float], array[ctypes.c_float], array[ctypes.c_float], array[ctypes.c_float]]: ... + @overload + def split_components(self: array[dquat]) -> Tuple[array[ctypes.c_double], array[ctypes.c_double], array[ctypes.c_double], array[ctypes.c_double]]: ... + @overload + def split_components(self: array[quat]) -> Tuple[array[ctypes.c_float], array[ctypes.c_float], array[ctypes.c_float], array[ctypes.c_float]]: ... + @overload + def split_components(self: array[dmat2x2]) -> Tuple[array[dvec2], array[dvec2]]: ... + @overload + def split_components(self: array[dmat2x3]) -> Tuple[array[dvec3], array[dvec3]]: ... + @overload + def split_components(self: array[dmat2x4]) -> Tuple[array[dvec4], array[dvec4]]: ... + @overload + def split_components(self: array[dmat3x2]) -> Tuple[array[dvec2], array[dvec2], array[dvec2]]: ... + @overload + def split_components(self: array[dmat3x3]) -> Tuple[array[dvec3], array[dvec3], array[dvec3]]: ... + @overload + def split_components(self: array[dmat3x4]) -> Tuple[array[dvec4], array[dvec4], array[dvec4]]: ... + @overload + def split_components(self: array[dmat4x2]) -> Tuple[array[dvec2], array[dvec2], array[dvec2], array[dvec2]]: ... + @overload + def split_components(self: array[dmat4x3]) -> Tuple[array[dvec3], array[dvec3], array[dvec3], array[dvec3]]: ... + @overload + def split_components(self: array[dmat4x4]) -> Tuple[array[dvec4], array[dvec4], array[dvec4], array[dvec4]]: ... + @overload + def split_components(self: array[imat2x2]) -> Tuple[array[ivec2], array[ivec2]]: ... + @overload + def split_components(self: array[imat2x3]) -> Tuple[array[ivec3], array[ivec3]]: ... + @overload + def split_components(self: array[imat2x4]) -> Tuple[array[ivec4], array[ivec4]]: ... + @overload + def split_components(self: array[imat3x2]) -> Tuple[array[ivec2], array[ivec2], array[ivec2]]: ... + @overload + def split_components(self: array[imat3x3]) -> Tuple[array[ivec3], array[ivec3], array[ivec3]]: ... + @overload + def split_components(self: array[imat3x4]) -> Tuple[array[ivec4], array[ivec4], array[ivec4]]: ... + @overload + def split_components(self: array[imat4x2]) -> Tuple[array[ivec2], array[ivec2], array[ivec2], array[ivec2]]: ... + @overload + def split_components(self: array[imat4x3]) -> Tuple[array[ivec3], array[ivec3], array[ivec3], array[ivec3]]: ... + @overload + def split_components(self: array[imat4x4]) -> Tuple[array[ivec4], array[ivec4], array[ivec4], array[ivec4]]: ... + @overload + def split_components(self: array[mat2x2]) -> Tuple[array[vec2], array[vec2]]: ... + @overload + def split_components(self: array[mat2x3]) -> Tuple[array[vec3], array[vec3]]: ... + @overload + def split_components(self: array[mat2x4]) -> Tuple[array[vec4], array[vec4]]: ... + @overload + def split_components(self: array[mat3x2]) -> Tuple[array[vec2], array[vec2], array[vec2]]: ... + @overload + def split_components(self: array[mat3x3]) -> Tuple[array[vec3], array[vec3], array[vec3]]: ... + @overload + def split_components(self: array[mat3x4]) -> Tuple[array[vec4], array[vec4], array[vec4]]: ... + @overload + def split_components(self: array[mat4x2]) -> Tuple[array[vec2], array[vec2], array[vec2], array[vec2]]: ... + @overload + def split_components(self: array[mat4x3]) -> Tuple[array[vec3], array[vec3], array[vec3], array[vec3]]: ... + @overload + def split_components(self: array[mat4x4]) -> Tuple[array[vec4], array[vec4], array[vec4], array[vec4]]: ... + @overload + def split_components(self: array[umat2x2]) -> Tuple[array[uvec2], array[uvec2]]: ... + @overload + def split_components(self: array[umat2x3]) -> Tuple[array[uvec3], array[uvec3]]: ... + @overload + def split_components(self: array[umat2x4]) -> Tuple[array[uvec4], array[uvec4]]: ... + @overload + def split_components(self: array[umat3x2]) -> Tuple[array[uvec2], array[uvec2], array[uvec2]]: ... + @overload + def split_components(self: array[umat3x3]) -> Tuple[array[uvec3], array[uvec3], array[uvec3]]: ... + @overload + def split_components(self: array[umat3x4]) -> Tuple[array[uvec4], array[uvec4], array[uvec4]]: ... + @overload + def split_components(self: array[umat4x2]) -> Tuple[array[uvec2], array[uvec2], array[uvec2], array[uvec2]]: ... + @overload + def split_components(self: array[umat4x3]) -> Tuple[array[uvec3], array[uvec3], array[uvec3], array[uvec3]]: ... + @overload + def split_components(self: array[umat4x4]) -> Tuple[array[uvec4], array[uvec4], array[uvec4], array[uvec4]]: ... + + def to_bytes(self) -> bytes: ... + + def reduce(self, func: Callable[[_AT, _AT], _AT], init: Optional[_AT] = ..., /) -> _AT: ... + def filter(self, _: Callable[[_AT], Any], /) -> array[_AT]: ... + def map(self, _: Callable[[_AT], _AT2], /) -> array[_AT2]: ... + def sort(self, _: Callable[[_AT], SupportsInt], /) -> array[_AT]: ... + def concat(self, other: array[_AT], /) -> array[_AT]: ... + def iconcat(self, other: array[_AT], /) -> None: ... + def repeat(self, count: int, /) -> array[_AT]: ... + def irepeat(self, count: int, /) -> None: ... + + @overload + @staticmethod + def as_reference(array: array[_AT], /) -> array[_AT]: ... + @overload + @staticmethod + def as_reference(obj: _GLMT, /) -> array[_GLMT]: ... + + def reinterpret_cast(self, type: Type[_AT], /) -> array[_AT]: ... + + def __eq__(self, other: Any) -> bool: ... + def __ne__(self, other: Any) -> bool: ... + + def __add__(self, other: Union[glm_typing.Number, _AT, array[_AT]]) -> array[_AT]: ... + def __radd__(self, other: Union[glm_typing.Number, _AT, array[_AT]]) -> array[_AT]: ... + def __iadd__(self, other: Union[glm_typing.Number, _AT, array[_AT]]) -> array[_AT]: ... + def __sub__(self, other: Union[glm_typing.Number, _AT, array[_AT]]) -> array[_AT]: ... + def __rsub__(self, other: Union[glm_typing.Number, _AT, array[_AT]]) -> array[_AT]: ... + def __isub__(self, other: Union[glm_typing.Number, _AT, array[_AT]]) -> array[_AT]: ... + def __mul__(self, other: Union[glm_typing.Number, _AT, array[_AT]]) -> array[_AT]: ... + def __rmul__(self, other: Union[glm_typing.Number, _AT, array[_AT]]) -> array[_AT]: ... + def __imul__(self, other: Union[glm_typing.Number, _AT, array[_AT]]) -> array[_AT]: ... + def __mod__(self, other: Union[glm_typing.Number, _AT, array[_AT]]) -> array[_AT]: ... + def __rmod__(self, other: Union[glm_typing.Number, _AT, array[_AT]]) -> array[_AT]: ... + def __imod__(self, other: Union[glm_typing.Number, _AT, array[_AT]]) -> array[_AT]: ... + def __pow__(self, other: Union[glm_typing.Number, _AT, array[_AT]]) -> array[_AT]: ... + def __rpow__(self, other: Union[glm_typing.Number, _AT, array[_AT]]) -> array[_AT]: ... + def __ipow__(self, other: Union[glm_typing.Number, _AT, array[_AT]]) -> array[_AT]: ... + def __lshift__(self, other: Union[glm_typing.Number, _AT, array[_AT]]) -> array[_AT]: ... + def __rlshift__(self, other: Union[glm_typing.Number, _AT, array[_AT]]) -> array[_AT]: ... + def __ilshift__(self, other: Union[glm_typing.Number, _AT, array[_AT]]) -> array[_AT]: ... + def __rshift__(self, other: Union[glm_typing.Number, _AT, array[_AT]]) -> array[_AT]: ... + def __rrshift__(self, other: Union[glm_typing.Number, _AT, array[_AT]]) -> array[_AT]: ... + def __irshift__(self, other: Union[glm_typing.Number, _AT, array[_AT]]) -> array[_AT]: ... + def __and__(self, other: Union[glm_typing.Number, _AT, array[_AT]]) -> array[_AT]: ... + def __rand__(self, other: Union[glm_typing.Number, _AT, array[_AT]]) -> array[_AT]: ... + def __iand__(self, other: Union[glm_typing.Number, _AT, array[_AT]]) -> array[_AT]: ... + def __xor__(self, other: Union[glm_typing.Number, _AT, array[_AT]]) -> array[_AT]: ... + def __rxor__(self, other: Union[glm_typing.Number, _AT, array[_AT]]) -> array[_AT]: ... + def __ixor__(self, other: Union[glm_typing.Number, _AT, array[_AT]]) -> array[_AT]: ... + def __or__(self, other: Union[glm_typing.Number, _AT, array[_AT]]) -> array[_AT]: ... + def __ror__(self, other: Union[glm_typing.Number, _AT, array[_AT]]) -> array[_AT]: ... + def __ior__(self, other: Union[glm_typing.Number, _AT, array[_AT]]) -> array[_AT]: ... + def __truediv__(self, other: Union[glm_typing.Number, _AT, array[_AT]]) -> array[_AT]: ... + def __rtruediv__(self, other: Union[glm_typing.Number, _AT, array[_AT]]) -> array[_AT]: ... + def __itruediv__(self, other: Union[glm_typing.Number, _AT, array[_AT]]) -> array[_AT]: ... + + def __neg__(self) -> array[_AT]: ... + def __pos__(self) -> array[_AT]: ... + def __abs__(self) -> array[_AT]: ... + def __inv__(self) -> array[_AT]: ... + + +@overload +def abs(x: glm_typing.Number, /) -> float: ... +@overload +def abs(x: Tuple[glm_typing.Number], /) -> vec1: ... +@overload +def abs(x: Tuple[glm_typing.Number, glm_typing.Number], /) -> vec2: ... +@overload +def abs(x: Tuple[glm_typing.Number, glm_typing.Number, glm_typing.Number], /) -> vec3: ... +@overload +def abs(x: Tuple[glm_typing.Number, glm_typing.Number, glm_typing.Number, glm_typing.Number], /) -> vec4: ... +@overload +def abs(x: _VT, /) -> _VT: ... + +@overload +def ceil(x: glm_typing.Number, /) -> float: ... +@overload +def ceil(x: Tuple[glm_typing.Number], /) -> vec1: ... +@overload +def ceil(x: Tuple[glm_typing.Number, glm_typing.Number], /) -> vec2: ... +@overload +def ceil(x: Tuple[glm_typing.Number, glm_typing.Number, glm_typing.Number], /) -> vec3: ... +@overload +def ceil(x: Tuple[glm_typing.Number, glm_typing.Number, glm_typing.Number, glm_typing.Number], /) -> vec4: ... +@overload +def ceil(x: _VT, /) -> _VT: ... + +@overload +def clamp(x: glm_typing.Number, min: glm_typing.Number, max: glm_typing.Number, /) -> glm_typing.Number: ... +@overload +def clamp(x: glm_typing.F32Vector1, min: glm_typing.Number, max: glm_typing.Number, /) -> vec1: ... +@overload +def clamp(x: glm_typing.F32Vector1, min: glm_typing.F32Vector1, max: glm_typing.F32Vector1, /) -> vec1: ... +@overload +def clamp(x: glm_typing.F32Vector2, min: glm_typing.Number, max: glm_typing.Number, /) -> vec2: ... +@overload +def clamp(x: glm_typing.F32Vector2, min: glm_typing.F32Vector2, max: glm_typing.F32Vector2, /) -> vec2: ... +@overload +def clamp(x: glm_typing.F32Vector3, min: glm_typing.Number, max: glm_typing.Number, /) -> vec3: ... +@overload +def clamp(x: glm_typing.F32Vector3, min: glm_typing.F32Vector3, max: glm_typing.F32Vector3, /) -> vec3: ... +@overload +def clamp(x: glm_typing.F32Vector4, min: glm_typing.Number, max: glm_typing.Number, /) -> vec4: ... +@overload +def clamp(x: glm_typing.F32Vector4, min: glm_typing.F32Vector4, max: glm_typing.F32Vector4, /) -> vec4: ... +@overload +def clamp(x: _NF32VT, min: glm_typing.Number, max: glm_typing.Number, /) -> _NF32VT: ... +@overload +def clamp(x: _NF32VT, min: _NF32VT, max: _NF32VT, /) -> _NF32VT: ... + +@overload +def floatBitsToInt(x: float, /) -> int: ... +@overload +def floatBitsToInt(x: glm_typing.F32Vector2, /) -> ivec2: ... +@overload +def floatBitsToInt(x: glm_typing.F32Vector3, /) -> ivec3: ... +@overload +def floatBitsToInt(x: glm_typing.F32Vector4, /) -> ivec4: ... +@overload +def floatBitsToInt(x: glm_typing.F32Vector1, /) -> ivec1: ... + +@overload +def floatBitsToUint(x: float, /) -> int: ... +@overload +def floatBitsToUint(x: glm_typing.F32Vector2, /) -> uvec2: ... +@overload +def floatBitsToUint(x: glm_typing.F32Vector3, /) -> uvec3: ... +@overload +def floatBitsToUint(x: glm_typing.F32Vector4, /) -> uvec4: ... +@overload +def floatBitsToUint(x: glm_typing.F32Vector1, /) -> uvec1: ... + +@overload +def floor(x: glm_typing.Number, /) -> float: ... +@overload +def floor(x: Tuple[glm_typing.Number], /) -> vec1: ... +@overload +def floor(x: Tuple[glm_typing.Number, glm_typing.Number], /) -> vec2: ... +@overload +def floor(x: Tuple[glm_typing.Number, glm_typing.Number, glm_typing.Number], /) -> vec3: ... +@overload +def floor(x: Tuple[glm_typing.Number, glm_typing.Number, glm_typing.Number, glm_typing.Number], /) -> vec4: ... +@overload +def floor(x: _VT, /) -> _VT: ... + +def fma(a: glm_typing.Number, b: glm_typing.Number, c: glm_typing.Number, /) -> float: ... + +@overload +def fmax(x: glm_typing.Number, y: glm_typing.Number, /) -> float: ... +@overload +def fmax(a: glm_typing.Number, b: glm_typing.Number, c: glm_typing.Number, /) -> float: ... +@overload +def fmax(a: glm_typing.Number, b: glm_typing.Number, c: glm_typing.Number, d: glm_typing.Number, /) -> float: ... +@overload +def fmax(x: glm_typing.F32Vector1, y: glm_typing.Number, /) -> vec1: ... +@overload +def fmax(x: glm_typing.F32Vector1, y: glm_typing.F32Vector1, /) -> vec1: ... +@overload +def fmax(a: glm_typing.F32Vector1, b: glm_typing.F32Vector1, c: glm_typing.F32Vector1, /) -> vec1: ... +@overload +def fmax(a: glm_typing.F32Vector1, b: glm_typing.F32Vector1, c: glm_typing.F32Vector1, d: glm_typing.F32Vector1, /) -> vec1: ... +@overload +def fmax(x: glm_typing.F32Vector2, y: glm_typing.Number, /) -> vec2: ... +@overload +def fmax(x: glm_typing.F32Vector2, y: glm_typing.F32Vector2, /) -> vec2: ... +@overload +def fmax(a: glm_typing.F32Vector2, b: glm_typing.F32Vector2, c: glm_typing.F32Vector2, /) -> vec2: ... +@overload +def fmax(a: glm_typing.F32Vector2, b: glm_typing.F32Vector2, c: glm_typing.F32Vector2, d: glm_typing.F32Vector2, /) -> vec2: ... +@overload +def fmax(x: glm_typing.F32Vector3, y: glm_typing.Number, /) -> vec3: ... +@overload +def fmax(x: glm_typing.F32Vector3, y: glm_typing.F32Vector3, /) -> vec3: ... +@overload +def fmax(a: glm_typing.F32Vector3, b: glm_typing.F32Vector3, c: glm_typing.F32Vector3, /) -> vec3: ... +@overload +def fmax(a: glm_typing.F32Vector3, b: glm_typing.F32Vector3, c: glm_typing.F32Vector3, d: glm_typing.F32Vector3, /) -> vec3: ... +@overload +def fmax(x: glm_typing.F32Vector4, y: glm_typing.Number, /) -> vec4: ... +@overload +def fmax(x: glm_typing.F32Vector4, y: glm_typing.F32Vector4, /) -> vec4: ... +@overload +def fmax(a: glm_typing.F32Vector4, b: glm_typing.F32Vector4, c: glm_typing.F32Vector4, /) -> vec4: ... +@overload +def fmax(a: glm_typing.F32Vector4, b: glm_typing.F32Vector4, c: glm_typing.F32Vector4, d: glm_typing.F32Vector4, /) -> vec4: ... +@overload +def fmax(x: _NF32VT, y: glm_typing.Number, /) -> _NF32VT: ... +@overload +def fmax(x: _NF32VT, y: _NF32VT, /) -> _NF32VT: ... +@overload +def fmax(a: _NF32VT, b: _NF32VT, c: _NF32VT, /) -> _NF32VT: ... +@overload +def fmax(a: _NF32VT, b: _NF32VT, c: _NF32VT, d: _NF32VT, /) -> _NF32VT: ... + +@overload +def fmin(x: glm_typing.Number, y: glm_typing.Number, /) -> float: ... +@overload +def fmin(a: glm_typing.Number, b: glm_typing.Number, c: glm_typing.Number, /) -> float: ... +@overload +def fmin(a: glm_typing.Number, b: glm_typing.Number, c: glm_typing.Number, d: glm_typing.Number, /) -> float: ... +@overload +def fmin(x: glm_typing.F32Vector1, y: glm_typing.Number, /) -> vec1: ... +@overload +def fmin(x: glm_typing.F32Vector1, y: glm_typing.F32Vector1, /) -> vec1: ... +@overload +def fmin(a: glm_typing.F32Vector1, b: glm_typing.F32Vector1, c: glm_typing.F32Vector1, /) -> vec1: ... +@overload +def fmin(a: glm_typing.F32Vector1, b: glm_typing.F32Vector1, c: glm_typing.F32Vector1, d: glm_typing.F32Vector1, /) -> vec1: ... +@overload +def fmin(x: glm_typing.F32Vector2, y: glm_typing.Number, /) -> vec2: ... +@overload +def fmin(x: glm_typing.F32Vector2, y: glm_typing.F32Vector2, /) -> vec2: ... +@overload +def fmin(a: glm_typing.F32Vector2, b: glm_typing.F32Vector2, c: glm_typing.F32Vector2, /) -> vec2: ... +@overload +def fmin(a: glm_typing.F32Vector2, b: glm_typing.F32Vector2, c: glm_typing.F32Vector2, d: glm_typing.F32Vector2, /) -> vec2: ... +@overload +def fmin(x: glm_typing.F32Vector3, y: glm_typing.Number, /) -> vec3: ... +@overload +def fmin(x: glm_typing.F32Vector3, y: glm_typing.F32Vector3, /) -> vec3: ... +@overload +def fmin(a: glm_typing.F32Vector3, b: glm_typing.F32Vector3, c: glm_typing.F32Vector3, /) -> vec3: ... +@overload +def fmin(a: glm_typing.F32Vector3, b: glm_typing.F32Vector3, c: glm_typing.F32Vector3, d: glm_typing.F32Vector3, /) -> vec3: ... +@overload +def fmin(x: glm_typing.F32Vector4, y: glm_typing.Number, /) -> vec4: ... +@overload +def fmin(x: glm_typing.F32Vector4, y: glm_typing.F32Vector4, /) -> vec4: ... +@overload +def fmin(a: glm_typing.F32Vector4, b: glm_typing.F32Vector4, c: glm_typing.F32Vector4, /) -> vec4: ... +@overload +def fmin(a: glm_typing.F32Vector4, b: glm_typing.F32Vector4, c: glm_typing.F32Vector4, d: glm_typing.F32Vector4, /) -> vec4: ... +@overload +def fmin(x: _NF32VT, y: glm_typing.Number, /) -> _NF32VT: ... +@overload +def fmin(x: _NF32VT, y: _NF32VT, /) -> _NF32VT: ... +@overload +def fmin(a: _NF32VT, b: _NF32VT, c: _NF32VT, /) -> _NF32VT: ... +@overload +def fmin(a: _NF32VT, b: _NF32VT, c: _NF32VT, d: _NF32VT, /) -> _NF32VT: ... + +@overload +def fract(x: glm_typing.Number, /) -> float: ... +@overload +def fract(x: Tuple[glm_typing.Number], /) -> vec1: ... +@overload +def fract(x: Tuple[glm_typing.Number, glm_typing.Number], /) -> vec2: ... +@overload +def fract(x: Tuple[glm_typing.Number, glm_typing.Number, glm_typing.Number], /) -> vec3: ... +@overload +def fract(x: Tuple[glm_typing.Number, glm_typing.Number, glm_typing.Number, glm_typing.Number], /) -> vec4: ... +@overload +def fract(x: _VT, /) -> _VT: ... + +@overload +def frexp(x: glm_typing.Number, /) -> Tuple[float, int]: ... +@overload +def frexp(x: dvec1, exp: ivec1, /) -> dvec1: ... +@overload +def frexp(x: dvec2, exp: ivec2, /) -> dvec2: ... +@overload +def frexp(x: dvec3, exp: ivec3, /) -> dvec3: ... +@overload +def frexp(x: dvec4, exp: ivec4, /) -> dvec4: ... +@overload +def frexp(x: glm_typing.F32Vector1, exp: ivec1, /) -> vec1: ... +@overload +def frexp(x: glm_typing.F32Vector2, exp: ivec2, /) -> vec2: ... +@overload +def frexp(x: glm_typing.F32Vector3, exp: ivec3, /) -> vec3: ... +@overload +def frexp(x: glm_typing.F32Vector4, exp: ivec4, /) -> vec4: ... + +@overload +def intBitsToFloat(x: int, /) -> float: ... +@overload +def intBitsToFloat(x: glm_typing.I32Vector2, /) -> vec2: ... +@overload +def intBitsToFloat(x: glm_typing.I32Vector3, /) -> vec3: ... +@overload +def intBitsToFloat(x: glm_typing.I32Vector4, /) -> vec4: ... +@overload +def intBitsToFloat(x: glm_typing.I32Vector1, /) -> vec1: ... + +@overload +def isinf(x: glm_typing.Number, /) -> bool: ... +@overload +def isinf(x: glm_typing.FDAnyVector1, /) -> bvec1: ... +@overload +def isinf(x: glm_typing.FDAnyVector2, /) -> bvec2: ... +@overload +def isinf(x: glm_typing.FDAnyVector3, /) -> bvec3: ... +@overload +def isinf(x: glm_typing.FDAnyQuaternionVector4, /) -> bvec4: ... + +@overload +def isnan(x: glm_typing.Number, /) -> bool: ... +@overload +def isnan(x: glm_typing.FDAnyVector1, /) -> bvec1: ... +@overload +def isnan(x: glm_typing.FDAnyVector2, /) -> bvec2: ... +@overload +def isnan(x: glm_typing.FDAnyVector3, /) -> bvec3: ... +@overload +def isnan(x: glm_typing.FDAnyQuaternionVector4, /) -> bvec4: ... + +@overload +def ldexp(x: glm_typing.Number, exp: glm_typing.Number, /) -> float: ... +@overload +def ldexp(x: dmvec2, exp: ivec2, /) -> dmvec2: ... +@overload +def ldexp(x: dmvec3, exp: ivec3, /) -> dmvec3: ... +@overload +def ldexp(x: dmvec4, exp: ivec4, /) -> dmvec4: ... +@overload +def ldexp(x: dvec1, exp: ivec1, /) -> dvec1: ... +@overload +def ldexp(x: dvec2, exp: ivec2, /) -> dvec2: ... +@overload +def ldexp(x: dvec3, exp: ivec3, /) -> dvec3: ... +@overload +def ldexp(x: dvec4, exp: ivec4, /) -> dvec4: ... +@overload +def ldexp(x: mvec2, exp: ivec2, /) -> mvec2: ... +@overload +def ldexp(x: mvec3, exp: ivec3, /) -> mvec3: ... +@overload +def ldexp(x: mvec4, exp: ivec4, /) -> mvec4: ... +@overload +def ldexp(x: Union[vec1, Tuple[glm_typing.Number]], exp: ivec1, /) -> vec1: ... +@overload +def ldexp(x: Union[vec2, Tuple[glm_typing.Number, glm_typing.Number]], exp: ivec2, /) -> vec2: ... +@overload +def ldexp(x: Union[vec3, Tuple[glm_typing.Number, glm_typing.Number, glm_typing.Number]], exp: ivec3, /) -> vec3: ... +@overload +def ldexp(x: Union[vec4, Tuple[glm_typing.Number, glm_typing.Number, glm_typing.Number, glm_typing.Number]], exp: ivec4, /) -> vec4: ... + +@overload +def max(x: glm_typing.Number, y: glm_typing.Number, /) -> float: ... +@overload +def max(a: glm_typing.Number, b: glm_typing.Number, c: glm_typing.Number, /) -> float: ... +@overload +def max(a: glm_typing.Number, b: glm_typing.Number, c: glm_typing.Number, d: glm_typing.Number, /) -> float: ... +@overload +def max(x: glm_typing.F32Vector1, y: glm_typing.Number, /) -> vec1: ... +@overload +def max(x: glm_typing.F32Vector1, y: glm_typing.F32Vector1, /) -> vec1: ... +@overload +def max(a: glm_typing.F32Vector1, b: glm_typing.F32Vector1, c: glm_typing.F32Vector1, /) -> vec1: ... +@overload +def max(a: glm_typing.F32Vector1, b: glm_typing.F32Vector1, c: glm_typing.F32Vector1, d: glm_typing.F32Vector1, /) -> vec1: ... +@overload +def max(x: glm_typing.F32Vector2, y: glm_typing.Number, /) -> vec2: ... +@overload +def max(x: glm_typing.F32Vector2, y: glm_typing.F32Vector2, /) -> vec2: ... +@overload +def max(a: glm_typing.F32Vector2, b: glm_typing.F32Vector2, c: glm_typing.F32Vector2, /) -> vec2: ... +@overload +def max(a: glm_typing.F32Vector2, b: glm_typing.F32Vector2, c: glm_typing.F32Vector2, d: glm_typing.F32Vector2, /) -> vec2: ... +@overload +def max(x: glm_typing.F32Vector3, y: glm_typing.Number, /) -> vec3: ... +@overload +def max(x: glm_typing.F32Vector3, y: glm_typing.F32Vector3, /) -> vec3: ... +@overload +def max(a: glm_typing.F32Vector3, b: glm_typing.F32Vector3, c: glm_typing.F32Vector3, /) -> vec3: ... +@overload +def max(a: glm_typing.F32Vector3, b: glm_typing.F32Vector3, c: glm_typing.F32Vector3, d: glm_typing.F32Vector3, /) -> vec3: ... +@overload +def max(x: glm_typing.F32Vector4, y: glm_typing.Number, /) -> vec4: ... +@overload +def max(x: glm_typing.F32Vector4, y: glm_typing.F32Vector4, /) -> vec4: ... +@overload +def max(a: glm_typing.F32Vector4, b: glm_typing.F32Vector4, c: glm_typing.F32Vector4, /) -> vec4: ... +@overload +def max(a: glm_typing.F32Vector4, b: glm_typing.F32Vector4, c: glm_typing.F32Vector4, d: glm_typing.F32Vector4, /) -> vec4: ... +@overload +def max(x: _NF32VT, y: glm_typing.Number, /) -> _NF32VT: ... +@overload +def max(x: _NF32VT, y: _NF32VT, /) -> _NF32VT: ... +@overload +def max(a: _NF32VT, b: _NF32VT, c: _NF32VT, /) -> _NF32VT: ... +@overload +def max(a: _NF32VT, b: _NF32VT, c: _NF32VT, d: _NF32VT, /) -> _NF32VT: ... +@overload +def max(_: Iterable[_T], /) -> _T: ... + +@overload +def min(x: glm_typing.Number, y: glm_typing.Number, /) -> float: ... +@overload +def min(a: glm_typing.Number, b: glm_typing.Number, c: glm_typing.Number, /) -> float: ... +@overload +def min(a: glm_typing.Number, b: glm_typing.Number, c: glm_typing.Number, d: glm_typing.Number, /) -> float: ... +@overload +def min(x: glm_typing.F32Vector1, y: glm_typing.Number, /) -> vec1: ... +@overload +def min(x: glm_typing.F32Vector1, y: glm_typing.F32Vector1, /) -> vec1: ... +@overload +def min(a: glm_typing.F32Vector1, b: glm_typing.F32Vector1, c: glm_typing.F32Vector1, /) -> vec1: ... +@overload +def min(a: glm_typing.F32Vector1, b: glm_typing.F32Vector1, c: glm_typing.F32Vector1, d: glm_typing.F32Vector1, /) -> vec1: ... +@overload +def min(x: glm_typing.F32Vector2, y: glm_typing.Number, /) -> vec2: ... +@overload +def min(x: glm_typing.F32Vector2, y: glm_typing.F32Vector2, /) -> vec2: ... +@overload +def min(a: glm_typing.F32Vector2, b: glm_typing.F32Vector2, c: glm_typing.F32Vector2, /) -> vec2: ... +@overload +def min(a: glm_typing.F32Vector2, b: glm_typing.F32Vector2, c: glm_typing.F32Vector2, d: glm_typing.F32Vector2, /) -> vec2: ... +@overload +def min(x: glm_typing.F32Vector3, y: glm_typing.Number, /) -> vec3: ... +@overload +def min(x: glm_typing.F32Vector3, y: glm_typing.F32Vector3, /) -> vec3: ... +@overload +def min(a: glm_typing.F32Vector3, b: glm_typing.F32Vector3, c: glm_typing.F32Vector3, /) -> vec3: ... +@overload +def min(a: glm_typing.F32Vector3, b: glm_typing.F32Vector3, c: glm_typing.F32Vector3, d: glm_typing.F32Vector3, /) -> vec3: ... +@overload +def min(x: glm_typing.F32Vector4, y: glm_typing.Number, /) -> vec4: ... +@overload +def min(x: glm_typing.F32Vector4, y: glm_typing.F32Vector4, /) -> vec4: ... +@overload +def min(a: glm_typing.F32Vector4, b: glm_typing.F32Vector4, c: glm_typing.F32Vector4, /) -> vec4: ... +@overload +def min(a: glm_typing.F32Vector4, b: glm_typing.F32Vector4, c: glm_typing.F32Vector4, d: glm_typing.F32Vector4, /) -> vec4: ... +@overload +def min(x: _NF32VT, y: glm_typing.Number, /) -> _NF32VT: ... +@overload +def min(x: _NF32VT, y: _NF32VT, /) -> _NF32VT: ... +@overload +def min(a: _NF32VT, b: _NF32VT, c: _NF32VT, /) -> _NF32VT: ... +@overload +def min(a: _NF32VT, b: _NF32VT, c: _NF32VT, d: _NF32VT, /) -> _NF32VT: ... +@overload +def min(_: Iterable[_T], /) -> _T: ... + +@overload +def mix(x: glm_typing.Number, y: glm_typing.Number, a: glm_typing.Number, /) -> float: ... +@overload +def mix(x: glm_typing.F32Vector1, y: glm_typing.F32Vector1, a: Union[glm_typing.FDAnyVector1, glm_typing.BAnyVector1, glm_typing.Number], /) -> vec1: ... +@overload +def mix(x: _NF32V1T, y: _NF32V1T, a: Union[glm_typing.FDAnyVector1, glm_typing.BAnyVector1, glm_typing.Number], /) -> _NF32V1T: ... +@overload +def mix(x: glm_typing.F32Vector2, y: glm_typing.F32Vector2, a: Union[glm_typing.FDAnyVector2, glm_typing.BAnyVector2, glm_typing.Number], /) -> vec2: ... +@overload +def mix(x: _NF32V2T, y: _NF32V2T, a: Union[glm_typing.FDAnyVector2, glm_typing.BAnyVector2, glm_typing.Number], /) -> _NF32V2T: ... +@overload +def mix(x: glm_typing.F32Vector3, y: glm_typing.F32Vector3, a: Union[glm_typing.FDAnyVector3, glm_typing.BAnyVector3, glm_typing.Number], /) -> vec3: ... +@overload +def mix(x: _NF32V3T, y: _NF32V3T, a: Union[glm_typing.FDAnyVector3, glm_typing.BAnyVector3, glm_typing.Number], /) -> _NF32V3T: ... +@overload +def mix(x: glm_typing.F32Vector4, y: glm_typing.F32Vector4, a: Union[glm_typing.FDAnyVector4, glm_typing.BAnyVector4, glm_typing.Number], /) -> vec4: ... +@overload +def mix(x: _NF32V4T, y: _NF32V4T, a: Union[glm_typing.FDAnyVector4, glm_typing.BAnyVector4, glm_typing.Number], /) -> _NF32V4T: ... +@overload +def mix(x: glm_typing.F32Matrix2x2, y: glm_typing.F32Matrix2x2, a: Union[glm_typing.FAnyMatrix2x2, glm_typing.Number], /) -> mat2x2: ... +@overload +def mix(x: _NF32M2X2T, y: _NF32M2X2T, a: Union[glm_typing.FAnyMatrix2x2, glm_typing.Number], /) -> _NF32M2X2T: ... +@overload +def mix(x: glm_typing.F32Matrix2x3, y: glm_typing.F32Matrix2x3, a: Union[glm_typing.FAnyMatrix2x3, glm_typing.Number], /) -> mat2x3: ... +@overload +def mix(x: _NF32M2X3T, y: _NF32M2X3T, a: Union[glm_typing.FAnyMatrix2x3, glm_typing.Number], /) -> _NF32M2X3T: ... +@overload +def mix(x: glm_typing.F32Matrix2x4, y: glm_typing.F32Matrix2x4, a: Union[glm_typing.FAnyMatrix2x4, glm_typing.Number], /) -> mat2x4: ... +@overload +def mix(x: _NF32M2X4T, y: _NF32M2X4T, a: Union[glm_typing.FAnyMatrix2x4, glm_typing.Number], /) -> _NF32M2X4T: ... +@overload +def mix(x: glm_typing.F32Matrix3x2, y: glm_typing.F32Matrix3x2, a: Union[glm_typing.FAnyMatrix3x2, glm_typing.Number], /) -> mat3x2: ... +@overload +def mix(x: _NF32M3X2T, y: _NF32M3X2T, a: Union[glm_typing.FAnyMatrix3x2, glm_typing.Number], /) -> _NF32M3X2T: ... +@overload +def mix(x: glm_typing.F32Matrix3x3, y: glm_typing.F32Matrix3x3, a: Union[glm_typing.FAnyMatrix3x3, glm_typing.Number], /) -> mat3x3: ... +@overload +def mix(x: _NF32M3X3T, y: _NF32M3X3T, a: Union[glm_typing.FAnyMatrix3x3, glm_typing.Number], /) -> _NF32M3X3T: ... +@overload +def mix(x: glm_typing.F32Matrix3x4, y: glm_typing.F32Matrix3x4, a: Union[glm_typing.FAnyMatrix3x4, glm_typing.Number], /) -> mat3x4: ... +@overload +def mix(x: _NF32M3X4T, y: _NF32M3X4T, a: Union[glm_typing.FAnyMatrix3x4, glm_typing.Number], /) -> _NF32M3X4T: ... +@overload +def mix(x: glm_typing.F32Matrix4x2, y: glm_typing.F32Matrix4x2, a: Union[glm_typing.FAnyMatrix4x2, glm_typing.Number], /) -> mat4x2: ... +@overload +def mix(x: _NF32M4X2T, y: _NF32M4X2T, a: Union[glm_typing.FAnyMatrix4x2, glm_typing.Number], /) -> _NF32M4X2T: ... +@overload +def mix(x: glm_typing.F32Matrix4x3, y: glm_typing.F32Matrix4x3, a: Union[glm_typing.FAnyMatrix4x3, glm_typing.Number], /) -> mat4x3: ... +@overload +def mix(x: _NF32M4X3T, y: _NF32M4X3T, a: Union[glm_typing.FAnyMatrix4x3, glm_typing.Number], /) -> _NF32M4X3T: ... +@overload +def mix(x: glm_typing.F32Matrix4x4, y: glm_typing.F32Matrix4x4, a: Union[glm_typing.FAnyMatrix4x4, glm_typing.Number], /) -> mat4x4: ... +@overload +def mix(x: _NF32M4X4T, y: _NF32M4X4T, a: Union[glm_typing.FAnyMatrix4x4, glm_typing.Number], /) -> _NF32M4X4T: ... +@overload +def mix(x: _QT, y: _QT, a: glm_typing.Number, /) -> _QT: ... + +@overload +def modf(x: glm_typing.Number, /) -> Tuple[float, float]: ... +@overload +def modf(x: Tuple[glm_typing.Number], /) -> vec1: ... +@overload +def modf(x: Tuple[glm_typing.Number, glm_typing.Number], /) -> vec2: ... +@overload +def modf(x: Tuple[glm_typing.Number, glm_typing.Number, glm_typing.Number], /) -> vec3: ... +@overload +def modf(x: Tuple[glm_typing.Number, glm_typing.Number, glm_typing.Number, glm_typing.Number], /) -> vec4: ... +@overload +def modf(x: _FDVT, i: _FDVT, /) -> _FDVT: ... + +@overload +def round(x: glm_typing.Number, /) -> float: ... +@overload +def round(x: Tuple[glm_typing.Number], /) -> vec1: ... +@overload +def round(x: Tuple[glm_typing.Number, glm_typing.Number], /) -> vec2: ... +@overload +def round(x: Tuple[glm_typing.Number, glm_typing.Number, glm_typing.Number], /) -> vec3: ... +@overload +def round(x: Tuple[glm_typing.Number, glm_typing.Number, glm_typing.Number, glm_typing.Number], /) -> vec4: ... +@overload +def round(x: _FDVT, i: _FDVT, /) -> _FDVT: ... + +@overload +def roundEven(x: glm_typing.Number, /) -> float: ... +@overload +def roundEven(x: Tuple[glm_typing.Number], /) -> vec1: ... +@overload +def roundEven(x: Tuple[glm_typing.Number, glm_typing.Number], /) -> vec2: ... +@overload +def roundEven(x: Tuple[glm_typing.Number, glm_typing.Number, glm_typing.Number], /) -> vec3: ... +@overload +def roundEven(x: Tuple[glm_typing.Number, glm_typing.Number, glm_typing.Number, glm_typing.Number], /) -> vec4: ... +@overload +def roundEven(x: _FDVT, i: _FDVT, /) -> _FDVT: ... + +@overload +def sign(x: glm_typing.Number, /) -> float: ... +@overload +def sign(x: Tuple[glm_typing.Number], /) -> vec1: ... +@overload +def sign(x: Tuple[glm_typing.Number, glm_typing.Number], /) -> vec2: ... +@overload +def sign(x: Tuple[glm_typing.Number, glm_typing.Number, glm_typing.Number], /) -> vec3: ... +@overload +def sign(x: Tuple[glm_typing.Number, glm_typing.Number, glm_typing.Number, glm_typing.Number], /) -> vec4: ... +@overload +def sign(x: _FDVT, i: _FDVT, /) -> _FDVT: ... + +@overload +def smoothstep(edge0: glm_typing.Number, edge1: glm_typing.Number, x: glm_typing.Number, /) -> float: ... +@overload +def smoothstep(edge0: glm_typing.Number, edge1: glm_typing.Number, x: glm_typing.F32Vector1, /) -> vec1: ... +@overload +def smoothstep(edge0: glm_typing.F32Vector1, edge1: glm_typing.F32Vector1, x: glm_typing.F32Vector1, /) -> vec1: ... +@overload +def smoothstep(edge0: glm_typing.Number, edge1: glm_typing.Number, x: glm_typing.F32Vector2, /) -> vec2: ... +@overload +def smoothstep(edge0: glm_typing.F32Vector2, edge1: glm_typing.F32Vector2, x: glm_typing.F32Vector2, /) -> vec2: ... +@overload +def smoothstep(edge0: glm_typing.Number, edge1: glm_typing.Number, x: glm_typing.F32Vector3, /) -> vec3: ... +@overload +def smoothstep(edge0: glm_typing.F32Vector3, edge1: glm_typing.F32Vector3, x: glm_typing.F32Vector3, /) -> vec3: ... +@overload +def smoothstep(edge0: glm_typing.Number, edge1: glm_typing.Number, x: glm_typing.F32Vector4, /) -> vec4: ... +@overload +def smoothstep(edge0: glm_typing.F32Vector4, edge1: glm_typing.F32Vector4, x: glm_typing.F32Vector4, /) -> vec4: ... +@overload +def smoothstep(edge0: glm_typing.Number, edge1: glm_typing.Number, x: _NF32VT, /) -> _FDVT: ... +@overload +def smoothstep(edge0: _NF32VT, edge1: _NF32VT, x: _NF32VT, /) -> _NF32VT: ... + +@overload +def step(edge: glm_typing.Number, x: glm_typing.Number, /) -> float: ... +@overload +def step(edge: glm_typing.Number, x: glm_typing.F32Vector1, /) -> vec1: ... +@overload +def step(edge: glm_typing.F32Vector1, x: glm_typing.F32Vector1, /) -> vec1: ... +@overload +def step(edge: glm_typing.Number, x: glm_typing.F32Vector2, /) -> vec2: ... +@overload +def step(edge: glm_typing.F32Vector2, x: glm_typing.F32Vector2, /) -> vec2: ... +@overload +def step(edge: glm_typing.Number, x: glm_typing.F32Vector3, /) -> vec3: ... +@overload +def step(edge: glm_typing.F32Vector3, x: glm_typing.F32Vector3, /) -> vec3: ... +@overload +def step(edge: glm_typing.Number, x: glm_typing.F32Vector4, /) -> vec4: ... +@overload +def step(edge: glm_typing.F32Vector4, x: glm_typing.F32Vector4, /) -> vec4: ... +@overload +def step(edge: glm_typing.Number, x: _NF32VT, /) -> _NF32VT: ... +@overload +def step(edge: _NF32VT, x: _NF32VT, /) -> _NF32VT: ... + +@overload +def trunc(x: glm_typing.Number, /) -> float: ... +@overload +def trunc(x: Tuple[glm_typing.Number], /) -> vec1: ... +@overload +def trunc(x: Tuple[glm_typing.Number, glm_typing.Number], /) -> vec2: ... +@overload +def trunc(x: Tuple[glm_typing.Number, glm_typing.Number, glm_typing.Number], /) -> vec3: ... +@overload +def trunc(x: Tuple[glm_typing.Number, glm_typing.Number, glm_typing.Number, glm_typing.Number], /) -> vec4: ... +@overload +def trunc(x: _FDVT, /) -> _FDVT: ... + +@overload +def uintBitsToFloat(x: int, /) -> float: ... +@overload +def uintBitsToFloat(x: glm_typing.U32Vector2, /) -> vec2: ... +@overload +def uintBitsToFloat(x: glm_typing.U32Vector3, /) -> vec3: ... +@overload +def uintBitsToFloat(x: glm_typing.U32Vector4, /) -> vec4: ... +@overload +def uintBitsToFloat(x: glm_typing.U32Vector1, /) -> vec1: ... + + +@overload +def exp(x: glm_typing.Number, /) -> float: ... +@overload +def exp(x: Tuple[glm_typing.Number], /) -> vec1: ... +@overload +def exp(x: Tuple[glm_typing.Number, glm_typing.Number], /) -> vec2: ... +@overload +def exp(x: Tuple[glm_typing.Number, glm_typing.Number, glm_typing.Number], /) -> vec3: ... +@overload +def exp(x: Tuple[glm_typing.Number, glm_typing.Number, glm_typing.Number, glm_typing.Number], /) -> vec4: ... +@overload +def exp(x: _FDVT, /) -> _FDVT: ... +@overload +def exp(x: _QT, /) -> _QT: ... + +@overload +def exp2(x: glm_typing.Number, /) -> float: ... +@overload +def exp2(x: Tuple[glm_typing.Number], /) -> vec1: ... +@overload +def exp2(x: Tuple[glm_typing.Number, glm_typing.Number], /) -> vec2: ... +@overload +def exp2(x: Tuple[glm_typing.Number, glm_typing.Number, glm_typing.Number], /) -> vec3: ... +@overload +def exp2(x: Tuple[glm_typing.Number, glm_typing.Number, glm_typing.Number, glm_typing.Number], /) -> vec4: ... +@overload +def exp2(x: _FDVT, /) -> _FDVT: ... + +@overload +def inversesqrt(x: glm_typing.Number, /) -> float: ... +@overload +def inversesqrt(x: Tuple[glm_typing.Number], /) -> vec1: ... +@overload +def inversesqrt(x: Tuple[glm_typing.Number, glm_typing.Number], /) -> vec2: ... +@overload +def inversesqrt(x: Tuple[glm_typing.Number, glm_typing.Number, glm_typing.Number], /) -> vec3: ... +@overload +def inversesqrt(x: Tuple[glm_typing.Number, glm_typing.Number, glm_typing.Number, glm_typing.Number], /) -> vec4: ... +@overload +def inversesqrt(x: _FDVT, /) -> _FDVT: ... + +@overload +def log(x: glm_typing.Number, /) -> float: ... +@overload +def log(x: Tuple[glm_typing.Number], /) -> vec1: ... +@overload +def log(x: Tuple[glm_typing.Number, glm_typing.Number], /) -> vec2: ... +@overload +def log(x: Tuple[glm_typing.Number, glm_typing.Number, glm_typing.Number], /) -> vec3: ... +@overload +def log(x: Tuple[glm_typing.Number, glm_typing.Number, glm_typing.Number, glm_typing.Number], /) -> vec4: ... +@overload +def log(x: _FDVT, /) -> _FDVT: ... +@overload +def log(x: _QT, /) -> _QT: ... + +@overload +def log2(x: glm_typing.Number, /) -> float: ... +@overload +def log2(x: Tuple[glm_typing.Number], /) -> vec1: ... +@overload +def log2(x: Tuple[glm_typing.Number, glm_typing.Number], /) -> vec2: ... +@overload +def log2(x: Tuple[glm_typing.Number, glm_typing.Number, glm_typing.Number], /) -> vec3: ... +@overload +def log2(x: Tuple[glm_typing.Number, glm_typing.Number, glm_typing.Number, glm_typing.Number], /) -> vec4: ... +@overload +def log2(x: _FDVT, /) -> _FDVT: ... + +@overload +def pow(base: glm_typing.Number, exponent: glm_typing.Number, /) -> float: ... +@overload +def pow(base: glm_typing.F32Vector1, exponent: glm_typing.F32Vector1, /) -> vec1: ... +@overload +def pow(base: glm_typing.F32Vector2, exponent: glm_typing.F32Vector2, /) -> vec2: ... +@overload +def pow(base: glm_typing.F32Vector3, exponent: glm_typing.F32Vector3, /) -> vec3: ... +@overload +def pow(base: glm_typing.F32Vector4, exponent: glm_typing.F32Vector4, /) -> vec4: ... +@overload +def pow(base: _NF32DFVT, exponent: _NF32DFVT, /) -> _NF32DFVT: ... +@overload +def pow(base: _QT, exponent: _QT, /) -> _QT: ... + +@overload +def sqrt(x: glm_typing.Number, /) -> float: ... +@overload +def sqrt(x: Tuple[glm_typing.Number], /) -> vec1: ... +@overload +def sqrt(x: Tuple[glm_typing.Number, glm_typing.Number], /) -> vec2: ... +@overload +def sqrt(x: Tuple[glm_typing.Number, glm_typing.Number, glm_typing.Number], /) -> vec3: ... +@overload +def sqrt(x: Tuple[glm_typing.Number, glm_typing.Number, glm_typing.Number, glm_typing.Number], /) -> vec4: ... +@overload +def sqrt(x: _FDVT, /) -> _FDVT: ... +@overload +def sqrt(x: _QT, /) -> _QT: ... + + +@overload +def cross(x: glm_typing.F32Vector3, y: glm_typing.F32Vector3, /) -> vec3: ... +@overload +def cross(x: _NF32DFV3T, y: _NF32DFV3T, /) -> _NF32DFV3T: ... +@overload +def cross(x: _QT, y: _QT, /) -> _QT: ... + +@overload +def distance(p0: glm_typing.Number, p1: glm_typing.Number, /) -> float: ... +@overload +def distance(p0: glm_typing.F32Vector1, p1: glm_typing.F32Vector1, /) -> float: ... +@overload +def distance(p0: glm_typing.F32Vector2, p1: glm_typing.F32Vector2, /) -> float: ... +@overload +def distance(p0: glm_typing.F32Vector3, p1: glm_typing.F32Vector3, /) -> float: ... +@overload +def distance(p0: glm_typing.F32Vector4, p1: glm_typing.F32Vector4, /) -> float: ... +@overload +def distance(p0: _NF32DFVT, p1: _NF32DFVT, /) -> float: ... + +@overload +def dot(x: glm_typing.Number, y: glm_typing.Number, /) -> float: ... +@overload +def dot(x: glm_typing.F32Vector1, y: glm_typing.F32Vector1, /) -> float: ... +@overload +def dot(x: glm_typing.F32Vector2, y: glm_typing.F32Vector2, /) -> float: ... +@overload +def dot(x: glm_typing.F32Vector3, y: glm_typing.F32Vector3, /) -> float: ... +@overload +def dot(x: glm_typing.F32Vector4, y: glm_typing.F32Vector4, /) -> float: ... +@overload +def dot(x: _NF32DFVT, y: _NF32DFVT, /) -> float: ... +@overload +def dot(x: _QT, y: _QT, /) -> float: ... + +@overload +def faceforward(N: glm_typing.Number, I: glm_typing.Number, Nref: float, /) -> float: ... +@overload +def faceforward(x: glm_typing.F32Vector1, I: glm_typing.F32Vector1, Nref: glm_typing.F32Vector1, /) -> float: ... +@overload +def faceforward(x: glm_typing.F32Vector2, I: glm_typing.F32Vector2, Nref: glm_typing.F32Vector2, /) -> float: ... +@overload +def faceforward(x: glm_typing.F32Vector3, I: glm_typing.F32Vector3, Nref: glm_typing.F32Vector3, /) -> float: ... +@overload +def faceforward(x: glm_typing.F32Vector4, I: glm_typing.F32Vector4, Nref: glm_typing.F32Vector4, /) -> float: ... +@overload +def faceforward(N: _NF32DFVT, I: _NF32DFVT, Nref: _NF32DFVT, /) -> _NF32DFVT: ... + +def length(x: Union[glm_typing.Number, glm_typing.FDAnyVectorAny, glm_typing.FDAnyQuaternion], /) -> float: ... + +@overload +def normalize(x: Tuple[glm_typing.Number], /) -> vec1: ... +@overload +def normalize(x: Tuple[glm_typing.Number, glm_typing.Number], /) -> vec2: ... +@overload +def normalize(x: Tuple[glm_typing.Number, glm_typing.Number, glm_typing.Number], /) -> vec3: ... +@overload +def normalize(x: Tuple[glm_typing.Number, glm_typing.Number, glm_typing.Number, glm_typing.Number], /) -> vec4: ... +@overload +def normalize(x: _FDVT, /) -> _FDVT: ... +@overload +def normalize(x: _QT, /) -> _QT: ... + +@overload +def reflect(I: glm_typing.Number, N: glm_typing.Number, /) -> float: ... +@overload +def reflect(I: glm_typing.F32Vector1, N: glm_typing.F32Vector1, /) -> vec1: ... +@overload +def reflect(I: glm_typing.F32Vector2, N: glm_typing.F32Vector2, /) -> vec2: ... +@overload +def reflect(I: glm_typing.F32Vector3, N: glm_typing.F32Vector3, /) -> vec3: ... +@overload +def reflect(I: glm_typing.F32Vector4, N: glm_typing.F32Vector4, /) -> vec4: ... +@overload +def reflect(I: _NF32DFVT, N: _NF32DFVT, /) -> _NF32DFVT: ... + +@overload +def refract(I: glm_typing.Number, N: glm_typing.Number, eta: float, /) -> float: ... +@overload +def refract(I: glm_typing.F32Vector1, N: glm_typing.F32Vector1, eta: float, /) -> vec1: ... +@overload +def refract(I: glm_typing.F32Vector2, N: glm_typing.F32Vector2, eta: float, /) -> vec2: ... +@overload +def refract(I: glm_typing.F32Vector3, N: glm_typing.F32Vector3, eta: float, /) -> vec3: ... +@overload +def refract(I: glm_typing.F32Vector4, N: glm_typing.F32Vector4, eta: float, /) -> vec4: ... +@overload +def refract(I: _NF32DFVT, N: _NF32DFVT, eta: float, /) -> _NF32DFVT: ... + + +@overload +def bitCount(v: int, /) -> int: ... +@overload +def bitCount(v: glm_typing.IUAnyVector1, /) -> ivec1: ... +@overload +def bitCount(v: glm_typing.IUAnyVector2, /) -> ivec2: ... +@overload +def bitCount(v: glm_typing.IUAnyVector3, /) -> ivec3: ... +@overload +def bitCount(v: glm_typing.IUAnyVector4, /) -> ivec4: ... + +@overload +def bitfieldExtract(value: int, offset: int, bits: int, /) -> int: ... +@overload +def bitfieldExtract(v: glm_typing.I32Vector1, offset: int, bits: int, /) -> ivec1: ... +@overload +def bitfieldExtract(v: glm_typing.I32Vector2, offset: int, bits: int, /) -> ivec2: ... +@overload +def bitfieldExtract(v: glm_typing.I32Vector3, offset: int, bits: int, /) -> ivec3: ... +@overload +def bitfieldExtract(v: glm_typing.I32Vector4, offset: int, bits: int, /) -> ivec4: ... +@overload +def bitfieldExtract(value: _NI32IUVT, offset: int, bits: int, /) -> _NI32IUVT: ... + +@overload +def bitfieldInsert(base: int, insert: int, offset: int, bits: int, /) -> int: ... +@overload +def bitfieldInsert(base: glm_typing.I32Vector1, insert: glm_typing.I32Vector1, offset: int, bits: int, /) -> ivec1: ... +@overload +def bitfieldInsert(base: glm_typing.I32Vector2, insert: glm_typing.I32Vector2, offset: int, bits: int, /) -> ivec2: ... +@overload +def bitfieldInsert(base: glm_typing.I32Vector3, insert: glm_typing.I32Vector3, offset: int, bits: int, /) -> ivec3: ... +@overload +def bitfieldInsert(base: glm_typing.I32Vector4, insert: glm_typing.I32Vector4, offset: int, bits: int, /) -> ivec4: ... +@overload +def bitfieldInsert(base: _NI32IUVT, insert: _NI32IUVT, offset: int, bits: int, /) -> _NI32IUVT: ... + +@overload +def bitfieldReverse(value: int, /) -> int: ... +@overload +def bitfieldReverse(value: glm_typing.I32Vector1, /) -> ivec1: ... +@overload +def bitfieldReverse(value: glm_typing.I32Vector2, /) -> ivec2: ... +@overload +def bitfieldReverse(value: glm_typing.I32Vector3, /) -> ivec3: ... +@overload +def bitfieldReverse(value: glm_typing.I32Vector4, /) -> ivec4: ... +@overload +def bitfieldReverse(value: _NI32IUVT, /) -> _NI32IUVT: ... + +@overload +def findLSB(value: int, /) -> int: ... +@overload +def findLSB(value: glm_typing.I32Vector1, /) -> ivec1: ... +@overload +def findLSB(value: glm_typing.I32Vector2, /) -> ivec2: ... +@overload +def findLSB(value: glm_typing.I32Vector3, /) -> ivec3: ... +@overload +def findLSB(value: glm_typing.I32Vector4, /) -> ivec4: ... +@overload +def findLSB(value: _NI32IUVT, /) -> _NI32IUVT: ... + +@overload +def findMSB(value: int, /) -> int: ... +@overload +def findMSB(value: glm_typing.I32Vector1, /) -> ivec1: ... +@overload +def findMSB(value: glm_typing.I32Vector2, /) -> ivec2: ... +@overload +def findMSB(value: glm_typing.I32Vector3, /) -> ivec3: ... +@overload +def findMSB(value: glm_typing.I32Vector4, /) -> ivec4: ... +@overload +def findMSB(value: _NI32IUVT, /) -> _NI32IUVT: ... + +def imulExtended(x: _IVT, y: _IVT, msb: _IVT, lsb: _IVT, /) -> None: ... + +def uaddCarry(x: _UVT, y: _UVT, carry: _UVT, /) -> _UVT: ... + +def umulExtended(x: _UVT, y: _UVT, msb: _UVT, lsb: _UVT, /) -> None: ... + +def usubBorrow(x: _UVT, y: _UVT, borrow: _UVT, /) -> _UVT: ... + + +def determinant(m: glm_typing.AnyAnyMatrixSquare, /) -> float: ... + +@overload +def inverse(m: glm_typing.F32Matrix2x2, /) -> mat2x2: ... +@overload +def inverse(m: glm_typing.F32Matrix3x3, /) -> mat3x3: ... +@overload +def inverse(m: glm_typing.F32Matrix4x4, /) -> mat4x4: ... +@overload +def inverse(m: _NF32FDMSQRT, /) -> _NF32FDMSQRT: ... +@overload +def inverse(q: _QT, /) -> _QT: ... + +@overload +def matrixCompMult(x: glm_typing.F32Matrix2x2, y: glm_typing.F32Matrix2x2, /) -> mat2x2: ... +@overload +def matrixCompMult(x: glm_typing.F32Matrix3x3, y: glm_typing.F32Matrix3x3, /) -> mat3x3: ... +@overload +def matrixCompMult(x: glm_typing.F32Matrix4x4, y: glm_typing.F32Matrix4x4, /) -> mat4x4: ... +@overload +def matrixCompMult(x: _NF32FDMSQRT, y: _NF32FDMSQRT, /) -> _NF32FDMSQRT: ... + +@overload +def outerProduct(c: glm_typing.F32Vector2, r: glm_typing.F32Vector2, /) -> mat2x2: ... +@overload +def outerProduct(c: dvec2, r: dvec2, /) -> mat2x2: ... +@overload +def outerProduct(c: glm_typing.F32Vector2, r: glm_typing.F32Vector3, /) -> mat3x2: ... +@overload +def outerProduct(c: dvec2, r: dvec3, /) -> mat3x2: ... +@overload +def outerProduct(c: glm_typing.F32Vector2, r: glm_typing.F32Vector4, /) -> mat4x2: ... +@overload +def outerProduct(c: dvec2, r: dvec4, /) -> mat4x2: ... +@overload +def outerProduct(c: glm_typing.F32Vector3, r: glm_typing.F32Vector2, /) -> mat2x3: ... +@overload +def outerProduct(c: dvec3, r: dvec2, /) -> mat2x3: ... +@overload +def outerProduct(c: glm_typing.F32Vector3, r: glm_typing.F32Vector3, /) -> mat3x3: ... +@overload +def outerProduct(c: dvec3, r: dvec3, /) -> mat3x3: ... +@overload +def outerProduct(c: glm_typing.F32Vector3, r: glm_typing.F32Vector4, /) -> mat4x3: ... +@overload +def outerProduct(c: dvec3, r: dvec4, /) -> mat4x3: ... +@overload +def outerProduct(c: glm_typing.F32Vector4, r: glm_typing.F32Vector2, /) -> mat2x4: ... +@overload +def outerProduct(c: dvec4, r: dvec2, /) -> mat2x4: ... +@overload +def outerProduct(c: glm_typing.F32Vector4, r: glm_typing.F32Vector3, /) -> mat3x4: ... +@overload +def outerProduct(c: dvec4, r: dvec3, /) -> mat3x4: ... +@overload +def outerProduct(c: glm_typing.F32Vector4, r: glm_typing.F32Vector4, /) -> mat4x4: ... +@overload +def outerProduct(c: dvec4, r: dvec4, /) -> mat4x4: ... + +@overload +def transpose(x: glm_typing.F32Matrix2x2, /) -> fmat2x2: ... +@overload +def transpose(x: glm_typing.F32Matrix2x3, /) -> fmat3x2: ... +@overload +def transpose(x: glm_typing.F32Matrix2x4, /) -> fmat4x2: ... +@overload +def transpose(x: glm_typing.F32Matrix3x2, /) -> fmat2x3: ... +@overload +def transpose(x: glm_typing.F32Matrix3x3, /) -> fmat3x3: ... +@overload +def transpose(x: glm_typing.F32Matrix3x4, /) -> fmat4x3: ... +@overload +def transpose(x: glm_typing.F32Matrix4x2, /) -> fmat2x4: ... +@overload +def transpose(x: glm_typing.F32Matrix4x3, /) -> fmat3x4: ... +@overload +def transpose(x: glm_typing.F32Matrix4x4, /) -> fmat4x4: ... +@overload +def transpose(x: dmat2x2, /) -> dmat2x2: ... +@overload +def transpose(x: dmat2x3, /) -> dmat3x2: ... +@overload +def transpose(x: dmat2x4, /) -> dmat4x2: ... +@overload +def transpose(x: dmat3x2, /) -> dmat2x3: ... +@overload +def transpose(x: dmat3x3, /) -> dmat3x3: ... +@overload +def transpose(x: dmat3x4, /) -> dmat4x3: ... +@overload +def transpose(x: dmat4x2, /) -> dmat2x4: ... +@overload +def transpose(x: dmat4x3, /) -> dmat3x4: ... +@overload +def transpose(x: dmat4x4, /) -> dmat4x4: ... +@overload +def transpose(x: imat2x2, /) -> imat2x2: ... +@overload +def transpose(x: imat2x3, /) -> imat3x2: ... +@overload +def transpose(x: imat2x4, /) -> imat4x2: ... +@overload +def transpose(x: imat3x2, /) -> imat2x3: ... +@overload +def transpose(x: imat3x3, /) -> imat3x3: ... +@overload +def transpose(x: imat3x4, /) -> imat4x3: ... +@overload +def transpose(x: imat4x2, /) -> imat2x4: ... +@overload +def transpose(x: imat4x3, /) -> imat3x4: ... +@overload +def transpose(x: imat4x4, /) -> imat4x4: ... +@overload +def transpose(x: umat2x2, /) -> umat2x2: ... +@overload +def transpose(x: umat2x3, /) -> umat3x2: ... +@overload +def transpose(x: umat2x4, /) -> umat4x2: ... +@overload +def transpose(x: umat3x2, /) -> umat2x3: ... +@overload +def transpose(x: umat3x3, /) -> umat3x3: ... +@overload +def transpose(x: umat3x4, /) -> umat4x3: ... +@overload +def transpose(x: umat4x2, /) -> umat2x4: ... +@overload +def transpose(x: umat4x3, /) -> umat3x4: ... +@overload +def transpose(x: umat4x4, /) -> umat4x4: ... + + +def packDouble2x32(v: glm_typing.U32Vector2, /) -> float: ... + +def packHalf2x16(v: glm_typing.F32Vector2, /) -> int: ... + +def packSnorm2x16(v: glm_typing.F32Vector2, /) -> int: ... + +def packSnorm4x8(v: glm_typing.F32Vector4, /) -> int: ... + +def packUnorm2x16(v: glm_typing.F32Vector2, /) -> int: ... + +def packUnorm4x8(v: glm_typing.F32Vector4, /) -> int: ... + +def unpackDouble2x32(v: float, /) -> uvec2: ... + +def unpackHalf2x16(v: int, /) -> vec2: ... + +def unpackSnorm2x16(p: int, /) -> vec2: ... + +def unpackSnorm4x8(p: int, /) -> vec4: ... + +def unpackUnorm2x16(p: int, /) -> vec2: ... + +def unpackUnorm4x8(p: int, /) -> vec4: ... + + +@overload +def acos(x: glm_typing.Number, /) -> float: ... +@overload +def acos(x: glm_typing.F32Vector1, /) -> vec1: ... +@overload +def acos(x: glm_typing.F32Vector2, /) -> vec2: ... +@overload +def acos(x: glm_typing.F32Vector3, /) -> vec3: ... +@overload +def acos(x: glm_typing.F32Vector4, /) -> vec4: ... +@overload +def acos(x: _NF32DFVT, /) -> _NF32DFVT: ... + +@overload +def acosh(x: glm_typing.Number, /) -> float: ... +@overload +def acosh(x: glm_typing.F32Vector1, /) -> vec1: ... +@overload +def acosh(x: glm_typing.F32Vector2, /) -> vec2: ... +@overload +def acosh(x: glm_typing.F32Vector3, /) -> vec3: ... +@overload +def acosh(x: glm_typing.F32Vector4, /) -> vec4: ... +@overload +def acosh(x: _NF32DFVT, /) -> _NF32DFVT: ... + +@overload +def asin(x: glm_typing.Number, /) -> float: ... +@overload +def asin(x: glm_typing.F32Vector1, /) -> vec1: ... +@overload +def asin(x: glm_typing.F32Vector2, /) -> vec2: ... +@overload +def asin(x: glm_typing.F32Vector3, /) -> vec3: ... +@overload +def asin(x: glm_typing.F32Vector4, /) -> vec4: ... +@overload +def asin(x: _NF32DFVT, /) -> _NF32DFVT: ... + +@overload +def asinh(x: glm_typing.Number, /) -> float: ... +@overload +def asinh(x: glm_typing.F32Vector1, /) -> vec1: ... +@overload +def asinh(x: glm_typing.F32Vector2, /) -> vec2: ... +@overload +def asinh(x: glm_typing.F32Vector3, /) -> vec3: ... +@overload +def asinh(x: glm_typing.F32Vector4, /) -> vec4: ... +@overload +def asinh(x: _NF32DFVT, /) -> _NF32DFVT: ... + +@overload +def atan(y_over_x: glm_typing.Number, /) -> float: ... +@overload +def atan(y_over_x: glm_typing.F32Vector1, /) -> vec1: ... +@overload +def atan(y_over_x: glm_typing.F32Vector2, /) -> vec2: ... +@overload +def atan(y_over_x: glm_typing.F32Vector3, /) -> vec3: ... +@overload +def atan(y_over_x: glm_typing.F32Vector4, /) -> vec4: ... +@overload +def atan(y_over_x: _NF32DFVT, /) -> _NF32DFVT: ... +@overload +def atan(y: glm_typing.Number, x: glm_typing.Number, /) -> float: ... +@overload +def atan(y: glm_typing.F32Vector1, x: glm_typing.F32Vector1, /) -> vec1: ... +@overload +def atan(y: glm_typing.F32Vector2, x: glm_typing.F32Vector2, /) -> vec2: ... +@overload +def atan(y: glm_typing.F32Vector3, x: glm_typing.F32Vector3, /) -> vec3: ... +@overload +def atan(y: glm_typing.F32Vector4, x: glm_typing.F32Vector4, /) -> vec4: ... +@overload +def atan(y: _NF32DFVT, x: _NF32DFVT, /) -> _NF32DFVT: ... + +@overload +def atanh(x: glm_typing.Number, /) -> float: ... +@overload +def atanh(x: glm_typing.F32Vector1, /) -> vec1: ... +@overload +def atanh(x: glm_typing.F32Vector2, /) -> vec2: ... +@overload +def atanh(x: glm_typing.F32Vector3, /) -> vec3: ... +@overload +def atanh(x: glm_typing.F32Vector4, /) -> vec4: ... +@overload +def atanh(x: _NF32DFVT, /) -> _NF32DFVT: ... + +@overload +def cos(x: glm_typing.Number, /) -> float: ... +@overload +def cos(x: glm_typing.F32Vector1, /) -> vec1: ... +@overload +def cos(x: glm_typing.F32Vector2, /) -> vec2: ... +@overload +def cos(x: glm_typing.F32Vector3, /) -> vec3: ... +@overload +def cos(x: glm_typing.F32Vector4, /) -> vec4: ... +@overload +def cos(x: _NF32DFVT, /) -> _NF32DFVT: ... + +@overload +def cosh(x: glm_typing.Number, /) -> float: ... +@overload +def cosh(x: glm_typing.F32Vector1, /) -> vec1: ... +@overload +def cosh(x: glm_typing.F32Vector2, /) -> vec2: ... +@overload +def cosh(x: glm_typing.F32Vector3, /) -> vec3: ... +@overload +def cosh(x: glm_typing.F32Vector4, /) -> vec4: ... +@overload +def cosh(x: _NF32DFVT, /) -> _NF32DFVT: ... + +@overload +def degrees(x: glm_typing.Number, /) -> float: ... +@overload +def degrees(x: glm_typing.F32Vector1, /) -> vec1: ... +@overload +def degrees(x: glm_typing.F32Vector2, /) -> vec2: ... +@overload +def degrees(x: glm_typing.F32Vector3, /) -> vec3: ... +@overload +def degrees(x: glm_typing.F32Vector4, /) -> vec4: ... +@overload +def degrees(x: _NF32DFVT, /) -> _NF32DFVT: ... + +@overload +def radians(x: glm_typing.Number, /) -> float: ... +@overload +def radians(x: glm_typing.F32Vector1, /) -> vec1: ... +@overload +def radians(x: glm_typing.F32Vector2, /) -> vec2: ... +@overload +def radians(x: glm_typing.F32Vector3, /) -> vec3: ... +@overload +def radians(x: glm_typing.F32Vector4, /) -> vec4: ... +@overload +def radians(x: _NF32DFVT, /) -> _NF32DFVT: ... + +@overload +def sin(x: glm_typing.Number, /) -> float: ... +@overload +def sin(x: glm_typing.F32Vector1, /) -> vec1: ... +@overload +def sin(x: glm_typing.F32Vector2, /) -> vec2: ... +@overload +def sin(x: glm_typing.F32Vector3, /) -> vec3: ... +@overload +def sin(x: glm_typing.F32Vector4, /) -> vec4: ... +@overload +def sin(x: _NF32DFVT, /) -> _NF32DFVT: ... + +@overload +def sinh(x: glm_typing.Number, /) -> float: ... +@overload +def sinh(x: glm_typing.F32Vector1, /) -> vec1: ... +@overload +def sinh(x: glm_typing.F32Vector2, /) -> vec2: ... +@overload +def sinh(x: glm_typing.F32Vector3, /) -> vec3: ... +@overload +def sinh(x: glm_typing.F32Vector4, /) -> vec4: ... +@overload +def sinh(x: _NF32DFVT, /) -> _NF32DFVT: ... + +@overload +def tan(x: glm_typing.Number, /) -> float: ... +@overload +def tan(x: glm_typing.F32Vector1, /) -> vec1: ... +@overload +def tan(x: glm_typing.F32Vector2, /) -> vec2: ... +@overload +def tan(x: glm_typing.F32Vector3, /) -> vec3: ... +@overload +def tan(x: glm_typing.F32Vector4, /) -> vec4: ... +@overload +def tan(x: _NF32DFVT, /) -> _NF32DFVT: ... + +@overload +def tanh(x: glm_typing.Number, /) -> float: ... +@overload +def tanh(x: glm_typing.F32Vector1, /) -> vec1: ... +@overload +def tanh(x: glm_typing.F32Vector2, /) -> vec2: ... +@overload +def tanh(x: glm_typing.F32Vector3, /) -> vec3: ... +@overload +def tanh(x: glm_typing.F32Vector4, /) -> vec4: ... +@overload +def tanh(x: _NF32DFVT, /) -> _NF32DFVT: ... + + + +def all(v: glm_typing.BAnyVectorAny, /) -> bool: ... + +def any(v: glm_typing.BAnyVectorAny, /) -> bool: ... + +@overload +def equal(x: glm_typing.Number, y: glm_typing.Number, ULPs: int, /) -> int: ... +@overload +def equal(x: glm_typing.F32Vector1, y: glm_typing.F32Vector1, /) -> bvec1: ... +@overload +def equal(x: _NF32V1T, y: _NF32V1T, /) -> bvec1: ... +@overload +def equal(x: glm_typing.F32Vector1, y: glm_typing.F32Vector1, ULPs_epsilon: Union[glm_typing.Number, ivec1, glm_typing.F32Vector1], /) -> bvec1: ... +@overload +def equal(x: _NF32V1T, y: _NF32V1T, ULPs_epsilon: Union[glm_typing.Number, ivec1, glm_typing.F32Vector1], /) -> bvec1: ... +@overload +def equal(x: glm_typing.F32Vector2, y: glm_typing.F32Vector2, /) -> bvec2: ... +@overload +def equal(x: _NF32V2T, y: _NF32V2T, /) -> bvec2: ... +@overload +def equal(x: glm_typing.F32Vector2, y: glm_typing.F32Vector2, ULPs_epsilon: Union[glm_typing.Number, ivec2, glm_typing.F32Vector2], /) -> bvec2: ... +@overload +def equal(x: _NF32V2T, y: _NF32V2T, ULPs_epsilon: Union[glm_typing.Number, ivec2, glm_typing.F32Vector2], /) -> bvec2: ... +@overload +def equal(x: glm_typing.F32Vector3, y: glm_typing.F32Vector3, /) -> bvec3: ... +@overload +def equal(x: _NF32V3T, y: _NF32V3T, /) -> bvec3: ... +@overload +def equal(x: glm_typing.F32Vector3, y: glm_typing.F32Vector3, ULPs_epsilon: Union[glm_typing.Number, ivec3, glm_typing.F32Vector3], /) -> bvec3: ... +@overload +def equal(x: _NF32V3T, y: _NF32V3T, ULPs_epsilon: Union[glm_typing.Number, ivec3, glm_typing.F32Vector3], /) -> bvec3: ... +@overload +def equal(x: glm_typing.F32Vector4, y: glm_typing.F32Vector4, /) -> bvec4: ... +@overload +def equal(x: _NF32V4T, y: _NF32V4T, /) -> bvec4: ... +@overload +def equal(x: glm_typing.F32Vector4, y: glm_typing.F32Vector4, ULPs_epsilon: Union[glm_typing.Number, ivec4, glm_typing.F32Vector4], /) -> bvec4: ... +@overload +def equal(x: _NF32V4T, y: _NF32V4T, ULPs_epsilon: Union[glm_typing.Number, ivec4, glm_typing.F32Vector4], /) -> bvec4: ... +@overload +def equal(x: glm_typing.F32Matrix2xAny, y: glm_typing.F32Matrix2xAny, /) -> bvec2: ... +@overload +def equal(x: _NF32M2XNT, y: _NF32M2XNT, /) -> bvec2: ... +@overload +def equal(x: glm_typing.F32Matrix2xAny, y: glm_typing.F32Matrix2xAny, ULPs_epsilon: Union[glm_typing.Number, ivec2, glm_typing.F32Vector2], /) -> bvec2: ... +@overload +def equal(x: _NF32M2XNT, y: _NF32M2XNT, ULPs_epsilon: Union[glm_typing.Number, ivec2, glm_typing.F32Vector2], /) -> bvec2: ... +@overload +def equal(x: glm_typing.F32Matrix3xAny, y: glm_typing.F32Matrix3xAny, /) -> bvec3: ... +@overload +def equal(x: _NF32M3XNT, y: _NF32M3XNT, /) -> bvec3: ... +@overload +def equal(x: glm_typing.F32Matrix3xAny, y: glm_typing.F32Matrix3xAny, ULPs_epsilon: Union[glm_typing.Number, ivec3, glm_typing.F32Vector3], /) -> bvec3: ... +@overload +def equal(x: _NF32M3XNT, y: _NF32M3XNT, ULPs_epsilon: Union[glm_typing.Number, ivec3, glm_typing.F32Vector3], /) -> bvec3: ... +@overload +def equal(x: glm_typing.F32Matrix4xAny, y: glm_typing.F32Matrix4xAny, /) -> bvec4: ... +@overload +def equal(x: _NF32M4XNT, y: _NF32M4XNT, /) -> bvec4: ... +@overload +def equal(x: glm_typing.F32Matrix4xAny, y: glm_typing.F32Matrix4xAny, ULPs_epsilon: Union[glm_typing.Number, ivec4, glm_typing.F32Vector4], /) -> bvec4: ... +@overload +def equal(x: _NF32M4XNT, y: _NF32M4XNT, ULPs_epsilon: Union[glm_typing.Number, ivec4, glm_typing.F32Vector4], /) -> bvec4: ... +@overload +def equal(x: _QT, y: _QT, /) -> int: ... + +@overload +def greaterThan(x: _QT, y: _QT, /) -> bvec4: ... +@overload +def greaterThan(x: glm_typing.F32Vector1, y: glm_typing.F32Vector1, /) -> bvec1: ... +@overload +def greaterThan(x: _NF32V1T, y: _NF32V1T, /) -> bvec1: ... +@overload +def greaterThan(x: glm_typing.F32Vector2, y: glm_typing.F32Vector2, /) -> bvec2: ... +@overload +def greaterThan(x: _NF32V2T, y: _NF32V2T, /) -> bvec2: ... +@overload +def greaterThan(x: glm_typing.F32Vector3, y: glm_typing.F32Vector3, /) -> bvec3: ... +@overload +def greaterThan(x: _NF32V3T, y: _NF32V3T, /) -> bvec3: ... +@overload +def greaterThan(x: glm_typing.F32Vector4, y: glm_typing.F32Vector4, /) -> bvec4: ... +@overload +def greaterThan(x: _NF32V4T, y: _NF32V4T, /) -> bvec4: ... + +@overload +def greaterThanEqual(x: _QT, y: _QT, /) -> bvec4: ... +@overload +def greaterThanEqual(x: glm_typing.F32Vector1, y: glm_typing.F32Vector1, /) -> bvec1: ... +@overload +def greaterThanEqual(x: _NF32V1T, y: _NF32V1T, /) -> bvec1: ... +@overload +def greaterThanEqual(x: glm_typing.F32Vector2, y: glm_typing.F32Vector2, /) -> bvec2: ... +@overload +def greaterThanEqual(x: _NF32V2T, y: _NF32V2T, /) -> bvec2: ... +@overload +def greaterThanEqual(x: glm_typing.F32Vector3, y: glm_typing.F32Vector3, /) -> bvec3: ... +@overload +def greaterThanEqual(x: _NF32V3T, y: _NF32V3T, /) -> bvec3: ... +@overload +def greaterThanEqual(x: glm_typing.F32Vector4, y: glm_typing.F32Vector4, /) -> bvec4: ... +@overload +def greaterThanEqual(x: _NF32V4T, y: _NF32V4T, /) -> bvec4: ... + +@overload +def lessThan(x: _QT, y: _QT, /) -> bvec4: ... +@overload +def lessThan(x: glm_typing.F32Vector1, y: glm_typing.F32Vector1, /) -> bvec1: ... +@overload +def lessThan(x: _NF32V1T, y: _NF32V1T, /) -> bvec1: ... +@overload +def lessThan(x: glm_typing.F32Vector2, y: glm_typing.F32Vector2, /) -> bvec2: ... +@overload +def lessThan(x: _NF32V2T, y: _NF32V2T, /) -> bvec2: ... +@overload +def lessThan(x: glm_typing.F32Vector3, y: glm_typing.F32Vector3, /) -> bvec3: ... +@overload +def lessThan(x: _NF32V3T, y: _NF32V3T, /) -> bvec3: ... +@overload +def lessThan(x: glm_typing.F32Vector4, y: glm_typing.F32Vector4, /) -> bvec4: ... +@overload +def lessThan(x: _NF32V4T, y: _NF32V4T, /) -> bvec4: ... + +@overload +def lessThanEqual(x: _QT, y: _QT, /) -> bvec4: ... +@overload +def lessThanEqual(x: glm_typing.F32Vector1, y: glm_typing.F32Vector1, /) -> bvec1: ... +@overload +def lessThanEqual(x: _NF32V1T, y: _NF32V1T, /) -> bvec1: ... +@overload +def lessThanEqual(x: glm_typing.F32Vector2, y: glm_typing.F32Vector2, /) -> bvec2: ... +@overload +def lessThanEqual(x: _NF32V2T, y: _NF32V2T, /) -> bvec2: ... +@overload +def lessThanEqual(x: glm_typing.F32Vector3, y: glm_typing.F32Vector3, /) -> bvec3: ... +@overload +def lessThanEqual(x: _NF32V3T, y: _NF32V3T, /) -> bvec3: ... +@overload +def lessThanEqual(x: glm_typing.F32Vector4, y: glm_typing.F32Vector4, /) -> bvec4: ... +@overload +def lessThanEqual(x: _NF32V4T, y: _NF32V4T, /) -> bvec4: ... + +@overload +def notEqual(x: _QT, y: _QT, /) -> bvec4: ... +@overload +def notEqual(x: glm_typing.F32Vector1, y: glm_typing.F32Vector1, /) -> bvec1: ... +@overload +def notEqual(x: _NF32V1T, y: _NF32V1T, /) -> bvec1: ... +@overload +def notEqual(x: glm_typing.F32Vector2, y: glm_typing.F32Vector2, /) -> bvec2: ... +@overload +def notEqual(x: _NF32V2T, y: _NF32V2T, /) -> bvec2: ... +@overload +def notEqual(x: glm_typing.F32Vector3, y: glm_typing.F32Vector3, /) -> bvec3: ... +@overload +def notEqual(x: _NF32V3T, y: _NF32V3T, /) -> bvec3: ... +@overload +def notEqual(x: glm_typing.F32Vector4, y: glm_typing.F32Vector4, /) -> bvec4: ... +@overload +def notEqual(x: _NF32V4T, y: _NF32V4T, /) -> bvec4: ... + +def not_(v: glm_typing.BAnyVectorAny, /) -> bool: ... + + +def add(a: Any, b: Any, /) -> Any: ... + +def and_(a: Any, b: Any, /) -> Any: ... + +def cmp(a: Any, b: Any, /) -> Any: ... + +def div(a: Any, b: Any, /) -> Any: ... + +def floordiv(a: Any, b: Any, /) -> Any: ... + +def if_else(b: Any, x: Any, y: Any, /) -> Any: ... + +def inv(a: Any, /) -> Any: ... + +def lshift(a: Any, b: Any, /) -> Any: ... + +def mul(a: Any, b: Any, /) -> Any: ... + +def neg(a: Any, /) -> Any: ... + +def or_(a: Any, b: Any, /) -> Any: ... + +def pos(a: Any, /) -> Any: ... + +def rshift(a: Any, b: Any, /) -> Any: ... + +def sub(a: Any, b: Any, /) -> Any: ... + +def xor(a: Any, b: Any, /) -> Any: ... + + + +@overload +def convertLinearToSRGB(ColorLinear: glm_typing.F32Vector1) -> vec1: ... +@overload +def convertLinearToSRGB(ColorLinear: glm_typing.F32Vector1, Gamma: glm_typing.Number) -> vec1: ... +@overload +def convertLinearToSRGB(ColorLinear: glm_typing.F32Vector2) -> vec2: ... +@overload +def convertLinearToSRGB(ColorLinear: glm_typing.F32Vector2, Gamma: glm_typing.Number) -> vec2: ... +@overload +def convertLinearToSRGB(ColorLinear: glm_typing.F32Vector3) -> vec3: ... +@overload +def convertLinearToSRGB(ColorLinear: glm_typing.F32Vector3, Gamma: glm_typing.Number) -> vec3: ... +@overload +def convertLinearToSRGB(ColorLinear: glm_typing.F32Vector4) -> vec4: ... +@overload +def convertLinearToSRGB(ColorLinear: glm_typing.F32Vector4, Gamma: glm_typing.Number) -> vec4: ... +@overload +def convertLinearToSRGB(ColorLinear: _NF32DFVT) -> _NF32DFVT: ... +@overload +def convertLinearToSRGB(ColorLinear: _NF32DFVT, Gamma: glm_typing.Number) -> _NF32DFVT: ... + +@overload +def convertSRGBToLinear(ColorLinear: glm_typing.F32Vector1) -> vec1: ... +@overload +def convertSRGBToLinear(ColorLinear: glm_typing.F32Vector1, Gamma: glm_typing.Number) -> vec1: ... +@overload +def convertSRGBToLinear(ColorLinear: glm_typing.F32Vector2) -> vec2: ... +@overload +def convertSRGBToLinear(ColorLinear: glm_typing.F32Vector2, Gamma: glm_typing.Number) -> vec2: ... +@overload +def convertSRGBToLinear(ColorLinear: glm_typing.F32Vector3) -> vec3: ... +@overload +def convertSRGBToLinear(ColorLinear: glm_typing.F32Vector3, Gamma: glm_typing.Number) -> vec3: ... +@overload +def convertSRGBToLinear(ColorLinear: glm_typing.F32Vector4) -> vec4: ... +@overload +def convertSRGBToLinear(ColorLinear: glm_typing.F32Vector4, Gamma: glm_typing.Number) -> vec4: ... +@overload +def convertSRGBToLinear(ColorLinear: _NF32DFVT) -> _NF32DFVT: ... +@overload +def convertSRGBToLinear(ColorLinear: _NF32DFVT, Gamma: glm_typing.Number) -> _NF32DFVT: ... + + +def e() -> float: ... + +def epsilon() -> float: ... + +def euler() -> float: ... + +def four_over_pi() -> float: ... + +def golden_ratio() -> float: ... + +def half_pi() -> float: ... + +def ln_ln_two() -> float: ... + +def ln_ten() -> float: ... + +def ln_two() -> float: ... + +def one() -> float: ... + +def one_over_pi() -> float: ... + +def one_over_root_two() -> float: ... + +def one_over_two_pi() -> float: ... + +def pi() -> float: ... + +def quarter_pi() -> float: ... + +def root_five() -> float: ... + +def root_half_pi() -> float: ... + +def root_ln_four() -> float: ... + +def root_pi() -> float: ... + +def root_three() -> float: ... + +def root_two() -> float: ... + +def root_two_pi() -> float: ... + +def third() -> float: ... + +def three_over_two_pi() -> float: ... + +def two_over_pi() -> float: ... + +def two_over_root_pi() -> float: ... + +def two_pi() -> float: ... + +def two_thirds() -> float: ... + +def zero() -> float: ... + + +@overload +def epsilonEqual(x: glm_typing.Number, y: glm_typing.Number, epsilon: glm_typing.Number, /) -> bool: ... +@overload +def epsilonEqual(x: glm_typing.F32Vector1, y: glm_typing.F32Vector1, epsilon: glm_typing.Number, /) -> bvec1: ... +@overload +def epsilonEqual(x: _NF32DFV1T, y: _NF32DFV1T, epsilon: glm_typing.Number, /) -> bvec1: ... +@overload +def epsilonEqual(x: glm_typing.F32Vector2, y: glm_typing.F32Vector2, epsilon: glm_typing.Number, /) -> bvec2: ... +@overload +def epsilonEqual(x: _NF32DFV2T, y: _NF32DFV2T, epsilon: glm_typing.Number, /) -> bvec2: ... +@overload +def epsilonEqual(x: glm_typing.F32Vector3, y: glm_typing.F32Vector3, epsilon: glm_typing.Number, /) -> bvec3: ... +@overload +def epsilonEqual(x: _NF32DFV3T, y: _NF32DFV3T, epsilon: glm_typing.Number, /) -> bvec3: ... +@overload +def epsilonEqual(x: glm_typing.F32Vector4, y: glm_typing.F32Vector4, epsilon: glm_typing.Number, /) -> bvec4: ... +@overload +def epsilonEqual(x: _NF32DFV4T, y: _NF32DFV4T, epsilon: glm_typing.Number, /) -> bvec4: ... + +@overload +def epsilonNotEqual(x: glm_typing.Number, y: glm_typing.Number, epsilon: glm_typing.Number, /) -> bool: ... +@overload +def epsilonNotEqual(x: glm_typing.F32Vector1, y: glm_typing.F32Vector1, epsilon: glm_typing.Number, /) -> bvec1: ... +@overload +def epsilonNotEqual(x: _NF32DFV1T, y: _NF32DFV1T, epsilon: glm_typing.Number, /) -> bvec1: ... +@overload +def epsilonNotEqual(x: glm_typing.F32Vector2, y: glm_typing.F32Vector2, epsilon: glm_typing.Number, /) -> bvec2: ... +@overload +def epsilonNotEqual(x: _NF32DFV2T, y: _NF32DFV2T, epsilon: glm_typing.Number, /) -> bvec2: ... +@overload +def epsilonNotEqual(x: glm_typing.F32Vector3, y: glm_typing.F32Vector3, epsilon: glm_typing.Number, /) -> bvec3: ... +@overload +def epsilonNotEqual(x: _NF32DFV3T, y: _NF32DFV3T, epsilon: glm_typing.Number, /) -> bvec3: ... +@overload +def epsilonNotEqual(x: glm_typing.F32Vector4, y: glm_typing.F32Vector4, epsilon: glm_typing.Number, /) -> bvec4: ... +@overload +def epsilonNotEqual(x: _NF32DFV4T, y: _NF32DFV4T, epsilon: glm_typing.Number, /) -> bvec4: ... + + +@overload +def iround(x: glm_typing.Number, /) -> int: ... +@overload +def iround(x: glm_typing.F32Vector1, /) -> ivec1: ... +@overload +def iround(x: _NF32DFV1T, /) -> ivec1: ... +@overload +def iround(x: glm_typing.F32Vector2, /) -> ivec2: ... +@overload +def iround(x: _NF32DFV2T, /) -> ivec2: ... +@overload +def iround(x: glm_typing.F32Vector3, /) -> ivec3: ... +@overload +def iround(x: _NF32DFV3T, /) -> ivec3: ... +@overload +def iround(x: glm_typing.F32Vector4, /) -> ivec4: ... +@overload +def iround(x: _NF32DFV4T, /) -> ivec4: ... + +@overload +def uround(x: glm_typing.Number, /) -> int: ... +@overload +def uround(x: glm_typing.F32Vector1, /) -> uvec1: ... +@overload +def uround(x: _NF32DFV1T, /) -> uvec1: ... +@overload +def uround(x: glm_typing.F32Vector2, /) -> uvec2: ... +@overload +def uround(x: _NF32DFV2T, /) -> uvec2: ... +@overload +def uround(x: glm_typing.F32Vector3, /) -> uvec3: ... +@overload +def uround(x: _NF32DFV3T, /) -> uvec3: ... +@overload +def uround(x: glm_typing.F32Vector4, /) -> uvec4: ... +@overload +def uround(x: _NF32DFV4T, /) -> uvec4: ... + + + +@overload +def column(m: glm_typing.F32Matrix2x2, index: int, /) -> vec2: ... +@overload +def column(m: glm_typing.F32Matrix2x2, index: int, x: glm_typing.F32Vector2, /) -> mat2x2: ... +@overload +def column(m: glm_typing.F32Matrix2x3, index: int, /) -> vec3: ... +@overload +def column(m: glm_typing.F32Matrix2x3, index: int, x: glm_typing.F32Vector3, /) -> mat2x3: ... +@overload +def column(m: glm_typing.F32Matrix2x4, index: int, /) -> vec4: ... +@overload +def column(m: glm_typing.F32Matrix2x4, index: int, x: glm_typing.F32Vector4, /) -> mat2x4: ... +@overload +def column(m: glm_typing.F32Matrix3x2, index: int, /) -> vec2: ... +@overload +def column(m: glm_typing.F32Matrix3x2, index: int, x: glm_typing.F32Vector2, /) -> mat3x2: ... +@overload +def column(m: glm_typing.F32Matrix3x3, index: int, /) -> vec3: ... +@overload +def column(m: glm_typing.F32Matrix3x3, index: int, x: glm_typing.F32Vector3, /) -> mat3x3: ... +@overload +def column(m: glm_typing.F32Matrix3x4, index: int, /) -> vec4: ... +@overload +def column(m: glm_typing.F32Matrix3x4, index: int, x: glm_typing.F32Vector4, /) -> mat3x4: ... +@overload +def column(m: glm_typing.F32Matrix4x2, index: int, /) -> vec2: ... +@overload +def column(m: glm_typing.F32Matrix4x2, index: int, x: glm_typing.F32Vector2, /) -> mat4x2: ... +@overload +def column(m: glm_typing.F32Matrix4x3, index: int, /) -> vec3: ... +@overload +def column(m: glm_typing.F32Matrix4x3, index: int, x: glm_typing.F32Vector3, /) -> mat4x3: ... +@overload +def column(m: glm_typing.F32Matrix4x4, index: int, /) -> vec4: ... +@overload +def column(m: glm_typing.F32Matrix4x4, index: int, x: glm_typing.F32Vector4, /) -> mat4x4: ... +@overload +def column(m: dmat2x2, index: int, /) -> dvec2: ... +@overload +def column(m: dmat2x2, index: int, x: Union[dvec2, dmvec2], /) -> dmat2x2: ... +@overload +def column(m: dmat2x3, index: int, /) -> dvec3: ... +@overload +def column(m: dmat2x3, index: int, x: Union[dvec3, dmvec3], /) -> dmat2x3: ... +@overload +def column(m: dmat2x4, index: int, /) -> dvec4: ... +@overload +def column(m: dmat2x4, index: int, x: Union[dvec4, dmvec4], /) -> dmat2x4: ... +@overload +def column(m: dmat3x2, index: int, /) -> dvec2: ... +@overload +def column(m: dmat3x2, index: int, x: Union[dvec2, dmvec2], /) -> dmat3x2: ... +@overload +def column(m: dmat3x3, index: int, /) -> dvec3: ... +@overload +def column(m: dmat3x3, index: int, x: Union[dvec3, dmvec3], /) -> dmat3x3: ... +@overload +def column(m: dmat3x4, index: int, /) -> dvec4: ... +@overload +def column(m: dmat3x4, index: int, x: Union[dvec4, dmvec4], /) -> dmat3x4: ... +@overload +def column(m: dmat4x2, index: int, /) -> dvec2: ... +@overload +def column(m: dmat4x2, index: int, x: Union[dvec2, dmvec2], /) -> dmat4x2: ... +@overload +def column(m: dmat4x3, index: int, /) -> dvec3: ... +@overload +def column(m: dmat4x3, index: int, x: Union[dvec3, dmvec3], /) -> dmat4x3: ... +@overload +def column(m: dmat4x4, index: int, /) -> dvec4: ... +@overload +def column(m: dmat4x4, index: int, x: Union[dvec4, dmvec4], /) -> dmat4x4: ... +@overload +def column(m: imat2x2, index: int, /) -> ivec2: ... +@overload +def column(m: imat2x2, index: int, x: Union[ivec2, imvec2], /) -> imat2x2: ... +@overload +def column(m: imat2x3, index: int, /) -> ivec3: ... +@overload +def column(m: imat2x3, index: int, x: Union[ivec3, imvec3], /) -> imat2x3: ... +@overload +def column(m: imat2x4, index: int, /) -> ivec4: ... +@overload +def column(m: imat2x4, index: int, x: Union[ivec4, imvec4], /) -> imat2x4: ... +@overload +def column(m: imat3x2, index: int, /) -> ivec2: ... +@overload +def column(m: imat3x2, index: int, x: Union[ivec2, imvec2], /) -> imat3x2: ... +@overload +def column(m: imat3x3, index: int, /) -> ivec3: ... +@overload +def column(m: imat3x3, index: int, x: Union[ivec3, imvec3], /) -> imat3x3: ... +@overload +def column(m: imat3x4, index: int, /) -> ivec4: ... +@overload +def column(m: imat3x4, index: int, x: Union[ivec4, imvec4], /) -> imat3x4: ... +@overload +def column(m: imat4x2, index: int, /) -> ivec2: ... +@overload +def column(m: imat4x2, index: int, x: Union[ivec2, imvec2], /) -> imat4x2: ... +@overload +def column(m: imat4x3, index: int, /) -> ivec3: ... +@overload +def column(m: imat4x3, index: int, x: Union[ivec3, imvec3], /) -> imat4x3: ... +@overload +def column(m: imat4x4, index: int, /) -> ivec4: ... +@overload +def column(m: imat4x4, index: int, x: Union[ivec4, imvec4], /) -> imat4x4: ... +@overload +def column(m: umat2x2, index: int, /) -> uvec2: ... +@overload +def column(m: umat2x2, index: int, x: Union[uvec2, umvec2], /) -> umat2x2: ... +@overload +def column(m: umat2x3, index: int, /) -> uvec3: ... +@overload +def column(m: umat2x3, index: int, x: Union[uvec3, umvec3], /) -> umat2x3: ... +@overload +def column(m: umat2x4, index: int, /) -> uvec4: ... +@overload +def column(m: umat2x4, index: int, x: Union[uvec4, umvec4], /) -> umat2x4: ... +@overload +def column(m: umat3x2, index: int, /) -> uvec2: ... +@overload +def column(m: umat3x2, index: int, x: Union[uvec2, umvec2], /) -> umat3x2: ... +@overload +def column(m: umat3x3, index: int, /) -> uvec3: ... +@overload +def column(m: umat3x3, index: int, x: Union[uvec3, umvec3], /) -> umat3x3: ... +@overload +def column(m: umat3x4, index: int, /) -> uvec4: ... +@overload +def column(m: umat3x4, index: int, x: Union[uvec4, umvec4], /) -> umat3x4: ... +@overload +def column(m: umat4x2, index: int, /) -> uvec2: ... +@overload +def column(m: umat4x2, index: int, x: Union[uvec2, umvec2], /) -> umat4x2: ... +@overload +def column(m: umat4x3, index: int, /) -> uvec3: ... +@overload +def column(m: umat4x3, index: int, x: Union[uvec3, umvec3], /) -> umat4x3: ... +@overload +def column(m: umat4x4, index: int, /) -> uvec4: ... +@overload +def column(m: umat4x4, index: int, x: Union[uvec4, umvec4], /) -> umat4x4: ... + +@overload +def row(m: glm_typing.F32Matrix2x2, index: int, /) -> vec2: ... +@overload +def row(m: glm_typing.F32Matrix2x2, index: int, x: glm_typing.F32Vector2, /) -> mat2x2: ... +@overload +def row(m: glm_typing.F32Matrix2x3, index: int, /) -> vec2: ... +@overload +def row(m: glm_typing.F32Matrix2x3, index: int, x: glm_typing.F32Vector2, /) -> mat2x3: ... +@overload +def row(m: glm_typing.F32Matrix2x4, index: int, /) -> vec2: ... +@overload +def row(m: glm_typing.F32Matrix2x4, index: int, x: glm_typing.F32Vector2, /) -> mat2x4: ... +@overload +def row(m: glm_typing.F32Matrix3x2, index: int, /) -> vec3: ... +@overload +def row(m: glm_typing.F32Matrix3x2, index: int, x: glm_typing.F32Vector3, /) -> mat3x2: ... +@overload +def row(m: glm_typing.F32Matrix3x3, index: int, /) -> vec3: ... +@overload +def row(m: glm_typing.F32Matrix3x3, index: int, x: glm_typing.F32Vector3, /) -> mat3x3: ... +@overload +def row(m: glm_typing.F32Matrix3x4, index: int, /) -> vec3: ... +@overload +def row(m: glm_typing.F32Matrix3x4, index: int, x: glm_typing.F32Vector3, /) -> mat3x4: ... +@overload +def row(m: glm_typing.F32Matrix4x2, index: int, /) -> vec4: ... +@overload +def row(m: glm_typing.F32Matrix4x2, index: int, x: glm_typing.F32Vector4, /) -> mat4x2: ... +@overload +def row(m: glm_typing.F32Matrix4x3, index: int, /) -> vec4: ... +@overload +def row(m: glm_typing.F32Matrix4x3, index: int, x: glm_typing.F32Vector4, /) -> mat4x3: ... +@overload +def row(m: glm_typing.F32Matrix4x4, index: int, /) -> vec4: ... +@overload +def row(m: glm_typing.F32Matrix4x4, index: int, x: glm_typing.F32Vector4, /) -> mat4x4: ... +@overload +def row(m: dmat2x2, index: int, /) -> dvec2: ... +@overload +def row(m: dmat2x2, index: int, x: Union[dvec2, dmvec2], /) -> dmat2x2: ... +@overload +def row(m: dmat2x3, index: int, /) -> dvec2: ... +@overload +def row(m: dmat2x3, index: int, x: Union[dvec2, dmvec2], /) -> dmat2x3: ... +@overload +def row(m: dmat2x4, index: int, /) -> dvec2: ... +@overload +def row(m: dmat2x4, index: int, x: Union[dvec2, dmvec2], /) -> dmat2x4: ... +@overload +def row(m: dmat3x2, index: int, /) -> dvec3: ... +@overload +def row(m: dmat3x2, index: int, x: Union[dvec3, dmvec3], /) -> dmat3x2: ... +@overload +def row(m: dmat3x3, index: int, /) -> dvec3: ... +@overload +def row(m: dmat3x3, index: int, x: Union[dvec3, dmvec3], /) -> dmat3x3: ... +@overload +def row(m: dmat3x4, index: int, /) -> dvec3: ... +@overload +def row(m: dmat3x4, index: int, x: Union[dvec3, dmvec3], /) -> dmat3x4: ... +@overload +def row(m: dmat4x2, index: int, /) -> dvec4: ... +@overload +def row(m: dmat4x2, index: int, x: Union[dvec4, dmvec4], /) -> dmat4x2: ... +@overload +def row(m: dmat4x3, index: int, /) -> dvec4: ... +@overload +def row(m: dmat4x3, index: int, x: Union[dvec4, dmvec4], /) -> dmat4x3: ... +@overload +def row(m: dmat4x4, index: int, /) -> dvec4: ... +@overload +def row(m: dmat4x4, index: int, x: Union[dvec4, dmvec4], /) -> dmat4x4: ... +@overload +def row(m: imat2x2, index: int, /) -> ivec2: ... +@overload +def row(m: imat2x2, index: int, x: Union[ivec2, imvec2], /) -> imat2x2: ... +@overload +def row(m: imat2x3, index: int, /) -> ivec2: ... +@overload +def row(m: imat2x3, index: int, x: Union[ivec2, imvec2], /) -> imat2x3: ... +@overload +def row(m: imat2x4, index: int, /) -> ivec2: ... +@overload +def row(m: imat2x4, index: int, x: Union[ivec2, imvec2], /) -> imat2x4: ... +@overload +def row(m: imat3x2, index: int, /) -> ivec3: ... +@overload +def row(m: imat3x2, index: int, x: Union[ivec3, imvec3], /) -> imat3x2: ... +@overload +def row(m: imat3x3, index: int, /) -> ivec3: ... +@overload +def row(m: imat3x3, index: int, x: Union[ivec3, imvec3], /) -> imat3x3: ... +@overload +def row(m: imat3x4, index: int, /) -> ivec3: ... +@overload +def row(m: imat3x4, index: int, x: Union[ivec3, imvec3], /) -> imat3x4: ... +@overload +def row(m: imat4x2, index: int, /) -> ivec4: ... +@overload +def row(m: imat4x2, index: int, x: Union[ivec4, imvec4], /) -> imat4x2: ... +@overload +def row(m: imat4x3, index: int, /) -> ivec4: ... +@overload +def row(m: imat4x3, index: int, x: Union[ivec4, imvec4], /) -> imat4x3: ... +@overload +def row(m: imat4x4, index: int, /) -> ivec4: ... +@overload +def row(m: imat4x4, index: int, x: Union[ivec4, imvec4], /) -> imat4x4: ... +@overload +def row(m: umat2x2, index: int, /) -> uvec2: ... +@overload +def row(m: umat2x2, index: int, x: Union[uvec2, umvec2], /) -> umat2x2: ... +@overload +def row(m: umat2x3, index: int, /) -> uvec2: ... +@overload +def row(m: umat2x3, index: int, x: Union[uvec2, umvec2], /) -> umat2x3: ... +@overload +def row(m: umat2x4, index: int, /) -> uvec2: ... +@overload +def row(m: umat2x4, index: int, x: Union[uvec2, umvec2], /) -> umat2x4: ... +@overload +def row(m: umat3x2, index: int, /) -> uvec3: ... +@overload +def row(m: umat3x2, index: int, x: Union[uvec3, umvec3], /) -> umat3x2: ... +@overload +def row(m: umat3x3, index: int, /) -> uvec3: ... +@overload +def row(m: umat3x3, index: int, x: Union[uvec3, umvec3], /) -> umat3x3: ... +@overload +def row(m: umat3x4, index: int, /) -> uvec3: ... +@overload +def row(m: umat3x4, index: int, x: Union[uvec3, umvec3], /) -> umat3x4: ... +@overload +def row(m: umat4x2, index: int, /) -> uvec4: ... +@overload +def row(m: umat4x2, index: int, x: Union[uvec4, umvec4], /) -> umat4x2: ... +@overload +def row(m: umat4x3, index: int, /) -> uvec4: ... +@overload +def row(m: umat4x3, index: int, x: Union[uvec4, umvec4], /) -> umat4x3: ... +@overload +def row(m: umat4x4, index: int, /) -> uvec4: ... +@overload +def row(m: umat4x4, index: int, x: Union[uvec4, umvec4], /) -> umat4x4: ... + + +@overload +def affineInverse(m: glm_typing.FAnyMatrix3x3, /) -> mat3x3: ... +@overload +def affineInverse(m: dmat3x3, /) -> dmat3x3: ... +@overload +def affineInverse(m: glm_typing.FAnyMatrix4x4, /) -> mat4x4: ... +@overload +def affineInverse(m: dmat4x4, /) -> dmat4x4: ... + +@overload +def inverseTranspose(m: glm_typing.FAnyMatrix2x2, /) -> mat2x2: ... +@overload +def inverseTranspose(m: dmat2x2, /) -> dmat2x2: ... +@overload +def inverseTranspose(m: glm_typing.FAnyMatrix3x3, /) -> mat3x3: ... +@overload +def inverseTranspose(m: dmat3x3, /) -> dmat3x3: ... +@overload +def inverseTranspose(m: glm_typing.FAnyMatrix4x4, /) -> mat4x4: ... +@overload +def inverseTranspose(m: dmat4x4, /) -> dmat4x4: ... + + +@overload +def perlin(p: glm_typing.FDAnyVectorAny, /) -> float: ... +@overload +def perlin(p: glm_typing.F32Vector1, rep: glm_typing.F32Vector1, /) -> float: ... +@overload +def perlin(p: glm_typing.F32Vector2, rep: glm_typing.F32Vector2, /) -> float: ... +@overload +def perlin(p: glm_typing.F32Vector3, rep: glm_typing.F32Vector3, /) -> float: ... +@overload +def perlin(p: glm_typing.F32Vector4, rep: glm_typing.F32Vector4, /) -> float: ... +@overload +def perlin(p: _NF32DFVT, rep: _NF32DFVT, /) -> float: ... + +def simplex(p: glm_typing.FDAnyVectorAny, /) -> float: ... + + +def packF2x11_1x10(v: glm_typing.F32Vector3, /) -> int: ... + +def packF3x9_E1x5(v: glm_typing.F32Vector3, /) -> int: ... + +@overload +def packHalf(v: glm_typing.F32Vector1, /) -> u16vec1: ... +@overload +def packHalf(v: glm_typing.F32Vector2, /) -> u16vec2: ... +@overload +def packHalf(v: glm_typing.F32Vector3, /) -> u16vec3: ... +@overload +def packHalf(v: glm_typing.F32Vector4, /) -> u16vec4: ... + +def packHalf1x16(v: float, /) -> int: ... + +def packHalf4x16(v: glm_typing.F32Vector4, /) -> int: ... + +def packI3x10_1x2(v: glm_typing.I32Vector4, /) -> int: ... + +def packInt2x16(v: glm_typing.I16Vector2, /) -> int: ... + +def packInt2x32(v: glm_typing.I32Vector2, /) -> int: ... + +def packInt2x8(v: glm_typing.I8Vector2, /) -> int: ... + +def packInt4x16(v: glm_typing.I16Vector4, /) -> int: ... + +def packInt4x8(v: glm_typing.I8Vector4, /) -> int: ... + +def packRGBM(v: glm_typing.F32Vector3, /) -> vec4: ... + +@overload +def packSnorm(t: ctypes.c_int8, v: glm_typing.F32Vector1, /) -> i8vec1: ... +@overload +def packSnorm(t: ctypes.c_int8, v: _NF32DFV1T, /) -> i8vec1: ... +@overload +def packSnorm(t: ctypes.c_uint8, v: glm_typing.F32Vector1, /) -> u8vec1: ... +@overload +def packSnorm(t: ctypes.c_uint8, v: _NF32DFV1T, /) -> u8vec1: ... +@overload +def packSnorm(t: ctypes.c_int16, v: glm_typing.F32Vector1, /) -> i16vec1: ... +@overload +def packSnorm(t: ctypes.c_int16, v: _NF32DFV1T, /) -> i16vec1: ... +@overload +def packSnorm(t: ctypes.c_uint16, v: glm_typing.F32Vector1, /) -> u16vec1: ... +@overload +def packSnorm(t: ctypes.c_uint16, v: _NF32DFV1T, /) -> u16vec1: ... +@overload +def packSnorm(t: ctypes.c_int32, v: glm_typing.F32Vector1, /) -> i32vec1: ... +@overload +def packSnorm(t: ctypes.c_int32, v: _NF32DFV1T, /) -> i32vec1: ... +@overload +def packSnorm(t: ctypes.c_uint32, v: glm_typing.F32Vector1, /) -> u32vec1: ... +@overload +def packSnorm(t: ctypes.c_uint32, v: _NF32DFV1T, /) -> u32vec1: ... +@overload +def packSnorm(t: ctypes.c_int64, v: glm_typing.F32Vector1, /) -> i64vec1: ... +@overload +def packSnorm(t: ctypes.c_int64, v: _NF32DFV1T, /) -> i64vec1: ... +@overload +def packSnorm(t: ctypes.c_uint64, v: glm_typing.F32Vector1, /) -> u64vec1: ... +@overload +def packSnorm(t: ctypes.c_uint64, v: _NF32DFV1T, /) -> u64vec1: ... +@overload +def packSnorm(t: ctypes.c_int8, v: glm_typing.F32Vector2, /) -> i8vec2: ... +@overload +def packSnorm(t: ctypes.c_int8, v: _NF32DFV2T, /) -> i8vec2: ... +@overload +def packSnorm(t: ctypes.c_uint8, v: glm_typing.F32Vector2, /) -> u8vec2: ... +@overload +def packSnorm(t: ctypes.c_uint8, v: _NF32DFV2T, /) -> u8vec2: ... +@overload +def packSnorm(t: ctypes.c_int16, v: glm_typing.F32Vector2, /) -> i16vec2: ... +@overload +def packSnorm(t: ctypes.c_int16, v: _NF32DFV2T, /) -> i16vec2: ... +@overload +def packSnorm(t: ctypes.c_uint16, v: glm_typing.F32Vector2, /) -> u16vec2: ... +@overload +def packSnorm(t: ctypes.c_uint16, v: _NF32DFV2T, /) -> u16vec2: ... +@overload +def packSnorm(t: ctypes.c_int32, v: glm_typing.F32Vector2, /) -> i32vec2: ... +@overload +def packSnorm(t: ctypes.c_int32, v: _NF32DFV2T, /) -> i32vec2: ... +@overload +def packSnorm(t: ctypes.c_uint32, v: glm_typing.F32Vector2, /) -> u32vec2: ... +@overload +def packSnorm(t: ctypes.c_uint32, v: _NF32DFV2T, /) -> u32vec2: ... +@overload +def packSnorm(t: ctypes.c_int64, v: glm_typing.F32Vector2, /) -> i64vec2: ... +@overload +def packSnorm(t: ctypes.c_int64, v: _NF32DFV2T, /) -> i64vec2: ... +@overload +def packSnorm(t: ctypes.c_uint64, v: glm_typing.F32Vector2, /) -> u64vec2: ... +@overload +def packSnorm(t: ctypes.c_uint64, v: _NF32DFV2T, /) -> u64vec2: ... +@overload +def packSnorm(t: ctypes.c_int8, v: glm_typing.F32Vector3, /) -> i8vec3: ... +@overload +def packSnorm(t: ctypes.c_int8, v: _NF32DFV3T, /) -> i8vec3: ... +@overload +def packSnorm(t: ctypes.c_uint8, v: glm_typing.F32Vector3, /) -> u8vec3: ... +@overload +def packSnorm(t: ctypes.c_uint8, v: _NF32DFV3T, /) -> u8vec3: ... +@overload +def packSnorm(t: ctypes.c_int16, v: glm_typing.F32Vector3, /) -> i16vec3: ... +@overload +def packSnorm(t: ctypes.c_int16, v: _NF32DFV3T, /) -> i16vec3: ... +@overload +def packSnorm(t: ctypes.c_uint16, v: glm_typing.F32Vector3, /) -> u16vec3: ... +@overload +def packSnorm(t: ctypes.c_uint16, v: _NF32DFV3T, /) -> u16vec3: ... +@overload +def packSnorm(t: ctypes.c_int32, v: glm_typing.F32Vector3, /) -> i32vec3: ... +@overload +def packSnorm(t: ctypes.c_int32, v: _NF32DFV3T, /) -> i32vec3: ... +@overload +def packSnorm(t: ctypes.c_uint32, v: glm_typing.F32Vector3, /) -> u32vec3: ... +@overload +def packSnorm(t: ctypes.c_uint32, v: _NF32DFV3T, /) -> u32vec3: ... +@overload +def packSnorm(t: ctypes.c_int64, v: glm_typing.F32Vector3, /) -> i64vec3: ... +@overload +def packSnorm(t: ctypes.c_int64, v: _NF32DFV3T, /) -> i64vec3: ... +@overload +def packSnorm(t: ctypes.c_uint64, v: glm_typing.F32Vector3, /) -> u64vec3: ... +@overload +def packSnorm(t: ctypes.c_uint64, v: _NF32DFV3T, /) -> u64vec3: ... +@overload +def packSnorm(t: ctypes.c_int8, v: glm_typing.F32Vector4, /) -> i8vec4: ... +@overload +def packSnorm(t: ctypes.c_int8, v: _NF32DFV4T, /) -> i8vec4: ... +@overload +def packSnorm(t: ctypes.c_uint8, v: glm_typing.F32Vector4, /) -> u8vec4: ... +@overload +def packSnorm(t: ctypes.c_uint8, v: _NF32DFV4T, /) -> u8vec4: ... +@overload +def packSnorm(t: ctypes.c_int16, v: glm_typing.F32Vector4, /) -> i16vec4: ... +@overload +def packSnorm(t: ctypes.c_int16, v: _NF32DFV4T, /) -> i16vec4: ... +@overload +def packSnorm(t: ctypes.c_uint16, v: glm_typing.F32Vector4, /) -> u16vec4: ... +@overload +def packSnorm(t: ctypes.c_uint16, v: _NF32DFV4T, /) -> u16vec4: ... +@overload +def packSnorm(t: ctypes.c_int32, v: glm_typing.F32Vector4, /) -> i32vec4: ... +@overload +def packSnorm(t: ctypes.c_int32, v: _NF32DFV4T, /) -> i32vec4: ... +@overload +def packSnorm(t: ctypes.c_uint32, v: glm_typing.F32Vector4, /) -> u32vec4: ... +@overload +def packSnorm(t: ctypes.c_uint32, v: _NF32DFV4T, /) -> u32vec4: ... +@overload +def packSnorm(t: ctypes.c_int64, v: glm_typing.F32Vector4, /) -> i64vec4: ... +@overload +def packSnorm(t: ctypes.c_int64, v: _NF32DFV4T, /) -> i64vec4: ... +@overload +def packSnorm(t: ctypes.c_uint64, v: glm_typing.F32Vector4, /) -> u64vec4: ... +@overload +def packSnorm(t: ctypes.c_uint64, v: _NF32DFV4T, /) -> u64vec4: ... + +def packSnorm1x16(v: float, /) -> int: ... + +def packSnorm1x8(v: float, /) -> int: ... + +def packSnorm2x8(v: glm_typing.F32Vector2, /) -> int: ... + +def packSnorm3x10_1x2(v: glm_typing.F32Vector4, /) -> int: ... + +def packSnorm4x16(v: glm_typing.F32Vector4, /) -> int: ... + +def packU3x10_1x2(v: glm_typing.U32Vector4, /) -> int: ... + +def packUint2x16(v: glm_typing.U16Vector2, /) -> int: ... + +def packUint2x32(v: glm_typing.U32Vector2, /) -> int: ... + +def packUint2x8(v: glm_typing.U8Vector2, /) -> int: ... + +def packUint4x16(v: glm_typing.U16Vector4, /) -> int: ... + +def packUint4x8(v: glm_typing.U16Vector4, /) -> int: ... + +@overload +def packUnorm(t: ctypes.c_uint8, v: glm_typing.F32Vector1, /) -> u8vec1: ... +@overload +def packUnorm(t: ctypes.c_uint8, v: _NF32DFV1T, /) -> u8vec1: ... +@overload +def packUnorm(t: ctypes.c_uint16, v: glm_typing.F32Vector1, /) -> u16vec1: ... +@overload +def packUnorm(t: ctypes.c_uint16, v: _NF32DFV1T, /) -> u16vec1: ... +@overload +def packUnorm(t: ctypes.c_uint32, v: glm_typing.F32Vector1, /) -> u32vec1: ... +@overload +def packUnorm(t: ctypes.c_uint32, v: _NF32DFV1T, /) -> u32vec1: ... +@overload +def packUnorm(t: ctypes.c_uint64, v: glm_typing.F32Vector1, /) -> u64vec1: ... +@overload +def packUnorm(t: ctypes.c_uint64, v: _NF32DFV1T, /) -> u64vec1: ... +@overload +def packUnorm(t: ctypes.c_uint8, v: glm_typing.F32Vector2, /) -> u8vec2: ... +@overload +def packUnorm(t: ctypes.c_uint8, v: _NF32DFV2T, /) -> u8vec2: ... +@overload +def packUnorm(t: ctypes.c_uint16, v: glm_typing.F32Vector2, /) -> u16vec2: ... +@overload +def packUnorm(t: ctypes.c_uint16, v: _NF32DFV2T, /) -> u16vec2: ... +@overload +def packUnorm(t: ctypes.c_uint32, v: glm_typing.F32Vector2, /) -> u32vec2: ... +@overload +def packUnorm(t: ctypes.c_uint32, v: _NF32DFV2T, /) -> u32vec2: ... +@overload +def packUnorm(t: ctypes.c_uint64, v: glm_typing.F32Vector2, /) -> u64vec2: ... +@overload +def packUnorm(t: ctypes.c_uint64, v: _NF32DFV2T, /) -> u64vec2: ... +@overload +def packUnorm(t: ctypes.c_uint8, v: glm_typing.F32Vector3, /) -> u8vec3: ... +@overload +def packUnorm(t: ctypes.c_uint8, v: _NF32DFV3T, /) -> u8vec3: ... +@overload +def packUnorm(t: ctypes.c_uint16, v: glm_typing.F32Vector3, /) -> u16vec3: ... +@overload +def packUnorm(t: ctypes.c_uint16, v: _NF32DFV3T, /) -> u16vec3: ... +@overload +def packUnorm(t: ctypes.c_uint32, v: glm_typing.F32Vector3, /) -> u32vec3: ... +@overload +def packUnorm(t: ctypes.c_uint32, v: _NF32DFV3T, /) -> u32vec3: ... +@overload +def packUnorm(t: ctypes.c_uint64, v: glm_typing.F32Vector3, /) -> u64vec3: ... +@overload +def packUnorm(t: ctypes.c_uint64, v: _NF32DFV3T, /) -> u64vec3: ... +@overload +def packUnorm(t: ctypes.c_uint8, v: glm_typing.F32Vector4, /) -> u8vec4: ... +@overload +def packUnorm(t: ctypes.c_uint8, v: _NF32DFV4T, /) -> u8vec4: ... +@overload +def packUnorm(t: ctypes.c_uint16, v: glm_typing.F32Vector4, /) -> u16vec4: ... +@overload +def packUnorm(t: ctypes.c_uint16, v: _NF32DFV4T, /) -> u16vec4: ... +@overload +def packUnorm(t: ctypes.c_uint32, v: glm_typing.F32Vector4, /) -> u32vec4: ... +@overload +def packUnorm(t: ctypes.c_uint32, v: _NF32DFV4T, /) -> u32vec4: ... +@overload +def packUnorm(t: ctypes.c_uint64, v: glm_typing.F32Vector4, /) -> u64vec4: ... +@overload +def packUnorm(t: ctypes.c_uint64, v: _NF32DFV4T, /) -> u64vec4: ... + +def packUnorm1x16(v: float, /) -> int: ... + +def packUnorm1x5_1x6_1x5(v: glm_typing.F32Vector3, /) -> int: ... + +def packUnorm2x4(v: glm_typing.F32Vector2, /) -> int: ... + +def packUnorm2x8(v: glm_typing.F32Vector2, /) -> int: ... + +def packUnorm3x10_1x2(v: glm_typing.F32Vector4, /) -> int: ... + +def packUnorm4x16(v: glm_typing.F32Vector4, /) -> int: ... + +def packUnorm4x4(v: glm_typing.F32Vector4, /) -> int: ... + +def unpackF2x11_1x10(p: int, /) -> vec3: ... + +def unpackF3x9_E1x5(p: int, /) -> vec3: ... + +@overload +def unpackHalf(v: glm_typing.U16Vector1, /) -> vec1: ... +@overload +def unpackHalf(v: glm_typing.U16Vector2, /) -> vec2: ... +@overload +def unpackHalf(v: glm_typing.U16Vector3, /) -> vec3: ... +@overload +def unpackHalf(v: glm_typing.U16Vector4, /) -> vec4: ... + +def unpackHalf1x16(p: int, /) -> float: ... + +def unpackI3x10_1x2(p: int, /) -> ivec4: ... + +def unpackInt2x16(p: int, /) -> i16vec2: ... + +def unpackInt2x32(p: int, /) -> i32vec2: ... + +def unpackInt2x8(p: int, /) -> i8vec2: ... + +def unpackInt4x16(p: int, /) -> i16vec4: ... + +def unpackInt4x8(p: int, /) -> i8vec4: ... + +def unpackRGBM(p: glm_typing.F32Vector4, /) -> vec3: ... + +@overload +def unpackSnorm(t: ctypes.c_float, v: glm_typing.I32Vector1, /) -> vec1: ... +@overload +def unpackSnorm(t: ctypes.c_float, v: _NI32IUV1T, /) -> vec1: ... +@overload +def unpackSnorm(t: ctypes.c_double, v: glm_typing.I32Vector1, /) -> dvec1: ... +@overload +def unpackSnorm(t: ctypes.c_double, v: _NI32IUV1T, /) -> dvec1: ... +@overload +def unpackSnorm(t: ctypes.c_float, v: glm_typing.I32Vector2, /) -> vec2: ... +@overload +def unpackSnorm(t: ctypes.c_float, v: _NI32IUV2T, /) -> vec2: ... +@overload +def unpackSnorm(t: ctypes.c_double, v: glm_typing.I32Vector2, /) -> dvec2: ... +@overload +def unpackSnorm(t: ctypes.c_double, v: _NI32IUV2T, /) -> dvec2: ... +@overload +def unpackSnorm(t: ctypes.c_float, v: glm_typing.I32Vector3, /) -> vec3: ... +@overload +def unpackSnorm(t: ctypes.c_float, v: _NI32IUV3T, /) -> vec3: ... +@overload +def unpackSnorm(t: ctypes.c_double, v: glm_typing.I32Vector3, /) -> dvec3: ... +@overload +def unpackSnorm(t: ctypes.c_double, v: _NI32IUV3T, /) -> dvec3: ... +@overload +def unpackSnorm(t: ctypes.c_float, v: glm_typing.I32Vector4, /) -> vec4: ... +@overload +def unpackSnorm(t: ctypes.c_float, v: _NI32IUV4T, /) -> vec4: ... +@overload +def unpackSnorm(t: ctypes.c_double, v: glm_typing.I32Vector4, /) -> dvec4: ... +@overload +def unpackSnorm(t: ctypes.c_double, v: _NI32IUV4T, /) -> dvec4: ... + +def unpackSnorm1x16(p: int, /) -> float: ... + +def unpackSnorm1x8(p: int, /) -> float: ... + +def unpackSnorm2x8(p: int, /) -> vec2: ... + +def unpackSnorm3x10_1x2(p: int, /) -> vec4: ... + +def unpackSnorm4x16(p: int, /) -> vec4: ... + +def unpackU3x10_1x2(p: int, /) -> uvec4: ... + +def unpackUint2x16(p: int, /) -> u16vec2: ... + +def unpackUint2x32(p: int, /) -> u32vec2: ... + +def unpackUint2x8(p: int, /) -> u8vec2: ... + +def unpackUint4x16(p: int, /) -> u16vec4: ... + +def unpackUint4x8(p: int, /) -> u8vec4: ... + +@overload +def unpackUnorm(t: ctypes.c_float, v: glm_typing.I32Vector1, /) -> vec1: ... +@overload +def unpackUnorm(t: ctypes.c_float, v: _NI32IUV1T, /) -> vec1: ... +@overload +def unpackUnorm(t: ctypes.c_double, v: glm_typing.I32Vector1, /) -> dvec1: ... +@overload +def unpackUnorm(t: ctypes.c_double, v: _NI32IUV1T, /) -> dvec1: ... +@overload +def unpackUnorm(t: ctypes.c_float, v: glm_typing.I32Vector2, /) -> vec2: ... +@overload +def unpackUnorm(t: ctypes.c_float, v: _NI32IUV2T, /) -> vec2: ... +@overload +def unpackUnorm(t: ctypes.c_double, v: glm_typing.I32Vector2, /) -> dvec2: ... +@overload +def unpackUnorm(t: ctypes.c_double, v: _NI32IUV2T, /) -> dvec2: ... +@overload +def unpackUnorm(t: ctypes.c_float, v: glm_typing.I32Vector3, /) -> vec3: ... +@overload +def unpackUnorm(t: ctypes.c_float, v: _NI32IUV3T, /) -> vec3: ... +@overload +def unpackUnorm(t: ctypes.c_double, v: glm_typing.I32Vector3, /) -> dvec3: ... +@overload +def unpackUnorm(t: ctypes.c_double, v: _NI32IUV3T, /) -> dvec3: ... +@overload +def unpackUnorm(t: ctypes.c_float, v: glm_typing.I32Vector4, /) -> vec4: ... +@overload +def unpackUnorm(t: ctypes.c_float, v: _NI32IUV4T, /) -> vec4: ... +@overload +def unpackUnorm(t: ctypes.c_double, v: glm_typing.I32Vector4, /) -> dvec4: ... +@overload +def unpackUnorm(t: ctypes.c_double, v: _NI32IUV4T, /) -> dvec4: ... + +def unpackUnorm1x16(p: int, /) -> float: ... + +def unpackUnorm1x5_1x6_1x5(p: int, /) -> vec3: ... + +def unpackUnorm1x8(p: int, /) -> float: ... + +def unpackUnorm2x3_1x2(p: int, /) -> vec3: ... + +def unpackUnorm2x4(p: int, /) -> vec2: ... + +def unpackUnorm2x8(p: int, /) -> vec2: ... + +def unpackUnorm3x10_1x2(p: int, /) -> vec4: ... + +def unpackUnorm3x5_1x1(p: int, /) -> vec4: ... + +def unpackUnorm4x16(p: int, /) -> vec4: ... + +def unpackUnorm4x4(p: int, /) -> vec4: ... + + +@overload +def eulerAngles(x: glm_typing.F32Quaternion, /) -> vec3: ... +@overload +def eulerAngles(x: dquat, /) -> dvec3: ... + +@overload +def mat3_cast(x: glm_typing.F32Quaternion, /) -> mat3: ... +@overload +def mat3_cast(x: dquat, /) -> dmat3: ... + +@overload +def mat4_cast(x: glm_typing.F32Quaternion, /) -> mat4: ... +@overload +def mat4_cast(x: dquat, /) -> dmat4: ... + +def pitch(x: glm_typing.AnyAnyQuaternion, /) -> float: ... + +@overload +def quatLookAtLH(direction: glm_typing.F32Vector3, up: glm_typing.F32Vector3, /) -> quat: ... +@overload +def quatLookAtLH(direction: dvec3, up: dvec3, /) -> dquat: ... + +@overload +def quatLookAtRH(direction: glm_typing.F32Vector3, up: glm_typing.F32Vector3, /) -> quat: ... +@overload +def quatLookAtRH(direction: dvec3, up: dvec3, /) -> dquat: ... + +@overload +def quatLookAt(direction: glm_typing.F32Vector3, up: glm_typing.F32Vector3, /) -> quat: ... +@overload +def quatLookAt(direction: dvec3, up: dvec3, /) -> dquat: ... + +@overload +def quat_cast(x: Union[glm_typing.F32Matrix3x3, glm_typing.F32Matrix4x4], /) -> quat: ... +@overload +def quat_cast(x: Union[dmat3, dmat4], /) -> quat: ... + +def roll(x: glm_typing.AnyAnyQuaternion, /) -> float: ... + +def yaw(x: glm_typing.AnyAnyQuaternion, /) -> float: ... + + +def ballRand(Radius: glm_typing.Number, /) -> vec3: ... + +def circularRand(Radius: glm_typing.Number, /) -> vec2: ... + +def diskRand(Radius: glm_typing.Number, /) -> vec2: ... + +@overload +def gaussRand(Mean: glm_typing.Number, Deviation: glm_typing.Number, /) -> float: ... +@overload +def gaussRand(Mean: glm_typing.F32Vector1, Deviation: glm_typing.F32Vector1, /) -> vec1: ... +@overload +def gaussRand(Mean: glm_typing.F32Vector2, Deviation: glm_typing.F32Vector2, /) -> vec2: ... +@overload +def gaussRand(Mean: glm_typing.F32Vector3, Deviation: glm_typing.F32Vector3, /) -> vec3: ... +@overload +def gaussRand(Mean: glm_typing.F32Vector4, Deviation: glm_typing.F32Vector4, /) -> vec4: ... +@overload +def gaussRand(Mean: _NF32VT, Deviation: _NF32VT, /) -> _NF32VT: ... + +@overload +def linearRand(Min: glm_typing.Number, Max: glm_typing.Number, /) -> float: ... +@overload +def linearRand(Min: glm_typing.F32Vector1, Max: glm_typing.F32Vector1, /) -> vec1: ... +@overload +def linearRand(Min: glm_typing.F32Vector2, Max: glm_typing.F32Vector2, /) -> vec2: ... +@overload +def linearRand(Min: glm_typing.F32Vector3, Max: glm_typing.F32Vector3, /) -> vec3: ... +@overload +def linearRand(Min: glm_typing.F32Vector4, Max: glm_typing.F32Vector4, /) -> vec4: ... +@overload +def linearRand(Min: _NF32VT, Max: _NF32VT, /) -> _NF32VT: ... + +def setSeed(seed: SupportsInt, /) -> None: ... + +def sphericalRand(Radius: glm_typing.Number, /) -> vec3: ... + + +def acot(x: glm_typing.Number, /) -> float: ... + +def acoth(x: glm_typing.Number, /) -> float: ... + +def acsc(x: glm_typing.Number, /) -> float: ... + +def acsch(x: glm_typing.Number, /) -> float: ... + +def asec(x: glm_typing.Number, /) -> float: ... + +def asech(x: glm_typing.Number, /) -> float: ... + +def cot(x: glm_typing.Number, /) -> float: ... + +def coth(x: glm_typing.Number, /) -> float: ... + +def csc(x: glm_typing.Number, /) -> float: ... + +def csch(x: glm_typing.Number, /) -> float: ... + +def sec(x: glm_typing.Number, /) -> float: ... + +def sech(x: glm_typing.Number, /) -> float: ... + + +@overload +def ceilMultiple(v: glm_typing.Number, Multiple: glm_typing.Number, /) -> int: ... +@overload +def ceilMultiple(v: glm_typing.I32Vector1, Multiple: glm_typing.I32Vector1, /) -> ivec1: ... +@overload +def ceilMultiple(v: glm_typing.I32Vector2, Multiple: glm_typing.I32Vector2, /) -> ivec2: ... +@overload +def ceilMultiple(v: glm_typing.I32Vector3, Multiple: glm_typing.I32Vector3, /) -> ivec3: ... +@overload +def ceilMultiple(v: glm_typing.I32Vector4, Multiple: glm_typing.I32Vector4, /) -> ivec4: ... +@overload +def ceilMultiple(v: _NI32IVT, Multiple: _NI32IVT, /) -> _NI32IVT: ... + +@overload +def ceilPowerOfTwo(v: glm_typing.Number, Multiple: glm_typing.Number, /) -> int: ... +@overload +def ceilPowerOfTwo(v: glm_typing.I32Vector1, Multiple: glm_typing.I32Vector1, /) -> ivec1: ... +@overload +def ceilPowerOfTwo(v: glm_typing.I32Vector2, Multiple: glm_typing.I32Vector2, /) -> ivec2: ... +@overload +def ceilPowerOfTwo(v: glm_typing.I32Vector3, Multiple: glm_typing.I32Vector3, /) -> ivec3: ... +@overload +def ceilPowerOfTwo(v: glm_typing.I32Vector4, Multiple: glm_typing.I32Vector4, /) -> ivec4: ... +@overload +def ceilPowerOfTwo(v: _NI32IVT, Multiple: _NI32IVT, /) -> _NI32IVT: ... + +@overload +def floorMultiple(v: glm_typing.Number, Multiple: glm_typing.Number, /) -> int: ... +@overload +def floorMultiple(v: glm_typing.I32Vector1, Multiple: glm_typing.I32Vector1, /) -> ivec1: ... +@overload +def floorMultiple(v: glm_typing.I32Vector2, Multiple: glm_typing.I32Vector2, /) -> ivec2: ... +@overload +def floorMultiple(v: glm_typing.I32Vector3, Multiple: glm_typing.I32Vector3, /) -> ivec3: ... +@overload +def floorMultiple(v: glm_typing.I32Vector4, Multiple: glm_typing.I32Vector4, /) -> ivec4: ... +@overload +def floorMultiple(v: _NI32IVT, Multiple: _NI32IVT, /) -> _NI32IVT: ... + +@overload +def floorPowerOfTwo(v: glm_typing.Number, Multiple: glm_typing.Number, /) -> int: ... +@overload +def floorPowerOfTwo(v: glm_typing.I32Vector1, Multiple: glm_typing.I32Vector1, /) -> ivec1: ... +@overload +def floorPowerOfTwo(v: glm_typing.I32Vector2, Multiple: glm_typing.I32Vector2, /) -> ivec2: ... +@overload +def floorPowerOfTwo(v: glm_typing.I32Vector3, Multiple: glm_typing.I32Vector3, /) -> ivec3: ... +@overload +def floorPowerOfTwo(v: glm_typing.I32Vector4, Multiple: glm_typing.I32Vector4, /) -> ivec4: ... +@overload +def floorPowerOfTwo(v: _NI32IVT, Multiple: _NI32IVT, /) -> _NI32IVT: ... + +@overload +def roundMultiple(v: glm_typing.Number, Multiple: glm_typing.Number, /) -> int: ... +@overload +def roundMultiple(v: glm_typing.I32Vector1, Multiple: glm_typing.I32Vector1, /) -> ivec1: ... +@overload +def roundMultiple(v: glm_typing.I32Vector2, Multiple: glm_typing.I32Vector2, /) -> ivec2: ... +@overload +def roundMultiple(v: glm_typing.I32Vector3, Multiple: glm_typing.I32Vector3, /) -> ivec3: ... +@overload +def roundMultiple(v: glm_typing.I32Vector4, Multiple: glm_typing.I32Vector4, /) -> ivec4: ... +@overload +def roundMultiple(v: _NI32IVT, Multiple: _NI32IVT, /) -> _NI32IVT: ... + +@overload +def roundPowerOfTwo(v: glm_typing.Number, Multiple: glm_typing.Number, /) -> int: ... +@overload +def roundPowerOfTwo(v: glm_typing.I32Vector1, Multiple: glm_typing.I32Vector1, /) -> ivec1: ... +@overload +def roundPowerOfTwo(v: glm_typing.I32Vector2, Multiple: glm_typing.I32Vector2, /) -> ivec2: ... +@overload +def roundPowerOfTwo(v: glm_typing.I32Vector3, Multiple: glm_typing.I32Vector3, /) -> ivec3: ... +@overload +def roundPowerOfTwo(v: glm_typing.I32Vector4, Multiple: glm_typing.I32Vector4, /) -> ivec4: ... +@overload +def roundPowerOfTwo(v: _NI32IVT, Multiple: _NI32IVT, /) -> _NI32IVT: ... + + +def make_mat2(x: ctypes.pointer[Any], /) -> mat2x2: ... + +def make_mat3(x: ctypes.pointer[Any], /) -> mat3x3: ... + +def make_mat4(x: ctypes.pointer[Any], /) -> mat4x4: ... + +def make_mat2x2(x: ctypes.pointer[Any], /) -> mat2x2: ... + +def make_mat2x3(x: ctypes.pointer[Any], /) -> mat2x3: ... + +def make_mat2x4(x: ctypes.pointer[Any], /) -> mat2x4: ... + +def make_mat3x2(x: ctypes.pointer[Any], /) -> mat3x2: ... + +def make_mat3x3(x: ctypes.pointer[Any], /) -> mat3x3: ... + +def make_mat3x4(x: ctypes.pointer[Any], /) -> mat3x4: ... + +def make_mat4x2(x: ctypes.pointer[Any], /) -> mat4x2: ... + +def make_mat4x3(x: ctypes.pointer[Any], /) -> mat4x3: ... + +def make_mat4x4(x: ctypes.pointer[Any], /) -> mat4x4: ... + +def make_quat(x: ctypes.pointer[Any], /) -> quat: ... + +def make_vec2(x: ctypes.pointer[Any], /) -> vec2: ... + +def make_vec3(x: ctypes.pointer[Any], /) -> vec3: ... + +def make_vec4(x: ctypes.pointer[Any], /) -> vec4: ... + +@overload +def sizeof(x: Type[Union[ctypes.c_bool, ctypes.c_short, ctypes.c_long, ctypes.c_longlong, ctypes.c_byte, ctypes.c_ushort, ctypes.c_ulong, ctypes.c_ulonglong, ctypes.c_ubyte, ctypes.c_double, ctypes.c_float, glm_typing.AnyAnyVecAny, glm_typing.AnyAnyMatAnyxAny, glm_typing.AnyAnyQuat]], /) -> int: ... +@overload +def sizeof(x: Union[ctypes.c_bool, ctypes.c_short, ctypes.c_long, ctypes.c_longlong, ctypes.c_byte, ctypes.c_ushort, ctypes.c_ulong, ctypes.c_ulonglong, ctypes.c_ubyte, ctypes.c_double, ctypes.c_float, array[Any], glm_typing.AnyAnyVecAny, glm_typing.AnyAnyMatAnyxAny, glm_typing.AnyAnyQuat], /) -> int: ... + +@overload +def value_ptr(x: Union[glm_typing.F32VecAny, glm_typing.F32MatAnyxAny, glm_typing.F32Quat], /) -> ctypes.pointer[ctypes.c_float]: ... +@overload +def value_ptr(x: Union[glm_typing.D64VecAny, glm_typing.D64MatAnyxAny, glm_typing.D64Quat], /) -> ctypes.pointer[ctypes.c_double]: ... +@overload +def value_ptr(x: Union[glm_typing.I32VecAny, glm_typing.I32MatAnyxAny], /) -> ctypes.pointer[ctypes.c_int32]: ... +@overload +def value_ptr(x: Union[glm_typing.U32VecAny, glm_typing.U32MatAnyxAny], /) -> ctypes.pointer[ctypes.c_uint32]: ... +@overload +def value_ptr(x: glm_typing.I8VecAny, /) -> ctypes.pointer[ctypes.c_int8]: ... +@overload +def value_ptr(x: glm_typing.U8VecAny, /) -> ctypes.pointer[ctypes.c_uint8]: ... +@overload +def value_ptr(x: glm_typing.B8VecAny, /) -> ctypes.pointer[ctypes.c_bool]: ... +@overload +def value_ptr(x: glm_typing.I16VecAny, /) -> ctypes.pointer[ctypes.c_int16]: ... +@overload +def value_ptr(x: glm_typing.U16VecAny, /) -> ctypes.pointer[ctypes.c_uint16]: ... +@overload +def value_ptr(x: glm_typing.I64VecAny, /) -> ctypes.pointer[ctypes.c_int64]: ... +@overload +def value_ptr(x: glm_typing.U64VecAny, /) -> ctypes.pointer[ctypes.c_uint64]: ... + + +@overload +def float_distance(x: glm_typing.Number, y: glm_typing.Number) -> float: ... +@overload +def float_distance(x: glm_typing.F32Vector1, y: glm_typing.F32Vector1, /) -> ivec1: ... +@overload +def float_distance(x: dvec1, y: dvec1, /) -> i64vec1: ... +@overload +def float_distance(x: glm_typing.F32Vector2, y: glm_typing.F32Vector2, /) -> ivec2: ... +@overload +def float_distance(x: dvec2, y: dvec2, /) -> i64vec2: ... +@overload +def float_distance(x: glm_typing.F32Vector3, y: glm_typing.F32Vector3, /) -> ivec3: ... +@overload +def float_distance(x: dvec3, y: dvec3, /) -> i64vec3: ... +@overload +def float_distance(x: glm_typing.F32Vector4, y: glm_typing.F32Vector4, /) -> ivec4: ... +@overload +def float_distance(x: dvec4, y: dvec4, /) -> i64vec4: ... + +@overload +def next_float(x: glm_typing.Number, /) -> float: ... +@overload +def next_float(x: glm_typing.F32Vector1, /) -> vec1: ... +@overload +def next_float(x: glm_typing.F32Vector2, /) -> vec2: ... +@overload +def next_float(x: glm_typing.F32Vector3, /) -> vec3: ... +@overload +def next_float(x: glm_typing.F32Vector4, /) -> vec4: ... +@overload +def next_float(x: _NF32DFVT, /) -> _NF32DFVT: ... +@overload +def next_float(x: glm_typing.Number, ULPs: glm_typing.Number, /) -> float: ... +@overload +def next_float(x: glm_typing.F32Vector1, ULPs: glm_typing.Number, /) -> vec1: ... +@overload +def next_float(x: glm_typing.F32Vector2, ULPs: glm_typing.Number, /) -> vec2: ... +@overload +def next_float(x: glm_typing.F32Vector3, ULPs: glm_typing.Number, /) -> vec3: ... +@overload +def next_float(x: glm_typing.F32Vector4, ULPs: glm_typing.Number, /) -> vec4: ... +@overload +def next_float(x: _NF32DFVT, ULPs: glm_typing.Number, /) -> _NF32DFVT: ... +@overload +def next_float(x: glm_typing.F32Vector1, ULPs: glm_typing.I32Vector1, /) -> vec1: ... +@overload +def next_float(x: _NF32DFV1T, ULPs: glm_typing.I32Vector1, /) -> _NF32DFV1T: ... +@overload +def next_float(x: glm_typing.F32Vector2, ULPs: glm_typing.I32Vector2, /) -> vec2: ... +@overload +def next_float(x: _NF32DFV2T, ULPs: glm_typing.I32Vector2, /) -> _NF32DFV2T: ... +@overload +def next_float(x: glm_typing.F32Vector3, ULPs: glm_typing.I32Vector3, /) -> vec3: ... +@overload +def next_float(x: _NF32DFV3T, ULPs: glm_typing.I32Vector3, /) -> _NF32DFV3T: ... +@overload +def next_float(x: glm_typing.F32Vector4, ULPs: glm_typing.I32Vector4, /) -> vec4: ... +@overload +def next_float(x: _NF32DFV4T, ULPs: glm_typing.I32Vector4, /) -> _NF32DFV4T: ... + +@overload +def prev_float(x: glm_typing.Number, /) -> float: ... +@overload +def prev_float(x: glm_typing.F32Vector1, /) -> vec1: ... +@overload +def prev_float(x: glm_typing.F32Vector2, /) -> vec2: ... +@overload +def prev_float(x: glm_typing.F32Vector3, /) -> vec3: ... +@overload +def prev_float(x: glm_typing.F32Vector4, /) -> vec4: ... +@overload +def prev_float(x: _NF32DFVT, /) -> _NF32DFVT: ... +@overload +def prev_float(x: glm_typing.Number, ULPs: glm_typing.Number, /) -> float: ... +@overload +def prev_float(x: glm_typing.F32Vector1, ULPs: glm_typing.Number, /) -> vec1: ... +@overload +def prev_float(x: glm_typing.F32Vector2, ULPs: glm_typing.Number, /) -> vec2: ... +@overload +def prev_float(x: glm_typing.F32Vector3, ULPs: glm_typing.Number, /) -> vec3: ... +@overload +def prev_float(x: glm_typing.F32Vector4, ULPs: glm_typing.Number, /) -> vec4: ... +@overload +def prev_float(x: _NF32DFVT, ULPs: glm_typing.Number, /) -> _NF32DFVT: ... +@overload +def prev_float(x: glm_typing.F32Vector1, ULPs: glm_typing.I32Vector1, /) -> vec1: ... +@overload +def prev_float(x: _NF32DFV1T, ULPs: glm_typing.I32Vector1, /) -> _NF32DFV1T: ... +@overload +def prev_float(x: glm_typing.F32Vector2, ULPs: glm_typing.I32Vector2, /) -> vec2: ... +@overload +def prev_float(x: _NF32DFV2T, ULPs: glm_typing.I32Vector2, /) -> _NF32DFV2T: ... +@overload +def prev_float(x: glm_typing.F32Vector3, ULPs: glm_typing.I32Vector3, /) -> vec3: ... +@overload +def prev_float(x: _NF32DFV3T, ULPs: glm_typing.I32Vector3, /) -> _NF32DFV3T: ... +@overload +def prev_float(x: glm_typing.F32Vector4, ULPs: glm_typing.I32Vector4, /) -> vec4: ... +@overload +def prev_float(x: _NF32DFV4T, ULPs: glm_typing.I32Vector4, /) -> _NF32DFV4T: ... + + +def frustumLH_NO(left: glm_typing.Number, right: glm_typing.Number, bottom: glm_typing.Number, top: glm_typing.Number, near: glm_typing.Number, far: glm_typing.Number, /) -> mat4x4: ... + +def frustumLH_ZO(left: glm_typing.Number, right: glm_typing.Number, bottom: glm_typing.Number, top: glm_typing.Number, near: glm_typing.Number, far: glm_typing.Number, /) -> mat4x4: ... + +def frustumRH_NO(left: glm_typing.Number, right: glm_typing.Number, bottom: glm_typing.Number, top: glm_typing.Number, near: glm_typing.Number, far: glm_typing.Number, /) -> mat4x4: ... + +def frustumRH_ZO(left: glm_typing.Number, right: glm_typing.Number, bottom: glm_typing.Number, top: glm_typing.Number, near: glm_typing.Number, far: glm_typing.Number, /) -> mat4x4: ... + +def frustum(left: glm_typing.Number, right: glm_typing.Number, bottom: glm_typing.Number, top: glm_typing.Number, near: glm_typing.Number, far: glm_typing.Number, /) -> mat4x4: ... + +def frustumNO(left: glm_typing.Number, right: glm_typing.Number, bottom: glm_typing.Number, top: glm_typing.Number, near: glm_typing.Number, far: glm_typing.Number, /) -> mat4x4: ... + +def frustumRH(left: glm_typing.Number, right: glm_typing.Number, bottom: glm_typing.Number, top: glm_typing.Number, near: glm_typing.Number, far: glm_typing.Number, /) -> mat4x4: ... + +def frustumLH(left: glm_typing.Number, right: glm_typing.Number, bottom: glm_typing.Number, top: glm_typing.Number, near: glm_typing.Number, far: glm_typing.Number, /) -> mat4x4: ... + +def frustumZO(left: glm_typing.Number, right: glm_typing.Number, bottom: glm_typing.Number, top: glm_typing.Number, near: glm_typing.Number, far: glm_typing.Number, /) -> mat4x4: ... + +def infinitePerspectiveLH(fovy: glm_typing.Number, aspect: glm_typing.Number, near: glm_typing.Number, /) -> mat4x4: ... + +def infinitePerspectiveRH(fovy: glm_typing.Number, aspect: glm_typing.Number, near: glm_typing.Number, /) -> mat4x4: ... + +def infinitePerspective(fovy: glm_typing.Number, aspect: glm_typing.Number, near: glm_typing.Number, /) -> mat4x4: ... + +def orthoLH_NO(left: glm_typing.Number, right: glm_typing.Number, bottom: glm_typing.Number, top: glm_typing.Number, zNear: glm_typing.Number, zFar: glm_typing.Number, /) -> mat4x4: ... + +def orthoLH_ZO(left: glm_typing.Number, right: glm_typing.Number, bottom: glm_typing.Number, top: glm_typing.Number, zNear: glm_typing.Number, zFar: glm_typing.Number, /) -> mat4x4: ... + +def orthoRH_NO(left: glm_typing.Number, right: glm_typing.Number, bottom: glm_typing.Number, top: glm_typing.Number, zNear: glm_typing.Number, zFar: glm_typing.Number, /) -> mat4x4: ... + +def orthoRH_ZO(left: glm_typing.Number, right: glm_typing.Number, bottom: glm_typing.Number, top: glm_typing.Number, zNear: glm_typing.Number, zFar: glm_typing.Number, /) -> mat4x4: ... + +def ortho(left: glm_typing.Number, right: glm_typing.Number, bottom: glm_typing.Number, top: glm_typing.Number, zNear: glm_typing.Number, zFar: glm_typing.Number, /) -> mat4x4: ... + +def orthoLH(left: glm_typing.Number, right: glm_typing.Number, bottom: glm_typing.Number, top: glm_typing.Number, zNear: glm_typing.Number, zFar: glm_typing.Number, /) -> mat4x4: ... + +def orthoNO(left: glm_typing.Number, right: glm_typing.Number, bottom: glm_typing.Number, top: glm_typing.Number, zNear: glm_typing.Number, zFar: glm_typing.Number, /) -> mat4x4: ... + +def orthoRH(left: glm_typing.Number, right: glm_typing.Number, bottom: glm_typing.Number, top: glm_typing.Number, zNear: glm_typing.Number, zFar: glm_typing.Number, /) -> mat4x4: ... + +def orthoZO(left: glm_typing.Number, right: glm_typing.Number, bottom: glm_typing.Number, top: glm_typing.Number, zNear: glm_typing.Number, zFar: glm_typing.Number, /) -> mat4x4: ... + +def perspectiveLH_NO(fovy: glm_typing.Number, aspect: glm_typing.Number, near: glm_typing.Number, far: glm_typing.Number, /) -> mat4x4: ... + +def perspectiveLH_ZO(fovy: glm_typing.Number, aspect: glm_typing.Number, near: glm_typing.Number, far: glm_typing.Number, /) -> mat4x4: ... + +def perspectiveRH_NO(fovy: glm_typing.Number, aspect: glm_typing.Number, near: glm_typing.Number, far: glm_typing.Number, /) -> mat4x4: ... + +def perspectiveRH_ZO(fovy: glm_typing.Number, aspect: glm_typing.Number, near: glm_typing.Number, far: glm_typing.Number, /) -> mat4x4: ... + +def perspective(fovy: glm_typing.Number, aspect: glm_typing.Number, near: glm_typing.Number, far: glm_typing.Number, /) -> mat4x4: ... + +def perspectiveLH(fovy: glm_typing.Number, aspect: glm_typing.Number, near: glm_typing.Number, far: glm_typing.Number, /) -> mat4x4: ... + +def perspectiveNO(fovy: glm_typing.Number, aspect: glm_typing.Number, near: glm_typing.Number, far: glm_typing.Number, /) -> mat4x4: ... + +def perspectiveRH(fovy: glm_typing.Number, aspect: glm_typing.Number, near: glm_typing.Number, far: glm_typing.Number, /) -> mat4x4: ... + +def perspectiveZO(fovy: glm_typing.Number, aspect: glm_typing.Number, near: glm_typing.Number, far: glm_typing.Number, /) -> mat4x4: ... + +def perspectiveFovLH_NO(fov: glm_typing.Number, width: glm_typing.Number, height: glm_typing.Number, near: glm_typing.Number, far: glm_typing.Number, /) -> mat4x4: ... + +def perspectiveFovLH_ZO(fov: glm_typing.Number, width: glm_typing.Number, height: glm_typing.Number, near: glm_typing.Number, far: glm_typing.Number, /) -> mat4x4: ... + +def perspectiveFovRH_NO(fov: glm_typing.Number, width: glm_typing.Number, height: glm_typing.Number, near: glm_typing.Number, far: glm_typing.Number, /) -> mat4x4: ... + +def perspectiveFovRH_ZO(fov: glm_typing.Number, width: glm_typing.Number, height: glm_typing.Number, near: glm_typing.Number, far: glm_typing.Number, /) -> mat4x4: ... + +def perspectiveFov(fov: glm_typing.Number, width: glm_typing.Number, height: glm_typing.Number, near: glm_typing.Number, far: glm_typing.Number, /) -> mat4x4: ... + +def perspectiveFovLH(fov: glm_typing.Number, width: glm_typing.Number, height: glm_typing.Number, near: glm_typing.Number, far: glm_typing.Number, /) -> mat4x4: ... + +def perspectiveFovNO(fov: glm_typing.Number, width: glm_typing.Number, height: glm_typing.Number, near: glm_typing.Number, far: glm_typing.Number, /) -> mat4x4: ... + +def perspectiveFovRH(fov: glm_typing.Number, width: glm_typing.Number, height: glm_typing.Number, near: glm_typing.Number, far: glm_typing.Number, /) -> mat4x4: ... + +def perspectiveFovZO(fov: glm_typing.Number, width: glm_typing.Number, height: glm_typing.Number, near: glm_typing.Number, far: glm_typing.Number, /) -> mat4x4: ... + +@overload +def tweakedInfinitePerspective(fovy: glm_typing.Number, aspect: glm_typing.Number, near: glm_typing.Number, /) -> mat4x4: ... +@overload +def tweakedInfinitePerspective(fovy: glm_typing.Number, aspect: glm_typing.Number, near: glm_typing.Number, epsilon: float, /) -> mat4x4: ... + + +@overload +def pickMatrix(center: glm_typing.F32Vector2, delta: glm_typing.F32Vector2, viewport: glm_typing.F32Vector4, /) -> mat4x4: ... +@overload +def pickMatrix(center: dvec2, delta: dvec2, viewport: dvec4, /) -> dmat4x4: ... + +@overload +def projectNO(obj: glm_typing.F32Vector3, model: glm_typing.F32Matrix4x4, proj: glm_typing.F32Matrix4x4, viewport: glm_typing.F32Vector4, /) -> vec3: ... +@overload +def projectNO(obj: dvec3, model: dmat4x4, proj: dmat4x4, viewport: dvec4, /) -> dvec3: ... + +@overload +def project(obj: glm_typing.F32Vector3, model: glm_typing.F32Matrix4x4, proj: glm_typing.F32Matrix4x4, viewport: glm_typing.F32Vector4, /) -> vec3: ... +@overload +def project(obj: dvec3, model: dmat4x4, proj: dmat4x4, viewport: dvec4, /) -> dvec3: ... + +@overload +def projectZO(obj: glm_typing.F32Vector3, model: glm_typing.F32Matrix4x4, proj: glm_typing.F32Matrix4x4, viewport: glm_typing.F32Vector4, /) -> vec3: ... +@overload +def projectZO(obj: dvec3, model: dmat4x4, proj: dmat4x4, viewport: dvec4, /) -> dvec3: ... + +@overload +def unProjectNO(obj: glm_typing.F32Vector3, model: glm_typing.F32Matrix4x4, proj: glm_typing.F32Matrix4x4, viewport: glm_typing.F32Vector4, /) -> vec3: ... +@overload +def unProjectNO(obj: dvec3, model: dmat4x4, proj: dmat4x4, viewport: dvec4, /) -> dvec3: ... + +@overload +def unProject(obj: glm_typing.F32Vector3, model: glm_typing.F32Matrix4x4, proj: glm_typing.F32Matrix4x4, viewport: glm_typing.F32Vector4, /) -> vec3: ... +@overload +def unProject(obj: dvec3, model: dmat4x4, proj: dmat4x4, viewport: dvec4, /) -> dvec3: ... + +@overload +def unProjectZO(obj: glm_typing.F32Vector3, model: glm_typing.F32Matrix4x4, proj: glm_typing.F32Matrix4x4, viewport: glm_typing.F32Vector4, /) -> vec3: ... +@overload +def unProjectZO(obj: dvec3, model: dmat4x4, proj: dmat4x4, viewport: dvec4, /) -> dvec3: ... + + +def identity(matrix_type: Type[_MT], /) -> _MT: ... + +@overload +def lookAtLH(eye: glm_typing.F32Vector3, center: glm_typing.F32Vector3, up: glm_typing.F32Vector3, /) -> mat4x4: ... +@overload +def lookAtLH(eye: dvec3, center: dvec3, up: dvec3, /) -> dmat4x4: ... + +@overload +def lookAtRH(eye: glm_typing.F32Vector3, center: glm_typing.F32Vector3, up: glm_typing.F32Vector3, /) -> mat4x4: ... +@overload +def lookAtRH(eye: dvec3, center: dvec3, up: dvec3, /) -> dmat4x4: ... + +@overload +def lookAt(eye: glm_typing.F32Vector3, center: glm_typing.F32Vector3, up: glm_typing.F32Vector3, /) -> mat4x4: ... +@overload +def lookAt(eye: dvec3, center: dvec3, up: dvec3, /) -> dmat4x4: ... + +@overload +def rotate(angle: glm_typing.Number, axis: glm_typing.F32Vector3, /) -> mat4x4: ... +@overload +def rotate(angle: glm_typing.Number, axis: dvec3, /) -> dmat4x4: ... +@overload +def rotate(angle: glm_typing.Number, /) -> mat3x3: ... +@overload +def rotate(m: glm_typing.F32Matrix4x4, angle: glm_typing.Number, axis: glm_typing.F32Vector3, /) -> mat4x4: ... +@overload +def rotate(m: dmat4x4, angle: glm_typing.Number, axis: dvec3, /) -> dmat4x4: ... +@overload +def rotate(m: glm_typing.F32Matrix3x3, angle: glm_typing.Number, /) -> mat3x3: ... +@overload +def rotate(m: dmat3x3, angle: glm_typing.Number, /) -> dmat3x3: ... +@overload +def rotate(v: glm_typing.F32Vector2, angle: glm_typing.Number, /) -> vec2: ... +@overload +def rotate(v: dvec2, angle: glm_typing.Number, /) -> dvec2: ... +@overload +def rotate(v: glm_typing.F32Vector3, angle: glm_typing.Number, normal: glm_typing.F32Vector3, /) -> vec3: ... +@overload +def rotate(v: dvec3, angle: glm_typing.Number, normal: dvec3, /) -> dvec3: ... +@overload +def rotate(v: glm_typing.F32Vector4, angle: glm_typing.Number, normal: glm_typing.F32Vector3, /) -> vec3: ... +@overload +def rotate(v: dvec4, angle: glm_typing.Number, normal: dvec3, /) -> dvec4: ... +@overload +def rotate(v: quat, angle: glm_typing.Number, normal: glm_typing.F32Vector3, /) -> quat: ... +@overload +def rotate(v: dquat, angle: glm_typing.Number, normal: dvec3, /) -> dquat: ... + +@overload +def rotate_slow(m: glm_typing.F32Matrix4x4, angle: glm_typing.Number, axis: glm_typing.F32Vector3, /) -> mat4x4: ... +@overload +def rotate_slow(m: dmat4x4, angle: glm_typing.Number, axis: dvec3, /) -> dmat4x4: ... + +@overload +def scale(v: glm_typing.F32Vector3, /) -> mat4x4: ... +@overload +def scale(v: dvec3, /) -> dmat4x4: ... +@overload +def scale(v: glm_typing.F32Vector2, /) -> mat3x3: ... +@overload +def scale(v: dvec2, /) -> mat3x3: ... +@overload +def scale(m: glm_typing.F32Matrix4x4, v: glm_typing.F32Vector3, /) -> mat4x4: ... +@overload +def scale(m: dmat4x4, v: dvec3, /) -> dmat4x4: ... +@overload +def scale(m: glm_typing.F32Matrix3x3, v: glm_typing.F32Vector2, /) -> mat3x3: ... +@overload +def scale(m: dmat3x3, v: dvec2, /) -> dmat3x3: ... + +@overload +def scale_slow(m: glm_typing.F32Matrix4x4, v: glm_typing.F32Vector3, /) -> mat4x4: ... +@overload +def scale_slow(m: dmat4x4, v: dvec3, /) -> dmat4x4: ... + +@overload +def translate(v: glm_typing.F32Vector3, /) -> mat4x4: ... +@overload +def translate(v: dvec3, /) -> dmat4x4: ... +@overload +def translate(v: glm_typing.F32Vector2, /) -> mat3x3: ... +@overload +def translate(v: dvec2, /) -> dmat3x3: ... +@overload +def translate(m: glm_typing.F32Matrix4x4, v: glm_typing.F32Vector3, /) -> mat4x4: ... +@overload +def translate(m: dmat4x4, v: dvec3, /) -> dmat4x4: ... +@overload +def translate(m: glm_typing.F32Matrix3x3, v: glm_typing.F32Vector2, /) -> mat3x3: ... +@overload +def translate(m: dmat3x3, v: dvec2, /) -> dmat3x3: ... + + +@overload +def conjugate(q: glm_typing.F32Quaternion, /) -> quat: ... +@overload +def conjugate(q: _NF32QT, /) -> _NF32QT: ... + +@overload +def lerp(x: glm_typing.F32Quaternion, y: glm_typing.F32Quaternion, a: glm_typing.Number, /) -> quat: ... +@overload +def lerp(x: _NF32QT, y: _NF32QT, a: glm_typing.Number, /) -> _NF32QT: ... +@overload +def lerp(x: glm_typing.F32Vector3, y: glm_typing.F32Vector3, a: glm_typing.Number, /) -> vec3: ... +@overload +def lerp(x: _NF32DFV3T, y: _NF32DFV3T, a: glm_typing.Number, /) -> _NF32DFV3T: ... + +@overload +def slerp(x: glm_typing.F32Quaternion, y: glm_typing.F32Quaternion, a: glm_typing.Number, /) -> quat: ... +@overload +def slerp(x: _NF32QT, y: _NF32QT, a: glm_typing.Number, /) -> _NF32QT: ... +@overload +def slerp(x: glm_typing.F32Vector3, y: glm_typing.F32Vector3, a: glm_typing.Number, /) -> vec3: ... +@overload +def slerp(x: _NF32DFV3T, y: _NF32DFV3T, a: glm_typing.Number, /) -> _NF32DFV3T: ... + + +def angle(x: _QT, /) -> float: ... + +@overload +def angleAxis(angle: glm_typing.Number, axis: glm_typing.F32Vector3, /) -> quat: ... +@overload +def angleAxis(angle: glm_typing.Number, axis: dvec3, /) -> dquat: ... + +@overload +def axis(x: glm_typing.F32Quat, /) -> vec3: ... +@overload +def axis(x: dquat, /) -> dvec3: ... + + +@overload +def decompose(modelMatrix: glm_typing.F32Matrix3x3, scale: glm_typing.F32Vector3, orientation: glm_typing.F32Quaternion, translation: glm_typing.F32Vector3, skew: glm_typing.F32Vector3, perspective: glm_typing.F32Vector4, /) -> bool: ... +@overload +def decompose(modelMatrix: dmat4x4, scale: dvec3, orientation: dquat, translation: dvec3, skew: dvec3, perspective: dvec4, /) -> bool: ... + + +@overload +def shearX(m: glm_typing.F32Matrix3x3, y: glm_typing.Number, /) -> mat3x3: ... +@overload +def shearX(m: _NF32M3X3T, y: glm_typing.Number, /) -> _NF32M3X3T: ... + +@overload +def shearY(m: glm_typing.F32Matrix3x3, y: glm_typing.Number, /) -> mat3x3: ... +@overload +def shearY(m: _NF32M3X3T, y: glm_typing.Number, /) -> _NF32M3X3T: ... + + + +@overload +def distance2(p0: glm_typing.F32Vector1, p1: glm_typing.F32Vector1, /) -> float: ... +@overload +def distance2(p0: glm_typing.F32Vector2, p1: glm_typing.F32Vector2, /) -> float: ... +@overload +def distance2(p0: glm_typing.F32Vector3, p1: glm_typing.F32Vector3, /) -> float: ... +@overload +def distance2(p0: glm_typing.F32Vector4, p1: glm_typing.F32Vector4, /) -> float: ... +@overload +def distance2(p0: _NF32DFVT, p1: _NF32DFVT, /) -> float: ... + +@overload +def l1Norm(v: glm_typing.FDAnyVector3, /) -> float: ... +@overload +def l1Norm(x: glm_typing.F32Vector3, y: glm_typing.F32Vector3, /) -> float: ... +@overload +def l1Norm(x: _NF32DFV3T, y: _NF32DFV3T, /) -> float: ... + +@overload +def l2Norm(v: glm_typing.FDAnyVector3, /) -> float: ... +@overload +def l2Norm(x: glm_typing.F32Vector3, y: glm_typing.F32Vector3, /) -> float: ... +@overload +def l2Norm(x: _NF32DFV3T, y: _NF32DFV3T, /) -> float: ... + +@overload +def lMaxNorm(v: glm_typing.FDAnyVector3, /) -> float: ... +@overload +def lMaxNorm(x: glm_typing.F32Vector3, y: glm_typing.F32Vector3, /) -> float: ... +@overload +def lMaxNorm(x: _NF32DFV3T, y: _NF32DFV3T, /) -> float: ... + +@overload +def length2(p0: glm_typing.F32Vector1, p1: glm_typing.F32Vector1, /) -> float: ... +@overload +def length2(p0: glm_typing.F32Vector2, p1: glm_typing.F32Vector2, /) -> float: ... +@overload +def length2(p0: glm_typing.F32Vector3, p1: glm_typing.F32Vector3, /) -> float: ... +@overload +def length2(p0: glm_typing.F32Vector4, p1: glm_typing.F32Vector4, /) -> float: ... +@overload +def length2(p0: _NF32DFVT, p1: _NF32DFVT, /) -> float: ... + +@overload +def lxNorm(v: glm_typing.FDAnyVector3, /) -> float: ... +@overload +def lxNorm(x: glm_typing.F32Vector3, y: glm_typing.F32Vector3, /) -> float: ... +@overload +def lxNorm(x: _NF32DFV3T, y: _NF32DFV3T, /) -> float: ... + + +@overload +def euclidean(polar: glm_typing.F32Vector2, /) -> vec3: ... +@overload +def euclidean(polar: dvec2, /) -> dvec3: ... + +@overload +def polar(euclidean: glm_typing.F32Vector3, /) -> vec3: ... +@overload +def polar(euclidean: _NF32DFV3T, /) -> _NF32DFV3T: ... + + +@overload +def orientation(Normal: glm_typing.F32Vector3, Up: glm_typing.F32Vector3, /) -> mat4x4: ... +@overload +def orientation(Normal: dvec3, Up: dvec3, /) -> dmat4x4: ... + +@overload +def rotateX(v: glm_typing.F32Vector3, angle: glm_typing.Number) -> vec3: ... +@overload +def rotateX(v: _NF32DFV3T, angle: glm_typing.Number) -> _NF32DFV3T: ... +@overload +def rotateX(v: glm_typing.F32Vector4, angle: glm_typing.Number) -> vec4: ... +@overload +def rotateX(v: _NF32DFV4T, angle: glm_typing.Number) -> _NF32DFV4T: ... + +@overload +def rotateY(v: glm_typing.F32Vector3, angle: glm_typing.Number) -> vec3: ... +@overload +def rotateY(v: _NF32DFV3T, angle: glm_typing.Number) -> _NF32DFV3T: ... +@overload +def rotateY(v: glm_typing.F32Vector4, angle: glm_typing.Number) -> vec4: ... +@overload +def rotateY(v: _NF32DFV4T, angle: glm_typing.Number) -> _NF32DFV4T: ... + +@overload +def rotateZ(v: glm_typing.F32Vector3, angle: glm_typing.Number) -> vec3: ... +@overload +def rotateZ(v: _NF32DFV3T, angle: glm_typing.Number) -> _NF32DFV3T: ... +@overload +def rotateZ(v: glm_typing.F32Vector4, angle: glm_typing.Number) -> vec4: ... +@overload +def rotateZ(v: _NF32DFV4T, angle: glm_typing.Number) -> _NF32DFV4T: ... + +__all__ = ['abs', 'acos', 'acosh', 'acot', 'acoth', 'acsc', 'acsch', 'add', 'affineInverse', 'all', 'and_', 'angle', 'angleAxis', 'any', 'array', 'asec', 'asech', 'asin', 'asinh', 'atan', 'atanh', 'axis', 'ballRand', 'bitCount', 'bitfieldExtract', 'bitfieldInsert', 'bitfieldReverse', 'bool_', 'bvec1', 'bvec2', 'bvec3', 'bvec4', 'c_int16', 'c_int32', 'c_int64', 'c_int8', 'c_uint16', 'c_uint32', 'c_uint64', 'c_uint8', 'ceil', 'ceilMultiple', 'ceilPowerOfTwo', 'circularRand', 'clamp', 'cmp', 'column', 'conjugate', 'convertLinearToSRGB', 'convertSRGBToLinear', 'cos', 'cosh', 'cot', 'coth', 'cross', 'csc', 'csch', 'decompose', 'degrees', 'determinant', 'diskRand', 'distance', 'distance2', 'div', 'dmat2', 'dmat2x2', 'dmat2x3', 'dmat2x4', 'dmat3', 'dmat3x2', 'dmat3x3', 'dmat3x4', 'dmat4', 'dmat4x2', 'dmat4x3', 'dmat4x4', 'dmvec2', 'dmvec3', 'dmvec4', 'dot', 'double', 'dquat', 'dvec1', 'dvec2', 'dvec3', 'dvec4', 'e', 'epsilon', 'epsilonEqual', 'epsilonNotEqual', 'equal', 'euclidean', 'euler', 'eulerAngles', 'exp', 'exp2', 'f32mat2', 'f32mat2x2', 'f32mat2x3', 'f32mat2x4', 'f32mat3', 'f32mat3x2', 'f32mat3x3', 'f32mat3x4', 'f32mat4', 'f32mat4x2', 'f32mat4x3', 'f32mat4x4', 'f32quat', 'f32vec1', 'f32vec2', 'f32vec3', 'f32vec4', 'f64mat2', 'f64mat2x2', 'f64mat2x3', 'f64mat2x4', 'f64mat3', 'f64mat3x2', 'f64mat3x3', 'f64mat3x4', 'f64mat4', 'f64mat4x2', 'f64mat4x3', 'f64mat4x4', 'f64quat', 'f64vec1', 'f64vec2', 'f64vec3', 'f64vec4', 'faceforward', 'findLSB', 'findMSB', 'float32', 'float64', 'floatBitsToInt', 'floatBitsToUint', 'float_', 'float_distance', 'floor', 'floorMultiple', 'floorPowerOfTwo', 'floordiv', 'fma', 'fmat2', 'fmat2x2', 'fmat2x3', 'fmat2x4', 'fmat3', 'fmat3x2', 'fmat3x3', 'fmat3x4', 'fmat4', 'fmat4x2', 'fmat4x3', 'fmat4x4', 'fmax', 'fmin', 'four_over_pi', 'fquat', 'fract', 'frexp', 'frustum', 'frustumLH', 'frustumLH_NO', 'frustumLH_ZO', 'frustumNO', 'frustumRH', 'frustumRH_NO', 'frustumRH_ZO', 'frustumZO', 'fvec1', 'fvec2', 'fvec3', 'fvec4', 'gaussRand', 'golden_ratio', 'greaterThan', 'greaterThanEqual', 'half_pi', 'i16vec1', 'i16vec2', 'i16vec3', 'i16vec4', 'i32mat2', 'i32mat2x2', 'i32mat2x3', 'i32mat2x4', 'i32mat3', 'i32mat3x2', 'i32mat3x3', 'i32mat3x4', 'i32mat4', 'i32mat4x2', 'i32mat4x3', 'i32mat4x4', 'i32vec1', 'i32vec2', 'i32vec3', 'i32vec4', 'i64vec1', 'i64vec2', 'i64vec3', 'i64vec4', 'i8vec1', 'i8vec2', 'i8vec3', 'i8vec4', 'identity', 'if_else', 'imat2', 'imat2x2', 'imat2x3', 'imat2x4', 'imat3', 'imat3x2', 'imat3x3', 'imat3x4', 'imat4', 'imat4x2', 'imat4x3', 'imat4x4', 'imulExtended', 'imvec2', 'imvec3', 'imvec4', 'infinitePerspective', 'infinitePerspectiveLH', 'infinitePerspectiveRH', 'int16', 'int32', 'int64', 'int8', 'intBitsToFloat', 'inv', 'inverse', 'inverseTranspose', 'inversesqrt', 'iround', 'isinf', 'isnan', 'ivec1', 'ivec2', 'ivec3', 'ivec4', 'l1Norm', 'l2Norm', 'lMaxNorm', 'ldexp', 'length2', 'lerp', 'lessThan', 'lessThanEqual', 'linearRand', 'ln_ln_two', 'ln_ten', 'ln_two', 'log', 'log2', 'lookAt', 'lookAtLH', 'lookAtRH', 'lshift', 'lxNorm', 'make_mat2', 'make_mat2x2', 'make_mat2x3', 'make_mat2x4', 'make_mat3', 'make_mat3x2', 'make_mat3x3', 'make_mat3x4', 'make_mat4', 'make_mat4x2', 'make_mat4x3', 'make_mat4x4', 'make_quat', 'make_vec2', 'make_vec3', 'make_vec4', 'mat2', 'mat2x2', 'mat2x3', 'mat2x4', 'mat3', 'mat3_cast', 'mat3x2', 'mat3x3', 'mat3x4', 'mat4', 'mat4_cast', 'mat4x2', 'mat4x3', 'mat4x4', 'matrixCompMult', 'max', 'min', 'mix', 'modf', 'mul', 'mvec2', 'mvec3', 'mvec4', 'neg', 'next_float', 'normalize', 'notEqual', 'not_', 'one', 'one_over_pi', 'one_over_root_two', 'or_', 'orientation', 'ortho', 'orthoLH', 'orthoLH_NO', 'orthoLH_ZO', 'orthoNO', 'orthoRH', 'orthoRH_NO', 'orthoRH_ZO', 'orthoZO', 'outerProduct', 'packDouble2x32', 'packF2x11_1x10', 'packF3x9_E1x5', 'packHalf', 'packHalf1x16', 'packHalf2x16', 'packHalf4x16', 'packI3x10_1x2', 'packInt2x16', 'packInt2x32', 'packInt2x8', 'packInt4x16', 'packInt4x8', 'packRGBM', 'packSnorm', 'packSnorm1x16', 'packSnorm1x8', 'packSnorm2x16', 'packSnorm2x8', 'packSnorm3x10_1x2', 'packSnorm4x16', 'packSnorm4x8', 'packU3x10_1x2', 'packUint2x16', 'packUint2x32', 'packUint2x8', 'packUint4x16', 'packUint4x8', 'packUnorm', 'packUnorm1x16', 'packUnorm1x5_1x6_1x5', 'packUnorm2x16', 'packUnorm2x4', 'packUnorm2x8', 'packUnorm3x10_1x2', 'packUnorm4x16', 'packUnorm4x4', 'packUnorm4x8', 'perlin', 'perspective', 'perspectiveFov', 'perspectiveFovLH', 'perspectiveFovLH_NO', 'perspectiveFovLH_ZO', 'perspectiveFovNO', 'perspectiveFovRH', 'perspectiveFovRH_NO', 'perspectiveFovRH_ZO', 'perspectiveFovZO', 'perspectiveLH', 'perspectiveLH_NO', 'perspectiveLH_ZO', 'perspectiveNO', 'perspectiveRH', 'perspectiveRH_NO', 'perspectiveRH_ZO', 'perspectiveZO', 'pi', 'pickMatrix', 'pitch', 'polar', 'pos', 'pow', 'prev_float', 'project', 'projectNO', 'projectZO', 'quat', 'quatLookAt', 'quatLookAtLH', 'quatLookAtRH', 'quater_pi', 'radians', 'reflect', 'refract', 'roll', 'root_five', 'root_half_pi', 'root_ln_four', 'root_pi', 'root_three', 'root_two', 'root_two_pi', 'round', 'roundEven', 'roundMultiple', 'roundPowerOfTwo', 'row', 'rshift', 'sec', 'sech', 'setSeed', 'shearX', 'shearY', 'sign', 'simplex', 'sin', 'sinh', 'sizeof', 'slerp', 'smoothstep', 'sphericalRand', 'sqrt', 'step', 'sub', 'tan', 'tanh', 'third', 'three_over_two_pi', 'transpose', 'trunc', 'tweakedInfinitePerspective', 'two_over_pi', 'two_over_root_pi', 'two_pi', 'two_thirds', 'u16vec1', 'u16vec2', 'u16vec3', 'u16vec4', 'u32mat2', 'u32mat2x2', 'u32mat2x3', 'u32mat2x4', 'u32mat3', 'u32mat3x2', 'u32mat3x3', 'u32mat3x4', 'u32mat4', 'u32mat4x2', 'u32mat4x3', 'u32mat4x4', 'u32vec1', 'u32vec2', 'u32vec3', 'u32vec4', 'u64vec1', 'u64vec2', 'u64vec3', 'u64vec4', 'u8vec1', 'u8vec2', 'u8vec3', 'u8vec4', 'uaddCarry', 'uint16', 'uint32', 'uint64', 'uint8', 'uintBitsToFloat', 'umat2', 'umat2x2', 'umat2x3', 'umat2x4', 'umat3', 'umat3x2', 'umat3x3', 'umat3x4', 'umat4', 'umat4x2', 'umat4x3', 'umat4x4', 'umulExtended', 'umvec2', 'umvec3', 'umvec4', 'unProject', 'unProjectNO', 'unProjectZO', 'unpackDouble2x32', 'unpackF2x11_1x10', 'unpackF3x9_E1x5', 'unpackHalf', 'unpackHalf1x16', 'unpackHalf2x16', 'unpackI3x10_1x2', 'unpackInt2x16', 'unpackInt2x32', 'unpackInt2x8', 'unpackInt4x16', 'unpackInt4x8', 'unpackRGBM', 'unpackSnorm', 'unpackSnorm1x16', 'unpackSnorm1x8', 'unpackSnorm2x16', 'unpackSnorm2x8', 'unpackSnorm3x10_1x2', 'unpackSnorm4x16', 'unpackSnorm4x8', 'unpackU3x10_1x2', 'unpackUint2x16', 'unpackUint2x32', 'unpackUint2x8', 'unpackUint4x16', 'unpackUint4x8', 'unpackUnorm', 'unpackUnorm1x16', 'unpackUnorm1x5_1x6_1x5', 'unpackUnorm1x8', 'unpackUnorm2x16', 'unpackUnorm2x3_1x2', 'unpackUnorm2x4', 'unpackUnorm2x8', 'unpackUnorm3x10_1x2', 'unpackUnorm3x5_1x1', 'unpackUnorm4x16', 'unpackUnorm4x4', 'unpackUnorm4x8', 'uround', 'usubBorrow', 'uvec1', 'uvec2', 'uvec3', 'uvec4', 'value_ptr', 'vec1', 'vec2', 'vec3', 'vec4', 'xor', 'yaw', 'zero'] diff --git a/PyGLM/glm_typing.py b/PyGLM/glm_typing.py new file mode 100644 index 00000000..bd077b28 --- /dev/null +++ b/PyGLM/glm_typing.py @@ -0,0 +1,530 @@ + +# generated by tools/generate.py +# https://github.com/esoma/pyglm-typing/ + +from typing import SupportsFloat, SupportsInt, Tuple, Union + +from . import glm + +Number = Union[SupportsFloat, SupportsInt] +B8Vector1 = Union[glm.bvec1, Tuple[Number]] +B8Vec1 = glm.bvec1 +B8Vector2 = Union[glm.bvec2, Tuple[Number, Number]] +B8Vec2 = glm.bvec2 +B8Vector3 = Union[glm.bvec3, Tuple[Number, Number, Number]] +B8Vec3 = glm.bvec3 +B8Vector4 = Union[glm.bvec4, Tuple[Number, Number, Number, Number]] +B8Vec4 = glm.bvec4 +B8VectorAny = Union[glm.bvec1, glm.bvec2, glm.bvec3, glm.bvec4, Tuple[Number], Tuple[Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number, Number]] +B8VecAny = Union[glm.bvec1, glm.bvec2, glm.bvec3, glm.bvec4] +BAnyVector1 = Union[glm.bvec1, Tuple[Number]] +BAnyVec1 = glm.bvec1 +BAnyVector2 = Union[glm.bvec2, Tuple[Number, Number]] +BAnyVec2 = glm.bvec2 +BAnyVector3 = Union[glm.bvec3, Tuple[Number, Number, Number]] +BAnyVec3 = glm.bvec3 +BAnyVector4 = Union[glm.bvec4, Tuple[Number, Number, Number, Number]] +BAnyVec4 = glm.bvec4 +BAnyVectorAny = Union[glm.bvec1, glm.bvec2, glm.bvec3, glm.bvec4, Tuple[Number], Tuple[Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number, Number]] +BAnyVecAny = Union[glm.bvec1, glm.bvec2, glm.bvec3, glm.bvec4] +D64Vector1 = Union[glm.dvec1, Tuple[Number]] +D64Vec1 = glm.dvec1 +D64Vector2 = Union[glm.dmvec2, glm.dvec2, Tuple[Number, Number]] +D64Vec2 = Union[glm.dmvec2, glm.dvec2] +D64Vector3 = Union[glm.dmvec3, glm.dvec3, Tuple[Number, Number, Number]] +D64Vec3 = Union[glm.dmvec3, glm.dvec3] +D64Vector4 = Union[glm.dmvec4, glm.dvec4, Tuple[Number, Number, Number, Number]] +D64Vec4 = Union[glm.dmvec4, glm.dvec4] +D64VectorAny = Union[glm.dmvec2, glm.dmvec3, glm.dmvec4, glm.dvec1, glm.dvec2, glm.dvec3, glm.dvec4, Tuple[Number], Tuple[Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number, Number]] +D64VecAny = Union[glm.dmvec2, glm.dmvec3, glm.dmvec4, glm.dvec1, glm.dvec2, glm.dvec3, glm.dvec4] +DAnyVector1 = Union[glm.dvec1, Tuple[Number]] +DAnyVec1 = glm.dvec1 +DAnyVector2 = Union[glm.dmvec2, glm.dvec2, Tuple[Number, Number]] +DAnyVec2 = Union[glm.dmvec2, glm.dvec2] +DAnyVector3 = Union[glm.dmvec3, glm.dvec3, Tuple[Number, Number, Number]] +DAnyVec3 = Union[glm.dmvec3, glm.dvec3] +DAnyVector4 = Union[glm.dmvec4, glm.dvec4, Tuple[Number, Number, Number, Number]] +DAnyVec4 = Union[glm.dmvec4, glm.dvec4] +DAnyVectorAny = Union[glm.dmvec2, glm.dmvec3, glm.dmvec4, glm.dvec1, glm.dvec2, glm.dvec3, glm.dvec4, Tuple[Number], Tuple[Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number, Number]] +DAnyVecAny = Union[glm.dmvec2, glm.dmvec3, glm.dmvec4, glm.dvec1, glm.dvec2, glm.dvec3, glm.dvec4] +F32Vector1 = Union[glm.vec1, Tuple[Number]] +F32Vec1 = glm.vec1 +F32Vector2 = Union[glm.mvec2, glm.vec2, Tuple[Number, Number]] +F32Vec2 = Union[glm.mvec2, glm.vec2] +F32Vector3 = Union[glm.mvec3, glm.vec3, Tuple[Number, Number, Number]] +F32Vec3 = Union[glm.mvec3, glm.vec3] +F32Vector4 = Union[glm.mvec4, glm.vec4, Tuple[Number, Number, Number, Number]] +F32Vec4 = Union[glm.mvec4, glm.vec4] +F32VectorAny = Union[glm.mvec2, glm.mvec3, glm.mvec4, glm.vec1, glm.vec2, glm.vec3, glm.vec4, Tuple[Number], Tuple[Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number, Number]] +F32VecAny = Union[glm.mvec2, glm.mvec3, glm.mvec4, glm.vec1, glm.vec2, glm.vec3, glm.vec4] +FAnyVector1 = Union[glm.vec1, Tuple[Number]] +FAnyVec1 = glm.vec1 +FAnyVector2 = Union[glm.mvec2, glm.vec2, Tuple[Number, Number]] +FAnyVec2 = Union[glm.mvec2, glm.vec2] +FAnyVector3 = Union[glm.mvec3, glm.vec3, Tuple[Number, Number, Number]] +FAnyVec3 = Union[glm.mvec3, glm.vec3] +FAnyVector4 = Union[glm.mvec4, glm.vec4, Tuple[Number, Number, Number, Number]] +FAnyVec4 = Union[glm.mvec4, glm.vec4] +FAnyVectorAny = Union[glm.mvec2, glm.mvec3, glm.mvec4, glm.vec1, glm.vec2, glm.vec3, glm.vec4, Tuple[Number], Tuple[Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number, Number]] +FAnyVecAny = Union[glm.mvec2, glm.mvec3, glm.mvec4, glm.vec1, glm.vec2, glm.vec3, glm.vec4] +I8Vector1 = Union[glm.i8vec1, Tuple[Number]] +I8Vec1 = glm.i8vec1 +I8Vector2 = Union[glm.i8vec2, Tuple[Number, Number]] +I8Vec2 = glm.i8vec2 +I8Vector3 = Union[glm.i8vec3, Tuple[Number, Number, Number]] +I8Vec3 = glm.i8vec3 +I8Vector4 = Union[glm.i8vec4, Tuple[Number, Number, Number, Number]] +I8Vec4 = glm.i8vec4 +I8VectorAny = Union[glm.i8vec1, glm.i8vec2, glm.i8vec3, glm.i8vec4, Tuple[Number], Tuple[Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number, Number]] +I8VecAny = Union[glm.i8vec1, glm.i8vec2, glm.i8vec3, glm.i8vec4] +I16Vector1 = Union[glm.i16vec1, Tuple[Number]] +I16Vec1 = glm.i16vec1 +I16Vector2 = Union[glm.i16vec2, Tuple[Number, Number]] +I16Vec2 = glm.i16vec2 +I16Vector3 = Union[glm.i16vec3, Tuple[Number, Number, Number]] +I16Vec3 = glm.i16vec3 +I16Vector4 = Union[glm.i16vec4, Tuple[Number, Number, Number, Number]] +I16Vec4 = glm.i16vec4 +I16VectorAny = Union[glm.i16vec1, glm.i16vec2, glm.i16vec3, glm.i16vec4, Tuple[Number], Tuple[Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number, Number]] +I16VecAny = Union[glm.i16vec1, glm.i16vec2, glm.i16vec3, glm.i16vec4] +I32Vector1 = Union[glm.ivec1, Tuple[Number]] +I32Vec1 = glm.ivec1 +I32Vector2 = Union[glm.imvec2, glm.ivec2, Tuple[Number, Number]] +I32Vec2 = Union[glm.imvec2, glm.ivec2] +I32Vector3 = Union[glm.imvec3, glm.ivec3, Tuple[Number, Number, Number]] +I32Vec3 = Union[glm.imvec3, glm.ivec3] +I32Vector4 = Union[glm.imvec4, glm.ivec4, Tuple[Number, Number, Number, Number]] +I32Vec4 = Union[glm.imvec4, glm.ivec4] +I32VectorAny = Union[glm.imvec2, glm.imvec3, glm.imvec4, glm.ivec1, glm.ivec2, glm.ivec3, glm.ivec4, Tuple[Number], Tuple[Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number, Number]] +I32VecAny = Union[glm.imvec2, glm.imvec3, glm.imvec4, glm.ivec1, glm.ivec2, glm.ivec3, glm.ivec4] +I64Vector1 = Union[glm.i64vec1, Tuple[Number]] +I64Vec1 = glm.i64vec1 +I64Vector2 = Union[glm.i64vec2, Tuple[Number, Number]] +I64Vec2 = glm.i64vec2 +I64Vector3 = Union[glm.i64vec3, Tuple[Number, Number, Number]] +I64Vec3 = glm.i64vec3 +I64Vector4 = Union[glm.i64vec4, Tuple[Number, Number, Number, Number]] +I64Vec4 = glm.i64vec4 +I64VectorAny = Union[glm.i64vec1, glm.i64vec2, glm.i64vec3, glm.i64vec4, Tuple[Number], Tuple[Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number, Number]] +I64VecAny = Union[glm.i64vec1, glm.i64vec2, glm.i64vec3, glm.i64vec4] +IAnyVector1 = Union[glm.i16vec1, glm.i64vec1, glm.i8vec1, glm.ivec1, Tuple[Number]] +IAnyVec1 = Union[glm.i16vec1, glm.i64vec1, glm.i8vec1, glm.ivec1] +IAnyVector2 = Union[glm.i16vec2, glm.i64vec2, glm.i8vec2, glm.imvec2, glm.ivec2, Tuple[Number, Number]] +IAnyVec2 = Union[glm.i16vec2, glm.i64vec2, glm.i8vec2, glm.imvec2, glm.ivec2] +IAnyVector3 = Union[glm.i16vec3, glm.i64vec3, glm.i8vec3, glm.imvec3, glm.ivec3, Tuple[Number, Number, Number]] +IAnyVec3 = Union[glm.i16vec3, glm.i64vec3, glm.i8vec3, glm.imvec3, glm.ivec3] +IAnyVector4 = Union[glm.i16vec4, glm.i64vec4, glm.i8vec4, glm.imvec4, glm.ivec4, Tuple[Number, Number, Number, Number]] +IAnyVec4 = Union[glm.i16vec4, glm.i64vec4, glm.i8vec4, glm.imvec4, glm.ivec4] +IAnyVectorAny = Union[glm.i16vec1, glm.i16vec2, glm.i16vec3, glm.i16vec4, glm.i64vec1, glm.i64vec2, glm.i64vec3, glm.i64vec4, glm.i8vec1, glm.i8vec2, glm.i8vec3, glm.i8vec4, glm.imvec2, glm.imvec3, glm.imvec4, glm.ivec1, glm.ivec2, glm.ivec3, glm.ivec4, Tuple[Number], Tuple[Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number, Number]] +IAnyVecAny = Union[glm.i16vec1, glm.i16vec2, glm.i16vec3, glm.i16vec4, glm.i64vec1, glm.i64vec2, glm.i64vec3, glm.i64vec4, glm.i8vec1, glm.i8vec2, glm.i8vec3, glm.i8vec4, glm.imvec2, glm.imvec3, glm.imvec4, glm.ivec1, glm.ivec2, glm.ivec3, glm.ivec4] +U8Vector1 = Union[glm.u8vec1, Tuple[Number]] +U8Vec1 = glm.u8vec1 +U8Vector2 = Union[glm.u8vec2, Tuple[Number, Number]] +U8Vec2 = glm.u8vec2 +U8Vector3 = Union[glm.u8vec3, Tuple[Number, Number, Number]] +U8Vec3 = glm.u8vec3 +U8Vector4 = Union[glm.u8vec4, Tuple[Number, Number, Number, Number]] +U8Vec4 = glm.u8vec4 +U8VectorAny = Union[glm.u8vec1, glm.u8vec2, glm.u8vec3, glm.u8vec4, Tuple[Number], Tuple[Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number, Number]] +U8VecAny = Union[glm.u8vec1, glm.u8vec2, glm.u8vec3, glm.u8vec4] +U16Vector1 = Union[glm.u16vec1, Tuple[Number]] +U16Vec1 = glm.u16vec1 +U16Vector2 = Union[glm.u16vec2, Tuple[Number, Number]] +U16Vec2 = glm.u16vec2 +U16Vector3 = Union[glm.u16vec3, Tuple[Number, Number, Number]] +U16Vec3 = glm.u16vec3 +U16Vector4 = Union[glm.u16vec4, Tuple[Number, Number, Number, Number]] +U16Vec4 = glm.u16vec4 +U16VectorAny = Union[glm.u16vec1, glm.u16vec2, glm.u16vec3, glm.u16vec4, Tuple[Number], Tuple[Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number, Number]] +U16VecAny = Union[glm.u16vec1, glm.u16vec2, glm.u16vec3, glm.u16vec4] +U32Vector1 = Union[glm.uvec1, Tuple[Number]] +U32Vec1 = glm.uvec1 +U32Vector2 = Union[glm.umvec2, glm.uvec2, Tuple[Number, Number]] +U32Vec2 = Union[glm.umvec2, glm.uvec2] +U32Vector3 = Union[glm.umvec3, glm.uvec3, Tuple[Number, Number, Number]] +U32Vec3 = Union[glm.umvec3, glm.uvec3] +U32Vector4 = Union[glm.umvec4, glm.uvec4, Tuple[Number, Number, Number, Number]] +U32Vec4 = Union[glm.umvec4, glm.uvec4] +U32VectorAny = Union[glm.umvec2, glm.umvec3, glm.umvec4, glm.uvec1, glm.uvec2, glm.uvec3, glm.uvec4, Tuple[Number], Tuple[Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number, Number]] +U32VecAny = Union[glm.umvec2, glm.umvec3, glm.umvec4, glm.uvec1, glm.uvec2, glm.uvec3, glm.uvec4] +U64Vector1 = Union[glm.u64vec1, Tuple[Number]] +U64Vec1 = glm.u64vec1 +U64Vector2 = Union[glm.u64vec2, Tuple[Number, Number]] +U64Vec2 = glm.u64vec2 +U64Vector3 = Union[glm.u64vec3, Tuple[Number, Number, Number]] +U64Vec3 = glm.u64vec3 +U64Vector4 = Union[glm.u64vec4, Tuple[Number, Number, Number, Number]] +U64Vec4 = glm.u64vec4 +U64VectorAny = Union[glm.u64vec1, glm.u64vec2, glm.u64vec3, glm.u64vec4, Tuple[Number], Tuple[Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number, Number]] +U64VecAny = Union[glm.u64vec1, glm.u64vec2, glm.u64vec3, glm.u64vec4] +UAnyVector1 = Union[glm.u16vec1, glm.u64vec1, glm.u8vec1, glm.uvec1, Tuple[Number]] +UAnyVec1 = Union[glm.u16vec1, glm.u64vec1, glm.u8vec1, glm.uvec1] +UAnyVector2 = Union[glm.u16vec2, glm.u64vec2, glm.u8vec2, glm.umvec2, glm.uvec2, Tuple[Number, Number]] +UAnyVec2 = Union[glm.u16vec2, glm.u64vec2, glm.u8vec2, glm.umvec2, glm.uvec2] +UAnyVector3 = Union[glm.u16vec3, glm.u64vec3, glm.u8vec3, glm.umvec3, glm.uvec3, Tuple[Number, Number, Number]] +UAnyVec3 = Union[glm.u16vec3, glm.u64vec3, glm.u8vec3, glm.umvec3, glm.uvec3] +UAnyVector4 = Union[glm.u16vec4, glm.u64vec4, glm.u8vec4, glm.umvec4, glm.uvec4, Tuple[Number, Number, Number, Number]] +UAnyVec4 = Union[glm.u16vec4, glm.u64vec4, glm.u8vec4, glm.umvec4, glm.uvec4] +UAnyVectorAny = Union[glm.u16vec1, glm.u16vec2, glm.u16vec3, glm.u16vec4, glm.u64vec1, glm.u64vec2, glm.u64vec3, glm.u64vec4, glm.u8vec1, glm.u8vec2, glm.u8vec3, glm.u8vec4, glm.umvec2, glm.umvec3, glm.umvec4, glm.uvec1, glm.uvec2, glm.uvec3, glm.uvec4, Tuple[Number], Tuple[Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number, Number]] +UAnyVecAny = Union[glm.u16vec1, glm.u16vec2, glm.u16vec3, glm.u16vec4, glm.u64vec1, glm.u64vec2, glm.u64vec3, glm.u64vec4, glm.u8vec1, glm.u8vec2, glm.u8vec3, glm.u8vec4, glm.umvec2, glm.umvec3, glm.umvec4, glm.uvec1, glm.uvec2, glm.uvec3, glm.uvec4] +Any8Vector1 = Union[glm.bvec1, glm.i8vec1, glm.u8vec1, Tuple[Number]] +Any8Vec1 = Union[glm.bvec1, glm.i8vec1, glm.u8vec1] +Any8Vector2 = Union[glm.bvec2, glm.i8vec2, glm.u8vec2, Tuple[Number, Number]] +Any8Vec2 = Union[glm.bvec2, glm.i8vec2, glm.u8vec2] +Any8Vector3 = Union[glm.bvec3, glm.i8vec3, glm.u8vec3, Tuple[Number, Number, Number]] +Any8Vec3 = Union[glm.bvec3, glm.i8vec3, glm.u8vec3] +Any8Vector4 = Union[glm.bvec4, glm.i8vec4, glm.u8vec4, Tuple[Number, Number, Number, Number]] +Any8Vec4 = Union[glm.bvec4, glm.i8vec4, glm.u8vec4] +Any8VectorAny = Union[glm.bvec1, glm.bvec2, glm.bvec3, glm.bvec4, glm.i8vec1, glm.i8vec2, glm.i8vec3, glm.i8vec4, glm.u8vec1, glm.u8vec2, glm.u8vec3, glm.u8vec4, Tuple[Number], Tuple[Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number, Number]] +Any8VecAny = Union[glm.bvec1, glm.bvec2, glm.bvec3, glm.bvec4, glm.i8vec1, glm.i8vec2, glm.i8vec3, glm.i8vec4, glm.u8vec1, glm.u8vec2, glm.u8vec3, glm.u8vec4] +Any16Vector1 = Union[glm.i16vec1, glm.u16vec1, Tuple[Number]] +Any16Vec1 = Union[glm.i16vec1, glm.u16vec1] +Any16Vector2 = Union[glm.i16vec2, glm.u16vec2, Tuple[Number, Number]] +Any16Vec2 = Union[glm.i16vec2, glm.u16vec2] +Any16Vector3 = Union[glm.i16vec3, glm.u16vec3, Tuple[Number, Number, Number]] +Any16Vec3 = Union[glm.i16vec3, glm.u16vec3] +Any16Vector4 = Union[glm.i16vec4, glm.u16vec4, Tuple[Number, Number, Number, Number]] +Any16Vec4 = Union[glm.i16vec4, glm.u16vec4] +Any16VectorAny = Union[glm.i16vec1, glm.i16vec2, glm.i16vec3, glm.i16vec4, glm.u16vec1, glm.u16vec2, glm.u16vec3, glm.u16vec4, Tuple[Number], Tuple[Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number, Number]] +Any16VecAny = Union[glm.i16vec1, glm.i16vec2, glm.i16vec3, glm.i16vec4, glm.u16vec1, glm.u16vec2, glm.u16vec3, glm.u16vec4] +Any32Vector1 = Union[glm.ivec1, glm.uvec1, glm.vec1, Tuple[Number]] +Any32Vec1 = Union[glm.ivec1, glm.uvec1, glm.vec1] +Any32Vector2 = Union[glm.imvec2, glm.ivec2, glm.mvec2, glm.umvec2, glm.uvec2, glm.vec2, Tuple[Number, Number]] +Any32Vec2 = Union[glm.imvec2, glm.ivec2, glm.mvec2, glm.umvec2, glm.uvec2, glm.vec2] +Any32Vector3 = Union[glm.imvec3, glm.ivec3, glm.mvec3, glm.umvec3, glm.uvec3, glm.vec3, Tuple[Number, Number, Number]] +Any32Vec3 = Union[glm.imvec3, glm.ivec3, glm.mvec3, glm.umvec3, glm.uvec3, glm.vec3] +Any32Vector4 = Union[glm.imvec4, glm.ivec4, glm.mvec4, glm.umvec4, glm.uvec4, glm.vec4, Tuple[Number, Number, Number, Number]] +Any32Vec4 = Union[glm.imvec4, glm.ivec4, glm.mvec4, glm.umvec4, glm.uvec4, glm.vec4] +Any32VectorAny = Union[glm.imvec2, glm.imvec3, glm.imvec4, glm.ivec1, glm.ivec2, glm.ivec3, glm.ivec4, glm.mvec2, glm.mvec3, glm.mvec4, glm.umvec2, glm.umvec3, glm.umvec4, glm.uvec1, glm.uvec2, glm.uvec3, glm.uvec4, glm.vec1, glm.vec2, glm.vec3, glm.vec4, Tuple[Number], Tuple[Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number, Number]] +Any32VecAny = Union[glm.imvec2, glm.imvec3, glm.imvec4, glm.ivec1, glm.ivec2, glm.ivec3, glm.ivec4, glm.mvec2, glm.mvec3, glm.mvec4, glm.umvec2, glm.umvec3, glm.umvec4, glm.uvec1, glm.uvec2, glm.uvec3, glm.uvec4, glm.vec1, glm.vec2, glm.vec3, glm.vec4] +Any64Vector1 = Union[glm.dvec1, glm.i64vec1, glm.u64vec1, Tuple[Number]] +Any64Vec1 = Union[glm.dvec1, glm.i64vec1, glm.u64vec1] +Any64Vector2 = Union[glm.dmvec2, glm.dvec2, glm.i64vec2, glm.u64vec2, Tuple[Number, Number]] +Any64Vec2 = Union[glm.dmvec2, glm.dvec2, glm.i64vec2, glm.u64vec2] +Any64Vector3 = Union[glm.dmvec3, glm.dvec3, glm.i64vec3, glm.u64vec3, Tuple[Number, Number, Number]] +Any64Vec3 = Union[glm.dmvec3, glm.dvec3, glm.i64vec3, glm.u64vec3] +Any64Vector4 = Union[glm.dmvec4, glm.dvec4, glm.i64vec4, glm.u64vec4, Tuple[Number, Number, Number, Number]] +Any64Vec4 = Union[glm.dmvec4, glm.dvec4, glm.i64vec4, glm.u64vec4] +Any64VectorAny = Union[glm.dmvec2, glm.dmvec3, glm.dmvec4, glm.dvec1, glm.dvec2, glm.dvec3, glm.dvec4, glm.i64vec1, glm.i64vec2, glm.i64vec3, glm.i64vec4, glm.u64vec1, glm.u64vec2, glm.u64vec3, glm.u64vec4, Tuple[Number], Tuple[Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number, Number]] +Any64VecAny = Union[glm.dmvec2, glm.dmvec3, glm.dmvec4, glm.dvec1, glm.dvec2, glm.dvec3, glm.dvec4, glm.i64vec1, glm.i64vec2, glm.i64vec3, glm.i64vec4, glm.u64vec1, glm.u64vec2, glm.u64vec3, glm.u64vec4] +AnyAnyVector1 = Union[glm.bvec1, glm.dvec1, glm.i16vec1, glm.i64vec1, glm.i8vec1, glm.ivec1, glm.u16vec1, glm.u64vec1, glm.u8vec1, glm.uvec1, glm.vec1, Tuple[Number]] +AnyAnyVec1 = Union[glm.bvec1, glm.dvec1, glm.i16vec1, glm.i64vec1, glm.i8vec1, glm.ivec1, glm.u16vec1, glm.u64vec1, glm.u8vec1, glm.uvec1, glm.vec1] +AnyAnyVector2 = Union[glm.bvec2, glm.dmvec2, glm.dvec2, glm.i16vec2, glm.i64vec2, glm.i8vec2, glm.imvec2, glm.ivec2, glm.mvec2, glm.u16vec2, glm.u64vec2, glm.u8vec2, glm.umvec2, glm.uvec2, glm.vec2, Tuple[Number, Number]] +AnyAnyVec2 = Union[glm.bvec2, glm.dmvec2, glm.dvec2, glm.i16vec2, glm.i64vec2, glm.i8vec2, glm.imvec2, glm.ivec2, glm.mvec2, glm.u16vec2, glm.u64vec2, glm.u8vec2, glm.umvec2, glm.uvec2, glm.vec2] +AnyAnyVector3 = Union[glm.bvec3, glm.dmvec3, glm.dvec3, glm.i16vec3, glm.i64vec3, glm.i8vec3, glm.imvec3, glm.ivec3, glm.mvec3, glm.u16vec3, glm.u64vec3, glm.u8vec3, glm.umvec3, glm.uvec3, glm.vec3, Tuple[Number, Number, Number]] +AnyAnyVec3 = Union[glm.bvec3, glm.dmvec3, glm.dvec3, glm.i16vec3, glm.i64vec3, glm.i8vec3, glm.imvec3, glm.ivec3, glm.mvec3, glm.u16vec3, glm.u64vec3, glm.u8vec3, glm.umvec3, glm.uvec3, glm.vec3] +AnyAnyVector4 = Union[glm.bvec4, glm.dmvec4, glm.dvec4, glm.i16vec4, glm.i64vec4, glm.i8vec4, glm.imvec4, glm.ivec4, glm.mvec4, glm.u16vec4, glm.u64vec4, glm.u8vec4, glm.umvec4, glm.uvec4, glm.vec4, Tuple[Number, Number, Number, Number]] +AnyAnyVec4 = Union[glm.bvec4, glm.dmvec4, glm.dvec4, glm.i16vec4, glm.i64vec4, glm.i8vec4, glm.imvec4, glm.ivec4, glm.mvec4, glm.u16vec4, glm.u64vec4, glm.u8vec4, glm.umvec4, glm.uvec4, glm.vec4] +AnyAnyVectorAny = Union[glm.bvec1, glm.bvec2, glm.bvec3, glm.bvec4, glm.dmvec2, glm.dmvec3, glm.dmvec4, glm.dvec1, glm.dvec2, glm.dvec3, glm.dvec4, glm.i16vec1, glm.i16vec2, glm.i16vec3, glm.i16vec4, glm.i64vec1, glm.i64vec2, glm.i64vec3, glm.i64vec4, glm.i8vec1, glm.i8vec2, glm.i8vec3, glm.i8vec4, glm.imvec2, glm.imvec3, glm.imvec4, glm.ivec1, glm.ivec2, glm.ivec3, glm.ivec4, glm.mvec2, glm.mvec3, glm.mvec4, glm.u16vec1, glm.u16vec2, glm.u16vec3, glm.u16vec4, glm.u64vec1, glm.u64vec2, glm.u64vec3, glm.u64vec4, glm.u8vec1, glm.u8vec2, glm.u8vec3, glm.u8vec4, glm.umvec2, glm.umvec3, glm.umvec4, glm.uvec1, glm.uvec2, glm.uvec3, glm.uvec4, glm.vec1, glm.vec2, glm.vec3, glm.vec4, Tuple[Number], Tuple[Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number, Number]] +AnyAnyVecAny = Union[glm.bvec1, glm.bvec2, glm.bvec3, glm.bvec4, glm.dmvec2, glm.dmvec3, glm.dmvec4, glm.dvec1, glm.dvec2, glm.dvec3, glm.dvec4, glm.i16vec1, glm.i16vec2, glm.i16vec3, glm.i16vec4, glm.i64vec1, glm.i64vec2, glm.i64vec3, glm.i64vec4, glm.i8vec1, glm.i8vec2, glm.i8vec3, glm.i8vec4, glm.imvec2, glm.imvec3, glm.imvec4, glm.ivec1, glm.ivec2, glm.ivec3, glm.ivec4, glm.mvec2, glm.mvec3, glm.mvec4, glm.u16vec1, glm.u16vec2, glm.u16vec3, glm.u16vec4, glm.u64vec1, glm.u64vec2, glm.u64vec3, glm.u64vec4, glm.u8vec1, glm.u8vec2, glm.u8vec3, glm.u8vec4, glm.umvec2, glm.umvec3, glm.umvec4, glm.uvec1, glm.uvec2, glm.uvec3, glm.uvec4, glm.vec1, glm.vec2, glm.vec3, glm.vec4] +FDAnyVectorAny = Union[FAnyVectorAny, DAnyVectorAny] +FDAnyVector1 = Union[FAnyVector1, DAnyVector1] +FDAnyVector2 = Union[FAnyVector2, DAnyVector2] +FDAnyVector3 = Union[FAnyVector3, DAnyVector3] +FDAnyVector4 = Union[FAnyVector4, DAnyVector4] +IUAnyVector1 = Union[IAnyVector1, UAnyVector1] +IUAnyVector2 = Union[IAnyVector2, UAnyVector2] +IUAnyVector3 = Union[IAnyVector3, UAnyVector3] +IUAnyVector4 = Union[IAnyVector4, UAnyVector4] +D64Matrix2x2 = Union[glm.dmat2x2, Tuple[Tuple[Number, Number], Tuple[Number, Number]]] +D64Mat2x2 = glm.dmat2x2 +D64Matrix2x3 = Union[glm.dmat2x3, Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number]]] +D64Mat2x3 = glm.dmat2x3 +D64Matrix2x4 = Union[glm.dmat2x4, Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] +D64Mat2x4 = glm.dmat2x4 +D64Matrix2xAny = Union[glm.dmat2x2, glm.dmat2x3, glm.dmat2x4, Tuple[Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] +D64Mat2xAny = Union[glm.dmat2x2, glm.dmat2x3, glm.dmat2x4] +D64Matrix3x2 = Union[glm.dmat3x2, Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]]] +D64Mat3x2 = glm.dmat3x2 +D64Matrix3x3 = Union[glm.dmat3x3, Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]]] +D64Mat3x3 = glm.dmat3x3 +D64Matrix3x4 = Union[glm.dmat3x4, Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] +D64Mat3x4 = glm.dmat3x4 +D64Matrix3xAny = Union[glm.dmat3x2, glm.dmat3x3, glm.dmat3x4, Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] +D64Mat3xAny = Union[glm.dmat3x2, glm.dmat3x3, glm.dmat3x4] +D64Matrix4x2 = Union[glm.dmat4x2, Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]]] +D64Mat4x2 = glm.dmat4x2 +D64Matrix4x3 = Union[glm.dmat4x3, Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]]] +D64Mat4x3 = glm.dmat4x3 +D64Matrix4x4 = Union[glm.dmat4x4, Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] +D64Mat4x4 = glm.dmat4x4 +D64Matrix4xAny = Union[glm.dmat4x2, glm.dmat4x3, glm.dmat4x4, Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] +D64Mat4xAny = Union[glm.dmat4x2, glm.dmat4x3, glm.dmat4x4] +D64MatrixAnyx2 = Union[glm.dmat2x2, glm.dmat3x2, glm.dmat4x2, Tuple[Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]]] +D64MatAnyx2 = Union[glm.dmat2x2, glm.dmat3x2, glm.dmat4x2] +D64MatrixAnyx3 = Union[glm.dmat2x3, glm.dmat3x3, glm.dmat4x3, Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]]] +D64MatAnyx3 = Union[glm.dmat2x3, glm.dmat3x3, glm.dmat4x3] +D64MatrixAnyx4 = Union[glm.dmat2x4, glm.dmat3x4, glm.dmat4x4, Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] +D64MatAnyx4 = Union[glm.dmat2x4, glm.dmat3x4, glm.dmat4x4] +D64MatrixAnyxAny = Union[glm.dmat2x2, glm.dmat2x3, glm.dmat2x4, glm.dmat3x2, glm.dmat3x3, glm.dmat3x4, glm.dmat4x2, glm.dmat4x3, glm.dmat4x4, Tuple[Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]], Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]], Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] +D64MatAnyxAny = Union[glm.dmat2x2, glm.dmat2x3, glm.dmat2x4, glm.dmat3x2, glm.dmat3x3, glm.dmat3x4, glm.dmat4x2, glm.dmat4x3, glm.dmat4x4] +DAnyMatrix2x2 = Union[glm.dmat2x2, Tuple[Tuple[Number, Number], Tuple[Number, Number]]] +DAnyMat2x2 = glm.dmat2x2 +DAnyMatrix2x3 = Union[glm.dmat2x3, Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number]]] +DAnyMat2x3 = glm.dmat2x3 +DAnyMatrix2x4 = Union[glm.dmat2x4, Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] +DAnyMat2x4 = glm.dmat2x4 +DAnyMatrix2xAny = Union[glm.dmat2x2, glm.dmat2x3, glm.dmat2x4, Tuple[Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] +DAnyMat2xAny = Union[glm.dmat2x2, glm.dmat2x3, glm.dmat2x4] +DAnyMatrix3x2 = Union[glm.dmat3x2, Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]]] +DAnyMat3x2 = glm.dmat3x2 +DAnyMatrix3x3 = Union[glm.dmat3x3, Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]]] +DAnyMat3x3 = glm.dmat3x3 +DAnyMatrix3x4 = Union[glm.dmat3x4, Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] +DAnyMat3x4 = glm.dmat3x4 +DAnyMatrix3xAny = Union[glm.dmat3x2, glm.dmat3x3, glm.dmat3x4, Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] +DAnyMat3xAny = Union[glm.dmat3x2, glm.dmat3x3, glm.dmat3x4] +DAnyMatrix4x2 = Union[glm.dmat4x2, Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]]] +DAnyMat4x2 = glm.dmat4x2 +DAnyMatrix4x3 = Union[glm.dmat4x3, Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]]] +DAnyMat4x3 = glm.dmat4x3 +DAnyMatrix4x4 = Union[glm.dmat4x4, Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] +DAnyMat4x4 = glm.dmat4x4 +DAnyMatrix4xAny = Union[glm.dmat4x2, glm.dmat4x3, glm.dmat4x4, Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] +DAnyMat4xAny = Union[glm.dmat4x2, glm.dmat4x3, glm.dmat4x4] +DAnyMatrixAnyx2 = Union[glm.dmat2x2, glm.dmat3x2, glm.dmat4x2, Tuple[Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]]] +DAnyMatAnyx2 = Union[glm.dmat2x2, glm.dmat3x2, glm.dmat4x2] +DAnyMatrixAnyx3 = Union[glm.dmat2x3, glm.dmat3x3, glm.dmat4x3, Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]]] +DAnyMatAnyx3 = Union[glm.dmat2x3, glm.dmat3x3, glm.dmat4x3] +DAnyMatrixAnyx4 = Union[glm.dmat2x4, glm.dmat3x4, glm.dmat4x4, Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] +DAnyMatAnyx4 = Union[glm.dmat2x4, glm.dmat3x4, glm.dmat4x4] +DAnyMatrixAnyxAny = Union[glm.dmat2x2, glm.dmat2x3, glm.dmat2x4, glm.dmat3x2, glm.dmat3x3, glm.dmat3x4, glm.dmat4x2, glm.dmat4x3, glm.dmat4x4, Tuple[Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]], Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]], Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] +DAnyMatAnyxAny = Union[glm.dmat2x2, glm.dmat2x3, glm.dmat2x4, glm.dmat3x2, glm.dmat3x3, glm.dmat3x4, glm.dmat4x2, glm.dmat4x3, glm.dmat4x4] +F32Matrix2x2 = Union[glm.mat2x2, Tuple[Tuple[Number, Number], Tuple[Number, Number]]] +F32Mat2x2 = glm.mat2x2 +F32Matrix2x3 = Union[glm.mat2x3, Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number]]] +F32Mat2x3 = glm.mat2x3 +F32Matrix2x4 = Union[glm.mat2x4, Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] +F32Mat2x4 = glm.mat2x4 +F32Matrix2xAny = Union[glm.mat2x2, glm.mat2x3, glm.mat2x4, Tuple[Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] +F32Mat2xAny = Union[glm.mat2x2, glm.mat2x3, glm.mat2x4] +F32Matrix3x2 = Union[glm.mat3x2, Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]]] +F32Mat3x2 = glm.mat3x2 +F32Matrix3x3 = Union[glm.mat3x3, Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]]] +F32Mat3x3 = glm.mat3x3 +F32Matrix3x4 = Union[glm.mat3x4, Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] +F32Mat3x4 = glm.mat3x4 +F32Matrix3xAny = Union[glm.mat3x2, glm.mat3x3, glm.mat3x4, Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] +F32Mat3xAny = Union[glm.mat3x2, glm.mat3x3, glm.mat3x4] +F32Matrix4x2 = Union[glm.mat4x2, Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]]] +F32Mat4x2 = glm.mat4x2 +F32Matrix4x3 = Union[glm.mat4x3, Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]]] +F32Mat4x3 = glm.mat4x3 +F32Matrix4x4 = Union[glm.mat4x4, Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] +F32Mat4x4 = glm.mat4x4 +F32Matrix4xAny = Union[glm.mat4x2, glm.mat4x3, glm.mat4x4, Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] +F32Mat4xAny = Union[glm.mat4x2, glm.mat4x3, glm.mat4x4] +F32MatrixAnyx2 = Union[glm.mat2x2, glm.mat3x2, glm.mat4x2, Tuple[Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]]] +F32MatAnyx2 = Union[glm.mat2x2, glm.mat3x2, glm.mat4x2] +F32MatrixAnyx3 = Union[glm.mat2x3, glm.mat3x3, glm.mat4x3, Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]]] +F32MatAnyx3 = Union[glm.mat2x3, glm.mat3x3, glm.mat4x3] +F32MatrixAnyx4 = Union[glm.mat2x4, glm.mat3x4, glm.mat4x4, Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] +F32MatAnyx4 = Union[glm.mat2x4, glm.mat3x4, glm.mat4x4] +F32MatrixAnyxAny = Union[glm.mat2x2, glm.mat2x3, glm.mat2x4, glm.mat3x2, glm.mat3x3, glm.mat3x4, glm.mat4x2, glm.mat4x3, glm.mat4x4, Tuple[Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]], Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]], Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] +F32MatAnyxAny = Union[glm.mat2x2, glm.mat2x3, glm.mat2x4, glm.mat3x2, glm.mat3x3, glm.mat3x4, glm.mat4x2, glm.mat4x3, glm.mat4x4] +FAnyMatrix2x2 = Union[glm.mat2x2, Tuple[Tuple[Number, Number], Tuple[Number, Number]]] +FAnyMat2x2 = glm.mat2x2 +FAnyMatrix2x3 = Union[glm.mat2x3, Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number]]] +FAnyMat2x3 = glm.mat2x3 +FAnyMatrix2x4 = Union[glm.mat2x4, Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] +FAnyMat2x4 = glm.mat2x4 +FAnyMatrix2xAny = Union[glm.mat2x2, glm.mat2x3, glm.mat2x4, Tuple[Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] +FAnyMat2xAny = Union[glm.mat2x2, glm.mat2x3, glm.mat2x4] +FAnyMatrix3x2 = Union[glm.mat3x2, Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]]] +FAnyMat3x2 = glm.mat3x2 +FAnyMatrix3x3 = Union[glm.mat3x3, Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]]] +FAnyMat3x3 = glm.mat3x3 +FAnyMatrix3x4 = Union[glm.mat3x4, Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] +FAnyMat3x4 = glm.mat3x4 +FAnyMatrix3xAny = Union[glm.mat3x2, glm.mat3x3, glm.mat3x4, Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] +FAnyMat3xAny = Union[glm.mat3x2, glm.mat3x3, glm.mat3x4] +FAnyMatrix4x2 = Union[glm.mat4x2, Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]]] +FAnyMat4x2 = glm.mat4x2 +FAnyMatrix4x3 = Union[glm.mat4x3, Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]]] +FAnyMat4x3 = glm.mat4x3 +FAnyMatrix4x4 = Union[glm.mat4x4, Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] +FAnyMat4x4 = glm.mat4x4 +FAnyMatrix4xAny = Union[glm.mat4x2, glm.mat4x3, glm.mat4x4, Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] +FAnyMat4xAny = Union[glm.mat4x2, glm.mat4x3, glm.mat4x4] +FAnyMatrixAnyx2 = Union[glm.mat2x2, glm.mat3x2, glm.mat4x2, Tuple[Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]]] +FAnyMatAnyx2 = Union[glm.mat2x2, glm.mat3x2, glm.mat4x2] +FAnyMatrixAnyx3 = Union[glm.mat2x3, glm.mat3x3, glm.mat4x3, Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]]] +FAnyMatAnyx3 = Union[glm.mat2x3, glm.mat3x3, glm.mat4x3] +FAnyMatrixAnyx4 = Union[glm.mat2x4, glm.mat3x4, glm.mat4x4, Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] +FAnyMatAnyx4 = Union[glm.mat2x4, glm.mat3x4, glm.mat4x4] +FAnyMatrixAnyxAny = Union[glm.mat2x2, glm.mat2x3, glm.mat2x4, glm.mat3x2, glm.mat3x3, glm.mat3x4, glm.mat4x2, glm.mat4x3, glm.mat4x4, Tuple[Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]], Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]], Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] +FAnyMatAnyxAny = Union[glm.mat2x2, glm.mat2x3, glm.mat2x4, glm.mat3x2, glm.mat3x3, glm.mat3x4, glm.mat4x2, glm.mat4x3, glm.mat4x4] +I32Matrix2x2 = Union[glm.imat2x2, Tuple[Tuple[Number, Number], Tuple[Number, Number]]] +I32Mat2x2 = glm.imat2x2 +I32Matrix2x3 = Union[glm.imat2x3, Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number]]] +I32Mat2x3 = glm.imat2x3 +I32Matrix2x4 = Union[glm.imat2x4, Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] +I32Mat2x4 = glm.imat2x4 +I32Matrix2xAny = Union[glm.imat2x2, glm.imat2x3, glm.imat2x4, Tuple[Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] +I32Mat2xAny = Union[glm.imat2x2, glm.imat2x3, glm.imat2x4] +I32Matrix3x2 = Union[glm.imat3x2, Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]]] +I32Mat3x2 = glm.imat3x2 +I32Matrix3x3 = Union[glm.imat3x3, Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]]] +I32Mat3x3 = glm.imat3x3 +I32Matrix3x4 = Union[glm.imat3x4, Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] +I32Mat3x4 = glm.imat3x4 +I32Matrix3xAny = Union[glm.imat3x2, glm.imat3x3, glm.imat3x4, Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] +I32Mat3xAny = Union[glm.imat3x2, glm.imat3x3, glm.imat3x4] +I32Matrix4x2 = Union[glm.imat4x2, Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]]] +I32Mat4x2 = glm.imat4x2 +I32Matrix4x3 = Union[glm.imat4x3, Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]]] +I32Mat4x3 = glm.imat4x3 +I32Matrix4x4 = Union[glm.imat4x4, Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] +I32Mat4x4 = glm.imat4x4 +I32Matrix4xAny = Union[glm.imat4x2, glm.imat4x3, glm.imat4x4, Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] +I32Mat4xAny = Union[glm.imat4x2, glm.imat4x3, glm.imat4x4] +I32MatrixAnyx2 = Union[glm.imat2x2, glm.imat3x2, glm.imat4x2, Tuple[Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]]] +I32MatAnyx2 = Union[glm.imat2x2, glm.imat3x2, glm.imat4x2] +I32MatrixAnyx3 = Union[glm.imat2x3, glm.imat3x3, glm.imat4x3, Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]]] +I32MatAnyx3 = Union[glm.imat2x3, glm.imat3x3, glm.imat4x3] +I32MatrixAnyx4 = Union[glm.imat2x4, glm.imat3x4, glm.imat4x4, Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] +I32MatAnyx4 = Union[glm.imat2x4, glm.imat3x4, glm.imat4x4] +I32MatrixAnyxAny = Union[glm.imat2x2, glm.imat2x3, glm.imat2x4, glm.imat3x2, glm.imat3x3, glm.imat3x4, glm.imat4x2, glm.imat4x3, glm.imat4x4, Tuple[Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]], Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]], Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] +I32MatAnyxAny = Union[glm.imat2x2, glm.imat2x3, glm.imat2x4, glm.imat3x2, glm.imat3x3, glm.imat3x4, glm.imat4x2, glm.imat4x3, glm.imat4x4] +IAnyMatrix2x2 = Union[glm.imat2x2, Tuple[Tuple[Number, Number], Tuple[Number, Number]]] +IAnyMat2x2 = glm.imat2x2 +IAnyMatrix2x3 = Union[glm.imat2x3, Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number]]] +IAnyMat2x3 = glm.imat2x3 +IAnyMatrix2x4 = Union[glm.imat2x4, Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] +IAnyMat2x4 = glm.imat2x4 +IAnyMatrix2xAny = Union[glm.imat2x2, glm.imat2x3, glm.imat2x4, Tuple[Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] +IAnyMat2xAny = Union[glm.imat2x2, glm.imat2x3, glm.imat2x4] +IAnyMatrix3x2 = Union[glm.imat3x2, Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]]] +IAnyMat3x2 = glm.imat3x2 +IAnyMatrix3x3 = Union[glm.imat3x3, Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]]] +IAnyMat3x3 = glm.imat3x3 +IAnyMatrix3x4 = Union[glm.imat3x4, Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] +IAnyMat3x4 = glm.imat3x4 +IAnyMatrix3xAny = Union[glm.imat3x2, glm.imat3x3, glm.imat3x4, Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] +IAnyMat3xAny = Union[glm.imat3x2, glm.imat3x3, glm.imat3x4] +IAnyMatrix4x2 = Union[glm.imat4x2, Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]]] +IAnyMat4x2 = glm.imat4x2 +IAnyMatrix4x3 = Union[glm.imat4x3, Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]]] +IAnyMat4x3 = glm.imat4x3 +IAnyMatrix4x4 = Union[glm.imat4x4, Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] +IAnyMat4x4 = glm.imat4x4 +IAnyMatrix4xAny = Union[glm.imat4x2, glm.imat4x3, glm.imat4x4, Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] +IAnyMat4xAny = Union[glm.imat4x2, glm.imat4x3, glm.imat4x4] +IAnyMatrixAnyx2 = Union[glm.imat2x2, glm.imat3x2, glm.imat4x2, Tuple[Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]]] +IAnyMatAnyx2 = Union[glm.imat2x2, glm.imat3x2, glm.imat4x2] +IAnyMatrixAnyx3 = Union[glm.imat2x3, glm.imat3x3, glm.imat4x3, Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]]] +IAnyMatAnyx3 = Union[glm.imat2x3, glm.imat3x3, glm.imat4x3] +IAnyMatrixAnyx4 = Union[glm.imat2x4, glm.imat3x4, glm.imat4x4, Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] +IAnyMatAnyx4 = Union[glm.imat2x4, glm.imat3x4, glm.imat4x4] +IAnyMatrixAnyxAny = Union[glm.imat2x2, glm.imat2x3, glm.imat2x4, glm.imat3x2, glm.imat3x3, glm.imat3x4, glm.imat4x2, glm.imat4x3, glm.imat4x4, Tuple[Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]], Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]], Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] +IAnyMatAnyxAny = Union[glm.imat2x2, glm.imat2x3, glm.imat2x4, glm.imat3x2, glm.imat3x3, glm.imat3x4, glm.imat4x2, glm.imat4x3, glm.imat4x4] +U32Matrix2x2 = Union[glm.umat2x2, Tuple[Tuple[Number, Number], Tuple[Number, Number]]] +U32Mat2x2 = glm.umat2x2 +U32Matrix2x3 = Union[glm.umat2x3, Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number]]] +U32Mat2x3 = glm.umat2x3 +U32Matrix2x4 = Union[glm.umat2x4, Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] +U32Mat2x4 = glm.umat2x4 +U32Matrix2xAny = Union[glm.umat2x2, glm.umat2x3, glm.umat2x4, Tuple[Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] +U32Mat2xAny = Union[glm.umat2x2, glm.umat2x3, glm.umat2x4] +U32Matrix3x2 = Union[glm.umat3x2, Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]]] +U32Mat3x2 = glm.umat3x2 +U32Matrix3x3 = Union[glm.umat3x3, Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]]] +U32Mat3x3 = glm.umat3x3 +U32Matrix3x4 = Union[glm.umat3x4, Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] +U32Mat3x4 = glm.umat3x4 +U32Matrix3xAny = Union[glm.umat3x2, glm.umat3x3, glm.umat3x4, Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] +U32Mat3xAny = Union[glm.umat3x2, glm.umat3x3, glm.umat3x4] +U32Matrix4x2 = Union[glm.umat4x2, Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]]] +U32Mat4x2 = glm.umat4x2 +U32Matrix4x3 = Union[glm.umat4x3, Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]]] +U32Mat4x3 = glm.umat4x3 +U32Matrix4x4 = Union[glm.umat4x4, Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] +U32Mat4x4 = glm.umat4x4 +U32Matrix4xAny = Union[glm.umat4x2, glm.umat4x3, glm.umat4x4, Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] +U32Mat4xAny = Union[glm.umat4x2, glm.umat4x3, glm.umat4x4] +U32MatrixAnyx2 = Union[glm.umat2x2, glm.umat3x2, glm.umat4x2, Tuple[Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]]] +U32MatAnyx2 = Union[glm.umat2x2, glm.umat3x2, glm.umat4x2] +U32MatrixAnyx3 = Union[glm.umat2x3, glm.umat3x3, glm.umat4x3, Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]]] +U32MatAnyx3 = Union[glm.umat2x3, glm.umat3x3, glm.umat4x3] +U32MatrixAnyx4 = Union[glm.umat2x4, glm.umat3x4, glm.umat4x4, Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] +U32MatAnyx4 = Union[glm.umat2x4, glm.umat3x4, glm.umat4x4] +U32MatrixAnyxAny = Union[glm.umat2x2, glm.umat2x3, glm.umat2x4, glm.umat3x2, glm.umat3x3, glm.umat3x4, glm.umat4x2, glm.umat4x3, glm.umat4x4, Tuple[Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]], Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]], Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] +U32MatAnyxAny = Union[glm.umat2x2, glm.umat2x3, glm.umat2x4, glm.umat3x2, glm.umat3x3, glm.umat3x4, glm.umat4x2, glm.umat4x3, glm.umat4x4] +UAnyMatrix2x2 = Union[glm.umat2x2, Tuple[Tuple[Number, Number], Tuple[Number, Number]]] +UAnyMat2x2 = glm.umat2x2 +UAnyMatrix2x3 = Union[glm.umat2x3, Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number]]] +UAnyMat2x3 = glm.umat2x3 +UAnyMatrix2x4 = Union[glm.umat2x4, Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] +UAnyMat2x4 = glm.umat2x4 +UAnyMatrix2xAny = Union[glm.umat2x2, glm.umat2x3, glm.umat2x4, Tuple[Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] +UAnyMat2xAny = Union[glm.umat2x2, glm.umat2x3, glm.umat2x4] +UAnyMatrix3x2 = Union[glm.umat3x2, Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]]] +UAnyMat3x2 = glm.umat3x2 +UAnyMatrix3x3 = Union[glm.umat3x3, Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]]] +UAnyMat3x3 = glm.umat3x3 +UAnyMatrix3x4 = Union[glm.umat3x4, Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] +UAnyMat3x4 = glm.umat3x4 +UAnyMatrix3xAny = Union[glm.umat3x2, glm.umat3x3, glm.umat3x4, Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] +UAnyMat3xAny = Union[glm.umat3x2, glm.umat3x3, glm.umat3x4] +UAnyMatrix4x2 = Union[glm.umat4x2, Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]]] +UAnyMat4x2 = glm.umat4x2 +UAnyMatrix4x3 = Union[glm.umat4x3, Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]]] +UAnyMat4x3 = glm.umat4x3 +UAnyMatrix4x4 = Union[glm.umat4x4, Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] +UAnyMat4x4 = glm.umat4x4 +UAnyMatrix4xAny = Union[glm.umat4x2, glm.umat4x3, glm.umat4x4, Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] +UAnyMat4xAny = Union[glm.umat4x2, glm.umat4x3, glm.umat4x4] +UAnyMatrixAnyx2 = Union[glm.umat2x2, glm.umat3x2, glm.umat4x2, Tuple[Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]]] +UAnyMatAnyx2 = Union[glm.umat2x2, glm.umat3x2, glm.umat4x2] +UAnyMatrixAnyx3 = Union[glm.umat2x3, glm.umat3x3, glm.umat4x3, Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]]] +UAnyMatAnyx3 = Union[glm.umat2x3, glm.umat3x3, glm.umat4x3] +UAnyMatrixAnyx4 = Union[glm.umat2x4, glm.umat3x4, glm.umat4x4, Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] +UAnyMatAnyx4 = Union[glm.umat2x4, glm.umat3x4, glm.umat4x4] +UAnyMatrixAnyxAny = Union[glm.umat2x2, glm.umat2x3, glm.umat2x4, glm.umat3x2, glm.umat3x3, glm.umat3x4, glm.umat4x2, glm.umat4x3, glm.umat4x4, Tuple[Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]], Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]], Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] +UAnyMatAnyxAny = Union[glm.umat2x2, glm.umat2x3, glm.umat2x4, glm.umat3x2, glm.umat3x3, glm.umat3x4, glm.umat4x2, glm.umat4x3, glm.umat4x4] +AnyAnyMatrix2x2 = Union[glm.dmat2x2, glm.imat2x2, glm.mat2x2, glm.umat2x2, Tuple[Tuple[Number, Number], Tuple[Number, Number]]] +AnyAnyMat2x2 = Union[glm.dmat2x2, glm.imat2x2, glm.mat2x2, glm.umat2x2] +AnyAnyMatrix2x3 = Union[glm.dmat2x3, glm.imat2x3, glm.mat2x3, glm.umat2x3, Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number]]] +AnyAnyMat2x3 = Union[glm.dmat2x3, glm.imat2x3, glm.mat2x3, glm.umat2x3] +AnyAnyMatrix2x4 = Union[glm.dmat2x4, glm.imat2x4, glm.mat2x4, glm.umat2x4, Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] +AnyAnyMat2x4 = Union[glm.dmat2x4, glm.imat2x4, glm.mat2x4, glm.umat2x4] +AnyAnyMatrix2xAny = Union[glm.dmat2x2, glm.dmat2x3, glm.dmat2x4, glm.imat2x2, glm.imat2x3, glm.imat2x4, glm.mat2x2, glm.mat2x3, glm.mat2x4, glm.umat2x2, glm.umat2x3, glm.umat2x4, Tuple[Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] +AnyAnyMat2xAny = Union[glm.dmat2x2, glm.dmat2x3, glm.dmat2x4, glm.imat2x2, glm.imat2x3, glm.imat2x4, glm.mat2x2, glm.mat2x3, glm.mat2x4, glm.umat2x2, glm.umat2x3, glm.umat2x4] +AnyAnyMatrix3x2 = Union[glm.dmat3x2, glm.imat3x2, glm.mat3x2, glm.umat3x2, Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]]] +AnyAnyMat3x2 = Union[glm.dmat3x2, glm.imat3x2, glm.mat3x2, glm.umat3x2] +AnyAnyMatrix3x3 = Union[glm.dmat3x3, glm.imat3x3, glm.mat3x3, glm.umat3x3, Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]]] +AnyAnyMat3x3 = Union[glm.dmat3x3, glm.imat3x3, glm.mat3x3, glm.umat3x3] +AnyAnyMatrix3x4 = Union[glm.dmat3x4, glm.imat3x4, glm.mat3x4, glm.umat3x4, Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] +AnyAnyMat3x4 = Union[glm.dmat3x4, glm.imat3x4, glm.mat3x4, glm.umat3x4] +AnyAnyMatrix3xAny = Union[glm.dmat3x2, glm.dmat3x3, glm.dmat3x4, glm.imat3x2, glm.imat3x3, glm.imat3x4, glm.mat3x2, glm.mat3x3, glm.mat3x4, glm.umat3x2, glm.umat3x3, glm.umat3x4, Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] +AnyAnyMat3xAny = Union[glm.dmat3x2, glm.dmat3x3, glm.dmat3x4, glm.imat3x2, glm.imat3x3, glm.imat3x4, glm.mat3x2, glm.mat3x3, glm.mat3x4, glm.umat3x2, glm.umat3x3, glm.umat3x4] +AnyAnyMatrix4x2 = Union[glm.dmat4x2, glm.imat4x2, glm.mat4x2, glm.umat4x2, Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]]] +AnyAnyMat4x2 = Union[glm.dmat4x2, glm.imat4x2, glm.mat4x2, glm.umat4x2] +AnyAnyMatrix4x3 = Union[glm.dmat4x3, glm.imat4x3, glm.mat4x3, glm.umat4x3, Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]]] +AnyAnyMat4x3 = Union[glm.dmat4x3, glm.imat4x3, glm.mat4x3, glm.umat4x3] +AnyAnyMatrix4x4 = Union[glm.dmat4x4, glm.imat4x4, glm.mat4x4, glm.umat4x4, Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] +AnyAnyMat4x4 = Union[glm.dmat4x4, glm.imat4x4, glm.mat4x4, glm.umat4x4] +AnyAnyMatrix4xAny = Union[glm.dmat4x2, glm.dmat4x3, glm.dmat4x4, glm.imat4x2, glm.imat4x3, glm.imat4x4, glm.mat4x2, glm.mat4x3, glm.mat4x4, glm.umat4x2, glm.umat4x3, glm.umat4x4, Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] +AnyAnyMat4xAny = Union[glm.dmat4x2, glm.dmat4x3, glm.dmat4x4, glm.imat4x2, glm.imat4x3, glm.imat4x4, glm.mat4x2, glm.mat4x3, glm.mat4x4, glm.umat4x2, glm.umat4x3, glm.umat4x4] +AnyAnyMatrixAnyx2 = Union[glm.dmat2x2, glm.dmat3x2, glm.dmat4x2, glm.imat2x2, glm.imat3x2, glm.imat4x2, glm.mat2x2, glm.mat3x2, glm.mat4x2, glm.umat2x2, glm.umat3x2, glm.umat4x2, Tuple[Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]]] +AnyAnyMatAnyx2 = Union[glm.dmat2x2, glm.dmat3x2, glm.dmat4x2, glm.imat2x2, glm.imat3x2, glm.imat4x2, glm.mat2x2, glm.mat3x2, glm.mat4x2, glm.umat2x2, glm.umat3x2, glm.umat4x2] +AnyAnyMatrixAnyx3 = Union[glm.dmat2x3, glm.dmat3x3, glm.dmat4x3, glm.imat2x3, glm.imat3x3, glm.imat4x3, glm.mat2x3, glm.mat3x3, glm.mat4x3, glm.umat2x3, glm.umat3x3, glm.umat4x3, Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]]] +AnyAnyMatAnyx3 = Union[glm.dmat2x3, glm.dmat3x3, glm.dmat4x3, glm.imat2x3, glm.imat3x3, glm.imat4x3, glm.mat2x3, glm.mat3x3, glm.mat4x3, glm.umat2x3, glm.umat3x3, glm.umat4x3] +AnyAnyMatrixAnyx4 = Union[glm.dmat2x4, glm.dmat3x4, glm.dmat4x4, glm.imat2x4, glm.imat3x4, glm.imat4x4, glm.mat2x4, glm.mat3x4, glm.mat4x4, glm.umat2x4, glm.umat3x4, glm.umat4x4, Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] +AnyAnyMatAnyx4 = Union[glm.dmat2x4, glm.dmat3x4, glm.dmat4x4, glm.imat2x4, glm.imat3x4, glm.imat4x4, glm.mat2x4, glm.mat3x4, glm.mat4x4, glm.umat2x4, glm.umat3x4, glm.umat4x4] +AnyAnyMatrixAnyxAny = Union[glm.dmat2x2, glm.dmat2x3, glm.dmat2x4, glm.dmat3x2, glm.dmat3x3, glm.dmat3x4, glm.dmat4x2, glm.dmat4x3, glm.dmat4x4, glm.imat2x2, glm.imat2x3, glm.imat2x4, glm.imat3x2, glm.imat3x3, glm.imat3x4, glm.imat4x2, glm.imat4x3, glm.imat4x4, glm.mat2x2, glm.mat2x3, glm.mat2x4, glm.mat3x2, glm.mat3x3, glm.mat3x4, glm.mat4x2, glm.mat4x3, glm.mat4x4, glm.umat2x2, glm.umat2x3, glm.umat2x4, glm.umat3x2, glm.umat3x3, glm.umat3x4, glm.umat4x2, glm.umat4x3, glm.umat4x4, Tuple[Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]], Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]], Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] +AnyAnyMatAnyxAny = Union[glm.dmat2x2, glm.dmat2x3, glm.dmat2x4, glm.dmat3x2, glm.dmat3x3, glm.dmat3x4, glm.dmat4x2, glm.dmat4x3, glm.dmat4x4, glm.imat2x2, glm.imat2x3, glm.imat2x4, glm.imat3x2, glm.imat3x3, glm.imat3x4, glm.imat4x2, glm.imat4x3, glm.imat4x4, glm.mat2x2, glm.mat2x3, glm.mat2x4, glm.mat3x2, glm.mat3x3, glm.mat3x4, glm.mat4x2, glm.mat4x3, glm.mat4x4, glm.umat2x2, glm.umat2x3, glm.umat2x4, glm.umat3x2, glm.umat3x3, glm.umat3x4, glm.umat4x2, glm.umat4x3, glm.umat4x4] +AnyAnyMatrixSquare = Union[AnyAnyMatrix2x2, AnyAnyMatrix3x3, AnyAnyMatrix4x4] +D64Quaternion = Union[glm.dquat, Tuple[Number, Number, Number, Number]] +D64Quat = glm.dquat +DAnyQuaternion = Union[glm.dquat, Tuple[Number, Number, Number, Number]] +DAnyQuat = glm.dquat +F32Quaternion = Union[glm.quat, Tuple[Number, Number, Number, Number]] +F32Quat = glm.quat +FAnyQuaternion = Union[glm.quat, Tuple[Number, Number, Number, Number]] +FAnyQuat = glm.quat +AnyAnyQuaternion = Union[glm.dquat, glm.quat, Tuple[Number, Number, Number, Number]] +AnyAnyQuat = Union[glm.dquat, glm.quat] +FDAnyQuaternion = Union[FAnyQuaternion, DAnyQuaternion] +FDAnyQuaternionVector4 = Union[FDAnyVector4, FDAnyQuaternion] +__all__ = ['B8Vector1', 'B8Vec1', 'B8Vector2', 'B8Vec2', 'B8Vector3', 'B8Vec3', 'B8Vector4', 'B8Vec4', 'B8VectorAny', 'B8VecAny', 'BAnyVector1', 'BAnyVec1', 'BAnyVector2', 'BAnyVec2', 'BAnyVector3', 'BAnyVec3', 'BAnyVector4', 'BAnyVec4', 'BAnyVectorAny', 'BAnyVecAny', 'D64Vector1', 'D64Vec1', 'D64Vector2', 'D64Vec2', 'D64Vector3', 'D64Vec3', 'D64Vector4', 'D64Vec4', 'D64VectorAny', 'D64VecAny', 'DAnyVector1', 'DAnyVec1', 'DAnyVector2', 'DAnyVec2', 'DAnyVector3', 'DAnyVec3', 'DAnyVector4', 'DAnyVec4', 'DAnyVectorAny', 'DAnyVecAny', 'F32Vector1', 'F32Vec1', 'F32Vector2', 'F32Vec2', 'F32Vector3', 'F32Vec3', 'F32Vector4', 'F32Vec4', 'F32VectorAny', 'F32VecAny', 'FAnyVector1', 'FAnyVec1', 'FAnyVector2', 'FAnyVec2', 'FAnyVector3', 'FAnyVec3', 'FAnyVector4', 'FAnyVec4', 'FAnyVectorAny', 'FAnyVecAny', 'I8Vector1', 'I8Vec1', 'I8Vector2', 'I8Vec2', 'I8Vector3', 'I8Vec3', 'I8Vector4', 'I8Vec4', 'I8VectorAny', 'I8VecAny', 'I16Vector1', 'I16Vec1', 'I16Vector2', 'I16Vec2', 'I16Vector3', 'I16Vec3', 'I16Vector4', 'I16Vec4', 'I16VectorAny', 'I16VecAny', 'I32Vector1', 'I32Vec1', 'I32Vector2', 'I32Vec2', 'I32Vector3', 'I32Vec3', 'I32Vector4', 'I32Vec4', 'I32VectorAny', 'I32VecAny', 'I64Vector1', 'I64Vec1', 'I64Vector2', 'I64Vec2', 'I64Vector3', 'I64Vec3', 'I64Vector4', 'I64Vec4', 'I64VectorAny', 'I64VecAny', 'IAnyVector1', 'IAnyVec1', 'IAnyVector2', 'IAnyVec2', 'IAnyVector3', 'IAnyVec3', 'IAnyVector4', 'IAnyVec4', 'IAnyVectorAny', 'IAnyVecAny', 'U8Vector1', 'U8Vec1', 'U8Vector2', 'U8Vec2', 'U8Vector3', 'U8Vec3', 'U8Vector4', 'U8Vec4', 'U8VectorAny', 'U8VecAny', 'U16Vector1', 'U16Vec1', 'U16Vector2', 'U16Vec2', 'U16Vector3', 'U16Vec3', 'U16Vector4', 'U16Vec4', 'U16VectorAny', 'U16VecAny', 'U32Vector1', 'U32Vec1', 'U32Vector2', 'U32Vec2', 'U32Vector3', 'U32Vec3', 'U32Vector4', 'U32Vec4', 'U32VectorAny', 'U32VecAny', 'U64Vector1', 'U64Vec1', 'U64Vector2', 'U64Vec2', 'U64Vector3', 'U64Vec3', 'U64Vector4', 'U64Vec4', 'U64VectorAny', 'U64VecAny', 'UAnyVector1', 'UAnyVec1', 'UAnyVector2', 'UAnyVec2', 'UAnyVector3', 'UAnyVec3', 'UAnyVector4', 'UAnyVec4', 'UAnyVectorAny', 'UAnyVecAny', 'Any8Vector1', 'Any8Vec1', 'Any8Vector2', 'Any8Vec2', 'Any8Vector3', 'Any8Vec3', 'Any8Vector4', 'Any8Vec4', 'Any8VectorAny', 'Any8VecAny', 'Any16Vector1', 'Any16Vec1', 'Any16Vector2', 'Any16Vec2', 'Any16Vector3', 'Any16Vec3', 'Any16Vector4', 'Any16Vec4', 'Any16VectorAny', 'Any16VecAny', 'Any32Vector1', 'Any32Vec1', 'Any32Vector2', 'Any32Vec2', 'Any32Vector3', 'Any32Vec3', 'Any32Vector4', 'Any32Vec4', 'Any32VectorAny', 'Any32VecAny', 'Any64Vector1', 'Any64Vec1', 'Any64Vector2', 'Any64Vec2', 'Any64Vector3', 'Any64Vec3', 'Any64Vector4', 'Any64Vec4', 'Any64VectorAny', 'Any64VecAny', 'AnyAnyVector1', 'AnyAnyVec1', 'AnyAnyVector2', 'AnyAnyVec2', 'AnyAnyVector3', 'AnyAnyVec3', 'AnyAnyVector4', 'AnyAnyVec4', 'AnyAnyVectorAny', 'AnyAnyVecAny', 'FDAnyVectorAny', 'FDAnyVector1', 'FDAnyVector2', 'FDAnyVector3', 'FDAnyVector4', 'IUAnyVector1', 'IUAnyVector2', 'IUAnyVector3', 'IUAnyVector4', 'D64Matrix2x2', 'D64Mat2x2', 'D64Matrix2x3', 'D64Mat2x3', 'D64Matrix2x4', 'D64Mat2x4', 'D64Matrix2xAny', 'D64Mat2xAny', 'D64Matrix3x2', 'D64Mat3x2', 'D64Matrix3x3', 'D64Mat3x3', 'D64Matrix3x4', 'D64Mat3x4', 'D64Matrix3xAny', 'D64Mat3xAny', 'D64Matrix4x2', 'D64Mat4x2', 'D64Matrix4x3', 'D64Mat4x3', 'D64Matrix4x4', 'D64Mat4x4', 'D64Matrix4xAny', 'D64Mat4xAny', 'D64MatrixAnyx2', 'D64MatAnyx2', 'D64MatrixAnyx3', 'D64MatAnyx3', 'D64MatrixAnyx4', 'D64MatAnyx4', 'D64MatrixAnyxAny', 'D64MatAnyxAny', 'DAnyMatrix2x2', 'DAnyMat2x2', 'DAnyMatrix2x3', 'DAnyMat2x3', 'DAnyMatrix2x4', 'DAnyMat2x4', 'DAnyMatrix2xAny', 'DAnyMat2xAny', 'DAnyMatrix3x2', 'DAnyMat3x2', 'DAnyMatrix3x3', 'DAnyMat3x3', 'DAnyMatrix3x4', 'DAnyMat3x4', 'DAnyMatrix3xAny', 'DAnyMat3xAny', 'DAnyMatrix4x2', 'DAnyMat4x2', 'DAnyMatrix4x3', 'DAnyMat4x3', 'DAnyMatrix4x4', 'DAnyMat4x4', 'DAnyMatrix4xAny', 'DAnyMat4xAny', 'DAnyMatrixAnyx2', 'DAnyMatAnyx2', 'DAnyMatrixAnyx3', 'DAnyMatAnyx3', 'DAnyMatrixAnyx4', 'DAnyMatAnyx4', 'DAnyMatrixAnyxAny', 'DAnyMatAnyxAny', 'F32Matrix2x2', 'F32Mat2x2', 'F32Matrix2x3', 'F32Mat2x3', 'F32Matrix2x4', 'F32Mat2x4', 'F32Matrix2xAny', 'F32Mat2xAny', 'F32Matrix3x2', 'F32Mat3x2', 'F32Matrix3x3', 'F32Mat3x3', 'F32Matrix3x4', 'F32Mat3x4', 'F32Matrix3xAny', 'F32Mat3xAny', 'F32Matrix4x2', 'F32Mat4x2', 'F32Matrix4x3', 'F32Mat4x3', 'F32Matrix4x4', 'F32Mat4x4', 'F32Matrix4xAny', 'F32Mat4xAny', 'F32MatrixAnyx2', 'F32MatAnyx2', 'F32MatrixAnyx3', 'F32MatAnyx3', 'F32MatrixAnyx4', 'F32MatAnyx4', 'F32MatrixAnyxAny', 'F32MatAnyxAny', 'FAnyMatrix2x2', 'FAnyMat2x2', 'FAnyMatrix2x3', 'FAnyMat2x3', 'FAnyMatrix2x4', 'FAnyMat2x4', 'FAnyMatrix2xAny', 'FAnyMat2xAny', 'FAnyMatrix3x2', 'FAnyMat3x2', 'FAnyMatrix3x3', 'FAnyMat3x3', 'FAnyMatrix3x4', 'FAnyMat3x4', 'FAnyMatrix3xAny', 'FAnyMat3xAny', 'FAnyMatrix4x2', 'FAnyMat4x2', 'FAnyMatrix4x3', 'FAnyMat4x3', 'FAnyMatrix4x4', 'FAnyMat4x4', 'FAnyMatrix4xAny', 'FAnyMat4xAny', 'FAnyMatrixAnyx2', 'FAnyMatAnyx2', 'FAnyMatrixAnyx3', 'FAnyMatAnyx3', 'FAnyMatrixAnyx4', 'FAnyMatAnyx4', 'FAnyMatrixAnyxAny', 'FAnyMatAnyxAny', 'I32Matrix2x2', 'I32Mat2x2', 'I32Matrix2x3', 'I32Mat2x3', 'I32Matrix2x4', 'I32Mat2x4', 'I32Matrix2xAny', 'I32Mat2xAny', 'I32Matrix3x2', 'I32Mat3x2', 'I32Matrix3x3', 'I32Mat3x3', 'I32Matrix3x4', 'I32Mat3x4', 'I32Matrix3xAny', 'I32Mat3xAny', 'I32Matrix4x2', 'I32Mat4x2', 'I32Matrix4x3', 'I32Mat4x3', 'I32Matrix4x4', 'I32Mat4x4', 'I32Matrix4xAny', 'I32Mat4xAny', 'I32MatrixAnyx2', 'I32MatAnyx2', 'I32MatrixAnyx3', 'I32MatAnyx3', 'I32MatrixAnyx4', 'I32MatAnyx4', 'I32MatrixAnyxAny', 'I32MatAnyxAny', 'IAnyMatrix2x2', 'IAnyMat2x2', 'IAnyMatrix2x3', 'IAnyMat2x3', 'IAnyMatrix2x4', 'IAnyMat2x4', 'IAnyMatrix2xAny', 'IAnyMat2xAny', 'IAnyMatrix3x2', 'IAnyMat3x2', 'IAnyMatrix3x3', 'IAnyMat3x3', 'IAnyMatrix3x4', 'IAnyMat3x4', 'IAnyMatrix3xAny', 'IAnyMat3xAny', 'IAnyMatrix4x2', 'IAnyMat4x2', 'IAnyMatrix4x3', 'IAnyMat4x3', 'IAnyMatrix4x4', 'IAnyMat4x4', 'IAnyMatrix4xAny', 'IAnyMat4xAny', 'IAnyMatrixAnyx2', 'IAnyMatAnyx2', 'IAnyMatrixAnyx3', 'IAnyMatAnyx3', 'IAnyMatrixAnyx4', 'IAnyMatAnyx4', 'IAnyMatrixAnyxAny', 'IAnyMatAnyxAny', 'U32Matrix2x2', 'U32Mat2x2', 'U32Matrix2x3', 'U32Mat2x3', 'U32Matrix2x4', 'U32Mat2x4', 'U32Matrix2xAny', 'U32Mat2xAny', 'U32Matrix3x2', 'U32Mat3x2', 'U32Matrix3x3', 'U32Mat3x3', 'U32Matrix3x4', 'U32Mat3x4', 'U32Matrix3xAny', 'U32Mat3xAny', 'U32Matrix4x2', 'U32Mat4x2', 'U32Matrix4x3', 'U32Mat4x3', 'U32Matrix4x4', 'U32Mat4x4', 'U32Matrix4xAny', 'U32Mat4xAny', 'U32MatrixAnyx2', 'U32MatAnyx2', 'U32MatrixAnyx3', 'U32MatAnyx3', 'U32MatrixAnyx4', 'U32MatAnyx4', 'U32MatrixAnyxAny', 'U32MatAnyxAny', 'UAnyMatrix2x2', 'UAnyMat2x2', 'UAnyMatrix2x3', 'UAnyMat2x3', 'UAnyMatrix2x4', 'UAnyMat2x4', 'UAnyMatrix2xAny', 'UAnyMat2xAny', 'UAnyMatrix3x2', 'UAnyMat3x2', 'UAnyMatrix3x3', 'UAnyMat3x3', 'UAnyMatrix3x4', 'UAnyMat3x4', 'UAnyMatrix3xAny', 'UAnyMat3xAny', 'UAnyMatrix4x2', 'UAnyMat4x2', 'UAnyMatrix4x3', 'UAnyMat4x3', 'UAnyMatrix4x4', 'UAnyMat4x4', 'UAnyMatrix4xAny', 'UAnyMat4xAny', 'UAnyMatrixAnyx2', 'UAnyMatAnyx2', 'UAnyMatrixAnyx3', 'UAnyMatAnyx3', 'UAnyMatrixAnyx4', 'UAnyMatAnyx4', 'UAnyMatrixAnyxAny', 'UAnyMatAnyxAny', 'AnyAnyMatrix2x2', 'AnyAnyMat2x2', 'AnyAnyMatrix2x3', 'AnyAnyMat2x3', 'AnyAnyMatrix2x4', 'AnyAnyMat2x4', 'AnyAnyMatrix2xAny', 'AnyAnyMat2xAny', 'AnyAnyMatrix3x2', 'AnyAnyMat3x2', 'AnyAnyMatrix3x3', 'AnyAnyMat3x3', 'AnyAnyMatrix3x4', 'AnyAnyMat3x4', 'AnyAnyMatrix3xAny', 'AnyAnyMat3xAny', 'AnyAnyMatrix4x2', 'AnyAnyMat4x2', 'AnyAnyMatrix4x3', 'AnyAnyMat4x3', 'AnyAnyMatrix4x4', 'AnyAnyMat4x4', 'AnyAnyMatrix4xAny', 'AnyAnyMat4xAny', 'AnyAnyMatrixAnyx2', 'AnyAnyMatAnyx2', 'AnyAnyMatrixAnyx3', 'AnyAnyMatAnyx3', 'AnyAnyMatrixAnyx4', 'AnyAnyMatAnyx4', 'AnyAnyMatrixAnyxAny', 'AnyAnyMatAnyxAny', 'AnyAnyMatrixSquare', 'D64Quaternion', 'D64Quat', 'DAnyQuaternion', 'DAnyQuat', 'F32Quaternion', 'F32Quat', 'FAnyQuaternion', 'FAnyQuat', 'AnyAnyQuaternion', 'AnyAnyQuat', 'FDAnyQuaternion', 'FDAnyQuaternionVector4'] diff --git a/PyGLM.cpp b/PyGLM_lib/PyGLM.cpp similarity index 99% rename from PyGLM.cpp rename to PyGLM_lib/PyGLM.cpp index 7f789828..68088a9e 100644 --- a/PyGLM.cpp +++ b/PyGLM_lib/PyGLM.cpp @@ -858,6 +858,8 @@ extern "C" { PyGLM_LICENSE_STRING = PyUnicode_FromString(PyGLM_LICENSE); Py_INCREF(PyGLM_LICENSE_STRING); PyModule_AddObject(module_glm, "license", PyGLM_LICENSE_STRING); + + PyModule_AddStringConstant(module_glm, "__version__", PyGLM_VERSION); return module_glm; } diff --git a/PyGLM/compiler_setup.h b/PyGLM_lib/PyGLM/compiler_setup.h similarity index 100% rename from PyGLM/compiler_setup.h rename to PyGLM_lib/PyGLM/compiler_setup.h diff --git a/PyGLM/functions/all.h b/PyGLM_lib/PyGLM/functions/all.h similarity index 100% rename from PyGLM/functions/all.h rename to PyGLM_lib/PyGLM/functions/all.h diff --git a/PyGLM/functions/detail/all.h b/PyGLM_lib/PyGLM/functions/detail/all.h similarity index 100% rename from PyGLM/functions/detail/all.h rename to PyGLM_lib/PyGLM/functions/detail/all.h diff --git a/PyGLM/functions/detail/func_common.h b/PyGLM_lib/PyGLM/functions/detail/func_common.h similarity index 100% rename from PyGLM/functions/detail/func_common.h rename to PyGLM_lib/PyGLM/functions/detail/func_common.h diff --git a/PyGLM/functions/detail/func_exponential.h b/PyGLM_lib/PyGLM/functions/detail/func_exponential.h similarity index 100% rename from PyGLM/functions/detail/func_exponential.h rename to PyGLM_lib/PyGLM/functions/detail/func_exponential.h diff --git a/PyGLM/functions/detail/func_geometric.h b/PyGLM_lib/PyGLM/functions/detail/func_geometric.h similarity index 100% rename from PyGLM/functions/detail/func_geometric.h rename to PyGLM_lib/PyGLM/functions/detail/func_geometric.h diff --git a/PyGLM/functions/detail/func_integer.h b/PyGLM_lib/PyGLM/functions/detail/func_integer.h similarity index 100% rename from PyGLM/functions/detail/func_integer.h rename to PyGLM_lib/PyGLM/functions/detail/func_integer.h diff --git a/PyGLM/functions/detail/func_matrix.h b/PyGLM_lib/PyGLM/functions/detail/func_matrix.h similarity index 100% rename from PyGLM/functions/detail/func_matrix.h rename to PyGLM_lib/PyGLM/functions/detail/func_matrix.h diff --git a/PyGLM/functions/detail/func_packing.h b/PyGLM_lib/PyGLM/functions/detail/func_packing.h similarity index 100% rename from PyGLM/functions/detail/func_packing.h rename to PyGLM_lib/PyGLM/functions/detail/func_packing.h diff --git a/PyGLM/functions/detail/func_trigonometric.h b/PyGLM_lib/PyGLM/functions/detail/func_trigonometric.h similarity index 100% rename from PyGLM/functions/detail/func_trigonometric.h rename to PyGLM_lib/PyGLM/functions/detail/func_trigonometric.h diff --git a/PyGLM/functions/detail/func_vector_relational.h b/PyGLM_lib/PyGLM/functions/detail/func_vector_relational.h similarity index 100% rename from PyGLM/functions/detail/func_vector_relational.h rename to PyGLM_lib/PyGLM/functions/detail/func_vector_relational.h diff --git a/PyGLM/functions/function_generator_macros.h b/PyGLM_lib/PyGLM/functions/function_generator_macros.h similarity index 100% rename from PyGLM/functions/function_generator_macros.h rename to PyGLM_lib/PyGLM/functions/function_generator_macros.h diff --git a/PyGLM/functions/other/all.h b/PyGLM_lib/PyGLM/functions/other/all.h similarity index 100% rename from PyGLM/functions/other/all.h rename to PyGLM_lib/PyGLM/functions/other/all.h diff --git a/PyGLM/functions/other/binary.h b/PyGLM_lib/PyGLM/functions/other/binary.h similarity index 100% rename from PyGLM/functions/other/binary.h rename to PyGLM_lib/PyGLM/functions/other/binary.h diff --git a/PyGLM/functions/other/custom.h b/PyGLM_lib/PyGLM/functions/other/custom.h similarity index 100% rename from PyGLM/functions/other/custom.h rename to PyGLM_lib/PyGLM/functions/other/custom.h diff --git a/PyGLM/functions/other/ternary.h b/PyGLM_lib/PyGLM/functions/other/ternary.h similarity index 100% rename from PyGLM/functions/other/ternary.h rename to PyGLM_lib/PyGLM/functions/other/ternary.h diff --git a/PyGLM/functions/other/unary.h b/PyGLM_lib/PyGLM/functions/other/unary.h similarity index 100% rename from PyGLM/functions/other/unary.h rename to PyGLM_lib/PyGLM/functions/other/unary.h diff --git a/PyGLM/functions/stable_extensions/all.h b/PyGLM_lib/PyGLM/functions/stable_extensions/all.h similarity index 100% rename from PyGLM/functions/stable_extensions/all.h rename to PyGLM_lib/PyGLM/functions/stable_extensions/all.h diff --git a/PyGLM/functions/stable_extensions/color_space.h b/PyGLM_lib/PyGLM/functions/stable_extensions/color_space.h similarity index 100% rename from PyGLM/functions/stable_extensions/color_space.h rename to PyGLM_lib/PyGLM/functions/stable_extensions/color_space.h diff --git a/PyGLM/functions/stable_extensions/constants.h b/PyGLM_lib/PyGLM/functions/stable_extensions/constants.h similarity index 100% rename from PyGLM/functions/stable_extensions/constants.h rename to PyGLM_lib/PyGLM/functions/stable_extensions/constants.h diff --git a/PyGLM/functions/stable_extensions/epsilon.h b/PyGLM_lib/PyGLM/functions/stable_extensions/epsilon.h similarity index 100% rename from PyGLM/functions/stable_extensions/epsilon.h rename to PyGLM_lib/PyGLM/functions/stable_extensions/epsilon.h diff --git a/PyGLM/functions/stable_extensions/integer.h b/PyGLM_lib/PyGLM/functions/stable_extensions/integer.h similarity index 100% rename from PyGLM/functions/stable_extensions/integer.h rename to PyGLM_lib/PyGLM/functions/stable_extensions/integer.h diff --git a/PyGLM/functions/stable_extensions/matrix_access.h b/PyGLM_lib/PyGLM/functions/stable_extensions/matrix_access.h similarity index 100% rename from PyGLM/functions/stable_extensions/matrix_access.h rename to PyGLM_lib/PyGLM/functions/stable_extensions/matrix_access.h diff --git a/PyGLM/functions/stable_extensions/matrix_clip_space.h b/PyGLM_lib/PyGLM/functions/stable_extensions/matrix_clip_space.h similarity index 100% rename from PyGLM/functions/stable_extensions/matrix_clip_space.h rename to PyGLM_lib/PyGLM/functions/stable_extensions/matrix_clip_space.h diff --git a/PyGLM/functions/stable_extensions/matrix_inverse.h b/PyGLM_lib/PyGLM/functions/stable_extensions/matrix_inverse.h similarity index 100% rename from PyGLM/functions/stable_extensions/matrix_inverse.h rename to PyGLM_lib/PyGLM/functions/stable_extensions/matrix_inverse.h diff --git a/PyGLM/functions/stable_extensions/matrix_projection.h b/PyGLM_lib/PyGLM/functions/stable_extensions/matrix_projection.h similarity index 100% rename from PyGLM/functions/stable_extensions/matrix_projection.h rename to PyGLM_lib/PyGLM/functions/stable_extensions/matrix_projection.h diff --git a/PyGLM/functions/stable_extensions/matrix_transform.h b/PyGLM_lib/PyGLM/functions/stable_extensions/matrix_transform.h similarity index 100% rename from PyGLM/functions/stable_extensions/matrix_transform.h rename to PyGLM_lib/PyGLM/functions/stable_extensions/matrix_transform.h diff --git a/PyGLM/functions/stable_extensions/noise.h b/PyGLM_lib/PyGLM/functions/stable_extensions/noise.h similarity index 100% rename from PyGLM/functions/stable_extensions/noise.h rename to PyGLM_lib/PyGLM/functions/stable_extensions/noise.h diff --git a/PyGLM/functions/stable_extensions/packing.h b/PyGLM_lib/PyGLM/functions/stable_extensions/packing.h similarity index 100% rename from PyGLM/functions/stable_extensions/packing.h rename to PyGLM_lib/PyGLM/functions/stable_extensions/packing.h diff --git a/PyGLM/functions/stable_extensions/quaternion.h b/PyGLM_lib/PyGLM/functions/stable_extensions/quaternion.h similarity index 100% rename from PyGLM/functions/stable_extensions/quaternion.h rename to PyGLM_lib/PyGLM/functions/stable_extensions/quaternion.h diff --git a/PyGLM/functions/stable_extensions/quaternion_common.h b/PyGLM_lib/PyGLM/functions/stable_extensions/quaternion_common.h similarity index 100% rename from PyGLM/functions/stable_extensions/quaternion_common.h rename to PyGLM_lib/PyGLM/functions/stable_extensions/quaternion_common.h diff --git a/PyGLM/functions/stable_extensions/quaternion_trigonometric.h b/PyGLM_lib/PyGLM/functions/stable_extensions/quaternion_trigonometric.h similarity index 100% rename from PyGLM/functions/stable_extensions/quaternion_trigonometric.h rename to PyGLM_lib/PyGLM/functions/stable_extensions/quaternion_trigonometric.h diff --git a/PyGLM/functions/stable_extensions/random.h b/PyGLM_lib/PyGLM/functions/stable_extensions/random.h similarity index 100% rename from PyGLM/functions/stable_extensions/random.h rename to PyGLM_lib/PyGLM/functions/stable_extensions/random.h diff --git a/PyGLM/functions/stable_extensions/reciprocal.h b/PyGLM_lib/PyGLM/functions/stable_extensions/reciprocal.h similarity index 100% rename from PyGLM/functions/stable_extensions/reciprocal.h rename to PyGLM_lib/PyGLM/functions/stable_extensions/reciprocal.h diff --git a/PyGLM/functions/stable_extensions/round.h b/PyGLM_lib/PyGLM/functions/stable_extensions/round.h similarity index 100% rename from PyGLM/functions/stable_extensions/round.h rename to PyGLM_lib/PyGLM/functions/stable_extensions/round.h diff --git a/PyGLM/functions/stable_extensions/type_ptr.h b/PyGLM_lib/PyGLM/functions/stable_extensions/type_ptr.h similarity index 100% rename from PyGLM/functions/stable_extensions/type_ptr.h rename to PyGLM_lib/PyGLM/functions/stable_extensions/type_ptr.h diff --git a/PyGLM/functions/stable_extensions/ulp.h b/PyGLM_lib/PyGLM/functions/stable_extensions/ulp.h similarity index 100% rename from PyGLM/functions/stable_extensions/ulp.h rename to PyGLM_lib/PyGLM/functions/stable_extensions/ulp.h diff --git a/PyGLM/functions/unstable_extensions/all.h b/PyGLM_lib/PyGLM/functions/unstable_extensions/all.h similarity index 100% rename from PyGLM/functions/unstable_extensions/all.h rename to PyGLM_lib/PyGLM/functions/unstable_extensions/all.h diff --git a/PyGLM/functions/unstable_extensions/compatibility.h b/PyGLM_lib/PyGLM/functions/unstable_extensions/compatibility.h similarity index 100% rename from PyGLM/functions/unstable_extensions/compatibility.h rename to PyGLM_lib/PyGLM/functions/unstable_extensions/compatibility.h diff --git a/PyGLM/functions/unstable_extensions/matrix_decompose.h b/PyGLM_lib/PyGLM/functions/unstable_extensions/matrix_decompose.h similarity index 100% rename from PyGLM/functions/unstable_extensions/matrix_decompose.h rename to PyGLM_lib/PyGLM/functions/unstable_extensions/matrix_decompose.h diff --git a/PyGLM/functions/unstable_extensions/matrix_transform_2d.h b/PyGLM_lib/PyGLM/functions/unstable_extensions/matrix_transform_2d.h similarity index 100% rename from PyGLM/functions/unstable_extensions/matrix_transform_2d.h rename to PyGLM_lib/PyGLM/functions/unstable_extensions/matrix_transform_2d.h diff --git a/PyGLM/functions/unstable_extensions/norm.h b/PyGLM_lib/PyGLM/functions/unstable_extensions/norm.h similarity index 100% rename from PyGLM/functions/unstable_extensions/norm.h rename to PyGLM_lib/PyGLM/functions/unstable_extensions/norm.h diff --git a/PyGLM/functions/unstable_extensions/polar_coordinates.h b/PyGLM_lib/PyGLM/functions/unstable_extensions/polar_coordinates.h similarity index 100% rename from PyGLM/functions/unstable_extensions/polar_coordinates.h rename to PyGLM_lib/PyGLM/functions/unstable_extensions/polar_coordinates.h diff --git a/PyGLM/functions/unstable_extensions/rotate_vector.h b/PyGLM_lib/PyGLM/functions/unstable_extensions/rotate_vector.h similarity index 100% rename from PyGLM/functions/unstable_extensions/rotate_vector.h rename to PyGLM_lib/PyGLM/functions/unstable_extensions/rotate_vector.h diff --git a/PyGLM/imports.h b/PyGLM_lib/PyGLM/imports.h similarity index 100% rename from PyGLM/imports.h rename to PyGLM_lib/PyGLM/imports.h diff --git a/PyGLM/internal_functions/all.h b/PyGLM_lib/PyGLM/internal_functions/all.h similarity index 100% rename from PyGLM/internal_functions/all.h rename to PyGLM_lib/PyGLM/internal_functions/all.h diff --git a/PyGLM/internal_functions/ctypes_pointers.h b/PyGLM_lib/PyGLM/internal_functions/ctypes_pointers.h similarity index 100% rename from PyGLM/internal_functions/ctypes_pointers.h rename to PyGLM_lib/PyGLM/internal_functions/ctypes_pointers.h diff --git a/PyGLM/internal_functions/error_functions.h b/PyGLM_lib/PyGLM/internal_functions/error_functions.h similarity index 100% rename from PyGLM/internal_functions/error_functions.h rename to PyGLM_lib/PyGLM/internal_functions/error_functions.h diff --git a/PyGLM/internal_functions/helper_macros.h b/PyGLM_lib/PyGLM/internal_functions/helper_macros.h similarity index 100% rename from PyGLM/internal_functions/helper_macros.h rename to PyGLM_lib/PyGLM/internal_functions/helper_macros.h diff --git a/PyGLM/internal_functions/number_functions.h b/PyGLM_lib/PyGLM/internal_functions/number_functions.h similarity index 100% rename from PyGLM/internal_functions/number_functions.h rename to PyGLM_lib/PyGLM/internal_functions/number_functions.h diff --git a/PyGLM/internal_functions/packers.h b/PyGLM_lib/PyGLM/internal_functions/packers.h similarity index 100% rename from PyGLM/internal_functions/packers.h rename to PyGLM_lib/PyGLM/internal_functions/packers.h diff --git a/PyGLM/internal_functions/type_checkers.h b/PyGLM_lib/PyGLM/internal_functions/type_checkers.h similarity index 100% rename from PyGLM/internal_functions/type_checkers.h rename to PyGLM_lib/PyGLM/internal_functions/type_checkers.h diff --git a/PyGLM/internal_functions/type_getters/all.h b/PyGLM_lib/PyGLM/internal_functions/type_getters/all.h similarity index 100% rename from PyGLM/internal_functions/type_getters/all.h rename to PyGLM_lib/PyGLM/internal_functions/type_getters/all.h diff --git a/PyGLM/internal_functions/type_getters/ctypes_datatypes.h b/PyGLM_lib/PyGLM/internal_functions/type_getters/ctypes_datatypes.h similarity index 100% rename from PyGLM/internal_functions/type_getters/ctypes_datatypes.h rename to PyGLM_lib/PyGLM/internal_functions/type_getters/ctypes_datatypes.h diff --git a/PyGLM/internal_functions/type_getters/mat.h b/PyGLM_lib/PyGLM/internal_functions/type_getters/mat.h similarity index 100% rename from PyGLM/internal_functions/type_getters/mat.h rename to PyGLM_lib/PyGLM/internal_functions/type_getters/mat.h diff --git a/PyGLM/internal_functions/type_getters/mat_iter.h b/PyGLM_lib/PyGLM/internal_functions/type_getters/mat_iter.h similarity index 100% rename from PyGLM/internal_functions/type_getters/mat_iter.h rename to PyGLM_lib/PyGLM/internal_functions/type_getters/mat_iter.h diff --git a/PyGLM/internal_functions/type_getters/mvec.h b/PyGLM_lib/PyGLM/internal_functions/type_getters/mvec.h similarity index 100% rename from PyGLM/internal_functions/type_getters/mvec.h rename to PyGLM_lib/PyGLM/internal_functions/type_getters/mvec.h diff --git a/PyGLM/internal_functions/type_getters/mvec_iter.h b/PyGLM_lib/PyGLM/internal_functions/type_getters/mvec_iter.h similarity index 100% rename from PyGLM/internal_functions/type_getters/mvec_iter.h rename to PyGLM_lib/PyGLM/internal_functions/type_getters/mvec_iter.h diff --git a/PyGLM/internal_functions/type_getters/qua.h b/PyGLM_lib/PyGLM/internal_functions/type_getters/qua.h similarity index 100% rename from PyGLM/internal_functions/type_getters/qua.h rename to PyGLM_lib/PyGLM/internal_functions/type_getters/qua.h diff --git a/PyGLM/internal_functions/type_getters/qua_iter.h b/PyGLM_lib/PyGLM/internal_functions/type_getters/qua_iter.h similarity index 100% rename from PyGLM/internal_functions/type_getters/qua_iter.h rename to PyGLM_lib/PyGLM/internal_functions/type_getters/qua_iter.h diff --git a/PyGLM/internal_functions/type_getters/type_checkers.h b/PyGLM_lib/PyGLM/internal_functions/type_getters/type_checkers.h similarity index 100% rename from PyGLM/internal_functions/type_getters/type_checkers.h rename to PyGLM_lib/PyGLM/internal_functions/type_getters/type_checkers.h diff --git a/PyGLM/internal_functions/type_getters/vec.h b/PyGLM_lib/PyGLM/internal_functions/type_getters/vec.h similarity index 100% rename from PyGLM/internal_functions/type_getters/vec.h rename to PyGLM_lib/PyGLM/internal_functions/type_getters/vec.h diff --git a/PyGLM/internal_functions/type_getters/vec_iter.h b/PyGLM_lib/PyGLM/internal_functions/type_getters/vec_iter.h similarity index 100% rename from PyGLM/internal_functions/type_getters/vec_iter.h rename to PyGLM_lib/PyGLM/internal_functions/type_getters/vec_iter.h diff --git a/PyGLM/internal_functions/unpackers.h b/PyGLM_lib/PyGLM/internal_functions/unpackers.h similarity index 100% rename from PyGLM/internal_functions/unpackers.h rename to PyGLM_lib/PyGLM/internal_functions/unpackers.h diff --git a/PyGLM/internal_functions/version_info.h b/PyGLM_lib/PyGLM/internal_functions/version_info.h similarity index 100% rename from PyGLM/internal_functions/version_info.h rename to PyGLM_lib/PyGLM/internal_functions/version_info.h diff --git a/PyGLM/internal_functions/warnings.h b/PyGLM_lib/PyGLM/internal_functions/warnings.h similarity index 100% rename from PyGLM/internal_functions/warnings.h rename to PyGLM_lib/PyGLM/internal_functions/warnings.h diff --git a/PyGLM/type_methods/all.h b/PyGLM_lib/PyGLM/type_methods/all.h similarity index 100% rename from PyGLM/type_methods/all.h rename to PyGLM_lib/PyGLM/type_methods/all.h diff --git a/PyGLM/type_methods/glmArray.h b/PyGLM_lib/PyGLM/type_methods/glmArray.h similarity index 100% rename from PyGLM/type_methods/glmArray.h rename to PyGLM_lib/PyGLM/type_methods/glmArray.h diff --git a/PyGLM/type_methods/mat.h b/PyGLM_lib/PyGLM/type_methods/mat.h similarity index 100% rename from PyGLM/type_methods/mat.h rename to PyGLM_lib/PyGLM/type_methods/mat.h diff --git a/PyGLM/type_methods/mvec.h b/PyGLM_lib/PyGLM/type_methods/mvec.h similarity index 100% rename from PyGLM/type_methods/mvec.h rename to PyGLM_lib/PyGLM/type_methods/mvec.h diff --git a/PyGLM/type_methods/qua.h b/PyGLM_lib/PyGLM/type_methods/qua.h similarity index 100% rename from PyGLM/type_methods/qua.h rename to PyGLM_lib/PyGLM/type_methods/qua.h diff --git a/PyGLM/type_methods/vec.h b/PyGLM_lib/PyGLM/type_methods/vec.h similarity index 100% rename from PyGLM/type_methods/vec.h rename to PyGLM_lib/PyGLM/type_methods/vec.h diff --git a/PyGLM/types/all.h b/PyGLM_lib/PyGLM/types/all.h similarity index 100% rename from PyGLM/types/all.h rename to PyGLM_lib/PyGLM/types/all.h diff --git a/PyGLM/types/forward_declarations.h b/PyGLM_lib/PyGLM/types/forward_declarations.h similarity index 100% rename from PyGLM/types/forward_declarations.h rename to PyGLM_lib/PyGLM/types/forward_declarations.h diff --git a/PyGLM/types/glmArray/forward_declarations.h b/PyGLM_lib/PyGLM/types/glmArray/forward_declarations.h similarity index 100% rename from PyGLM/types/glmArray/forward_declarations.h rename to PyGLM_lib/PyGLM/types/glmArray/forward_declarations.h diff --git a/PyGLM/types/glmArray/glmArray.h b/PyGLM_lib/PyGLM/types/glmArray/glmArray.h similarity index 100% rename from PyGLM/types/glmArray/glmArray.h rename to PyGLM_lib/PyGLM/types/glmArray/glmArray.h diff --git a/PyGLM/types/mat/all.h b/PyGLM_lib/PyGLM/types/mat/all.h similarity index 100% rename from PyGLM/types/mat/all.h rename to PyGLM_lib/PyGLM/types/mat/all.h diff --git a/PyGLM/types/mat/double/all.h b/PyGLM_lib/PyGLM/types/mat/double/all.h similarity index 100% rename from PyGLM/types/mat/double/all.h rename to PyGLM_lib/PyGLM/types/mat/double/all.h diff --git a/PyGLM/types/mat/double/mat2x2.h b/PyGLM_lib/PyGLM/types/mat/double/mat2x2.h similarity index 100% rename from PyGLM/types/mat/double/mat2x2.h rename to PyGLM_lib/PyGLM/types/mat/double/mat2x2.h diff --git a/PyGLM/types/mat/double/mat2x3.h b/PyGLM_lib/PyGLM/types/mat/double/mat2x3.h similarity index 100% rename from PyGLM/types/mat/double/mat2x3.h rename to PyGLM_lib/PyGLM/types/mat/double/mat2x3.h diff --git a/PyGLM/types/mat/double/mat2x4.h b/PyGLM_lib/PyGLM/types/mat/double/mat2x4.h similarity index 100% rename from PyGLM/types/mat/double/mat2x4.h rename to PyGLM_lib/PyGLM/types/mat/double/mat2x4.h diff --git a/PyGLM/types/mat/double/mat3x2.h b/PyGLM_lib/PyGLM/types/mat/double/mat3x2.h similarity index 100% rename from PyGLM/types/mat/double/mat3x2.h rename to PyGLM_lib/PyGLM/types/mat/double/mat3x2.h diff --git a/PyGLM/types/mat/double/mat3x3.h b/PyGLM_lib/PyGLM/types/mat/double/mat3x3.h similarity index 100% rename from PyGLM/types/mat/double/mat3x3.h rename to PyGLM_lib/PyGLM/types/mat/double/mat3x3.h diff --git a/PyGLM/types/mat/double/mat3x4.h b/PyGLM_lib/PyGLM/types/mat/double/mat3x4.h similarity index 100% rename from PyGLM/types/mat/double/mat3x4.h rename to PyGLM_lib/PyGLM/types/mat/double/mat3x4.h diff --git a/PyGLM/types/mat/double/mat4x2.h b/PyGLM_lib/PyGLM/types/mat/double/mat4x2.h similarity index 100% rename from PyGLM/types/mat/double/mat4x2.h rename to PyGLM_lib/PyGLM/types/mat/double/mat4x2.h diff --git a/PyGLM/types/mat/double/mat4x3.h b/PyGLM_lib/PyGLM/types/mat/double/mat4x3.h similarity index 100% rename from PyGLM/types/mat/double/mat4x3.h rename to PyGLM_lib/PyGLM/types/mat/double/mat4x3.h diff --git a/PyGLM/types/mat/double/mat4x4.h b/PyGLM_lib/PyGLM/types/mat/double/mat4x4.h similarity index 100% rename from PyGLM/types/mat/double/mat4x4.h rename to PyGLM_lib/PyGLM/types/mat/double/mat4x4.h diff --git a/PyGLM/types/mat/float/all.h b/PyGLM_lib/PyGLM/types/mat/float/all.h similarity index 100% rename from PyGLM/types/mat/float/all.h rename to PyGLM_lib/PyGLM/types/mat/float/all.h diff --git a/PyGLM/types/mat/float/mat2x2.h b/PyGLM_lib/PyGLM/types/mat/float/mat2x2.h similarity index 100% rename from PyGLM/types/mat/float/mat2x2.h rename to PyGLM_lib/PyGLM/types/mat/float/mat2x2.h diff --git a/PyGLM/types/mat/float/mat2x3.h b/PyGLM_lib/PyGLM/types/mat/float/mat2x3.h similarity index 100% rename from PyGLM/types/mat/float/mat2x3.h rename to PyGLM_lib/PyGLM/types/mat/float/mat2x3.h diff --git a/PyGLM/types/mat/float/mat2x4.h b/PyGLM_lib/PyGLM/types/mat/float/mat2x4.h similarity index 100% rename from PyGLM/types/mat/float/mat2x4.h rename to PyGLM_lib/PyGLM/types/mat/float/mat2x4.h diff --git a/PyGLM/types/mat/float/mat3x2.h b/PyGLM_lib/PyGLM/types/mat/float/mat3x2.h similarity index 100% rename from PyGLM/types/mat/float/mat3x2.h rename to PyGLM_lib/PyGLM/types/mat/float/mat3x2.h diff --git a/PyGLM/types/mat/float/mat3x3.h b/PyGLM_lib/PyGLM/types/mat/float/mat3x3.h similarity index 100% rename from PyGLM/types/mat/float/mat3x3.h rename to PyGLM_lib/PyGLM/types/mat/float/mat3x3.h diff --git a/PyGLM/types/mat/float/mat3x4.h b/PyGLM_lib/PyGLM/types/mat/float/mat3x4.h similarity index 100% rename from PyGLM/types/mat/float/mat3x4.h rename to PyGLM_lib/PyGLM/types/mat/float/mat3x4.h diff --git a/PyGLM/types/mat/float/mat4x2.h b/PyGLM_lib/PyGLM/types/mat/float/mat4x2.h similarity index 100% rename from PyGLM/types/mat/float/mat4x2.h rename to PyGLM_lib/PyGLM/types/mat/float/mat4x2.h diff --git a/PyGLM/types/mat/float/mat4x3.h b/PyGLM_lib/PyGLM/types/mat/float/mat4x3.h similarity index 100% rename from PyGLM/types/mat/float/mat4x3.h rename to PyGLM_lib/PyGLM/types/mat/float/mat4x3.h diff --git a/PyGLM/types/mat/float/mat4x4.h b/PyGLM_lib/PyGLM/types/mat/float/mat4x4.h similarity index 100% rename from PyGLM/types/mat/float/mat4x4.h rename to PyGLM_lib/PyGLM/types/mat/float/mat4x4.h diff --git a/PyGLM/types/mat/forward_declarations.h b/PyGLM_lib/PyGLM/types/mat/forward_declarations.h similarity index 100% rename from PyGLM/types/mat/forward_declarations.h rename to PyGLM_lib/PyGLM/types/mat/forward_declarations.h diff --git a/PyGLM/types/mat/int/all.h b/PyGLM_lib/PyGLM/types/mat/int/all.h similarity index 100% rename from PyGLM/types/mat/int/all.h rename to PyGLM_lib/PyGLM/types/mat/int/all.h diff --git a/PyGLM/types/mat/int/mat2x2.h b/PyGLM_lib/PyGLM/types/mat/int/mat2x2.h similarity index 100% rename from PyGLM/types/mat/int/mat2x2.h rename to PyGLM_lib/PyGLM/types/mat/int/mat2x2.h diff --git a/PyGLM/types/mat/int/mat2x3.h b/PyGLM_lib/PyGLM/types/mat/int/mat2x3.h similarity index 100% rename from PyGLM/types/mat/int/mat2x3.h rename to PyGLM_lib/PyGLM/types/mat/int/mat2x3.h diff --git a/PyGLM/types/mat/int/mat2x4.h b/PyGLM_lib/PyGLM/types/mat/int/mat2x4.h similarity index 100% rename from PyGLM/types/mat/int/mat2x4.h rename to PyGLM_lib/PyGLM/types/mat/int/mat2x4.h diff --git a/PyGLM/types/mat/int/mat3x2.h b/PyGLM_lib/PyGLM/types/mat/int/mat3x2.h similarity index 100% rename from PyGLM/types/mat/int/mat3x2.h rename to PyGLM_lib/PyGLM/types/mat/int/mat3x2.h diff --git a/PyGLM/types/mat/int/mat3x3.h b/PyGLM_lib/PyGLM/types/mat/int/mat3x3.h similarity index 100% rename from PyGLM/types/mat/int/mat3x3.h rename to PyGLM_lib/PyGLM/types/mat/int/mat3x3.h diff --git a/PyGLM/types/mat/int/mat3x4.h b/PyGLM_lib/PyGLM/types/mat/int/mat3x4.h similarity index 100% rename from PyGLM/types/mat/int/mat3x4.h rename to PyGLM_lib/PyGLM/types/mat/int/mat3x4.h diff --git a/PyGLM/types/mat/int/mat4x2.h b/PyGLM_lib/PyGLM/types/mat/int/mat4x2.h similarity index 100% rename from PyGLM/types/mat/int/mat4x2.h rename to PyGLM_lib/PyGLM/types/mat/int/mat4x2.h diff --git a/PyGLM/types/mat/int/mat4x3.h b/PyGLM_lib/PyGLM/types/mat/int/mat4x3.h similarity index 100% rename from PyGLM/types/mat/int/mat4x3.h rename to PyGLM_lib/PyGLM/types/mat/int/mat4x3.h diff --git a/PyGLM/types/mat/int/mat4x4.h b/PyGLM_lib/PyGLM/types/mat/int/mat4x4.h similarity index 100% rename from PyGLM/types/mat/int/mat4x4.h rename to PyGLM_lib/PyGLM/types/mat/int/mat4x4.h diff --git a/PyGLM/types/mat/uint/all.h b/PyGLM_lib/PyGLM/types/mat/uint/all.h similarity index 100% rename from PyGLM/types/mat/uint/all.h rename to PyGLM_lib/PyGLM/types/mat/uint/all.h diff --git a/PyGLM/types/mat/uint/float.h b/PyGLM_lib/PyGLM/types/mat/uint/float.h similarity index 100% rename from PyGLM/types/mat/uint/float.h rename to PyGLM_lib/PyGLM/types/mat/uint/float.h diff --git a/PyGLM/types/mat/uint/forward_declarations.h b/PyGLM_lib/PyGLM/types/mat/uint/forward_declarations.h similarity index 100% rename from PyGLM/types/mat/uint/forward_declarations.h rename to PyGLM_lib/PyGLM/types/mat/uint/forward_declarations.h diff --git a/PyGLM/types/mat/uint/mat2x2.h b/PyGLM_lib/PyGLM/types/mat/uint/mat2x2.h similarity index 100% rename from PyGLM/types/mat/uint/mat2x2.h rename to PyGLM_lib/PyGLM/types/mat/uint/mat2x2.h diff --git a/PyGLM/types/mat/uint/mat2x3.h b/PyGLM_lib/PyGLM/types/mat/uint/mat2x3.h similarity index 100% rename from PyGLM/types/mat/uint/mat2x3.h rename to PyGLM_lib/PyGLM/types/mat/uint/mat2x3.h diff --git a/PyGLM/types/mat/uint/mat2x4.h b/PyGLM_lib/PyGLM/types/mat/uint/mat2x4.h similarity index 100% rename from PyGLM/types/mat/uint/mat2x4.h rename to PyGLM_lib/PyGLM/types/mat/uint/mat2x4.h diff --git a/PyGLM/types/mat/uint/mat3x2.h b/PyGLM_lib/PyGLM/types/mat/uint/mat3x2.h similarity index 100% rename from PyGLM/types/mat/uint/mat3x2.h rename to PyGLM_lib/PyGLM/types/mat/uint/mat3x2.h diff --git a/PyGLM/types/mat/uint/mat3x3.h b/PyGLM_lib/PyGLM/types/mat/uint/mat3x3.h similarity index 100% rename from PyGLM/types/mat/uint/mat3x3.h rename to PyGLM_lib/PyGLM/types/mat/uint/mat3x3.h diff --git a/PyGLM/types/mat/uint/mat3x4.h b/PyGLM_lib/PyGLM/types/mat/uint/mat3x4.h similarity index 100% rename from PyGLM/types/mat/uint/mat3x4.h rename to PyGLM_lib/PyGLM/types/mat/uint/mat3x4.h diff --git a/PyGLM/types/mat/uint/mat4x2.h b/PyGLM_lib/PyGLM/types/mat/uint/mat4x2.h similarity index 100% rename from PyGLM/types/mat/uint/mat4x2.h rename to PyGLM_lib/PyGLM/types/mat/uint/mat4x2.h diff --git a/PyGLM/types/mat/uint/mat4x3.h b/PyGLM_lib/PyGLM/types/mat/uint/mat4x3.h similarity index 100% rename from PyGLM/types/mat/uint/mat4x3.h rename to PyGLM_lib/PyGLM/types/mat/uint/mat4x3.h diff --git a/PyGLM/types/mat/uint/mat4x4.h b/PyGLM_lib/PyGLM/types/mat/uint/mat4x4.h similarity index 100% rename from PyGLM/types/mat/uint/mat4x4.h rename to PyGLM_lib/PyGLM/types/mat/uint/mat4x4.h diff --git a/PyGLM/types/mvec/all.h b/PyGLM_lib/PyGLM/types/mvec/all.h similarity index 100% rename from PyGLM/types/mvec/all.h rename to PyGLM_lib/PyGLM/types/mvec/all.h diff --git a/PyGLM/types/mvec/double/all.h b/PyGLM_lib/PyGLM/types/mvec/double/all.h similarity index 100% rename from PyGLM/types/mvec/double/all.h rename to PyGLM_lib/PyGLM/types/mvec/double/all.h diff --git a/PyGLM/types/mvec/double/mvec2.h b/PyGLM_lib/PyGLM/types/mvec/double/mvec2.h similarity index 100% rename from PyGLM/types/mvec/double/mvec2.h rename to PyGLM_lib/PyGLM/types/mvec/double/mvec2.h diff --git a/PyGLM/types/mvec/double/mvec3.h b/PyGLM_lib/PyGLM/types/mvec/double/mvec3.h similarity index 100% rename from PyGLM/types/mvec/double/mvec3.h rename to PyGLM_lib/PyGLM/types/mvec/double/mvec3.h diff --git a/PyGLM/types/mvec/double/mvec4.h b/PyGLM_lib/PyGLM/types/mvec/double/mvec4.h similarity index 100% rename from PyGLM/types/mvec/double/mvec4.h rename to PyGLM_lib/PyGLM/types/mvec/double/mvec4.h diff --git a/PyGLM/types/mvec/float/all.h b/PyGLM_lib/PyGLM/types/mvec/float/all.h similarity index 100% rename from PyGLM/types/mvec/float/all.h rename to PyGLM_lib/PyGLM/types/mvec/float/all.h diff --git a/PyGLM/types/mvec/float/mvec2.h b/PyGLM_lib/PyGLM/types/mvec/float/mvec2.h similarity index 100% rename from PyGLM/types/mvec/float/mvec2.h rename to PyGLM_lib/PyGLM/types/mvec/float/mvec2.h diff --git a/PyGLM/types/mvec/float/mvec3.h b/PyGLM_lib/PyGLM/types/mvec/float/mvec3.h similarity index 100% rename from PyGLM/types/mvec/float/mvec3.h rename to PyGLM_lib/PyGLM/types/mvec/float/mvec3.h diff --git a/PyGLM/types/mvec/float/mvec4.h b/PyGLM_lib/PyGLM/types/mvec/float/mvec4.h similarity index 100% rename from PyGLM/types/mvec/float/mvec4.h rename to PyGLM_lib/PyGLM/types/mvec/float/mvec4.h diff --git a/PyGLM/types/mvec/forward_declarations.h b/PyGLM_lib/PyGLM/types/mvec/forward_declarations.h similarity index 100% rename from PyGLM/types/mvec/forward_declarations.h rename to PyGLM_lib/PyGLM/types/mvec/forward_declarations.h diff --git a/PyGLM/types/mvec/int/all.h b/PyGLM_lib/PyGLM/types/mvec/int/all.h similarity index 100% rename from PyGLM/types/mvec/int/all.h rename to PyGLM_lib/PyGLM/types/mvec/int/all.h diff --git a/PyGLM/types/mvec/int/mvec2.h b/PyGLM_lib/PyGLM/types/mvec/int/mvec2.h similarity index 100% rename from PyGLM/types/mvec/int/mvec2.h rename to PyGLM_lib/PyGLM/types/mvec/int/mvec2.h diff --git a/PyGLM/types/mvec/int/mvec3.h b/PyGLM_lib/PyGLM/types/mvec/int/mvec3.h similarity index 100% rename from PyGLM/types/mvec/int/mvec3.h rename to PyGLM_lib/PyGLM/types/mvec/int/mvec3.h diff --git a/PyGLM/types/mvec/int/mvec4.h b/PyGLM_lib/PyGLM/types/mvec/int/mvec4.h similarity index 100% rename from PyGLM/types/mvec/int/mvec4.h rename to PyGLM_lib/PyGLM/types/mvec/int/mvec4.h diff --git a/PyGLM/types/mvec/uint/all.h b/PyGLM_lib/PyGLM/types/mvec/uint/all.h similarity index 100% rename from PyGLM/types/mvec/uint/all.h rename to PyGLM_lib/PyGLM/types/mvec/uint/all.h diff --git a/PyGLM/types/mvec/uint/mvec2.h b/PyGLM_lib/PyGLM/types/mvec/uint/mvec2.h similarity index 100% rename from PyGLM/types/mvec/uint/mvec2.h rename to PyGLM_lib/PyGLM/types/mvec/uint/mvec2.h diff --git a/PyGLM/types/mvec/uint/mvec3.h b/PyGLM_lib/PyGLM/types/mvec/uint/mvec3.h similarity index 100% rename from PyGLM/types/mvec/uint/mvec3.h rename to PyGLM_lib/PyGLM/types/mvec/uint/mvec3.h diff --git a/PyGLM/types/mvec/uint/mvec4.h b/PyGLM_lib/PyGLM/types/mvec/uint/mvec4.h similarity index 100% rename from PyGLM/types/mvec/uint/mvec4.h rename to PyGLM_lib/PyGLM/types/mvec/uint/mvec4.h diff --git a/PyGLM/types/qua/all.h b/PyGLM_lib/PyGLM/types/qua/all.h similarity index 100% rename from PyGLM/types/qua/all.h rename to PyGLM_lib/PyGLM/types/qua/all.h diff --git a/PyGLM/types/qua/double/quat.h b/PyGLM_lib/PyGLM/types/qua/double/quat.h similarity index 100% rename from PyGLM/types/qua/double/quat.h rename to PyGLM_lib/PyGLM/types/qua/double/quat.h diff --git a/PyGLM/types/qua/float/quat.h b/PyGLM_lib/PyGLM/types/qua/float/quat.h similarity index 100% rename from PyGLM/types/qua/float/quat.h rename to PyGLM_lib/PyGLM/types/qua/float/quat.h diff --git a/PyGLM/types/qua/forward_declarations.h b/PyGLM_lib/PyGLM/types/qua/forward_declarations.h similarity index 100% rename from PyGLM/types/qua/forward_declarations.h rename to PyGLM_lib/PyGLM/types/qua/forward_declarations.h diff --git a/PyGLM/types/types.h b/PyGLM_lib/PyGLM/types/types.h similarity index 100% rename from PyGLM/types/types.h rename to PyGLM_lib/PyGLM/types/types.h diff --git a/PyGLM/types/vec/all.h b/PyGLM_lib/PyGLM/types/vec/all.h similarity index 100% rename from PyGLM/types/vec/all.h rename to PyGLM_lib/PyGLM/types/vec/all.h diff --git a/PyGLM/types/vec/bool/all.h b/PyGLM_lib/PyGLM/types/vec/bool/all.h similarity index 100% rename from PyGLM/types/vec/bool/all.h rename to PyGLM_lib/PyGLM/types/vec/bool/all.h diff --git a/PyGLM/types/vec/bool/vec1.h b/PyGLM_lib/PyGLM/types/vec/bool/vec1.h similarity index 100% rename from PyGLM/types/vec/bool/vec1.h rename to PyGLM_lib/PyGLM/types/vec/bool/vec1.h diff --git a/PyGLM/types/vec/bool/vec2.h b/PyGLM_lib/PyGLM/types/vec/bool/vec2.h similarity index 100% rename from PyGLM/types/vec/bool/vec2.h rename to PyGLM_lib/PyGLM/types/vec/bool/vec2.h diff --git a/PyGLM/types/vec/bool/vec3.h b/PyGLM_lib/PyGLM/types/vec/bool/vec3.h similarity index 100% rename from PyGLM/types/vec/bool/vec3.h rename to PyGLM_lib/PyGLM/types/vec/bool/vec3.h diff --git a/PyGLM/types/vec/bool/vec4.h b/PyGLM_lib/PyGLM/types/vec/bool/vec4.h similarity index 100% rename from PyGLM/types/vec/bool/vec4.h rename to PyGLM_lib/PyGLM/types/vec/bool/vec4.h diff --git a/PyGLM/types/vec/double/all.h b/PyGLM_lib/PyGLM/types/vec/double/all.h similarity index 100% rename from PyGLM/types/vec/double/all.h rename to PyGLM_lib/PyGLM/types/vec/double/all.h diff --git a/PyGLM/types/vec/double/vec1.h b/PyGLM_lib/PyGLM/types/vec/double/vec1.h similarity index 100% rename from PyGLM/types/vec/double/vec1.h rename to PyGLM_lib/PyGLM/types/vec/double/vec1.h diff --git a/PyGLM/types/vec/double/vec2.h b/PyGLM_lib/PyGLM/types/vec/double/vec2.h similarity index 100% rename from PyGLM/types/vec/double/vec2.h rename to PyGLM_lib/PyGLM/types/vec/double/vec2.h diff --git a/PyGLM/types/vec/double/vec3.h b/PyGLM_lib/PyGLM/types/vec/double/vec3.h similarity index 100% rename from PyGLM/types/vec/double/vec3.h rename to PyGLM_lib/PyGLM/types/vec/double/vec3.h diff --git a/PyGLM/types/vec/double/vec4.h b/PyGLM_lib/PyGLM/types/vec/double/vec4.h similarity index 100% rename from PyGLM/types/vec/double/vec4.h rename to PyGLM_lib/PyGLM/types/vec/double/vec4.h diff --git a/PyGLM/types/vec/float/all.h b/PyGLM_lib/PyGLM/types/vec/float/all.h similarity index 100% rename from PyGLM/types/vec/float/all.h rename to PyGLM_lib/PyGLM/types/vec/float/all.h diff --git a/PyGLM/types/vec/float/vec1.h b/PyGLM_lib/PyGLM/types/vec/float/vec1.h similarity index 100% rename from PyGLM/types/vec/float/vec1.h rename to PyGLM_lib/PyGLM/types/vec/float/vec1.h diff --git a/PyGLM/types/vec/float/vec2.h b/PyGLM_lib/PyGLM/types/vec/float/vec2.h similarity index 100% rename from PyGLM/types/vec/float/vec2.h rename to PyGLM_lib/PyGLM/types/vec/float/vec2.h diff --git a/PyGLM/types/vec/float/vec3.h b/PyGLM_lib/PyGLM/types/vec/float/vec3.h similarity index 100% rename from PyGLM/types/vec/float/vec3.h rename to PyGLM_lib/PyGLM/types/vec/float/vec3.h diff --git a/PyGLM/types/vec/float/vec4.h b/PyGLM_lib/PyGLM/types/vec/float/vec4.h similarity index 100% rename from PyGLM/types/vec/float/vec4.h rename to PyGLM_lib/PyGLM/types/vec/float/vec4.h diff --git a/PyGLM/types/vec/forward_declarations.h b/PyGLM_lib/PyGLM/types/vec/forward_declarations.h similarity index 100% rename from PyGLM/types/vec/forward_declarations.h rename to PyGLM_lib/PyGLM/types/vec/forward_declarations.h diff --git a/PyGLM/types/vec/int16/all.h b/PyGLM_lib/PyGLM/types/vec/int16/all.h similarity index 100% rename from PyGLM/types/vec/int16/all.h rename to PyGLM_lib/PyGLM/types/vec/int16/all.h diff --git a/PyGLM/types/vec/int16/vec1.h b/PyGLM_lib/PyGLM/types/vec/int16/vec1.h similarity index 100% rename from PyGLM/types/vec/int16/vec1.h rename to PyGLM_lib/PyGLM/types/vec/int16/vec1.h diff --git a/PyGLM/types/vec/int16/vec2.h b/PyGLM_lib/PyGLM/types/vec/int16/vec2.h similarity index 100% rename from PyGLM/types/vec/int16/vec2.h rename to PyGLM_lib/PyGLM/types/vec/int16/vec2.h diff --git a/PyGLM/types/vec/int16/vec3.h b/PyGLM_lib/PyGLM/types/vec/int16/vec3.h similarity index 100% rename from PyGLM/types/vec/int16/vec3.h rename to PyGLM_lib/PyGLM/types/vec/int16/vec3.h diff --git a/PyGLM/types/vec/int16/vec4.h b/PyGLM_lib/PyGLM/types/vec/int16/vec4.h similarity index 100% rename from PyGLM/types/vec/int16/vec4.h rename to PyGLM_lib/PyGLM/types/vec/int16/vec4.h diff --git a/PyGLM/types/vec/int32/all.h b/PyGLM_lib/PyGLM/types/vec/int32/all.h similarity index 100% rename from PyGLM/types/vec/int32/all.h rename to PyGLM_lib/PyGLM/types/vec/int32/all.h diff --git a/PyGLM/types/vec/int32/vec1.h b/PyGLM_lib/PyGLM/types/vec/int32/vec1.h similarity index 100% rename from PyGLM/types/vec/int32/vec1.h rename to PyGLM_lib/PyGLM/types/vec/int32/vec1.h diff --git a/PyGLM/types/vec/int32/vec2.h b/PyGLM_lib/PyGLM/types/vec/int32/vec2.h similarity index 100% rename from PyGLM/types/vec/int32/vec2.h rename to PyGLM_lib/PyGLM/types/vec/int32/vec2.h diff --git a/PyGLM/types/vec/int32/vec3.h b/PyGLM_lib/PyGLM/types/vec/int32/vec3.h similarity index 100% rename from PyGLM/types/vec/int32/vec3.h rename to PyGLM_lib/PyGLM/types/vec/int32/vec3.h diff --git a/PyGLM/types/vec/int32/vec4.h b/PyGLM_lib/PyGLM/types/vec/int32/vec4.h similarity index 100% rename from PyGLM/types/vec/int32/vec4.h rename to PyGLM_lib/PyGLM/types/vec/int32/vec4.h diff --git a/PyGLM/types/vec/int64/all.h b/PyGLM_lib/PyGLM/types/vec/int64/all.h similarity index 100% rename from PyGLM/types/vec/int64/all.h rename to PyGLM_lib/PyGLM/types/vec/int64/all.h diff --git a/PyGLM/types/vec/int64/vec1.h b/PyGLM_lib/PyGLM/types/vec/int64/vec1.h similarity index 100% rename from PyGLM/types/vec/int64/vec1.h rename to PyGLM_lib/PyGLM/types/vec/int64/vec1.h diff --git a/PyGLM/types/vec/int64/vec2.h b/PyGLM_lib/PyGLM/types/vec/int64/vec2.h similarity index 100% rename from PyGLM/types/vec/int64/vec2.h rename to PyGLM_lib/PyGLM/types/vec/int64/vec2.h diff --git a/PyGLM/types/vec/int64/vec3.h b/PyGLM_lib/PyGLM/types/vec/int64/vec3.h similarity index 100% rename from PyGLM/types/vec/int64/vec3.h rename to PyGLM_lib/PyGLM/types/vec/int64/vec3.h diff --git a/PyGLM/types/vec/int64/vec4.h b/PyGLM_lib/PyGLM/types/vec/int64/vec4.h similarity index 100% rename from PyGLM/types/vec/int64/vec4.h rename to PyGLM_lib/PyGLM/types/vec/int64/vec4.h diff --git a/PyGLM/types/vec/int8/all.h b/PyGLM_lib/PyGLM/types/vec/int8/all.h similarity index 100% rename from PyGLM/types/vec/int8/all.h rename to PyGLM_lib/PyGLM/types/vec/int8/all.h diff --git a/PyGLM/types/vec/int8/vec1.h b/PyGLM_lib/PyGLM/types/vec/int8/vec1.h similarity index 100% rename from PyGLM/types/vec/int8/vec1.h rename to PyGLM_lib/PyGLM/types/vec/int8/vec1.h diff --git a/PyGLM/types/vec/int8/vec2.h b/PyGLM_lib/PyGLM/types/vec/int8/vec2.h similarity index 100% rename from PyGLM/types/vec/int8/vec2.h rename to PyGLM_lib/PyGLM/types/vec/int8/vec2.h diff --git a/PyGLM/types/vec/int8/vec3.h b/PyGLM_lib/PyGLM/types/vec/int8/vec3.h similarity index 100% rename from PyGLM/types/vec/int8/vec3.h rename to PyGLM_lib/PyGLM/types/vec/int8/vec3.h diff --git a/PyGLM/types/vec/int8/vec4.h b/PyGLM_lib/PyGLM/types/vec/int8/vec4.h similarity index 100% rename from PyGLM/types/vec/int8/vec4.h rename to PyGLM_lib/PyGLM/types/vec/int8/vec4.h diff --git a/PyGLM/types/vec/uint16/all.h b/PyGLM_lib/PyGLM/types/vec/uint16/all.h similarity index 100% rename from PyGLM/types/vec/uint16/all.h rename to PyGLM_lib/PyGLM/types/vec/uint16/all.h diff --git a/PyGLM/types/vec/uint16/vec1.h b/PyGLM_lib/PyGLM/types/vec/uint16/vec1.h similarity index 100% rename from PyGLM/types/vec/uint16/vec1.h rename to PyGLM_lib/PyGLM/types/vec/uint16/vec1.h diff --git a/PyGLM/types/vec/uint16/vec2.h b/PyGLM_lib/PyGLM/types/vec/uint16/vec2.h similarity index 100% rename from PyGLM/types/vec/uint16/vec2.h rename to PyGLM_lib/PyGLM/types/vec/uint16/vec2.h diff --git a/PyGLM/types/vec/uint16/vec3.h b/PyGLM_lib/PyGLM/types/vec/uint16/vec3.h similarity index 100% rename from PyGLM/types/vec/uint16/vec3.h rename to PyGLM_lib/PyGLM/types/vec/uint16/vec3.h diff --git a/PyGLM/types/vec/uint16/vec4.h b/PyGLM_lib/PyGLM/types/vec/uint16/vec4.h similarity index 100% rename from PyGLM/types/vec/uint16/vec4.h rename to PyGLM_lib/PyGLM/types/vec/uint16/vec4.h diff --git a/PyGLM/types/vec/uint32/all.h b/PyGLM_lib/PyGLM/types/vec/uint32/all.h similarity index 100% rename from PyGLM/types/vec/uint32/all.h rename to PyGLM_lib/PyGLM/types/vec/uint32/all.h diff --git a/PyGLM/types/vec/uint32/vec1.h b/PyGLM_lib/PyGLM/types/vec/uint32/vec1.h similarity index 100% rename from PyGLM/types/vec/uint32/vec1.h rename to PyGLM_lib/PyGLM/types/vec/uint32/vec1.h diff --git a/PyGLM/types/vec/uint32/vec2.h b/PyGLM_lib/PyGLM/types/vec/uint32/vec2.h similarity index 100% rename from PyGLM/types/vec/uint32/vec2.h rename to PyGLM_lib/PyGLM/types/vec/uint32/vec2.h diff --git a/PyGLM/types/vec/uint32/vec3.h b/PyGLM_lib/PyGLM/types/vec/uint32/vec3.h similarity index 100% rename from PyGLM/types/vec/uint32/vec3.h rename to PyGLM_lib/PyGLM/types/vec/uint32/vec3.h diff --git a/PyGLM/types/vec/uint32/vec4.h b/PyGLM_lib/PyGLM/types/vec/uint32/vec4.h similarity index 100% rename from PyGLM/types/vec/uint32/vec4.h rename to PyGLM_lib/PyGLM/types/vec/uint32/vec4.h diff --git a/PyGLM/types/vec/uint64/all.h b/PyGLM_lib/PyGLM/types/vec/uint64/all.h similarity index 100% rename from PyGLM/types/vec/uint64/all.h rename to PyGLM_lib/PyGLM/types/vec/uint64/all.h diff --git a/PyGLM/types/vec/uint64/vec1.h b/PyGLM_lib/PyGLM/types/vec/uint64/vec1.h similarity index 100% rename from PyGLM/types/vec/uint64/vec1.h rename to PyGLM_lib/PyGLM/types/vec/uint64/vec1.h diff --git a/PyGLM/types/vec/uint64/vec2.h b/PyGLM_lib/PyGLM/types/vec/uint64/vec2.h similarity index 100% rename from PyGLM/types/vec/uint64/vec2.h rename to PyGLM_lib/PyGLM/types/vec/uint64/vec2.h diff --git a/PyGLM/types/vec/uint64/vec3.h b/PyGLM_lib/PyGLM/types/vec/uint64/vec3.h similarity index 100% rename from PyGLM/types/vec/uint64/vec3.h rename to PyGLM_lib/PyGLM/types/vec/uint64/vec3.h diff --git a/PyGLM/types/vec/uint64/vec4.h b/PyGLM_lib/PyGLM/types/vec/uint64/vec4.h similarity index 100% rename from PyGLM/types/vec/uint64/vec4.h rename to PyGLM_lib/PyGLM/types/vec/uint64/vec4.h diff --git a/PyGLM/types/vec/uint8/all.h b/PyGLM_lib/PyGLM/types/vec/uint8/all.h similarity index 100% rename from PyGLM/types/vec/uint8/all.h rename to PyGLM_lib/PyGLM/types/vec/uint8/all.h diff --git a/PyGLM/types/vec/uint8/vec1.h b/PyGLM_lib/PyGLM/types/vec/uint8/vec1.h similarity index 100% rename from PyGLM/types/vec/uint8/vec1.h rename to PyGLM_lib/PyGLM/types/vec/uint8/vec1.h diff --git a/PyGLM/types/vec/uint8/vec2.h b/PyGLM_lib/PyGLM/types/vec/uint8/vec2.h similarity index 100% rename from PyGLM/types/vec/uint8/vec2.h rename to PyGLM_lib/PyGLM/types/vec/uint8/vec2.h diff --git a/PyGLM/types/vec/uint8/vec3.h b/PyGLM_lib/PyGLM/types/vec/uint8/vec3.h similarity index 100% rename from PyGLM/types/vec/uint8/vec3.h rename to PyGLM_lib/PyGLM/types/vec/uint8/vec3.h diff --git a/PyGLM/types/vec/uint8/vec4.h b/PyGLM_lib/PyGLM/types/vec/uint8/vec4.h similarity index 100% rename from PyGLM/types/vec/uint8/vec4.h rename to PyGLM_lib/PyGLM/types/vec/uint8/vec4.h diff --git a/build_options.h b/PyGLM_lib/build_options.h similarity index 100% rename from build_options.h rename to PyGLM_lib/build_options.h diff --git a/PyGLM_lib/glm b/PyGLM_lib/glm new file mode 160000 index 00000000..fbc534be --- /dev/null +++ b/PyGLM_lib/glm @@ -0,0 +1 @@ +Subproject commit fbc534be62f8c785db989f8ae7526edf6d0dc306 diff --git a/license.h b/PyGLM_lib/license.h similarity index 100% rename from license.h rename to PyGLM_lib/license.h diff --git a/PyGLM_lib/version.h b/PyGLM_lib/version.h new file mode 100644 index 00000000..ec572a29 --- /dev/null +++ b/PyGLM_lib/version.h @@ -0,0 +1,4 @@ +#define _TO_STRING(x) #x +#define TO_STRING(x) _TO_STRING(x) + +#define PyGLM_VERSION TO_STRING(VERSION) \ No newline at end of file diff --git a/VERSION b/VERSION new file mode 100644 index 00000000..e2bdf6e4 --- /dev/null +++ b/VERSION @@ -0,0 +1 @@ +2.7.3 \ No newline at end of file diff --git a/glm b/glm deleted file mode 160000 index 58e0db58..00000000 --- a/glm +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 58e0db58cc860c0c6f7f6ee3a462e17a431646a4 diff --git a/glm/__init__.py b/glm/__init__.py new file mode 100644 index 00000000..4e7ae871 --- /dev/null +++ b/glm/__init__.py @@ -0,0 +1,6 @@ +from PyGLM.glm import * +from PyGLM import glm_typing, typing + +import warnings as __warnings + +__warnings.warn("Importing PyGLM via \"import glm\" is going to be deprecated in the future.\nUse \"from PyGLM import glm\" instead", PendingDeprecationWarning) \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 00000000..07de284a --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["setuptools", "wheel"] +build-backend = "setuptools.build_meta" \ No newline at end of file diff --git a/setup.cfg b/setup.cfg index 0af073f2..643e3049 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,5 +1,33 @@ -[bdist_wheel] -# This flag says that the code is written to work on both Python 2 and Python -# 3. If at all possible, it is good practice to do this. If you cannot, you -# will need to generate wheels for each Python version that you support. -#universal=0 \ No newline at end of file +[metadata] +name = PyGLM +version = file: VERSION +author = Zuzu_Typ +author_email = zuzu.typ@gmail.com +description = OpenGL Mathematics library for Python +long_description = file: README.md +long_description_content_type = text/markdown +keywords = GLM, OpenGL, matrix, vector, vec, mat, Mathematics, 3D, python, python3, 3, library, python-c-api, c-api, math-library, numpy, pyrr, pip, pypi, matrix-manipulation, matrix-multiplication, matrix-functions, quaternion, c, glsl +python_requires = >=3.7 +license = zlib/libpng license +classifiers = + Development Status :: 5 - Production/Stable + Intended Audience :: Developers + License :: OSI Approved :: zlib/libpng License + Programming Language :: Python :: 3 :: Only + Programming Language :: Python :: 3 + Programming Language :: Python :: 3.9 + Programming Language :: Python :: 3.10 + Programming Language :: Python :: 3.11 + Programming Language :: Python :: 3.12 + Programming Language :: Python :: 3.13 + Operating System :: Microsoft :: Windows + Operating System :: POSIX :: Linux + Operating System :: MacOS + Topic :: Multimedia :: Graphics + Topic :: Software Development :: Libraries + Topic :: Scientific/Engineering :: Physics + Typing :: Typed + +[options] +include_package_data = True +packages = find: diff --git a/setup.py b/setup.py index b348fee7..231ae5cd 100644 --- a/setup.py +++ b/setup.py @@ -1,130 +1,21 @@ -"""A setuptools based setup module. -See: -https://packaging.python.org/en/latest/distributing.html -https://github.com/pypa/sampleproject -""" +from setuptools import Extension, setup -import sys -if sys.version_info.major < 3 or sys.version_info.minor < 5: - raise Exception("PyGLM (0.5.0b1+) requires Python 3.5 or higher. Please install PyGLM==0.4.8b1") - -# Always prefer setuptools over distutils -from setuptools import setup, find_packages, Extension -# To use a consistent encoding from codecs import open -from os import path -import re - -module1 = Extension('glm', - sources = ['PyGLM.cpp'], include_dirs=["glm/"], extra_compile_args=['-std=c++11']) +from os import path here = path.abspath(path.dirname(__file__)) -with open(path.join(here, "version.h")) as f: - __version__ = re.search('"(.*?)"', f.read()).group().strip('"') - -# Get the long description from the README file -with open(path.join(here, 'README.md'), encoding='utf-8') as f: - long_description = f.read() - long_description = long_description.replace("\r", "") - +with open(path.join(here, "VERSION")) as file_: + VERSION = file_.read().strip() setup( - name='PyGLM', - - # Versions should comply with PEP440. For a discussion on single-sourcing - # the version across setup.py and the project code, see - # https://packaging.python.org/en/latest/single_source_version.html - version=__version__, - - description='OpenGL Mathematics library for Python', - long_description=long_description, - long_description_content_type='text/markdown', - - # The project's main homepage. - url='https://github.com/Zuzu-Typ/PyGLM', - - # Author details - author='Zuzu_Typ', - author_email="zuzu.typ@gmail.com", - - # Choose your license - license='zlib/libpng license', - -## install_requires=[], - - # See https://pypi.python.org/pypi?%3Aaction=list_classifiers - classifiers=[ - # How mature is this project? Common values are - # 3 - Alpha - # 4 - Beta - # 5 - Production/Stable - 'Development Status :: 5 - Production/Stable', - - # Indicate who your project is intended for - 'Intended Audience :: Developers', - 'Topic :: Multimedia :: Graphics', - - # Pick your license as you wish (should match "license" above) - 'License :: OSI Approved :: zlib/libpng License', - - # Specify the Python versions you support here. In particular, ensure - # that you indicate whether you support Python 2, Python 3 or both. - 'Programming Language :: Python :: 3 :: Only', - 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.9', - 'Programming Language :: Python :: 3.10', - 'Programming Language :: Python :: 3.11', - 'Programming Language :: Python :: 3.12', - 'Programming Language :: Python :: 3.13', - 'Operating System :: Microsoft :: Windows', - 'Operating System :: POSIX :: Linux', - "Operating System :: MacOS", - 'Topic :: Software Development :: Libraries', - 'Topic :: Scientific/Engineering :: Physics' - - ], - - # What does your project relate to? - keywords='GLM OpenGL matrix vector vec mat Mathematics 3D python python3 3 library python-c-api c-api math-library numpy pyrr pip pypi matrix-manipulation matrix-multiplication matrix-functions quaternion c glsl', - - # You can just specify the packages manually here if your project is - # simple. Or you can use find_packages(). - - platforms = ["Windows", "Linux", "MacOS"], - - package_data={'glm-stubs': ['__init__.pyi']}, - packages=['glm-stubs'], - - include_package_data=True, - - # Alternatively, if you want to distribute just a my_module.py, uncomment - # this: - #py_modules=["glm"], - - ext_modules = [module1], - - # List run-time dependencies here. These will be installed by pip when - # your project is installed. For an analysis of "install_requires" vs pip's - # requirements files see: - # https://packaging.python.org/en/latest/requirements.html - - # List additional groups of dependencies here (e.g. development - # dependencies). You can install these using the following syntax, - # for example: - # $ pip install -e .[dev,test] - - # If there are data files included in your packages that need to be - # installed, specify them here. If using Python 2.6 or less, then these - # have to be included in MANIFEST.in as well. - - # Although 'package_data' is the preferred approach, in some case you may - # need to place data files outside of your packages. See: - # http://docs.python.org/3.4/distutils/setupscript.html#installing-additional-files # noqa - # In this case, 'data_file' will be installed into '/my_data' - - # To provide executable scripts, use entry points in preference to the - # "scripts" keyword. Entry points provide cross-platform support and allow - # pip to create the appropriate form of executable for the target platform. + ext_modules=[ + Extension( + name="PyGLM.glm", + sources=["PyGLM_lib/PyGLM.cpp"], + include_dirs=["PyGLM_lib/glm/"], + extra_compile_args=['-std=c++11', f'-DVERSION={VERSION}'] + ), + ] ) diff --git a/version.h b/version.h deleted file mode 100644 index 5535e5e1..00000000 --- a/version.h +++ /dev/null @@ -1 +0,0 @@ -#define PyGLM_VERSION "2.7.3" From b4daa0c4f42d3231f488e3f00c11fcb0fe99421d Mon Sep 17 00:00:00 2001 From: Zuzu-Typ Date: Fri, 13 Jan 2023 11:43:05 +0100 Subject: [PATCH 2/5] Re-add MANIFEST --- MANIFEST.in | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 MANIFEST.in diff --git a/MANIFEST.in b/MANIFEST.in new file mode 100644 index 00000000..ba287189 --- /dev/null +++ b/MANIFEST.in @@ -0,0 +1,9 @@ +include LICENSE +include COPYING +include README.md +include setup.py +include setup.cfg +include VERSION +recursive-include PyGLM_lib * +recursive-exclude PyGLM_lib/glm/test * +recursive-exclude PyGLM_lib/glm/doc * From d2863bbf6fbaa07cd089dff91996adb7f1de4f35 Mon Sep 17 00:00:00 2001 From: Zuzu-Typ Date: Tue, 31 Oct 2023 12:02:03 +0100 Subject: [PATCH 3/5] Moved typing stubs to PyGLM-stubs --- MANIFEST.in | 2 + {glm-stubs => PyGLM-stubs}/LICENSE | 0 {glm-stubs => PyGLM-stubs}/__init__.py | 0 PyGLM-stubs/glm/__init__.py | 0 {glm-stubs => PyGLM-stubs/glm}/__init__.pyi | 2 +- glm-stubs/glm_typing.py | 530 -------------------- glm/py.typed | 0 7 files changed, 3 insertions(+), 531 deletions(-) rename {glm-stubs => PyGLM-stubs}/LICENSE (100%) rename {glm-stubs => PyGLM-stubs}/__init__.py (100%) create mode 100644 PyGLM-stubs/glm/__init__.py rename {glm-stubs => PyGLM-stubs/glm}/__init__.pyi (99%) delete mode 100644 glm-stubs/glm_typing.py create mode 100644 glm/py.typed diff --git a/MANIFEST.in b/MANIFEST.in index ba287189..87fdc7d6 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -4,6 +4,8 @@ include README.md include setup.py include setup.cfg include VERSION +include glm/py.typed +recursive-include PyGLM-stubs * recursive-include PyGLM_lib * recursive-exclude PyGLM_lib/glm/test * recursive-exclude PyGLM_lib/glm/doc * diff --git a/glm-stubs/LICENSE b/PyGLM-stubs/LICENSE similarity index 100% rename from glm-stubs/LICENSE rename to PyGLM-stubs/LICENSE diff --git a/glm-stubs/__init__.py b/PyGLM-stubs/__init__.py similarity index 100% rename from glm-stubs/__init__.py rename to PyGLM-stubs/__init__.py diff --git a/PyGLM-stubs/glm/__init__.py b/PyGLM-stubs/glm/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/glm-stubs/__init__.pyi b/PyGLM-stubs/glm/__init__.pyi similarity index 99% rename from glm-stubs/__init__.pyi rename to PyGLM-stubs/glm/__init__.pyi index 8befeea5..575429ed 100644 --- a/glm-stubs/__init__.pyi +++ b/PyGLM-stubs/glm/__init__.pyi @@ -7,7 +7,7 @@ from typing import (Any, Callable, Generator, Generic, Iterable, List, Literal, Optional, SupportsInt, Tuple, Type, TypeVar, Union, overload) -from . import glm_typing +from PyGLM import glm_typing _T = TypeVar('_T') _VT = TypeVar('_VT', bvec1, bvec2, bvec3, bvec4, dmvec2, dmvec3, dmvec4, dvec1, dvec2, dvec3, dvec4, i16vec1, i16vec2, i16vec3, i16vec4, i64vec1, i64vec2, i64vec3, i64vec4, i8vec1, i8vec2, i8vec3, i8vec4, imvec2, imvec3, imvec4, ivec1, ivec2, ivec3, ivec4, mvec2, mvec3, mvec4, u16vec1, u16vec2, u16vec3, u16vec4, u64vec1, u64vec2, u64vec3, u64vec4, u8vec1, u8vec2, u8vec3, u8vec4, umvec2, umvec3, umvec4, uvec1, uvec2, uvec3, uvec4, vec1, vec2, vec3, vec4) diff --git a/glm-stubs/glm_typing.py b/glm-stubs/glm_typing.py deleted file mode 100644 index ded75eef..00000000 --- a/glm-stubs/glm_typing.py +++ /dev/null @@ -1,530 +0,0 @@ - -# generated by tools/generate.py -# https://github.com/esoma/pyglm-typing/ - -from typing import SupportsFloat, SupportsInt, Tuple, Union - -import glm - -Number = Union[SupportsFloat, SupportsInt] -B8Vector1 = Union[glm.bvec1, Tuple[Number]] -B8Vec1 = glm.bvec1 -B8Vector2 = Union[glm.bvec2, Tuple[Number, Number]] -B8Vec2 = glm.bvec2 -B8Vector3 = Union[glm.bvec3, Tuple[Number, Number, Number]] -B8Vec3 = glm.bvec3 -B8Vector4 = Union[glm.bvec4, Tuple[Number, Number, Number, Number]] -B8Vec4 = glm.bvec4 -B8VectorAny = Union[glm.bvec1, glm.bvec2, glm.bvec3, glm.bvec4, Tuple[Number], Tuple[Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number, Number]] -B8VecAny = Union[glm.bvec1, glm.bvec2, glm.bvec3, glm.bvec4] -BAnyVector1 = Union[glm.bvec1, Tuple[Number]] -BAnyVec1 = glm.bvec1 -BAnyVector2 = Union[glm.bvec2, Tuple[Number, Number]] -BAnyVec2 = glm.bvec2 -BAnyVector3 = Union[glm.bvec3, Tuple[Number, Number, Number]] -BAnyVec3 = glm.bvec3 -BAnyVector4 = Union[glm.bvec4, Tuple[Number, Number, Number, Number]] -BAnyVec4 = glm.bvec4 -BAnyVectorAny = Union[glm.bvec1, glm.bvec2, glm.bvec3, glm.bvec4, Tuple[Number], Tuple[Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number, Number]] -BAnyVecAny = Union[glm.bvec1, glm.bvec2, glm.bvec3, glm.bvec4] -D64Vector1 = Union[glm.dvec1, Tuple[Number]] -D64Vec1 = glm.dvec1 -D64Vector2 = Union[glm.dmvec2, glm.dvec2, Tuple[Number, Number]] -D64Vec2 = Union[glm.dmvec2, glm.dvec2] -D64Vector3 = Union[glm.dmvec3, glm.dvec3, Tuple[Number, Number, Number]] -D64Vec3 = Union[glm.dmvec3, glm.dvec3] -D64Vector4 = Union[glm.dmvec4, glm.dvec4, Tuple[Number, Number, Number, Number]] -D64Vec4 = Union[glm.dmvec4, glm.dvec4] -D64VectorAny = Union[glm.dmvec2, glm.dmvec3, glm.dmvec4, glm.dvec1, glm.dvec2, glm.dvec3, glm.dvec4, Tuple[Number], Tuple[Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number, Number]] -D64VecAny = Union[glm.dmvec2, glm.dmvec3, glm.dmvec4, glm.dvec1, glm.dvec2, glm.dvec3, glm.dvec4] -DAnyVector1 = Union[glm.dvec1, Tuple[Number]] -DAnyVec1 = glm.dvec1 -DAnyVector2 = Union[glm.dmvec2, glm.dvec2, Tuple[Number, Number]] -DAnyVec2 = Union[glm.dmvec2, glm.dvec2] -DAnyVector3 = Union[glm.dmvec3, glm.dvec3, Tuple[Number, Number, Number]] -DAnyVec3 = Union[glm.dmvec3, glm.dvec3] -DAnyVector4 = Union[glm.dmvec4, glm.dvec4, Tuple[Number, Number, Number, Number]] -DAnyVec4 = Union[glm.dmvec4, glm.dvec4] -DAnyVectorAny = Union[glm.dmvec2, glm.dmvec3, glm.dmvec4, glm.dvec1, glm.dvec2, glm.dvec3, glm.dvec4, Tuple[Number], Tuple[Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number, Number]] -DAnyVecAny = Union[glm.dmvec2, glm.dmvec3, glm.dmvec4, glm.dvec1, glm.dvec2, glm.dvec3, glm.dvec4] -F32Vector1 = Union[glm.vec1, Tuple[Number]] -F32Vec1 = glm.vec1 -F32Vector2 = Union[glm.mvec2, glm.vec2, Tuple[Number, Number]] -F32Vec2 = Union[glm.mvec2, glm.vec2] -F32Vector3 = Union[glm.mvec3, glm.vec3, Tuple[Number, Number, Number]] -F32Vec3 = Union[glm.mvec3, glm.vec3] -F32Vector4 = Union[glm.mvec4, glm.vec4, Tuple[Number, Number, Number, Number]] -F32Vec4 = Union[glm.mvec4, glm.vec4] -F32VectorAny = Union[glm.mvec2, glm.mvec3, glm.mvec4, glm.vec1, glm.vec2, glm.vec3, glm.vec4, Tuple[Number], Tuple[Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number, Number]] -F32VecAny = Union[glm.mvec2, glm.mvec3, glm.mvec4, glm.vec1, glm.vec2, glm.vec3, glm.vec4] -FAnyVector1 = Union[glm.vec1, Tuple[Number]] -FAnyVec1 = glm.vec1 -FAnyVector2 = Union[glm.mvec2, glm.vec2, Tuple[Number, Number]] -FAnyVec2 = Union[glm.mvec2, glm.vec2] -FAnyVector3 = Union[glm.mvec3, glm.vec3, Tuple[Number, Number, Number]] -FAnyVec3 = Union[glm.mvec3, glm.vec3] -FAnyVector4 = Union[glm.mvec4, glm.vec4, Tuple[Number, Number, Number, Number]] -FAnyVec4 = Union[glm.mvec4, glm.vec4] -FAnyVectorAny = Union[glm.mvec2, glm.mvec3, glm.mvec4, glm.vec1, glm.vec2, glm.vec3, glm.vec4, Tuple[Number], Tuple[Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number, Number]] -FAnyVecAny = Union[glm.mvec2, glm.mvec3, glm.mvec4, glm.vec1, glm.vec2, glm.vec3, glm.vec4] -I8Vector1 = Union[glm.i8vec1, Tuple[Number]] -I8Vec1 = glm.i8vec1 -I8Vector2 = Union[glm.i8vec2, Tuple[Number, Number]] -I8Vec2 = glm.i8vec2 -I8Vector3 = Union[glm.i8vec3, Tuple[Number, Number, Number]] -I8Vec3 = glm.i8vec3 -I8Vector4 = Union[glm.i8vec4, Tuple[Number, Number, Number, Number]] -I8Vec4 = glm.i8vec4 -I8VectorAny = Union[glm.i8vec1, glm.i8vec2, glm.i8vec3, glm.i8vec4, Tuple[Number], Tuple[Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number, Number]] -I8VecAny = Union[glm.i8vec1, glm.i8vec2, glm.i8vec3, glm.i8vec4] -I16Vector1 = Union[glm.i16vec1, Tuple[Number]] -I16Vec1 = glm.i16vec1 -I16Vector2 = Union[glm.i16vec2, Tuple[Number, Number]] -I16Vec2 = glm.i16vec2 -I16Vector3 = Union[glm.i16vec3, Tuple[Number, Number, Number]] -I16Vec3 = glm.i16vec3 -I16Vector4 = Union[glm.i16vec4, Tuple[Number, Number, Number, Number]] -I16Vec4 = glm.i16vec4 -I16VectorAny = Union[glm.i16vec1, glm.i16vec2, glm.i16vec3, glm.i16vec4, Tuple[Number], Tuple[Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number, Number]] -I16VecAny = Union[glm.i16vec1, glm.i16vec2, glm.i16vec3, glm.i16vec4] -I32Vector1 = Union[glm.ivec1, Tuple[Number]] -I32Vec1 = glm.ivec1 -I32Vector2 = Union[glm.imvec2, glm.ivec2, Tuple[Number, Number]] -I32Vec2 = Union[glm.imvec2, glm.ivec2] -I32Vector3 = Union[glm.imvec3, glm.ivec3, Tuple[Number, Number, Number]] -I32Vec3 = Union[glm.imvec3, glm.ivec3] -I32Vector4 = Union[glm.imvec4, glm.ivec4, Tuple[Number, Number, Number, Number]] -I32Vec4 = Union[glm.imvec4, glm.ivec4] -I32VectorAny = Union[glm.imvec2, glm.imvec3, glm.imvec4, glm.ivec1, glm.ivec2, glm.ivec3, glm.ivec4, Tuple[Number], Tuple[Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number, Number]] -I32VecAny = Union[glm.imvec2, glm.imvec3, glm.imvec4, glm.ivec1, glm.ivec2, glm.ivec3, glm.ivec4] -I64Vector1 = Union[glm.i64vec1, Tuple[Number]] -I64Vec1 = glm.i64vec1 -I64Vector2 = Union[glm.i64vec2, Tuple[Number, Number]] -I64Vec2 = glm.i64vec2 -I64Vector3 = Union[glm.i64vec3, Tuple[Number, Number, Number]] -I64Vec3 = glm.i64vec3 -I64Vector4 = Union[glm.i64vec4, Tuple[Number, Number, Number, Number]] -I64Vec4 = glm.i64vec4 -I64VectorAny = Union[glm.i64vec1, glm.i64vec2, glm.i64vec3, glm.i64vec4, Tuple[Number], Tuple[Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number, Number]] -I64VecAny = Union[glm.i64vec1, glm.i64vec2, glm.i64vec3, glm.i64vec4] -IAnyVector1 = Union[glm.i16vec1, glm.i64vec1, glm.i8vec1, glm.ivec1, Tuple[Number]] -IAnyVec1 = Union[glm.i16vec1, glm.i64vec1, glm.i8vec1, glm.ivec1] -IAnyVector2 = Union[glm.i16vec2, glm.i64vec2, glm.i8vec2, glm.imvec2, glm.ivec2, Tuple[Number, Number]] -IAnyVec2 = Union[glm.i16vec2, glm.i64vec2, glm.i8vec2, glm.imvec2, glm.ivec2] -IAnyVector3 = Union[glm.i16vec3, glm.i64vec3, glm.i8vec3, glm.imvec3, glm.ivec3, Tuple[Number, Number, Number]] -IAnyVec3 = Union[glm.i16vec3, glm.i64vec3, glm.i8vec3, glm.imvec3, glm.ivec3] -IAnyVector4 = Union[glm.i16vec4, glm.i64vec4, glm.i8vec4, glm.imvec4, glm.ivec4, Tuple[Number, Number, Number, Number]] -IAnyVec4 = Union[glm.i16vec4, glm.i64vec4, glm.i8vec4, glm.imvec4, glm.ivec4] -IAnyVectorAny = Union[glm.i16vec1, glm.i16vec2, glm.i16vec3, glm.i16vec4, glm.i64vec1, glm.i64vec2, glm.i64vec3, glm.i64vec4, glm.i8vec1, glm.i8vec2, glm.i8vec3, glm.i8vec4, glm.imvec2, glm.imvec3, glm.imvec4, glm.ivec1, glm.ivec2, glm.ivec3, glm.ivec4, Tuple[Number], Tuple[Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number, Number]] -IAnyVecAny = Union[glm.i16vec1, glm.i16vec2, glm.i16vec3, glm.i16vec4, glm.i64vec1, glm.i64vec2, glm.i64vec3, glm.i64vec4, glm.i8vec1, glm.i8vec2, glm.i8vec3, glm.i8vec4, glm.imvec2, glm.imvec3, glm.imvec4, glm.ivec1, glm.ivec2, glm.ivec3, glm.ivec4] -U8Vector1 = Union[glm.u8vec1, Tuple[Number]] -U8Vec1 = glm.u8vec1 -U8Vector2 = Union[glm.u8vec2, Tuple[Number, Number]] -U8Vec2 = glm.u8vec2 -U8Vector3 = Union[glm.u8vec3, Tuple[Number, Number, Number]] -U8Vec3 = glm.u8vec3 -U8Vector4 = Union[glm.u8vec4, Tuple[Number, Number, Number, Number]] -U8Vec4 = glm.u8vec4 -U8VectorAny = Union[glm.u8vec1, glm.u8vec2, glm.u8vec3, glm.u8vec4, Tuple[Number], Tuple[Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number, Number]] -U8VecAny = Union[glm.u8vec1, glm.u8vec2, glm.u8vec3, glm.u8vec4] -U16Vector1 = Union[glm.u16vec1, Tuple[Number]] -U16Vec1 = glm.u16vec1 -U16Vector2 = Union[glm.u16vec2, Tuple[Number, Number]] -U16Vec2 = glm.u16vec2 -U16Vector3 = Union[glm.u16vec3, Tuple[Number, Number, Number]] -U16Vec3 = glm.u16vec3 -U16Vector4 = Union[glm.u16vec4, Tuple[Number, Number, Number, Number]] -U16Vec4 = glm.u16vec4 -U16VectorAny = Union[glm.u16vec1, glm.u16vec2, glm.u16vec3, glm.u16vec4, Tuple[Number], Tuple[Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number, Number]] -U16VecAny = Union[glm.u16vec1, glm.u16vec2, glm.u16vec3, glm.u16vec4] -U32Vector1 = Union[glm.uvec1, Tuple[Number]] -U32Vec1 = glm.uvec1 -U32Vector2 = Union[glm.umvec2, glm.uvec2, Tuple[Number, Number]] -U32Vec2 = Union[glm.umvec2, glm.uvec2] -U32Vector3 = Union[glm.umvec3, glm.uvec3, Tuple[Number, Number, Number]] -U32Vec3 = Union[glm.umvec3, glm.uvec3] -U32Vector4 = Union[glm.umvec4, glm.uvec4, Tuple[Number, Number, Number, Number]] -U32Vec4 = Union[glm.umvec4, glm.uvec4] -U32VectorAny = Union[glm.umvec2, glm.umvec3, glm.umvec4, glm.uvec1, glm.uvec2, glm.uvec3, glm.uvec4, Tuple[Number], Tuple[Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number, Number]] -U32VecAny = Union[glm.umvec2, glm.umvec3, glm.umvec4, glm.uvec1, glm.uvec2, glm.uvec3, glm.uvec4] -U64Vector1 = Union[glm.u64vec1, Tuple[Number]] -U64Vec1 = glm.u64vec1 -U64Vector2 = Union[glm.u64vec2, Tuple[Number, Number]] -U64Vec2 = glm.u64vec2 -U64Vector3 = Union[glm.u64vec3, Tuple[Number, Number, Number]] -U64Vec3 = glm.u64vec3 -U64Vector4 = Union[glm.u64vec4, Tuple[Number, Number, Number, Number]] -U64Vec4 = glm.u64vec4 -U64VectorAny = Union[glm.u64vec1, glm.u64vec2, glm.u64vec3, glm.u64vec4, Tuple[Number], Tuple[Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number, Number]] -U64VecAny = Union[glm.u64vec1, glm.u64vec2, glm.u64vec3, glm.u64vec4] -UAnyVector1 = Union[glm.u16vec1, glm.u64vec1, glm.u8vec1, glm.uvec1, Tuple[Number]] -UAnyVec1 = Union[glm.u16vec1, glm.u64vec1, glm.u8vec1, glm.uvec1] -UAnyVector2 = Union[glm.u16vec2, glm.u64vec2, glm.u8vec2, glm.umvec2, glm.uvec2, Tuple[Number, Number]] -UAnyVec2 = Union[glm.u16vec2, glm.u64vec2, glm.u8vec2, glm.umvec2, glm.uvec2] -UAnyVector3 = Union[glm.u16vec3, glm.u64vec3, glm.u8vec3, glm.umvec3, glm.uvec3, Tuple[Number, Number, Number]] -UAnyVec3 = Union[glm.u16vec3, glm.u64vec3, glm.u8vec3, glm.umvec3, glm.uvec3] -UAnyVector4 = Union[glm.u16vec4, glm.u64vec4, glm.u8vec4, glm.umvec4, glm.uvec4, Tuple[Number, Number, Number, Number]] -UAnyVec4 = Union[glm.u16vec4, glm.u64vec4, glm.u8vec4, glm.umvec4, glm.uvec4] -UAnyVectorAny = Union[glm.u16vec1, glm.u16vec2, glm.u16vec3, glm.u16vec4, glm.u64vec1, glm.u64vec2, glm.u64vec3, glm.u64vec4, glm.u8vec1, glm.u8vec2, glm.u8vec3, glm.u8vec4, glm.umvec2, glm.umvec3, glm.umvec4, glm.uvec1, glm.uvec2, glm.uvec3, glm.uvec4, Tuple[Number], Tuple[Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number, Number]] -UAnyVecAny = Union[glm.u16vec1, glm.u16vec2, glm.u16vec3, glm.u16vec4, glm.u64vec1, glm.u64vec2, glm.u64vec3, glm.u64vec4, glm.u8vec1, glm.u8vec2, glm.u8vec3, glm.u8vec4, glm.umvec2, glm.umvec3, glm.umvec4, glm.uvec1, glm.uvec2, glm.uvec3, glm.uvec4] -Any8Vector1 = Union[glm.bvec1, glm.i8vec1, glm.u8vec1, Tuple[Number]] -Any8Vec1 = Union[glm.bvec1, glm.i8vec1, glm.u8vec1] -Any8Vector2 = Union[glm.bvec2, glm.i8vec2, glm.u8vec2, Tuple[Number, Number]] -Any8Vec2 = Union[glm.bvec2, glm.i8vec2, glm.u8vec2] -Any8Vector3 = Union[glm.bvec3, glm.i8vec3, glm.u8vec3, Tuple[Number, Number, Number]] -Any8Vec3 = Union[glm.bvec3, glm.i8vec3, glm.u8vec3] -Any8Vector4 = Union[glm.bvec4, glm.i8vec4, glm.u8vec4, Tuple[Number, Number, Number, Number]] -Any8Vec4 = Union[glm.bvec4, glm.i8vec4, glm.u8vec4] -Any8VectorAny = Union[glm.bvec1, glm.bvec2, glm.bvec3, glm.bvec4, glm.i8vec1, glm.i8vec2, glm.i8vec3, glm.i8vec4, glm.u8vec1, glm.u8vec2, glm.u8vec3, glm.u8vec4, Tuple[Number], Tuple[Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number, Number]] -Any8VecAny = Union[glm.bvec1, glm.bvec2, glm.bvec3, glm.bvec4, glm.i8vec1, glm.i8vec2, glm.i8vec3, glm.i8vec4, glm.u8vec1, glm.u8vec2, glm.u8vec3, glm.u8vec4] -Any16Vector1 = Union[glm.i16vec1, glm.u16vec1, Tuple[Number]] -Any16Vec1 = Union[glm.i16vec1, glm.u16vec1] -Any16Vector2 = Union[glm.i16vec2, glm.u16vec2, Tuple[Number, Number]] -Any16Vec2 = Union[glm.i16vec2, glm.u16vec2] -Any16Vector3 = Union[glm.i16vec3, glm.u16vec3, Tuple[Number, Number, Number]] -Any16Vec3 = Union[glm.i16vec3, glm.u16vec3] -Any16Vector4 = Union[glm.i16vec4, glm.u16vec4, Tuple[Number, Number, Number, Number]] -Any16Vec4 = Union[glm.i16vec4, glm.u16vec4] -Any16VectorAny = Union[glm.i16vec1, glm.i16vec2, glm.i16vec3, glm.i16vec4, glm.u16vec1, glm.u16vec2, glm.u16vec3, glm.u16vec4, Tuple[Number], Tuple[Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number, Number]] -Any16VecAny = Union[glm.i16vec1, glm.i16vec2, glm.i16vec3, glm.i16vec4, glm.u16vec1, glm.u16vec2, glm.u16vec3, glm.u16vec4] -Any32Vector1 = Union[glm.ivec1, glm.uvec1, glm.vec1, Tuple[Number]] -Any32Vec1 = Union[glm.ivec1, glm.uvec1, glm.vec1] -Any32Vector2 = Union[glm.imvec2, glm.ivec2, glm.mvec2, glm.umvec2, glm.uvec2, glm.vec2, Tuple[Number, Number]] -Any32Vec2 = Union[glm.imvec2, glm.ivec2, glm.mvec2, glm.umvec2, glm.uvec2, glm.vec2] -Any32Vector3 = Union[glm.imvec3, glm.ivec3, glm.mvec3, glm.umvec3, glm.uvec3, glm.vec3, Tuple[Number, Number, Number]] -Any32Vec3 = Union[glm.imvec3, glm.ivec3, glm.mvec3, glm.umvec3, glm.uvec3, glm.vec3] -Any32Vector4 = Union[glm.imvec4, glm.ivec4, glm.mvec4, glm.umvec4, glm.uvec4, glm.vec4, Tuple[Number, Number, Number, Number]] -Any32Vec4 = Union[glm.imvec4, glm.ivec4, glm.mvec4, glm.umvec4, glm.uvec4, glm.vec4] -Any32VectorAny = Union[glm.imvec2, glm.imvec3, glm.imvec4, glm.ivec1, glm.ivec2, glm.ivec3, glm.ivec4, glm.mvec2, glm.mvec3, glm.mvec4, glm.umvec2, glm.umvec3, glm.umvec4, glm.uvec1, glm.uvec2, glm.uvec3, glm.uvec4, glm.vec1, glm.vec2, glm.vec3, glm.vec4, Tuple[Number], Tuple[Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number, Number]] -Any32VecAny = Union[glm.imvec2, glm.imvec3, glm.imvec4, glm.ivec1, glm.ivec2, glm.ivec3, glm.ivec4, glm.mvec2, glm.mvec3, glm.mvec4, glm.umvec2, glm.umvec3, glm.umvec4, glm.uvec1, glm.uvec2, glm.uvec3, glm.uvec4, glm.vec1, glm.vec2, glm.vec3, glm.vec4] -Any64Vector1 = Union[glm.dvec1, glm.i64vec1, glm.u64vec1, Tuple[Number]] -Any64Vec1 = Union[glm.dvec1, glm.i64vec1, glm.u64vec1] -Any64Vector2 = Union[glm.dmvec2, glm.dvec2, glm.i64vec2, glm.u64vec2, Tuple[Number, Number]] -Any64Vec2 = Union[glm.dmvec2, glm.dvec2, glm.i64vec2, glm.u64vec2] -Any64Vector3 = Union[glm.dmvec3, glm.dvec3, glm.i64vec3, glm.u64vec3, Tuple[Number, Number, Number]] -Any64Vec3 = Union[glm.dmvec3, glm.dvec3, glm.i64vec3, glm.u64vec3] -Any64Vector4 = Union[glm.dmvec4, glm.dvec4, glm.i64vec4, glm.u64vec4, Tuple[Number, Number, Number, Number]] -Any64Vec4 = Union[glm.dmvec4, glm.dvec4, glm.i64vec4, glm.u64vec4] -Any64VectorAny = Union[glm.dmvec2, glm.dmvec3, glm.dmvec4, glm.dvec1, glm.dvec2, glm.dvec3, glm.dvec4, glm.i64vec1, glm.i64vec2, glm.i64vec3, glm.i64vec4, glm.u64vec1, glm.u64vec2, glm.u64vec3, glm.u64vec4, Tuple[Number], Tuple[Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number, Number]] -Any64VecAny = Union[glm.dmvec2, glm.dmvec3, glm.dmvec4, glm.dvec1, glm.dvec2, glm.dvec3, glm.dvec4, glm.i64vec1, glm.i64vec2, glm.i64vec3, glm.i64vec4, glm.u64vec1, glm.u64vec2, glm.u64vec3, glm.u64vec4] -AnyAnyVector1 = Union[glm.bvec1, glm.dvec1, glm.i16vec1, glm.i64vec1, glm.i8vec1, glm.ivec1, glm.u16vec1, glm.u64vec1, glm.u8vec1, glm.uvec1, glm.vec1, Tuple[Number]] -AnyAnyVec1 = Union[glm.bvec1, glm.dvec1, glm.i16vec1, glm.i64vec1, glm.i8vec1, glm.ivec1, glm.u16vec1, glm.u64vec1, glm.u8vec1, glm.uvec1, glm.vec1] -AnyAnyVector2 = Union[glm.bvec2, glm.dmvec2, glm.dvec2, glm.i16vec2, glm.i64vec2, glm.i8vec2, glm.imvec2, glm.ivec2, glm.mvec2, glm.u16vec2, glm.u64vec2, glm.u8vec2, glm.umvec2, glm.uvec2, glm.vec2, Tuple[Number, Number]] -AnyAnyVec2 = Union[glm.bvec2, glm.dmvec2, glm.dvec2, glm.i16vec2, glm.i64vec2, glm.i8vec2, glm.imvec2, glm.ivec2, glm.mvec2, glm.u16vec2, glm.u64vec2, glm.u8vec2, glm.umvec2, glm.uvec2, glm.vec2] -AnyAnyVector3 = Union[glm.bvec3, glm.dmvec3, glm.dvec3, glm.i16vec3, glm.i64vec3, glm.i8vec3, glm.imvec3, glm.ivec3, glm.mvec3, glm.u16vec3, glm.u64vec3, glm.u8vec3, glm.umvec3, glm.uvec3, glm.vec3, Tuple[Number, Number, Number]] -AnyAnyVec3 = Union[glm.bvec3, glm.dmvec3, glm.dvec3, glm.i16vec3, glm.i64vec3, glm.i8vec3, glm.imvec3, glm.ivec3, glm.mvec3, glm.u16vec3, glm.u64vec3, glm.u8vec3, glm.umvec3, glm.uvec3, glm.vec3] -AnyAnyVector4 = Union[glm.bvec4, glm.dmvec4, glm.dvec4, glm.i16vec4, glm.i64vec4, glm.i8vec4, glm.imvec4, glm.ivec4, glm.mvec4, glm.u16vec4, glm.u64vec4, glm.u8vec4, glm.umvec4, glm.uvec4, glm.vec4, Tuple[Number, Number, Number, Number]] -AnyAnyVec4 = Union[glm.bvec4, glm.dmvec4, glm.dvec4, glm.i16vec4, glm.i64vec4, glm.i8vec4, glm.imvec4, glm.ivec4, glm.mvec4, glm.u16vec4, glm.u64vec4, glm.u8vec4, glm.umvec4, glm.uvec4, glm.vec4] -AnyAnyVectorAny = Union[glm.bvec1, glm.bvec2, glm.bvec3, glm.bvec4, glm.dmvec2, glm.dmvec3, glm.dmvec4, glm.dvec1, glm.dvec2, glm.dvec3, glm.dvec4, glm.i16vec1, glm.i16vec2, glm.i16vec3, glm.i16vec4, glm.i64vec1, glm.i64vec2, glm.i64vec3, glm.i64vec4, glm.i8vec1, glm.i8vec2, glm.i8vec3, glm.i8vec4, glm.imvec2, glm.imvec3, glm.imvec4, glm.ivec1, glm.ivec2, glm.ivec3, glm.ivec4, glm.mvec2, glm.mvec3, glm.mvec4, glm.u16vec1, glm.u16vec2, glm.u16vec3, glm.u16vec4, glm.u64vec1, glm.u64vec2, glm.u64vec3, glm.u64vec4, glm.u8vec1, glm.u8vec2, glm.u8vec3, glm.u8vec4, glm.umvec2, glm.umvec3, glm.umvec4, glm.uvec1, glm.uvec2, glm.uvec3, glm.uvec4, glm.vec1, glm.vec2, glm.vec3, glm.vec4, Tuple[Number], Tuple[Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number, Number]] -AnyAnyVecAny = Union[glm.bvec1, glm.bvec2, glm.bvec3, glm.bvec4, glm.dmvec2, glm.dmvec3, glm.dmvec4, glm.dvec1, glm.dvec2, glm.dvec3, glm.dvec4, glm.i16vec1, glm.i16vec2, glm.i16vec3, glm.i16vec4, glm.i64vec1, glm.i64vec2, glm.i64vec3, glm.i64vec4, glm.i8vec1, glm.i8vec2, glm.i8vec3, glm.i8vec4, glm.imvec2, glm.imvec3, glm.imvec4, glm.ivec1, glm.ivec2, glm.ivec3, glm.ivec4, glm.mvec2, glm.mvec3, glm.mvec4, glm.u16vec1, glm.u16vec2, glm.u16vec3, glm.u16vec4, glm.u64vec1, glm.u64vec2, glm.u64vec3, glm.u64vec4, glm.u8vec1, glm.u8vec2, glm.u8vec3, glm.u8vec4, glm.umvec2, glm.umvec3, glm.umvec4, glm.uvec1, glm.uvec2, glm.uvec3, glm.uvec4, glm.vec1, glm.vec2, glm.vec3, glm.vec4] -FDAnyVectorAny = Union[FAnyVectorAny, DAnyVectorAny] -FDAnyVector1 = Union[FAnyVector1, DAnyVector1] -FDAnyVector2 = Union[FAnyVector2, DAnyVector2] -FDAnyVector3 = Union[FAnyVector3, DAnyVector3] -FDAnyVector4 = Union[FAnyVector4, DAnyVector4] -IUAnyVector1 = Union[IAnyVector1, UAnyVector1] -IUAnyVector2 = Union[IAnyVector2, UAnyVector2] -IUAnyVector3 = Union[IAnyVector3, UAnyVector3] -IUAnyVector4 = Union[IAnyVector4, UAnyVector4] -D64Matrix2x2 = Union[glm.dmat2x2, Tuple[Tuple[Number, Number], Tuple[Number, Number]]] -D64Mat2x2 = glm.dmat2x2 -D64Matrix2x3 = Union[glm.dmat2x3, Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number]]] -D64Mat2x3 = glm.dmat2x3 -D64Matrix2x4 = Union[glm.dmat2x4, Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] -D64Mat2x4 = glm.dmat2x4 -D64Matrix2xAny = Union[glm.dmat2x2, glm.dmat2x3, glm.dmat2x4, Tuple[Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] -D64Mat2xAny = Union[glm.dmat2x2, glm.dmat2x3, glm.dmat2x4] -D64Matrix3x2 = Union[glm.dmat3x2, Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]]] -D64Mat3x2 = glm.dmat3x2 -D64Matrix3x3 = Union[glm.dmat3x3, Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]]] -D64Mat3x3 = glm.dmat3x3 -D64Matrix3x4 = Union[glm.dmat3x4, Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] -D64Mat3x4 = glm.dmat3x4 -D64Matrix3xAny = Union[glm.dmat3x2, glm.dmat3x3, glm.dmat3x4, Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] -D64Mat3xAny = Union[glm.dmat3x2, glm.dmat3x3, glm.dmat3x4] -D64Matrix4x2 = Union[glm.dmat4x2, Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]]] -D64Mat4x2 = glm.dmat4x2 -D64Matrix4x3 = Union[glm.dmat4x3, Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]]] -D64Mat4x3 = glm.dmat4x3 -D64Matrix4x4 = Union[glm.dmat4x4, Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] -D64Mat4x4 = glm.dmat4x4 -D64Matrix4xAny = Union[glm.dmat4x2, glm.dmat4x3, glm.dmat4x4, Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] -D64Mat4xAny = Union[glm.dmat4x2, glm.dmat4x3, glm.dmat4x4] -D64MatrixAnyx2 = Union[glm.dmat2x2, glm.dmat3x2, glm.dmat4x2, Tuple[Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]]] -D64MatAnyx2 = Union[glm.dmat2x2, glm.dmat3x2, glm.dmat4x2] -D64MatrixAnyx3 = Union[glm.dmat2x3, glm.dmat3x3, glm.dmat4x3, Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]]] -D64MatAnyx3 = Union[glm.dmat2x3, glm.dmat3x3, glm.dmat4x3] -D64MatrixAnyx4 = Union[glm.dmat2x4, glm.dmat3x4, glm.dmat4x4, Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] -D64MatAnyx4 = Union[glm.dmat2x4, glm.dmat3x4, glm.dmat4x4] -D64MatrixAnyxAny = Union[glm.dmat2x2, glm.dmat2x3, glm.dmat2x4, glm.dmat3x2, glm.dmat3x3, glm.dmat3x4, glm.dmat4x2, glm.dmat4x3, glm.dmat4x4, Tuple[Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]], Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]], Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] -D64MatAnyxAny = Union[glm.dmat2x2, glm.dmat2x3, glm.dmat2x4, glm.dmat3x2, glm.dmat3x3, glm.dmat3x4, glm.dmat4x2, glm.dmat4x3, glm.dmat4x4] -DAnyMatrix2x2 = Union[glm.dmat2x2, Tuple[Tuple[Number, Number], Tuple[Number, Number]]] -DAnyMat2x2 = glm.dmat2x2 -DAnyMatrix2x3 = Union[glm.dmat2x3, Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number]]] -DAnyMat2x3 = glm.dmat2x3 -DAnyMatrix2x4 = Union[glm.dmat2x4, Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] -DAnyMat2x4 = glm.dmat2x4 -DAnyMatrix2xAny = Union[glm.dmat2x2, glm.dmat2x3, glm.dmat2x4, Tuple[Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] -DAnyMat2xAny = Union[glm.dmat2x2, glm.dmat2x3, glm.dmat2x4] -DAnyMatrix3x2 = Union[glm.dmat3x2, Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]]] -DAnyMat3x2 = glm.dmat3x2 -DAnyMatrix3x3 = Union[glm.dmat3x3, Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]]] -DAnyMat3x3 = glm.dmat3x3 -DAnyMatrix3x4 = Union[glm.dmat3x4, Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] -DAnyMat3x4 = glm.dmat3x4 -DAnyMatrix3xAny = Union[glm.dmat3x2, glm.dmat3x3, glm.dmat3x4, Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] -DAnyMat3xAny = Union[glm.dmat3x2, glm.dmat3x3, glm.dmat3x4] -DAnyMatrix4x2 = Union[glm.dmat4x2, Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]]] -DAnyMat4x2 = glm.dmat4x2 -DAnyMatrix4x3 = Union[glm.dmat4x3, Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]]] -DAnyMat4x3 = glm.dmat4x3 -DAnyMatrix4x4 = Union[glm.dmat4x4, Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] -DAnyMat4x4 = glm.dmat4x4 -DAnyMatrix4xAny = Union[glm.dmat4x2, glm.dmat4x3, glm.dmat4x4, Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] -DAnyMat4xAny = Union[glm.dmat4x2, glm.dmat4x3, glm.dmat4x4] -DAnyMatrixAnyx2 = Union[glm.dmat2x2, glm.dmat3x2, glm.dmat4x2, Tuple[Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]]] -DAnyMatAnyx2 = Union[glm.dmat2x2, glm.dmat3x2, glm.dmat4x2] -DAnyMatrixAnyx3 = Union[glm.dmat2x3, glm.dmat3x3, glm.dmat4x3, Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]]] -DAnyMatAnyx3 = Union[glm.dmat2x3, glm.dmat3x3, glm.dmat4x3] -DAnyMatrixAnyx4 = Union[glm.dmat2x4, glm.dmat3x4, glm.dmat4x4, Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] -DAnyMatAnyx4 = Union[glm.dmat2x4, glm.dmat3x4, glm.dmat4x4] -DAnyMatrixAnyxAny = Union[glm.dmat2x2, glm.dmat2x3, glm.dmat2x4, glm.dmat3x2, glm.dmat3x3, glm.dmat3x4, glm.dmat4x2, glm.dmat4x3, glm.dmat4x4, Tuple[Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]], Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]], Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] -DAnyMatAnyxAny = Union[glm.dmat2x2, glm.dmat2x3, glm.dmat2x4, glm.dmat3x2, glm.dmat3x3, glm.dmat3x4, glm.dmat4x2, glm.dmat4x3, glm.dmat4x4] -F32Matrix2x2 = Union[glm.mat2x2, Tuple[Tuple[Number, Number], Tuple[Number, Number]]] -F32Mat2x2 = glm.mat2x2 -F32Matrix2x3 = Union[glm.mat2x3, Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number]]] -F32Mat2x3 = glm.mat2x3 -F32Matrix2x4 = Union[glm.mat2x4, Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] -F32Mat2x4 = glm.mat2x4 -F32Matrix2xAny = Union[glm.mat2x2, glm.mat2x3, glm.mat2x4, Tuple[Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] -F32Mat2xAny = Union[glm.mat2x2, glm.mat2x3, glm.mat2x4] -F32Matrix3x2 = Union[glm.mat3x2, Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]]] -F32Mat3x2 = glm.mat3x2 -F32Matrix3x3 = Union[glm.mat3x3, Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]]] -F32Mat3x3 = glm.mat3x3 -F32Matrix3x4 = Union[glm.mat3x4, Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] -F32Mat3x4 = glm.mat3x4 -F32Matrix3xAny = Union[glm.mat3x2, glm.mat3x3, glm.mat3x4, Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] -F32Mat3xAny = Union[glm.mat3x2, glm.mat3x3, glm.mat3x4] -F32Matrix4x2 = Union[glm.mat4x2, Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]]] -F32Mat4x2 = glm.mat4x2 -F32Matrix4x3 = Union[glm.mat4x3, Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]]] -F32Mat4x3 = glm.mat4x3 -F32Matrix4x4 = Union[glm.mat4x4, Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] -F32Mat4x4 = glm.mat4x4 -F32Matrix4xAny = Union[glm.mat4x2, glm.mat4x3, glm.mat4x4, Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] -F32Mat4xAny = Union[glm.mat4x2, glm.mat4x3, glm.mat4x4] -F32MatrixAnyx2 = Union[glm.mat2x2, glm.mat3x2, glm.mat4x2, Tuple[Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]]] -F32MatAnyx2 = Union[glm.mat2x2, glm.mat3x2, glm.mat4x2] -F32MatrixAnyx3 = Union[glm.mat2x3, glm.mat3x3, glm.mat4x3, Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]]] -F32MatAnyx3 = Union[glm.mat2x3, glm.mat3x3, glm.mat4x3] -F32MatrixAnyx4 = Union[glm.mat2x4, glm.mat3x4, glm.mat4x4, Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] -F32MatAnyx4 = Union[glm.mat2x4, glm.mat3x4, glm.mat4x4] -F32MatrixAnyxAny = Union[glm.mat2x2, glm.mat2x3, glm.mat2x4, glm.mat3x2, glm.mat3x3, glm.mat3x4, glm.mat4x2, glm.mat4x3, glm.mat4x4, Tuple[Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]], Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]], Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] -F32MatAnyxAny = Union[glm.mat2x2, glm.mat2x3, glm.mat2x4, glm.mat3x2, glm.mat3x3, glm.mat3x4, glm.mat4x2, glm.mat4x3, glm.mat4x4] -FAnyMatrix2x2 = Union[glm.mat2x2, Tuple[Tuple[Number, Number], Tuple[Number, Number]]] -FAnyMat2x2 = glm.mat2x2 -FAnyMatrix2x3 = Union[glm.mat2x3, Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number]]] -FAnyMat2x3 = glm.mat2x3 -FAnyMatrix2x4 = Union[glm.mat2x4, Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] -FAnyMat2x4 = glm.mat2x4 -FAnyMatrix2xAny = Union[glm.mat2x2, glm.mat2x3, glm.mat2x4, Tuple[Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] -FAnyMat2xAny = Union[glm.mat2x2, glm.mat2x3, glm.mat2x4] -FAnyMatrix3x2 = Union[glm.mat3x2, Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]]] -FAnyMat3x2 = glm.mat3x2 -FAnyMatrix3x3 = Union[glm.mat3x3, Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]]] -FAnyMat3x3 = glm.mat3x3 -FAnyMatrix3x4 = Union[glm.mat3x4, Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] -FAnyMat3x4 = glm.mat3x4 -FAnyMatrix3xAny = Union[glm.mat3x2, glm.mat3x3, glm.mat3x4, Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] -FAnyMat3xAny = Union[glm.mat3x2, glm.mat3x3, glm.mat3x4] -FAnyMatrix4x2 = Union[glm.mat4x2, Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]]] -FAnyMat4x2 = glm.mat4x2 -FAnyMatrix4x3 = Union[glm.mat4x3, Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]]] -FAnyMat4x3 = glm.mat4x3 -FAnyMatrix4x4 = Union[glm.mat4x4, Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] -FAnyMat4x4 = glm.mat4x4 -FAnyMatrix4xAny = Union[glm.mat4x2, glm.mat4x3, glm.mat4x4, Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] -FAnyMat4xAny = Union[glm.mat4x2, glm.mat4x3, glm.mat4x4] -FAnyMatrixAnyx2 = Union[glm.mat2x2, glm.mat3x2, glm.mat4x2, Tuple[Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]]] -FAnyMatAnyx2 = Union[glm.mat2x2, glm.mat3x2, glm.mat4x2] -FAnyMatrixAnyx3 = Union[glm.mat2x3, glm.mat3x3, glm.mat4x3, Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]]] -FAnyMatAnyx3 = Union[glm.mat2x3, glm.mat3x3, glm.mat4x3] -FAnyMatrixAnyx4 = Union[glm.mat2x4, glm.mat3x4, glm.mat4x4, Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] -FAnyMatAnyx4 = Union[glm.mat2x4, glm.mat3x4, glm.mat4x4] -FAnyMatrixAnyxAny = Union[glm.mat2x2, glm.mat2x3, glm.mat2x4, glm.mat3x2, glm.mat3x3, glm.mat3x4, glm.mat4x2, glm.mat4x3, glm.mat4x4, Tuple[Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]], Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]], Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] -FAnyMatAnyxAny = Union[glm.mat2x2, glm.mat2x3, glm.mat2x4, glm.mat3x2, glm.mat3x3, glm.mat3x4, glm.mat4x2, glm.mat4x3, glm.mat4x4] -I32Matrix2x2 = Union[glm.imat2x2, Tuple[Tuple[Number, Number], Tuple[Number, Number]]] -I32Mat2x2 = glm.imat2x2 -I32Matrix2x3 = Union[glm.imat2x3, Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number]]] -I32Mat2x3 = glm.imat2x3 -I32Matrix2x4 = Union[glm.imat2x4, Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] -I32Mat2x4 = glm.imat2x4 -I32Matrix2xAny = Union[glm.imat2x2, glm.imat2x3, glm.imat2x4, Tuple[Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] -I32Mat2xAny = Union[glm.imat2x2, glm.imat2x3, glm.imat2x4] -I32Matrix3x2 = Union[glm.imat3x2, Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]]] -I32Mat3x2 = glm.imat3x2 -I32Matrix3x3 = Union[glm.imat3x3, Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]]] -I32Mat3x3 = glm.imat3x3 -I32Matrix3x4 = Union[glm.imat3x4, Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] -I32Mat3x4 = glm.imat3x4 -I32Matrix3xAny = Union[glm.imat3x2, glm.imat3x3, glm.imat3x4, Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] -I32Mat3xAny = Union[glm.imat3x2, glm.imat3x3, glm.imat3x4] -I32Matrix4x2 = Union[glm.imat4x2, Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]]] -I32Mat4x2 = glm.imat4x2 -I32Matrix4x3 = Union[glm.imat4x3, Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]]] -I32Mat4x3 = glm.imat4x3 -I32Matrix4x4 = Union[glm.imat4x4, Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] -I32Mat4x4 = glm.imat4x4 -I32Matrix4xAny = Union[glm.imat4x2, glm.imat4x3, glm.imat4x4, Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] -I32Mat4xAny = Union[glm.imat4x2, glm.imat4x3, glm.imat4x4] -I32MatrixAnyx2 = Union[glm.imat2x2, glm.imat3x2, glm.imat4x2, Tuple[Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]]] -I32MatAnyx2 = Union[glm.imat2x2, glm.imat3x2, glm.imat4x2] -I32MatrixAnyx3 = Union[glm.imat2x3, glm.imat3x3, glm.imat4x3, Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]]] -I32MatAnyx3 = Union[glm.imat2x3, glm.imat3x3, glm.imat4x3] -I32MatrixAnyx4 = Union[glm.imat2x4, glm.imat3x4, glm.imat4x4, Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] -I32MatAnyx4 = Union[glm.imat2x4, glm.imat3x4, glm.imat4x4] -I32MatrixAnyxAny = Union[glm.imat2x2, glm.imat2x3, glm.imat2x4, glm.imat3x2, glm.imat3x3, glm.imat3x4, glm.imat4x2, glm.imat4x3, glm.imat4x4, Tuple[Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]], Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]], Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] -I32MatAnyxAny = Union[glm.imat2x2, glm.imat2x3, glm.imat2x4, glm.imat3x2, glm.imat3x3, glm.imat3x4, glm.imat4x2, glm.imat4x3, glm.imat4x4] -IAnyMatrix2x2 = Union[glm.imat2x2, Tuple[Tuple[Number, Number], Tuple[Number, Number]]] -IAnyMat2x2 = glm.imat2x2 -IAnyMatrix2x3 = Union[glm.imat2x3, Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number]]] -IAnyMat2x3 = glm.imat2x3 -IAnyMatrix2x4 = Union[glm.imat2x4, Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] -IAnyMat2x4 = glm.imat2x4 -IAnyMatrix2xAny = Union[glm.imat2x2, glm.imat2x3, glm.imat2x4, Tuple[Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] -IAnyMat2xAny = Union[glm.imat2x2, glm.imat2x3, glm.imat2x4] -IAnyMatrix3x2 = Union[glm.imat3x2, Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]]] -IAnyMat3x2 = glm.imat3x2 -IAnyMatrix3x3 = Union[glm.imat3x3, Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]]] -IAnyMat3x3 = glm.imat3x3 -IAnyMatrix3x4 = Union[glm.imat3x4, Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] -IAnyMat3x4 = glm.imat3x4 -IAnyMatrix3xAny = Union[glm.imat3x2, glm.imat3x3, glm.imat3x4, Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] -IAnyMat3xAny = Union[glm.imat3x2, glm.imat3x3, glm.imat3x4] -IAnyMatrix4x2 = Union[glm.imat4x2, Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]]] -IAnyMat4x2 = glm.imat4x2 -IAnyMatrix4x3 = Union[glm.imat4x3, Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]]] -IAnyMat4x3 = glm.imat4x3 -IAnyMatrix4x4 = Union[glm.imat4x4, Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] -IAnyMat4x4 = glm.imat4x4 -IAnyMatrix4xAny = Union[glm.imat4x2, glm.imat4x3, glm.imat4x4, Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] -IAnyMat4xAny = Union[glm.imat4x2, glm.imat4x3, glm.imat4x4] -IAnyMatrixAnyx2 = Union[glm.imat2x2, glm.imat3x2, glm.imat4x2, Tuple[Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]]] -IAnyMatAnyx2 = Union[glm.imat2x2, glm.imat3x2, glm.imat4x2] -IAnyMatrixAnyx3 = Union[glm.imat2x3, glm.imat3x3, glm.imat4x3, Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]]] -IAnyMatAnyx3 = Union[glm.imat2x3, glm.imat3x3, glm.imat4x3] -IAnyMatrixAnyx4 = Union[glm.imat2x4, glm.imat3x4, glm.imat4x4, Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] -IAnyMatAnyx4 = Union[glm.imat2x4, glm.imat3x4, glm.imat4x4] -IAnyMatrixAnyxAny = Union[glm.imat2x2, glm.imat2x3, glm.imat2x4, glm.imat3x2, glm.imat3x3, glm.imat3x4, glm.imat4x2, glm.imat4x3, glm.imat4x4, Tuple[Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]], Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]], Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] -IAnyMatAnyxAny = Union[glm.imat2x2, glm.imat2x3, glm.imat2x4, glm.imat3x2, glm.imat3x3, glm.imat3x4, glm.imat4x2, glm.imat4x3, glm.imat4x4] -U32Matrix2x2 = Union[glm.umat2x2, Tuple[Tuple[Number, Number], Tuple[Number, Number]]] -U32Mat2x2 = glm.umat2x2 -U32Matrix2x3 = Union[glm.umat2x3, Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number]]] -U32Mat2x3 = glm.umat2x3 -U32Matrix2x4 = Union[glm.umat2x4, Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] -U32Mat2x4 = glm.umat2x4 -U32Matrix2xAny = Union[glm.umat2x2, glm.umat2x3, glm.umat2x4, Tuple[Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] -U32Mat2xAny = Union[glm.umat2x2, glm.umat2x3, glm.umat2x4] -U32Matrix3x2 = Union[glm.umat3x2, Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]]] -U32Mat3x2 = glm.umat3x2 -U32Matrix3x3 = Union[glm.umat3x3, Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]]] -U32Mat3x3 = glm.umat3x3 -U32Matrix3x4 = Union[glm.umat3x4, Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] -U32Mat3x4 = glm.umat3x4 -U32Matrix3xAny = Union[glm.umat3x2, glm.umat3x3, glm.umat3x4, Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] -U32Mat3xAny = Union[glm.umat3x2, glm.umat3x3, glm.umat3x4] -U32Matrix4x2 = Union[glm.umat4x2, Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]]] -U32Mat4x2 = glm.umat4x2 -U32Matrix4x3 = Union[glm.umat4x3, Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]]] -U32Mat4x3 = glm.umat4x3 -U32Matrix4x4 = Union[glm.umat4x4, Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] -U32Mat4x4 = glm.umat4x4 -U32Matrix4xAny = Union[glm.umat4x2, glm.umat4x3, glm.umat4x4, Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] -U32Mat4xAny = Union[glm.umat4x2, glm.umat4x3, glm.umat4x4] -U32MatrixAnyx2 = Union[glm.umat2x2, glm.umat3x2, glm.umat4x2, Tuple[Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]]] -U32MatAnyx2 = Union[glm.umat2x2, glm.umat3x2, glm.umat4x2] -U32MatrixAnyx3 = Union[glm.umat2x3, glm.umat3x3, glm.umat4x3, Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]]] -U32MatAnyx3 = Union[glm.umat2x3, glm.umat3x3, glm.umat4x3] -U32MatrixAnyx4 = Union[glm.umat2x4, glm.umat3x4, glm.umat4x4, Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] -U32MatAnyx4 = Union[glm.umat2x4, glm.umat3x4, glm.umat4x4] -U32MatrixAnyxAny = Union[glm.umat2x2, glm.umat2x3, glm.umat2x4, glm.umat3x2, glm.umat3x3, glm.umat3x4, glm.umat4x2, glm.umat4x3, glm.umat4x4, Tuple[Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]], Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]], Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] -U32MatAnyxAny = Union[glm.umat2x2, glm.umat2x3, glm.umat2x4, glm.umat3x2, glm.umat3x3, glm.umat3x4, glm.umat4x2, glm.umat4x3, glm.umat4x4] -UAnyMatrix2x2 = Union[glm.umat2x2, Tuple[Tuple[Number, Number], Tuple[Number, Number]]] -UAnyMat2x2 = glm.umat2x2 -UAnyMatrix2x3 = Union[glm.umat2x3, Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number]]] -UAnyMat2x3 = glm.umat2x3 -UAnyMatrix2x4 = Union[glm.umat2x4, Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] -UAnyMat2x4 = glm.umat2x4 -UAnyMatrix2xAny = Union[glm.umat2x2, glm.umat2x3, glm.umat2x4, Tuple[Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] -UAnyMat2xAny = Union[glm.umat2x2, glm.umat2x3, glm.umat2x4] -UAnyMatrix3x2 = Union[glm.umat3x2, Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]]] -UAnyMat3x2 = glm.umat3x2 -UAnyMatrix3x3 = Union[glm.umat3x3, Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]]] -UAnyMat3x3 = glm.umat3x3 -UAnyMatrix3x4 = Union[glm.umat3x4, Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] -UAnyMat3x4 = glm.umat3x4 -UAnyMatrix3xAny = Union[glm.umat3x2, glm.umat3x3, glm.umat3x4, Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] -UAnyMat3xAny = Union[glm.umat3x2, glm.umat3x3, glm.umat3x4] -UAnyMatrix4x2 = Union[glm.umat4x2, Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]]] -UAnyMat4x2 = glm.umat4x2 -UAnyMatrix4x3 = Union[glm.umat4x3, Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]]] -UAnyMat4x3 = glm.umat4x3 -UAnyMatrix4x4 = Union[glm.umat4x4, Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] -UAnyMat4x4 = glm.umat4x4 -UAnyMatrix4xAny = Union[glm.umat4x2, glm.umat4x3, glm.umat4x4, Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] -UAnyMat4xAny = Union[glm.umat4x2, glm.umat4x3, glm.umat4x4] -UAnyMatrixAnyx2 = Union[glm.umat2x2, glm.umat3x2, glm.umat4x2, Tuple[Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]]] -UAnyMatAnyx2 = Union[glm.umat2x2, glm.umat3x2, glm.umat4x2] -UAnyMatrixAnyx3 = Union[glm.umat2x3, glm.umat3x3, glm.umat4x3, Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]]] -UAnyMatAnyx3 = Union[glm.umat2x3, glm.umat3x3, glm.umat4x3] -UAnyMatrixAnyx4 = Union[glm.umat2x4, glm.umat3x4, glm.umat4x4, Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] -UAnyMatAnyx4 = Union[glm.umat2x4, glm.umat3x4, glm.umat4x4] -UAnyMatrixAnyxAny = Union[glm.umat2x2, glm.umat2x3, glm.umat2x4, glm.umat3x2, glm.umat3x3, glm.umat3x4, glm.umat4x2, glm.umat4x3, glm.umat4x4, Tuple[Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]], Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]], Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] -UAnyMatAnyxAny = Union[glm.umat2x2, glm.umat2x3, glm.umat2x4, glm.umat3x2, glm.umat3x3, glm.umat3x4, glm.umat4x2, glm.umat4x3, glm.umat4x4] -AnyAnyMatrix2x2 = Union[glm.dmat2x2, glm.imat2x2, glm.mat2x2, glm.umat2x2, Tuple[Tuple[Number, Number], Tuple[Number, Number]]] -AnyAnyMat2x2 = Union[glm.dmat2x2, glm.imat2x2, glm.mat2x2, glm.umat2x2] -AnyAnyMatrix2x3 = Union[glm.dmat2x3, glm.imat2x3, glm.mat2x3, glm.umat2x3, Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number]]] -AnyAnyMat2x3 = Union[glm.dmat2x3, glm.imat2x3, glm.mat2x3, glm.umat2x3] -AnyAnyMatrix2x4 = Union[glm.dmat2x4, glm.imat2x4, glm.mat2x4, glm.umat2x4, Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] -AnyAnyMat2x4 = Union[glm.dmat2x4, glm.imat2x4, glm.mat2x4, glm.umat2x4] -AnyAnyMatrix2xAny = Union[glm.dmat2x2, glm.dmat2x3, glm.dmat2x4, glm.imat2x2, glm.imat2x3, glm.imat2x4, glm.mat2x2, glm.mat2x3, glm.mat2x4, glm.umat2x2, glm.umat2x3, glm.umat2x4, Tuple[Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] -AnyAnyMat2xAny = Union[glm.dmat2x2, glm.dmat2x3, glm.dmat2x4, glm.imat2x2, glm.imat2x3, glm.imat2x4, glm.mat2x2, glm.mat2x3, glm.mat2x4, glm.umat2x2, glm.umat2x3, glm.umat2x4] -AnyAnyMatrix3x2 = Union[glm.dmat3x2, glm.imat3x2, glm.mat3x2, glm.umat3x2, Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]]] -AnyAnyMat3x2 = Union[glm.dmat3x2, glm.imat3x2, glm.mat3x2, glm.umat3x2] -AnyAnyMatrix3x3 = Union[glm.dmat3x3, glm.imat3x3, glm.mat3x3, glm.umat3x3, Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]]] -AnyAnyMat3x3 = Union[glm.dmat3x3, glm.imat3x3, glm.mat3x3, glm.umat3x3] -AnyAnyMatrix3x4 = Union[glm.dmat3x4, glm.imat3x4, glm.mat3x4, glm.umat3x4, Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] -AnyAnyMat3x4 = Union[glm.dmat3x4, glm.imat3x4, glm.mat3x4, glm.umat3x4] -AnyAnyMatrix3xAny = Union[glm.dmat3x2, glm.dmat3x3, glm.dmat3x4, glm.imat3x2, glm.imat3x3, glm.imat3x4, glm.mat3x2, glm.mat3x3, glm.mat3x4, glm.umat3x2, glm.umat3x3, glm.umat3x4, Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] -AnyAnyMat3xAny = Union[glm.dmat3x2, glm.dmat3x3, glm.dmat3x4, glm.imat3x2, glm.imat3x3, glm.imat3x4, glm.mat3x2, glm.mat3x3, glm.mat3x4, glm.umat3x2, glm.umat3x3, glm.umat3x4] -AnyAnyMatrix4x2 = Union[glm.dmat4x2, glm.imat4x2, glm.mat4x2, glm.umat4x2, Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]]] -AnyAnyMat4x2 = Union[glm.dmat4x2, glm.imat4x2, glm.mat4x2, glm.umat4x2] -AnyAnyMatrix4x3 = Union[glm.dmat4x3, glm.imat4x3, glm.mat4x3, glm.umat4x3, Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]]] -AnyAnyMat4x3 = Union[glm.dmat4x3, glm.imat4x3, glm.mat4x3, glm.umat4x3] -AnyAnyMatrix4x4 = Union[glm.dmat4x4, glm.imat4x4, glm.mat4x4, glm.umat4x4, Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] -AnyAnyMat4x4 = Union[glm.dmat4x4, glm.imat4x4, glm.mat4x4, glm.umat4x4] -AnyAnyMatrix4xAny = Union[glm.dmat4x2, glm.dmat4x3, glm.dmat4x4, glm.imat4x2, glm.imat4x3, glm.imat4x4, glm.mat4x2, glm.mat4x3, glm.mat4x4, glm.umat4x2, glm.umat4x3, glm.umat4x4, Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] -AnyAnyMat4xAny = Union[glm.dmat4x2, glm.dmat4x3, glm.dmat4x4, glm.imat4x2, glm.imat4x3, glm.imat4x4, glm.mat4x2, glm.mat4x3, glm.mat4x4, glm.umat4x2, glm.umat4x3, glm.umat4x4] -AnyAnyMatrixAnyx2 = Union[glm.dmat2x2, glm.dmat3x2, glm.dmat4x2, glm.imat2x2, glm.imat3x2, glm.imat4x2, glm.mat2x2, glm.mat3x2, glm.mat4x2, glm.umat2x2, glm.umat3x2, glm.umat4x2, Tuple[Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]]] -AnyAnyMatAnyx2 = Union[glm.dmat2x2, glm.dmat3x2, glm.dmat4x2, glm.imat2x2, glm.imat3x2, glm.imat4x2, glm.mat2x2, glm.mat3x2, glm.mat4x2, glm.umat2x2, glm.umat3x2, glm.umat4x2] -AnyAnyMatrixAnyx3 = Union[glm.dmat2x3, glm.dmat3x3, glm.dmat4x3, glm.imat2x3, glm.imat3x3, glm.imat4x3, glm.mat2x3, glm.mat3x3, glm.mat4x3, glm.umat2x3, glm.umat3x3, glm.umat4x3, Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]]] -AnyAnyMatAnyx3 = Union[glm.dmat2x3, glm.dmat3x3, glm.dmat4x3, glm.imat2x3, glm.imat3x3, glm.imat4x3, glm.mat2x3, glm.mat3x3, glm.mat4x3, glm.umat2x3, glm.umat3x3, glm.umat4x3] -AnyAnyMatrixAnyx4 = Union[glm.dmat2x4, glm.dmat3x4, glm.dmat4x4, glm.imat2x4, glm.imat3x4, glm.imat4x4, glm.mat2x4, glm.mat3x4, glm.mat4x4, glm.umat2x4, glm.umat3x4, glm.umat4x4, Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] -AnyAnyMatAnyx4 = Union[glm.dmat2x4, glm.dmat3x4, glm.dmat4x4, glm.imat2x4, glm.imat3x4, glm.imat4x4, glm.mat2x4, glm.mat3x4, glm.mat4x4, glm.umat2x4, glm.umat3x4, glm.umat4x4] -AnyAnyMatrixAnyxAny = Union[glm.dmat2x2, glm.dmat2x3, glm.dmat2x4, glm.dmat3x2, glm.dmat3x3, glm.dmat3x4, glm.dmat4x2, glm.dmat4x3, glm.dmat4x4, glm.imat2x2, glm.imat2x3, glm.imat2x4, glm.imat3x2, glm.imat3x3, glm.imat3x4, glm.imat4x2, glm.imat4x3, glm.imat4x4, glm.mat2x2, glm.mat2x3, glm.mat2x4, glm.mat3x2, glm.mat3x3, glm.mat3x4, glm.mat4x2, glm.mat4x3, glm.mat4x4, glm.umat2x2, glm.umat2x3, glm.umat2x4, glm.umat3x2, glm.umat3x3, glm.umat3x4, glm.umat4x2, glm.umat4x3, glm.umat4x4, Tuple[Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]], Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]], Tuple[Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number], Tuple[Number, Number]], Tuple[Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number], Tuple[Number, Number, Number]], Tuple[Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number], Tuple[Number, Number, Number, Number]]] -AnyAnyMatAnyxAny = Union[glm.dmat2x2, glm.dmat2x3, glm.dmat2x4, glm.dmat3x2, glm.dmat3x3, glm.dmat3x4, glm.dmat4x2, glm.dmat4x3, glm.dmat4x4, glm.imat2x2, glm.imat2x3, glm.imat2x4, glm.imat3x2, glm.imat3x3, glm.imat3x4, glm.imat4x2, glm.imat4x3, glm.imat4x4, glm.mat2x2, glm.mat2x3, glm.mat2x4, glm.mat3x2, glm.mat3x3, glm.mat3x4, glm.mat4x2, glm.mat4x3, glm.mat4x4, glm.umat2x2, glm.umat2x3, glm.umat2x4, glm.umat3x2, glm.umat3x3, glm.umat3x4, glm.umat4x2, glm.umat4x3, glm.umat4x4] -AnyAnyMatrixSquare = Union[AnyAnyMatrix2x2, AnyAnyMatrix3x3, AnyAnyMatrix4x4] -D64Quaternion = Union[glm.dquat, Tuple[Number, Number, Number, Number]] -D64Quat = glm.dquat -DAnyQuaternion = Union[glm.dquat, Tuple[Number, Number, Number, Number]] -DAnyQuat = glm.dquat -F32Quaternion = Union[glm.quat, Tuple[Number, Number, Number, Number]] -F32Quat = glm.quat -FAnyQuaternion = Union[glm.quat, Tuple[Number, Number, Number, Number]] -FAnyQuat = glm.quat -AnyAnyQuaternion = Union[glm.dquat, glm.quat, Tuple[Number, Number, Number, Number]] -AnyAnyQuat = Union[glm.dquat, glm.quat] -FDAnyQuaternion = Union[FAnyQuaternion, DAnyQuaternion] -FDAnyQuaternionVector4 = Union[FDAnyVector4, FDAnyQuaternion] -__all__ = ['B8Vector1', 'B8Vec1', 'B8Vector2', 'B8Vec2', 'B8Vector3', 'B8Vec3', 'B8Vector4', 'B8Vec4', 'B8VectorAny', 'B8VecAny', 'BAnyVector1', 'BAnyVec1', 'BAnyVector2', 'BAnyVec2', 'BAnyVector3', 'BAnyVec3', 'BAnyVector4', 'BAnyVec4', 'BAnyVectorAny', 'BAnyVecAny', 'D64Vector1', 'D64Vec1', 'D64Vector2', 'D64Vec2', 'D64Vector3', 'D64Vec3', 'D64Vector4', 'D64Vec4', 'D64VectorAny', 'D64VecAny', 'DAnyVector1', 'DAnyVec1', 'DAnyVector2', 'DAnyVec2', 'DAnyVector3', 'DAnyVec3', 'DAnyVector4', 'DAnyVec4', 'DAnyVectorAny', 'DAnyVecAny', 'F32Vector1', 'F32Vec1', 'F32Vector2', 'F32Vec2', 'F32Vector3', 'F32Vec3', 'F32Vector4', 'F32Vec4', 'F32VectorAny', 'F32VecAny', 'FAnyVector1', 'FAnyVec1', 'FAnyVector2', 'FAnyVec2', 'FAnyVector3', 'FAnyVec3', 'FAnyVector4', 'FAnyVec4', 'FAnyVectorAny', 'FAnyVecAny', 'I8Vector1', 'I8Vec1', 'I8Vector2', 'I8Vec2', 'I8Vector3', 'I8Vec3', 'I8Vector4', 'I8Vec4', 'I8VectorAny', 'I8VecAny', 'I16Vector1', 'I16Vec1', 'I16Vector2', 'I16Vec2', 'I16Vector3', 'I16Vec3', 'I16Vector4', 'I16Vec4', 'I16VectorAny', 'I16VecAny', 'I32Vector1', 'I32Vec1', 'I32Vector2', 'I32Vec2', 'I32Vector3', 'I32Vec3', 'I32Vector4', 'I32Vec4', 'I32VectorAny', 'I32VecAny', 'I64Vector1', 'I64Vec1', 'I64Vector2', 'I64Vec2', 'I64Vector3', 'I64Vec3', 'I64Vector4', 'I64Vec4', 'I64VectorAny', 'I64VecAny', 'IAnyVector1', 'IAnyVec1', 'IAnyVector2', 'IAnyVec2', 'IAnyVector3', 'IAnyVec3', 'IAnyVector4', 'IAnyVec4', 'IAnyVectorAny', 'IAnyVecAny', 'U8Vector1', 'U8Vec1', 'U8Vector2', 'U8Vec2', 'U8Vector3', 'U8Vec3', 'U8Vector4', 'U8Vec4', 'U8VectorAny', 'U8VecAny', 'U16Vector1', 'U16Vec1', 'U16Vector2', 'U16Vec2', 'U16Vector3', 'U16Vec3', 'U16Vector4', 'U16Vec4', 'U16VectorAny', 'U16VecAny', 'U32Vector1', 'U32Vec1', 'U32Vector2', 'U32Vec2', 'U32Vector3', 'U32Vec3', 'U32Vector4', 'U32Vec4', 'U32VectorAny', 'U32VecAny', 'U64Vector1', 'U64Vec1', 'U64Vector2', 'U64Vec2', 'U64Vector3', 'U64Vec3', 'U64Vector4', 'U64Vec4', 'U64VectorAny', 'U64VecAny', 'UAnyVector1', 'UAnyVec1', 'UAnyVector2', 'UAnyVec2', 'UAnyVector3', 'UAnyVec3', 'UAnyVector4', 'UAnyVec4', 'UAnyVectorAny', 'UAnyVecAny', 'Any8Vector1', 'Any8Vec1', 'Any8Vector2', 'Any8Vec2', 'Any8Vector3', 'Any8Vec3', 'Any8Vector4', 'Any8Vec4', 'Any8VectorAny', 'Any8VecAny', 'Any16Vector1', 'Any16Vec1', 'Any16Vector2', 'Any16Vec2', 'Any16Vector3', 'Any16Vec3', 'Any16Vector4', 'Any16Vec4', 'Any16VectorAny', 'Any16VecAny', 'Any32Vector1', 'Any32Vec1', 'Any32Vector2', 'Any32Vec2', 'Any32Vector3', 'Any32Vec3', 'Any32Vector4', 'Any32Vec4', 'Any32VectorAny', 'Any32VecAny', 'Any64Vector1', 'Any64Vec1', 'Any64Vector2', 'Any64Vec2', 'Any64Vector3', 'Any64Vec3', 'Any64Vector4', 'Any64Vec4', 'Any64VectorAny', 'Any64VecAny', 'AnyAnyVector1', 'AnyAnyVec1', 'AnyAnyVector2', 'AnyAnyVec2', 'AnyAnyVector3', 'AnyAnyVec3', 'AnyAnyVector4', 'AnyAnyVec4', 'AnyAnyVectorAny', 'AnyAnyVecAny', 'FDAnyVectorAny', 'FDAnyVector1', 'FDAnyVector2', 'FDAnyVector3', 'FDAnyVector4', 'IUAnyVector1', 'IUAnyVector2', 'IUAnyVector3', 'IUAnyVector4', 'D64Matrix2x2', 'D64Mat2x2', 'D64Matrix2x3', 'D64Mat2x3', 'D64Matrix2x4', 'D64Mat2x4', 'D64Matrix2xAny', 'D64Mat2xAny', 'D64Matrix3x2', 'D64Mat3x2', 'D64Matrix3x3', 'D64Mat3x3', 'D64Matrix3x4', 'D64Mat3x4', 'D64Matrix3xAny', 'D64Mat3xAny', 'D64Matrix4x2', 'D64Mat4x2', 'D64Matrix4x3', 'D64Mat4x3', 'D64Matrix4x4', 'D64Mat4x4', 'D64Matrix4xAny', 'D64Mat4xAny', 'D64MatrixAnyx2', 'D64MatAnyx2', 'D64MatrixAnyx3', 'D64MatAnyx3', 'D64MatrixAnyx4', 'D64MatAnyx4', 'D64MatrixAnyxAny', 'D64MatAnyxAny', 'DAnyMatrix2x2', 'DAnyMat2x2', 'DAnyMatrix2x3', 'DAnyMat2x3', 'DAnyMatrix2x4', 'DAnyMat2x4', 'DAnyMatrix2xAny', 'DAnyMat2xAny', 'DAnyMatrix3x2', 'DAnyMat3x2', 'DAnyMatrix3x3', 'DAnyMat3x3', 'DAnyMatrix3x4', 'DAnyMat3x4', 'DAnyMatrix3xAny', 'DAnyMat3xAny', 'DAnyMatrix4x2', 'DAnyMat4x2', 'DAnyMatrix4x3', 'DAnyMat4x3', 'DAnyMatrix4x4', 'DAnyMat4x4', 'DAnyMatrix4xAny', 'DAnyMat4xAny', 'DAnyMatrixAnyx2', 'DAnyMatAnyx2', 'DAnyMatrixAnyx3', 'DAnyMatAnyx3', 'DAnyMatrixAnyx4', 'DAnyMatAnyx4', 'DAnyMatrixAnyxAny', 'DAnyMatAnyxAny', 'F32Matrix2x2', 'F32Mat2x2', 'F32Matrix2x3', 'F32Mat2x3', 'F32Matrix2x4', 'F32Mat2x4', 'F32Matrix2xAny', 'F32Mat2xAny', 'F32Matrix3x2', 'F32Mat3x2', 'F32Matrix3x3', 'F32Mat3x3', 'F32Matrix3x4', 'F32Mat3x4', 'F32Matrix3xAny', 'F32Mat3xAny', 'F32Matrix4x2', 'F32Mat4x2', 'F32Matrix4x3', 'F32Mat4x3', 'F32Matrix4x4', 'F32Mat4x4', 'F32Matrix4xAny', 'F32Mat4xAny', 'F32MatrixAnyx2', 'F32MatAnyx2', 'F32MatrixAnyx3', 'F32MatAnyx3', 'F32MatrixAnyx4', 'F32MatAnyx4', 'F32MatrixAnyxAny', 'F32MatAnyxAny', 'FAnyMatrix2x2', 'FAnyMat2x2', 'FAnyMatrix2x3', 'FAnyMat2x3', 'FAnyMatrix2x4', 'FAnyMat2x4', 'FAnyMatrix2xAny', 'FAnyMat2xAny', 'FAnyMatrix3x2', 'FAnyMat3x2', 'FAnyMatrix3x3', 'FAnyMat3x3', 'FAnyMatrix3x4', 'FAnyMat3x4', 'FAnyMatrix3xAny', 'FAnyMat3xAny', 'FAnyMatrix4x2', 'FAnyMat4x2', 'FAnyMatrix4x3', 'FAnyMat4x3', 'FAnyMatrix4x4', 'FAnyMat4x4', 'FAnyMatrix4xAny', 'FAnyMat4xAny', 'FAnyMatrixAnyx2', 'FAnyMatAnyx2', 'FAnyMatrixAnyx3', 'FAnyMatAnyx3', 'FAnyMatrixAnyx4', 'FAnyMatAnyx4', 'FAnyMatrixAnyxAny', 'FAnyMatAnyxAny', 'I32Matrix2x2', 'I32Mat2x2', 'I32Matrix2x3', 'I32Mat2x3', 'I32Matrix2x4', 'I32Mat2x4', 'I32Matrix2xAny', 'I32Mat2xAny', 'I32Matrix3x2', 'I32Mat3x2', 'I32Matrix3x3', 'I32Mat3x3', 'I32Matrix3x4', 'I32Mat3x4', 'I32Matrix3xAny', 'I32Mat3xAny', 'I32Matrix4x2', 'I32Mat4x2', 'I32Matrix4x3', 'I32Mat4x3', 'I32Matrix4x4', 'I32Mat4x4', 'I32Matrix4xAny', 'I32Mat4xAny', 'I32MatrixAnyx2', 'I32MatAnyx2', 'I32MatrixAnyx3', 'I32MatAnyx3', 'I32MatrixAnyx4', 'I32MatAnyx4', 'I32MatrixAnyxAny', 'I32MatAnyxAny', 'IAnyMatrix2x2', 'IAnyMat2x2', 'IAnyMatrix2x3', 'IAnyMat2x3', 'IAnyMatrix2x4', 'IAnyMat2x4', 'IAnyMatrix2xAny', 'IAnyMat2xAny', 'IAnyMatrix3x2', 'IAnyMat3x2', 'IAnyMatrix3x3', 'IAnyMat3x3', 'IAnyMatrix3x4', 'IAnyMat3x4', 'IAnyMatrix3xAny', 'IAnyMat3xAny', 'IAnyMatrix4x2', 'IAnyMat4x2', 'IAnyMatrix4x3', 'IAnyMat4x3', 'IAnyMatrix4x4', 'IAnyMat4x4', 'IAnyMatrix4xAny', 'IAnyMat4xAny', 'IAnyMatrixAnyx2', 'IAnyMatAnyx2', 'IAnyMatrixAnyx3', 'IAnyMatAnyx3', 'IAnyMatrixAnyx4', 'IAnyMatAnyx4', 'IAnyMatrixAnyxAny', 'IAnyMatAnyxAny', 'U32Matrix2x2', 'U32Mat2x2', 'U32Matrix2x3', 'U32Mat2x3', 'U32Matrix2x4', 'U32Mat2x4', 'U32Matrix2xAny', 'U32Mat2xAny', 'U32Matrix3x2', 'U32Mat3x2', 'U32Matrix3x3', 'U32Mat3x3', 'U32Matrix3x4', 'U32Mat3x4', 'U32Matrix3xAny', 'U32Mat3xAny', 'U32Matrix4x2', 'U32Mat4x2', 'U32Matrix4x3', 'U32Mat4x3', 'U32Matrix4x4', 'U32Mat4x4', 'U32Matrix4xAny', 'U32Mat4xAny', 'U32MatrixAnyx2', 'U32MatAnyx2', 'U32MatrixAnyx3', 'U32MatAnyx3', 'U32MatrixAnyx4', 'U32MatAnyx4', 'U32MatrixAnyxAny', 'U32MatAnyxAny', 'UAnyMatrix2x2', 'UAnyMat2x2', 'UAnyMatrix2x3', 'UAnyMat2x3', 'UAnyMatrix2x4', 'UAnyMat2x4', 'UAnyMatrix2xAny', 'UAnyMat2xAny', 'UAnyMatrix3x2', 'UAnyMat3x2', 'UAnyMatrix3x3', 'UAnyMat3x3', 'UAnyMatrix3x4', 'UAnyMat3x4', 'UAnyMatrix3xAny', 'UAnyMat3xAny', 'UAnyMatrix4x2', 'UAnyMat4x2', 'UAnyMatrix4x3', 'UAnyMat4x3', 'UAnyMatrix4x4', 'UAnyMat4x4', 'UAnyMatrix4xAny', 'UAnyMat4xAny', 'UAnyMatrixAnyx2', 'UAnyMatAnyx2', 'UAnyMatrixAnyx3', 'UAnyMatAnyx3', 'UAnyMatrixAnyx4', 'UAnyMatAnyx4', 'UAnyMatrixAnyxAny', 'UAnyMatAnyxAny', 'AnyAnyMatrix2x2', 'AnyAnyMat2x2', 'AnyAnyMatrix2x3', 'AnyAnyMat2x3', 'AnyAnyMatrix2x4', 'AnyAnyMat2x4', 'AnyAnyMatrix2xAny', 'AnyAnyMat2xAny', 'AnyAnyMatrix3x2', 'AnyAnyMat3x2', 'AnyAnyMatrix3x3', 'AnyAnyMat3x3', 'AnyAnyMatrix3x4', 'AnyAnyMat3x4', 'AnyAnyMatrix3xAny', 'AnyAnyMat3xAny', 'AnyAnyMatrix4x2', 'AnyAnyMat4x2', 'AnyAnyMatrix4x3', 'AnyAnyMat4x3', 'AnyAnyMatrix4x4', 'AnyAnyMat4x4', 'AnyAnyMatrix4xAny', 'AnyAnyMat4xAny', 'AnyAnyMatrixAnyx2', 'AnyAnyMatAnyx2', 'AnyAnyMatrixAnyx3', 'AnyAnyMatAnyx3', 'AnyAnyMatrixAnyx4', 'AnyAnyMatAnyx4', 'AnyAnyMatrixAnyxAny', 'AnyAnyMatAnyxAny', 'AnyAnyMatrixSquare', 'D64Quaternion', 'D64Quat', 'DAnyQuaternion', 'DAnyQuat', 'F32Quaternion', 'F32Quat', 'FAnyQuaternion', 'FAnyQuat', 'AnyAnyQuaternion', 'AnyAnyQuat', 'FDAnyQuaternion', 'FDAnyQuaternionVector4'] diff --git a/glm/py.typed b/glm/py.typed new file mode 100644 index 00000000..e69de29b From 2de55bf577f71da367895bad0c45a1433e0caf5c Mon Sep 17 00:00:00 2001 From: Zuzu-Typ Date: Thu, 10 Oct 2024 10:56:10 +0200 Subject: [PATCH 4/5] Updated Readme text to reflect new packaging structure --- README.md | 6 +++--- README.sb | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 69b831ce..bc54c969 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,7 @@ pip install PyGLM ``` And finally imported and used: ``` python -import glm +from PyGLM import glm ``` ### Using PyGLM PyGLM's syntax is very similar to the original GLM's syntax\. @@ -37,7 +37,7 @@ There is no need to import anything but **glm**, as it already contains the enti For more information, take a look at the [wiki](https://github.com/Zuzu-Typ/PyGLM/wiki)\. #### License requirements -Please make sure to **include the license for GLM** in your project when you use PyGLM\! +Please make sure to **include COPYING** in your project when you use PyGLM\! \(this is especially relevant for **binary distributions**, e\.g\. \*\.exe\) You can do so by copying the ``` COPYING ``` file \(or it's contents\) to your project\. @@ -102,7 +102,7 @@ I try adding them on a one\-by\-one basis\. ### Short example ``` Python ->>> import glm +>>> from PyGLM import glm >>> v = glm.vec3() >>> v.x = 7 >>> print(v.xxy) diff --git a/README.sb b/README.sb index 84be40b3..66e1ceee 100644 --- a/README.sb +++ b/README.sb @@ -27,7 +27,7 @@ pip install PyGLM \ code\ And finally imported and used: \code python \ -import glm +from PyGLM import glm \ code\ \h3 \Using PyGLM\ h3\ PyGLM's syntax is very similar to the original GLM's syntax. @@ -35,7 +35,7 @@ There is no need to import anything but \b\glm\b\, as it already contains the en For more information, take a look at the \url https://github.com/Zuzu-Typ/PyGLM/wiki \wiki\ url\. \h4 \License requirements\ h4\ -Please make sure to \b \include the license for GLM\ b\ in your project when you use PyGLM! +Please make sure to \b \include COPYING\ b\ in your project when you use PyGLM! (this is especially relevant for \b \binary distributions\ b\, e.g. *.exe) You can do so by copying the \code \COPYING\ code\ file (or it's contents) to your project. @@ -100,7 +100,7 @@ I try adding them on a one-by-one basis. \h3 \Short example\ h3\ \code Python \ ->>> import glm +>>> from PyGLM import glm >>> v = glm.vec3() >>> v.x = 7 >>> print(v.xxy) From e4320108fab542beb4c8c3350a4950cc20bf5abb Mon Sep 17 00:00:00 2001 From: Zuzu-Typ Date: Fri, 11 Oct 2024 16:39:18 +0200 Subject: [PATCH 5/5] Updated glm --- PyGLM_lib/glm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PyGLM_lib/glm b/PyGLM_lib/glm index fbc534be..58e0db58 160000 --- a/PyGLM_lib/glm +++ b/PyGLM_lib/glm @@ -1 +1 @@ -Subproject commit fbc534be62f8c785db989f8ae7526edf6d0dc306 +Subproject commit 58e0db58cc860c0c6f7f6ee3a462e17a431646a4