123456789_123456789_123456789_123456789_123456789_

Class: Sketchup::Camera

Relationships
Inherits: Object

Overview

The Camera class contains methods for creating and manipulating a camera. The camera in SketchUp is the “point of view” from which you look at the model.

Examples:

# Create a camera from scratch with an "eye" position in
# x, y, z coordinates, a "target" position that
# defines what to look at, and an "up" vector.
eye = [1000,1000,1000]
target = [0,0,0]
up = [0,0,1]
my_camera = Sketchup::Camera.new eye, target, up

# Get a handle to the current view and change its camera.
view = Sketchup.active_model.active_view
view.camera = my_camera

Version:

  • SketchUp 6.0

Class Method Summary

  • .new ⇒ Sketchup::Camera constructor

    Returns a new camera with eye (where the camera is) and targets (where the camera is looking).

Instance Attribute Summary

Instance Method Summary

Constructor Details

.newCamera .new(eye, target, up, perspective = true, fov = 30.0) ⇒ Camera

Returns a new camera with eye (where the camera is) and targets (where the camera is looking).

Examples:

eye = Geom::Point3d.new(20, 5, 30)
target = Geom::Point3d.new(20, 60, 25)
up = Z_AXIS
camera = Sketchup::Camera.new(eye, target, up)

Arbitrary camera

camera = Sketchup::Camera.new

Overloads:

Version:

  • SketchUp 6.0

Instance Attribute Details

#aspect_ratioFloat (rw)

The #aspect_ratio method is used to retrieve the aspect ratio of the Camera.

‘0.0` is the default value and denotes an aspect ratio matching that of the View.

Examples:

camera = Sketchup.active_model.active_view.camera
aspect_ratio = camera.aspect_ratio

Version:

  • SketchUp 6.0

#aspect_ratio=(ratio) (rw)

The #aspect_ratio= method is used to set the aspect ratio for a Camera. Changing this value will cause SketchUp to show gray bars over the screen to show the resulting view.

If you set the value to ‘0.0`, then the aspect ratio of the Camera will match the aspect ratio of its View.

Examples:

camera = Sketchup::Camera.new
camera.aspect_ratio = 1.85

Parameters:

  • ratio (Float)

Version:

  • SketchUp 6.0

#descriptionString (rw)

The #description method is used to retrieve the description for a Camera.

Examples:

camera = Sketchup::Camera.new
description = camera.description

Version:

  • SketchUp 6.0

#description=(description) (rw)

The #description= method is used to set the description for the Camera.

Examples:

camera = Sketchup::Camera.new
description = camera.description = "35 mm Camera"

Parameters:

Version:

  • SketchUp 6.0

#fovFloat (rw)

The #fov method retrieves the field of view of the Camera.

This is only applicable to perspective cameras.

Examples:

camera = Sketchup::Camera.new
fov = camera.fov

Returns:

  • (Float)

    Field of view in degrees

Version:

  • SketchUp 6.0

#fov=(fov) (rw)

The #fov= method sets the field of view for a Camera. Field of view must be between 1 and 120 degrees, inclusive.

This is only valid on a perspective camera.

Examples:

camera = Sketchup::Camera.new
fov = camera.fov = 56.78

Parameters:

  • fov (Numeric)

    Field of view in degrees

Version:

  • SketchUp 6.0

#fov_is_height?Boolean (readonly)

The #fov_is_height? method indicates whether the field of view is measured vertically, as opposed horizontally.

Examples:

camera = Sketchup.active_model.active_view.camera
if camera.fov_is_height?
  fov_vertical = camera.fov
  # Compute the horizontal FOV.
else
  fov_horizontal = camera.fov
  # Compute the vertical FOV.
end

Version:

  • SketchUp 2015

#heightFloat (rw)

The #height method retrieves the height of a Camera.

This is only valid if it is not a perspective camera.

Examples:

camera = Sketchup::Camera.new
camera.perspective = false
height = camera.height

Returns:

  • (Float)

    height in inches.

Version:

  • SketchUp 6.0

#height=(value) (rw)

The #height= method is used to set the height for the Camera in inches.

This is only valid if it is not a perspective camera.

Examples:

camera = Sketchup::Camera.new
camera.perspective = false
camera.height = 20

Parameters:

  • value (Float)

Version:

  • SketchUp 6.0

#image_widthFloat (rw)

The #image_width method returns the width of the image, as used to calculate the #focal_length. This value has no effect on how the view is displayed in SketchUp.

The default value, 0, is interpreted by SketchUp as 36 mm (the width of traditional 35 mm film).

Examples:

camera = Sketchup::Camera.new
width = camera.image_width

Returns:

  • (Float)

    Width in mm.

Version:

  • SketchUp 6.0

#image_width=(image_width) (rw)

The #image_width= method is used to set the width of the image, as used to calculate the #focal_length. This value has no effect on how the view is displayed in SketchUp.

The default value, 0, is interpreted by SketchUp as 36 mm (the width of traditional 35 mm film).

Examples:

camera = Sketchup::Camera.new
camera.image_width = 1.0
focal_length = camera.focal_length

Parameters:

  • image_width (Float)

    Width in mm.

Version:

  • SketchUp 6.0

#is_2d?Boolean (readonly)

The #is_2d? method indicates if the camera two-point perspective or match photo mode.

