/// <summary> /// Zooms to the extents of the specified viewport. /// </summary> /// <param name="viewport">The viewport.</param> /// <param name="animationTime">The animation time.</param> public static void ZoomExtents(this Viewport3DX viewport, double animationTime = 0) { var bounds = viewport.FindBounds(); var diagonal = bounds.Maximum - bounds.Minimum; if (diagonal.LengthSquared() == 0) { return; } viewport.Camera.ZoomExtents(viewport, new Rect3D(bounds.Minimum.ToPoint3D(), (bounds.Maximum - bounds.Minimum).ToSize3D()), animationTime); }
/// <summary> /// Zooms to the extents of the specified viewport. /// </summary> /// <param name="viewport">The viewport.</param> /// <param name="animationTime">The animation time.</param> public static void ZoomExtents(this Viewport3DX viewport, double animationTime = 0) { var bounds = viewport.FindBounds(); var diagonal = new Vector3D(bounds.SizeX, bounds.SizeY, bounds.SizeZ); if (bounds.IsEmpty || diagonal.LengthSquared.Equals(0)) { return; } ZoomExtents(viewport, bounds, animationTime); }
/// <summary> /// Finds the bounding box of the viewport. /// </summary> /// <param name="viewport">The viewport.</param> /// <returns>The bounding box.</returns> public static Rect3D FindBounds3D(this Viewport3DX viewport) { var bounds = viewport.FindBounds(); return(new Rect3D(bounds.Minimum.ToPoint3D(), (bounds.Maximum - bounds.Minimum).ToSize3D())); }
/// <summary> /// Zooms to fit the extents of the specified viewport. /// </summary> /// <param name="camera"> /// The actual camera. /// </param> /// <param name="viewport"> /// The viewport. /// </param> /// <param name="animationTime"> /// The animation time. /// </param> public static void ZoomExtents( this Camera camera, Viewport3DX viewport, double animationTime = 0) { var bounds = viewport.FindBounds(); var diagonal = new Vector3D(bounds.SizeX, bounds.SizeY, bounds.SizeZ); if (bounds.IsEmpty || diagonal.LengthSquared.Equals(0)) { return; } ZoomExtents(camera as ProjectionCamera, viewport, bounds, animationTime); }