public CFOUNDNODE FindNodeAtPoint(AxMap pMap, PointF pt) { CFOUNDNODE cFOUNDNODE = new CFOUNDNODE(); float num = (float)(this.m_Zoom / pMap.Zoom); num = Conversions.ToSingle(Operators.MultiplyObject(num, Interaction.IIf(this.m_MWidth > 0f, pMap.MapScreenWidth / this.m_MWidth, 1))); float num2; float num3; pMap.ConvertCoord(ref num2, ref num3, ref this.m_GocX, ref this.m_GocY, ConversionConstants.miMapToScreen); Matrix matrix = new Matrix(); matrix.Translate(-num2, -num3, MatrixOrder.Append); matrix.Scale(1f / num, 1f / num, MatrixOrder.Append); PointF[] array = new PointF[] { pt }; matrix.TransformPoints(array); PointF pt2 = new PointF(array[0].X, array[0].Y); checked { CFOUNDNODE result; for (int i = this.m_GObjs.Count - 1; i >= 0; i += -1) { GraphicObject graphicObject = this.m_GObjs[i]; int num4 = graphicObject.FindNodeAtPoint(pt2, 4f); if (num4 > -1) { int nodeIndex = num4; cFOUNDNODE.FoundObject = graphicObject; cFOUNDNODE.NodeIndex = nodeIndex; result = cFOUNDNODE; return(result); } } result = null; return(result); } }