Example #1
0
        public FrameViewModel(IFrameable frameable,
                              IHostTransformation hostTransformation, IFrameSaver frameSaver)
        {
            Frameable          = frameable;
            HostTransformation = hostTransformation;
            FrameSaver         = frameSaver;

            hostTransformation.PropertyChanged +=
                (sender, args) =>
            {
                switch (args.PropertyName)
                {
                case "Quadrangle":
                    OnPropertyChanged("Quadrangle");
                    break;

                case "Transformation":
                    OnPropertyChanged("Transformation");
                    OnPropertyChanged("Lines");
                    OnPropertyChanged("Points");
                    OnPropertyChanged("Elements");
                    break;
                }
            };
            if (frameSaver != null)
            {
                SaveFileContainer = new SaveFileContainerViewModel(this, frameSaver.GetType());
            }
        }
Example #2
0
        public FrameViewModel(IFrameable frameable, 
            IHostTransformation hostTransformation, IFrameSaver frameSaver)
        {
            Frameable = frameable;
            HostTransformation = hostTransformation;
            FrameSaver = frameSaver;

            hostTransformation.PropertyChanged +=
                (sender, args) =>
                {
                    switch (args.PropertyName)
                    {
                        case "Quadrangle":
                            OnPropertyChanged("Quadrangle");
                            break;
                        case "Transformation":
                            OnPropertyChanged("Transformation");
                            OnPropertyChanged("Lines");
                            OnPropertyChanged("Points");
                            OnPropertyChanged("Elements");
                            break;
                    }
                };
            if (frameSaver != null)
            {
                SaveFileContainer = new SaveFileContainerViewModel(this, frameSaver.GetType());
            }
        }
Example #3
0
        public static IEnumerable <Line> GetLines(this IFrameable frameable)
        {
            var lines = new List <Line>();

            var tracePoints = frameable.TracePoints;

            for (var i = 1; i < tracePoints.Length; i++)
            {
                var start  = tracePoints[i - 1];
                var finish = tracePoints[i];

                if (!finish.Trace)
                {
                    continue;
                }


                var line = new Line(start.Point, finish.Point);
                lines.Add(line);
            }

            return(lines
                   .Select(line => frameable.Transformation.ReverseTransform(line)));;
        }
Example #4
0
 public static IEnumerable <Point> GetPoints(this IFrameable frameable)
 {
     return(frameable.TracePoints
            .Select(tracePoint => tracePoint.Point)
            .Select(point => frameable.Transformation.ReverseTransform(point)));
 }
Example #5
0
 private static void SendUpdateMessage(ISolutionStrategy strategy, ProblemUpdateType updateType, ZmqSocket socket, IFrameable data)
 {
     ZmqMessage message = GetUpdateMessage(strategy, updateType, data);
     socket.SendMessage(message);
 }
Example #6
0
 private static ZmqMessage GetUpdateMessage(ISolutionStrategy strategy, ProblemUpdateType updateType, IFrameable data)
 {
     var dataFrames = data.GetFrames(Encoding.UTF8).ToList();
     List<Frame> msgFrames = new List<Frame>(dataFrames.Count + 5);
     msgFrames.Add(new Frame(Encoding.UTF8.GetBytes(strategy.Signature)));
     msgFrames.Add(Frame.Empty);
     msgFrames.Add(new Frame(new byte[1] { (byte)updateType }));
     msgFrames.Add(Frame.Empty);
     msgFrames.Add(new Frame(new byte[1] { 0x7f }));
     msgFrames.AddRange(dataFrames);
     ZmqMessage message = new ZmqMessage(msgFrames);
     return message;
 }