// generated file, do not modify! <<<<<<< 4d40c4ee5ed15544d2ac7fb1ea7b61e89766d277 <<<<<<< c5e063b3c9aeff65161e24445e9672daff980b45 <<<<<<< 3b50722f433ec5ecc515ea1441fd633d85118cb9 // 2016-03-01T13:00:40.781208000000Z ======= // 2016-03-20T21:42:12.936741000000Z >>>>>>> working c# backend ======= // 2016-03-20T22:19:43.568791000000Z >>>>>>> fix c# ======= // 2016-03-21T11:36:01.121658000000Z >>>>>>> work on java json loader #include "LambdaCube.Mesh.hpp" template<> json toJSON>(std::shared_ptr &v) { json obj({}); switch (v->tag) { case ::MeshAttribute::tag::A_Float: obj["tag"] = "A_Float"; { std::shared_ptr tv = std::static_pointer_cast(v); obj["arg0"] = toJSON(tv->_0); } break; case ::MeshAttribute::tag::A_V2F: obj["tag"] = "A_V2F"; { std::shared_ptr tv = std::static_pointer_cast(v); obj["arg0"] = toJSON(tv->_0); } break; case ::MeshAttribute::tag::A_V3F: obj["tag"] = "A_V3F"; { std::shared_ptr tv = std::static_pointer_cast(v); obj["arg0"] = toJSON(tv->_0); } break; case ::MeshAttribute::tag::A_V4F: obj["tag"] = "A_V4F"; { std::shared_ptr tv = std::static_pointer_cast(v); obj["arg0"] = toJSON(tv->_0); } break; case ::MeshAttribute::tag::A_M22F: obj["tag"] = "A_M22F"; { std::shared_ptr tv = std::static_pointer_cast(v); obj["arg0"] = toJSON(tv->_0); } break; case ::MeshAttribute::tag::A_M33F: obj["tag"] = "A_M33F"; { std::shared_ptr tv = std::static_pointer_cast(v); obj["arg0"] = toJSON(tv->_0); } break; case ::MeshAttribute::tag::A_M44F: obj["tag"] = "A_M44F"; { std::shared_ptr tv = std::static_pointer_cast(v); obj["arg0"] = toJSON(tv->_0); } break; case ::MeshAttribute::tag::A_Int: obj["tag"] = "A_Int"; { std::shared_ptr tv = std::static_pointer_cast(v); obj["arg0"] = toJSON(tv->_0); } break; case ::MeshAttribute::tag::A_Word: obj["tag"] = "A_Word"; { std::shared_ptr tv = std::static_pointer_cast(v); obj["arg0"] = toJSON(tv->_0); } break; } return obj; } template<> std::shared_ptr fromJSON>(W> v, json &obj) { enum ::MeshAttribute::tag tagType; std::string tag = obj["tag"]; if (tag == "A_Float") { tagType = ::MeshAttribute::tag::A_Float; std::shared_ptr tv(new data::A_Float()); tv->_0 = fromJSON(W>(), obj["arg0"]); return tv; } else if (tag == "A_V2F") { tagType = ::MeshAttribute::tag::A_V2F; std::shared_ptr tv(new data::A_V2F()); tv->_0 = fromJSON(W>(), obj["arg0"]); return tv; } else if (tag == "A_V3F") { tagType = ::MeshAttribute::tag::A_V3F; std::shared_ptr tv(new data::A_V3F()); tv->_0 = fromJSON(W>(), obj["arg0"]); return tv; } else if (tag == "A_V4F") { tagType = ::MeshAttribute::tag::A_V4F; std::shared_ptr tv(new data::A_V4F()); tv->_0 = fromJSON(W>(), obj["arg0"]); return tv; } else if (tag == "A_M22F") { tagType = ::MeshAttribute::tag::A_M22F; std::shared_ptr tv(new data::A_M22F()); tv->_0 = fromJSON(W>(), obj["arg0"]); return tv; } else if (tag == "A_M33F") { tagType = ::MeshAttribute::tag::A_M33F; std::shared_ptr tv(new data::A_M33F()); tv->_0 = fromJSON(W>(), obj["arg0"]); return tv; } else if (tag == "A_M44F") { tagType = ::MeshAttribute::tag::A_M44F; std::shared_ptr tv(new data::A_M44F()); tv->_0 = fromJSON(W>(), obj["arg0"]); return tv; } else if (tag == "A_Int") { tagType = ::MeshAttribute::tag::A_Int; std::shared_ptr tv(new data::A_Int()); tv->_0 = fromJSON(W>(), obj["arg0"]); return tv; } else if (tag == "A_Word") { tagType = ::MeshAttribute::tag::A_Word; std::shared_ptr tv(new data::A_Word()); tv->_0 = fromJSON(W>(), obj["arg0"]); return tv; } else throw "unknown constructor: " + tag; std::shared_ptr<::MeshAttribute> o(new ::MeshAttribute()); o->tag = tagType; return o; } template<> json toJSON>(std::shared_ptr &v) { json obj({}); switch (v->tag) { case ::MeshPrimitive::tag::P_Points: obj["tag"] = "P_Points"; break; case ::MeshPrimitive::tag::P_TriangleStrip: obj["tag"] = "P_TriangleStrip"; break; case ::MeshPrimitive::tag::P_Triangles: obj["tag"] = "P_Triangles"; break; case ::MeshPrimitive::tag::P_TriangleStripI: obj["tag"] = "P_TriangleStripI"; { std::shared_ptr tv = std::static_pointer_cast(v); obj["arg0"] = toJSON(tv->_0); } break; case ::MeshPrimitive::tag::P_TrianglesI: obj["tag"] = "P_TrianglesI"; { std::shared_ptr tv = std::static_pointer_cast(v); obj["arg0"] = toJSON(tv->_0); } break; } return obj; } template<> std::shared_ptr fromJSON>(W> v, json &obj) { enum ::MeshPrimitive::tag tagType; std::string tag = obj["tag"]; if (tag == "P_Points") { tagType = ::MeshPrimitive::tag::P_Points; } else if (tag == "P_TriangleStrip") { tagType = ::MeshPrimitive::tag::P_TriangleStrip; } else if (tag == "P_Triangles") { tagType = ::MeshPrimitive::tag::P_Triangles; } else if (tag == "P_TriangleStripI") { tagType = ::MeshPrimitive::tag::P_TriangleStripI; std::shared_ptr tv(new data::P_TriangleStripI()); tv->_0 = fromJSON(W>(), obj["arg0"]); return tv; } else if (tag == "P_TrianglesI") { tagType = ::MeshPrimitive::tag::P_TrianglesI; std::shared_ptr tv(new data::P_TrianglesI()); tv->_0 = fromJSON(W>(), obj["arg0"]); return tv; } else throw "unknown constructor: " + tag; std::shared_ptr<::MeshPrimitive> o(new ::MeshPrimitive()); o->tag = tagType; return o; } template<> json toJSON>(std::shared_ptr &v) { json obj({}); switch (v->tag) { case ::Mesh::tag::Mesh: obj["tag"] = "Mesh"; { std::shared_ptr tv = std::static_pointer_cast(v); obj["mAttributes"] = toJSON(tv->mAttributes); obj["mPrimitive"] = toJSON(tv->mPrimitive); } break; } return obj; } template<> std::shared_ptr fromJSON>(W> v, json &obj) { enum ::Mesh::tag tagType; std::string tag = obj["tag"]; if (tag == "Mesh") { tagType = ::Mesh::tag::Mesh; std::shared_ptr tv(new data::Mesh()); tv->mAttributes = fromJSON(W>>(), obj["mAttributes"]); tv->mPrimitive = fromJSON(W>(), obj["mPrimitive"]); return tv; } else throw "unknown constructor: " + tag; std::shared_ptr<::Mesh> o(new ::Mesh()); o->tag = tagType; return o; }