class Layout::SketchUpModel

A SketchUp Model entity. This is an instance of a SketchUp Model that is inserted into a .layout file. You can change the render mode, line weight, and set the current scene for the SketchUp Model with this interface.

@example

bounds = Geom::Bounds2d.new(1, 1, 3, 3)
model = Layout::SketchUpModel.new("C:/Path/to/model.skp", bounds)
model.current_scene = 2
model.view = Layout::SketchUpModel::FRONT_VIEW
model.render_mode = Layout::SketchUpModel::VECTOR_RENDER
model.render if model.render_needed?

@version LayOut 2018

Constants

BACK_VIEW
BOTTOM_RELATIVE_VIEW

Constants

BOTTOM_VIEW
CUSTOM_VIEW
FRONT_VIEW
HYBRID_RENDER
ISO_VIEW
LEFT_VIEW
RASTER_RENDER
RIGHT_VIEW
TOP_RELATIVE_VIEW
TOP_VIEW
VECTOR_RENDER

Public Class Methods

new(path, bounds) click to toggle source

The {#initialize} method creates a new {Layout::SketchUpModel}.

@example

bounds = Geom::Bounds2d.new(1, 1, 3, 3)
model = Layout::SketchUpModel.new("C:/Path/to/model.skp", bounds)

@param [String] path

The path to a .skp file

@param [Geom::Bounds2d] bounds

@raise [ArgumentError] if path does not point to a valid SketchUp Model file

@raise [ArgumentError] if bounds is zero size

@return [Layout::SketchUpModel]

@version LayOut 2018

# File lib/sketchup-api-stubs/stubs/Layout/SketchUpModel.rb, line 282
def initialize(path, bounds)
end

Public Instance Methods

camera_modified?() click to toggle source

The {#camera_modified?} method returns whether the camera of the {Layout::SketchUpModel} has been modified.

@example

bounds = Geom::Bounds2d.new(1, 1, 3, 3)
model = Layout::SketchUpModel.new("C:/Path/to/model.skp", bounds)
modified = model.camera_modified?

@return [Boolean]

@version LayOut 2020.1

# File lib/sketchup-api-stubs/stubs/Layout/SketchUpModel.rb, line 58
def camera_modified?
end
clip_mask() click to toggle source

The {#clip_mask} method returns the clip mask entity for the {Layout::SketchUpModel}, or nil if it does not have one. clip_mask can be a {Layout::Rectangle}, {Layout::Ellipse}, or {Layout::Path}.

@example

bounds = Geom::Bounds2d.new(1, 1, 3, 3)
model = Layout::SketchUpModel.new("C:/Path/to/model.skp", bounds)
clip_mask = model.clip_mask

@return [Layout::Entity]

@version LayOut 2018

# File lib/sketchup-api-stubs/stubs/Layout/SketchUpModel.rb, line 73
def clip_mask
end
clip_mask=(clip_mask) click to toggle source

The {#clip_mask=} method sets a clip mask for the {Layout::SketchUpModel}. clip_mask can be a {Layout::Rectangle}, {Layout::Ellipse}, or {Layout::Path}, or nil, and it must not currently exist in a {Layout::Document}, or {Layout::Group}.

@example

bounds = Geom::Bounds2d.new(1, 1, 3, 3)
model = Layout::SketchUpModel.new("C:/Path/to/model.skp", bounds)
rect = Layout::Rectangle.new([[2, 2], [3, 3]]);
model.clip_mask = rect

@note clip_mask may be nil as of LayOut 2020.1.

@param [Layout::Entity, nil] clip_mask

The clip mask can be a {Layout::Path},
{Layout::Rectangle}, {Layout::Ellipse}, or +nil+.

@raise [ArgumentError] if clip_mask is already in a {Layout::Document} or

{Layout::Group}

@raise [ArgumentError] if clip_mask is not a {Layout::Rectangle},

{Layout::Ellipse}, or {Layout::Path}

@raise [LockedLayerError] if the {Layout::SketchUpModel} is on a locked

{Layout::Layer}

@raise [LockedEntityError] if the {Layout::SketchUpModel} is locked

@version LayOut 2018

# File lib/sketchup-api-stubs/stubs/Layout/SketchUpModel.rb, line 105
def clip_mask=(clip_mask)
end
current_scene() click to toggle source

The {#current_scene} method returns the index of the most recently selected scene of the {Layout::SketchUpModel}.

@example

bounds = Geom::Bounds2d.new(1, 1, 3, 3)
model = Layout::SketchUpModel.new("C:/Path/to/model.skp", bounds)
scene_index = model.current_scene

@raise [ArgumentError] if the most recently selected scene no longer exists

@return [Integer]

@version LayOut 2018

# File lib/sketchup-api-stubs/stubs/Layout/SketchUpModel.rb, line 121
def current_scene
end
current_scene=(index) click to toggle source

The {#current_scene=} method sets the scene of the {Layout::SketchUpModel}.

@example

bounds = Geom::Bounds2d.new(1, 1, 3, 3)
model = Layout::SketchUpModel.new("C:/Path/to/model.skp", bounds)
model.current_scene = 1

@note LayOut automatically adds the scene “Last Saved SketchUp View” to each

{Layout::SketchUpModel}. This means that the {Sketchup::Model}'s scenes
start with index 1.

@param [Integer] index

The index into the list of available scenes.

@raise [IndexError] if index is out of range

@raise [LockedLayerError] if the {Layout::SketchUpModel} is on a locked

{Layout::Layer}

@raise [LockedEntityError] if the {Layout::SketchUpModel} is locked

@version LayOut 2018

# File lib/sketchup-api-stubs/stubs/Layout/SketchUpModel.rb, line 146
def current_scene=(index)
end
current_scene_modified?() click to toggle source

The {#current_scene_modified?} method returns whether the most recently selected scene of the {Layout::SketchUpModel} has been modified.

@example

bounds = Geom::Bounds2d.new(1, 1, 3, 3)
model = Layout::SketchUpModel.new("C:/Path/to/model.skp", bounds)
modified = model.current_scene_modified?

@raise [ArgumentError] if the most recently selected scene no longer exists

@return [Boolean]

@version LayOut 2018

# File lib/sketchup-api-stubs/stubs/Layout/SketchUpModel.rb, line 162
def current_scene_modified?
end
dash_scale() click to toggle source

The {#dash_scale} method returns the dash scale for the {Layout::SketchUpModel}. A scale value of 0.0 means the dashes are scaled based on the line weight.

@example

bounds = Geom::Bounds2d.new(1, 1, 3, 3)
model = Layout::SketchUpModel.new("C:/Path/to/model.skp", bounds)
dash_scale = model.dash_scale

@return [Float]

@version LayOut 2019

# File lib/sketchup-api-stubs/stubs/Layout/SketchUpModel.rb, line 177
def dash_scale
end
dash_scale=(dash_scale) click to toggle source

The {#dash_scale=} method sets the dash scale for the {Layout::SketchUpModel}. A scale value of 0.0 or lower will “auto” scale the dashes based on the line weight.

@example

bounds = Geom::Bounds2d.new(1, 1, 3, 3)
model = Layout::SketchUpModel.new("C:/Path/to/model.skp", bounds)
model.dash_scale = 2.5

@param [Float] dash_scale

@raise [LockedLayerError] if the {Layout::SketchUpModel} is on a locked

{Layout::Layer}

@raise [LockedEntityError] if the {Layout::SketchUpModel} is locked

@version LayOut 2018

# File lib/sketchup-api-stubs/stubs/Layout/SketchUpModel.rb, line 197
def dash_scale=(dash_scale)
end
display_background=(display) click to toggle source

The {#display_background=} method sets whether the background is displayed for the {Layout::SketchUpModel}.

@example

bounds = Geom::Bounds2d.new(1, 1, 3, 3)
model = Layout::SketchUpModel.new("C:/Path/to/model.skp", bounds)
model.display_background = false

@param [Boolean] display

@raise [LockedLayerError] if the {Layout::SketchUpModel} is on a locked

{Layout::Layer}

@raise [LockedEntityError] if the {Layout::SketchUpModel} is locked

@version LayOut 2018

# File lib/sketchup-api-stubs/stubs/Layout/SketchUpModel.rb, line 216
def display_background=(display)
end
display_background?() click to toggle source

The {#display_background?} method returns whether the background is displayed for the {Layout::SketchUpModel}.

@example

bounds = Geom::Bounds2d.new(1, 1, 3, 3)
model = Layout::SketchUpModel.new("C:/Path/to/model.skp", bounds)
displayed = model.display_background?

@return [Boolean]

@version LayOut 2018

# File lib/sketchup-api-stubs/stubs/Layout/SketchUpModel.rb, line 230
def display_background?
end
effects_modified?() click to toggle source

The {#effects_modified?} method returns whether the shadow or fog settings of the {Layout::SketchUpModel} have been modified.

@example

bounds = Geom::Bounds2d.new(1, 1, 3, 3)
model = Layout::SketchUpModel.new("C:/Path/to/model.skp", bounds)
modified = model.effects_modified?

@return [Boolean]

@version LayOut 2020.1

# File lib/sketchup-api-stubs/stubs/Layout/SketchUpModel.rb, line 244
def effects_modified?
end
entities() click to toggle source

The {#entities} method returns the {Layout::Group} that represents the {Layout::SketchUpModel} in its exploded form. The {Layout::Group} will contain a {Layout::Image} for raster and hybrid-rendered models, and will contain a {Layout::Group} of LayOut entities for vector and hybrid-rendered models.

@example

bounds = Geom::Bounds2d.new(1, 1, 3, 3)
model = Layout::SketchUpModel.new("C:/Path/to/model.skp", bounds)
entities = model.entities

@return [Layout::Entity]

@version LayOut 2018

# File lib/sketchup-api-stubs/stubs/Layout/SketchUpModel.rb, line 261
def entities
end
layers_modified?() click to toggle source

The {#layers_modified?} method returns whether the layers of the {Layout::SketchUpModel} has been modified.

@note: In SketchUp 2020, SketchUp “layers” were renamed to “tags”. For

consistency with the SketchUp API, this will continue to refer to
"tags" as "layers".

@example

bounds = Geom::Bounds2d.new(1, 1, 3, 3)
model = Layout::SketchUpModel.new("C:/Path/to/model.skp", bounds)
modified = model.layers_modified?

@return [Boolean]

@version LayOut 2020.1

# File lib/sketchup-api-stubs/stubs/Layout/SketchUpModel.rb, line 301
def layers_modified?
end
line_weight() click to toggle source

The {#line_weight} method returns the line weight for the {Layout::SketchUpModel}.

@example

bounds = Geom::Bounds2d.new(1, 1, 3, 3)
model = Layout::SketchUpModel.new("C:/Path/to/model.skp", bounds)
line_weight = model.line_weight

@return [Float]

@version LayOut 2018

# File lib/sketchup-api-stubs/stubs/Layout/SketchUpModel.rb, line 315
def line_weight
end
line_weight=(line_weight) click to toggle source

The {#line_weight=} method sets the line weight for the {Layout::SketchUpModel}. Line weight must be at least 0.01.

@example

bounds = Geom::Bounds2d.new(1, 1, 3, 3)
model = Layout::SketchUpModel.new("C:/Path/to/model.skp", bounds)
model.line_weight = 2.5

@param [Float] line_weight

@raise [ArgumentError] if line_weight is less than 0.01

@raise [LockedLayerError] if the {Layout::SketchUpModel} is on a locked

{Layout::Layer}

@raise [LockedEntityError] if the {Layout::SketchUpModel} is locked

@version LayOut 2018

# File lib/sketchup-api-stubs/stubs/Layout/SketchUpModel.rb, line 336
def line_weight=(line_weight)
end
model_to_paper_point(model_point) click to toggle source

The {#model_to_paper_point} method converts the {Geom::Point3d} in the {Layout::SketchUpModel} to a {Geom::Point2d} in paper space.

@example

bounds = Geom::Bounds2d.new(1, 1, 3, 3)
model = Layout::SketchUpModel.new("C:/Path/to/model.skp", bounds)
point_3d = [200, 100, 100]
point_2d = model.model_to_paper_point(point_3d)

@param [Geom::Point3d] model_point

@return [Geom::Point2d]

@version LayOut 2018

# File lib/sketchup-api-stubs/stubs/Layout/SketchUpModel.rb, line 353
def model_to_paper_point(model_point)
end
perspective=(perspective) click to toggle source

The {#perspective=} method sets whether the {Layout::SketchUpModel}'s view is perspective or orthographic.

@example

bounds = Geom::Bounds2d.new(1, 1, 3, 3)
model = Layout::SketchUpModel.new("C:/Path/to/model.skp", bounds)
model.perspective = false

@param [Boolean] perspective

@raise [LockedLayerError] if the {Layout::SketchUpModel} is on a locked

{Layout::Layer}

@raise [LockedEntityError] if the {Layout::SketchUpModel} is locked

@version LayOut 2018

# File lib/sketchup-api-stubs/stubs/Layout/SketchUpModel.rb, line 372
def perspective=(perspective)
end
perspective?() click to toggle source

The {#perspective?} method returns whether the {Layout::SketchUpModel}'s view is perspective or orthographic.

@example

bounds = Geom::Bounds2d.new(1, 1, 3, 3)
model = Layout::SketchUpModel.new("C:/Path/to/model.skp", bounds)
perspective = model.perspective?

@return [Boolean]

@version LayOut 2018

# File lib/sketchup-api-stubs/stubs/Layout/SketchUpModel.rb, line 386
def perspective?
end
preserve_scale_on_resize=(preserve_scale) click to toggle source

The {#preserve_scale_on_resize=} method sets whether the scale is preserved when the {Layout::SketchUpModel} is resized.

@example

bounds = Geom::Bounds2d.new(1, 1, 3, 3)
model = Layout::SketchUpModel.new("C:/Path/to/model.skp", bounds)
model.preserve_scale_on_resize = true

@param [Boolean] preserve_scale

@raise [LockedLayerError] if the {Layout::SketchUpModel} is on a locked

{Layout::Layer}

@raise [LockedEntityError] if the {Layout::SketchUpModel} is locked

@version LayOut 2018

# File lib/sketchup-api-stubs/stubs/Layout/SketchUpModel.rb, line 405
def preserve_scale_on_resize=(preserve_scale)
end
preserve_scale_on_resize?() click to toggle source

The {#preserve_scale_on_resize?} method returns whether the scale is preserved when the {Layout::SketchUpModel} is resized.

@example

bounds = Geom::Bounds2d.new(1, 1, 3, 3)
model = Layout::SketchUpModel.new("C:/Path/to/model.skp", bounds)
will_scale = model.preserve_scale_on_resize?

@return [Boolean]

@version LayOut 2018

# File lib/sketchup-api-stubs/stubs/Layout/SketchUpModel.rb, line 419
def preserve_scale_on_resize?
end
render() click to toggle source

The {#render} method renders the {Layout::SketchUpModel}. If the model belongs to a {Layout::Document}, then the render will be performed at the quality set in document.page_info (see {Layout::Document} and {Layout::PageInfo}). Otherwise, the render will be performed at Low quality.

@example

bounds = Geom::Bounds2d.new(1, 1, 3, 3)
model = Layout::SketchUpModel.new("C:/Path/to/model.skp", bounds)
model.render if model.render_needed?

@raise [LockedLayerError] if the {Layout::SketchUpModel} is on a locked

{Layout::Layer}

@raise [LockedEntityError] if the {Layout::SketchUpModel} is locked

@version LayOut 2018

# File lib/sketchup-api-stubs/stubs/Layout/SketchUpModel.rb, line 438
def render
end
render_mode() click to toggle source

The {#render_mode} method returns the render mode of the {Layout::SketchUpModel}.

The render mode can be one of the following:

Layout::SketchUpModel::RASTER_RENDER
Layout::SketchUpModel::HYBRID_RENDER
Layout::SketchUpModel::VECTOR_RENDER

@example

bounds = Geom::Bounds2d.new(1, 1, 3, 3)
model = Layout::SketchUpModel.new("C:/Path/to/model.skp", bounds)
render_mode = model.render_mode

@return [Integer]

@version LayOut 2018

# File lib/sketchup-api-stubs/stubs/Layout/SketchUpModel.rb, line 457
def render_mode
end
render_mode=(render_mode) click to toggle source

The {#render_mode=} method sets the render mode of the {Layout::SketchUpModel}.

The render mode can be one of the following:

Layout::SketchUpModel::RASTER_RENDER
Layout::SketchUpModel::HYBRID_RENDER
Layout::SketchUpModel::VECTOR_RENDER

@example

bounds = Geom::Bounds2d.new(1, 1, 3, 3)
model = Layout::SketchUpModel.new("C:/Path/to/model.skp", bounds)
model.render_mode = Layout::SketchUpModel::RASTER_RENDER

@param [Integer] render_mode

@raise [ArgumentError] if render_mode is not a valid render mode

@raise [LockedLayertError] if the {Layout::SketchUpModel} is on a locked

{Layout::Layer}

@raise [LockedEntityError] if the {Layout::SketchUpModel} is locked

@version LayOut 2018

# File lib/sketchup-api-stubs/stubs/Layout/SketchUpModel.rb, line 483
def render_mode=(render_mode)
end
render_needed?() click to toggle source

The {#render_needed?} method returns whether the {Layout::SketchUpModel} needs to be rendered.

@example

bounds = Geom::Bounds2d.new(1, 1, 3, 3)
model = Layout::SketchUpModel.new("C:/Path/to/model.skp", bounds)
model.render if model.render_needed?

@return [Boolean]

@version LayOut 2018

# File lib/sketchup-api-stubs/stubs/Layout/SketchUpModel.rb, line 497
def render_needed?
end
reset_camera() click to toggle source

The {#reset_camera} method resets the {Layout::SketchUpModel}'s camera to the scene's setting.

@example

bounds = Geom::Bounds2d.new(1, 1, 3, 3)
model = Layout::SketchUpModel.new("C:/Path/to/model.skp", bounds)
model.reset_camera if model.camera_modified?

@raise [LockedLayerError] if the {Layout::SketchUpModel} is on a locked

{Layout::Layer}

@raise [LockedEntityError] if the {Layout::SketchUpModel} is locked

@version LayOut 2020.1

# File lib/sketchup-api-stubs/stubs/Layout/SketchUpModel.rb, line 514
def reset_camera
end
reset_effects() click to toggle source

The {#reset_effects} method resets the {Layout::SketchUpModel}'s shadow and fog settings to the scene's settings.

@example

bounds = Geom::Bounds2d.new(1, 1, 3, 3)
model = Layout::SketchUpModel.new("C:/Path/to/model.skp", bounds)
model.reset_effects if model.effects_modified?

@raise [LockedLayerError] if the {Layout::SketchUpModel} is on a locked

{Layout::Layer}

@raise [LockedEntityError] if the {Layout::SketchUpModel} is locked

@version LayOut 2020.1

# File lib/sketchup-api-stubs/stubs/Layout/SketchUpModel.rb, line 531
def reset_effects
end
reset_layers() click to toggle source

The {#reset_layers} method resets the {Layout::SketchUpModel}'s layers to the scene's setting.

@note: In SketchUp 2020, SketchUp “layers” were renamed to “tags”. For

consistency with the SketchUp API, this will continue to refer to
"tags" as "layers".

@example

bounds = Geom::Bounds2d.new(1, 1, 3, 3)
model = Layout::SketchUpModel.new("C:/Path/to/model.skp", bounds)
model.reset_layers if model.layers_modified?

@raise [LockedLayerError] if the {Layout::SketchUpModel} is on a locked

{Layout::Layer}

@raise [LockedEntityError] if the {Layout::SketchUpModel} is locked

@version LayOut 2020.1

# File lib/sketchup-api-stubs/stubs/Layout/SketchUpModel.rb, line 553
def reset_layers
end
reset_style() click to toggle source

The {#reset_style} method resets the {Layout::SketchUpModel}'s style to the scene's setting.

@example

bounds = Geom::Bounds2d.new(1, 1, 3, 3)
model = Layout::SketchUpModel.new("C:/Path/to/model.skp", bounds)
model.reset_style if model.style_modified?

@raise [LockedLayerError] if the {Layout::SketchUpModel} is on a locked

{Layout::Layer}

@raise [LockedEntityError] if the {Layout::SketchUpModel} is locked

@version LayOut 2020.1

# File lib/sketchup-api-stubs/stubs/Layout/SketchUpModel.rb, line 570
def reset_style
end
scale() click to toggle source

The {#scale} method returns the scale of the {Layout::SketchUpModel}.

@example

bounds = Geom::Bounds2d.new(1, 1, 3, 3)
model = Layout::SketchUpModel.new("C:/Path/to/model.skp", bounds)
scale = model.scale

@return [Float]

@version LayOut 2018

# File lib/sketchup-api-stubs/stubs/Layout/SketchUpModel.rb, line 583
def scale
end
scale=(scale) click to toggle source

The {#scale=} method sets the scale of the {Layout::SketchUpModel}. Scale must be at least 0.0000001, and the view must be orthographic.

@example

bounds = Geom::Bounds2d.new(1, 1, 3, 3)
model = Layout::SketchUpModel.new("C:/Path/to/model.skp", bounds)
model.scale = 2.0

@param [Float] scale

@raise [ArgumentError] if the {Layout::SketchUpModel} view is not orthographic

@raise [ArgumentError] if scale is less than 0.0000001

@raise [LockedLayerError] if the {Layout::SketchUpModel} is on a locked

{Layout::Layer}

@raise [LockedEntityError] if the {Layout::SketchUpModel} is locked

@version LayOut 2018

# File lib/sketchup-api-stubs/stubs/Layout/SketchUpModel.rb, line 606
def scale=(scale)
end
scenes() click to toggle source

The {#scenes} method returns an array of scene names that are available for the {Layout::SketchUpModel}. The first scene will always be the default scene, called “Last saved SketchUp View”.

@example

bounds = Geom::Bounds2d.new(1, 1, 3, 3)
model = Layout::SketchUpModel.new("C:/Path/to/model.skp", bounds)
scene_names = model.scenes

@return [Array<String>]

@version LayOut 2018

# File lib/sketchup-api-stubs/stubs/Layout/SketchUpModel.rb, line 621
def scenes
end
style_modified?() click to toggle source

The {#style_modified?} method returns whether the style of the {Layout::SketchUpModel} has been modified.

@example

bounds = Geom::Bounds2d.new(1, 1, 3, 3)
model = Layout::SketchUpModel.new("C:/Path/to/model.skp", bounds)
modified = model.style_modified?

@return [Boolean]

@version LayOut 2020.1

# File lib/sketchup-api-stubs/stubs/Layout/SketchUpModel.rb, line 635
def style_modified?
end
view() click to toggle source

The {#view} method returns the standard view of the {Layout::SketchUpModel}.

The standard view can be one of the following values:

Layout::SketchUpModel::CUSTOM_VIEW
Layout::SketchUpModel::TOP_VIEW
Layout::SketchUpModel::TOP_RELATIVE_VIEW
Layout::SketchUpModel::BOTTOM_VIEW
Layout::SketchUpModel::BOTTOM_RELATIVE_VIEW
Layout::SketchUpModel::FRONT_VIEW
Layout::SketchUpModel::BACK_VIEW
Layout::SketchUpModel::LEFT_VIEW
Layout::SketchUpModel::RIGHT_VIEW
Layout::SketchUpModel::ISO_VIEW

@example

bounds = Geom::Bounds2d.new(1, 1, 3, 3)
model = Layout::SketchUpModel.new("C:/Path/to/model.skp", bounds)
view = model.view

@return [Integer]

@version LayOut 2018

# File lib/sketchup-api-stubs/stubs/Layout/SketchUpModel.rb, line 660
def view
end
view=(view) click to toggle source

The {#view=} method sets the standard view of the {Layout::SketchUpModel}.

The standard view can be one of the following values:

Layout::SketchUpModel::TOP_VIEW
Layout::SketchUpModel::TOP_RELATIVE_VIEW
Layout::SketchUpModel::BOTTOM_VIEW
Layout::SketchUpModel::BOTTOM_RELATIVE_VIEW
Layout::SketchUpModel::FRONT_VIEW
Layout::SketchUpModel::BACK_VIEW
Layout::SketchUpModel::LEFT_VIEW
Layout::SketchUpModel::RIGHT_VIEW
Layout::SketchUpModel::ISO_VIEW

@example

bounds = Geom::Bounds2d.new(1, 1, 3, 3)
model = Layout::SketchUpModel.new("C:/Path/to/model.skp", bounds)
model.view = Layout::SketchUpModel::FRONT_VIEW

@param [Integer] view

@raise [ArgumentError] if view is not a valid standard view

@raise [LockedLayerError] if the {Layout::SketchUpModel} is on a locked

{Layout::Layer}

@raise [LockedEntityError] if the {Layout::SketchUpModel} is locked

@version LayOut 2018

# File lib/sketchup-api-stubs/stubs/Layout/SketchUpModel.rb, line 691
def view=(view)
end