diff options
Diffstat (limited to 'ddl/out/cpp/LambdaCube.Mesh.cpp')
-rw-r--r-- | ddl/out/cpp/LambdaCube.Mesh.cpp | 228 |
1 files changed, 228 insertions, 0 deletions
diff --git a/ddl/out/cpp/LambdaCube.Mesh.cpp b/ddl/out/cpp/LambdaCube.Mesh.cpp new file mode 100644 index 0000000..ae47aa3 --- /dev/null +++ b/ddl/out/cpp/LambdaCube.Mesh.cpp | |||
@@ -0,0 +1,228 @@ | |||
1 | // generated file, do not modify! | ||
2 | // 2016-11-11T11:17:03.517567000000Z | ||
3 | |||
4 | #include "LambdaCube.Mesh.hpp" | ||
5 | template<> json toJSON<std::shared_ptr<MeshAttribute>>(std::shared_ptr<MeshAttribute> &v) { | ||
6 | json obj({}); | ||
7 | switch (v->tag) { | ||
8 | case ::MeshAttribute::tag::A_Float: | ||
9 | obj["tag"] = "A_Float"; | ||
10 | { | ||
11 | std::shared_ptr<data::A_Float> tv = std::static_pointer_cast<data::A_Float>(v); | ||
12 | obj["arg0"] = toJSON(tv->_0); | ||
13 | } | ||
14 | break; | ||
15 | case ::MeshAttribute::tag::A_V2F: | ||
16 | obj["tag"] = "A_V2F"; | ||
17 | { | ||
18 | std::shared_ptr<data::A_V2F> tv = std::static_pointer_cast<data::A_V2F>(v); | ||
19 | obj["arg0"] = toJSON(tv->_0); | ||
20 | } | ||
21 | break; | ||
22 | case ::MeshAttribute::tag::A_V3F: | ||
23 | obj["tag"] = "A_V3F"; | ||
24 | { | ||
25 | std::shared_ptr<data::A_V3F> tv = std::static_pointer_cast<data::A_V3F>(v); | ||
26 | obj["arg0"] = toJSON(tv->_0); | ||
27 | } | ||
28 | break; | ||
29 | case ::MeshAttribute::tag::A_V4F: | ||
30 | obj["tag"] = "A_V4F"; | ||
31 | { | ||
32 | std::shared_ptr<data::A_V4F> tv = std::static_pointer_cast<data::A_V4F>(v); | ||
33 | obj["arg0"] = toJSON(tv->_0); | ||
34 | } | ||
35 | break; | ||
36 | case ::MeshAttribute::tag::A_M22F: | ||
37 | obj["tag"] = "A_M22F"; | ||
38 | { | ||
39 | std::shared_ptr<data::A_M22F> tv = std::static_pointer_cast<data::A_M22F>(v); | ||
40 | obj["arg0"] = toJSON(tv->_0); | ||
41 | } | ||
42 | break; | ||
43 | case ::MeshAttribute::tag::A_M33F: | ||
44 | obj["tag"] = "A_M33F"; | ||
45 | { | ||
46 | std::shared_ptr<data::A_M33F> tv = std::static_pointer_cast<data::A_M33F>(v); | ||
47 | obj["arg0"] = toJSON(tv->_0); | ||
48 | } | ||
49 | break; | ||
50 | case ::MeshAttribute::tag::A_M44F: | ||
51 | obj["tag"] = "A_M44F"; | ||
52 | { | ||
53 | std::shared_ptr<data::A_M44F> tv = std::static_pointer_cast<data::A_M44F>(v); | ||
54 | obj["arg0"] = toJSON(tv->_0); | ||
55 | } | ||
56 | break; | ||
57 | case ::MeshAttribute::tag::A_Int: | ||
58 | obj["tag"] = "A_Int"; | ||
59 | { | ||
60 | std::shared_ptr<data::A_Int> tv = std::static_pointer_cast<data::A_Int>(v); | ||
61 | obj["arg0"] = toJSON(tv->_0); | ||
62 | } | ||
63 | break; | ||
64 | case ::MeshAttribute::tag::A_Word: | ||
65 | obj["tag"] = "A_Word"; | ||
66 | { | ||
67 | std::shared_ptr<data::A_Word> tv = std::static_pointer_cast<data::A_Word>(v); | ||
68 | obj["arg0"] = toJSON(tv->_0); | ||
69 | } | ||
70 | break; | ||
71 | } | ||
72 | return obj; | ||
73 | } | ||
74 | |||
75 | template<> std::shared_ptr<MeshAttribute> fromJSON<std::shared_ptr<MeshAttribute>>(W<std::shared_ptr<MeshAttribute>> v, json &obj) { | ||
76 | enum ::MeshAttribute::tag tagType; | ||
77 | std::string tag = obj["tag"]; | ||
78 | if (tag == "A_Float") { | ||
79 | tagType = ::MeshAttribute::tag::A_Float; | ||
80 | std::shared_ptr<data::A_Float> tv(new data::A_Float()); | ||
81 | tv->_0 = fromJSON(W<std::vector<Float>>(), obj["arg0"]); | ||
82 | return tv; | ||
83 | } | ||
84 | else if (tag == "A_V2F") { | ||
85 | tagType = ::MeshAttribute::tag::A_V2F; | ||
86 | std::shared_ptr<data::A_V2F> tv(new data::A_V2F()); | ||
87 | tv->_0 = fromJSON(W<std::vector<V2F>>(), obj["arg0"]); | ||
88 | return tv; | ||
89 | } | ||
90 | else if (tag == "A_V3F") { | ||
91 | tagType = ::MeshAttribute::tag::A_V3F; | ||
92 | std::shared_ptr<data::A_V3F> tv(new data::A_V3F()); | ||
93 | tv->_0 = fromJSON(W<std::vector<V3F>>(), obj["arg0"]); | ||
94 | return tv; | ||
95 | } | ||
96 | else if (tag == "A_V4F") { | ||
97 | tagType = ::MeshAttribute::tag::A_V4F; | ||
98 | std::shared_ptr<data::A_V4F> tv(new data::A_V4F()); | ||
99 | tv->_0 = fromJSON(W<std::vector<V4F>>(), obj["arg0"]); | ||
100 | return tv; | ||
101 | } | ||
102 | else if (tag == "A_M22F") { | ||
103 | tagType = ::MeshAttribute::tag::A_M22F; | ||
104 | std::shared_ptr<data::A_M22F> tv(new data::A_M22F()); | ||
105 | tv->_0 = fromJSON(W<std::vector<M22F>>(), obj["arg0"]); | ||
106 | return tv; | ||
107 | } | ||
108 | else if (tag == "A_M33F") { | ||
109 | tagType = ::MeshAttribute::tag::A_M33F; | ||
110 | std::shared_ptr<data::A_M33F> tv(new data::A_M33F()); | ||
111 | tv->_0 = fromJSON(W<std::vector<M33F>>(), obj["arg0"]); | ||
112 | return tv; | ||
113 | } | ||
114 | else if (tag == "A_M44F") { | ||
115 | tagType = ::MeshAttribute::tag::A_M44F; | ||
116 | std::shared_ptr<data::A_M44F> tv(new data::A_M44F()); | ||
117 | tv->_0 = fromJSON(W<std::vector<M44F>>(), obj["arg0"]); | ||
118 | return tv; | ||
119 | } | ||
120 | else if (tag == "A_Int") { | ||
121 | tagType = ::MeshAttribute::tag::A_Int; | ||
122 | std::shared_ptr<data::A_Int> tv(new data::A_Int()); | ||
123 | tv->_0 = fromJSON(W<std::vector<Int32>>(), obj["arg0"]); | ||
124 | return tv; | ||
125 | } | ||
126 | else if (tag == "A_Word") { | ||
127 | tagType = ::MeshAttribute::tag::A_Word; | ||
128 | std::shared_ptr<data::A_Word> tv(new data::A_Word()); | ||
129 | tv->_0 = fromJSON(W<std::vector<Word32>>(), obj["arg0"]); | ||
130 | return tv; | ||
131 | } | ||
132 | else throw "unknown constructor: " + tag; | ||
133 | std::shared_ptr<::MeshAttribute> o(new ::MeshAttribute()); | ||
134 | o->tag = tagType; | ||
135 | return o; | ||
136 | } | ||
137 | |||
138 | template<> json toJSON<std::shared_ptr<MeshPrimitive>>(std::shared_ptr<MeshPrimitive> &v) { | ||
139 | json obj({}); | ||
140 | switch (v->tag) { | ||
141 | case ::MeshPrimitive::tag::P_Points: | ||
142 | obj["tag"] = "P_Points"; | ||
143 | break; | ||
144 | case ::MeshPrimitive::tag::P_TriangleStrip: | ||
145 | obj["tag"] = "P_TriangleStrip"; | ||
146 | break; | ||
147 | case ::MeshPrimitive::tag::P_Triangles: | ||
148 | obj["tag"] = "P_Triangles"; | ||
149 | break; | ||
150 | case ::MeshPrimitive::tag::P_TriangleStripI: | ||
151 | obj["tag"] = "P_TriangleStripI"; | ||
152 | { | ||
153 | std::shared_ptr<data::P_TriangleStripI> tv = std::static_pointer_cast<data::P_TriangleStripI>(v); | ||
154 | obj["arg0"] = toJSON(tv->_0); | ||
155 | } | ||
156 | break; | ||
157 | case ::MeshPrimitive::tag::P_TrianglesI: | ||
158 | obj["tag"] = "P_TrianglesI"; | ||
159 | { | ||
160 | std::shared_ptr<data::P_TrianglesI> tv = std::static_pointer_cast<data::P_TrianglesI>(v); | ||
161 | obj["arg0"] = toJSON(tv->_0); | ||
162 | } | ||
163 | break; | ||
164 | } | ||
165 | return obj; | ||
166 | } | ||
167 | |||
168 | template<> std::shared_ptr<MeshPrimitive> fromJSON<std::shared_ptr<MeshPrimitive>>(W<std::shared_ptr<MeshPrimitive>> v, json &obj) { | ||
169 | enum ::MeshPrimitive::tag tagType; | ||
170 | std::string tag = obj["tag"]; | ||
171 | if (tag == "P_Points") { | ||
172 | tagType = ::MeshPrimitive::tag::P_Points; | ||
173 | } | ||
174 | else if (tag == "P_TriangleStrip") { | ||
175 | tagType = ::MeshPrimitive::tag::P_TriangleStrip; | ||
176 | } | ||
177 | else if (tag == "P_Triangles") { | ||
178 | tagType = ::MeshPrimitive::tag::P_Triangles; | ||
179 | } | ||
180 | else if (tag == "P_TriangleStripI") { | ||
181 | tagType = ::MeshPrimitive::tag::P_TriangleStripI; | ||
182 | std::shared_ptr<data::P_TriangleStripI> tv(new data::P_TriangleStripI()); | ||
183 | tv->_0 = fromJSON(W<std::vector<Int32>>(), obj["arg0"]); | ||
184 | return tv; | ||
185 | } | ||
186 | else if (tag == "P_TrianglesI") { | ||
187 | tagType = ::MeshPrimitive::tag::P_TrianglesI; | ||
188 | std::shared_ptr<data::P_TrianglesI> tv(new data::P_TrianglesI()); | ||
189 | tv->_0 = fromJSON(W<std::vector<Int32>>(), obj["arg0"]); | ||
190 | return tv; | ||
191 | } | ||
192 | else throw "unknown constructor: " + tag; | ||
193 | std::shared_ptr<::MeshPrimitive> o(new ::MeshPrimitive()); | ||
194 | o->tag = tagType; | ||
195 | return o; | ||
196 | } | ||
197 | |||
198 | template<> json toJSON<std::shared_ptr<Mesh>>(std::shared_ptr<Mesh> &v) { | ||
199 | json obj({}); | ||
200 | switch (v->tag) { | ||
201 | case ::Mesh::tag::Mesh: | ||
202 | obj["tag"] = "Mesh"; | ||
203 | { | ||
204 | std::shared_ptr<data::Mesh> tv = std::static_pointer_cast<data::Mesh>(v); | ||
205 | obj["mAttributes"] = toJSON(tv->mAttributes); | ||
206 | obj["mPrimitive"] = toJSON(tv->mPrimitive); | ||
207 | } | ||
208 | break; | ||
209 | } | ||
210 | return obj; | ||
211 | } | ||
212 | |||
213 | template<> std::shared_ptr<Mesh> fromJSON<std::shared_ptr<Mesh>>(W<std::shared_ptr<Mesh>> v, json &obj) { | ||
214 | enum ::Mesh::tag tagType; | ||
215 | std::string tag = obj["tag"]; | ||
216 | if (tag == "Mesh") { | ||
217 | tagType = ::Mesh::tag::Mesh; | ||
218 | std::shared_ptr<data::Mesh> tv(new data::Mesh()); | ||
219 | tv->mAttributes = fromJSON(W<std::map<String, std::shared_ptr<::MeshAttribute>>>(), obj["mAttributes"]); | ||
220 | tv->mPrimitive = fromJSON(W<std::shared_ptr<::MeshPrimitive>>(), obj["mPrimitive"]); | ||
221 | return tv; | ||
222 | } | ||
223 | else throw "unknown constructor: " + tag; | ||
224 | std::shared_ptr<::Mesh> o(new ::Mesh()); | ||
225 | o->tag = tagType; | ||
226 | return o; | ||
227 | } | ||
228 | |||