Ejemplo n.º 1
0
        private static void InBetweenGeneration(int from, int to)
        {
            var file1 = Globals.Files[from];
            var file2 = Globals.Files[to];

            if (file2.IsLast)
            {
                file2 = Globals.Files[1];
            }

            for (int fileNumber = from + 1; fileNumber < to; fileNumber++)
            {
                var newJoints = new List <ConcreteJoint>();
                foreach (var concreteJoint1 in file1.ConcreteJoints)
                {
                    var concreteJoint2 = file2.ConcreteJoints.FirstOrDefault(cj => cj.Id == concreteJoint1.Id);
                    if (concreteJoint2 == null)
                    {
                        newJoints.Add(concreteJoint1);
                    }
                    else
                    {
                        newJoints.Add(ConcreteJoint.CreateInBetweenJoint(concreteJoint1, concreteJoint2, fileNumber - from, to - from));
                    }
                }

                var newFile = new JointFile
                {
                    ConcreteJoints = newJoints,
                    Lines          = file1.Lines
                };
                FileManager.Save(FileManager.GetFileName(fileNumber, Globals.CurrentFolder), newFile);
            }
        }
Ejemplo n.º 2
0
        public static void Save(string fileName, JointFile jointFile)
        {
            var settings = new JsonSerializerSettings {
                TypeNameHandling = TypeNameHandling.All
            };

            File.WriteAllText(fileName, JsonConvert.SerializeObject(jointFile, settings));
        }
Ejemplo n.º 3
0
        public void FromFile(JointFile file)
        {
            _concreteJoints = file.ConcreteJoints;
            var jointDict = _concreteJoints.ToDictionary(j => j.Id, j => j);
            var lines     = new List <Line>();

            foreach (var line in file.Lines)
            {
                var start = jointDict.ContainsKey(line.Start.Id) ? jointDict[line.Start.Id] : null;
                var end   = jointDict.ContainsKey(line.Finish.Id) ? jointDict[line.Finish.Id] : null;
                if (start == null || end == null)
                {
                    continue;
                }
                lines.Add(new Line(start, end));
            }

            _lineManager.Lines = lines;
        }