0 | module Data.NumIdr.Transform.Trivial
 1 |
 2 | import Data.Vect
 3 | import Data.NumIdr.Interfaces
 4 | import Data.NumIdr.Array
 5 | import Data.NumIdr.Vector
 6 | import Data.NumIdr.Matrix
 7 | import Data.NumIdr.Homogeneous
 8 | import Data.NumIdr.Transform.Point
 9 | import Data.NumIdr.Transform.Transform
10 |
11 | %default total
12 |
13 |
14 | ||| A trivial transform is a transform that must leave all points unchanged.
15 | ||| This transform type only exists so that `linearize` can take a translation
16 | ||| as input.
17 | public export
18 | Trivial : Nat -> Type -> Type
19 | Trivial = Transform TTrivial
20 |
21 |
22 | ||| Determine if a homogeneous matrix is trivial.
23 | export
24 | isTrivial : Eq a => Num a => HMatrix' n a -> Bool
25 | isTrivial {n} mat with (viewShape mat)
26 |   _ | Shape [S n,S n] = mat == identity
27 |