public virtual bool IsInside(Point point, RailViewMode viewMode) { Geometry geometry = GetGeometry(viewMode); bool f = geometry.FillContains(point); return(f); }
public virtual bool IsInside(Rect rec, RailViewMode viewMode) { Geometry geometry = GetGeometry(viewMode); bool f = rec.Contains(geometry.Bounds); return(f); }
public override void DrawRailItem(DrawingContext drawingContext, RailViewMode viewMode, RailLayer layer) { this.DockPoints.ForEach(d => d.DrawOpen(drawingContext)); drawingContext.PushTransform(this.RailTransform); //Debug.WriteLine($"DrawRailItem {this.IsSelected}"); switch (viewMode) { case RailViewMode.Tracks: this.Track.RenderTrack(drawingContext, layer.TrackBrush); break; case RailViewMode.Rail: case RailViewMode.Terrain: this.Track.RenderRail(drawingContext); break; } if (this.IsSelected) { this.Track.RenderSelection(drawingContext); } if (this.IsAnchored) { Geometry geometry = anchorGeometry.Clone(); geometry.Transform = new ScaleTransform(0.15, 0.15, 20, -20); drawingContext.DrawGeometry(Brushes.Red, anchorPen, geometry); } drawingContext.Pop(); DrawDebug(drawingContext); DrawDebugDogpoints(drawingContext); }
protected override Geometry GetGeometry(RailViewMode viewMode) { Geometry geometry = this.Track.TrackGeometry.Clone(); geometry.Transform = this.RailTransform; return(geometry); }
protected override Geometry GetGeometry(RailViewMode viewMode /*, Transform transform*/) { return(this.Rails.Select(r => { Geometry geometry = r.Track.TrackGeometry.Clone(); geometry.Transform = r.RailTransform; return geometry; }).Aggregate((a, b) => new CombinedGeometry(GeometryCombineMode.Union, a, b))); }
public override void DrawRailItem(DrawingContext drawingContext, RailViewMode viewMode, RailLayer layer) { this.DockPoints.ForEach(d => d.DrawOpen(drawingContext)); this.Rails.ForEach(r => r.DrawRailItem(drawingContext, viewMode, layer)); if (this.IsSelected && viewMode < RailViewMode.Terrain) { var geometrie = GetGeometry(viewMode /*, null*/); drawingContext.DrawDrawing(new GeometryDrawing(null, this.linePen, geometrie)); drawingContext.DrawDrawing(new GeometryDrawing(null, this.dotPen, geometrie)); } }
protected abstract Geometry GetGeometry(RailViewMode viewMode);
public abstract void DrawRailItem(DrawingContext drawingContext, RailViewMode viewMode, RailLayer layer);
public override bool IsInside(Rect rec, RailViewMode viewMode) { bool f = this.Rails.Any(r => r.IsInside(rec, viewMode)); return(f); }
public override bool IsInside(Point point, RailViewMode viewMode) { bool f = this.Rails.Any(r => r.IsInside(point, viewMode)); return(f); }
public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { RailViewMode mode = (RailViewMode)value; return(mode == RailViewMode.Terrain ? Visibility.Collapsed : Visibility.Visible); }