Docs: add doc-string to mathutils.Vector swizzle attributes

Also refactor definitions into a macro as they were exceeding the
line-length and wrapping.

Ref: !124275

Co-authored-by: Nathan Burnham <nathan@nathanburnham.uk>
This commit is contained in:
Campbell Barton
2024-07-09 13:45:07 +10:00
parent 5523662414
commit da9cfbdae9

View File

@@ -2636,6 +2636,12 @@ static PyObject *Vector_length_squared_get(VectorObject *self, void * /*closure*
return PyFloat_FromDouble(dot_vn_vn(self->vec, self->vec, self->vec_num));
}
/* `Vector.xyzw`, etc.. */
PyDoc_STRVAR(
/* Wrap. */
Vector_swizzle_doc,
":type: :class:`Vector`");
/**
* Python script used to make swizzle array:
*
@@ -2644,49 +2650,74 @@ static PyObject *Vector_length_squared_get(VectorObject *self, void * /*closure*
* SWIZZLE_VALID_AXIS = 0x4
*
* axis_dict = {}
* axis_pos = {'x': 0, 'y': 1, 'z': 2, 'w': 3}
* axis_chars = 'xyzw'
* axis_pos = {"x": 0, "y": 1, "z": 2, "w": 3}
* axis_chars = "xyzw"
* while len(axis_chars) >= 2:
* for axis_0 in axis_chars:
* axis_0_pos = axis_pos[axis_0]
* for axis_1 in axis_chars:
* axis_1_pos = axis_pos[axis_1]
* axis_dict[axis_0 + axis_1] = (
* '((%s | SWIZZLE_VALID_AXIS) | '
* '((%s | SWIZZLE_VALID_AXIS) << SWIZZLE_BITS_PER_AXIS))' %
* (axis_0_pos, axis_1_pos))
* if len(axis_chars) > 2:
* for axis_2 in axis_chars:
* axis_2_pos = axis_pos[axis_2]
* axis_dict[axis_0 + axis_1 + axis_2] = (
* '((%s | SWIZZLE_VALID_AXIS) | '
* '((%s | SWIZZLE_VALID_AXIS) << SWIZZLE_BITS_PER_AXIS) | '
* '((%s | SWIZZLE_VALID_AXIS) << (SWIZZLE_BITS_PER_AXIS * 2)))' %
* (axis_0_pos, axis_1_pos, axis_2_pos))
* if len(axis_chars) > 3:
* for axis_3 in axis_chars:
* axis_3_pos = axis_pos[axis_3]
* axis_dict[axis_0 + axis_1 + axis_2 + axis_3] = (
* '((%s | SWIZZLE_VALID_AXIS) | '
* '((%s | SWIZZLE_VALID_AXIS) << SWIZZLE_BITS_PER_AXIS) | '
* '((%s | SWIZZLE_VALID_AXIS) << (SWIZZLE_BITS_PER_AXIS * 2)) | '
* '((%s | SWIZZLE_VALID_AXIS) << (SWIZZLE_BITS_PER_AXIS * 3))) '
* %
* (axis_0_pos, axis_1_pos, axis_2_pos, axis_3_pos))
* "(({:d} | SWIZZLE_VALID_AXIS) | "
* "(({:d} | SWIZZLE_VALID_AXIS) << SWIZZLE_BITS_PER_AXIS))"
* ).format(axis_0_pos, axis_1_pos)
* if len(axis_chars) <= 2:
* continue
* for axis_2 in axis_chars:
* axis_2_pos = axis_pos[axis_2]
* axis_dict[axis_0 + axis_1 + axis_2] = (
* "(({:d} | SWIZZLE_VALID_AXIS) | "
* "(({:d} | SWIZZLE_VALID_AXIS) << SWIZZLE_BITS_PER_AXIS) | "
* "(({:d} | SWIZZLE_VALID_AXIS) << (SWIZZLE_BITS_PER_AXIS * 2)))"
* ).format(axis_0_pos, axis_1_pos, axis_2_pos)
* if len(axis_chars) <= 3:
* continue
* for axis_3 in axis_chars:
* axis_3_pos = axis_pos[axis_3]
* axis_dict[axis_0 + axis_1 + axis_2 + axis_3] = (
* "(({:d} | SWIZZLE_VALID_AXIS) | "
* "(({:d} | SWIZZLE_VALID_AXIS) << SWIZZLE_BITS_PER_AXIS) | "
* "(({:d} | SWIZZLE_VALID_AXIS) << (SWIZZLE_BITS_PER_AXIS * 2)) | "
* "(({:d} | SWIZZLE_VALID_AXIS) << (SWIZZLE_BITS_PER_AXIS * 3)))"
* ).format(axis_0_pos, axis_1_pos, axis_2_pos, axis_3_pos)
*
* axis_chars = axis_chars[:-1]
* items = list(axis_dict.items())
* items.sort(
* key=lambda a: a[0].replace('x', '0').replace('y', '1').replace('z', '2').replace('w', '3')
* key=lambda a: a[0].replace("x", "0").replace("y", "1").replace("z", "2").replace("w", "3")
* )
*
* for size in range(2, 5):
* for rw_pass in (True, False):
* key_args = ", ".join(list("abcd"[:size]))
*
* print("#define VECTOR_SWIZZLE{:d}_{:s}_DEF(attr, {:s}) \\".format(
* size,
* "RW" if rw_pass else "RO",
* key_args,
* ))
* print(" {{attr, (getter){:s}, (setter){:s}, {:s}, SWIZZLE{:d}({:s}), }}".format(
* "Vector_swizzle_get",
* "Vector_swizzle_set" if rw_pass else "nullptr",
* "Vector_swizzle_doc",
* size,
* key_args,
* ))
* print()
*
* unique = set()
* for key, val in items:
* num = eval(val)
* set_str = 'Vector_swizzle_set' if (len(set(key)) == len(key)) else 'nullptr'
* key_args = ', '.join(["'%s'" % c for c in key.upper()])
* print('\t{"%s", %s(getter)Vector_swizzle_get, (setter)%s, nullptr, SWIZZLE%d(%s)},' %
* (key, (' ' * (4 - len(key))), set_str, len(key), key_args))
* key_args = ", ".join(["{:d}".format(axis_pos[c]) for c in key.lower()])
* macro = "VECTOR_SWIZZLE{:d}_{:s}_DEF".format(
* len(key),
* "RW" if len(set(key)) == len(key) else "RO",
* )
* print(" {:s}(\"{:s}\", {:s}),".format(
* macro,
* key,
* key_args,
* ))
* unique.add(num)
*
* if len(unique) != len(items):
@@ -2833,6 +2864,34 @@ static int Vector_swizzle_set(VectorObject *self, PyObject *value, void *closure
#define SWIZZLE3(a, b, c) POINTER_FROM_INT(_SWIZZLE3(a, b, c))
#define SWIZZLE4(a, b, c, d) POINTER_FROM_INT(_SWIZZLE4(a, b, c, d))
#define VECTOR_SWIZZLE2_RW_DEF(attr, a, b) \
{ \
attr, (getter)Vector_swizzle_get, (setter)Vector_swizzle_set, Vector_swizzle_doc, \
SWIZZLE2(a, b), \
}
#define VECTOR_SWIZZLE2_RO_DEF(attr, a, b) \
{ \
attr, (getter)Vector_swizzle_get, (setter) nullptr, Vector_swizzle_doc, SWIZZLE2(a, b), \
}
#define VECTOR_SWIZZLE3_RW_DEF(attr, a, b, c) \
{ \
attr, (getter)Vector_swizzle_get, (setter)Vector_swizzle_set, Vector_swizzle_doc, \
SWIZZLE3(a, b, c), \
}
#define VECTOR_SWIZZLE3_RO_DEF(attr, a, b, c) \
{ \
attr, (getter)Vector_swizzle_get, (setter) nullptr, Vector_swizzle_doc, SWIZZLE3(a, b, c), \
}
#define VECTOR_SWIZZLE4_RW_DEF(attr, a, b, c, d) \
{ \
attr, (getter)Vector_swizzle_get, (setter)Vector_swizzle_set, Vector_swizzle_doc, \
SWIZZLE4(a, b, c, d), \
}
#define VECTOR_SWIZZLE4_RO_DEF(attr, a, b, c, d) \
{ \
attr, (getter)Vector_swizzle_get, (setter) nullptr, Vector_swizzle_doc, SWIZZLE4(a, b, c, d) \
}
/** \} */
/* -------------------------------------------------------------------- */
@@ -2898,438 +2957,342 @@ static PyGetSetDef Vector_getseters[] = {
nullptr},
/* Auto-generated swizzle attributes, see Python script above. */
{"xx", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE2(0, 0)},
{"xxx", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE3(0, 0, 0)},
{"xxxx", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(0, 0, 0, 0)},
{"xxxy", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(0, 0, 0, 1)},
{"xxxz", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(0, 0, 0, 2)},
{"xxxw", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(0, 0, 0, 3)},
{"xxy", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE3(0, 0, 1)},
{"xxyx", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(0, 0, 1, 0)},
{"xxyy", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(0, 0, 1, 1)},
{"xxyz", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(0, 0, 1, 2)},
{"xxyw", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(0, 0, 1, 3)},
{"xxz", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE3(0, 0, 2)},
{"xxzx", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(0, 0, 2, 0)},
{"xxzy", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(0, 0, 2, 1)},
{"xxzz", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(0, 0, 2, 2)},
{"xxzw", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(0, 0, 2, 3)},
{"xxw", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE3(0, 0, 3)},
{"xxwx", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(0, 0, 3, 0)},
{"xxwy", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(0, 0, 3, 1)},
{"xxwz", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(0, 0, 3, 2)},
{"xxww", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(0, 0, 3, 3)},
{"xy", (getter)Vector_swizzle_get, (setter)Vector_swizzle_set, nullptr, SWIZZLE2(0, 1)},
{"xyx", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE3(0, 1, 0)},
{"xyxx", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(0, 1, 0, 0)},
{"xyxy", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(0, 1, 0, 1)},
{"xyxz", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(0, 1, 0, 2)},
{"xyxw", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(0, 1, 0, 3)},
{"xyy", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE3(0, 1, 1)},
{"xyyx", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(0, 1, 1, 0)},
{"xyyy", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(0, 1, 1, 1)},
{"xyyz", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(0, 1, 1, 2)},
{"xyyw", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(0, 1, 1, 3)},
{"xyz", (getter)Vector_swizzle_get, (setter)Vector_swizzle_set, nullptr, SWIZZLE3(0, 1, 2)},
{"xyzx", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(0, 1, 2, 0)},
{"xyzy", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(0, 1, 2, 1)},
{"xyzz", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(0, 1, 2, 2)},
{"xyzw",
(getter)Vector_swizzle_get,
(setter)Vector_swizzle_set,
nullptr,
SWIZZLE4(0, 1, 2, 3)},
{"xyw", (getter)Vector_swizzle_get, (setter)Vector_swizzle_set, nullptr, SWIZZLE3(0, 1, 3)},
{"xywx", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(0, 1, 3, 0)},
{"xywy", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(0, 1, 3, 1)},
{"xywz",
(getter)Vector_swizzle_get,
(setter)Vector_swizzle_set,
nullptr,
SWIZZLE4(0, 1, 3, 2)},
{"xyww", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(0, 1, 3, 3)},
{"xz", (getter)Vector_swizzle_get, (setter)Vector_swizzle_set, nullptr, SWIZZLE2(0, 2)},
{"xzx", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE3(0, 2, 0)},
{"xzxx", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(0, 2, 0, 0)},
{"xzxy", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(0, 2, 0, 1)},
{"xzxz", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(0, 2, 0, 2)},
{"xzxw", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(0, 2, 0, 3)},
{"xzy", (getter)Vector_swizzle_get, (setter)Vector_swizzle_set, nullptr, SWIZZLE3(0, 2, 1)},
{"xzyx", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(0, 2, 1, 0)},
{"xzyy", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(0, 2, 1, 1)},
{"xzyz", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(0, 2, 1, 2)},
{"xzyw",
(getter)Vector_swizzle_get,
(setter)Vector_swizzle_set,
nullptr,
SWIZZLE4(0, 2, 1, 3)},
{"xzz", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE3(0, 2, 2)},
{"xzzx", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(0, 2, 2, 0)},
{"xzzy", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(0, 2, 2, 1)},
{"xzzz", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(0, 2, 2, 2)},
{"xzzw", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(0, 2, 2, 3)},
{"xzw", (getter)Vector_swizzle_get, (setter)Vector_swizzle_set, nullptr, SWIZZLE3(0, 2, 3)},
{"xzwx", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(0, 2, 3, 0)},
{"xzwy",
(getter)Vector_swizzle_get,
(setter)Vector_swizzle_set,
nullptr,
SWIZZLE4(0, 2, 3, 1)},
{"xzwz", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(0, 2, 3, 2)},
{"xzww", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(0, 2, 3, 3)},
{"xw", (getter)Vector_swizzle_get, (setter)Vector_swizzle_set, nullptr, SWIZZLE2(0, 3)},
{"xwx", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE3(0, 3, 0)},
{"xwxx", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(0, 3, 0, 0)},
{"xwxy", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(0, 3, 0, 1)},
{"xwxz", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(0, 3, 0, 2)},
{"xwxw", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(0, 3, 0, 3)},
{"xwy", (getter)Vector_swizzle_get, (setter)Vector_swizzle_set, nullptr, SWIZZLE3(0, 3, 1)},
{"xwyx", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(0, 3, 1, 0)},
{"xwyy", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(0, 3, 1, 1)},
{"xwyz",
(getter)Vector_swizzle_get,
(setter)Vector_swizzle_set,
nullptr,
SWIZZLE4(0, 3, 1, 2)},
{"xwyw", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(0, 3, 1, 3)},
{"xwz", (getter)Vector_swizzle_get, (setter)Vector_swizzle_set, nullptr, SWIZZLE3(0, 3, 2)},
{"xwzx", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(0, 3, 2, 0)},
{"xwzy",
(getter)Vector_swizzle_get,
(setter)Vector_swizzle_set,
nullptr,
SWIZZLE4(0, 3, 2, 1)},
{"xwzz", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(0, 3, 2, 2)},
{"xwzw", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(0, 3, 2, 3)},
{"xww", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE3(0, 3, 3)},
{"xwwx", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(0, 3, 3, 0)},
{"xwwy", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(0, 3, 3, 1)},
{"xwwz", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(0, 3, 3, 2)},
{"xwww", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(0, 3, 3, 3)},
{"yx", (getter)Vector_swizzle_get, (setter)Vector_swizzle_set, nullptr, SWIZZLE2(1, 0)},
{"yxx", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE3(1, 0, 0)},
{"yxxx", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(1, 0, 0, 0)},
{"yxxy", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(1, 0, 0, 1)},
{"yxxz", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(1, 0, 0, 2)},
{"yxxw", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(1, 0, 0, 3)},
{"yxy", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE3(1, 0, 1)},
{"yxyx", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(1, 0, 1, 0)},
{"yxyy", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(1, 0, 1, 1)},
{"yxyz", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(1, 0, 1, 2)},
{"yxyw", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(1, 0, 1, 3)},
{"yxz", (getter)Vector_swizzle_get, (setter)Vector_swizzle_set, nullptr, SWIZZLE3(1, 0, 2)},
{"yxzx", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(1, 0, 2, 0)},
{"yxzy", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(1, 0, 2, 1)},
{"yxzz", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(1, 0, 2, 2)},
{"yxzw",
(getter)Vector_swizzle_get,
(setter)Vector_swizzle_set,
nullptr,
SWIZZLE4(1, 0, 2, 3)},
{"yxw", (getter)Vector_swizzle_get, (setter)Vector_swizzle_set, nullptr, SWIZZLE3(1, 0, 3)},
{"yxwx", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(1, 0, 3, 0)},
{"yxwy", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(1, 0, 3, 1)},
{"yxwz",
(getter)Vector_swizzle_get,
(setter)Vector_swizzle_set,
nullptr,
SWIZZLE4(1, 0, 3, 2)},
{"yxww", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(1, 0, 3, 3)},
{"yy", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE2(1, 1)},
{"yyx", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE3(1, 1, 0)},
{"yyxx", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(1, 1, 0, 0)},
{"yyxy", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(1, 1, 0, 1)},
{"yyxz", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(1, 1, 0, 2)},
{"yyxw", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(1, 1, 0, 3)},
{"yyy", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE3(1, 1, 1)},
{"yyyx", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(1, 1, 1, 0)},
{"yyyy", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(1, 1, 1, 1)},
{"yyyz", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(1, 1, 1, 2)},
{"yyyw", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(1, 1, 1, 3)},
{"yyz", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE3(1, 1, 2)},
{"yyzx", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(1, 1, 2, 0)},
{"yyzy", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(1, 1, 2, 1)},
{"yyzz", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(1, 1, 2, 2)},
{"yyzw", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(1, 1, 2, 3)},
{"yyw", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE3(1, 1, 3)},
{"yywx", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(1, 1, 3, 0)},
{"yywy", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(1, 1, 3, 1)},
{"yywz", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(1, 1, 3, 2)},
{"yyww", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(1, 1, 3, 3)},
{"yz", (getter)Vector_swizzle_get, (setter)Vector_swizzle_set, nullptr, SWIZZLE2(1, 2)},
{"yzx", (getter)Vector_swizzle_get, (setter)Vector_swizzle_set, nullptr, SWIZZLE3(1, 2, 0)},
{"yzxx", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(1, 2, 0, 0)},
{"yzxy", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(1, 2, 0, 1)},
{"yzxz", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(1, 2, 0, 2)},
{"yzxw",
(getter)Vector_swizzle_get,
(setter)Vector_swizzle_set,
nullptr,
SWIZZLE4(1, 2, 0, 3)},
{"yzy", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE3(1, 2, 1)},
{"yzyx", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(1, 2, 1, 0)},
{"yzyy", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(1, 2, 1, 1)},
{"yzyz", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(1, 2, 1, 2)},
{"yzyw", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(1, 2, 1, 3)},
{"yzz", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE3(1, 2, 2)},
{"yzzx", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(1, 2, 2, 0)},
{"yzzy", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(1, 2, 2, 1)},
{"yzzz", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(1, 2, 2, 2)},
{"yzzw", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(1, 2, 2, 3)},
{"yzw", (getter)Vector_swizzle_get, (setter)Vector_swizzle_set, nullptr, SWIZZLE3(1, 2, 3)},
{"yzwx",
(getter)Vector_swizzle_get,
(setter)Vector_swizzle_set,
nullptr,
SWIZZLE4(1, 2, 3, 0)},
{"yzwy", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(1, 2, 3, 1)},
{"yzwz", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(1, 2, 3, 2)},
{"yzww", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(1, 2, 3, 3)},
{"yw", (getter)Vector_swizzle_get, (setter)Vector_swizzle_set, nullptr, SWIZZLE2(1, 3)},
{"ywx", (getter)Vector_swizzle_get, (setter)Vector_swizzle_set, nullptr, SWIZZLE3(1, 3, 0)},
{"ywxx", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(1, 3, 0, 0)},
{"ywxy", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(1, 3, 0, 1)},
{"ywxz",
(getter)Vector_swizzle_get,
(setter)Vector_swizzle_set,
nullptr,
SWIZZLE4(1, 3, 0, 2)},
{"ywxw", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(1, 3, 0, 3)},
{"ywy", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE3(1, 3, 1)},
{"ywyx", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(1, 3, 1, 0)},
{"ywyy", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(1, 3, 1, 1)},
{"ywyz", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(1, 3, 1, 2)},
{"ywyw", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(1, 3, 1, 3)},
{"ywz", (getter)Vector_swizzle_get, (setter)Vector_swizzle_set, nullptr, SWIZZLE3(1, 3, 2)},
{"ywzx",
(getter)Vector_swizzle_get,
(setter)Vector_swizzle_set,
nullptr,
SWIZZLE4(1, 3, 2, 0)},
{"ywzy", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(1, 3, 2, 1)},
{"ywzz", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(1, 3, 2, 2)},
{"ywzw", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(1, 3, 2, 3)},
{"yww", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE3(1, 3, 3)},
{"ywwx", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(1, 3, 3, 0)},
{"ywwy", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(1, 3, 3, 1)},
{"ywwz", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(1, 3, 3, 2)},
{"ywww", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(1, 3, 3, 3)},
{"zx", (getter)Vector_swizzle_get, (setter)Vector_swizzle_set, nullptr, SWIZZLE2(2, 0)},
{"zxx", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE3(2, 0, 0)},
{"zxxx", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(2, 0, 0, 0)},
{"zxxy", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(2, 0, 0, 1)},
{"zxxz", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(2, 0, 0, 2)},
{"zxxw", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(2, 0, 0, 3)},
{"zxy", (getter)Vector_swizzle_get, (setter)Vector_swizzle_set, nullptr, SWIZZLE3(2, 0, 1)},
{"zxyx", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(2, 0, 1, 0)},
{"zxyy", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(2, 0, 1, 1)},
{"zxyz", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(2, 0, 1, 2)},
{"zxyw",
(getter)Vector_swizzle_get,
(setter)Vector_swizzle_set,
nullptr,
SWIZZLE4(2, 0, 1, 3)},
{"zxz", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE3(2, 0, 2)},
{"zxzx", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(2, 0, 2, 0)},
{"zxzy", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(2, 0, 2, 1)},
{"zxzz", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(2, 0, 2, 2)},
{"zxzw", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(2, 0, 2, 3)},
{"zxw", (getter)Vector_swizzle_get, (setter)Vector_swizzle_set, nullptr, SWIZZLE3(2, 0, 3)},
{"zxwx", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(2, 0, 3, 0)},
{"zxwy",
(getter)Vector_swizzle_get,
(setter)Vector_swizzle_set,
nullptr,
SWIZZLE4(2, 0, 3, 1)},
{"zxwz", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(2, 0, 3, 2)},
{"zxww", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(2, 0, 3, 3)},
{"zy", (getter)Vector_swizzle_get, (setter)Vector_swizzle_set, nullptr, SWIZZLE2(2, 1)},
{"zyx", (getter)Vector_swizzle_get, (setter)Vector_swizzle_set, nullptr, SWIZZLE3(2, 1, 0)},
{"zyxx", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(2, 1, 0, 0)},
{"zyxy", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(2, 1, 0, 1)},
{"zyxz", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(2, 1, 0, 2)},
{"zyxw",
(getter)Vector_swizzle_get,
(setter)Vector_swizzle_set,
nullptr,
SWIZZLE4(2, 1, 0, 3)},
{"zyy", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE3(2, 1, 1)},
{"zyyx", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(2, 1, 1, 0)},
{"zyyy", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(2, 1, 1, 1)},
{"zyyz", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(2, 1, 1, 2)},
{"zyyw", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(2, 1, 1, 3)},
{"zyz", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE3(2, 1, 2)},
{"zyzx", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(2, 1, 2, 0)},
{"zyzy", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(2, 1, 2, 1)},
{"zyzz", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(2, 1, 2, 2)},
{"zyzw", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(2, 1, 2, 3)},
{"zyw", (getter)Vector_swizzle_get, (setter)Vector_swizzle_set, nullptr, SWIZZLE3(2, 1, 3)},
{"zywx",
(getter)Vector_swizzle_get,
(setter)Vector_swizzle_set,
nullptr,
SWIZZLE4(2, 1, 3, 0)},
{"zywy", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(2, 1, 3, 1)},
{"zywz", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(2, 1, 3, 2)},
{"zyww", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(2, 1, 3, 3)},
{"zz", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE2(2, 2)},
{"zzx", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE3(2, 2, 0)},
{"zzxx", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(2, 2, 0, 0)},
{"zzxy", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(2, 2, 0, 1)},
{"zzxz", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(2, 2, 0, 2)},
{"zzxw", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(2, 2, 0, 3)},
{"zzy", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE3(2, 2, 1)},
{"zzyx", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(2, 2, 1, 0)},
{"zzyy", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(2, 2, 1, 1)},
{"zzyz", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(2, 2, 1, 2)},
{"zzyw", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(2, 2, 1, 3)},
{"zzz", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE3(2, 2, 2)},
{"zzzx", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(2, 2, 2, 0)},
{"zzzy", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(2, 2, 2, 1)},
{"zzzz", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(2, 2, 2, 2)},
{"zzzw", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(2, 2, 2, 3)},
{"zzw", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE3(2, 2, 3)},
{"zzwx", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(2, 2, 3, 0)},
{"zzwy", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(2, 2, 3, 1)},
{"zzwz", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(2, 2, 3, 2)},
{"zzww", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(2, 2, 3, 3)},
{"zw", (getter)Vector_swizzle_get, (setter)Vector_swizzle_set, nullptr, SWIZZLE2(2, 3)},
{"zwx", (getter)Vector_swizzle_get, (setter)Vector_swizzle_set, nullptr, SWIZZLE3(2, 3, 0)},
{"zwxx", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(2, 3, 0, 0)},
{"zwxy",
(getter)Vector_swizzle_get,
(setter)Vector_swizzle_set,
nullptr,
SWIZZLE4(2, 3, 0, 1)},
{"zwxz", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(2, 3, 0, 2)},
{"zwxw", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(2, 3, 0, 3)},
{"zwy", (getter)Vector_swizzle_get, (setter)Vector_swizzle_set, nullptr, SWIZZLE3(2, 3, 1)},
{"zwyx",
(getter)Vector_swizzle_get,
(setter)Vector_swizzle_set,
nullptr,
SWIZZLE4(2, 3, 1, 0)},
{"zwyy", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(2, 3, 1, 1)},
{"zwyz", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(2, 3, 1, 2)},
{"zwyw", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(2, 3, 1, 3)},
{"zwz", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE3(2, 3, 2)},
{"zwzx", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(2, 3, 2, 0)},
{"zwzy", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(2, 3, 2, 1)},
{"zwzz", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(2, 3, 2, 2)},
{"zwzw", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(2, 3, 2, 3)},
{"zww", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE3(2, 3, 3)},
{"zwwx", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(2, 3, 3, 0)},
{"zwwy", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(2, 3, 3, 1)},
{"zwwz", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(2, 3, 3, 2)},
{"zwww", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(2, 3, 3, 3)},
{"wx", (getter)Vector_swizzle_get, (setter)Vector_swizzle_set, nullptr, SWIZZLE2(3, 0)},
{"wxx", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE3(3, 0, 0)},
{"wxxx", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(3, 0, 0, 0)},
{"wxxy", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(3, 0, 0, 1)},
{"wxxz", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(3, 0, 0, 2)},
{"wxxw", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(3, 0, 0, 3)},
{"wxy", (getter)Vector_swizzle_get, (setter)Vector_swizzle_set, nullptr, SWIZZLE3(3, 0, 1)},
{"wxyx", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(3, 0, 1, 0)},
{"wxyy", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(3, 0, 1, 1)},
{"wxyz",
(getter)Vector_swizzle_get,
(setter)Vector_swizzle_set,
nullptr,
SWIZZLE4(3, 0, 1, 2)},
{"wxyw", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(3, 0, 1, 3)},
{"wxz", (getter)Vector_swizzle_get, (setter)Vector_swizzle_set, nullptr, SWIZZLE3(3, 0, 2)},
{"wxzx", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(3, 0, 2, 0)},
{"wxzy",
(getter)Vector_swizzle_get,
(setter)Vector_swizzle_set,
nullptr,
SWIZZLE4(3, 0, 2, 1)},
{"wxzz", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(3, 0, 2, 2)},
{"wxzw", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(3, 0, 2, 3)},
{"wxw", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE3(3, 0, 3)},
{"wxwx", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(3, 0, 3, 0)},
{"wxwy", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(3, 0, 3, 1)},
{"wxwz", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(3, 0, 3, 2)},
{"wxww", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(3, 0, 3, 3)},
{"wy", (getter)Vector_swizzle_get, (setter)Vector_swizzle_set, nullptr, SWIZZLE2(3, 1)},
{"wyx", (getter)Vector_swizzle_get, (setter)Vector_swizzle_set, nullptr, SWIZZLE3(3, 1, 0)},
{"wyxx", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(3, 1, 0, 0)},
{"wyxy", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(3, 1, 0, 1)},
{"wyxz",
(getter)Vector_swizzle_get,
(setter)Vector_swizzle_set,
nullptr,
SWIZZLE4(3, 1, 0, 2)},
{"wyxw", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(3, 1, 0, 3)},
{"wyy", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE3(3, 1, 1)},
{"wyyx", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(3, 1, 1, 0)},
{"wyyy", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(3, 1, 1, 1)},
{"wyyz", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(3, 1, 1, 2)},
{"wyyw", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(3, 1, 1, 3)},
{"wyz", (getter)Vector_swizzle_get, (setter)Vector_swizzle_set, nullptr, SWIZZLE3(3, 1, 2)},
{"wyzx",
(getter)Vector_swizzle_get,
(setter)Vector_swizzle_set,
nullptr,
SWIZZLE4(3, 1, 2, 0)},
{"wyzy", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(3, 1, 2, 1)},
{"wyzz", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(3, 1, 2, 2)},
{"wyzw", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(3, 1, 2, 3)},
{"wyw", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE3(3, 1, 3)},
{"wywx", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(3, 1, 3, 0)},
{"wywy", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(3, 1, 3, 1)},
{"wywz", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(3, 1, 3, 2)},
{"wyww", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(3, 1, 3, 3)},
{"wz", (getter)Vector_swizzle_get, (setter)Vector_swizzle_set, nullptr, SWIZZLE2(3, 2)},
{"wzx", (getter)Vector_swizzle_get, (setter)Vector_swizzle_set, nullptr, SWIZZLE3(3, 2, 0)},
{"wzxx", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(3, 2, 0, 0)},
{"wzxy",
(getter)Vector_swizzle_get,
(setter)Vector_swizzle_set,
nullptr,
SWIZZLE4(3, 2, 0, 1)},
{"wzxz", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(3, 2, 0, 2)},
{"wzxw", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(3, 2, 0, 3)},
{"wzy", (getter)Vector_swizzle_get, (setter)Vector_swizzle_set, nullptr, SWIZZLE3(3, 2, 1)},
{"wzyx",
(getter)Vector_swizzle_get,
(setter)Vector_swizzle_set,
nullptr,
SWIZZLE4(3, 2, 1, 0)},
{"wzyy", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(3, 2, 1, 1)},
{"wzyz", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(3, 2, 1, 2)},
{"wzyw", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(3, 2, 1, 3)},
{"wzz", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE3(3, 2, 2)},
{"wzzx", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(3, 2, 2, 0)},
{"wzzy", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(3, 2, 2, 1)},
{"wzzz", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(3, 2, 2, 2)},
{"wzzw", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(3, 2, 2, 3)},
{"wzw", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE3(3, 2, 3)},
{"wzwx", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(3, 2, 3, 0)},
{"wzwy", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(3, 2, 3, 1)},
{"wzwz", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(3, 2, 3, 2)},
{"wzww", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(3, 2, 3, 3)},
{"ww", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE2(3, 3)},
{"wwx", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE3(3, 3, 0)},
{"wwxx", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(3, 3, 0, 0)},
{"wwxy", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(3, 3, 0, 1)},
{"wwxz", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(3, 3, 0, 2)},
{"wwxw", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(3, 3, 0, 3)},
{"wwy", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE3(3, 3, 1)},
{"wwyx", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(3, 3, 1, 0)},
{"wwyy", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(3, 3, 1, 1)},
{"wwyz", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(3, 3, 1, 2)},
{"wwyw", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(3, 3, 1, 3)},
{"wwz", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE3(3, 3, 2)},
{"wwzx", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(3, 3, 2, 0)},
{"wwzy", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(3, 3, 2, 1)},
{"wwzz", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(3, 3, 2, 2)},
{"wwzw", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(3, 3, 2, 3)},
{"www", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE3(3, 3, 3)},
{"wwwx", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(3, 3, 3, 0)},
{"wwwy", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(3, 3, 3, 1)},
{"wwwz", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(3, 3, 3, 2)},
{"wwww", (getter)Vector_swizzle_get, (setter) nullptr, nullptr, SWIZZLE4(3, 3, 3, 3)},
VECTOR_SWIZZLE2_RO_DEF("xx", 0, 0),
VECTOR_SWIZZLE3_RO_DEF("xxx", 0, 0, 0),
VECTOR_SWIZZLE4_RO_DEF("xxxx", 0, 0, 0, 0),
VECTOR_SWIZZLE4_RO_DEF("xxxy", 0, 0, 0, 1),
VECTOR_SWIZZLE4_RO_DEF("xxxz", 0, 0, 0, 2),
VECTOR_SWIZZLE4_RO_DEF("xxxw", 0, 0, 0, 3),
VECTOR_SWIZZLE3_RO_DEF("xxy", 0, 0, 1),
VECTOR_SWIZZLE4_RO_DEF("xxyx", 0, 0, 1, 0),
VECTOR_SWIZZLE4_RO_DEF("xxyy", 0, 0, 1, 1),
VECTOR_SWIZZLE4_RO_DEF("xxyz", 0, 0, 1, 2),
VECTOR_SWIZZLE4_RO_DEF("xxyw", 0, 0, 1, 3),
VECTOR_SWIZZLE3_RO_DEF("xxz", 0, 0, 2),
VECTOR_SWIZZLE4_RO_DEF("xxzx", 0, 0, 2, 0),
VECTOR_SWIZZLE4_RO_DEF("xxzy", 0, 0, 2, 1),
VECTOR_SWIZZLE4_RO_DEF("xxzz", 0, 0, 2, 2),
VECTOR_SWIZZLE4_RO_DEF("xxzw", 0, 0, 2, 3),
VECTOR_SWIZZLE3_RO_DEF("xxw", 0, 0, 3),
VECTOR_SWIZZLE4_RO_DEF("xxwx", 0, 0, 3, 0),
VECTOR_SWIZZLE4_RO_DEF("xxwy", 0, 0, 3, 1),
VECTOR_SWIZZLE4_RO_DEF("xxwz", 0, 0, 3, 2),
VECTOR_SWIZZLE4_RO_DEF("xxww", 0, 0, 3, 3),
VECTOR_SWIZZLE2_RW_DEF("xy", 0, 1),
VECTOR_SWIZZLE3_RO_DEF("xyx", 0, 1, 0),
VECTOR_SWIZZLE4_RO_DEF("xyxx", 0, 1, 0, 0),
VECTOR_SWIZZLE4_RO_DEF("xyxy", 0, 1, 0, 1),
VECTOR_SWIZZLE4_RO_DEF("xyxz", 0, 1, 0, 2),
VECTOR_SWIZZLE4_RO_DEF("xyxw", 0, 1, 0, 3),
VECTOR_SWIZZLE3_RO_DEF("xyy", 0, 1, 1),
VECTOR_SWIZZLE4_RO_DEF("xyyx", 0, 1, 1, 0),
VECTOR_SWIZZLE4_RO_DEF("xyyy", 0, 1, 1, 1),
VECTOR_SWIZZLE4_RO_DEF("xyyz", 0, 1, 1, 2),
VECTOR_SWIZZLE4_RO_DEF("xyyw", 0, 1, 1, 3),
VECTOR_SWIZZLE3_RW_DEF("xyz", 0, 1, 2),
VECTOR_SWIZZLE4_RO_DEF("xyzx", 0, 1, 2, 0),
VECTOR_SWIZZLE4_RO_DEF("xyzy", 0, 1, 2, 1),
VECTOR_SWIZZLE4_RO_DEF("xyzz", 0, 1, 2, 2),
VECTOR_SWIZZLE4_RW_DEF("xyzw", 0, 1, 2, 3),
VECTOR_SWIZZLE3_RW_DEF("xyw", 0, 1, 3),
VECTOR_SWIZZLE4_RO_DEF("xywx", 0, 1, 3, 0),
VECTOR_SWIZZLE4_RO_DEF("xywy", 0, 1, 3, 1),
VECTOR_SWIZZLE4_RW_DEF("xywz", 0, 1, 3, 2),
VECTOR_SWIZZLE4_RO_DEF("xyww", 0, 1, 3, 3),
VECTOR_SWIZZLE2_RW_DEF("xz", 0, 2),
VECTOR_SWIZZLE3_RO_DEF("xzx", 0, 2, 0),
VECTOR_SWIZZLE4_RO_DEF("xzxx", 0, 2, 0, 0),
VECTOR_SWIZZLE4_RO_DEF("xzxy", 0, 2, 0, 1),
VECTOR_SWIZZLE4_RO_DEF("xzxz", 0, 2, 0, 2),
VECTOR_SWIZZLE4_RO_DEF("xzxw", 0, 2, 0, 3),
VECTOR_SWIZZLE3_RW_DEF("xzy", 0, 2, 1),
VECTOR_SWIZZLE4_RO_DEF("xzyx", 0, 2, 1, 0),
VECTOR_SWIZZLE4_RO_DEF("xzyy", 0, 2, 1, 1),
VECTOR_SWIZZLE4_RO_DEF("xzyz", 0, 2, 1, 2),
VECTOR_SWIZZLE4_RW_DEF("xzyw", 0, 2, 1, 3),
VECTOR_SWIZZLE3_RO_DEF("xzz", 0, 2, 2),
VECTOR_SWIZZLE4_RO_DEF("xzzx", 0, 2, 2, 0),
VECTOR_SWIZZLE4_RO_DEF("xzzy", 0, 2, 2, 1),
VECTOR_SWIZZLE4_RO_DEF("xzzz", 0, 2, 2, 2),
VECTOR_SWIZZLE4_RO_DEF("xzzw", 0, 2, 2, 3),
VECTOR_SWIZZLE3_RW_DEF("xzw", 0, 2, 3),
VECTOR_SWIZZLE4_RO_DEF("xzwx", 0, 2, 3, 0),
VECTOR_SWIZZLE4_RW_DEF("xzwy", 0, 2, 3, 1),
VECTOR_SWIZZLE4_RO_DEF("xzwz", 0, 2, 3, 2),
VECTOR_SWIZZLE4_RO_DEF("xzww", 0, 2, 3, 3),
VECTOR_SWIZZLE2_RW_DEF("xw", 0, 3),
VECTOR_SWIZZLE3_RO_DEF("xwx", 0, 3, 0),
VECTOR_SWIZZLE4_RO_DEF("xwxx", 0, 3, 0, 0),
VECTOR_SWIZZLE4_RO_DEF("xwxy", 0, 3, 0, 1),
VECTOR_SWIZZLE4_RO_DEF("xwxz", 0, 3, 0, 2),
VECTOR_SWIZZLE4_RO_DEF("xwxw", 0, 3, 0, 3),
VECTOR_SWIZZLE3_RW_DEF("xwy", 0, 3, 1),
VECTOR_SWIZZLE4_RO_DEF("xwyx", 0, 3, 1, 0),
VECTOR_SWIZZLE4_RO_DEF("xwyy", 0, 3, 1, 1),
VECTOR_SWIZZLE4_RW_DEF("xwyz", 0, 3, 1, 2),
VECTOR_SWIZZLE4_RO_DEF("xwyw", 0, 3, 1, 3),
VECTOR_SWIZZLE3_RW_DEF("xwz", 0, 3, 2),
VECTOR_SWIZZLE4_RO_DEF("xwzx", 0, 3, 2, 0),
VECTOR_SWIZZLE4_RW_DEF("xwzy", 0, 3, 2, 1),
VECTOR_SWIZZLE4_RO_DEF("xwzz", 0, 3, 2, 2),
VECTOR_SWIZZLE4_RO_DEF("xwzw", 0, 3, 2, 3),
VECTOR_SWIZZLE3_RO_DEF("xww", 0, 3, 3),
VECTOR_SWIZZLE4_RO_DEF("xwwx", 0, 3, 3, 0),
VECTOR_SWIZZLE4_RO_DEF("xwwy", 0, 3, 3, 1),
VECTOR_SWIZZLE4_RO_DEF("xwwz", 0, 3, 3, 2),
VECTOR_SWIZZLE4_RO_DEF("xwww", 0, 3, 3, 3),
VECTOR_SWIZZLE2_RW_DEF("yx", 1, 0),
VECTOR_SWIZZLE3_RO_DEF("yxx", 1, 0, 0),
VECTOR_SWIZZLE4_RO_DEF("yxxx", 1, 0, 0, 0),
VECTOR_SWIZZLE4_RO_DEF("yxxy", 1, 0, 0, 1),
VECTOR_SWIZZLE4_RO_DEF("yxxz", 1, 0, 0, 2),
VECTOR_SWIZZLE4_RO_DEF("yxxw", 1, 0, 0, 3),
VECTOR_SWIZZLE3_RO_DEF("yxy", 1, 0, 1),
VECTOR_SWIZZLE4_RO_DEF("yxyx", 1, 0, 1, 0),
VECTOR_SWIZZLE4_RO_DEF("yxyy", 1, 0, 1, 1),
VECTOR_SWIZZLE4_RO_DEF("yxyz", 1, 0, 1, 2),
VECTOR_SWIZZLE4_RO_DEF("yxyw", 1, 0, 1, 3),
VECTOR_SWIZZLE3_RW_DEF("yxz", 1, 0, 2),
VECTOR_SWIZZLE4_RO_DEF("yxzx", 1, 0, 2, 0),
VECTOR_SWIZZLE4_RO_DEF("yxzy", 1, 0, 2, 1),
VECTOR_SWIZZLE4_RO_DEF("yxzz", 1, 0, 2, 2),
VECTOR_SWIZZLE4_RW_DEF("yxzw", 1, 0, 2, 3),
VECTOR_SWIZZLE3_RW_DEF("yxw", 1, 0, 3),
VECTOR_SWIZZLE4_RO_DEF("yxwx", 1, 0, 3, 0),
VECTOR_SWIZZLE4_RO_DEF("yxwy", 1, 0, 3, 1),
VECTOR_SWIZZLE4_RW_DEF("yxwz", 1, 0, 3, 2),
VECTOR_SWIZZLE4_RO_DEF("yxww", 1, 0, 3, 3),
VECTOR_SWIZZLE2_RO_DEF("yy", 1, 1),
VECTOR_SWIZZLE3_RO_DEF("yyx", 1, 1, 0),
VECTOR_SWIZZLE4_RO_DEF("yyxx", 1, 1, 0, 0),
VECTOR_SWIZZLE4_RO_DEF("yyxy", 1, 1, 0, 1),
VECTOR_SWIZZLE4_RO_DEF("yyxz", 1, 1, 0, 2),
VECTOR_SWIZZLE4_RO_DEF("yyxw", 1, 1, 0, 3),
VECTOR_SWIZZLE3_RO_DEF("yyy", 1, 1, 1),
VECTOR_SWIZZLE4_RO_DEF("yyyx", 1, 1, 1, 0),
VECTOR_SWIZZLE4_RO_DEF("yyyy", 1, 1, 1, 1),
VECTOR_SWIZZLE4_RO_DEF("yyyz", 1, 1, 1, 2),
VECTOR_SWIZZLE4_RO_DEF("yyyw", 1, 1, 1, 3),
VECTOR_SWIZZLE3_RO_DEF("yyz", 1, 1, 2),
VECTOR_SWIZZLE4_RO_DEF("yyzx", 1, 1, 2, 0),
VECTOR_SWIZZLE4_RO_DEF("yyzy", 1, 1, 2, 1),
VECTOR_SWIZZLE4_RO_DEF("yyzz", 1, 1, 2, 2),
VECTOR_SWIZZLE4_RO_DEF("yyzw", 1, 1, 2, 3),
VECTOR_SWIZZLE3_RO_DEF("yyw", 1, 1, 3),
VECTOR_SWIZZLE4_RO_DEF("yywx", 1, 1, 3, 0),
VECTOR_SWIZZLE4_RO_DEF("yywy", 1, 1, 3, 1),
VECTOR_SWIZZLE4_RO_DEF("yywz", 1, 1, 3, 2),
VECTOR_SWIZZLE4_RO_DEF("yyww", 1, 1, 3, 3),
VECTOR_SWIZZLE2_RW_DEF("yz", 1, 2),
VECTOR_SWIZZLE3_RW_DEF("yzx", 1, 2, 0),
VECTOR_SWIZZLE4_RO_DEF("yzxx", 1, 2, 0, 0),
VECTOR_SWIZZLE4_RO_DEF("yzxy", 1, 2, 0, 1),
VECTOR_SWIZZLE4_RO_DEF("yzxz", 1, 2, 0, 2),
VECTOR_SWIZZLE4_RW_DEF("yzxw", 1, 2, 0, 3),
VECTOR_SWIZZLE3_RO_DEF("yzy", 1, 2, 1),
VECTOR_SWIZZLE4_RO_DEF("yzyx", 1, 2, 1, 0),
VECTOR_SWIZZLE4_RO_DEF("yzyy", 1, 2, 1, 1),
VECTOR_SWIZZLE4_RO_DEF("yzyz", 1, 2, 1, 2),
VECTOR_SWIZZLE4_RO_DEF("yzyw", 1, 2, 1, 3),
VECTOR_SWIZZLE3_RO_DEF("yzz", 1, 2, 2),
VECTOR_SWIZZLE4_RO_DEF("yzzx", 1, 2, 2, 0),
VECTOR_SWIZZLE4_RO_DEF("yzzy", 1, 2, 2, 1),
VECTOR_SWIZZLE4_RO_DEF("yzzz", 1, 2, 2, 2),
VECTOR_SWIZZLE4_RO_DEF("yzzw", 1, 2, 2, 3),
VECTOR_SWIZZLE3_RW_DEF("yzw", 1, 2, 3),
VECTOR_SWIZZLE4_RW_DEF("yzwx", 1, 2, 3, 0),
VECTOR_SWIZZLE4_RO_DEF("yzwy", 1, 2, 3, 1),
VECTOR_SWIZZLE4_RO_DEF("yzwz", 1, 2, 3, 2),
VECTOR_SWIZZLE4_RO_DEF("yzww", 1, 2, 3, 3),
VECTOR_SWIZZLE2_RW_DEF("yw", 1, 3),
VECTOR_SWIZZLE3_RW_DEF("ywx", 1, 3, 0),
VECTOR_SWIZZLE4_RO_DEF("ywxx", 1, 3, 0, 0),
VECTOR_SWIZZLE4_RO_DEF("ywxy", 1, 3, 0, 1),
VECTOR_SWIZZLE4_RW_DEF("ywxz", 1, 3, 0, 2),
VECTOR_SWIZZLE4_RO_DEF("ywxw", 1, 3, 0, 3),
VECTOR_SWIZZLE3_RO_DEF("ywy", 1, 3, 1),
VECTOR_SWIZZLE4_RO_DEF("ywyx", 1, 3, 1, 0),
VECTOR_SWIZZLE4_RO_DEF("ywyy", 1, 3, 1, 1),
VECTOR_SWIZZLE4_RO_DEF("ywyz", 1, 3, 1, 2),
VECTOR_SWIZZLE4_RO_DEF("ywyw", 1, 3, 1, 3),
VECTOR_SWIZZLE3_RW_DEF("ywz", 1, 3, 2),
VECTOR_SWIZZLE4_RW_DEF("ywzx", 1, 3, 2, 0),
VECTOR_SWIZZLE4_RO_DEF("ywzy", 1, 3, 2, 1),
VECTOR_SWIZZLE4_RO_DEF("ywzz", 1, 3, 2, 2),
VECTOR_SWIZZLE4_RO_DEF("ywzw", 1, 3, 2, 3),
VECTOR_SWIZZLE3_RO_DEF("yww", 1, 3, 3),
VECTOR_SWIZZLE4_RO_DEF("ywwx", 1, 3, 3, 0),
VECTOR_SWIZZLE4_RO_DEF("ywwy", 1, 3, 3, 1),
VECTOR_SWIZZLE4_RO_DEF("ywwz", 1, 3, 3, 2),
VECTOR_SWIZZLE4_RO_DEF("ywww", 1, 3, 3, 3),
VECTOR_SWIZZLE2_RW_DEF("zx", 2, 0),
VECTOR_SWIZZLE3_RO_DEF("zxx", 2, 0, 0),
VECTOR_SWIZZLE4_RO_DEF("zxxx", 2, 0, 0, 0),
VECTOR_SWIZZLE4_RO_DEF("zxxy", 2, 0, 0, 1),
VECTOR_SWIZZLE4_RO_DEF("zxxz", 2, 0, 0, 2),
VECTOR_SWIZZLE4_RO_DEF("zxxw", 2, 0, 0, 3),
VECTOR_SWIZZLE3_RW_DEF("zxy", 2, 0, 1),
VECTOR_SWIZZLE4_RO_DEF("zxyx", 2, 0, 1, 0),
VECTOR_SWIZZLE4_RO_DEF("zxyy", 2, 0, 1, 1),
VECTOR_SWIZZLE4_RO_DEF("zxyz", 2, 0, 1, 2),
VECTOR_SWIZZLE4_RW_DEF("zxyw", 2, 0, 1, 3),
VECTOR_SWIZZLE3_RO_DEF("zxz", 2, 0, 2),
VECTOR_SWIZZLE4_RO_DEF("zxzx", 2, 0, 2, 0),
VECTOR_SWIZZLE4_RO_DEF("zxzy", 2, 0, 2, 1),
VECTOR_SWIZZLE4_RO_DEF("zxzz", 2, 0, 2, 2),
VECTOR_SWIZZLE4_RO_DEF("zxzw", 2, 0, 2, 3),
VECTOR_SWIZZLE3_RW_DEF("zxw", 2, 0, 3),
VECTOR_SWIZZLE4_RO_DEF("zxwx", 2, 0, 3, 0),
VECTOR_SWIZZLE4_RW_DEF("zxwy", 2, 0, 3, 1),
VECTOR_SWIZZLE4_RO_DEF("zxwz", 2, 0, 3, 2),
VECTOR_SWIZZLE4_RO_DEF("zxww", 2, 0, 3, 3),
VECTOR_SWIZZLE2_RW_DEF("zy", 2, 1),
VECTOR_SWIZZLE3_RW_DEF("zyx", 2, 1, 0),
VECTOR_SWIZZLE4_RO_DEF("zyxx", 2, 1, 0, 0),
VECTOR_SWIZZLE4_RO_DEF("zyxy", 2, 1, 0, 1),
VECTOR_SWIZZLE4_RO_DEF("zyxz", 2, 1, 0, 2),
VECTOR_SWIZZLE4_RW_DEF("zyxw", 2, 1, 0, 3),
VECTOR_SWIZZLE3_RO_DEF("zyy", 2, 1, 1),
VECTOR_SWIZZLE4_RO_DEF("zyyx", 2, 1, 1, 0),
VECTOR_SWIZZLE4_RO_DEF("zyyy", 2, 1, 1, 1),
VECTOR_SWIZZLE4_RO_DEF("zyyz", 2, 1, 1, 2),
VECTOR_SWIZZLE4_RO_DEF("zyyw", 2, 1, 1, 3),
VECTOR_SWIZZLE3_RO_DEF("zyz", 2, 1, 2),
VECTOR_SWIZZLE4_RO_DEF("zyzx", 2, 1, 2, 0),
VECTOR_SWIZZLE4_RO_DEF("zyzy", 2, 1, 2, 1),
VECTOR_SWIZZLE4_RO_DEF("zyzz", 2, 1, 2, 2),
VECTOR_SWIZZLE4_RO_DEF("zyzw", 2, 1, 2, 3),
VECTOR_SWIZZLE3_RW_DEF("zyw", 2, 1, 3),
VECTOR_SWIZZLE4_RW_DEF("zywx", 2, 1, 3, 0),
VECTOR_SWIZZLE4_RO_DEF("zywy", 2, 1, 3, 1),
VECTOR_SWIZZLE4_RO_DEF("zywz", 2, 1, 3, 2),
VECTOR_SWIZZLE4_RO_DEF("zyww", 2, 1, 3, 3),
VECTOR_SWIZZLE2_RO_DEF("zz", 2, 2),
VECTOR_SWIZZLE3_RO_DEF("zzx", 2, 2, 0),
VECTOR_SWIZZLE4_RO_DEF("zzxx", 2, 2, 0, 0),
VECTOR_SWIZZLE4_RO_DEF("zzxy", 2, 2, 0, 1),
VECTOR_SWIZZLE4_RO_DEF("zzxz", 2, 2, 0, 2),
VECTOR_SWIZZLE4_RO_DEF("zzxw", 2, 2, 0, 3),
VECTOR_SWIZZLE3_RO_DEF("zzy", 2, 2, 1),
VECTOR_SWIZZLE4_RO_DEF("zzyx", 2, 2, 1, 0),
VECTOR_SWIZZLE4_RO_DEF("zzyy", 2, 2, 1, 1),
VECTOR_SWIZZLE4_RO_DEF("zzyz", 2, 2, 1, 2),
VECTOR_SWIZZLE4_RO_DEF("zzyw", 2, 2, 1, 3),
VECTOR_SWIZZLE3_RO_DEF("zzz", 2, 2, 2),
VECTOR_SWIZZLE4_RO_DEF("zzzx", 2, 2, 2, 0),
VECTOR_SWIZZLE4_RO_DEF("zzzy", 2, 2, 2, 1),
VECTOR_SWIZZLE4_RO_DEF("zzzz", 2, 2, 2, 2),
VECTOR_SWIZZLE4_RO_DEF("zzzw", 2, 2, 2, 3),
VECTOR_SWIZZLE3_RO_DEF("zzw", 2, 2, 3),
VECTOR_SWIZZLE4_RO_DEF("zzwx", 2, 2, 3, 0),
VECTOR_SWIZZLE4_RO_DEF("zzwy", 2, 2, 3, 1),
VECTOR_SWIZZLE4_RO_DEF("zzwz", 2, 2, 3, 2),
VECTOR_SWIZZLE4_RO_DEF("zzww", 2, 2, 3, 3),
VECTOR_SWIZZLE2_RW_DEF("zw", 2, 3),
VECTOR_SWIZZLE3_RW_DEF("zwx", 2, 3, 0),
VECTOR_SWIZZLE4_RO_DEF("zwxx", 2, 3, 0, 0),
VECTOR_SWIZZLE4_RW_DEF("zwxy", 2, 3, 0, 1),
VECTOR_SWIZZLE4_RO_DEF("zwxz", 2, 3, 0, 2),
VECTOR_SWIZZLE4_RO_DEF("zwxw", 2, 3, 0, 3),
VECTOR_SWIZZLE3_RW_DEF("zwy", 2, 3, 1),
VECTOR_SWIZZLE4_RW_DEF("zwyx", 2, 3, 1, 0),
VECTOR_SWIZZLE4_RO_DEF("zwyy", 2, 3, 1, 1),
VECTOR_SWIZZLE4_RO_DEF("zwyz", 2, 3, 1, 2),
VECTOR_SWIZZLE4_RO_DEF("zwyw", 2, 3, 1, 3),
VECTOR_SWIZZLE3_RO_DEF("zwz", 2, 3, 2),
VECTOR_SWIZZLE4_RO_DEF("zwzx", 2, 3, 2, 0),
VECTOR_SWIZZLE4_RO_DEF("zwzy", 2, 3, 2, 1),
VECTOR_SWIZZLE4_RO_DEF("zwzz", 2, 3, 2, 2),
VECTOR_SWIZZLE4_RO_DEF("zwzw", 2, 3, 2, 3),
VECTOR_SWIZZLE3_RO_DEF("zww", 2, 3, 3),
VECTOR_SWIZZLE4_RO_DEF("zwwx", 2, 3, 3, 0),
VECTOR_SWIZZLE4_RO_DEF("zwwy", 2, 3, 3, 1),
VECTOR_SWIZZLE4_RO_DEF("zwwz", 2, 3, 3, 2),
VECTOR_SWIZZLE4_RO_DEF("zwww", 2, 3, 3, 3),
VECTOR_SWIZZLE2_RW_DEF("wx", 3, 0),
VECTOR_SWIZZLE3_RO_DEF("wxx", 3, 0, 0),
VECTOR_SWIZZLE4_RO_DEF("wxxx", 3, 0, 0, 0),
VECTOR_SWIZZLE4_RO_DEF("wxxy", 3, 0, 0, 1),
VECTOR_SWIZZLE4_RO_DEF("wxxz", 3, 0, 0, 2),
VECTOR_SWIZZLE4_RO_DEF("wxxw", 3, 0, 0, 3),
VECTOR_SWIZZLE3_RW_DEF("wxy", 3, 0, 1),
VECTOR_SWIZZLE4_RO_DEF("wxyx", 3, 0, 1, 0),
VECTOR_SWIZZLE4_RO_DEF("wxyy", 3, 0, 1, 1),
VECTOR_SWIZZLE4_RW_DEF("wxyz", 3, 0, 1, 2),
VECTOR_SWIZZLE4_RO_DEF("wxyw", 3, 0, 1, 3),
VECTOR_SWIZZLE3_RW_DEF("wxz", 3, 0, 2),
VECTOR_SWIZZLE4_RO_DEF("wxzx", 3, 0, 2, 0),
VECTOR_SWIZZLE4_RW_DEF("wxzy", 3, 0, 2, 1),
VECTOR_SWIZZLE4_RO_DEF("wxzz", 3, 0, 2, 2),
VECTOR_SWIZZLE4_RO_DEF("wxzw", 3, 0, 2, 3),
VECTOR_SWIZZLE3_RO_DEF("wxw", 3, 0, 3),
VECTOR_SWIZZLE4_RO_DEF("wxwx", 3, 0, 3, 0),
VECTOR_SWIZZLE4_RO_DEF("wxwy", 3, 0, 3, 1),
VECTOR_SWIZZLE4_RO_DEF("wxwz", 3, 0, 3, 2),
VECTOR_SWIZZLE4_RO_DEF("wxww", 3, 0, 3, 3),
VECTOR_SWIZZLE2_RW_DEF("wy", 3, 1),
VECTOR_SWIZZLE3_RW_DEF("wyx", 3, 1, 0),
VECTOR_SWIZZLE4_RO_DEF("wyxx", 3, 1, 0, 0),
VECTOR_SWIZZLE4_RO_DEF("wyxy", 3, 1, 0, 1),
VECTOR_SWIZZLE4_RW_DEF("wyxz", 3, 1, 0, 2),
VECTOR_SWIZZLE4_RO_DEF("wyxw", 3, 1, 0, 3),
VECTOR_SWIZZLE3_RO_DEF("wyy", 3, 1, 1),
VECTOR_SWIZZLE4_RO_DEF("wyyx", 3, 1, 1, 0),
VECTOR_SWIZZLE4_RO_DEF("wyyy", 3, 1, 1, 1),
VECTOR_SWIZZLE4_RO_DEF("wyyz", 3, 1, 1, 2),
VECTOR_SWIZZLE4_RO_DEF("wyyw", 3, 1, 1, 3),
VECTOR_SWIZZLE3_RW_DEF("wyz", 3, 1, 2),
VECTOR_SWIZZLE4_RW_DEF("wyzx", 3, 1, 2, 0),
VECTOR_SWIZZLE4_RO_DEF("wyzy", 3, 1, 2, 1),
VECTOR_SWIZZLE4_RO_DEF("wyzz", 3, 1, 2, 2),
VECTOR_SWIZZLE4_RO_DEF("wyzw", 3, 1, 2, 3),
VECTOR_SWIZZLE3_RO_DEF("wyw", 3, 1, 3),
VECTOR_SWIZZLE4_RO_DEF("wywx", 3, 1, 3, 0),
VECTOR_SWIZZLE4_RO_DEF("wywy", 3, 1, 3, 1),
VECTOR_SWIZZLE4_RO_DEF("wywz", 3, 1, 3, 2),
VECTOR_SWIZZLE4_RO_DEF("wyww", 3, 1, 3, 3),
VECTOR_SWIZZLE2_RW_DEF("wz", 3, 2),
VECTOR_SWIZZLE3_RW_DEF("wzx", 3, 2, 0),
VECTOR_SWIZZLE4_RO_DEF("wzxx", 3, 2, 0, 0),
VECTOR_SWIZZLE4_RW_DEF("wzxy", 3, 2, 0, 1),
VECTOR_SWIZZLE4_RO_DEF("wzxz", 3, 2, 0, 2),
VECTOR_SWIZZLE4_RO_DEF("wzxw", 3, 2, 0, 3),
VECTOR_SWIZZLE3_RW_DEF("wzy", 3, 2, 1),
VECTOR_SWIZZLE4_RW_DEF("wzyx", 3, 2, 1, 0),
VECTOR_SWIZZLE4_RO_DEF("wzyy", 3, 2, 1, 1),
VECTOR_SWIZZLE4_RO_DEF("wzyz", 3, 2, 1, 2),
VECTOR_SWIZZLE4_RO_DEF("wzyw", 3, 2, 1, 3),
VECTOR_SWIZZLE3_RO_DEF("wzz", 3, 2, 2),
VECTOR_SWIZZLE4_RO_DEF("wzzx", 3, 2, 2, 0),
VECTOR_SWIZZLE4_RO_DEF("wzzy", 3, 2, 2, 1),
VECTOR_SWIZZLE4_RO_DEF("wzzz", 3, 2, 2, 2),
VECTOR_SWIZZLE4_RO_DEF("wzzw", 3, 2, 2, 3),
VECTOR_SWIZZLE3_RO_DEF("wzw", 3, 2, 3),
VECTOR_SWIZZLE4_RO_DEF("wzwx", 3, 2, 3, 0),
VECTOR_SWIZZLE4_RO_DEF("wzwy", 3, 2, 3, 1),
VECTOR_SWIZZLE4_RO_DEF("wzwz", 3, 2, 3, 2),
VECTOR_SWIZZLE4_RO_DEF("wzww", 3, 2, 3, 3),
VECTOR_SWIZZLE2_RO_DEF("ww", 3, 3),
VECTOR_SWIZZLE3_RO_DEF("wwx", 3, 3, 0),
VECTOR_SWIZZLE4_RO_DEF("wwxx", 3, 3, 0, 0),
VECTOR_SWIZZLE4_RO_DEF("wwxy", 3, 3, 0, 1),
VECTOR_SWIZZLE4_RO_DEF("wwxz", 3, 3, 0, 2),
VECTOR_SWIZZLE4_RO_DEF("wwxw", 3, 3, 0, 3),
VECTOR_SWIZZLE3_RO_DEF("wwy", 3, 3, 1),
VECTOR_SWIZZLE4_RO_DEF("wwyx", 3, 3, 1, 0),
VECTOR_SWIZZLE4_RO_DEF("wwyy", 3, 3, 1, 1),
VECTOR_SWIZZLE4_RO_DEF("wwyz", 3, 3, 1, 2),
VECTOR_SWIZZLE4_RO_DEF("wwyw", 3, 3, 1, 3),
VECTOR_SWIZZLE3_RO_DEF("wwz", 3, 3, 2),
VECTOR_SWIZZLE4_RO_DEF("wwzx", 3, 3, 2, 0),
VECTOR_SWIZZLE4_RO_DEF("wwzy", 3, 3, 2, 1),
VECTOR_SWIZZLE4_RO_DEF("wwzz", 3, 3, 2, 2),
VECTOR_SWIZZLE4_RO_DEF("wwzw", 3, 3, 2, 3),
VECTOR_SWIZZLE3_RO_DEF("www", 3, 3, 3),
VECTOR_SWIZZLE4_RO_DEF("wwwx", 3, 3, 3, 0),
VECTOR_SWIZZLE4_RO_DEF("wwwy", 3, 3, 3, 1),
VECTOR_SWIZZLE4_RO_DEF("wwwz", 3, 3, 3, 2),
VECTOR_SWIZZLE4_RO_DEF("wwww", 3, 3, 3, 3),
#undef AXIS_FROM_CHAR
#undef SWIZZLE1
@@ -3341,6 +3304,13 @@ static PyGetSetDef Vector_getseters[] = {
#undef _SWIZZLE3
#undef _SWIZZLE4
#undef VECTOR_SWIZZLE2_RW_DEF
#undef VECTOR_SWIZZLE2_RO_DEF
#undef VECTOR_SWIZZLE3_RW_DEF
#undef VECTOR_SWIZZLE3_RO_DEF
#undef VECTOR_SWIZZLE4_RW_DEF
#undef VECTOR_SWIZZLE4_RO_DEF
{nullptr, nullptr, nullptr, nullptr, nullptr} /* Sentinel */
};