Select points from a scene
This function uses the select3d
function to allow the user to choose a
point or region in the scene, then reports on all the vertices in or near that selection.
selectpoints3d(objects = ids3d()$id, value = TRUE, closest = TRUE, multiple = FALSE, ...)
objects |
A vector of object id values to use for the search. |
value |
If |
closest |
If |
multiple |
If |
... |
Other parameters to pass to |
The multiple
argument may be a logical value or a function. If logical,
it controls whether multiple selections will be performed. If
multiple
is FALSE
, a single selection will be performed;
it might contain multiple points. If TRUE
, multiple selections
will occur and the results will be combined into a single matrix.
If multiple
is a function, it should take a single argument.
This function will be called with the argument set to a matrix
containing newly added rows to the value, i.e.
it will contain coordinates of the newly selected points (if
value = TRUE
), or the indices of the points (if value =
FALSE
). It should return a logical value, TRUE
to indicate
that selection should continue, FALSE
to indicate that it
should stop.
In either case, if multiple selections are being performed, the ESC
key will
stop the process.
If value
is TRUE
, a 3-column matrix giving the coordinates of the
selected points. All rows in the matrix will be unique even if multiple vertices
have the same coordinates.
If value
is FALSE
, a 2-column matrix containing columns:
id |
The object id containing the point. |
index |
The index of the point within |
Duncan Murdoch
select3d
to return a selection function.
xyz <- cbind(rnorm(20), rnorm(20), rnorm(20)) ids <- plot3d( xyz ) if (interactive()) { # Click near a point to select it and put a sphere there. # Press ESC to quit... # This version returns coordinates selectpoints3d(ids["data"], multiple = function(x) { spheres3d(x, color = "red", alpha = 0.3, radius = 0.2) TRUE }) # This one returns indices selectpoints3d(ids["data"], value = FALSE, multiple = function(ids) { spheres3d(xyz[ids[, "index"], , drop = FALSE], color = "blue", alpha = 0.3, radius = 0.2) TRUE }) }
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.