Beispiel #1
0
        public void CreateSceneWithExtras()
        {
            var root  = ModelRoot.CreateModel();
            var scene = root.UseScene("Empty Scene");

            var dict = new Dictionary <string, object>();

            dict["author"]      = "me";
            dict["string_null"] = (string)null;

            dict["value1"] = 17;
            dict["array1"] = new List <int> {
                1, 2, 3
            };
            dict["array_empty"] = new List <int>();
            dict["dict1"]       = new Dictionary <string, object>
            {
                ["A"] = 16,
                ["B"] = "delta",
                ["C"] = new List <int> {
                    4, 6, 7
                },
                ["D"] = new Dictionary <string, int> {
                    ["S"] = 1, ["T"] = 2
                }
            };
            dict["dict2"] = new Dictionary <string, int> {
                ["2"] = 2, ["3"] = 3
            };

            var extras = JsonContent.CreateFrom(dict);

            root.Extras = extras;

            var bytes   = root.WriteGLB();
            var rootBis = ModelRoot.ParseGLB(bytes);

            var a    = root.Extras;
            var b    = rootBis.Extras;
            var json = rootBis.Extras.ToJson();
            var c    = IO.JsonContent.Parse(json);

            Assert.IsTrue(JsonContentTests.AreEqual(a, b));
            Assert.IsTrue(JsonContentTests.AreEqual(a, extras));
            Assert.IsTrue(JsonContentTests.AreEqual(b, extras));
            Assert.IsTrue(JsonContentTests.AreEqual(c, extras));

            Assert.AreEqual(2, c.GetValue <int>("dict1", "D", "T"));
        }