SketchUp  Ruby API Reference 

Class Index

Method Index

Developers Guide

Examples

View class

This class contains methods to manipulate the current point of view of the model. Many of these methods are meant to be invoked within a tool instead drawing separate from a tool (such as with the entities.add_edges method).

Parent: Object 

Methods: add_observer, animation=, average_refresh_time, camera, camera=, center, corner, draw, draw2d, draw_line, draw_lines, draw_points, draw_polyline, draw_text, drawing_color= , dynamic=, enable_autopan=, field_of_view, field_of_view=, guess_target, inference_locked? , inputpoint, invalidate, last_refresh_time, line_stipple= , line_width= , lock_inference, model, pick_helper, pickray, pixels_to_model, remove_observer, screen_coords, set_color_from_line, show_frame, tooltip=, vpheight, vpwidth, write_image, zoom, zoom_extents

Example Code: viewtests.rb, viewtooltests.rb, animation.rb

Instance Method


add_observer 

The add_observer method is used to add an observer to the current object.

Syntax

status = object.add_observer observer

Arguments

observer - an observer

Return Value

true if successful, false if unsuccessful.

Example

 

 


animation=

The animation= method is used to set an animation that is displayed for a view. See Animation for details on how to create an animation object.

Syntax

animation = view.animation = animation 
 

Arguments

animation - an Animation object

Return Value

animation - the newly set Animation object

Example

animation = ViewSpinner.new
model = Sketchup.active_model
view = model.active_view
anim = view.animation=animation
if (anim)
UI.messagebox anim
else
UI.messagebox "Failure"
end

 

 


average_refresh_time

The average_refresh_time is used to set the average time used to refresh the current model in the view. This can be used to estimate the frame rate for an animation.

Syntax

time = view.average_refresh_time 

Return Value

time - the time in milliseconds

Example

model = Sketchup.active_model
view = model.active_view
time = view.average_refresh_time

 

 


camera 

The camera method is used to retrieve the camera for the view.

Syntax

camera = view.camera 

Return Value

camera - a Camera object

Example 

model = Sketchup.active_model
view = model.active_view
c = view.camera

 

 


camera= 

The camera= method is used to set the camera for the view. If a transition time is given, then it will animate the transition from the current camera to the new one.

Syntax

view.camera = camera 
view.camera = camera, transition_time 
 

Arguments

camera - the new Camera object

transition_time - the transition time from the existing camera to the new camera

Example

camera2 = Sketchup.Camera.new
model = Sketchup.active_model
view = model.active_view
status = view.camera=camera2

 

 


center 

The center method is used to retrieve the coordinates of the center of the view in pixels.

Syntax

center = view.center

Return Value

center - the center of the view

Example

model = Sketchup.active_model
view = model.active_view
c = view.center

 

 


corner 

The corner method is used to retrieve the coordinates of one of the corners of the view. The argument is an index between 0 and 3 that identifies which corner you want. This method returns an array with two integers which are the coordinates of the corner of the view in the view space. If the view uses a Camera with a fixed aspect ratio, then the corners are the corners of the viewing are of the camera which might be different than the actual corners of the view itself.

Syntax

point = view.corner index 

Arguments

index - a value between (or including) 0 and 3 identifying the corner whose coordinate you want to retrieve.

Return Value

point - a Point3d object

Example 

model = Sketchup.active_model
view = model.active_view
pt = view.corner 0

 

 


draw 

The draw method is used to do basic drawing. This method can only be called from within the draw method of a tool that you implement in Ruby.

Syntax

view = view.draw mode, pts 

Arguments

mode - the item you are going to draw: GL_LINES, GL_LINE_LOOP, GL_LINE_STRIP, GL_TRIANGLES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_QUADS, GL_QUAD_STRIP, GL_POLYGON

pts - an array of Point3d objects

Return Value

view - a View object

Example 

point6 = Geom::Point3d.new 0,0,0
point7 = Geom::Point3d.new 100,0,0                        
view.line_width=10
status = view.draw GL_LINES, [point6, point7]

 

 


draw2d 

The draw2d method is used to draw in screen space (using 2D screen coordinates) instead of 3D space.

Syntax

view = view.draw2d openglenum, points

Arguments

openglenum - an OpenGL enumerator (unsigned integer). See comments.

points - an array of point3d objects (or several individual point3D objects). These Point3D objects are in screen space, not 3D space. The X value corresponds to the number of pixels from the left edge of the drawing area. The Y value corresponds to the number of pixels down from the top of the drawing area. The Z value is not used.

Return Value

The openglnum value can be any of the following: GL_POINTS, GL_LINES, GL_LINE_LOOP, GL_LINE_STRIP, GL_TRIANGLES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_QUADS, GL_QUAD_STRIP, GL_POLYGON.

Comments

view - returns the View object.

 

 


draw_line

