Exemplo n.º 1
0
        /// <summary>
        /// Takes 2 stations and cases and returns a list of appropraite endpoints for a
        /// line connection those stations, respecting jumps between databands.
        /// </summary>
        /// <param name="csFrom">Station and case of starting point.</param>
        /// <param name="csTo">Station and case of ending point.</param>
        /// <returns></returns>
        public static List <(SimplePoint2d, SimplePoint2d)> TranslateLine(CaseStation csFrom, CaseStation csTo)
        {
            double stationFrom = csFrom.Station;
            double stationTo   = csTo.Station;

            List <(double, double)> modelXJumps =
                StationToXConverter.FindModelXsOfJumps(stationFrom, stationTo);

            double xFrom = csFrom.X;
            double xTo   = csTo.X;
            List <(double, double)> modelXOfLineEndPoints =
                GetModelXOfLineEndPoints(xFrom, modelXJumps, xTo);

            double yFrom = csFrom.Y;
            double yTo   = csTo.Y;
            List <(double, double)> modelYOfLineEndPoints = GetModelYOfLineEndPoints(yFrom, modelXOfLineEndPoints, yTo);

            var linePoints = new List <(SimplePoint2d, SimplePoint2d)>();
            int linecount  = modelXOfLineEndPoints.Count;

            for (int i = 0; i < linecount; i++)
            {
                double        point1X = modelXOfLineEndPoints[i].Item1;
                double        point1Y = modelYOfLineEndPoints[i].Item1;
                SimplePoint2d point1  = new SimplePoint2d(point1X, point1Y);

                double        point2X = modelXOfLineEndPoints[i].Item2;
                double        point2Y = modelYOfLineEndPoints[i].Item2;
                SimplePoint2d point2  = new SimplePoint2d(point2X, point2Y);

                linePoints.Add((point1, point2));
            }
            return(linePoints);
        }
Exemplo n.º 2
0
 internal static Point3d ToPoint3d(this SimplePoint2d point)
 {
     return(new Point3d(point.X, point.Y, 0));
 }
Exemplo n.º 3
0
 public ReferencePointData(SimplePoint2d point2d, AlignmentPoint alignmentPoint) =>
 (this.Point2d, this.AlignmentPoint) = (point2d, alignmentPoint);