module Data.Geometry.PlanarSubdivision.TreeRep( PlanarSD(..)
, Vtx(..)
, myTreeRep
) where
import Data.Aeson
import Data.PlaneGraph.AdjRep (Vtx(..))
import GHC.Generics (Generic)
import Data.Geometry.Point
import Data.RealNumber.Rational
data PlanarSD v e f r = PlanarSD
{ PlanarSD v e f r -> f
outerFace :: f
, PlanarSD v e f r -> InnerSD v e f r
inner :: InnerSD v e f r
} deriving (Int -> PlanarSD v e f r -> ShowS
[PlanarSD v e f r] -> ShowS
PlanarSD v e f r -> String
(Int -> PlanarSD v e f r -> ShowS)
-> (PlanarSD v e f r -> String)
-> ([PlanarSD v e f r] -> ShowS)
-> Show (PlanarSD v e f r)
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
forall v e f r.
(Show f, Show r, Show e, Show v) =>
Int -> PlanarSD v e f r -> ShowS
forall v e f r.
(Show f, Show r, Show e, Show v) =>
[PlanarSD v e f r] -> ShowS
forall v e f r.
(Show f, Show r, Show e, Show v) =>
PlanarSD v e f r -> String
showList :: [PlanarSD v e f r] -> ShowS
$cshowList :: forall v e f r.
(Show f, Show r, Show e, Show v) =>
[PlanarSD v e f r] -> ShowS
show :: PlanarSD v e f r -> String
$cshow :: forall v e f r.
(Show f, Show r, Show e, Show v) =>
PlanarSD v e f r -> String
showsPrec :: Int -> PlanarSD v e f r -> ShowS
$cshowsPrec :: forall v e f r.
(Show f, Show r, Show e, Show v) =>
Int -> PlanarSD v e f r -> ShowS
Show,PlanarSD v e f r -> PlanarSD v e f r -> Bool
(PlanarSD v e f r -> PlanarSD v e f r -> Bool)
-> (PlanarSD v e f r -> PlanarSD v e f r -> Bool)
-> Eq (PlanarSD v e f r)
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
forall v e f r.
(Eq f, Eq r, Eq e, Eq v) =>
PlanarSD v e f r -> PlanarSD v e f r -> Bool
/= :: PlanarSD v e f r -> PlanarSD v e f r -> Bool
$c/= :: forall v e f r.
(Eq f, Eq r, Eq e, Eq v) =>
PlanarSD v e f r -> PlanarSD v e f r -> Bool
== :: PlanarSD v e f r -> PlanarSD v e f r -> Bool
$c== :: forall v e f r.
(Eq f, Eq r, Eq e, Eq v) =>
PlanarSD v e f r -> PlanarSD v e f r -> Bool
Eq,a -> PlanarSD v e f b -> PlanarSD v e f a
(a -> b) -> PlanarSD v e f a -> PlanarSD v e f b
(forall a b. (a -> b) -> PlanarSD v e f a -> PlanarSD v e f b)
-> (forall a b. a -> PlanarSD v e f b -> PlanarSD v e f a)
-> Functor (PlanarSD v e f)
forall a b. a -> PlanarSD v e f b -> PlanarSD v e f a
forall a b. (a -> b) -> PlanarSD v e f a -> PlanarSD v e f b
forall v e f a b. a -> PlanarSD v e f b -> PlanarSD v e f a
forall v e f a b. (a -> b) -> PlanarSD v e f a -> PlanarSD v e f b
forall (f :: * -> *).
(forall a b. (a -> b) -> f a -> f b)
-> (forall a b. a -> f b -> f a) -> Functor f
<$ :: a -> PlanarSD v e f b -> PlanarSD v e f a
$c<$ :: forall v e f a b. a -> PlanarSD v e f b -> PlanarSD v e f a
fmap :: (a -> b) -> PlanarSD v e f a -> PlanarSD v e f b
$cfmap :: forall v e f a b. (a -> b) -> PlanarSD v e f a -> PlanarSD v e f b
Functor,(forall x. PlanarSD v e f r -> Rep (PlanarSD v e f r) x)
-> (forall x. Rep (PlanarSD v e f r) x -> PlanarSD v e f r)
-> Generic (PlanarSD v e f r)
forall x. Rep (PlanarSD v e f r) x -> PlanarSD v e f r
forall x. PlanarSD v e f r -> Rep (PlanarSD v e f r) x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
forall v e f r x. Rep (PlanarSD v e f r) x -> PlanarSD v e f r
forall v e f r x. PlanarSD v e f r -> Rep (PlanarSD v e f r) x
$cto :: forall v e f r x. Rep (PlanarSD v e f r) x -> PlanarSD v e f r
$cfrom :: forall v e f r x. PlanarSD v e f r -> Rep (PlanarSD v e f r) x
Generic)
instance (ToJSON r, ToJSON v, ToJSON e, ToJSON f) => ToJSON (PlanarSD v e f r) where
toEncoding :: PlanarSD v e f r -> Encoding
toEncoding = Options -> PlanarSD v e f r -> Encoding
forall a.
(Generic a, GToJSON' Encoding Zero (Rep a)) =>
Options -> a -> Encoding
genericToEncoding Options
defaultOptions
instance (FromJSON r, FromJSON v, FromJSON e, FromJSON f) => FromJSON (PlanarSD v e f r)
data InnerSD v e f r = InnerSD
{ InnerSD v e f r -> [Vtx v e r]
adjs :: [Vtx v e r]
, InnerSD v e f r -> [(f, [InnerSD v e f r])]
faces :: [(f, [InnerSD v e f r])]
} deriving (Int -> InnerSD v e f r -> ShowS
[InnerSD v e f r] -> ShowS
InnerSD v e f r -> String
(Int -> InnerSD v e f r -> ShowS)
-> (InnerSD v e f r -> String)
-> ([InnerSD v e f r] -> ShowS)
-> Show (InnerSD v e f r)
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
forall v e f r.
(Show r, Show e, Show v, Show f) =>
Int -> InnerSD v e f r -> ShowS
forall v e f r.
(Show r, Show e, Show v, Show f) =>
[InnerSD v e f r] -> ShowS
forall v e f r.
(Show r, Show e, Show v, Show f) =>
InnerSD v e f r -> String
showList :: [InnerSD v e f r] -> ShowS
$cshowList :: forall v e f r.
(Show r, Show e, Show v, Show f) =>
[InnerSD v e f r] -> ShowS
show :: InnerSD v e f r -> String
$cshow :: forall v e f r.
(Show r, Show e, Show v, Show f) =>
InnerSD v e f r -> String
showsPrec :: Int -> InnerSD v e f r -> ShowS
$cshowsPrec :: forall v e f r.
(Show r, Show e, Show v, Show f) =>
Int -> InnerSD v e f r -> ShowS
Show,InnerSD v e f r -> InnerSD v e f r -> Bool
(InnerSD v e f r -> InnerSD v e f r -> Bool)
-> (InnerSD v e f r -> InnerSD v e f r -> Bool)
-> Eq (InnerSD v e f r)
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
forall v e f r.
(Eq r, Eq e, Eq v, Eq f) =>
InnerSD v e f r -> InnerSD v e f r -> Bool
/= :: InnerSD v e f r -> InnerSD v e f r -> Bool
$c/= :: forall v e f r.
(Eq r, Eq e, Eq v, Eq f) =>
InnerSD v e f r -> InnerSD v e f r -> Bool
== :: InnerSD v e f r -> InnerSD v e f r -> Bool
$c== :: forall v e f r.
(Eq r, Eq e, Eq v, Eq f) =>
InnerSD v e f r -> InnerSD v e f r -> Bool
Eq,a -> InnerSD v e f b -> InnerSD v e f a
(a -> b) -> InnerSD v e f a -> InnerSD v e f b
(forall a b. (a -> b) -> InnerSD v e f a -> InnerSD v e f b)
-> (forall a b. a -> InnerSD v e f b -> InnerSD v e f a)
-> Functor (InnerSD v e f)
forall a b. a -> InnerSD v e f b -> InnerSD v e f a
forall a b. (a -> b) -> InnerSD v e f a -> InnerSD v e f b
forall v e f a b. a -> InnerSD v e f b -> InnerSD v e f a
forall v e f a b. (a -> b) -> InnerSD v e f a -> InnerSD v e f b
forall (f :: * -> *).
(forall a b. (a -> b) -> f a -> f b)
-> (forall a b. a -> f b -> f a) -> Functor f
<$ :: a -> InnerSD v e f b -> InnerSD v e f a
$c<$ :: forall v e f a b. a -> InnerSD v e f b -> InnerSD v e f a
fmap :: (a -> b) -> InnerSD v e f a -> InnerSD v e f b
$cfmap :: forall v e f a b. (a -> b) -> InnerSD v e f a -> InnerSD v e f b
Functor,(forall x. InnerSD v e f r -> Rep (InnerSD v e f r) x)
-> (forall x. Rep (InnerSD v e f r) x -> InnerSD v e f r)
-> Generic (InnerSD v e f r)
forall x. Rep (InnerSD v e f r) x -> InnerSD v e f r
forall x. InnerSD v e f r -> Rep (InnerSD v e f r) x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
forall v e f r x. Rep (InnerSD v e f r) x -> InnerSD v e f r
forall v e f r x. InnerSD v e f r -> Rep (InnerSD v e f r) x
$cto :: forall v e f r x. Rep (InnerSD v e f r) x -> InnerSD v e f r
$cfrom :: forall v e f r x. InnerSD v e f r -> Rep (InnerSD v e f r) x
Generic)
instance (ToJSON r, ToJSON v, ToJSON e, ToJSON f) => ToJSON (InnerSD v e r f) where
toEncoding :: InnerSD v e r f -> Encoding
toEncoding = Options -> InnerSD v e r f -> Encoding
forall a.
(Generic a, GToJSON' Encoding Zero (Rep a)) =>
Options -> a -> Encoding
genericToEncoding Options
defaultOptions
instance (FromJSON r, FromJSON v, FromJSON e, FromJSON f) => FromJSON (InnerSD v e r f)
myTreeRep :: PlanarSD Int () String (RealNumber 3)
myTreeRep :: PlanarSD Int () String (RealNumber 3)
myTreeRep = String
-> InnerSD Int () String (RealNumber 3)
-> PlanarSD Int () String (RealNumber 3)
forall v e f r. f -> InnerSD v e f r -> PlanarSD v e f r
PlanarSD String
"f_infty" ([Vtx Int () (RealNumber 3)]
-> [(String, [InnerSD Int () String (RealNumber 3)])]
-> InnerSD Int () String (RealNumber 3)
forall v e f r.
[Vtx v e r] -> [(f, [InnerSD v e f r])] -> InnerSD v e f r
InnerSD [Vtx Int () (RealNumber 3)]
ads [(String, [InnerSD Int () String (RealNumber 3)])]
fs)
where
fs :: [(String, [InnerSD Int () String (RealNumber 3)])]
fs = [ (String
"f_1", [])
, (String
"f_2", [InnerSD Int () String (RealNumber 3)
f5, InnerSD Int () String (RealNumber 3)
f6])
, (String
"f_3", [])
, (String
"f_4", [InnerSD Int () String (RealNumber 3)
f7])
]
f5 :: InnerSD Int () String (RealNumber 3)
f5 = [Vtx Int () (RealNumber 3)]
-> [(String, [InnerSD Int () String (RealNumber 3)])]
-> InnerSD Int () String (RealNumber 3)
forall v e f r.
[Vtx v e r] -> [(f, [InnerSD v e f r])] -> InnerSD v e f r
InnerSD [ Int
-> Point 2 (RealNumber 3)
-> [(Int, ())]
-> Vtx Int () (RealNumber 3)
forall r e. Int -> Point 2 r -> [(Int, e)] -> Vtx Int e r
vtx Int
16 (RealNumber 3 -> RealNumber 3 -> Point 2 (RealNumber 3)
forall r. r -> r -> Point 2 r
Point2 RealNumber 3
3 RealNumber 3
8) [Int -> (Int, ())
forall a. a -> (a, ())
e Int
17, Int -> (Int, ())
forall a. a -> (a, ())
e Int
18]
, Int
-> Point 2 (RealNumber 3)
-> [(Int, ())]
-> Vtx Int () (RealNumber 3)
forall r e. Int -> Point 2 r -> [(Int, e)] -> Vtx Int e r
vtx Int
17 (RealNumber 3 -> RealNumber 3 -> Point 2 (RealNumber 3)
forall r. r -> r -> Point 2 r
Point2 RealNumber 3
0 RealNumber 3
7) [Int -> (Int, ())
forall a. a -> (a, ())
e Int
16, Int -> (Int, ())
forall a. a -> (a, ())
e Int
18]
, Int
-> Point 2 (RealNumber 3)
-> [(Int, ())]
-> Vtx Int () (RealNumber 3)
forall r e. Int -> Point 2 r -> [(Int, e)] -> Vtx Int e r
vtx Int
18 (RealNumber 3 -> RealNumber 3 -> Point 2 (RealNumber 3)
forall r. r -> r -> Point 2 r
Point2 (-RealNumber 3
1) RealNumber 3
4) [Int -> (Int, ())
forall a. a -> (a, ())
e Int
16, Int -> (Int, ())
forall a. a -> (a, ())
e Int
17]
] [(String
"f_5",[])]
f6 :: InnerSD Int () String (RealNumber 3)
f6 = [Vtx Int () (RealNumber 3)]
-> [(String, [InnerSD Int () String (RealNumber 3)])]
-> InnerSD Int () String (RealNumber 3)
forall v e f r.
[Vtx v e r] -> [(f, [InnerSD v e f r])] -> InnerSD v e f r
InnerSD [ Int
-> Point 2 (RealNumber 3)
-> [(Int, ())]
-> Vtx Int () (RealNumber 3)
forall r e. Int -> Point 2 r -> [(Int, e)] -> Vtx Int e r
vtx Int
15 (RealNumber 3 -> RealNumber 3 -> Point 2 (RealNumber 3)
forall r. r -> r -> Point 2 r
Point2 RealNumber 3
3 RealNumber 3
3) [Int -> (Int, ())
forall a. a -> (a, ())
e Int
14, Int -> (Int, ())
forall a. a -> (a, ())
e Int
13]
, Int
-> Point 2 (RealNumber 3)
-> [(Int, ())]
-> Vtx Int () (RealNumber 3)
forall r e. Int -> Point 2 r -> [(Int, e)] -> Vtx Int e r
vtx Int
13 (RealNumber 3 -> RealNumber 3 -> Point 2 (RealNumber 3)
forall r. r -> r -> Point 2 r
Point2 RealNumber 3
6 RealNumber 3
4) [Int -> (Int, ())
forall a. a -> (a, ())
e Int
14, Int -> (Int, ())
forall a. a -> (a, ())
e Int
15]
, Int
-> Point 2 (RealNumber 3)
-> [(Int, ())]
-> Vtx Int () (RealNumber 3)
forall r e. Int -> Point 2 r -> [(Int, e)] -> Vtx Int e r
vtx Int
14 (RealNumber 3 -> RealNumber 3 -> Point 2 (RealNumber 3)
forall r. r -> r -> Point 2 r
Point2 RealNumber 3
3 RealNumber 3
6) [Int -> (Int, ())
forall a. a -> (a, ())
e Int
13, Int -> (Int, ())
forall a. a -> (a, ())
e Int
15]
] [(String
"f_6",[])]
f7 :: InnerSD Int () String (RealNumber 3)
f7 = [Vtx Int () (RealNumber 3)]
-> [(String, [InnerSD Int () String (RealNumber 3)])]
-> InnerSD Int () String (RealNumber 3)
forall v e f r.
[Vtx v e r] -> [(f, [InnerSD v e f r])] -> InnerSD v e f r
InnerSD [ Int
-> Point 2 (RealNumber 3)
-> [(Int, ())]
-> Vtx Int () (RealNumber 3)
forall r e. Int -> Point 2 r -> [(Int, e)] -> Vtx Int e r
vtx Int
19 (RealNumber 3 -> RealNumber 3 -> Point 2 (RealNumber 3)
forall r. r -> r -> Point 2 r
Point2 RealNumber 3
0 RealNumber 3
9) [Int -> (Int, ())
forall a. a -> (a, ())
e Int
20, Int -> (Int, ())
forall a. a -> (a, ())
e Int
23]
, Int
-> Point 2 (RealNumber 3)
-> [(Int, ())]
-> Vtx Int () (RealNumber 3)
forall r e. Int -> Point 2 r -> [(Int, e)] -> Vtx Int e r
vtx Int
20 (RealNumber 3 -> RealNumber 3 -> Point 2 (RealNumber 3)
forall r. r -> r -> Point 2 r
Point2 RealNumber 3
0 RealNumber 3
4) [Int -> (Int, ())
forall a. a -> (a, ())
e Int
19, Int -> (Int, ())
forall a. a -> (a, ())
e Int
21]
, Int
-> Point 2 (RealNumber 3)
-> [(Int, ())]
-> Vtx Int () (RealNumber 3)
forall r e. Int -> Point 2 r -> [(Int, e)] -> Vtx Int e r
vtx Int
21 (RealNumber 3 -> RealNumber 3 -> Point 2 (RealNumber 3)
forall r. r -> r -> Point 2 r
Point2 RealNumber 3
15 RealNumber 3
2) [Int -> (Int, ())
forall a. a -> (a, ())
e Int
20, Int -> (Int, ())
forall a. a -> (a, ())
e Int
22]
, Int
-> Point 2 (RealNumber 3)
-> [(Int, ())]
-> Vtx Int () (RealNumber 3)
forall r e. Int -> Point 2 r -> [(Int, e)] -> Vtx Int e r
vtx Int
22 (RealNumber 3 -> RealNumber 3 -> Point 2 (RealNumber 3)
forall r. r -> r -> Point 2 r
Point2 RealNumber 3
17 RealNumber 3
5) [Int -> (Int, ())
forall a. a -> (a, ())
e Int
21, Int -> (Int, ())
forall a. a -> (a, ())
e Int
23]
, Int
-> Point 2 (RealNumber 3)
-> [(Int, ())]
-> Vtx Int () (RealNumber 3)
forall r e. Int -> Point 2 r -> [(Int, e)] -> Vtx Int e r
vtx Int
23 (RealNumber 3 -> RealNumber 3 -> Point 2 (RealNumber 3)
forall r. r -> r -> Point 2 r
Point2 RealNumber 3
15 RealNumber 3
8) [Int -> (Int, ())
forall a. a -> (a, ())
e Int
19, Int -> (Int, ())
forall a. a -> (a, ())
e Int
22]
] [(String
"f_7",[InnerSD Int () String (RealNumber 3)
f8])]
f8 :: InnerSD Int () String (RealNumber 3)
f8 = [Vtx Int () (RealNumber 3)]
-> [(String, [InnerSD Int () String (RealNumber 3)])]
-> InnerSD Int () String (RealNumber 3)
forall v e f r.
[Vtx v e r] -> [(f, [InnerSD v e f r])] -> InnerSD v e f r
InnerSD [ Int
-> Point 2 (RealNumber 3)
-> [(Int, ())]
-> Vtx Int () (RealNumber 3)
forall r e. Int -> Point 2 r -> [(Int, e)] -> Vtx Int e r
vtx Int
24 (RealNumber 3 -> RealNumber 3 -> Point 2 (RealNumber 3)
forall r. r -> r -> Point 2 r
Point2 RealNumber 3
14 RealNumber 3
6) [Int -> (Int, ())
forall a. a -> (a, ())
e Int
25, Int -> (Int, ())
forall a. a -> (a, ())
e Int
26]
, Int
-> Point 2 (RealNumber 3)
-> [(Int, ())]
-> Vtx Int () (RealNumber 3)
forall r e. Int -> Point 2 r -> [(Int, e)] -> Vtx Int e r
vtx Int
25 (RealNumber 3 -> RealNumber 3 -> Point 2 (RealNumber 3)
forall r. r -> r -> Point 2 r
Point2 RealNumber 3
13 RealNumber 3
8) [Int -> (Int, ())
forall a. a -> (a, ())
e Int
24, Int -> (Int, ())
forall a. a -> (a, ())
e Int
26]
, Int
-> Point 2 (RealNumber 3)
-> [(Int, ())]
-> Vtx Int () (RealNumber 3)
forall r e. Int -> Point 2 r -> [(Int, e)] -> Vtx Int e r
vtx Int
26 (RealNumber 3 -> RealNumber 3 -> Point 2 (RealNumber 3)
forall r. r -> r -> Point 2 r
Point2 RealNumber 3
12 RealNumber 3
5) [Int -> (Int, ())
forall a. a -> (a, ())
e Int
24, Int -> (Int, ())
forall a. a -> (a, ())
e Int
25]
] [(String
"f_8",[])]
ads :: [Vtx Int () (RealNumber 3)]
ads = [ Int
-> Point 2 (RealNumber 3)
-> [(Int, ())]
-> Vtx Int () (RealNumber 3)
forall r e. Int -> Point 2 r -> [(Int, e)] -> Vtx Int e r
vtx Int
0 (RealNumber 3 -> RealNumber 3 -> Point 2 (RealNumber 3)
forall r. r -> r -> Point 2 r
Point2 RealNumber 3
0 RealNumber 3
0) [Int -> (Int, ())
forall a. a -> (a, ())
e Int
1, Int -> (Int, ())
forall a. a -> (a, ())
e Int
4]
, Int
-> Point 2 (RealNumber 3)
-> [(Int, ())]
-> Vtx Int () (RealNumber 3)
forall r e. Int -> Point 2 r -> [(Int, e)] -> Vtx Int e r
vtx Int
1 (RealNumber 3 -> RealNumber 3 -> Point 2 (RealNumber 3)
forall r. r -> r -> Point 2 r
Point2 RealNumber 3
10 RealNumber 3
2) [Int -> (Int, ())
forall a. a -> (a, ())
e Int
0, Int -> (Int, ())
forall a. a -> (a, ())
e Int
5]
, Int
-> Point 2 (RealNumber 3)
-> [(Int, ())]
-> Vtx Int () (RealNumber 3)
forall r e. Int -> Point 2 r -> [(Int, e)] -> Vtx Int e r
vtx Int
2 (RealNumber 3 -> RealNumber 3 -> Point 2 (RealNumber 3)
forall r. r -> r -> Point 2 r
Point2 RealNumber 3
9 RealNumber 3
9) [Int -> (Int, ())
forall a. a -> (a, ())
e Int
1, Int -> (Int, ())
forall a. a -> (a, ())
e Int
7, Int -> (Int, ())
forall a. a -> (a, ())
e Int
3]
, Int
-> Point 2 (RealNumber 3)
-> [(Int, ())]
-> Vtx Int () (RealNumber 3)
forall r e. Int -> Point 2 r -> [(Int, e)] -> Vtx Int e r
vtx Int
3 (RealNumber 3 -> RealNumber 3 -> Point 2 (RealNumber 3)
forall r. r -> r -> Point 2 r
Point2 RealNumber 3
0 RealNumber 3
10) [Int -> (Int, ())
forall a. a -> (a, ())
e Int
2, Int -> (Int, ())
forall a. a -> (a, ())
e Int
4]
, Int
-> Point 2 (RealNumber 3)
-> [(Int, ())]
-> Vtx Int () (RealNumber 3)
forall r e. Int -> Point 2 r -> [(Int, e)] -> Vtx Int e r
vtx Int
4 (RealNumber 3 -> RealNumber 3 -> Point 2 (RealNumber 3)
forall r. r -> r -> Point 2 r
Point2 (-RealNumber 3
4) RealNumber 3
5) [Int -> (Int, ())
forall a. a -> (a, ())
e Int
0, Int -> (Int, ())
forall a. a -> (a, ())
e Int
3]
, Int
-> Point 2 (RealNumber 3)
-> [(Int, ())]
-> Vtx Int () (RealNumber 3)
forall r e. Int -> Point 2 r -> [(Int, e)] -> Vtx Int e r
vtx Int
5 (RealNumber 3 -> RealNumber 3 -> Point 2 (RealNumber 3)
forall r. r -> r -> Point 2 r
Point2 RealNumber 3
15 RealNumber 3
3) [Int -> (Int, ())
forall a. a -> (a, ())
e Int
1, Int -> (Int, ())
forall a. a -> (a, ())
e Int
6]
, Int
-> Point 2 (RealNumber 3)
-> [(Int, ())]
-> Vtx Int () (RealNumber 3)
forall r e. Int -> Point 2 r -> [(Int, e)] -> Vtx Int e r
vtx Int
6 (RealNumber 3 -> RealNumber 3 -> Point 2 (RealNumber 3)
forall r. r -> r -> Point 2 r
Point2 RealNumber 3
20 RealNumber 3
6) [Int -> (Int, ())
forall a. a -> (a, ())
e Int
5, Int -> (Int, ())
forall a. a -> (a, ())
e Int
7]
, Int
-> Point 2 (RealNumber 3)
-> [(Int, ())]
-> Vtx Int () (RealNumber 3)
forall r e. Int -> Point 2 r -> [(Int, e)] -> Vtx Int e r
vtx Int
7 (RealNumber 3 -> RealNumber 3 -> Point 2 (RealNumber 3)
forall r. r -> r -> Point 2 r
Point2 RealNumber 3
10 RealNumber 3
14) [Int -> (Int, ())
forall a. a -> (a, ())
e Int
2, Int -> (Int, ())
forall a. a -> (a, ())
e Int
6, Int -> (Int, ())
forall a. a -> (a, ())
e Int
8]
, Int
-> Point 2 (RealNumber 3)
-> [(Int, ())]
-> Vtx Int () (RealNumber 3)
forall r e. Int -> Point 2 r -> [(Int, e)] -> Vtx Int e r
vtx Int
8 (RealNumber 3 -> RealNumber 3 -> Point 2 (RealNumber 3)
forall r. r -> r -> Point 2 r
Point2 RealNumber 3
4 RealNumber 3
13) [Int -> (Int, ())
forall a. a -> (a, ())
e Int
7, Int -> (Int, ())
forall a. a -> (a, ())
e Int
3]
, Int
-> Point 2 (RealNumber 3)
-> [(Int, ())]
-> Vtx Int () (RealNumber 3)
forall r e. Int -> Point 2 r -> [(Int, e)] -> Vtx Int e r
vtx Int
9 (RealNumber 3 -> RealNumber 3 -> Point 2 (RealNumber 3)
forall r. r -> r -> Point 2 r
Point2 RealNumber 3
4 (-RealNumber 3
4)) [Int -> (Int, ())
forall a. a -> (a, ())
e Int
10, Int -> (Int, ())
forall a. a -> (a, ())
e Int
11]
, Int
-> Point 2 (RealNumber 3)
-> [(Int, ())]
-> Vtx Int () (RealNumber 3)
forall r e. Int -> Point 2 r -> [(Int, e)] -> Vtx Int e r
vtx Int
10 (RealNumber 3 -> RealNumber 3 -> Point 2 (RealNumber 3)
forall r. r -> r -> Point 2 r
Point2 RealNumber 3
8 (-RealNumber 3
4)) [Int -> (Int, ())
forall a. a -> (a, ())
e Int
11, Int -> (Int, ())
forall a. a -> (a, ())
e Int
9]
, Int
-> Point 2 (RealNumber 3)
-> [(Int, ())]
-> Vtx Int () (RealNumber 3)
forall r e. Int -> Point 2 r -> [(Int, e)] -> Vtx Int e r
vtx Int
11 (RealNumber 3 -> RealNumber 3 -> Point 2 (RealNumber 3)
forall r. r -> r -> Point 2 r
Point2 RealNumber 3
11 (-RealNumber 3
2)) [Int -> (Int, ())
forall a. a -> (a, ())
e Int
10, Int -> (Int, ())
forall a. a -> (a, ())
e Int
12]
, Int
-> Point 2 (RealNumber 3)
-> [(Int, ())]
-> Vtx Int () (RealNumber 3)
forall r e. Int -> Point 2 r -> [(Int, e)] -> Vtx Int e r
vtx Int
12 (RealNumber 3 -> RealNumber 3 -> Point 2 (RealNumber 3)
forall r. r -> r -> Point 2 r
Point2 RealNumber 3
7 (-RealNumber 3
1)) [Int -> (Int, ())
forall a. a -> (a, ())
e Int
9, Int -> (Int, ())
forall a. a -> (a, ())
e Int
11]
]
e :: a -> (a, ())
e a
i = (a
i,())
vtx :: Int -> Point 2 r -> [(Int, e)] -> Vtx Int e r
vtx Int
i Point 2 r
p [(Int, e)]
as = Int -> Point 2 r -> [(Int, e)] -> Int -> Vtx Int e r
forall v e r. Int -> Point 2 r -> [(Int, e)] -> v -> Vtx v e r
Vtx Int
i Point 2 r
p [(Int, e)]
as Int
i