Example #1
0
        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;
            }
        }