public void RenderStraightTrack(ICanvas canvas, int width) { float plankGap = width / _parameters.NumPlanks; for (int i = 1; i < _parameters.NumPlanks + 1; i++) { float pos = (i * plankGap) - (plankGap / 2); DrawPlank(canvas, width, pos); } canvas.DrawRect(0, _parameters.TrackPadding, width, _parameters.TrackWidth, _straightTrackClear); canvas.DrawRect(0, width - _parameters.TrackPadding - _parameters.TrackWidth, width, _parameters.TrackWidth, _straightTrackClear); var trackPath = _pathFactory.Create(); trackPath.MoveTo(0, _parameters.TrackPadding); trackPath.LineTo(width, _parameters.TrackPadding); trackPath.MoveTo(0, _parameters.TrackPadding + _parameters.TrackWidth); trackPath.LineTo(width, _parameters.TrackPadding + _parameters.TrackWidth); trackPath.MoveTo(0, width - _parameters.TrackPadding - _parameters.TrackWidth); trackPath.LineTo(width, width - _parameters.TrackPadding - _parameters.TrackWidth); trackPath.MoveTo(0, width - _parameters.TrackPadding); trackPath.LineTo(width, width - _parameters.TrackPadding); canvas.DrawPath(trackPath, _straightTrackPaint); }
public IPath BuildCornerTrackPath() { IPath trackPath = _pathFactory.Create(); trackPath.MoveTo(0, _innerTrackOffset); trackPath.QuadTo(_innerTrackOffset, _innerTrackOffset, _innerTrackOffset, 0); trackPath.MoveTo(0, _outerTrackOffset); trackPath.QuadTo(_outerTrackOffset, _outerTrackOffset, _outerTrackOffset, 0); return(trackPath); }
private static IPath BuildCornerRailPath(IPathFactory pathFactory) { IPath path = pathFactory.Create(); // Inner float innerRailA = RailingInset; float innerRailB = RailingInset + RailingBaseWidth; path.MoveTo(0, innerRailA); path.LineTo(0, innerRailB); path.ConicTo(innerRailB, innerRailB, innerRailB, 0, 0.75f); path.LineTo(innerRailA, 0); path.ConicTo(innerRailA, innerRailA, 0, innerRailA, 0.75f); // Outer float outerRailA = CanvasSize - RailingInset - RailingBaseWidth; float outerRailB = CanvasSize - RailingInset; path.MoveTo(0, outerRailA); path.LineTo(0, outerRailB); path.ConicTo(outerRailB, outerRailB, outerRailB, 0, 0.75f); path.LineTo(outerRailA, 0); path.ConicTo(outerRailA, outerRailA, 0, outerRailA, 0.75f); return(path); }
private static IPath BuildCornerPlankPath(IPathFactory pathFactory) { IPath path = pathFactory.Create(); path.MoveTo(0, BridgeInset); path.LineTo(0, CanvasSize - BridgeInset); path.ConicTo(CanvasSize - BridgeInset, CanvasSize - BridgeInset, CanvasSize - BridgeInset, 0, 0.75f); path.LineTo(BridgeInset, 0); path.ConicTo(BridgeInset, BridgeInset, 0, BridgeInset, 0.75f); return(path); }
private static IPath BuildLightPath(IPathFactory pathFactory) { const int halfLightSpread = LightSpread / 2; IPath path = pathFactory.Create(); path.LineTo(-LightLength, -halfLightSpread); path.ConicTo(-LightCurveLength, 0, -LightLength, halfLightSpread, 0.75f); path.LineTo(0, 0); return(path); }
public PathRepository(IPathFactory pathFactory, ITreeOfLifeSession session) { _session = session; _paths = new ReadOnlyCollection<Path>(new List<Path> { pathFactory.Create("Paths/1", 11, 1, 1, 2), pathFactory.Create("Paths/2", 12, 2, 1, 3), pathFactory.Create("Paths/3", 13, 3, 1, 6), pathFactory.Create("Paths/4", 14, 4, 2, 3), pathFactory.Create("Paths/5", 15, 5, 2, 6), pathFactory.Create("Paths/6", 16, 6, 2, 4), pathFactory.Create("Paths/7", 17, 7, 3, 6), pathFactory.Create("Paths/8", 18, 8, 3, 5), pathFactory.Create("Paths/9", 19, 9, 4, 5), pathFactory.Create("Paths/10", 20, 10, 4, 6), pathFactory.Create("Paths/11", 21, 11, 4, 7), pathFactory.Create("Paths/12", 22, 12, 5, 6), pathFactory.Create("Paths/13", 23, 13, 5, 8), pathFactory.Create("Paths/14", 24, 14, 6, 7), pathFactory.Create("Paths/15", 25, 15, 6, 9), pathFactory.Create("Paths/16", 26, 16, 6, 8), pathFactory.Create("Paths/17", 27, 17, 7, 8), pathFactory.Create("Paths/18", 28, 18, 7, 9), pathFactory.Create("Paths/19", 29, 19, 7, 10), pathFactory.Create("Paths/20", 30, 20, 8, 9), pathFactory.Create("Paths/21", 31, 21, 8, 10), pathFactory.Create("Paths/22", 32, 22, 9, 10) }); }