public override void SetExtents() { Perimeter = 0; if (Points.Count > 0) { Extents.MinX = Double.MaxValue; Extents.MaxX = Double.MinValue; Extents.MinY = Double.MaxValue; Extents.MaxY = Double.MinValue; Extents.MinZ = Double.MaxValue; Extents.MaxZ = Double.MinValue; for (int i = 0; i < Points.Count; i++) { Extents.MinX = GeometricArithmeticModule.Min(Extents.MinX, Points[i].X); Extents.MaxX = GeometricArithmeticModule.Max(Extents.MaxX, Points[i].X); Extents.MinY = GeometricArithmeticModule.Min(Extents.MinY, Points[i].Y); Extents.MaxY = GeometricArithmeticModule.Max(Extents.MaxY, Points[i].Y); Extents.MinZ = GeometricArithmeticModule.Min(Extents.MinZ, Points[i].Z); Extents.MaxZ = GeometricArithmeticModule.Max(Extents.MaxZ, Points[i].Z); if (i < Points.Count - 1) { Perimeter += GeometricArithmeticModule.ABSMeasure(Points[i], Points[i + 1]); } } } else { Extents.MinX = 0; Extents.MaxX = 0; Extents.MinY = 0; Extents.MaxY = 0; Extents.MinZ = 0; Extents.MaxZ = 0; } }