Class: Sketchup::Camera

Inherits:
Object
  • Object
show all
Defined in:
lib/sketchup-api-stubs/stubs/Sketchup/Camera.rb

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

Instance Method Summary collapse

Constructor Details

#initializeSketchup::Camera #initialize(eye, target, up, perspective = true, fov = 30.0) ⇒ Sketchup::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



312
313
# File 'lib/sketchup-api-stubs/stubs/Sketchup/Camera.rb', line 312

def initialize(*args)
end

Instance Method Details

#aspect_ratioFloat

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

Returns:

  • (Float)

Version:

  • SketchUp 6.0



38
39
# File 'lib/sketchup-api-stubs/stubs/Sketchup/Camera.rb', line 38

def aspect_ratio
end

#aspect_ratio=(ratio) ⇒ Object

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



55
56
# File 'lib/sketchup-api-stubs/stubs/Sketchup/Camera.rb', line 55

def aspect_ratio=(ratio)
end

#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



72
73
# File 'lib/sketchup-api-stubs/stubs/Sketchup/Camera.rb', line 72

def center_2d
end

#descriptionString

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

Examples:

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

Returns:

Version:

  • SketchUp 6.0



84
85
# File 'lib/sketchup-api-stubs/stubs/Sketchup/Camera.rb', line 84

def description
end

#description=(description) ⇒ Object

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



96
97
# File 'lib/sketchup-api-stubs/stubs/Sketchup/Camera.rb', line 96

def description=(description)
end

#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

Returns:

Version:

  • SketchUp 6.0



109
110
# File 'lib/sketchup-api-stubs/stubs/Sketchup/Camera.rb', line 109

def direction
end

#eyeGeom::Point3d

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

Examples:

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

Returns:

Version:

  • SketchUp 6.0



121
122
# File 'lib/sketchup-api-stubs/stubs/Sketchup/Camera.rb', line 121

def eye
end

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

Returns:

  • (Float)

Version:

  • SketchUp 6.0



143
144
# File 'lib/sketchup-api-stubs/stubs/Sketchup/Camera.rb', line 143

def focal_length(length)
end

#focal_length=(focal_length) ⇒ Object

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



168
169
# File 'lib/sketchup-api-stubs/stubs/Sketchup/Camera.rb', line 168

def focal_length=(focal_length)
end

#fovFloat

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



182
183
# File 'lib/sketchup-api-stubs/stubs/Sketchup/Camera.rb', line 182

def fov
end

#fov=(fov) ⇒ Object

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



198
199
# File 'lib/sketchup-api-stubs/stubs/Sketchup/Camera.rb', line 198

def fov=(fov)
end

#fov_is_height?Boolean

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

Returns:

  • (Boolean)

Version:

  • SketchUp 2015



217
218
# File 'lib/sketchup-api-stubs/stubs/Sketchup/Camera.rb', line 217

def fov_is_height?
end

#heightFloat

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



232
233
# File 'lib/sketchup-api-stubs/stubs/Sketchup/Camera.rb', line 232

def height
end

#height=(value) ⇒ Object

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



247
248
# File 'lib/sketchup-api-stubs/stubs/Sketchup/Camera.rb', line 247

def height=(value)
end

#image_widthFloat

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



264
265
# File 'lib/sketchup-api-stubs/stubs/Sketchup/Camera.rb', line 264

def image_width
end

#image_width=(image_width) ⇒ Object

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



283
284
# File 'lib/sketchup-api-stubs/stubs/Sketchup/Camera.rb', line 283

def image_width=(image_width)
end

#is_2d?Boolean

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

Returns:

  • (Boolean)

Version:

  • SketchUp 2015



324
325
# File 'lib/sketchup-api-stubs/stubs/Sketchup/Camera.rb', line 324

def is_2d?
end

#perspective=(perspective) ⇒ Object

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



338
339
# File 'lib/sketchup-api-stubs/stubs/Sketchup/Camera.rb', line 338

def perspective=(perspective)
end

#perspective?Boolean

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

Returns:

  • (Boolean)

Version:

  • SketchUp 6.0



356
357
# File 'lib/sketchup-api-stubs/stubs/Sketchup/Camera.rb', line 356

def perspective?
end

#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



371
372
# File 'lib/sketchup-api-stubs/stubs/Sketchup/Camera.rb', line 371

def scale_2d
end

#set(eye, target, up) ⇒ Sketchup::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:

Returns:

Version:

  • SketchUp 6.0



397
398
# File 'lib/sketchup-api-stubs/stubs/Sketchup/Camera.rb', line 397

def set(eye, target, up)
end

#targetGeom::Point3d

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

Examples:

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

Returns:

Version:

  • SketchUp 6.0



409
410
# File 'lib/sketchup-api-stubs/stubs/Sketchup/Camera.rb', line 409

def target
end

#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

Returns:

Version:

  • SketchUp 6.0



422
423
# File 'lib/sketchup-api-stubs/stubs/Sketchup/Camera.rb', line 422

def up
end

#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



438
439
# File 'lib/sketchup-api-stubs/stubs/Sketchup/Camera.rb', line 438

def xaxis
end

#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



455
456
# File 'lib/sketchup-api-stubs/stubs/Sketchup/Camera.rb', line 455

def yaxis
end

#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



475
476
# File 'lib/sketchup-api-stubs/stubs/Sketchup/Camera.rb', line 475

def zaxis
end