public static void WcsToUcs(List <Triangle> trs) { CoordinateSystem ceometricUcs = Conversions.GetCeometricUcs(); if (Conversions.IsWCS(ceometricUcs)) { return; } Triangle.TransformCoordinates(trs, CoordinateSystem.Global(), ceometricUcs); }
public static void WcsToUcs(PointSet ps) { CoordinateSystem ceometricUcs = Conversions.GetCeometricUcs(); if (Conversions.IsWCS(ceometricUcs)) { return; } ps.TransformCoordinates(CoordinateSystem.Global(), ceometricUcs); }
public static void WcsToUcs(List <Edge> edges) { CoordinateSystem ceometricUcs = Conversions.GetCeometricUcs(); if (Conversions.IsWCS(ceometricUcs)) { return; } Edge.TransformCoordinates(edges, CoordinateSystem.Global(), ceometricUcs); }
public static void EraseDublicates2d(ObjectId[] pointIDs, double epsilon, string keepMultiple, ref int numberOfPointsErased) { Database workingDatabase = HostApplicationServices.WorkingDatabase; ProgressMeter progressMeter = new ProgressMeter(); MessageFilter messageFilter = new MessageFilter(); System.Windows.Forms.Application.AddMessageFilter(messageFilter); IComparer <IdPoint> comparer = new Class2(); double num = epsilon * epsilon; try { using (Transaction transaction = workingDatabase.TransactionManager.StartTransaction()) { CoordinateSystem ceometricUcs = Conversions.GetCeometricUcs(); CoordinateSystem actualCS = CoordinateSystem.Global(); CoordinateTransformator coordinateTransformator = new CoordinateTransformator(actualCS, ceometricUcs); List <IdPoint> list = new List <IdPoint>(); for (int i = 0; i < pointIDs.Length; i++) { DBPoint dbPoint = (DBPoint)transaction.GetObject(pointIDs[i], (OpenMode)1, true); IdPoint idPoint = new IdPoint(dbPoint); coordinateTransformator.Transform(idPoint.Point); list.Add(idPoint); } list.Sort(comparer); List <IdPoint> list2 = new List <IdPoint>(); for (int j = 0; j < list.Count; j++) { list2.Add(list[j]); } if (keepMultiple == "H") { list.Reverse(); } progressMeter.SetLimit(list.Count); if ((double)list.Count > 10000.0) { progressMeter.Start("Eliminating points"); } for (int k = 0; k < list.Count; k++) { progressMeter.MeterProgress(); messageFilter.CheckMessageFilter((long)k, 1000); IdPoint idPoint2 = list[k]; if (!idPoint2.IsErased) { Point point = new Point(idPoint2.Point.X - epsilon, -1.7976931348623157E+308, -1.7976931348623157E+308); Point point2 = new Point(idPoint2.Point.X + epsilon, 1.7976931348623157E+308, 1.7976931348623157E+308); IdPoint item = new IdPoint(point, ObjectId.Null); IdPoint item2 = new IdPoint(point2, ObjectId.Null); int num2 = list2.BinarySearch(item, comparer); int num3 = list2.BinarySearch(item2, comparer); if (num2 < 0) { num2 = Math.Abs(num2) - 2; } if (num2 < 0) { num2 = 0; } if (num2 >= list.Count) { num2 = list.Count - 1; } if (num3 < 0) { num3 = Math.Abs(num3) - 1; } if (num3 < 0) { num3 = 0; } if (num3 >= list.Count) { num3 = list.Count - 1; } for (int l = num2; l <= num3; l++) { if (!list2[l].IsErased && list2[l] != idPoint2 && IdPoint.smethod_0(idPoint2.Point, list2[l].Point) < num) { list2[l].IsErased = true; list2[l].DBPoint.Erase(); numberOfPointsErased++; } } } } transaction.Commit(); } progressMeter.Stop(); } catch { progressMeter.Stop(); throw; } }