public static void ZoomW(Point3d p1, Point3d p2 ,Editor ed)
{
Extents3d ext = GetExtens(p1, p2);
Point3d p1x = ext.MinPoint;
Point3d p2x = ext.MaxPoint;
Point3d midP = p1x + (p2x - p1x) * 0.5;
ViewTableRecord view =new ViewTableRecord();
view.CenterPoint = new Point2d(midP.X, midP.Y);
view.Height = p2x.Y - p1x.Y;
view.Width = p2x.X - p1x.X;
ed.SetCurrentView(view);
}
public static Extents3d GetExtens(params Point3d[] pts)
{
double Xmin, Ymin, Zmin, Xmax, Ymax, Zmax;
Xmin = Ymin = Zmin = double.MaxValue;
Xmax = Ymax = Zmax = double.MinValue;
foreach (Point3d x in pts)
{
if (Xmin>x.X)
{
Xmin = x.X;
}
if (Xmax<x.X)
{
Xmax = x.X;
}
if (Ymin>x.Y)
{
Ymin = x.Y;
}
if (Ymax<x.Y)
{
Ymax = x.Y;
}
if (Zmin > x.Z)
{
Zmin = x.Z;
}
if (Zmax < x.Z)
{
Zmax = x.Z;
}
}
return new Extents3d(new Point3d (Xmin,Ymin,Zmin),new Point3d(Xmax,Ymax,Zmax));
}