summaryrefslogtreecommitdiff
path: root/ddl/out/purescript/LambdaCube/Mesh.purs
diff options
context:
space:
mode:
Diffstat (limited to 'ddl/out/purescript/LambdaCube/Mesh.purs')
-rw-r--r--ddl/out/purescript/LambdaCube/Mesh.purs118
1 files changed, 118 insertions, 0 deletions
diff --git a/ddl/out/purescript/LambdaCube/Mesh.purs b/ddl/out/purescript/LambdaCube/Mesh.purs
new file mode 100644
index 0000000..7b39700
--- /dev/null
+++ b/ddl/out/purescript/LambdaCube/Mesh.purs
@@ -0,0 +1,118 @@
1-- generated file, do not modify!
2-- 2016-11-12T12:48:59.903978000000Z
3
4module LambdaCube.Mesh where
5import Prelude
6import Data.Generic
7import Data.Either (Either(..))
8import Data.Maybe (Maybe(..))
9import Data.StrMap (StrMap(..))
10import Data.Map (Map(..))
11import Data.List (List(..))
12import LinearBase
13
14import Data.Argonaut.Encode.Combinators ((~>), (:=))
15import Data.Argonaut.Decode.Combinators ((.?))
16import Data.Argonaut.Core (jsonEmptyObject)
17import Data.Argonaut.Printer (printJson)
18import Data.Argonaut.Encode (class EncodeJson, encodeJson)
19import Data.Argonaut.Decode (class DecodeJson, decodeJson)
20
21
22data MeshAttribute
23 = A_Float (Array Float)
24 | A_V2F (Array V2F)
25 | A_V3F (Array V3F)
26 | A_V4F (Array V4F)
27 | A_M22F (Array M22F)
28 | A_M33F (Array M33F)
29 | A_M44F (Array M44F)
30 | A_Int (Array Int32)
31 | A_Word (Array Word32)
32
33data MeshPrimitive
34 = P_Points
35 | P_TriangleStrip
36 | P_Triangles
37 | P_TriangleStripI (Array Int32)
38 | P_TrianglesI (Array Int32)
39
40data Mesh
41 = Mesh
42 { mAttributes :: StrMap MeshAttribute
43 , mPrimitive :: MeshPrimitive
44 }
45
46
47
48
49instance encodeJsonMeshAttribute :: EncodeJson MeshAttribute where
50 encodeJson v = case v of
51 A_Float arg0 -> "tag" := "A_Float" ~> "arg0" := arg0 ~> jsonEmptyObject
52 A_V2F arg0 -> "tag" := "A_V2F" ~> "arg0" := arg0 ~> jsonEmptyObject
53 A_V3F arg0 -> "tag" := "A_V3F" ~> "arg0" := arg0 ~> jsonEmptyObject
54 A_V4F arg0 -> "tag" := "A_V4F" ~> "arg0" := arg0 ~> jsonEmptyObject
55 A_M22F arg0 -> "tag" := "A_M22F" ~> "arg0" := arg0 ~> jsonEmptyObject
56 A_M33F arg0 -> "tag" := "A_M33F" ~> "arg0" := arg0 ~> jsonEmptyObject
57 A_M44F arg0 -> "tag" := "A_M44F" ~> "arg0" := arg0 ~> jsonEmptyObject
58 A_Int arg0 -> "tag" := "A_Int" ~> "arg0" := arg0 ~> jsonEmptyObject
59 A_Word arg0 -> "tag" := "A_Word" ~> "arg0" := arg0 ~> jsonEmptyObject
60
61instance decodeJsonMeshAttribute :: DecodeJson MeshAttribute where
62 decodeJson json = do
63 obj <- decodeJson json
64 tag <- obj .? "tag"
65 case tag of
66 "A_Float" -> A_Float <$> obj .? "arg0"
67 "A_V2F" -> A_V2F <$> obj .? "arg0"
68 "A_V3F" -> A_V3F <$> obj .? "arg0"
69 "A_V4F" -> A_V4F <$> obj .? "arg0"
70 "A_M22F" -> A_M22F <$> obj .? "arg0"
71 "A_M33F" -> A_M33F <$> obj .? "arg0"
72 "A_M44F" -> A_M44F <$> obj .? "arg0"
73 "A_Int" -> A_Int <$> obj .? "arg0"
74 "A_Word" -> A_Word <$> obj .? "arg0"
75 _ -> Left ("decodeJsonMeshAttribute - unknown tag: " <> tag)
76
77instance encodeJsonMeshPrimitive :: EncodeJson MeshPrimitive where
78 encodeJson v = case v of
79 P_Points -> "tag" := "P_Points" ~> jsonEmptyObject
80 P_TriangleStrip -> "tag" := "P_TriangleStrip" ~> jsonEmptyObject
81 P_Triangles -> "tag" := "P_Triangles" ~> jsonEmptyObject
82 P_TriangleStripI arg0 -> "tag" := "P_TriangleStripI" ~> "arg0" := arg0 ~> jsonEmptyObject
83 P_TrianglesI arg0 -> "tag" := "P_TrianglesI" ~> "arg0" := arg0 ~> jsonEmptyObject
84
85instance decodeJsonMeshPrimitive :: DecodeJson MeshPrimitive where
86 decodeJson json = do
87 obj <- decodeJson json
88 tag <- obj .? "tag"
89 case tag of
90 "P_Points" -> pure P_Points
91 "P_TriangleStrip" -> pure P_TriangleStrip
92 "P_Triangles" -> pure P_Triangles
93 "P_TriangleStripI" -> P_TriangleStripI <$> obj .? "arg0"
94 "P_TrianglesI" -> P_TrianglesI <$> obj .? "arg0"
95 _ -> Left ("decodeJsonMeshPrimitive - unknown tag: " <> tag)
96
97instance encodeJsonMesh :: EncodeJson Mesh where
98 encodeJson v = case v of
99 Mesh r ->
100 "tag" := "Mesh" ~>
101 "mAttributes" := r.mAttributes ~>
102 "mPrimitive" := r.mPrimitive ~>
103 jsonEmptyObject
104
105instance decodeJsonMesh :: DecodeJson Mesh where
106 decodeJson json = do
107 obj <- decodeJson json
108 tag <- obj .? "tag"
109 case tag of
110 "Mesh" -> do
111 mAttributes <- obj .? "mAttributes"
112 mPrimitive <- obj .? "mPrimitive"
113 pure $ Mesh
114 { mAttributes:mAttributes
115 , mPrimitive:mPrimitive
116 }
117 _ -> Left ("decodeJsonMesh - unknown tag: " <> tag)
118