Ejemplo n.º 1
0
 private static void old_acctor_mc()
 {
     SketchToolAssist.m_LastPartGeometry = null;
     SketchToolAssist.IsCreateParrel     = false;
     SketchToolAssist.m_offset           = 1;
     SketchToolAssist.ConstructOffset    = 5;
     SketchToolAssist.m_Feedback         = null;
     SketchToolAssist.m_pUnDoPoint       = null;
     SketchToolAssist.m_pLastPoint1      = null;
     SketchToolAssist.m_pEndPoint1       = null;
     SketchToolAssist.m_bShowVlaue       = true;
     SketchToolAssist.m_totalLength      = 0;
     SketchToolAssist.m_pPointColn       = null;
     SketchToolAssist.m_pAP = null;
     SketchToolAssist.m_pPointCollection = null;
     SketchToolAssist.m_PointCount       = 0;
     SketchToolAssist.m_bInUse           = false;
     SketchToolAssist.m_pSym             = new SimpleMarkerSymbol();
     SketchToolAssist.m_psnaper          = new PointSnapper();
     SketchToolAssist.Init();
 }
Ejemplo n.º 2
0
        public static void Snap2Point(IPoint ipoint_0, IPoint ipoint_1, esriSimpleMarkerStyle esriSimpleMarkerStyle_0,
                                      IActiveView iactiveView_0, IEngineSnapEnvironment iengineSnapEnvironment_0)
        {
            IHitTest mPPointColn;
            double   num;
            int      num1;
            int      num2;
            bool     flag;
            double   mapUnits;
            IPoint   pointClass;

            if (!Editor.UseOldSnap)
            {
                ISnappingResult snappingResult = SketchToolAssist.m_psnaper.Snap(ipoint_0);
                if (snappingResult == null)
                {
                    if (SketchToolAssist.m_pAP == null)
                    {
                        SketchToolAssist.m_pAP = new AnchorPoint()
                        {
                            Symbol = SketchShareEx.m_pSym as ISymbol
                        };
                    }
                    SketchToolAssist.m_pAP.MoveTo(SketchShareEx.m_pAnchorPoint, iactiveView_0.ScreenDisplay);
                }
                else
                {
                    SketchShareEx.m_pAnchorPoint = snappingResult.Location;
                    if (SketchToolAssist.m_pAP != null)
                    {
                        SketchToolAssist.m_pAP.MoveTo(snappingResult.Location, iactiveView_0.ScreenDisplay);
                    }
                    else
                    {
                        SketchToolAssist.AddNewAnchorPt(snappingResult.Location, esriSimpleMarkerStyle_0, iactiveView_0);
                    }
                }
            }
            else
            {
                SketchShareEx.m_pSym.Style = esriSimpleMarkerStyle_0;
                if (iengineSnapEnvironment_0 is ISnapEnvironment)
                {
                    ISnapEnvironment iengineSnapEnvironment0 = iengineSnapEnvironment_0 as ISnapEnvironment;
                    if ((iengineSnapEnvironment0 == null || !ApplicationRef.AppContext.Config.UseSnap
                        ? true
                        : !iengineSnapEnvironment0.SnapPoint(SketchShareEx.LastPoint, ipoint_0)))
                    {
                        if (ApplicationRef.AppContext.Config.IsSnapSketch)
                        {
                            mPPointColn = SketchToolAssist.m_pPointColn as IHitTest;
                            if (mPPointColn != null)
                            {
                                num      = 0;
                                num1     = 0;
                                num2     = 0;
                                flag     = false;
                                mapUnits = CommonHelper.ConvertPixelsToMapUnits(iactiveView_0,
                                                                                iengineSnapEnvironment0.SnapTolerance);
                                if (mapUnits == 0)
                                {
                                    mapUnits = 3;
                                }
                                pointClass = new ESRI.ArcGIS.Geometry.Point();
                                if (
                                    !mPPointColn.HitTest(ipoint_0, mapUnits,
                                                         esriGeometryHitPartType.esriGeometryPartVertex, pointClass, ref num, ref num1,
                                                         ref num2, ref flag))
                                {
                                    SketchShareEx.m_bSnapSuccessful = false;
                                    if (SketchToolAssist.m_pAP != null)
                                    {
                                        SketchToolAssist.m_pAP.MoveTo(ipoint_0, iactiveView_0.ScreenDisplay);
                                    }
                                    else
                                    {
                                        SketchToolAssist.AddNewAnchorPt(ipoint_0, esriSimpleMarkerStyle_0, iactiveView_0);
                                    }
                                    return;
                                }
                                ipoint_0.PutCoords(pointClass.X, pointClass.Y);
                                SketchShareEx.m_bSnapSuccessful = true;
                                if (SketchToolAssist.m_pAP != null)
                                {
                                    SketchToolAssist.m_pAP.MoveTo(ipoint_0, iactiveView_0.ScreenDisplay);
                                    return;
                                }
                                else
                                {
                                    SketchToolAssist.AddNewAnchorPt(ipoint_0, esriSimpleMarkerStyle_0, iactiveView_0);
                                    return;
                                }
                            }
                        }
                    }
                    else
                    {
                        SketchShareEx.m_bSnapSuccessful = true;
                        if (SketchToolAssist.m_pAP != null)
                        {
                            SketchToolAssist.m_pAP.MoveTo(ipoint_0, iactiveView_0.ScreenDisplay);
                        }
                        else
                        {
                            SketchToolAssist.AddNewAnchorPt(ipoint_0, esriSimpleMarkerStyle_0, iactiveView_0);
                        }
                    }
                }
                else if ((iengineSnapEnvironment_0 == null || !ApplicationRef.AppContext.Config.UseSnap
                    ? true
                    : !iengineSnapEnvironment_0.SnapPoint(ipoint_0)))
                {
                    if (ApplicationRef.AppContext.Config.IsSnapSketch)
                    {
                        mPPointColn = SketchToolAssist.m_pPointColn as IHitTest;
                        if (mPPointColn != null)
                        {
                            num      = 0;
                            num1     = 0;
                            num2     = 0;
                            flag     = false;
                            mapUnits = iengineSnapEnvironment_0.SnapTolerance;
                            if (iengineSnapEnvironment_0.SnapToleranceUnits ==
                                esriEngineSnapToleranceUnits.esriEngineSnapTolerancePixels)
                            {
                                mapUnits = CommonHelper.ConvertPixelsToMapUnits(iactiveView_0,
                                                                                iengineSnapEnvironment_0.SnapTolerance);
                            }
                            if (mapUnits == 0)
                            {
                                mapUnits = 3;
                            }
                            pointClass = new ESRI.ArcGIS.Geometry.Point();
                            if (
                                !mPPointColn.HitTest(ipoint_0, mapUnits, esriGeometryHitPartType.esriGeometryPartVertex,
                                                     pointClass, ref num, ref num1, ref num2, ref flag))
                            {
                                SketchShareEx.m_bSnapSuccessful = false;
                                if (SketchToolAssist.m_pAP != null)
                                {
                                    SketchToolAssist.m_pAP.MoveTo(ipoint_0, iactiveView_0.ScreenDisplay);
                                }
                                else
                                {
                                    SketchToolAssist.AddNewAnchorPt(ipoint_0, esriSimpleMarkerStyle_0, iactiveView_0);
                                }
                                return;
                            }
                            ipoint_0.PutCoords(pointClass.X, pointClass.Y);
                            SketchShareEx.m_bSnapSuccessful = true;
                            if (SketchToolAssist.m_pAP != null)
                            {
                                SketchToolAssist.m_pAP.MoveTo(ipoint_0, iactiveView_0.ScreenDisplay);
                                return;
                            }
                            else
                            {
                                SketchToolAssist.AddNewAnchorPt(ipoint_0, esriSimpleMarkerStyle_0, iactiveView_0);
                                return;
                            }
                        }
                    }
                }
                else
                {
                    SketchShareEx.m_bSnapSuccessful = true;
                    if (SketchToolAssist.m_pAP != null)
                    {
                        SketchToolAssist.m_pAP.MoveTo(ipoint_0, iactiveView_0.ScreenDisplay);
                    }
                    else
                    {
                        SketchToolAssist.AddNewAnchorPt(ipoint_0, esriSimpleMarkerStyle_0, iactiveView_0);
                    }
                }
            }
        }
