packages feed

geomancy-0.4.0.0: src/Geomancy/Swizzle/UVec/Up.hs

{-# LANGUAGE BlockArguments #-}
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# OPTIONS_GHC -Wno-orphans #-}

module Geomancy.Swizzle.UVec.Up () where

import GHC.Records (HasField(..))

import Geomancy.UVec2 (UVec2, withUVec2)
import Geomancy.UVec3 (UVec3, uvec3, withUVec3)
import Geomancy.UVec4 (UVec4, uvec4)

instance HasField "xxx" UVec2 UVec3 where
  {-# INLINE getField #-}
  getField v = withUVec2 v \x _ -> uvec3 x x x

instance HasField "xxy" UVec2 UVec3 where
  {-# INLINE getField #-}
  getField v = withUVec2 v \x y -> uvec3 x x y

instance HasField "xyx" UVec2 UVec3 where
  {-# INLINE getField #-}
  getField v = withUVec2 v \x y -> uvec3 x y x

instance HasField "xyy" UVec2 UVec3 where
  {-# INLINE getField #-}
  getField v = withUVec2 v \x y -> uvec3 x y y

instance HasField "yxx" UVec2 UVec3 where
  {-# INLINE getField #-}
  getField v = withUVec2 v \x y -> uvec3 y x x

instance HasField "yxy" UVec2 UVec3 where
  {-# INLINE getField #-}
  getField v = withUVec2 v \x y -> uvec3 y x y

instance HasField "yyx" UVec2 UVec3 where
  {-# INLINE getField #-}
  getField v = withUVec2 v \x y -> uvec3 y y x

instance HasField "yyy" UVec2 UVec3 where
  {-# INLINE getField #-}
  getField v = withUVec2 v \_ y -> uvec3 y y y

instance HasField "xxxx" UVec2 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec2 v \x _ -> uvec4 x x x x

instance HasField "xxxy" UVec2 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec2 v \x y -> uvec4 x x x y

instance HasField "xxyx" UVec2 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec2 v \x y -> uvec4 x x y x

instance HasField "xxyy" UVec2 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec2 v \x y -> uvec4 x x y y

instance HasField "xyxx" UVec2 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec2 v \x y -> uvec4 x y x x

instance HasField "xyxy" UVec2 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec2 v \x y -> uvec4 x y x y

instance HasField "xyyx" UVec2 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec2 v \x y -> uvec4 x y y x

instance HasField "xyyy" UVec2 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec2 v \x y -> uvec4 x y y y

instance HasField "yxxx" UVec2 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec2 v \x y -> uvec4 y x x x

instance HasField "yxxy" UVec2 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec2 v \x y -> uvec4 y x x y

instance HasField "yxyx" UVec2 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec2 v \x y -> uvec4 y x y x

instance HasField "yxyy" UVec2 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec2 v \x y -> uvec4 y x y y

instance HasField "yyxx" UVec2 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec2 v \x y -> uvec4 y y x x

instance HasField "yyxy" UVec2 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec2 v \x y -> uvec4 y y x y

instance HasField "yyyx" UVec2 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec2 v \x y -> uvec4 y y y x

instance HasField "yyyy" UVec2 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec2 v \_ y -> uvec4 y y y y

instance HasField "xxxx" UVec3 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec3 v \x _ _ -> uvec4 x x x x

instance HasField "xxxy" UVec3 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec3 v \x y _ -> uvec4 x x x y

instance HasField "xxxz" UVec3 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec3 v \x _ z -> uvec4 x x x z

instance HasField "xxyx" UVec3 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec3 v \x y _ -> uvec4 x x y x

instance HasField "xxyy" UVec3 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec3 v \x y _ -> uvec4 x x y y

instance HasField "xxyz" UVec3 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec3 v \x y z -> uvec4 x x y z

instance HasField "xxzx" UVec3 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec3 v \x _ z -> uvec4 x x z x

instance HasField "xxzy" UVec3 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec3 v \x y z -> uvec4 x x z y

instance HasField "xxzz" UVec3 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec3 v \x _ z -> uvec4 x x z z

instance HasField "xyxx" UVec3 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec3 v \x y _ -> uvec4 x y x x

instance HasField "xyxy" UVec3 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec3 v \x y _ -> uvec4 x y x y

instance HasField "xyxz" UVec3 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec3 v \x y z -> uvec4 x y x z

instance HasField "xyyx" UVec3 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec3 v \x y _ -> uvec4 x y y x

instance HasField "xyyy" UVec3 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec3 v \x y _ -> uvec4 x y y y

instance HasField "xyyz" UVec3 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec3 v \x y z -> uvec4 x y y z

instance HasField "xyzx" UVec3 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec3 v \x y z -> uvec4 x y z x

instance HasField "xyzy" UVec3 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec3 v \x y z -> uvec4 x y z y

instance HasField "xyzz" UVec3 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec3 v \x y z -> uvec4 x y z z

instance HasField "xzxx" UVec3 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec3 v \x _ z -> uvec4 x z x x

instance HasField "xzxy" UVec3 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec3 v \x y z -> uvec4 x z x y

instance HasField "xzxz" UVec3 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec3 v \x _ z -> uvec4 x z x z

instance HasField "xzyx" UVec3 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec3 v \x y z -> uvec4 x z y x

instance HasField "xzyy" UVec3 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec3 v \x y z -> uvec4 x z y y

instance HasField "xzyz" UVec3 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec3 v \x y z -> uvec4 x z y z

instance HasField "xzzx" UVec3 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec3 v \x _ z -> uvec4 x z z x

instance HasField "xzzy" UVec3 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec3 v \x y z -> uvec4 x z z y

instance HasField "xzzz" UVec3 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec3 v \x _ z -> uvec4 x z z z

instance HasField "yxxx" UVec3 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec3 v \x y _ -> uvec4 y x x x

instance HasField "yxxy" UVec3 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec3 v \x y _ -> uvec4 y x x y

instance HasField "yxxz" UVec3 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec3 v \x y z -> uvec4 y x x z

instance HasField "yxyx" UVec3 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec3 v \x y _ -> uvec4 y x y x

instance HasField "yxyy" UVec3 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec3 v \x y _ -> uvec4 y x y y

instance HasField "yxyz" UVec3 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec3 v \x y z -> uvec4 y x y z

instance HasField "yxzx" UVec3 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec3 v \x y z -> uvec4 y x z x

instance HasField "yxzy" UVec3 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec3 v \x y z -> uvec4 y x z y

instance HasField "yxzz" UVec3 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec3 v \x y z -> uvec4 y x z z

instance HasField "yyxx" UVec3 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec3 v \x y _ -> uvec4 y y x x

instance HasField "yyxy" UVec3 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec3 v \x y _ -> uvec4 y y x y

instance HasField "yyxz" UVec3 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec3 v \x y z -> uvec4 y y x z

instance HasField "yyyx" UVec3 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec3 v \x y _ -> uvec4 y y y x

instance HasField "yyyy" UVec3 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec3 v \_ y _ -> uvec4 y y y y

instance HasField "yyyz" UVec3 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec3 v \_ y z -> uvec4 y y y z

instance HasField "yyzx" UVec3 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec3 v \x y z -> uvec4 y y z x

instance HasField "yyzy" UVec3 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec3 v \_ y z -> uvec4 y y z y

instance HasField "yyzz" UVec3 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec3 v \_ y z -> uvec4 y y z z

instance HasField "yzxx" UVec3 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec3 v \x y z -> uvec4 y z x x

instance HasField "yzxy" UVec3 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec3 v \x y z -> uvec4 y z x y

instance HasField "yzxz" UVec3 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec3 v \x y z -> uvec4 y z x z

instance HasField "yzyx" UVec3 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec3 v \x y z -> uvec4 y z y x

instance HasField "yzyy" UVec3 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec3 v \_ y z -> uvec4 y z y y

instance HasField "yzyz" UVec3 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec3 v \_ y z -> uvec4 y z y z

instance HasField "yzzx" UVec3 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec3 v \x y z -> uvec4 y z z x

instance HasField "yzzy" UVec3 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec3 v \_ y z -> uvec4 y z z y

instance HasField "yzzz" UVec3 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec3 v \_ y z -> uvec4 y z z z

instance HasField "zxxx" UVec3 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec3 v \x _ z -> uvec4 z x x x

instance HasField "zxxy" UVec3 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec3 v \x y z -> uvec4 z x x y

instance HasField "zxxz" UVec3 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec3 v \x _ z -> uvec4 z x x z

instance HasField "zxyx" UVec3 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec3 v \x y z -> uvec4 z x y x

instance HasField "zxyy" UVec3 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec3 v \x y z -> uvec4 z x y y

instance HasField "zxyz" UVec3 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec3 v \x y z -> uvec4 z x y z

instance HasField "zxzx" UVec3 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec3 v \x _ z -> uvec4 z x z x

instance HasField "zxzy" UVec3 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec3 v \x y z -> uvec4 z x z y

instance HasField "zxzz" UVec3 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec3 v \x _ z -> uvec4 z x z z

instance HasField "zyxx" UVec3 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec3 v \x y z -> uvec4 z y x x

instance HasField "zyxy" UVec3 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec3 v \x y z -> uvec4 z y x y

instance HasField "zyxz" UVec3 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec3 v \x y z -> uvec4 z y x z

instance HasField "zyyx" UVec3 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec3 v \x y z -> uvec4 z y y x

instance HasField "zyyy" UVec3 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec3 v \_ y z -> uvec4 z y y y

instance HasField "zyyz" UVec3 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec3 v \_ y z -> uvec4 z y y z

instance HasField "zyzx" UVec3 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec3 v \x y z -> uvec4 z y z x

instance HasField "zyzy" UVec3 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec3 v \_ y z -> uvec4 z y z y

instance HasField "zyzz" UVec3 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec3 v \_ y z -> uvec4 z y z z

instance HasField "zzxx" UVec3 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec3 v \x _ z -> uvec4 z z x x

instance HasField "zzxy" UVec3 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec3 v \x y z -> uvec4 z z x y

instance HasField "zzxz" UVec3 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec3 v \x _ z -> uvec4 z z x z

instance HasField "zzyx" UVec3 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec3 v \x y z -> uvec4 z z y x

instance HasField "zzyy" UVec3 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec3 v \_ y z -> uvec4 z z y y

instance HasField "zzyz" UVec3 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec3 v \_ y z -> uvec4 z z y z

instance HasField "zzzx" UVec3 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec3 v \x _ z -> uvec4 z z z x

instance HasField "zzzy" UVec3 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec3 v \_ y z -> uvec4 z z z y

instance HasField "zzzz" UVec3 UVec4 where
  {-# INLINE getField #-}
  getField v = withUVec3 v \_ _ z -> uvec4 z z z z