select3d.Rd
This function allows the user to use the mouse to select a region in an RGL scene.
rgl.select3d(button = c("left", "middle", "right"),
dev = cur3d(), subscene = currentSubscene3d(dev))
select3d(...)
selectionFunction3d(proj, region = proj$region)
Which button to use for selection.
The RGL device and subscene to work with
Button argument to pass to rgl.select3d
An object returned from rgl.projection
containing details of the current projection.
Corners of a rectangular region in the display.
select3d
and rgl.select3d
select 3-dimensional regions by allowing the
user to use a mouse to draw a rectangle showing
the projection of the region onto the screen. They return
a function which tests points for inclusion in the selected region.
selectionFunction3d
constructs such a test function given
coordinates and current transformation matrices.
If the scene is later moved or rotated, the selected region will remain the same, though no longer corresponding to a rectangle on the screen.
All of these return a function f(x, y, z)
which tests whether each
of the points (x, y, z)
is in the selected region, returning
a logical vector. This function accepts input in a wide
variety of formats as it uses xyz.coords
to interpret its parameters.
# Allow the user to select some points, and then redraw them
# in a different color
if (interactive()) {
x <- rnorm(1000)
y <- rnorm(1000)
z <- rnorm(1000)
open3d()
points3d(x, y, z)
f <- select3d()
if (!is.null(f)) {
keep <- f(x, y, z)
pop3d()
points3d(x[keep], y[keep], z[keep], color = 'red')
points3d(x[!keep], y[!keep], z[!keep])
}
}