Example #1
0
        public TransportTaskDirectionModel(TransportTask transportTask, Func <string, List <PlaceModel> > findPlaceAccessor)
        {
            _findPlaceAccessor = findPlaceAccessor;
            Source             = transportTask;

            _startPlaceModel  = _findPlaceAccessor(Source.TaskStartPlaceCode).FirstOrDefault();
            _finishPlaceModel = _findPlaceAccessor(Source.TaskFinishPlace).FirstOrDefault();

            if (_startPlaceModel == null || _finishPlaceModel == null)
            {
                IsValid = false;
                return;
            }

            IsValid       = true;
            this.Point1   = _startPlaceModel.Center;
            this.Point2   = _finishPlaceModel.Center;
            this.Diameter = 0.05;

            switch (Source.StatusCode)
            {
            case TTaskStates.TTASK_CREATED:
                Fill = CreatedBrushForArrow;
                break;

            case TTaskStates.TTASK_ACTIVATED:
                Fill = ActivatedBrushForArrow;
                break;

            case TTaskStates.TTASK_COMPLETED:
                Fill = CompletedBrushForArrow;
                break;

            default:
                Fill = DefaultBrushForArrow;
                break;
            }
            if (Fill.IsFrozen)
            {
                var myFill = Fill.Clone();
                myFill.Opacity = 0.7;
                Fill           = myFill;
            }
            else
            {
                Fill.Opacity = 0.7;
            }
        }
Example #2
0
        protected override void CreateModel()
        {
            foreach (var place in _places)
            {
                var placeModel = new PlaceModel(place);
                placeModel.Transform = new TranslateTransform3D(ScaleValue(place.PosX * 10) + SegmentPadding, SegmentPadding, ScaleValue(place.PosY * 10) + SegmentHeight);
                Children.Add(placeModel);
            }

            var bounds = Children.FindBounds();

            Length = bounds.SizeX + SegmentPadding * 2;
            Width  = bounds.SizeY + SegmentPadding * 2;
            Height = SegmentHeight;
            Center = new Point3D(Length / 2, Width / 2, Height / 2);
        }