Skip to content

RhinoView.Redraw

Public Class

Redraws this view.

Namespace: Rhino.Display

Assembly: RhinoCommon (in RhinoCommon.dll)

**Since:**5.0

Syntax

public void Redraw()

Remarks

If you change something in “this” view like the projection, construction plane, background bitmap, etc., then you need to call RhinoView.Redraw() to redraw “this” view./ The other views will not be changed. If you change something in the document (like adding new geometry to the model), then you need to call RhinoDoc.Views.Redraw() to redraw all the views.

Examples

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()