Ejemplo n.º 3
0
        public static string SketchMouseMove(IPoint ipoint_0)
        {
            string          str;
            double          x;
            double          y;
            double          num;
            ISnappingResult snappingResult;
            string          unit;

            if (SketchToolAssist.Map != null)
            {
                IMap   map  = SketchToolAssist.Map;
                string str1 = "";
                bool   flag = true;
                if (SketchToolAssist.LastPoint != null)
                {
                    if (SketchToolAssist.IsFixDirection)
                    {
                        x   = ipoint_0.X - SketchToolAssist.LastPoint.X;
                        y   = ipoint_0.Y - SketchToolAssist.LastPoint.Y;
                        num = CommonHelper.azimuth(SketchToolAssist.LastPoint, ipoint_0);
                        double num1 = Math.Sqrt(x * x + y * y);
                        double num2 = num1 * Math.Cos(SketchToolAssist.FixDirection * 3.14159265358979 / 180);
                        double num3 = num1 * Math.Sin(SketchToolAssist.FixDirection * 3.14159265358979 / 180);
                        if (!(SketchToolAssist.FixDirection < 0 ? true : SketchToolAssist.FixDirection >= 90))
                        {
                            if ((num < 90 + SketchToolAssist.FixDirection
                                ? false
                                : num < 270 + SketchToolAssist.FixDirection))
                            {
                                num2 = -num2;
                                num3 = -num3;
                            }
                        }
                        else if (!(SketchToolAssist.FixDirection < 90 ? true : SketchToolAssist.FixDirection >= 270))
                        {
                            if ((num < SketchToolAssist.FixDirection - 90
                                ? true
                                : num >= SketchToolAssist.FixDirection + 90))
                            {
                                num2 = -num2;
                                num3 = -num3;
                            }
                        }
                        else if ((num < SketchToolAssist.FixDirection - 270
                            ? false
                            : num < SketchToolAssist.FixDirection - 90))
                        {
                            num2 = -num2;
                            num3 = -num3;
                        }
                        flag = false;
                        x    = SketchToolAssist.LastPoint.X + num2;
                        y    = SketchToolAssist.LastPoint.Y + num3;
                        ipoint_0.PutCoords(x, y);
                    }
                    else if (SketchToolAssist.IsFixLength)
                    {
                        num  = CommonHelper.azimuth(SketchToolAssist.LastPoint, ipoint_0);
                        x    = SketchToolAssist.FixLength * Math.Cos(num * 3.14159265358979 / 180);
                        y    = SketchToolAssist.FixLength * Math.Sin(num * 3.14159265358979 / 180);
                        x    = SketchToolAssist.LastPoint.X + x;
                        y    = SketchToolAssist.LastPoint.Y + y;
                        flag = false;
                        ipoint_0.PutCoords(x, y);
                    }
                }
                SketchToolAssist.m_pAnchorPoint = ipoint_0;
                if (flag)
                {
                    if (!Editor.UseOldSnap)
                    {
                        snappingResult = SketchToolAssist.m_psnaper.Snap(SketchToolAssist.m_pAnchorPoint);
                        if (snappingResult == null)
                        {
                            if (SketchToolAssist.m_pAP == null)
                            {
                                SketchToolAssist.m_pAP = new AnchorPoint()
                                {
                                    Symbol = SketchToolAssist.m_pSym as ISymbol
                                };
                            }
                            SketchToolAssist.m_pAP.MoveTo(SketchToolAssist.m_pAnchorPoint,
                                                          (map as IActiveView).ScreenDisplay);
                        }
                        else
                        {
                            SketchToolAssist.m_pAnchorPoint = snappingResult.Location;
                            if (SketchToolAssist.m_pAP == null)
                            {
                                SketchToolAssist.m_pAP = new AnchorPoint()
                                {
                                    Symbol = SketchToolAssist.m_pSym as ISymbol
                                };
                            }
                            SketchToolAssist.m_pAP.MoveTo(SketchToolAssist.m_pAnchorPoint,
                                                          (map as IActiveView).ScreenDisplay);
                        }
                    }
                    else
                    {
                        IAppContext application = ApplicationRef.AppContext;
                        snappingResult = SketchToolAssist.OldSnap(SketchToolAssist.m_pAnchorPoint, map as IActiveView,
                                                                  application.Config.EngineSnapEnvironment);
                        if (snappingResult == null)
                        {
                            if (SketchToolAssist.m_pAP == null)
                            {
                                SketchToolAssist.m_pAP = new AnchorPoint()
                                {
                                    Symbol = SketchToolAssist.m_pSym as ISymbol
                                };
                            }
                            SketchToolAssist.m_pAP.MoveTo(SketchToolAssist.m_pAnchorPoint,
                                                          (map as IActiveView).ScreenDisplay);
                        }
                        else
                        {
                            SketchToolAssist.m_pAnchorPoint = snappingResult.Location;
                            if (SketchToolAssist.m_pAP == null)
                            {
                                SketchToolAssist.m_pAP = new AnchorPoint()
                                {
                                    Symbol = SketchToolAssist.m_pSym as ISymbol
                                };
                            }
                            SketchToolAssist.m_pAP.MoveTo(SketchToolAssist.m_pAnchorPoint,
                                                          (map as IActiveView).ScreenDisplay);
                        }
                    }
                }
                if (SketchToolAssist.Feedback != null)
                {
                    SketchToolAssist.Feedback.MoveTo(SketchToolAssist.m_pAnchorPoint);
                }
                if (SketchToolAssist.IsDrawTempLine == DrawTempGeometry.None)
                {
                    if (SketchToolAssist.m_bShowVlaue)
                    {
                        if (SketchToolAssist.Feedback is INewLineFeedback)
                        {
                            unit = CommonHelper.GetUnit(map.MapUnits);
                            double num4 = CommonHelper.measureLength(ipoint_0, 2, ref SketchToolAssist.m_pLastPoint1,
                                                                     ref SketchToolAssist.m_pEndPoint1, ref SketchToolAssist.m_totalLength);
                            string[] strArrays = new string[]
                            {
                                "距离 = ", num4.ToString("0.###"), unit, ", 总长度 = ",
                                SketchToolAssist.m_totalLength.ToString("0.###"), unit
                            };
                            str1 = string.Concat(strArrays);
                        }
                        else if (SketchToolAssist.Feedback is INewPolygonFeedback)
                        {
                            unit = CommonHelper.GetUnit(map.MapUnits);
                            double num5   = CommonHelper.measureArea(ipoint_0, 2, ref SketchToolAssist.m_pPointColn);
                            double length = (SketchToolAssist.m_pPointColn as IPolygon).Length;
                            if (num5 > 0)
                            {
                                str1 = string.Format("周长 = {0:0.###} {1} ,总面积 = {2:0.###} 平方{1}", length, unit, num5);
                            }
                        }
                    }
                    str = str1;
                }
                else
                {
                    str = "";
                }
            }
            else
            {
                str = "";
            }
            return(str);
        }
Ejemplo n.º 4
0
 static SketchToolAssist()
 {
     SketchToolAssist.old_acctor_mc();
 }