{- ORMOLU_DISABLE -}
-- Implicit CAD. Copyright (C) 2011, Christopher Olah (chris@colah.ca)
-- Released under the GNU AGPLV3+, see LICENSE

-- We want a type that can represent squares/quads and triangles.
module Graphics.Implicit.Export.Render.Definitions (TriSquare(Tris, Sq)) where

-- Points/Numbers, and the concept of an array of triangles.
import Graphics.Implicit.Definitions(, ℝ2, ℝ3, TriangleMesh)

-- So we can use Parallel on this type.
import Control.DeepSeq (NFData, rnf)

data TriSquare =
      Sq (ℝ3,ℝ3,ℝ3)  ℝ2 ℝ2
    | Tris TriangleMesh

instance NFData TriSquare where
    rnf :: TriSquare -> ()
rnf (Sq (ℝ3, ℝ3, ℝ3)
b z ℝ2
xS ℝ2
yS) = forall a. NFData a => a -> ()
rnf ((ℝ3, ℝ3, ℝ3)
b,z,ℝ2
xS,ℝ2
yS)
    rnf (Tris TriangleMesh
tris) = forall a. NFData a => a -> ()
rnf TriangleMesh
tris