Пример #1
0
        static SerializableAnimation ProcessAnimation(AnimationContent xnaAnimation)
        {
            SerializableAnimation animation = new SerializableAnimation();

            animation.name   = xnaAnimation.Name;
            animation.length = (float)xnaAnimation.Duration.TotalSeconds;

            foreach (KeyValuePair <string, AnimationChannel> xnaAnimationChannelPair in xnaAnimation.Channels)
            {
                AnimationChannel xnaAnimationChannel     = xnaAnimationChannelPair.Value;
                string           xnaAnimationChannelName = xnaAnimationChannelPair.Key;

                SerializableTrack track = new SerializableTrack();
                track.name = xnaAnimationChannelName;
                animation.tracks.Add(track);

                for (int i = 0; i < xnaAnimationChannel.Count; i++)
                {
                    AnimationKeyframe    xnaKeyframe = xnaAnimationChannel[i];
                    SerializableKeyFrame keyframe    = new SerializableKeyFrame((float)xnaKeyframe.Time.TotalSeconds, xnaKeyframe.Transform);
                    track.AddKeyFrame(keyframe);
                }
            }

            return(animation);
        }
Пример #2
0
        public static void StoreResult(ITrack track, IVehicleModel vehicle, ISummary summary, string imageFilePath, string fileName)
        {
            var serializableSummary = new SerialzableSimulationResult
            {
                SimulationTime     = summary.SimulationTime.TotalSeconds,
                Result             = summary.Result,
                Log                = summary.Log.Select(SerializableEventFactory.From),
                Track              = SerializableTrack.From(track.TileSize, track.Circuit, track.OccupancyGrid),
                VehicleModel       = vehicle,
                TrackImageFilePath = imageFilePath
            };

            var json = JsonConvert.SerializeObject(serializableSummary, CustomJsonSerializationSettings.Default);

            File.WriteAllText(fileName, json);
        }
Пример #3
0
        public static void Save(string path, ICircuit circuit, string svg, double tileSize)
        {
            Directory.CreateDirectory(path);

            // svg
            var svgFileName = $"{path}/visualization.svg";

            File.WriteAllText(svgFileName, svg);

            // png
            var pngFileName = $"{path}/rasterized_visualization.png";

            Images.Convert(svgFileName, pngFileName);

            // occupancy grid
            var occupancyGrid = Images.LoadOccupancyGrid(pngFileName, tileSize);

            // json
            var track        = SerializableTrack.From(tileSize, circuit, occupancyGrid);
            var jsonFileName = $"{path}/circuit_definition.json";
            var json         = JsonConvert.SerializeObject(track, CustomJsonSerializationSettings.Default);

            File.WriteAllText(jsonFileName, json);
        }