The draw_line method is used to draw disconnected lines. This is an alias for draw_lines. See also draw_lines.

Syntax

view = view.draw_line point1, point2, point3, point4, ...

Arguments

point1, point2, poinit3, point4... - an even number of Point3d objects

Return Value

view - a View object

Comments

This method is usually invoked within the draw method of a tool.

 

 


draw_lines 

The draw_lines method is used to draw disconnected lines.  

Syntax

view = view.draw_lines point1, point2, point3, point4, ... 
view = view.draw_lines pts 

Arguments

point1, point2, poinit3, point4... - an even number of Point3d objects

pts - an array of Point3d objects

Return Value

view - a View object

Comments

You must have an even number of points. This method is usually  invoked within the draw method of a tool.

Example

point4 = Geom::Point3d.new 0,0,0
point5 = Geom::Point3d.new 100,100,100                        
# returns a view
status = view.drawing_color="red"
status = view.draw_lines point4, point5

 

 


draw_points 

This method is used to draw points.

Syntax

view = view.draw_points pts, <pointsize>, <pointstyle>, <pointcolor> 

Arguments

pts - an array of Point3d objects

<pointsize> - an optional size of the point in pixels

<pointstyle> - an optional style of the point. 1 = open square, 2 = filled square, 3 = "+", 4 = "X", 5 = "*", 6 = open triangle, 7 = filled triangle.

<pointcolor> - an optional color of the point

Return Value

view - a View object

Comments

This method is usually invoked within the draw method of a tool.

Example

point3 = Geom::Point3d.new 0,0,0
# returns a view
status = view.draw_points point3, 10, 1, "red"

 

 


draw_polyline 

The draw_polyline method is used to draw a series of connected line segments from pt1 to pt2 to pt3, and so on.

Syntax

view = view.draw_polyline pt1, pt2, pt3, pt4, ... 
view = view.draw_polyline pts

Arguments

point1, point2, poinit3, point4... - an even number of Point3d objects

pts - an array of Point3d objects

Return Value

view - a View object

Comments

This method is usually invoked within the draw method of a tool.

Example

point12 = Geom::Point3d.new 0,0,0
point13 = Geom::Point3d.new 10,10,10
point14 = Geom::Point3d.new 20,20,20
point15 = Geom::Point3d.new 30,30,30
status = view.draw_polyline point12, point13, point14, point15

 

 


draw_text 

This method is used to draw text on the screen.

Syntax

view = view.draw_text point "text"

Arguments

point - a Point3d object

"text" - the text string to draw

Comments

This method is usually invoked within the draw method of a tool.

Example

point16 = Geom::Point3d.new 0,0,0
status = view.draw_text point16, "This is a test"

 

 


drawing_color= 

The drawing_color method is used to set the color that is used for drawing to the view.

Syntax

view = view.drawing_color = color 

Arguments

color - a color

Return Value

view - a View object

Comments

This method is usually invoked within the draw method of a tool.

Example 

point17 = Geom::Point3d.new 0,0,0
point18 = Geom::Point3d.new 100,0,0
view.line_width=10
status = view.set_color_from_line point17, point18
status = view.draw_lines point17, point18

 

 


dynamic= 

The dynamic= method allows you to degrade performance, while improving performance, when a model is large and view refresh time is slow.

Syntax

value = view.dynamic=value

Arguments

value - 0 is false, 1 is true, >1 is

Comments

See also camera.rb which is part of the film and stage ruby scripts.

Example

view.dyamic=3

 

 


field_of_view

The field_of_view method is used to add an observer to the current object.

Syntax

 

Arguments

 

Return Value

 

Example

 

 


field_of_view= 

The field_of_view= method is used to add an observer to the current object.

Syntax

 

Arguments

 

Return Value

 

Example

 

 

 


enable_autopan= 

The enable_autopan= method allows you to allow the drawing window to pan when you drag the mouse beyond the boundary.

Syntax

status = view.enable_autopan = status

Arguments

status - true if you want to enable autopanning. false if you do not want to enable autopanning.

Return Value

status - true if autopanning is set to true, false if it is set to false.

Example

view.enable_autopan=false

 

 


guess_target 

The guess_target method is used to guess at what the user is looking at when you have a perspective view.

Syntax

target = view.guess_target

Return Value

target - a Point3d object representing the point in the model that the user is likely interested in.

Comments

This method is useful when writing a viewing tool. See also camera.rb which is part of the film and stage ruby scripts.

Example

target = view.guess_target

 

 


inference_locked? 

The inference_locked? method is used to determine if inference locking is on for the view.

Syntax

status = view.inference_locked? 

Return Value

status - true if locked, false if unlocked

 Example

model = Sketchup.active_model
view = model.active_view
status = view.inference_locked?

 

 


inputpoint 

The inputpoint method is used to retrieve an input point.

