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(); }
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); } } } }
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); }
static SketchToolAssist() { SketchToolAssist.old_acctor_mc(); }