{-# OPTIONS_GHC -fno-warn-orphans #-}

module Data.Vec.OpenGLRaw
    ()
    where

import Data.Vec.LinAlg (NearZero(..))
import qualified Graphics.Rendering.OpenGL.Raw.Core31 as GL

instance NearZero GL.GLbitfield
instance NearZero GL.GLboolean
instance NearZero GL.GLbyte
instance NearZero GL.GLchar
instance NearZero GL.GLenum
instance NearZero GL.GLhalf
instance NearZero GL.GLint
instance NearZero GL.GLintptr
instance NearZero GL.GLshort
instance NearZero GL.GLsizei
instance NearZero GL.GLsizeiptr
instance NearZero GL.GLubyte
instance NearZero GL.GLuint
instance NearZero GL.GLushort

instance NearZero GL.GLfloat where
  nearZero x = abs x < 1e-6
  {-# INLINE nearZero #-}

instance NearZero GL.GLdouble where
  nearZero x = abs x < 1e-14
  {-# INLINE nearZero #-}

instance NearZero GL.GLclampf where
  nearZero x = abs x < 1e-6
  {-# INLINE nearZero #-}

instance NearZero GL.GLclampd where
  nearZero x = abs x < 1e-14
  {-# INLINE nearZero #-}