Syntax

inputpoint = view.inputpoint x, y 
inputpoint = view.inputpoint x, y, inputpoint1

Arguments

x - a x value

y - a y value

inputpoint1 - an InputPoint object

Comments

This will normally be used inside one of the mouse event handling methods in a tool. Usually, it is preferable to create the InputPoint first and then use the pick method on it.

Example 

depth = 100
width = 100
model = Sketchup.active_model
entities = model.active_entities
pts = []
pts[0] = [0, 0, 0]
pts[1] = [width, 0, 0]
pts[2] = [width, depth, 0]
pts[3] = [0, depth, 0]
# Add the face to the entities in the model
face = entities.add_face pts
edge = entities[0]
vertex = edge.end
point = vertex.position
view = model.active_view
ip = view.inputpoint point[0], point[1]

 

 


invalidate 

The invalidate method is used to refresh the view.

Syntax

view = view.invalidate 

Return Value

view - the invalidated View object

Example

model = Sketchup.active_model
view = model.active_view
status = view.invalidate

 

 


last_refresh_time 

The last_refresh_time method is used to retrieve the time for the last full view refresh.

Syntax

time = view.last_refresh_time 

Return Value

time - time in milliseconds

Example 

model = Sketchup.active_model
view = model.active_view
t = view.last_refresh_time

 

 


line_stipple= 

The line_stipple= method is used to set the line pattern to use for drawing.

Syntax

view = view.line_stipple = pattern 

Arguments

pattern - a stipple pattern. See ConstructionLine.stipple for valid stipples.

Return Value

view - the View object

Comments

This method is usually invoked within the draw method of a tool.

Example

point8 = Geom::Point3d.new 0,0,0
point9 = Geom::Point3d.new 100,100,100
# Stipple types documented in ConstructionLine class
view.line_stipple = "-.-"
view = view.draw_lines point8, point9

 

 


line_width= 

The line_width= method is used to set the line width to use for drawing. The value is a Double indicating the desired width in pixels.

Syntax

view = view.line_width = width 

Arguments

width - the width in pixels

Return Value

view - a View object

Comments

This method is usually invoked within the draw method of a tool.

Example 

point10 = Geom::Point3d.new 0,0,0
point11 = Geom::Point3d.new 100,100,100
view.line_width=10
view = view.draw_lines point10, point11

 

 


lock_inference 

The lock_inference method is used to lock or unlock an inference.

Syntax

view = view.lock_inference 
view = view.lock_inference inputpoint 
 
view = view.lock_inference inputpoint1, inputpoint2

Arguments

inputpoint, inputpoint2 - InputPoint objects

Return Value

view - a View object

Comments

This method will typically be called from inside a tool class when the user presses the shift key.

With no arguments it unlocks all inferences. With one or two arguments, it locks the inference based on the given InputPoint(s).

Example 

model = Sketchup.active_model
view = model.active_view
s = view.lock_inference
UI.messagebox $!.message
status = view.inference_locked?

 

 


model 

The model method is used to retrieve the model for the current view.

Syntax

model = view.model 

Return Value

model - the model for this view

Example 

model = Sketchup.active_model
view = model.active_view
m = view.model

 

 


pick_helper 

The pick_helper method is used to retrieve a pick helper for the view. See the PickHelper class for information on pick helpers.

Syntax

pickhelper = view.pick_helper 
pickhelper = view.pick_helper x, y
pickhelper = view.pick_helper x, y, aperture

Arguments

x - a x value

y - a y value

aperture - a radius in pixels that defines what items will be picked.

Return Value

pickhelper - a PickHelper object

Comments

With no arguments, this returns an initialized PickHelper.

If you supply x and y, they are screen coordinates of the point at which you want to do a pick. Typically, there will be points that were passed to a method on a tool class.

The optional aperture lets you set how big a pick aperture (in pixels) you want to use for allowing things to be picked. The default uses the standard pick aperture used for SketchUp picking.

Example

model = Sketchup.active_model
view = model.active_view
ph = view.pick_helper

 

 


pickray 

The pickray method is used to retrieve a ray passing through a given screen position in the viewing direction.

Syntax

ray = view.pickray x, y 

Return Value

ray - a ray

Example 

depth = 100
width = 100
model = Sketchup.active_model
entities = model.active_entities
pts = []
pts[0] = [0, 0, 0]
pts[1] = [width, 0, 0]
pts[2] = [width, depth, 0]
pts[3] = [0, depth, 0]
# Add the face to the entities in the model
face = entities.add_face pts
edge = entities[0]
vertex = edge.end
point = vertex.position
view = model.active_view
ray = view.pickray point[0], point[1]

 

 


pixels_to_model 

The pixels_to_model method is used to compute a model size from a pixel size at a given point.

Syntax

size = view.pixels_to_model pixels, point 
 

Arguments

