コード例 #1
0
        private void ProcessCenterPivot(CenterPivot centerPivot)
        {
            var delta  = _drawingUtil.GetDelta();
            var center = centerPivot.Center.ToUtm().ToXy(_drawingUtil.MinX, _drawingUtil.MinY, delta);
            var radius = GetRadius(centerPivot);

            _drawingUtil.Graphics.DrawEllipse(DrawingUtil.Pen, center.X - radius, center.Y - radius, radius + radius, radius + radius);
        }
コード例 #2
0
        static void MenuDoCenterPivot()
        {
            CenterPivot instance = EditorToolbarLoader.GetInstance <CenterPivot>();

            if (instance != null)
            {
                UnityEditor.ProBuilder.EditorUtility.ShowNotification(instance.DoAction().notification);
            }
        }
コード例 #3
0
        private static void WritePivot(XmlWriter writer, CenterPivot centerPivot)
        {
            var line = new LineString {
                Points = new List <Point>()
            };

            line.Points.Add(centerPivot.Center);

            if (centerPivot.StartPoint != null)
            {
                line.Points.Add(centerPivot.StartPoint);
                if (centerPivot.EndPoint != null)
                {
                    line.Points.Add(centerPivot.EndPoint);
                }
            }

            ShapeWriter.WriteLine(writer, line, "5");
        }
コード例 #4
0
        public static void SetMinMax(this CenterPivot centerPivot, DrawingUtil drawingUtil)
        {
            var centerUtm = centerPivot.Center.ToUtm();
            var radius    = Math.Abs(centerUtm.X - centerPivot.EndPoint.ToUtm().X);

            var northPoint = new Point
            {
                X = centerUtm.X,
                Y = centerUtm.Y + radius,
            };
            var southPoint = new Point
            {
                X = centerUtm.X,
                Y = centerUtm.Y - radius,
            };
            var westPoint = new Point
            {
                X = centerUtm.X - radius,
                Y = centerUtm.Y,
            };
            var eastPoint = new Point
            {
                X = centerUtm.X + radius,
                Y = centerUtm.Y,
            };

            var points = new List <Point>
            {
                northPoint,
                southPoint,
                westPoint,
                eastPoint
            };

            SetMinMax(drawingUtil, points);
        }
コード例 #5
0
        private static CenterPivot LoadCenterPivotPattern(XmlNode lineNode)
        {
            var pattern = new CenterPivot {
                GuidancePatternType = GuidancePatternTypeEnum.CenterPivot
            };

            var pointNodes = lineNode.SelectNodes("PNT");

            if (pointNodes.Count < 1 || pointNodes.Count > 3)
            {
                return(null);
            }

            pattern.Center = ShapeLoader.LoadPoint(pointNodes[0]);
            if (pattern.Center == null)
            {
                return(null);
            }

            pattern.StartPoint = pointNodes.Count > 1 ? ShapeLoader.LoadPoint(pointNodes[1]) : null;
            pattern.EndPoint   = pointNodes.Count > 2 ? ShapeLoader.LoadPoint(pointNodes[2]) : null;

            return(pattern);
        }
コード例 #6
0
        private float GetRadius(CenterPivot centerPivot)
        {
            var width = centerPivot.Center.ToUtm().X - centerPivot.EndPoint.ToUtm().X;

            return((float)Math.Abs(width));
        }
コード例 #7
0
        static bool MenuVerifyCenterPivot()
        {
            CenterPivot instance = EditorToolbarLoader.GetInstance <CenterPivot>();

            return(instance != null && instance.enabled);
        }