All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.github.aecsocket.klam.VecB.kt Maven / Gradle / Ivy

There is a newer version: 0.4.1
Show newest version
@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




© 2015 - 2024 Weber Informatics LLC | Privacy Policy