Esempio n. 1
0
        /// <summary>
        /// Add a line segment to the end of the specified Robot polyline
        /// </summary>
        /// <param name="result"></param>
        /// <param name="v"></param>
        private static void AddPolylinePoint(RobotGeoPolyline result, Vertex v)
        {
            var segment = new RobotGeoSegmentLine();

            segment.P1 = Convert(v.Position);
            result.Add((RobotGeoSegment)segment); // Wow!  RobotOM has an F'd up inheritance structure!
        }
Esempio n. 2
0
        /// <summary>
        /// Convert a Nucleus polyline to a RobotGeoPolyline
        /// </summary>
        /// <param name="polyline"></param>
        /// <returns></returns>
        public static RobotGeoPolyline Convert(PolyLine polyline)
        {
            RobotGeoPolyline result = new RobotGeoPolyline();

            foreach (Vertex v in polyline.Vertices)
            {
                AddPolylinePoint(result, v);
            }
            if (polyline.Closed)
            {
                AddPolylinePoint(result, polyline.Start);
            }
            return(result);
        }
Esempio n. 3
0
        /// <summary>
        /// Convert a Robot polyline geometry into a Nucleus polyline
        /// </summary>
        /// <param name="polyline"></param>
        /// <returns></returns>
        public static PolyLine Convert(RobotGeoPolyline polyline)
        {
            PolyLine result = new PolyLine();
            RobotGeoSegmentCollection segments = polyline.Segments as RobotGeoSegmentCollection;

            for (int i = 1; i <= segments.Count; i++)
            {
                RobotGeoSegment segment = segments.Get(i);
                Vector          pt      = Convert(segment.P1);
                if (i == segments.Count && pt.Equals(result.StartPoint, Tolerance.Distance))
                {
                    result.Close(true);
                }
                else
                {
                    result.Add(pt);
                }
            }

            return(result);
        }