]> gitweb.michael.orlitzky.com - spline3.git/blob - src/Face.hs
Begin overhauling the program to handle other tetrahedra. Main is
[spline3.git] / src / Face.hs
1 module Face
2 where
3
4 import Point
5 import ThreeDimensional
6
7 data Face = Face { v0 :: Point,
8 v1 :: Point,
9 v2 :: Point,
10 v3 :: Point }
11 deriving (Eq)
12
13 instance Show Face where
14 show f = "Face:\n" ++
15 " v0: " ++ (show (v0 f)) ++ "\n" ++
16 " v1: " ++ (show (v1 f)) ++ "\n" ++
17 " v2: " ++ (show (v2 f)) ++ "\n" ++
18 " v3: " ++ (show (v3 f)) ++ "\n"
19
20 instance ThreeDimensional Face where
21 center f = ((v0 f) + (v1 f) + (v2 f) + (v3 f)) `scale` (1/4)
22 -- Too lazy to implement this right now.
23 contains_point _ _ = False
24
25
26 -- tetrahedron0 :: Face -> Tetrahedron
27 -- tetrahedron0 f =
28 -- Tetrahedron c v0' v1' v2' v3'
29 -- where
30 -- c = cube f
31 -- v0' = v0 f
32 -- v1' = v1 f
33 -- v2' = center f
34 -- v3' = center c
35
36 -- tetrahedron1 :: Face -> Tetrahedron
37 -- tetrahedron1 f =
38 -- Tetrahedron c v0' v1' v2' v3'
39 -- where
40 -- c = cube f
41 -- v0' = v1 f
42 -- v1' = v2 f
43 -- v2' = center f
44 -- v3' = center c
45
46
47 -- tetrahedron2 :: Face -> Tetrahedron
48 -- tetrahedron2 f =
49 -- Tetrahedron c v0' v1' v2' v3'
50 -- where
51 -- c = cube f
52 -- v0' = v2 f
53 -- v1' = v3 f
54 -- v2' = center f
55 -- v3' = center c
56
57
58 -- tetrahedron3 :: Face -> Tetrahedron
59 -- tetrahedron3 f =
60 -- Tetrahedron c v0' v1' v2' v3'
61 -- where
62 -- c = cube f
63 -- v0' = v3 f
64 -- v1' = v0 f
65 -- v2' = center f
66 -- v3' = center c
67
68 -- tetrahedrons :: Cube -> [Tetrahedron]
69 -- tetrahedrons c =
70 -- concat [
71 -- [tetrahedron0 f0, tetrahedron1 f0, tetrahedron2 f0, tetrahedron3 f0],
72 -- [tetrahedron0 f1, tetrahedron1 f1, tetrahedron2 f1, tetrahedron3 f2],
73 -- [tetrahedron0 f2, tetrahedron1 f2, tetrahedron2 f2, tetrahedron3 f2],
74 -- [tetrahedron0 f3, tetrahedron1 f3, tetrahedron2 f3, tetrahedron3 f3],
75 -- [tetrahedron0 f4, tetrahedron1 f4, tetrahedron2 f4, tetrahedron3 f4],
76 -- [tetrahedron0 f5, tetrahedron1 f5, tetrahedron2 f5, tetrahedron3 f5] ]
77 -- where
78 -- f0 = face0 c
79 -- f1 = face1 c
80 -- f2 = face2 c
81 -- f3 = face3 c
82 -- f4 = face4 c
83 -- f5 = face5 c