private void createAddEulerSpiralSegment(IRM21fundamentalGeometry fundGeomEulerSpiralSeg)
        {
            ptList = fundGeomEulerSpiralSeg.getPointList();
             if (ptList.Count < 4)
            throw new Exception("Euler Spiral Segment fundamental geometry must have at least four points.");

             throw new NotImplementedException("RM21 Horizontal Alignment Euler Sprial Segment");
        }
        private void createAddLineSegment(IRM21fundamentalGeometry fundGeomLineSeg)
        {
            ptList = fundGeomLineSeg.getPointList();
             if (2 != ptList.Count)
            throw new Exception("Line Segment fundamental geometry must have two and only two points.");

             rm21HorLineSegment aLineSeg = new rm21HorLineSegment(ptList[0], ptList[1]);

             if (null == allChildSegments_scratchPad) allChildSegments_scratchPad = new List<HorizontalAlignmentBase>();

             allChildSegments_scratchPad.Add(aLineSeg);
        }
        private void createAddArcSegment(IRM21fundamentalGeometry fundGeomArcSeg)
        {
            ptList = fundGeomArcSeg.getPointList();
             if (3 != ptList.Count)
            throw new Exception("Arc Segment fundamental geometry must have three and only three points.");

             rm21HorArc anArg = new rm21HorArc(ptList[0], ptList[1], ptList[2], fundGeomArcSeg.getExpectedType(),
            fundGeomArcSeg.getDeflectionSign());

             if (null == allChildSegments_scratchPad) allChildSegments_scratchPad = new List<HorizontalAlignmentBase>();

             allChildSegments_scratchPad.Add(anArg);
        }