io.github.aecsocket.klam.VecB.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of klam Show documentation
Show all versions of klam Show documentation
Linear algebra library for 2D/3D applications
@file:Suppress("NOTHING_TO_INLINE", "MemberVisibilityCanBePrivate", "unused", "SpellCheckingInspection")
package io.github.aecsocket.klam
private const val TO_STRING_FORMAT = "%s"
private inline fun typeArrayOf(vararg elements: Boolean) = booleanArrayOf(*elements)
data class BVec2(@JvmField var x: Boolean, @JvmField var y: Boolean) {
companion object {
val False get() = BVec2(false, false)
val True get() = BVec2(true, true )
val X get() = BVec2(true, false)
val Y get() = BVec2(false, true )
}
constructor(v: BVec2) : this(v.x, v.y)
constructor(s: Boolean) : this(s, s)
fun from(x: Boolean, y: Boolean) { this.x = x; this.y = y }
fun from(v: BVec2) = from(v.x, v.y)
operator fun get(idx: Index) = when (idx) {
0 -> x
1 -> y
else -> throw IndexOutOfBoundsException(idx)
}
operator fun set(idx: Index, s: Boolean) = when (idx) {
0 -> x = s
1 -> y = s
else -> throw IndexOutOfBoundsException(idx)
}
fun compareTo(v: BVec2) = IVec2(x.compareTo(v.x), y.compareTo(v.y))
fun equalTo(v: BVec2) = x.compareTo(v.x) == 0 && y.compareTo(v.y) == 0
fun toArray() = typeArrayOf(x, y)
fun asString(fmt: String) = "($fmt, $fmt)".format(x, y)
override fun toString() = asString(TO_STRING_FORMAT)
inline fun map(block: (Boolean) -> Boolean) = BVec2(block(x), block(y))
inline operator fun not() = BVec2(!x, !y)
inline infix fun eq(v: BVec2) = BVec2(x.compareTo(v.x) == 0, y.compareTo(v.y) == 0)
inline infix fun ne(v: BVec2) = BVec2(x.compareTo(v.x) != 0, y.compareTo(v.y) != 0)
}
data class BVec3(@JvmField var x: Boolean, @JvmField var y: Boolean, @JvmField var z: Boolean) {
companion object {
val False get() = BVec3(false, false, false)
val True get() = BVec3(true, true, true )
val X get() = BVec3(true, false, false)
val Y get() = BVec3(false, true, false)
val Z get() = BVec3(false, false, true )
}
constructor(v: BVec3) : this(v.x, v.y, v.z)
constructor(v: BVec2, z: Boolean) : this(v.x, v.y, z)
constructor(s: Boolean) : this(s, s, s)
fun from(x: Boolean, y: Boolean, z: Boolean) { this.x = x; this.y = y; this.z = z }
fun from(v: BVec3) = from(v.x, v.y, v.z)
operator fun get(idx: Index) = when (idx) {
0 -> x
1 -> y
2 -> z
else -> throw IndexOutOfBoundsException(idx)
}
operator fun set(idx: Index, s: Boolean) = when (idx) {
0 -> x = s
1 -> y = s
2 -> z = s
else -> throw IndexOutOfBoundsException(idx)
}
fun compareTo(v: BVec3) = IVec3(x.compareTo(v.x), y.compareTo(v.y), z.compareTo(v.z))
fun equalTo(v: BVec3) = x.compareTo(v.x) == 0 && y.compareTo(v.y) == 0 && z.compareTo(v.z) == 0
fun toArray() = typeArrayOf(x, y, z)
fun asString(fmt: String) = "($fmt, $fmt, $fmt)".format(x, y, z)
override fun toString() = asString(TO_STRING_FORMAT)
inline fun map(block: (Boolean) -> Boolean) = BVec3(block(x), block(y), block(z))
inline operator fun not() = BVec3(!x, !y, !z)
inline infix fun eq(v: BVec3) = BVec3(x.compareTo(v.x) == 0, y.compareTo(v.y) == 0, z.compareTo(v.z) == 0)
inline infix fun ne(v: BVec3) = BVec3(x.compareTo(v.x) != 0, y.compareTo(v.y) != 0, z.compareTo(v.z) != 0)
}
data class BVec4(@JvmField var x: Boolean, @JvmField var y: Boolean, @JvmField var z: Boolean, @JvmField var w: Boolean) {
companion object {
val False get() = BVec4(false, false, false, false)
val True get() = BVec4(true, true, true, true )
val X get() = BVec4(true, false, false, false)
val Y get() = BVec4(false, true, false, false)
val Z get() = BVec4(false, false, true, false)
val W get() = BVec4(false, false, false, true )
}
constructor(v: BVec4) : this(v.x, v.y, v.z, v.w)
constructor(v: BVec3, w: Boolean) : this(v.x, v.y, v.z, w)
constructor(v: BVec2, z: Boolean, w: Boolean) : this(v.x, v.y, z, w)
constructor(s: Boolean) : this(s, s, s, s)
fun from(x: Boolean, y: Boolean, z: Boolean, w: Boolean) { this.x = x; this.y = y; this.z = z; this.w = w }
fun from(v: BVec4) = from(v.x, v.y, v.z, v.w)
operator fun get(idx: Index) = when (idx) {
0 -> x
1 -> y
2 -> z
3 -> w
else -> throw IndexOutOfBoundsException(idx)
}
operator fun set(idx: Index, s: Boolean) = when (idx) {
0 -> x = s
1 -> y = s
2 -> z = s
3 -> w = s
else -> throw IndexOutOfBoundsException(idx)
}
fun compareTo(v: BVec4) = IVec4(x.compareTo(v.x), y.compareTo(v.y), z.compareTo(v.z), w.compareTo(v.w))
fun equalTo(v: BVec4) = x.compareTo(v.x) == 0 && y.compareTo(v.y) == 0 && z.compareTo(v.z) == 0 && w.compareTo(v.w) == 0
fun toArray() = typeArrayOf(x, y, z, w)
fun asString(fmt: String) = "($fmt, $fmt, $fmt, $fmt)".format(x, y, z, w)
override fun toString() = asString(TO_STRING_FORMAT)
inline fun map(block: (Boolean) -> Boolean) = BVec4(block(x), block(y), block(z), block(w))
inline operator fun not() = BVec4(!x, !y, !z, !w)
inline infix fun eq(v: BVec4) = BVec4(x.compareTo(v.x) == 0, y.compareTo(v.y) == 0, z.compareTo(v.z) == 0, w.compareTo(v.w) == 0)
inline infix fun ne(v: BVec4) = BVec4(x.compareTo(v.x) != 0, y.compareTo(v.y) != 0, z.compareTo(v.z) != 0, w.compareTo(v.w) != 0)
}
//region Alternate accessors
inline var BVec2.r get() = x; set(value) { x = value }
inline var BVec2.g get() = y; set(value) { y = value }
inline var BVec2.s get() = x; set(value) { x = value }
inline var BVec2.t get() = y; set(value) { y = value}
inline var BVec3.r get() = x; set(value) { x = value }
inline var BVec3.g get() = y; set(value) { y = value }
inline var BVec3.b get() = z; set(value) { z = value }
inline var BVec3.s get() = x; set(value) { x = value}
inline var BVec3.t get() = y; set(value) { y = value }
inline var BVec3.p get() = z; set(value) { z = value }
inline var BVec4.r get() = x; set(value) { x = value }
inline var BVec4.g get() = y; set(value) { y = value }
inline var BVec4.b get() = z; set(value) { z = value }
inline var BVec4.a get() = w; set(value) { w = value }
inline var BVec4.s get() = x; set(value) { x = value }
inline var BVec4.t get() = y; set(value) { y = value }
inline var BVec4.p get() = z; set(value) { z = value }
inline var BVec4.q get() = w; set(value) { w = value }
//endregion
//region Swizzling Vec2
inline val BVec2.xx get() = BVec2(x, x)
inline val BVec2.xy get() = BVec2(x, y)
inline val BVec2.yx get() = BVec2(y, x)
inline val BVec2.yy get() = BVec2(y, y)
inline val BVec2.rr get() = BVec2(r, r)
inline val BVec2.rg get() = BVec2(r, g)
inline val BVec2.gr get() = BVec2(g, r)
inline val BVec2.gg get() = BVec2(g, g)
inline val BVec2.ss get() = BVec2(s, s)
inline val BVec2.st get() = BVec2(s, t)
inline val BVec2.ts get() = BVec2(t, s)
inline val BVec2.tt get() = BVec2(t, t)
inline val BVec2.xxx get() = BVec3(x, x, x)
inline val BVec2.xxy get() = BVec3(x, x, y)
inline val BVec2.xyx get() = BVec3(x, y, x)
inline val BVec2.xyy get() = BVec3(x, y, y)
inline val BVec2.yxx get() = BVec3(y, x, x)
inline val BVec2.yxy get() = BVec3(y, x, y)
inline val BVec2.yyx get() = BVec3(y, y, x)
inline val BVec2.yyy get() = BVec3(y, y, y)
inline val BVec2.rrr get() = BVec3(r, r, r)
inline val BVec2.rrg get() = BVec3(r, r, g)
inline val BVec2.rgr get() = BVec3(r, g, r)
inline val BVec2.rgg get() = BVec3(r, g, g)
inline val BVec2.grr get() = BVec3(g, r, r)
inline val BVec2.grg get() = BVec3(g, r, g)
inline val BVec2.ggr get() = BVec3(g, g, r)
inline val BVec2.ggg get() = BVec3(g, g, g)
inline val BVec2.sss get() = BVec3(s, s, s)
inline val BVec2.sst get() = BVec3(s, s, t)
inline val BVec2.sts get() = BVec3(s, t, s)
inline val BVec2.stt get() = BVec3(s, t, t)
inline val BVec2.tss get() = BVec3(t, s, s)
inline val BVec2.tst get() = BVec3(t, s, t)
inline val BVec2.tts get() = BVec3(t, t, s)
inline val BVec2.ttt get() = BVec3(t, t, t)
inline val BVec2.xxxx get() = BVec4(x, x, x, x)
inline val BVec2.xxxy get() = BVec4(x, x, x, y)
inline val BVec2.xxyx get() = BVec4(x, x, y, x)
inline val BVec2.xxyy get() = BVec4(x, x, y, y)
inline val BVec2.xyxx get() = BVec4(x, y, x, x)
inline val BVec2.xyxy get() = BVec4(x, y, x, y)
inline val BVec2.xyyx get() = BVec4(x, y, y, x)
inline val BVec2.xyyy get() = BVec4(x, y, y, y)
inline val BVec2.yxxx get() = BVec4(y, x, x, x)
inline val BVec2.yxxy get() = BVec4(y, x, x, y)
inline val BVec2.yxyx get() = BVec4(y, x, y, x)
inline val BVec2.yxyy get() = BVec4(y, x, y, y)
inline val BVec2.yyxx get() = BVec4(y, y, x, x)
inline val BVec2.yyxy get() = BVec4(y, y, x, y)
inline val BVec2.yyyx get() = BVec4(y, y, y, x)
inline val BVec2.yyyy get() = BVec4(y, y, y, y)
inline val BVec2.rrrr get() = BVec4(r, r, r, r)
inline val BVec2.rrrg get() = BVec4(r, r, r, g)
inline val BVec2.rrgr get() = BVec4(r, r, g, r)
inline val BVec2.rrgg get() = BVec4(r, r, g, g)
inline val BVec2.rgrr get() = BVec4(r, g, r, r)
inline val BVec2.rgrg get() = BVec4(r, g, r, g)
inline val BVec2.rggr get() = BVec4(r, g, g, r)
inline val BVec2.rggg get() = BVec4(r, g, g, g)
inline val BVec2.grrr get() = BVec4(g, r, r, r)
inline val BVec2.grrg get() = BVec4(g, r, r, g)
inline val BVec2.grgr get() = BVec4(g, r, g, r)
inline val BVec2.grgg get() = BVec4(g, r, g, g)
inline val BVec2.ggrr get() = BVec4(g, g, r, r)
inline val BVec2.ggrg get() = BVec4(g, g, r, g)
inline val BVec2.gggr get() = BVec4(g, g, g, r)
inline val BVec2.gggg get() = BVec4(g, g, g, g)
inline val BVec2.ssss get() = BVec4(s, s, s, s)
inline val BVec2.ssst get() = BVec4(s, s, s, t)
inline val BVec2.ssts get() = BVec4(s, s, t, s)
inline val BVec2.sstt get() = BVec4(s, s, t, t)
inline val BVec2.stss get() = BVec4(s, t, s, s)
inline val BVec2.stst get() = BVec4(s, t, s, t)
inline val BVec2.stts get() = BVec4(s, t, t, s)
inline val BVec2.sttt get() = BVec4(s, t, t, t)
inline val BVec2.tsss get() = BVec4(t, s, s, s)
inline val BVec2.tsst get() = BVec4(t, s, s, t)
inline val BVec2.tsts get() = BVec4(t, s, t, s)
inline val BVec2.tstt get() = BVec4(t, s, t, t)
inline val BVec2.ttss get() = BVec4(t, t, s, s)
inline val BVec2.ttst get() = BVec4(t, t, s, t)
inline val BVec2.ttts get() = BVec4(t, t, t, s)
inline val BVec2.tttt get() = BVec4(t, t, t, t)
//endregion
//region Swizzling Vec3
inline val BVec3.xx get() = BVec2(x, x)
inline val BVec3.xy get() = BVec2(x, y)
inline val BVec3.xz get() = BVec2(x, z)
inline val BVec3.yx get() = BVec2(y, x)
inline val BVec3.yy get() = BVec2(y, y)
inline val BVec3.yz get() = BVec2(y, z)
inline val BVec3.zx get() = BVec2(z, x)
inline val BVec3.zy get() = BVec2(z, y)
inline val BVec3.zz get() = BVec2(z, z)
inline val BVec3.rr get() = BVec2(r, r)
inline val BVec3.rg get() = BVec2(r, g)
inline val BVec3.rb get() = BVec2(r, b)
inline val BVec3.gr get() = BVec2(g, r)
inline val BVec3.gg get() = BVec2(g, g)
inline val BVec3.gb get() = BVec2(g, b)
inline val BVec3.br get() = BVec2(b, r)
inline val BVec3.bg get() = BVec2(b, g)
inline val BVec3.bb get() = BVec2(b, b)
inline val BVec3.ss get() = BVec2(s, s)
inline val BVec3.st get() = BVec2(s, t)
inline val BVec3.sp get() = BVec2(s, p)
inline val BVec3.ts get() = BVec2(t, s)
inline val BVec3.tt get() = BVec2(t, t)
inline val BVec3.tp get() = BVec2(t, p)
inline val BVec3.ps get() = BVec2(p, s)
inline val BVec3.pt get() = BVec2(p, t)
inline val BVec3.pp get() = BVec2(p, p)
inline val BVec3.xxx get() = BVec3(x, x, x)
inline val BVec3.xxy get() = BVec3(x, x, y)
inline val BVec3.xxz get() = BVec3(x, x, z)
inline val BVec3.xyx get() = BVec3(x, y, x)
inline val BVec3.xyy get() = BVec3(x, y, y)
inline val BVec3.xyz get() = BVec3(x, y, z)
inline val BVec3.xzx get() = BVec3(x, z, x)
inline val BVec3.xzy get() = BVec3(x, z, y)
inline val BVec3.xzz get() = BVec3(x, z, z)
inline val BVec3.yxx get() = BVec3(y, x, x)
inline val BVec3.yxy get() = BVec3(y, x, y)
inline val BVec3.yxz get() = BVec3(y, x, z)
inline val BVec3.yyx get() = BVec3(y, y, x)
inline val BVec3.yyy get() = BVec3(y, y, y)
inline val BVec3.yyz get() = BVec3(y, y, z)
inline val BVec3.yzx get() = BVec3(y, z, x)
inline val BVec3.yzy get() = BVec3(y, z, y)
inline val BVec3.yzz get() = BVec3(y, z, z)
inline val BVec3.zxx get() = BVec3(z, x, x)
inline val BVec3.zxy get() = BVec3(z, x, y)
inline val BVec3.zxz get() = BVec3(z, x, z)
inline val BVec3.zyx get() = BVec3(z, y, x)
inline val BVec3.zyy get() = BVec3(z, y, y)
inline val BVec3.zyz get() = BVec3(z, y, z)
inline val BVec3.zzx get() = BVec3(z, z, x)
inline val BVec3.zzy get() = BVec3(z, z, y)
inline val BVec3.zzz get() = BVec3(z, z, z)
inline val BVec3.rrr get() = BVec3(r, r, r)
inline val BVec3.rrg get() = BVec3(r, r, g)
inline val BVec3.rrb get() = BVec3(r, r, b)
inline val BVec3.rgr get() = BVec3(r, g, r)
inline val BVec3.rgg get() = BVec3(r, g, g)
inline val BVec3.rgb get() = BVec3(r, g, b)
inline val BVec3.rbr get() = BVec3(r, b, r)
inline val BVec3.rbg get() = BVec3(r, b, g)
inline val BVec3.rbb get() = BVec3(r, b, b)
inline val BVec3.grr get() = BVec3(g, r, r)
inline val BVec3.grg get() = BVec3(g, r, g)
inline val BVec3.grb get() = BVec3(g, r, b)
inline val BVec3.ggr get() = BVec3(g, g, r)
inline val BVec3.ggg get() = BVec3(g, g, g)
inline val BVec3.ggb get() = BVec3(g, g, b)
inline val BVec3.gbr get() = BVec3(g, b, r)
inline val BVec3.gbg get() = BVec3(g, b, g)
inline val BVec3.gbb get() = BVec3(g, b, b)
inline val BVec3.brr get() = BVec3(b, r, r)
inline val BVec3.brg get() = BVec3(b, r, g)
inline val BVec3.brb get() = BVec3(b, r, b)
inline val BVec3.bgr get() = BVec3(b, g, r)
inline val BVec3.bgg get() = BVec3(b, g, g)
inline val BVec3.bgb get() = BVec3(b, g, b)
inline val BVec3.bbr get() = BVec3(b, b, r)
inline val BVec3.bbg get() = BVec3(b, b, g)
inline val BVec3.bbb get() = BVec3(b, b, b)
inline val BVec3.sss get() = BVec3(s, s, s)
inline val BVec3.sst get() = BVec3(s, s, t)
inline val BVec3.ssp get() = BVec3(s, s, p)
inline val BVec3.sts get() = BVec3(s, t, s)
inline val BVec3.stt get() = BVec3(s, t, t)
inline val BVec3.stp get() = BVec3(s, t, p)
inline val BVec3.sps get() = BVec3(s, p, s)
inline val BVec3.spt get() = BVec3(s, p, t)
inline val BVec3.spp get() = BVec3(s, p, p)
inline val BVec3.tss get() = BVec3(t, s, s)
inline val BVec3.tst get() = BVec3(t, s, t)
inline val BVec3.tsp get() = BVec3(t, s, p)
inline val BVec3.tts get() = BVec3(t, t, s)
inline val BVec3.ttt get() = BVec3(t, t, t)
inline val BVec3.ttp get() = BVec3(t, t, p)
inline val BVec3.tps get() = BVec3(t, p, s)
inline val BVec3.tpt get() = BVec3(t, p, t)
inline val BVec3.tpp get() = BVec3(t, p, p)
inline val BVec3.pss get() = BVec3(p, s, s)
inline val BVec3.pst get() = BVec3(p, s, t)
inline val BVec3.psp get() = BVec3(p, s, p)
inline val BVec3.pts get() = BVec3(p, t, s)
inline val BVec3.ptt get() = BVec3(p, t, t)
inline val BVec3.ptp get() = BVec3(p, t, p)
inline val BVec3.pps get() = BVec3(p, p, s)
inline val BVec3.ppt get() = BVec3(p, p, t)
inline val BVec3.ppp get() = BVec3(p, p, p)
inline val BVec3.xxxx get() = BVec4(x, x, x, x)
inline val BVec3.xxxy get() = BVec4(x, x, x, y)
inline val BVec3.xxxz get() = BVec4(x, x, x, z)
inline val BVec3.xxyx get() = BVec4(x, x, y, x)
inline val BVec3.xxyy get() = BVec4(x, x, y, y)
inline val BVec3.xxyz get() = BVec4(x, x, y, z)
inline val BVec3.xxzx get() = BVec4(x, x, z, x)
inline val BVec3.xxzy get() = BVec4(x, x, z, y)
inline val BVec3.xxzz get() = BVec4(x, x, z, z)
inline val BVec3.xyxx get() = BVec4(x, y, x, x)
inline val BVec3.xyxy get() = BVec4(x, y, x, y)
inline val BVec3.xyxz get() = BVec4(x, y, x, z)
inline val BVec3.xyyx get() = BVec4(x, y, y, x)
inline val BVec3.xyyy get() = BVec4(x, y, y, y)
inline val BVec3.xyyz get() = BVec4(x, y, y, z)
inline val BVec3.xyzx get() = BVec4(x, y, z, x)
inline val BVec3.xyzy get() = BVec4(x, y, z, y)
inline val BVec3.xyzz get() = BVec4(x, y, z, z)
inline val BVec3.xzxx get() = BVec4(x, z, x, x)
inline val BVec3.xzxy get() = BVec4(x, z, x, y)
inline val BVec3.xzxz get() = BVec4(x, z, x, z)
inline val BVec3.xzyx get() = BVec4(x, z, y, x)
inline val BVec3.xzyy get() = BVec4(x, z, y, y)
inline val BVec3.xzyz get() = BVec4(x, z, y, z)
inline val BVec3.xzzx get() = BVec4(x, z, z, x)
inline val BVec3.xzzy get() = BVec4(x, z, z, y)
inline val BVec3.xzzz get() = BVec4(x, z, z, z)
inline val BVec3.yxxx get() = BVec4(y, x, x, x)
inline val BVec3.yxxy get() = BVec4(y, x, x, y)
inline val BVec3.yxxz get() = BVec4(y, x, x, z)
inline val BVec3.yxyx get() = BVec4(y, x, y, x)
inline val BVec3.yxyy get() = BVec4(y, x, y, y)
inline val BVec3.yxyz get() = BVec4(y, x, y, z)
inline val BVec3.yxzx get() = BVec4(y, x, z, x)
inline val BVec3.yxzy get() = BVec4(y, x, z, y)
inline val BVec3.yxzz get() = BVec4(y, x, z, z)
inline val BVec3.yyxx get() = BVec4(y, y, x, x)
inline val BVec3.yyxy get() = BVec4(y, y, x, y)
inline val BVec3.yyxz get() = BVec4(y, y, x, z)
inline val BVec3.yyyx get() = BVec4(y, y, y, x)
inline val BVec3.yyyy get() = BVec4(y, y, y, y)
inline val BVec3.yyyz get() = BVec4(y, y, y, z)
inline val BVec3.yyzx get() = BVec4(y, y, z, x)
inline val BVec3.yyzy get() = BVec4(y, y, z, y)
inline val BVec3.yyzz get() = BVec4(y, y, z, z)
inline val BVec3.yzxx get() = BVec4(y, z, x, x)
inline val BVec3.yzxy get() = BVec4(y, z, x, y)
inline val BVec3.yzxz get() = BVec4(y, z, x, z)
inline val BVec3.yzyx get() = BVec4(y, z, y, x)
inline val BVec3.yzyy get() = BVec4(y, z, y, y)
inline val BVec3.yzyz get() = BVec4(y, z, y, z)
inline val BVec3.yzzx get() = BVec4(y, z, z, x)
inline val BVec3.yzzy get() = BVec4(y, z, z, y)
inline val BVec3.yzzz get() = BVec4(y, z, z, z)
inline val BVec3.zxxx get() = BVec4(z, x, x, x)
inline val BVec3.zxxy get() = BVec4(z, x, x, y)
inline val BVec3.zxxz get() = BVec4(z, x, x, z)
inline val BVec3.zxyx get() = BVec4(z, x, y, x)
inline val BVec3.zxyy get() = BVec4(z, x, y, y)
inline val BVec3.zxyz get() = BVec4(z, x, y, z)
inline val BVec3.zxzx get() = BVec4(z, x, z, x)
inline val BVec3.zxzy get() = BVec4(z, x, z, y)
inline val BVec3.zxzz get() = BVec4(z, x, z, z)
inline val BVec3.zyxx get() = BVec4(z, y, x, x)
inline val BVec3.zyxy get() = BVec4(z, y, x, y)
inline val BVec3.zyxz get() = BVec4(z, y, x, z)
inline val BVec3.zyyx get() = BVec4(z, y, y, x)
inline val BVec3.zyyy get() = BVec4(z, y, y, y)
inline val BVec3.zyyz get() = BVec4(z, y, y, z)
inline val BVec3.zyzx get() = BVec4(z, y, z, x)
inline val BVec3.zyzy get() = BVec4(z, y, z, y)
inline val BVec3.zyzz get() = BVec4(z, y, z, z)
inline val BVec3.zzxx get() = BVec4(z, z, x, x)
inline val BVec3.zzxy get() = BVec4(z, z, x, y)
inline val BVec3.zzxz get() = BVec4(z, z, x, z)
inline val BVec3.zzyx get() = BVec4(z, z, y, x)
inline val BVec3.zzyy get() = BVec4(z, z, y, y)
inline val BVec3.zzyz get() = BVec4(z, z, y, z)
inline val BVec3.zzzx get() = BVec4(z, z, z, x)
inline val BVec3.zzzy get() = BVec4(z, z, z, y)
inline val BVec3.zzzz get() = BVec4(z, z, z, z)
inline val BVec3.rrrr get() = BVec4(r, r, r, r)
inline val BVec3.rrrg get() = BVec4(r, r, r, g)
inline val BVec3.rrrb get() = BVec4(r, r, r, b)
inline val BVec3.rrgr get() = BVec4(r, r, g, r)
inline val BVec3.rrgg get() = BVec4(r, r, g, g)
inline val BVec3.rrgb get() = BVec4(r, r, g, b)
inline val BVec3.rrbr get() = BVec4(r, r, b, r)
inline val BVec3.rrbg get() = BVec4(r, r, b, g)
inline val BVec3.rrbb get() = BVec4(r, r, b, b)
inline val BVec3.rgrr get() = BVec4(r, g, r, r)
inline val BVec3.rgrg get() = BVec4(r, g, r, g)
inline val BVec3.rgrb get() = BVec4(r, g, r, b)
inline val BVec3.rggr get() = BVec4(r, g, g, r)
inline val BVec3.rggg get() = BVec4(r, g, g, g)
inline val BVec3.rggb get() = BVec4(r, g, g, b)
inline val BVec3.rgbr get() = BVec4(r, g, b, r)
inline val BVec3.rgbg get() = BVec4(r, g, b, g)
inline val BVec3.rgbb get() = BVec4(r, g, b, b)
inline val BVec3.rbrr get() = BVec4(r, b, r, r)
inline val BVec3.rbrg get() = BVec4(r, b, r, g)
inline val BVec3.rbrb get() = BVec4(r, b, r, b)
inline val BVec3.rbgr get() = BVec4(r, b, g, r)
inline val BVec3.rbgg get() = BVec4(r, b, g, g)
inline val BVec3.rbgb get() = BVec4(r, b, g, b)
inline val BVec3.rbbr get() = BVec4(r, b, b, r)
inline val BVec3.rbbg get() = BVec4(r, b, b, g)
inline val BVec3.rbbb get() = BVec4(r, b, b, b)
inline val BVec3.grrr get() = BVec4(g, r, r, r)
inline val BVec3.grrg get() = BVec4(g, r, r, g)
inline val BVec3.grrb get() = BVec4(g, r, r, b)
inline val BVec3.grgr get() = BVec4(g, r, g, r)
inline val BVec3.grgg get() = BVec4(g, r, g, g)
inline val BVec3.grgb get() = BVec4(g, r, g, b)
inline val BVec3.grbr get() = BVec4(g, r, b, r)
inline val BVec3.grbg get() = BVec4(g, r, b, g)
inline val BVec3.grbb get() = BVec4(g, r, b, b)
inline val BVec3.ggrr get() = BVec4(g, g, r, r)
inline val BVec3.ggrg get() = BVec4(g, g, r, g)
inline val BVec3.ggrb get() = BVec4(g, g, r, b)
inline val BVec3.gggr get() = BVec4(g, g, g, r)
inline val BVec3.gggg get() = BVec4(g, g, g, g)
inline val BVec3.gggb get() = BVec4(g, g, g, b)
inline val BVec3.ggbr get() = BVec4(g, g, b, r)
inline val BVec3.ggbg get() = BVec4(g, g, b, g)
inline val BVec3.ggbb get() = BVec4(g, g, b, b)
inline val BVec3.gbrr get() = BVec4(g, b, r, r)
inline val BVec3.gbrg get() = BVec4(g, b, r, g)
inline val BVec3.gbrb get() = BVec4(g, b, r, b)
inline val BVec3.gbgr get() = BVec4(g, b, g, r)
inline val BVec3.gbgg get() = BVec4(g, b, g, g)
inline val BVec3.gbgb get() = BVec4(g, b, g, b)
inline val BVec3.gbbr get() = BVec4(g, b, b, r)
inline val BVec3.gbbg get() = BVec4(g, b, b, g)
inline val BVec3.gbbb get() = BVec4(g, b, b, b)
inline val BVec3.brrr get() = BVec4(b, r, r, r)
inline val BVec3.brrg get() = BVec4(b, r, r, g)
inline val BVec3.brrb get() = BVec4(b, r, r, b)
inline val BVec3.brgr get() = BVec4(b, r, g, r)
inline val BVec3.brgg get() = BVec4(b, r, g, g)
inline val BVec3.brgb get() = BVec4(b, r, g, b)
inline val BVec3.brbr get() = BVec4(b, r, b, r)
inline val BVec3.brbg get() = BVec4(b, r, b, g)
inline val BVec3.brbb get() = BVec4(b, r, b, b)
inline val BVec3.bgrr get() = BVec4(b, g, r, r)
inline val BVec3.bgrg get() = BVec4(b, g, r, g)
inline val BVec3.bgrb get() = BVec4(b, g, r, b)
inline val BVec3.bggr get() = BVec4(b, g, g, r)
inline val BVec3.bggg get() = BVec4(b, g, g, g)
inline val BVec3.bggb get() = BVec4(b, g, g, b)
inline val BVec3.bgbr get() = BVec4(b, g, b, r)
inline val BVec3.bgbg get() = BVec4(b, g, b, g)
inline val BVec3.bgbb get() = BVec4(b, g, b, b)
inline val BVec3.bbrr get() = BVec4(b, b, r, r)
inline val BVec3.bbrg get() = BVec4(b, b, r, g)
inline val BVec3.bbrb get() = BVec4(b, b, r, b)
inline val BVec3.bbgr get() = BVec4(b, b, g, r)
inline val BVec3.bbgg get() = BVec4(b, b, g, g)
inline val BVec3.bbgb get() = BVec4(b, b, g, b)
inline val BVec3.bbbr get() = BVec4(b, b, b, r)
inline val BVec3.bbbg get() = BVec4(b, b, b, g)
inline val BVec3.bbbb get() = BVec4(b, b, b, b)
inline val BVec3.ssss get() = BVec4(s, s, s, s)
inline val BVec3.ssst get() = BVec4(s, s, s, t)
inline val BVec3.sssp get() = BVec4(s, s, s, p)
inline val BVec3.ssts get() = BVec4(s, s, t, s)
inline val BVec3.sstt get() = BVec4(s, s, t, t)
inline val BVec3.sstp get() = BVec4(s, s, t, p)
inline val BVec3.ssps get() = BVec4(s, s, p, s)
inline val BVec3.sspt get() = BVec4(s, s, p, t)
inline val BVec3.sspp get() = BVec4(s, s, p, p)
inline val BVec3.stss get() = BVec4(s, t, s, s)
inline val BVec3.stst get() = BVec4(s, t, s, t)
inline val BVec3.stsp get() = BVec4(s, t, s, p)
inline val BVec3.stts get() = BVec4(s, t, t, s)
inline val BVec3.sttt get() = BVec4(s, t, t, t)
inline val BVec3.sttp get() = BVec4(s, t, t, p)
inline val BVec3.stps get() = BVec4(s, t, p, s)
inline val BVec3.stpt get() = BVec4(s, t, p, t)
inline val BVec3.stpp get() = BVec4(s, t, p, p)
inline val BVec3.spss get() = BVec4(s, p, s, s)
inline val BVec3.spst get() = BVec4(s, p, s, t)
inline val BVec3.spsp get() = BVec4(s, p, s, p)
inline val BVec3.spts get() = BVec4(s, p, t, s)
inline val BVec3.sptt get() = BVec4(s, p, t, t)
inline val BVec3.sptp get() = BVec4(s, p, t, p)
inline val BVec3.spps get() = BVec4(s, p, p, s)
inline val BVec3.sppt get() = BVec4(s, p, p, t)
inline val BVec3.sppp get() = BVec4(s, p, p, p)
inline val BVec3.tsss get() = BVec4(t, s, s, s)
inline val BVec3.tsst get() = BVec4(t, s, s, t)
inline val BVec3.tssp get() = BVec4(t, s, s, p)
inline val BVec3.tsts get() = BVec4(t, s, t, s)
inline val BVec3.tstt get() = BVec4(t, s, t, t)
inline val BVec3.tstp get() = BVec4(t, s, t, p)
inline val BVec3.tsps get() = BVec4(t, s, p, s)
inline val BVec3.tspt get() = BVec4(t, s, p, t)
inline val BVec3.tspp get() = BVec4(t, s, p, p)
inline val BVec3.ttss get() = BVec4(t, t, s, s)
inline val BVec3.ttst get() = BVec4(t, t, s, t)
inline val BVec3.ttsp get() = BVec4(t, t, s, p)
inline val BVec3.ttts get() = BVec4(t, t, t, s)
inline val BVec3.tttt get() = BVec4(t, t, t, t)
inline val BVec3.tttp get() = BVec4(t, t, t, p)
inline val BVec3.ttps get() = BVec4(t, t, p, s)
inline val BVec3.ttpt get() = BVec4(t, t, p, t)
inline val BVec3.ttpp get() = BVec4(t, t, p, p)
inline val BVec3.tpss get() = BVec4(t, p, s, s)
inline val BVec3.tpst get() = BVec4(t, p, s, t)
inline val BVec3.tpsp get() = BVec4(t, p, s, p)
inline val BVec3.tpts get() = BVec4(t, p, t, s)
inline val BVec3.tptt get() = BVec4(t, p, t, t)
inline val BVec3.tptp get() = BVec4(t, p, t, p)
inline val BVec3.tpps get() = BVec4(t, p, p, s)
inline val BVec3.tppt get() = BVec4(t, p, p, t)
inline val BVec3.tppp get() = BVec4(t, p, p, p)
inline val BVec3.psss get() = BVec4(p, s, s, s)
inline val BVec3.psst get() = BVec4(p, s, s, t)
inline val BVec3.pssp get() = BVec4(p, s, s, p)
inline val BVec3.psts get() = BVec4(p, s, t, s)
inline val BVec3.pstt get() = BVec4(p, s, t, t)
inline val BVec3.pstp get() = BVec4(p, s, t, p)
inline val BVec3.psps get() = BVec4(p, s, p, s)
inline val BVec3.pspt get() = BVec4(p, s, p, t)
inline val BVec3.pspp get() = BVec4(p, s, p, p)
inline val BVec3.ptss get() = BVec4(p, t, s, s)
inline val BVec3.ptst get() = BVec4(p, t, s, t)
inline val BVec3.ptsp get() = BVec4(p, t, s, p)
inline val BVec3.ptts get() = BVec4(p, t, t, s)
inline val BVec3.pttt get() = BVec4(p, t, t, t)
inline val BVec3.pttp get() = BVec4(p, t, t, p)
inline val BVec3.ptps get() = BVec4(p, t, p, s)
inline val BVec3.ptpt get() = BVec4(p, t, p, t)
inline val BVec3.ptpp get() = BVec4(p, t, p, p)
inline val BVec3.ppss get() = BVec4(p, p, s, s)
inline val BVec3.ppst get() = BVec4(p, p, s, t)
inline val BVec3.ppsp get() = BVec4(p, p, s, p)
inline val BVec3.ppts get() = BVec4(p, p, t, s)
inline val BVec3.pptt get() = BVec4(p, p, t, t)
inline val BVec3.pptp get() = BVec4(p, p, t, p)
inline val BVec3.ppps get() = BVec4(p, p, p, s)
inline val BVec3.pppt get() = BVec4(p, p, p, t)
inline val BVec3.pppp get() = BVec4(p, p, p, p)
//endregion
//region Swizzling Vec4
inline val BVec4.xx get() = BVec2(x, x)
inline val BVec4.xy get() = BVec2(x, y)
inline val BVec4.xz get() = BVec2(x, z)
inline val BVec4.xw get() = BVec2(x, w)
inline val BVec4.yx get() = BVec2(y, x)
inline val BVec4.yy get() = BVec2(y, y)
inline val BVec4.yz get() = BVec2(y, z)
inline val BVec4.yw get() = BVec2(y, w)
inline val BVec4.zx get() = BVec2(z, x)
inline val BVec4.zy get() = BVec2(z, y)
inline val BVec4.zz get() = BVec2(z, z)
inline val BVec4.zw get() = BVec2(z, w)
inline val BVec4.wx get() = BVec2(w, x)
inline val BVec4.wy get() = BVec2(w, y)
inline val BVec4.wz get() = BVec2(w, z)
inline val BVec4.ww get() = BVec2(w, w)
inline val BVec4.rr get() = BVec2(r, r)
inline val BVec4.rg get() = BVec2(r, g)
inline val BVec4.rb get() = BVec2(r, b)
inline val BVec4.ra get() = BVec2(r, a)
inline val BVec4.gr get() = BVec2(g, r)
inline val BVec4.gg get() = BVec2(g, g)
inline val BVec4.gb get() = BVec2(g, b)
inline val BVec4.ga get() = BVec2(g, a)
inline val BVec4.br get() = BVec2(b, r)
inline val BVec4.bg get() = BVec2(b, g)
inline val BVec4.bb get() = BVec2(b, b)
inline val BVec4.ba get() = BVec2(b, a)
inline val BVec4.ar get() = BVec2(a, r)
inline val BVec4.ag get() = BVec2(a, g)
inline val BVec4.ab get() = BVec2(a, b)
inline val BVec4.aa get() = BVec2(a, a)
inline val BVec4.ss get() = BVec2(s, s)
inline val BVec4.st get() = BVec2(s, t)
inline val BVec4.sp get() = BVec2(s, p)
inline val BVec4.sq get() = BVec2(s, q)
inline val BVec4.ts get() = BVec2(t, s)
inline val BVec4.tt get() = BVec2(t, t)
inline val BVec4.tp get() = BVec2(t, p)
inline val BVec4.tq get() = BVec2(t, q)
inline val BVec4.ps get() = BVec2(p, s)
inline val BVec4.pt get() = BVec2(p, t)
inline val BVec4.pp get() = BVec2(p, p)
inline val BVec4.pq get() = BVec2(p, q)
inline val BVec4.qs get() = BVec2(q, s)
inline val BVec4.qt get() = BVec2(q, t)
inline val BVec4.qp get() = BVec2(q, p)
inline val BVec4.qq get() = BVec2(q, q)
inline val BVec4.xxx get() = BVec3(x, x, x)
inline val BVec4.xxy get() = BVec3(x, x, y)
inline val BVec4.xxz get() = BVec3(x, x, z)
inline val BVec4.xxw get() = BVec3(x, x, w)
inline val BVec4.xyx get() = BVec3(x, y, x)
inline val BVec4.xyy get() = BVec3(x, y, y)
inline val BVec4.xyz get() = BVec3(x, y, z)
inline val BVec4.xyw get() = BVec3(x, y, w)
inline val BVec4.xzx get() = BVec3(x, z, x)
inline val BVec4.xzy get() = BVec3(x, z, y)
inline val BVec4.xzz get() = BVec3(x, z, z)
inline val BVec4.xzw get() = BVec3(x, z, w)
inline val BVec4.xwx get() = BVec3(x, w, x)
inline val BVec4.xwy get() = BVec3(x, w, y)
inline val BVec4.xwz get() = BVec3(x, w, z)
inline val BVec4.xww get() = BVec3(x, w, w)
inline val BVec4.yxx get() = BVec3(y, x, x)
inline val BVec4.yxy get() = BVec3(y, x, y)
inline val BVec4.yxz get() = BVec3(y, x, z)
inline val BVec4.yxw get() = BVec3(y, x, w)
inline val BVec4.yyx get() = BVec3(y, y, x)
inline val BVec4.yyy get() = BVec3(y, y, y)
inline val BVec4.yyz get() = BVec3(y, y, z)
inline val BVec4.yyw get() = BVec3(y, y, w)
inline val BVec4.yzx get() = BVec3(y, z, x)
inline val BVec4.yzy get() = BVec3(y, z, y)
inline val BVec4.yzz get() = BVec3(y, z, z)
inline val BVec4.yzw get() = BVec3(y, z, w)
inline val BVec4.ywx get() = BVec3(y, w, x)
inline val BVec4.ywy get() = BVec3(y, w, y)
inline val BVec4.ywz get() = BVec3(y, w, z)
inline val BVec4.yww get() = BVec3(y, w, w)
inline val BVec4.zxx get() = BVec3(z, x, x)
inline val BVec4.zxy get() = BVec3(z, x, y)
inline val BVec4.zxz get() = BVec3(z, x, z)
inline val BVec4.zxw get() = BVec3(z, x, w)
inline val BVec4.zyx get() = BVec3(z, y, x)
inline val BVec4.zyy get() = BVec3(z, y, y)
inline val BVec4.zyz get() = BVec3(z, y, z)
inline val BVec4.zyw get() = BVec3(z, y, w)
inline val BVec4.zzx get() = BVec3(z, z, x)
inline val BVec4.zzy get() = BVec3(z, z, y)
inline val BVec4.zzz get() = BVec3(z, z, z)
inline val BVec4.zzw get() = BVec3(z, z, w)
inline val BVec4.zwx get() = BVec3(z, w, x)
inline val BVec4.zwy get() = BVec3(z, w, y)
inline val BVec4.zwz get() = BVec3(z, w, z)
inline val BVec4.zww get() = BVec3(z, w, w)
inline val BVec4.wxx get() = BVec3(w, x, x)
inline val BVec4.wxy get() = BVec3(w, x, y)
inline val BVec4.wxz get() = BVec3(w, x, z)
inline val BVec4.wxw get() = BVec3(w, x, w)
inline val BVec4.wyx get() = BVec3(w, y, x)
inline val BVec4.wyy get() = BVec3(w, y, y)
inline val BVec4.wyz get() = BVec3(w, y, z)
inline val BVec4.wyw get() = BVec3(w, y, w)
inline val BVec4.wzx get() = BVec3(w, z, x)
inline val BVec4.wzy get() = BVec3(w, z, y)
inline val BVec4.wzz get() = BVec3(w, z, z)
inline val BVec4.wzw get() = BVec3(w, z, w)
inline val BVec4.wwx get() = BVec3(w, w, x)
inline val BVec4.wwy get() = BVec3(w, w, y)
inline val BVec4.wwz get() = BVec3(w, w, z)
inline val BVec4.www get() = BVec3(w, w, w)
inline val BVec4.rrr get() = BVec3(r, r, r)
inline val BVec4.rrg get() = BVec3(r, r, g)
inline val BVec4.rrb get() = BVec3(r, r, b)
inline val BVec4.rra get() = BVec3(r, r, a)
inline val BVec4.rgr get() = BVec3(r, g, r)
inline val BVec4.rgg get() = BVec3(r, g, g)
inline val BVec4.rgb get() = BVec3(r, g, b)
inline val BVec4.rga get() = BVec3(r, g, a)
inline val BVec4.rbr get() = BVec3(r, b, r)
inline val BVec4.rbg get() = BVec3(r, b, g)
inline val BVec4.rbb get() = BVec3(r, b, b)
inline val BVec4.rba get() = BVec3(r, b, a)
inline val BVec4.rar get() = BVec3(r, a, r)
inline val BVec4.rag get() = BVec3(r, a, g)
inline val BVec4.rab get() = BVec3(r, a, b)
inline val BVec4.raa get() = BVec3(r, a, a)
inline val BVec4.grr get() = BVec3(g, r, r)
inline val BVec4.grg get() = BVec3(g, r, g)
inline val BVec4.grb get() = BVec3(g, r, b)
inline val BVec4.gra get() = BVec3(g, r, a)
inline val BVec4.ggr get() = BVec3(g, g, r)
inline val BVec4.ggg get() = BVec3(g, g, g)
inline val BVec4.ggb get() = BVec3(g, g, b)
inline val BVec4.gga get() = BVec3(g, g, a)
inline val BVec4.gbr get() = BVec3(g, b, r)
inline val BVec4.gbg get() = BVec3(g, b, g)
inline val BVec4.gbb get() = BVec3(g, b, b)
inline val BVec4.gba get() = BVec3(g, b, a)
inline val BVec4.gar get() = BVec3(g, a, r)
inline val BVec4.gag get() = BVec3(g, a, g)
inline val BVec4.gab get() = BVec3(g, a, b)
inline val BVec4.gaa get() = BVec3(g, a, a)
inline val BVec4.brr get() = BVec3(b, r, r)
inline val BVec4.brg get() = BVec3(b, r, g)
inline val BVec4.brb get() = BVec3(b, r, b)
inline val BVec4.bra get() = BVec3(b, r, a)
inline val BVec4.bgr get() = BVec3(b, g, r)
inline val BVec4.bgg get() = BVec3(b, g, g)
inline val BVec4.bgb get() = BVec3(b, g, b)
inline val BVec4.bga get() = BVec3(b, g, a)
inline val BVec4.bbr get() = BVec3(b, b, r)
inline val BVec4.bbg get() = BVec3(b, b, g)
inline val BVec4.bbb get() = BVec3(b, b, b)
inline val BVec4.bba get() = BVec3(b, b, a)
inline val BVec4.bar get() = BVec3(b, a, r)
inline val BVec4.bag get() = BVec3(b, a, g)
inline val BVec4.bab get() = BVec3(b, a, b)
inline val BVec4.baa get() = BVec3(b, a, a)
inline val BVec4.arr get() = BVec3(a, r, r)
inline val BVec4.arg get() = BVec3(a, r, g)
inline val BVec4.arb get() = BVec3(a, r, b)
inline val BVec4.ara get() = BVec3(a, r, a)
inline val BVec4.agr get() = BVec3(a, g, r)
inline val BVec4.agg get() = BVec3(a, g, g)
inline val BVec4.agb get() = BVec3(a, g, b)
inline val BVec4.aga get() = BVec3(a, g, a)
inline val BVec4.abr get() = BVec3(a, b, r)
inline val BVec4.abg get() = BVec3(a, b, g)
inline val BVec4.abb get() = BVec3(a, b, b)
inline val BVec4.aba get() = BVec3(a, b, a)
inline val BVec4.aar get() = BVec3(a, a, r)
inline val BVec4.aag get() = BVec3(a, a, g)
inline val BVec4.aab get() = BVec3(a, a, b)
inline val BVec4.aaa get() = BVec3(a, a, a)
inline val BVec4.sss get() = BVec3(s, s, s)
inline val BVec4.sst get() = BVec3(s, s, t)
inline val BVec4.ssp get() = BVec3(s, s, p)
inline val BVec4.ssq get() = BVec3(s, s, q)
inline val BVec4.sts get() = BVec3(s, t, s)
inline val BVec4.stt get() = BVec3(s, t, t)
inline val BVec4.stp get() = BVec3(s, t, p)
inline val BVec4.stq get() = BVec3(s, t, q)
inline val BVec4.sps get() = BVec3(s, p, s)
inline val BVec4.spt get() = BVec3(s, p, t)
inline val BVec4.spp get() = BVec3(s, p, p)
inline val BVec4.spq get() = BVec3(s, p, q)
inline val BVec4.sqs get() = BVec3(s, q, s)
inline val BVec4.sqt get() = BVec3(s, q, t)
inline val BVec4.sqp get() = BVec3(s, q, p)
inline val BVec4.sqq get() = BVec3(s, q, q)
inline val BVec4.tss get() = BVec3(t, s, s)
inline val BVec4.tst get() = BVec3(t, s, t)
inline val BVec4.tsp get() = BVec3(t, s, p)
inline val BVec4.tsq get() = BVec3(t, s, q)
inline val BVec4.tts get() = BVec3(t, t, s)
inline val BVec4.ttt get() = BVec3(t, t, t)
inline val BVec4.ttp get() = BVec3(t, t, p)
inline val BVec4.ttq get() = BVec3(t, t, q)
inline val BVec4.tps get() = BVec3(t, p, s)
inline val BVec4.tpt get() = BVec3(t, p, t)
inline val BVec4.tpp get() = BVec3(t, p, p)
inline val BVec4.tpq get() = BVec3(t, p, q)
inline val BVec4.tqs get() = BVec3(t, q, s)
inline val BVec4.tqt get() = BVec3(t, q, t)
inline val BVec4.tqp get() = BVec3(t, q, p)
inline val BVec4.tqq get() = BVec3(t, q, q)
inline val BVec4.pss get() = BVec3(p, s, s)
inline val BVec4.pst get() = BVec3(p, s, t)
inline val BVec4.psp get() = BVec3(p, s, p)
inline val BVec4.psq get() = BVec3(p, s, q)
inline val BVec4.pts get() = BVec3(p, t, s)
inline val BVec4.ptt get() = BVec3(p, t, t)
inline val BVec4.ptp get() = BVec3(p, t, p)
inline val BVec4.ptq get() = BVec3(p, t, q)
inline val BVec4.pps get() = BVec3(p, p, s)
inline val BVec4.ppt get() = BVec3(p, p, t)
inline val BVec4.ppp get() = BVec3(p, p, p)
inline val BVec4.ppq get() = BVec3(p, p, q)
inline val BVec4.pqs get() = BVec3(p, q, s)
inline val BVec4.pqt get() = BVec3(p, q, t)
inline val BVec4.pqp get() = BVec3(p, q, p)
inline val BVec4.pqq get() = BVec3(p, q, q)
inline val BVec4.qss get() = BVec3(q, s, s)
inline val BVec4.qst get() = BVec3(q, s, t)
inline val BVec4.qsp get() = BVec3(q, s, p)
inline val BVec4.qsq get() = BVec3(q, s, q)
inline val BVec4.qts get() = BVec3(q, t, s)
inline val BVec4.qtt get() = BVec3(q, t, t)
inline val BVec4.qtp get() = BVec3(q, t, p)
inline val BVec4.qtq get() = BVec3(q, t, q)
inline val BVec4.qps get() = BVec3(q, p, s)
inline val BVec4.qpt get() = BVec3(q, p, t)
inline val BVec4.qpp get() = BVec3(q, p, p)
inline val BVec4.qpq get() = BVec3(q, p, q)
inline val BVec4.qqs get() = BVec3(q, q, s)
inline val BVec4.qqt get() = BVec3(q, q, t)
inline val BVec4.qqp get() = BVec3(q, q, p)
inline val BVec4.qqq get() = BVec3(q, q, q)
inline val BVec4.xxxx get() = BVec4(x, x, x, x)
inline val BVec4.xxxy get() = BVec4(x, x, x, y)
inline val BVec4.xxxz get() = BVec4(x, x, x, z)
inline val BVec4.xxxw get() = BVec4(x, x, x, w)
inline val BVec4.xxyx get() = BVec4(x, x, y, x)
inline val BVec4.xxyy get() = BVec4(x, x, y, y)
inline val BVec4.xxyz get() = BVec4(x, x, y, z)
inline val BVec4.xxyw get() = BVec4(x, x, y, w)
inline val BVec4.xxzx get() = BVec4(x, x, z, x)
inline val BVec4.xxzy get() = BVec4(x, x, z, y)
inline val BVec4.xxzz get() = BVec4(x, x, z, z)
inline val BVec4.xxzw get() = BVec4(x, x, z, w)
inline val BVec4.xxwx get() = BVec4(x, x, w, x)
inline val BVec4.xxwy get() = BVec4(x, x, w, y)
inline val BVec4.xxwz get() = BVec4(x, x, w, z)
inline val BVec4.xxww get() = BVec4(x, x, w, w)
inline val BVec4.xyxx get() = BVec4(x, y, x, x)
inline val BVec4.xyxy get() = BVec4(x, y, x, y)
inline val BVec4.xyxz get() = BVec4(x, y, x, z)
inline val BVec4.xyxw get() = BVec4(x, y, x, w)
inline val BVec4.xyyx get() = BVec4(x, y, y, x)
inline val BVec4.xyyy get() = BVec4(x, y, y, y)
inline val BVec4.xyyz get() = BVec4(x, y, y, z)
inline val BVec4.xyyw get() = BVec4(x, y, y, w)
inline val BVec4.xyzx get() = BVec4(x, y, z, x)
inline val BVec4.xyzy get() = BVec4(x, y, z, y)
inline val BVec4.xyzz get() = BVec4(x, y, z, z)
inline val BVec4.xyzw get() = BVec4(x, y, z, w)
inline val BVec4.xywx get() = BVec4(x, y, w, x)
inline val BVec4.xywy get() = BVec4(x, y, w, y)
inline val BVec4.xywz get() = BVec4(x, y, w, z)
inline val BVec4.xyww get() = BVec4(x, y, w, w)
inline val BVec4.xzxx get() = BVec4(x, z, x, x)
inline val BVec4.xzxy get() = BVec4(x, z, x, y)
inline val BVec4.xzxz get() = BVec4(x, z, x, z)
inline val BVec4.xzxw get() = BVec4(x, z, x, w)
inline val BVec4.xzyx get() = BVec4(x, z, y, x)
inline val BVec4.xzyy get() = BVec4(x, z, y, y)
inline val BVec4.xzyz get() = BVec4(x, z, y, z)
inline val BVec4.xzyw get() = BVec4(x, z, y, w)
inline val BVec4.xzzx get() = BVec4(x, z, z, x)
inline val BVec4.xzzy get() = BVec4(x, z, z, y)
inline val BVec4.xzzz get() = BVec4(x, z, z, z)
inline val BVec4.xzzw get() = BVec4(x, z, z, w)
inline val BVec4.xzwx get() = BVec4(x, z, w, x)
inline val BVec4.xzwy get() = BVec4(x, z, w, y)
inline val BVec4.xzwz get() = BVec4(x, z, w, z)
inline val BVec4.xzww get() = BVec4(x, z, w, w)
inline val BVec4.xwxx get() = BVec4(x, w, x, x)
inline val BVec4.xwxy get() = BVec4(x, w, x, y)
inline val BVec4.xwxz get() = BVec4(x, w, x, z)
inline val BVec4.xwxw get() = BVec4(x, w, x, w)
inline val BVec4.xwyx get() = BVec4(x, w, y, x)
inline val BVec4.xwyy get() = BVec4(x, w, y, y)
inline val BVec4.xwyz get() = BVec4(x, w, y, z)
inline val BVec4.xwyw get() = BVec4(x, w, y, w)
inline val BVec4.xwzx get() = BVec4(x, w, z, x)
inline val BVec4.xwzy get() = BVec4(x, w, z, y)
inline val BVec4.xwzz get() = BVec4(x, w, z, z)
inline val BVec4.xwzw get() = BVec4(x, w, z, w)
inline val BVec4.xwwx get() = BVec4(x, w, w, x)
inline val BVec4.xwwy get() = BVec4(x, w, w, y)
inline val BVec4.xwwz get() = BVec4(x, w, w, z)
inline val BVec4.xwww get() = BVec4(x, w, w, w)
inline val BVec4.yxxx get() = BVec4(y, x, x, x)
inline val BVec4.yxxy get() = BVec4(y, x, x, y)
inline val BVec4.yxxz get() = BVec4(y, x, x, z)
inline val BVec4.yxxw get() = BVec4(y, x, x, w)
inline val BVec4.yxyx get() = BVec4(y, x, y, x)
inline val BVec4.yxyy get() = BVec4(y, x, y, y)
inline val BVec4.yxyz get() = BVec4(y, x, y, z)
inline val BVec4.yxyw get() = BVec4(y, x, y, w)
inline val BVec4.yxzx get() = BVec4(y, x, z, x)
inline val BVec4.yxzy get() = BVec4(y, x, z, y)
inline val BVec4.yxzz get() = BVec4(y, x, z, z)
inline val BVec4.yxzw get() = BVec4(y, x, z, w)
inline val BVec4.yxwx get() = BVec4(y, x, w, x)
inline val BVec4.yxwy get() = BVec4(y, x, w, y)
inline val BVec4.yxwz get() = BVec4(y, x, w, z)
inline val BVec4.yxww get() = BVec4(y, x, w, w)
inline val BVec4.yyxx get() = BVec4(y, y, x, x)
inline val BVec4.yyxy get() = BVec4(y, y, x, y)
inline val BVec4.yyxz get() = BVec4(y, y, x, z)
inline val BVec4.yyxw get() = BVec4(y, y, x, w)
inline val BVec4.yyyx get() = BVec4(y, y, y, x)
inline val BVec4.yyyy get() = BVec4(y, y, y, y)
inline val BVec4.yyyz get() = BVec4(y, y, y, z)
inline val BVec4.yyyw get() = BVec4(y, y, y, w)
inline val BVec4.yyzx get() = BVec4(y, y, z, x)
inline val BVec4.yyzy get() = BVec4(y, y, z, y)
inline val BVec4.yyzz get() = BVec4(y, y, z, z)
inline val BVec4.yyzw get() = BVec4(y, y, z, w)
inline val BVec4.yywx get() = BVec4(y, y, w, x)
inline val BVec4.yywy get() = BVec4(y, y, w, y)
inline val BVec4.yywz get() = BVec4(y, y, w, z)
inline val BVec4.yyww get() = BVec4(y, y, w, w)
inline val BVec4.yzxx get() = BVec4(y, z, x, x)
inline val BVec4.yzxy get() = BVec4(y, z, x, y)
inline val BVec4.yzxz get() = BVec4(y, z, x, z)
inline val BVec4.yzxw get() = BVec4(y, z, x, w)
inline val BVec4.yzyx get() = BVec4(y, z, y, x)
inline val BVec4.yzyy get() = BVec4(y, z, y, y)
inline val BVec4.yzyz get() = BVec4(y, z, y, z)
inline val BVec4.yzyw get() = BVec4(y, z, y, w)
inline val BVec4.yzzx get() = BVec4(y, z, z, x)
inline val BVec4.yzzy get() = BVec4(y, z, z, y)
inline val BVec4.yzzz get() = BVec4(y, z, z, z)
inline val BVec4.yzzw get() = BVec4(y, z, z, w)
inline val BVec4.yzwx get() = BVec4(y, z, w, x)
inline val BVec4.yzwy get() = BVec4(y, z, w, y)
inline val BVec4.yzwz get() = BVec4(y, z, w, z)
inline val BVec4.yzww get() = BVec4(y, z, w, w)
inline val BVec4.ywxx get() = BVec4(y, w, x, x)
inline val BVec4.ywxy get() = BVec4(y, w, x, y)
inline val BVec4.ywxz get() = BVec4(y, w, x, z)
inline val BVec4.ywxw get() = BVec4(y, w, x, w)
inline val BVec4.ywyx get() = BVec4(y, w, y, x)
inline val BVec4.ywyy get() = BVec4(y, w, y, y)
inline val BVec4.ywyz get() = BVec4(y, w, y, z)
inline val BVec4.ywyw get() = BVec4(y, w, y, w)
inline val BVec4.ywzx get() = BVec4(y, w, z, x)
inline val BVec4.ywzy get() = BVec4(y, w, z, y)
inline val BVec4.ywzz get() = BVec4(y, w, z, z)
inline val BVec4.ywzw get() = BVec4(y, w, z, w)
inline val BVec4.ywwx get() = BVec4(y, w, w, x)
inline val BVec4.ywwy get() = BVec4(y, w, w, y)
inline val BVec4.ywwz get() = BVec4(y, w, w, z)
inline val BVec4.ywww get() = BVec4(y, w, w, w)
inline val BVec4.zxxx get() = BVec4(z, x, x, x)
inline val BVec4.zxxy get() = BVec4(z, x, x, y)
inline val BVec4.zxxz get() = BVec4(z, x, x, z)
inline val BVec4.zxxw get() = BVec4(z, x, x, w)
inline val BVec4.zxyx get() = BVec4(z, x, y, x)
inline val BVec4.zxyy get() = BVec4(z, x, y, y)
inline val BVec4.zxyz get() = BVec4(z, x, y, z)
inline val BVec4.zxyw get() = BVec4(z, x, y, w)
inline val BVec4.zxzx get() = BVec4(z, x, z, x)
inline val BVec4.zxzy get() = BVec4(z, x, z, y)
inline val BVec4.zxzz get() = BVec4(z, x, z, z)
inline val BVec4.zxzw get() = BVec4(z, x, z, w)
inline val BVec4.zxwx get() = BVec4(z, x, w, x)
inline val BVec4.zxwy get() = BVec4(z, x, w, y)
inline val BVec4.zxwz get() = BVec4(z, x, w, z)
inline val BVec4.zxww get() = BVec4(z, x, w, w)
inline val BVec4.zyxx get() = BVec4(z, y, x, x)
inline val BVec4.zyxy get() = BVec4(z, y, x, y)
inline val BVec4.zyxz get() = BVec4(z, y, x, z)
inline val BVec4.zyxw get() = BVec4(z, y, x, w)
inline val BVec4.zyyx get() = BVec4(z, y, y, x)
inline val BVec4.zyyy get() = BVec4(z, y, y, y)
inline val BVec4.zyyz get() = BVec4(z, y, y, z)
inline val BVec4.zyyw get() = BVec4(z, y, y, w)
inline val BVec4.zyzx get() = BVec4(z, y, z, x)
inline val BVec4.zyzy get() = BVec4(z, y, z, y)
inline val BVec4.zyzz get() = BVec4(z, y, z, z)
inline val BVec4.zyzw get() = BVec4(z, y, z, w)
inline val BVec4.zywx get() = BVec4(z, y, w, x)
inline val BVec4.zywy get() = BVec4(z, y, w, y)
inline val BVec4.zywz get() = BVec4(z, y, w, z)
inline val BVec4.zyww get() = BVec4(z, y, w, w)
inline val BVec4.zzxx get() = BVec4(z, z, x, x)
inline val BVec4.zzxy get() = BVec4(z, z, x, y)
inline val BVec4.zzxz get() = BVec4(z, z, x, z)
inline val BVec4.zzxw get() = BVec4(z, z, x, w)
inline val BVec4.zzyx get() = BVec4(z, z, y, x)
inline val BVec4.zzyy get() = BVec4(z, z, y, y)
inline val BVec4.zzyz get() = BVec4(z, z, y, z)
inline val BVec4.zzyw get() = BVec4(z, z, y, w)
inline val BVec4.zzzx get() = BVec4(z, z, z, x)
inline val BVec4.zzzy get() = BVec4(z, z, z, y)
inline val BVec4.zzzz get() = BVec4(z, z, z, z)
inline val BVec4.zzzw get() = BVec4(z, z, z, w)
inline val BVec4.zzwx get() = BVec4(z, z, w, x)
inline val BVec4.zzwy get() = BVec4(z, z, w, y)
inline val BVec4.zzwz get() = BVec4(z, z, w, z)
inline val BVec4.zzww get() = BVec4(z, z, w, w)
inline val BVec4.zwxx get() = BVec4(z, w, x, x)
inline val BVec4.zwxy get() = BVec4(z, w, x, y)
inline val BVec4.zwxz get() = BVec4(z, w, x, z)
inline val BVec4.zwxw get() = BVec4(z, w, x, w)
inline val BVec4.zwyx get() = BVec4(z, w, y, x)
inline val BVec4.zwyy get() = BVec4(z, w, y, y)
inline val BVec4.zwyz get() = BVec4(z, w, y, z)
inline val BVec4.zwyw get() = BVec4(z, w, y, w)
inline val BVec4.zwzx get() = BVec4(z, w, z, x)
inline val BVec4.zwzy get() = BVec4(z, w, z, y)
inline val BVec4.zwzz get() = BVec4(z, w, z, z)
inline val BVec4.zwzw get() = BVec4(z, w, z, w)
inline val BVec4.zwwx get() = BVec4(z, w, w, x)
inline val BVec4.zwwy get() = BVec4(z, w, w, y)
inline val BVec4.zwwz get() = BVec4(z, w, w, z)
inline val BVec4.zwww get() = BVec4(z, w, w, w)
inline val BVec4.wxxx get() = BVec4(w, x, x, x)
inline val BVec4.wxxy get() = BVec4(w, x, x, y)
inline val BVec4.wxxz get() = BVec4(w, x, x, z)
inline val BVec4.wxxw get() = BVec4(w, x, x, w)
inline val BVec4.wxyx get() = BVec4(w, x, y, x)
inline val BVec4.wxyy get() = BVec4(w, x, y, y)
inline val BVec4.wxyz get() = BVec4(w, x, y, z)
inline val BVec4.wxyw get() = BVec4(w, x, y, w)
inline val BVec4.wxzx get() = BVec4(w, x, z, x)
inline val BVec4.wxzy get() = BVec4(w, x, z, y)
inline val BVec4.wxzz get() = BVec4(w, x, z, z)
inline val BVec4.wxzw get() = BVec4(w, x, z, w)
inline val BVec4.wxwx get() = BVec4(w, x, w, x)
inline val BVec4.wxwy get() = BVec4(w, x, w, y)
inline val BVec4.wxwz get() = BVec4(w, x, w, z)
inline val BVec4.wxww get() = BVec4(w, x, w, w)
inline val BVec4.wyxx get() = BVec4(w, y, x, x)
inline val BVec4.wyxy get() = BVec4(w, y, x, y)
inline val BVec4.wyxz get() = BVec4(w, y, x, z)
inline val BVec4.wyxw get() = BVec4(w, y, x, w)
inline val BVec4.wyyx get() = BVec4(w, y, y, x)
inline val BVec4.wyyy get() = BVec4(w, y, y, y)
inline val BVec4.wyyz get() = BVec4(w, y, y, z)
inline val BVec4.wyyw get() = BVec4(w, y, y, w)
inline val BVec4.wyzx get() = BVec4(w, y, z, x)
inline val BVec4.wyzy get() = BVec4(w, y, z, y)
inline val BVec4.wyzz get() = BVec4(w, y, z, z)
inline val BVec4.wyzw get() = BVec4(w, y, z, w)
inline val BVec4.wywx get() = BVec4(w, y, w, x)
inline val BVec4.wywy get() = BVec4(w, y, w, y)
inline val BVec4.wywz get() = BVec4(w, y, w, z)
inline val BVec4.wyww get() = BVec4(w, y, w, w)
inline val BVec4.wzxx get() = BVec4(w, z, x, x)
inline val BVec4.wzxy get() = BVec4(w, z, x, y)
inline val BVec4.wzxz get() = BVec4(w, z, x, z)
inline val BVec4.wzxw get() = BVec4(w, z, x, w)
inline val BVec4.wzyx get() = BVec4(w, z, y, x)
inline val BVec4.wzyy get() = BVec4(w, z, y, y)
inline val BVec4.wzyz get() = BVec4(w, z, y, z)
inline val BVec4.wzyw get() = BVec4(w, z, y, w)
inline val BVec4.wzzx get() = BVec4(w, z, z, x)
inline val BVec4.wzzy get() = BVec4(w, z, z, y)
inline val BVec4.wzzz get() = BVec4(w, z, z, z)
inline val BVec4.wzzw get() = BVec4(w, z, z, w)
inline val BVec4.wzwx get() = BVec4(w, z, w, x)
inline val BVec4.wzwy get() = BVec4(w, z, w, y)
inline val BVec4.wzwz get() = BVec4(w, z, w, z)
inline val BVec4.wzww get() = BVec4(w, z, w, w)
inline val BVec4.wwxx get() = BVec4(w, w, x, x)
inline val BVec4.wwxy get() = BVec4(w, w, x, y)
inline val BVec4.wwxz get() = BVec4(w, w, x, z)
inline val BVec4.wwxw get() = BVec4(w, w, x, w)
inline val BVec4.wwyx get() = BVec4(w, w, y, x)
inline val BVec4.wwyy get() = BVec4(w, w, y, y)
inline val BVec4.wwyz get() = BVec4(w, w, y, z)
inline val BVec4.wwyw get() = BVec4(w, w, y, w)
inline val BVec4.wwzx get() = BVec4(w, w, z, x)
inline val BVec4.wwzy get() = BVec4(w, w, z, y)
inline val BVec4.wwzz get() = BVec4(w, w, z, z)
inline val BVec4.wwzw get() = BVec4(w, w, z, w)
inline val BVec4.wwwx get() = BVec4(w, w, w, x)
inline val BVec4.wwwy get() = BVec4(w, w, w, y)
inline val BVec4.wwwz get() = BVec4(w, w, w, z)
inline val BVec4.wwww get() = BVec4(w, w, w, w)
inline val BVec4.rrrr get() = BVec4(r, r, r, r)
inline val BVec4.rrrg get() = BVec4(r, r, r, g)
inline val BVec4.rrrb get() = BVec4(r, r, r, b)
inline val BVec4.rrra get() = BVec4(r, r, r, a)
inline val BVec4.rrgr get() = BVec4(r, r, g, r)
inline val BVec4.rrgg get() = BVec4(r, r, g, g)
inline val BVec4.rrgb get() = BVec4(r, r, g, b)
inline val BVec4.rrga get() = BVec4(r, r, g, a)
inline val BVec4.rrbr get() = BVec4(r, r, b, r)
inline val BVec4.rrbg get() = BVec4(r, r, b, g)
inline val BVec4.rrbb get() = BVec4(r, r, b, b)
inline val BVec4.rrba get() = BVec4(r, r, b, a)
inline val BVec4.rrar get() = BVec4(r, r, a, r)
inline val BVec4.rrag get() = BVec4(r, r, a, g)
inline val BVec4.rrab get() = BVec4(r, r, a, b)
inline val BVec4.rraa get() = BVec4(r, r, a, a)
inline val BVec4.rgrr get() = BVec4(r, g, r, r)
inline val BVec4.rgrg get() = BVec4(r, g, r, g)
inline val BVec4.rgrb get() = BVec4(r, g, r, b)
inline val BVec4.rgra get() = BVec4(r, g, r, a)
inline val BVec4.rggr get() = BVec4(r, g, g, r)
inline val BVec4.rggg get() = BVec4(r, g, g, g)
inline val BVec4.rggb get() = BVec4(r, g, g, b)
inline val BVec4.rgga get() = BVec4(r, g, g, a)
inline val BVec4.rgbr get() = BVec4(r, g, b, r)
inline val BVec4.rgbg get() = BVec4(r, g, b, g)
inline val BVec4.rgbb get() = BVec4(r, g, b, b)
inline val BVec4.rgba get() = BVec4(r, g, b, a)
inline val BVec4.rgar get() = BVec4(r, g, a, r)
inline val BVec4.rgag get() = BVec4(r, g, a, g)
inline val BVec4.rgab get() = BVec4(r, g, a, b)
inline val BVec4.rgaa get() = BVec4(r, g, a, a)
inline val BVec4.rbrr get() = BVec4(r, b, r, r)
inline val BVec4.rbrg get() = BVec4(r, b, r, g)
inline val BVec4.rbrb get() = BVec4(r, b, r, b)
inline val BVec4.rbra get() = BVec4(r, b, r, a)
inline val BVec4.rbgr get() = BVec4(r, b, g, r)
inline val BVec4.rbgg get() = BVec4(r, b, g, g)
inline val BVec4.rbgb get() = BVec4(r, b, g, b)
inline val BVec4.rbga get() = BVec4(r, b, g, a)
inline val BVec4.rbbr get() = BVec4(r, b, b, r)
inline val BVec4.rbbg get() = BVec4(r, b, b, g)
inline val BVec4.rbbb get() = BVec4(r, b, b, b)
inline val BVec4.rbba get() = BVec4(r, b, b, a)
inline val BVec4.rbar get() = BVec4(r, b, a, r)
inline val BVec4.rbag get() = BVec4(r, b, a, g)
inline val BVec4.rbab get() = BVec4(r, b, a, b)
inline val BVec4.rbaa get() = BVec4(r, b, a, a)
inline val BVec4.rarr get() = BVec4(r, a, r, r)
inline val BVec4.rarg get() = BVec4(r, a, r, g)
inline val BVec4.rarb get() = BVec4(r, a, r, b)
inline val BVec4.rara get() = BVec4(r, a, r, a)
inline val BVec4.ragr get() = BVec4(r, a, g, r)
inline val BVec4.ragg get() = BVec4(r, a, g, g)
inline val BVec4.ragb get() = BVec4(r, a, g, b)
inline val BVec4.raga get() = BVec4(r, a, g, a)
inline val BVec4.rabr get() = BVec4(r, a, b, r)
inline val BVec4.rabg get() = BVec4(r, a, b, g)
inline val BVec4.rabb get() = BVec4(r, a, b, b)
inline val BVec4.raba get() = BVec4(r, a, b, a)
inline val BVec4.raar get() = BVec4(r, a, a, r)
inline val BVec4.raag get() = BVec4(r, a, a, g)
inline val BVec4.raab get() = BVec4(r, a, a, b)
inline val BVec4.raaa get() = BVec4(r, a, a, a)
inline val BVec4.grrr get() = BVec4(g, r, r, r)
inline val BVec4.grrg get() = BVec4(g, r, r, g)
inline val BVec4.grrb get() = BVec4(g, r, r, b)
inline val BVec4.grra get() = BVec4(g, r, r, a)
inline val BVec4.grgr get() = BVec4(g, r, g, r)
inline val BVec4.grgg get() = BVec4(g, r, g, g)
inline val BVec4.grgb get() = BVec4(g, r, g, b)
inline val BVec4.grga get() = BVec4(g, r, g, a)
inline val BVec4.grbr get() = BVec4(g, r, b, r)
inline val BVec4.grbg get() = BVec4(g, r, b, g)
inline val BVec4.grbb get() = BVec4(g, r, b, b)
inline val BVec4.grba get() = BVec4(g, r, b, a)
inline val BVec4.grar get() = BVec4(g, r, a, r)
inline val BVec4.grag get() = BVec4(g, r, a, g)
inline val BVec4.grab get() = BVec4(g, r, a, b)
inline val BVec4.graa get() = BVec4(g, r, a, a)
inline val BVec4.ggrr get() = BVec4(g, g, r, r)
inline val BVec4.ggrg get() = BVec4(g, g, r, g)
inline val BVec4.ggrb get() = BVec4(g, g, r, b)
inline val BVec4.ggra get() = BVec4(g, g, r, a)
inline val BVec4.gggr get() = BVec4(g, g, g, r)
inline val BVec4.gggg get() = BVec4(g, g, g, g)
inline val BVec4.gggb get() = BVec4(g, g, g, b)
inline val BVec4.ggga get() = BVec4(g, g, g, a)
inline val BVec4.ggbr get() = BVec4(g, g, b, r)
inline val BVec4.ggbg get() = BVec4(g, g, b, g)
inline val BVec4.ggbb get() = BVec4(g, g, b, b)
inline val BVec4.ggba get() = BVec4(g, g, b, a)
inline val BVec4.ggar get() = BVec4(g, g, a, r)
inline val BVec4.ggag get() = BVec4(g, g, a, g)
inline val BVec4.ggab get() = BVec4(g, g, a, b)
inline val BVec4.ggaa get() = BVec4(g, g, a, a)
inline val BVec4.gbrr get() = BVec4(g, b, r, r)
inline val BVec4.gbrg get() = BVec4(g, b, r, g)
inline val BVec4.gbrb get() = BVec4(g, b, r, b)
inline val BVec4.gbra get() = BVec4(g, b, r, a)
inline val BVec4.gbgr get() = BVec4(g, b, g, r)
inline val BVec4.gbgg get() = BVec4(g, b, g, g)
inline val BVec4.gbgb get() = BVec4(g, b, g, b)
inline val BVec4.gbga get() = BVec4(g, b, g, a)
inline val BVec4.gbbr get() = BVec4(g, b, b, r)
inline val BVec4.gbbg get() = BVec4(g, b, b, g)
inline val BVec4.gbbb get() = BVec4(g, b, b, b)
inline val BVec4.gbba get() = BVec4(g, b, b, a)
inline val BVec4.gbar get() = BVec4(g, b, a, r)
inline val BVec4.gbag get() = BVec4(g, b, a, g)
inline val BVec4.gbab get() = BVec4(g, b, a, b)
inline val BVec4.gbaa get() = BVec4(g, b, a, a)
inline val BVec4.garr get() = BVec4(g, a, r, r)
inline val BVec4.garg get() = BVec4(g, a, r, g)
inline val BVec4.garb get() = BVec4(g, a, r, b)
inline val BVec4.gara get() = BVec4(g, a, r, a)
inline val BVec4.gagr get() = BVec4(g, a, g, r)
inline val BVec4.gagg get() = BVec4(g, a, g, g)
inline val BVec4.gagb get() = BVec4(g, a, g, b)
inline val BVec4.gaga get() = BVec4(g, a, g, a)
inline val BVec4.gabr get() = BVec4(g, a, b, r)
inline val BVec4.gabg get() = BVec4(g, a, b, g)
inline val BVec4.gabb get() = BVec4(g, a, b, b)
inline val BVec4.gaba get() = BVec4(g, a, b, a)
inline val BVec4.gaar get() = BVec4(g, a, a, r)
inline val BVec4.gaag get() = BVec4(g, a, a, g)
inline val BVec4.gaab get() = BVec4(g, a, a, b)
inline val BVec4.gaaa get() = BVec4(g, a, a, a)
inline val BVec4.brrr get() = BVec4(b, r, r, r)
inline val BVec4.brrg get() = BVec4(b, r, r, g)
inline val BVec4.brrb get() = BVec4(b, r, r, b)
inline val BVec4.brra get() = BVec4(b, r, r, a)
inline val BVec4.brgr get() = BVec4(b, r, g, r)
inline val BVec4.brgg get() = BVec4(b, r, g, g)
inline val BVec4.brgb get() = BVec4(b, r, g, b)
inline val BVec4.brga get() = BVec4(b, r, g, a)
inline val BVec4.brbr get() = BVec4(b, r, b, r)
inline val BVec4.brbg get() = BVec4(b, r, b, g)
inline val BVec4.brbb get() = BVec4(b, r, b, b)
inline val BVec4.brba get() = BVec4(b, r, b, a)
inline val BVec4.brar get() = BVec4(b, r, a, r)
inline val BVec4.brag get() = BVec4(b, r, a, g)
inline val BVec4.brab get() = BVec4(b, r, a, b)
inline val BVec4.braa get() = BVec4(b, r, a, a)
inline val BVec4.bgrr get() = BVec4(b, g, r, r)
inline val BVec4.bgrg get() = BVec4(b, g, r, g)
inline val BVec4.bgrb get() = BVec4(b, g, r, b)
inline val BVec4.bgra get() = BVec4(b, g, r, a)
inline val BVec4.bggr get() = BVec4(b, g, g, r)
inline val BVec4.bggg get() = BVec4(b, g, g, g)
inline val BVec4.bggb get() = BVec4(b, g, g, b)
inline val BVec4.bgga get() = BVec4(b, g, g, a)
inline val BVec4.bgbr get() = BVec4(b, g, b, r)
inline val BVec4.bgbg get() = BVec4(b, g, b, g)
inline val BVec4.bgbb get() = BVec4(b, g, b, b)
inline val BVec4.bgba get() = BVec4(b, g, b, a)
inline val BVec4.bgar get() = BVec4(b, g, a, r)
inline val BVec4.bgag get() = BVec4(b, g, a, g)
inline val BVec4.bgab get() = BVec4(b, g, a, b)
inline val BVec4.bgaa get() = BVec4(b, g, a, a)
inline val BVec4.bbrr get() = BVec4(b, b, r, r)
inline val BVec4.bbrg get() = BVec4(b, b, r, g)
inline val BVec4.bbrb get() = BVec4(b, b, r, b)
inline val BVec4.bbra get() = BVec4(b, b, r, a)
inline val BVec4.bbgr get() = BVec4(b, b, g, r)
inline val BVec4.bbgg get() = BVec4(b, b, g, g)
inline val BVec4.bbgb get() = BVec4(b, b, g, b)
inline val BVec4.bbga get() = BVec4(b, b, g, a)
inline val BVec4.bbbr get() = BVec4(b, b, b, r)
inline val BVec4.bbbg get() = BVec4(b, b, b, g)
inline val BVec4.bbbb get() = BVec4(b, b, b, b)
inline val BVec4.bbba get() = BVec4(b, b, b, a)
inline val BVec4.bbar get() = BVec4(b, b, a, r)
inline val BVec4.bbag get() = BVec4(b, b, a, g)
inline val BVec4.bbab get() = BVec4(b, b, a, b)
inline val BVec4.bbaa get() = BVec4(b, b, a, a)
inline val BVec4.barr get() = BVec4(b, a, r, r)
inline val BVec4.barg get() = BVec4(b, a, r, g)
inline val BVec4.barb get() = BVec4(b, a, r, b)
inline val BVec4.bara get() = BVec4(b, a, r, a)
inline val BVec4.bagr get() = BVec4(b, a, g, r)
inline val BVec4.bagg get() = BVec4(b, a, g, g)
inline val BVec4.bagb get() = BVec4(b, a, g, b)
inline val BVec4.baga get() = BVec4(b, a, g, a)
inline val BVec4.babr get() = BVec4(b, a, b, r)
inline val BVec4.babg get() = BVec4(b, a, b, g)
inline val BVec4.babb get() = BVec4(b, a, b, b)
inline val BVec4.baba get() = BVec4(b, a, b, a)
inline val BVec4.baar get() = BVec4(b, a, a, r)
inline val BVec4.baag get() = BVec4(b, a, a, g)
inline val BVec4.baab get() = BVec4(b, a, a, b)
inline val BVec4.baaa get() = BVec4(b, a, a, a)
inline val BVec4.arrr get() = BVec4(a, r, r, r)
inline val BVec4.arrg get() = BVec4(a, r, r, g)
inline val BVec4.arrb get() = BVec4(a, r, r, b)
inline val BVec4.arra get() = BVec4(a, r, r, a)
inline val BVec4.argr get() = BVec4(a, r, g, r)
inline val BVec4.argg get() = BVec4(a, r, g, g)
inline val BVec4.argb get() = BVec4(a, r, g, b)
inline val BVec4.arga get() = BVec4(a, r, g, a)
inline val BVec4.arbr get() = BVec4(a, r, b, r)
inline val BVec4.arbg get() = BVec4(a, r, b, g)
inline val BVec4.arbb get() = BVec4(a, r, b, b)
inline val BVec4.arba get() = BVec4(a, r, b, a)
inline val BVec4.arar get() = BVec4(a, r, a, r)
inline val BVec4.arag get() = BVec4(a, r, a, g)
inline val BVec4.arab get() = BVec4(a, r, a, b)
inline val BVec4.araa get() = BVec4(a, r, a, a)
inline val BVec4.agrr get() = BVec4(a, g, r, r)
inline val BVec4.agrg get() = BVec4(a, g, r, g)
inline val BVec4.agrb get() = BVec4(a, g, r, b)
inline val BVec4.agra get() = BVec4(a, g, r, a)
inline val BVec4.aggr get() = BVec4(a, g, g, r)
inline val BVec4.aggg get() = BVec4(a, g, g, g)
inline val BVec4.aggb get() = BVec4(a, g, g, b)
inline val BVec4.agga get() = BVec4(a, g, g, a)
inline val BVec4.agbr get() = BVec4(a, g, b, r)
inline val BVec4.agbg get() = BVec4(a, g, b, g)
inline val BVec4.agbb get() = BVec4(a, g, b, b)
inline val BVec4.agba get() = BVec4(a, g, b, a)
inline val BVec4.agar get() = BVec4(a, g, a, r)
inline val BVec4.agag get() = BVec4(a, g, a, g)
inline val BVec4.agab get() = BVec4(a, g, a, b)
inline val BVec4.agaa get() = BVec4(a, g, a, a)
inline val BVec4.abrr get() = BVec4(a, b, r, r)
inline val BVec4.abrg get() = BVec4(a, b, r, g)
inline val BVec4.abrb get() = BVec4(a, b, r, b)
inline val BVec4.abra get() = BVec4(a, b, r, a)
inline val BVec4.abgr get() = BVec4(a, b, g, r)
inline val BVec4.abgg get() = BVec4(a, b, g, g)
inline val BVec4.abgb get() = BVec4(a, b, g, b)
inline val BVec4.abga get() = BVec4(a, b, g, a)
inline val BVec4.abbr get() = BVec4(a, b, b, r)
inline val BVec4.abbg get() = BVec4(a, b, b, g)
inline val BVec4.abbb get() = BVec4(a, b, b, b)
inline val BVec4.abba get() = BVec4(a, b, b, a)
inline val BVec4.abar get() = BVec4(a, b, a, r)
inline val BVec4.abag get() = BVec4(a, b, a, g)
inline val BVec4.abab get() = BVec4(a, b, a, b)
inline val BVec4.abaa get() = BVec4(a, b, a, a)
inline val BVec4.aarr get() = BVec4(a, a, r, r)
inline val BVec4.aarg get() = BVec4(a, a, r, g)
inline val BVec4.aarb get() = BVec4(a, a, r, b)
inline val BVec4.aara get() = BVec4(a, a, r, a)
inline val BVec4.aagr get() = BVec4(a, a, g, r)
inline val BVec4.aagg get() = BVec4(a, a, g, g)
inline val BVec4.aagb get() = BVec4(a, a, g, b)
inline val BVec4.aaga get() = BVec4(a, a, g, a)
inline val BVec4.aabr get() = BVec4(a, a, b, r)
inline val BVec4.aabg get() = BVec4(a, a, b, g)
inline val BVec4.aabb get() = BVec4(a, a, b, b)
inline val BVec4.aaba get() = BVec4(a, a, b, a)
inline val BVec4.aaar get() = BVec4(a, a, a, r)
inline val BVec4.aaag get() = BVec4(a, a, a, g)
inline val BVec4.aaab get() = BVec4(a, a, a, b)
inline val BVec4.aaaa get() = BVec4(a, a, a, a)
inline val BVec4.ssss get() = BVec4(s, s, s, s)
inline val BVec4.ssst get() = BVec4(s, s, s, t)
inline val BVec4.sssp get() = BVec4(s, s, s, p)
inline val BVec4.sssq get() = BVec4(s, s, s, q)
inline val BVec4.ssts get() = BVec4(s, s, t, s)
inline val BVec4.sstt get() = BVec4(s, s, t, t)
inline val BVec4.sstp get() = BVec4(s, s, t, p)
inline val BVec4.sstq get() = BVec4(s, s, t, q)
inline val BVec4.ssps get() = BVec4(s, s, p, s)
inline val BVec4.sspt get() = BVec4(s, s, p, t)
inline val BVec4.sspp get() = BVec4(s, s, p, p)
inline val BVec4.sspq get() = BVec4(s, s, p, q)
inline val BVec4.ssqs get() = BVec4(s, s, q, s)
inline val BVec4.ssqt get() = BVec4(s, s, q, t)
inline val BVec4.ssqp get() = BVec4(s, s, q, p)
inline val BVec4.ssqq get() = BVec4(s, s, q, q)
inline val BVec4.stss get() = BVec4(s, t, s, s)
inline val BVec4.stst get() = BVec4(s, t, s, t)
inline val BVec4.stsp get() = BVec4(s, t, s, p)
inline val BVec4.stsq get() = BVec4(s, t, s, q)
inline val BVec4.stts get() = BVec4(s, t, t, s)
inline val BVec4.sttt get() = BVec4(s, t, t, t)
inline val BVec4.sttp get() = BVec4(s, t, t, p)
inline val BVec4.sttq get() = BVec4(s, t, t, q)
inline val BVec4.stps get() = BVec4(s, t, p, s)
inline val BVec4.stpt get() = BVec4(s, t, p, t)
inline val BVec4.stpp get() = BVec4(s, t, p, p)
inline val BVec4.stpq get() = BVec4(s, t, p, q)
inline val BVec4.stqs get() = BVec4(s, t, q, s)
inline val BVec4.stqt get() = BVec4(s, t, q, t)
inline val BVec4.stqp get() = BVec4(s, t, q, p)
inline val BVec4.stqq get() = BVec4(s, t, q, q)
inline val BVec4.spss get() = BVec4(s, p, s, s)
inline val BVec4.spst get() = BVec4(s, p, s, t)
inline val BVec4.spsp get() = BVec4(s, p, s, p)
inline val BVec4.spsq get() = BVec4(s, p, s, q)
inline val BVec4.spts get() = BVec4(s, p, t, s)
inline val BVec4.sptt get() = BVec4(s, p, t, t)
inline val BVec4.sptp get() = BVec4(s, p, t, p)
inline val BVec4.sptq get() = BVec4(s, p, t, q)
inline val BVec4.spps get() = BVec4(s, p, p, s)
inline val BVec4.sppt get() = BVec4(s, p, p, t)
inline val BVec4.sppp get() = BVec4(s, p, p, p)
inline val BVec4.sppq get() = BVec4(s, p, p, q)
inline val BVec4.spqs get() = BVec4(s, p, q, s)
inline val BVec4.spqt get() = BVec4(s, p, q, t)
inline val BVec4.spqp get() = BVec4(s, p, q, p)
inline val BVec4.spqq get() = BVec4(s, p, q, q)
inline val BVec4.sqss get() = BVec4(s, q, s, s)
inline val BVec4.sqst get() = BVec4(s, q, s, t)
inline val BVec4.sqsp get() = BVec4(s, q, s, p)
inline val BVec4.sqsq get() = BVec4(s, q, s, q)
inline val BVec4.sqts get() = BVec4(s, q, t, s)
inline val BVec4.sqtt get() = BVec4(s, q, t, t)
inline val BVec4.sqtp get() = BVec4(s, q, t, p)
inline val BVec4.sqtq get() = BVec4(s, q, t, q)
inline val BVec4.sqps get() = BVec4(s, q, p, s)
inline val BVec4.sqpt get() = BVec4(s, q, p, t)
inline val BVec4.sqpp get() = BVec4(s, q, p, p)
inline val BVec4.sqpq get() = BVec4(s, q, p, q)
inline val BVec4.sqqs get() = BVec4(s, q, q, s)
inline val BVec4.sqqt get() = BVec4(s, q, q, t)
inline val BVec4.sqqp get() = BVec4(s, q, q, p)
inline val BVec4.sqqq get() = BVec4(s, q, q, q)
inline val BVec4.tsss get() = BVec4(t, s, s, s)
inline val BVec4.tsst get() = BVec4(t, s, s, t)
inline val BVec4.tssp get() = BVec4(t, s, s, p)
inline val BVec4.tssq get() = BVec4(t, s, s, q)
inline val BVec4.tsts get() = BVec4(t, s, t, s)
inline val BVec4.tstt get() = BVec4(t, s, t, t)
inline val BVec4.tstp get() = BVec4(t, s, t, p)
inline val BVec4.tstq get() = BVec4(t, s, t, q)
inline val BVec4.tsps get() = BVec4(t, s, p, s)
inline val BVec4.tspt get() = BVec4(t, s, p, t)
inline val BVec4.tspp get() = BVec4(t, s, p, p)
inline val BVec4.tspq get() = BVec4(t, s, p, q)
inline val BVec4.tsqs get() = BVec4(t, s, q, s)
inline val BVec4.tsqt get() = BVec4(t, s, q, t)
inline val BVec4.tsqp get() = BVec4(t, s, q, p)
inline val BVec4.tsqq get() = BVec4(t, s, q, q)
inline val BVec4.ttss get() = BVec4(t, t, s, s)
inline val BVec4.ttst get() = BVec4(t, t, s, t)
inline val BVec4.ttsp get() = BVec4(t, t, s, p)
inline val BVec4.ttsq get() = BVec4(t, t, s, q)
inline val BVec4.ttts get() = BVec4(t, t, t, s)
inline val BVec4.tttt get() = BVec4(t, t, t, t)
inline val BVec4.tttp get() = BVec4(t, t, t, p)
inline val BVec4.tttq get() = BVec4(t, t, t, q)
inline val BVec4.ttps get() = BVec4(t, t, p, s)
inline val BVec4.ttpt get() = BVec4(t, t, p, t)
inline val BVec4.ttpp get() = BVec4(t, t, p, p)
inline val BVec4.ttpq get() = BVec4(t, t, p, q)
inline val BVec4.ttqs get() = BVec4(t, t, q, s)
inline val BVec4.ttqt get() = BVec4(t, t, q, t)
inline val BVec4.ttqp get() = BVec4(t, t, q, p)
inline val BVec4.ttqq get() = BVec4(t, t, q, q)
inline val BVec4.tpss get() = BVec4(t, p, s, s)
inline val BVec4.tpst get() = BVec4(t, p, s, t)
inline val BVec4.tpsp get() = BVec4(t, p, s, p)
inline val BVec4.tpsq get() = BVec4(t, p, s, q)
inline val BVec4.tpts get() = BVec4(t, p, t, s)
inline val BVec4.tptt get() = BVec4(t, p, t, t)
inline val BVec4.tptp get() = BVec4(t, p, t, p)
inline val BVec4.tptq get() = BVec4(t, p, t, q)
inline val BVec4.tpps get() = BVec4(t, p, p, s)
inline val BVec4.tppt get() = BVec4(t, p, p, t)
inline val BVec4.tppp get() = BVec4(t, p, p, p)
inline val BVec4.tppq get() = BVec4(t, p, p, q)
inline val BVec4.tpqs get() = BVec4(t, p, q, s)
inline val BVec4.tpqt get() = BVec4(t, p, q, t)
inline val BVec4.tpqp get() = BVec4(t, p, q, p)
inline val BVec4.tpqq get() = BVec4(t, p, q, q)
inline val BVec4.tqss get() = BVec4(t, q, s, s)
inline val BVec4.tqst get() = BVec4(t, q, s, t)
inline val BVec4.tqsp get() = BVec4(t, q, s, p)
inline val BVec4.tqsq get() = BVec4(t, q, s, q)
inline val BVec4.tqts get() = BVec4(t, q, t, s)
inline val BVec4.tqtt get() = BVec4(t, q, t, t)
inline val BVec4.tqtp get() = BVec4(t, q, t, p)
inline val BVec4.tqtq get() = BVec4(t, q, t, q)
inline val BVec4.tqps get() = BVec4(t, q, p, s)
inline val BVec4.tqpt get() = BVec4(t, q, p, t)
inline val BVec4.tqpp get() = BVec4(t, q, p, p)
inline val BVec4.tqpq get() = BVec4(t, q, p, q)
inline val BVec4.tqqs get() = BVec4(t, q, q, s)
inline val BVec4.tqqt get() = BVec4(t, q, q, t)
inline val BVec4.tqqp get() = BVec4(t, q, q, p)
inline val BVec4.tqqq get() = BVec4(t, q, q, q)
inline val BVec4.psss get() = BVec4(p, s, s, s)
inline val BVec4.psst get() = BVec4(p, s, s, t)
inline val BVec4.pssp get() = BVec4(p, s, s, p)
inline val BVec4.pssq get() = BVec4(p, s, s, q)
inline val BVec4.psts get() = BVec4(p, s, t, s)
inline val BVec4.pstt get() = BVec4(p, s, t, t)
inline val BVec4.pstp get() = BVec4(p, s, t, p)
inline val BVec4.pstq get() = BVec4(p, s, t, q)
inline val BVec4.psps get() = BVec4(p, s, p, s)
inline val BVec4.pspt get() = BVec4(p, s, p, t)
inline val BVec4.pspp get() = BVec4(p, s, p, p)
inline val BVec4.pspq get() = BVec4(p, s, p, q)
inline val BVec4.psqs get() = BVec4(p, s, q, s)
inline val BVec4.psqt get() = BVec4(p, s, q, t)
inline val BVec4.psqp get() = BVec4(p, s, q, p)
inline val BVec4.psqq get() = BVec4(p, s, q, q)
inline val BVec4.ptss get() = BVec4(p, t, s, s)
inline val BVec4.ptst get() = BVec4(p, t, s, t)
inline val BVec4.ptsp get() = BVec4(p, t, s, p)
inline val BVec4.ptsq get() = BVec4(p, t, s, q)
inline val BVec4.ptts get() = BVec4(p, t, t, s)
inline val BVec4.pttt get() = BVec4(p, t, t, t)
inline val BVec4.pttp get() = BVec4(p, t, t, p)
inline val BVec4.pttq get() = BVec4(p, t, t, q)
inline val BVec4.ptps get() = BVec4(p, t, p, s)
inline val BVec4.ptpt get() = BVec4(p, t, p, t)
inline val BVec4.ptpp get() = BVec4(p, t, p, p)
inline val BVec4.ptpq get() = BVec4(p, t, p, q)
inline val BVec4.ptqs get() = BVec4(p, t, q, s)
inline val BVec4.ptqt get() = BVec4(p, t, q, t)
inline val BVec4.ptqp get() = BVec4(p, t, q, p)
inline val BVec4.ptqq get() = BVec4(p, t, q, q)
inline val BVec4.ppss get() = BVec4(p, p, s, s)
inline val BVec4.ppst get() = BVec4(p, p, s, t)
inline val BVec4.ppsp get() = BVec4(p, p, s, p)
inline val BVec4.ppsq get() = BVec4(p, p, s, q)
inline val BVec4.ppts get() = BVec4(p, p, t, s)
inline val BVec4.pptt get() = BVec4(p, p, t, t)
inline val BVec4.pptp get() = BVec4(p, p, t, p)
inline val BVec4.pptq get() = BVec4(p, p, t, q)
inline val BVec4.ppps get() = BVec4(p, p, p, s)
inline val BVec4.pppt get() = BVec4(p, p, p, t)
inline val BVec4.pppp get() = BVec4(p, p, p, p)
inline val BVec4.pppq get() = BVec4(p, p, p, q)
inline val BVec4.ppqs get() = BVec4(p, p, q, s)
inline val BVec4.ppqt get() = BVec4(p, p, q, t)
inline val BVec4.ppqp get() = BVec4(p, p, q, p)
inline val BVec4.ppqq get() = BVec4(p, p, q, q)
inline val BVec4.pqss get() = BVec4(p, q, s, s)
inline val BVec4.pqst get() = BVec4(p, q, s, t)
inline val BVec4.pqsp get() = BVec4(p, q, s, p)
inline val BVec4.pqsq get() = BVec4(p, q, s, q)
inline val BVec4.pqts get() = BVec4(p, q, t, s)
inline val BVec4.pqtt get() = BVec4(p, q, t, t)
inline val BVec4.pqtp get() = BVec4(p, q, t, p)
inline val BVec4.pqtq get() = BVec4(p, q, t, q)
inline val BVec4.pqps get() = BVec4(p, q, p, s)
inline val BVec4.pqpt get() = BVec4(p, q, p, t)
inline val BVec4.pqpp get() = BVec4(p, q, p, p)
inline val BVec4.pqpq get() = BVec4(p, q, p, q)
inline val BVec4.pqqs get() = BVec4(p, q, q, s)
inline val BVec4.pqqt get() = BVec4(p, q, q, t)
inline val BVec4.pqqp get() = BVec4(p, q, q, p)
inline val BVec4.pqqq get() = BVec4(p, q, q, q)
inline val BVec4.qsss get() = BVec4(q, s, s, s)
inline val BVec4.qsst get() = BVec4(q, s, s, t)
inline val BVec4.qssp get() = BVec4(q, s, s, p)
inline val BVec4.qssq get() = BVec4(q, s, s, q)
inline val BVec4.qsts get() = BVec4(q, s, t, s)
inline val BVec4.qstt get() = BVec4(q, s, t, t)
inline val BVec4.qstp get() = BVec4(q, s, t, p)
inline val BVec4.qstq get() = BVec4(q, s, t, q)
inline val BVec4.qsps get() = BVec4(q, s, p, s)
inline val BVec4.qspt get() = BVec4(q, s, p, t)
inline val BVec4.qspp get() = BVec4(q, s, p, p)
inline val BVec4.qspq get() = BVec4(q, s, p, q)
inline val BVec4.qsqs get() = BVec4(q, s, q, s)
inline val BVec4.qsqt get() = BVec4(q, s, q, t)
inline val BVec4.qsqp get() = BVec4(q, s, q, p)
inline val BVec4.qsqq get() = BVec4(q, s, q, q)
inline val BVec4.qtss get() = BVec4(q, t, s, s)
inline val BVec4.qtst get() = BVec4(q, t, s, t)
inline val BVec4.qtsp get() = BVec4(q, t, s, p)
inline val BVec4.qtsq get() = BVec4(q, t, s, q)
inline val BVec4.qtts get() = BVec4(q, t, t, s)
inline val BVec4.qttt get() = BVec4(q, t, t, t)
inline val BVec4.qttp get() = BVec4(q, t, t, p)
inline val BVec4.qttq get() = BVec4(q, t, t, q)
inline val BVec4.qtps get() = BVec4(q, t, p, s)
inline val BVec4.qtpt get() = BVec4(q, t, p, t)
inline val BVec4.qtpp get() = BVec4(q, t, p, p)
inline val BVec4.qtpq get() = BVec4(q, t, p, q)
inline val BVec4.qtqs get() = BVec4(q, t, q, s)
inline val BVec4.qtqt get() = BVec4(q, t, q, t)
inline val BVec4.qtqp get() = BVec4(q, t, q, p)
inline val BVec4.qtqq get() = BVec4(q, t, q, q)
inline val BVec4.qpss get() = BVec4(q, p, s, s)
inline val BVec4.qpst get() = BVec4(q, p, s, t)
inline val BVec4.qpsp get() = BVec4(q, p, s, p)
inline val BVec4.qpsq get() = BVec4(q, p, s, q)
inline val BVec4.qpts get() = BVec4(q, p, t, s)
inline val BVec4.qptt get() = BVec4(q, p, t, t)
inline val BVec4.qptp get() = BVec4(q, p, t, p)
inline val BVec4.qptq get() = BVec4(q, p, t, q)
inline val BVec4.qpps get() = BVec4(q, p, p, s)
inline val BVec4.qppt get() = BVec4(q, p, p, t)
inline val BVec4.qppp get() = BVec4(q, p, p, p)
inline val BVec4.qppq get() = BVec4(q, p, p, q)
inline val BVec4.qpqs get() = BVec4(q, p, q, s)
inline val BVec4.qpqt get() = BVec4(q, p, q, t)
inline val BVec4.qpqp get() = BVec4(q, p, q, p)
inline val BVec4.qpqq get() = BVec4(q, p, q, q)
inline val BVec4.qqss get() = BVec4(q, q, s, s)
inline val BVec4.qqst get() = BVec4(q, q, s, t)
inline val BVec4.qqsp get() = BVec4(q, q, s, p)
inline val BVec4.qqsq get() = BVec4(q, q, s, q)
inline val BVec4.qqts get() = BVec4(q, q, t, s)
inline val BVec4.qqtt get() = BVec4(q, q, t, t)
inline val BVec4.qqtp get() = BVec4(q, q, t, p)
inline val BVec4.qqtq get() = BVec4(q, q, t, q)
inline val BVec4.qqps get() = BVec4(q, q, p, s)
inline val BVec4.qqpt get() = BVec4(q, q, p, t)
inline val BVec4.qqpp get() = BVec4(q, q, p, p)
inline val BVec4.qqpq get() = BVec4(q, q, p, q)
inline val BVec4.qqqs get() = BVec4(q, q, q, s)
inline val BVec4.qqqt get() = BVec4(q, q, q, t)
inline val BVec4.qqqp get() = BVec4(q, q, q, p)
inline val BVec4.qqqq get() = BVec4(q, q, q, q)
//endregion