Ejemplo n.º 1
0
        public static PositionConstraint Deserialize_Position(ListTreeNode <JsonValue> parsed)
        {
            var value = new PositionConstraint();

            foreach (var kv in parsed.ObjectItems())
            {
                var key = kv.Key.GetString();

                if (key == "extensions")
                {
                    value.Extensions = new glTFExtensionImport(kv.Value);
                    continue;
                }

                if (key == "extras")
                {
                    value.Extras = new glTFExtensionImport(kv.Value);
                    continue;
                }

                if (key == "name")
                {
                    value.Name = kv.Value.GetString();
                    continue;
                }

                if (key == "source")
                {
                    value.Source = kv.Value.GetInt32();
                    continue;
                }

                if (key == "sourceSpace")
                {
                    value.SourceSpace = (ObjectSpace)Enum.Parse(typeof(ObjectSpace), kv.Value.GetString(), true);
                    continue;
                }

                if (key == "destinationSpace")
                {
                    value.DestinationSpace = (ObjectSpace)Enum.Parse(typeof(ObjectSpace), kv.Value.GetString(), true);
                    continue;
                }

                if (key == "freezeAxes")
                {
                    value.FreezeAxes = Deserialize_FreezeAxes(kv.Value);
                    continue;
                }

                if (key == "weight")
                {
                    value.Weight = kv.Value.GetSingle();
                    continue;
                }
            }
            return(value);
        }
Ejemplo n.º 2
0
        public static void Serialize_Position(JsonFormatter f, PositionConstraint value)
        {
            f.BeginMap();


            if (value.Extensions != null)
            {
                f.Key("extensions");
                value.Extensions.Serialize(f);
            }

            if (value.Extras != null)
            {
                f.Key("extras");
                value.Extras.Serialize(f);
            }

            if (!string.IsNullOrEmpty(value.Name))
            {
                f.Key("name");
                f.Value(value.Name);
            }

            if (value.Source.HasValue)
            {
                f.Key("source");
                f.Value(value.Source.GetValueOrDefault());
            }

            if (true)
            {
                f.Key("sourceSpace");
                f.Value(value.SourceSpace.ToString());
            }

            if (true)
            {
                f.Key("destinationSpace");
                f.Value(value.DestinationSpace.ToString());
            }

            if (value.FreezeAxes != null && value.FreezeAxes.Count() >= 3)
            {
                f.Key("freezeAxes");
                Serialize_FreezeAxes(f, value.FreezeAxes);
            }

            if (value.Weight.HasValue)
            {
                f.Key("weight");
                f.Value(value.Weight.GetValueOrDefault());
            }

            f.EndMap();
        }