pixels - the pixel size

point - a Point3d object where the size will be calculated from

Return Value

size - the model size

Comments

This method is useful for deciding how big to draw something based on a desired size in pixels.

 

 


remove_observer

The remove_observer method is used to remove an observer from the current object.

Syntax

status = object.remove_observer observer

Arguments

observer - an observer

Return Value

true if successful, false if unsuccessful.

Example

 

 


screen_coords

The screen_coords method is used to retrieve the screen coordinates of the given point on the screen.

Syntax

point3d = view.screen_coords point3d

Arguments

point3d - a Point3d object.

Return Values

point3d - the screen coordinates.

Example

 

 

 


set_color_from_line 

Set the drawing color for the view based on the direction of a line that you want to draw.

Syntax

view = view.set_color_from_line point1, point2 

Arguments

point1, point2 - Point3d objects representing the line you want to draw

Return Value

view - a View object

Comments

This method is usually invoked within the draw method of a tool.

Example 

point17 = Geom::Point3d.new 0,0,0
point18 = Geom::Point3d.new 100,0,0
view.line_width=10
status = view.set_color_from_line point17, point18
status = view.draw_lines point17, point18

 

 


show_frame 

The show_frame method is used to show a frame of an Animation object in the current view.

Syntax

status = view.show_frame <delay>

Arguments

<delay> - an optional delay in seconds.

Comments

You can supply an optional delay in seconds to wait before showing the next frame. This can be useful to control the speed at which the animation runs.

Example 

view.show_frame

 

 


tooltip= 

Set a tooltip to display in the view. This is useful for displaying tooltips in a tool that you write in Ruby.

Syntax

tooltip = view.tooltip = string 

Arguments

string - the string tooltip

Return Value

tooltip - the new tooltip string

Example 

model = Sketchup.active_model
view = model.active_view
# Returns a string tool tip
tt = view.tooltip="This is a Test"

 

 


vpheight 

The vpheight method is used to retrieve the height of the viewport for the view.

Syntax

height = view.vpheight 

Return Value

height - the height of the viewport in pixels.

Example

model = Sketchup.active_model
view = model.active_view
height = view.vpheight

 

 


vpwidth 

The vpwidth method is used to retrieve the width of the viewport for the view.

Syntax

width = view.vpwidth 

Return Value

width - the width of the viewport in pixels.

Example 

model = Sketchup.active_model
view = model.active_view
width = view.vpwidth

 

 


write_image 

The write_image method is used to write the current view to an image file.

Syntax

status - view.write_image filename, <width>, <height>, <antialias>, <compressionFactor> 

Arguments

filename - the filename for the saved image

<width> - width in pixels

<height> - height in pixels

<antialias> -

<compressionFactor> -

Comments

All arguments except for the filename are optional.

If you specify a width without specifying a height, or if you give zero for either the width or height, then the other dimension is computed to preserve the aspect ratio of the view.

If antialias is specified, it should be either true or false.

Example

depth = 100
width = 100
model = Sketchup.active_model
entities = model.active_entities
pts = []
pts[0] = [0, 0, 0]
pts[1] = [width, 0, 0]
pts[2] = [width, depth, 0]
pts[3] = [0, depth, 0]
# Add the face to the entities in the model
face = entities.add_face pts
UI.messagebox "Now Lets Write the Image"
view = model.active_view
# Puts in SketchUp install directory by default
status = view.write_image "test.jpg"

 

 


zoom 

The zoom method is used to zoom in or out by some zoom factor.

Syntax

view = view.zoom factor
view = view.zoom selection
view = view.zoom entities

view = view.zoom array_of_entities

Arguments

factor - a Zoom factor from 1 or larger

Return Value

view - the zoomed View object

Example 

depth = 100
width = 100
model = Sketchup.active_model
entities = model.active_entities
pts = []
pts[0] = [0, 0, 0]
pts[1] = [width, 0, 0]
pts[2] = [width, depth, 0]
pts[3] = [0, depth, 0]
# Add the face to the entities in the model
face = entities.add_face pts
UI.messagebox "Now Lets Zoom"
view = model.active_view
newview = view.zoom 3

 

 


zoom_extents 

The zoom_extents method is used to zoom so that the entire model fills the view.

Syntax

view = view.zoom_extents 

Return Value

view - the zoomed View object

Example

depth = 100
width = 100
model = Sketchup.active_model
entities = model.active_entities
pts = []
pts[0] = [0, 0, 0]
pts[1] = [width, 0, 0]
pts[2] = [width, depth, 0]
pts[3] = [0, depth, 0]
# Add the face to the entities in the model
face = entities.add_face pts
UI.messagebox "Now Lets Zoom Extents"
view = model.active_view
newview = view.zoom_extents

 

SketchUp  Ruby API Reference: View

© Google Inc. 2007 sketchup.google.com