RhinoViewRedraw Method |
Namespace: Rhino.Display
using System; partial class Examples { public static Rhino.Commands.Result AddBackgroundBitmap(Rhino.RhinoDoc doc) { // Allow the user to select a bitmap file var fd = new Rhino.UI.OpenFileDialog { Filter = "Image Files (*.bmp;*.png;*.jpg)|*.bmp;*.png;*.jpg" }; if (!fd.ShowOpenDialog()) return Rhino.Commands.Result.Cancel; // Verify the file that was selected System.Drawing.Image image; try { image = System.Drawing.Image.FromFile(fd.FileName); } catch (Exception) { return Rhino.Commands.Result.Failure; } // Allow the user to pick the bitmap origin var gp = new Rhino.Input.Custom.GetPoint(); gp.SetCommandPrompt("Bitmap Origin"); gp.ConstrainToConstructionPlane(true); gp.Get(); if (gp.CommandResult() != Rhino.Commands.Result.Success) return gp.CommandResult(); // Get the view that the point was picked in. // This will be the view that the bitmap appears in. var view = gp.View(); if (view == null) { view = doc.Views.ActiveView; if (view == null) return Rhino.Commands.Result.Failure; } // Allow the user to specify the bitmap width in model units var gn = new Rhino.Input.Custom.GetNumber(); gn.SetCommandPrompt("Bitmap width"); gn.SetLowerLimit(1.0, false); gn.Get(); if (gn.CommandResult() != Rhino.Commands.Result.Success) return gn.CommandResult(); // Cook up some scale factors var w = gn.Number(); var image_width = image.Width; var image_height = image.Height; var h = w * (image_height / image_width); var plane = view.ActiveViewport.ConstructionPlane(); plane.Origin = gp.Point(); view.ActiveViewport.SetTraceImage(fd.FileName, plane, w, h, false, false); view.Redraw(); return Rhino.Commands.Result.Success; } }
import Rhino import scriptcontext import System.Windows.Forms.DialogResult import System.Drawing.Image def AddBackgroundBitmap(): # Allow the user to select a bitmap file fd = Rhino.UI.OpenFileDialog() fd.Filter = "Image Files (*.bmp;*.png;*.jpg)|*.bmp;*.png;*.jpg" if fd.ShowDialog()!=System.Windows.Forms.DialogResult.OK: return Rhino.Commands.Result.Cancel # Verify the file that was selected image = None try: image = System.Drawing.Image.FromFile(fd.FileName) except: return Rhino.Commands.Result.Failure # Allow the user to pick the bitmap origin gp = Rhino.Input.Custom.GetPoint() gp.SetCommandPrompt("Bitmap Origin") gp.ConstrainToConstructionPlane(True) gp.Get() if gp.CommandResult()!=Rhino.Commands.Result.Success: return gp.CommandResult() # Get the view that the point was picked in. # This will be the view that the bitmap appears in. view = gp.View() if view is None: view = scriptcontext.doc.Views.ActiveView if view is None: return Rhino.Commands.Result.Failure # Allow the user to specify the bitmap with in model units gn = Rhino.Input.Custom.GetNumber() gn.SetCommandPrompt("Bitmap width") gn.SetLowerLimit(1.0, False) gn.Get() if gn.CommandResult()!=Rhino.Commands.Result.Success: return gn.CommandResult() # Cook up some scale factors w = gn.Number() h = w * (image.Width / image.Height) plane = view.ActiveViewport.ConstructionPlane() plane.Origin = gp.Point() view.ActiveViewport.SetTraceImage(fd.FileName, plane, w, h, False, False) view.Redraw() return Rhino.Commands.Result.Success if __name__=="__main__": AddBackgroundBitmap()