コード例 #1
0
 /// <summary>
 /// Adds the line.
 /// </summary>
 /// <param name="line">The LRS line.</param>
 internal void AddLine(LRSLine line)
 {
     if (line != null && line.HasPoints && line.IsLine)
     {
         _lines.Add(line);
     }
 }
コード例 #2
0
        /// <summary>
        /// Compute a parallel line to input line segment
        /// </summary>
        /// <param name="offset">Offset Value</param>
        /// <param name="tolerance">The tolerance.</param>
        /// <returns>Parallel Line</returns>
        internal LRSLine ComputeParallelLine(double offset, double tolerance)
        {
            CalculateOffsetBearing();
            CalculateOffsetAngle(offset < 0);
            CalculateOffset(offset);

            var parallelLine = new LRSLine(SRID);

            // compute parallel point and add additional vertices
            foreach (var point in _points)
            {
                parallelLine.AddPoint(point.GetAndPopulateParallelPoints(offset, tolerance, ref _points));
            }

            return(parallelLine);
        }