Version:

  • SketchUp 2015

#perspective=(perspective) (rw)

The #perspective= method is used to set whether or not this is a perspective camera or an orthographic camera.

Examples:

camera = Sketchup::Camera.new
camera.perspective = false

Parameters:

  • perspective (Boolean)

Version:

  • SketchUp 6.0

#perspective?Boolean (rw)

The #perspective? method is used to determine whether a camera is a perspective or orthographic camera.

Examples:

camera = Sketchup::Camera.new
status = camera.perspective?
if (status)
  puts "Perspective"
else
  puts "Orthographic"
end

Version:

  • SketchUp 6.0

Instance Method Details

#center_2dGeom::Point3d

The #center_2d method returns a point with the x and y offset of the camera when it’s in two-point perspective or math photo mode. When the camera is in two-point perspective and the user pans around, the x and y values will change. These values are in normalized device coordinates, so for instance, the range [-1.0, 1.0] spans the full width or height of the screen.

The z value is unused and it is always zero.

Examples:

Sketchup.active_model.active_view.camera.center_2d

Returns:

Version:

  • SketchUp 2015

#directionGeom::Vector3d

The #direction method is used to retrieve a Vector3d object in the direction that the Camera is pointing.

Examples:

camera = Sketchup::Camera.new
direction = camera.direction

Version:

  • SketchUp 6.0

#eyeGeom::Point3d

The #eye method is used to retrieve the eye Point3d object for the Camera.

Examples:

camera = Sketchup::Camera.new
eye = camera.eye

Version:

  • SketchUp 6.0

#focal_length(length) ⇒ Float

The focal_length method is used to get the focal length in millimeters of perspective Camera.

This value is computed on the fly based on the camera #fov value and the camera #image_width value.

Examples:

# Calculate focal length based on camera's current #image_width.
camera = Sketchup::Camera.new
focal_length = camera.focal_length

# If you want the 35 mm focal length equivalent, a common measurement of
# camera field of view, you can instead calculate it from the #fov angle.
camera = Sketchup.active_model.active_view.camera
focal_length_35_eqv = 36.0 / (2 * Math.tan(camera.fov.degrees / 2))

Version:

  • SketchUp 6.0

#focal_length=(focal_length)

The #focal_length= method allows you to set the field of view by specifying a focal length in millimeters. Focal length must be between 1 and 3000, inclusive.

The camera #fov value is set based on the provided focal_length and the current #image_width for the camera.

Examples:

# Set field of view from focal length using camera's current #image_width.
camera = Sketchup.active_model.active_view.camera
camera.focal_length = 120

# If you instead want to set the 35 mm focal length equivalent, a common
# measurement of camera field of view, you can first convert it to an angle
# and use #fov=.
camera = Sketchup.active_model.active_view.camera
focal_length_35_eqv = 120
camera.fov = 2 * Math.atan(36.0 / (2 * focal_length_35_eqv)).radians

Parameters:

  • focal_length (Float)

Version:

  • SketchUp 6.0

#scale_2dObject

The #scale_2d method returns a float indicating the scaling factor of 2 point perspective cameras.

When the camera is in two-point perspective and the user uses the zoom tools, this value will change. Zooming out will produce a value greater than 1.0.

Returns:

  • float

Version:

  • SketchUp 2015

#set(eye, target, up) ⇒ Camera

The #set method sets the camera orientation. You have to set the camera eye, target and up parameters at the same time to make sure that you have a valid camera definition.

Examples:

camera = Sketchup::Camera.new
eye = Geom::Point3d.new(20, 5, 30)
target = Geom::Point3d.new(20, 60, 25)
up = Z_AXIS
camera.set(eye, target, up)

Parameters:

Version:

  • SketchUp 6.0

#targetGeom::Point3d

The #target method retrieves Point3d that the camera is pointing at.

Examples:

camera = Sketchup::Camera.new
target = camera.target

Version:

  • SketchUp 6.0

#upGeom::Vector3d

The #up method is used to retrieve the up vector for the camera. This is

the direction that the top of the camera is facing.

Examples:

camera = Sketchup::Camera.new
up = camera.up

Version:

  • SketchUp 6.0

#xaxisGeom::Vector3d

The #xaxis method is used to retrieve the x axis of the camera coordinate system.

This value is computed from the cross product between the camera direction and the up vector.

Examples:

camera = Sketchup::Camera.new
xaxis = camera.xaxis

Returns:

Version:

  • SketchUp 6.0

#yaxisGeom::Vector3d

The #yaxis method retrieves the y axis of the camera coordinate system.

This value is computed to be perpendicular the camera x and z axes. It is equivalent to the up direction, but is computed to make sure that it is perpendicular to the direction.

Examples:

camera = Sketchup::Camera.new
# 0.0, 1.0, 0.0
yaxis = camera.yaxis

Returns:

Version:

  • SketchUp 6.0

#zaxisObject

The #zaxis method retrieves the z axis of the camera coordinate system.

This value is computed. It is the same as Camera.direction

Examples:

camera = Sketchup::Camera.new
# 0.0, 1.0, 0.0
v = camera.zaxis
if (v)
  UI.messagebox v.to_s
else
  UI.messagebox "Failure"
end

Returns:

  • vector - a Vector3d object if successful

Version:

  • SketchUp 6.0