Subset an object to parts facing in a particular direction
facing3d subsets an object by converting it to a triangle mesh,
then subsetting to those triangles that are counterclockwise
(for front = TRUE) when projected into a plane.
projectDown computes a projection that “looks down” the specified direction.
facing3d(obj, up = c(0, 0, 1), 
         P = projectDown(up), 
         front = TRUE, strict = TRUE)
projectDown(up)obj | 
 An object that can be converted to a triangular mesh object.  | 
up | 
 The direction that is to be considered “up”. It may be either a 3 vector in Euclidean coordinates or a 4 vector in homogeneous coordinates.  | 
P | 
 The projection to use for draping, a 4x4 matrix.  See   | 
front | 
 If   | 
strict | 
 If   | 
By default 
the returned subset will be those triangles whose upper side
matches front.  Change up or use an
arbitrary projection for different subsets.
facing3d returns a mesh object made of those triangles which face in the 
desired direction.
projectDown computes a 4x4 matrix.   The first two
coordinates of asEuclidean(x %*% projectDown(up)) 
give a projection of x from above into a plane, where 
up determines which direction is taken to be “up”.
open3d()
d <- rnorm(3)
d <- d/sqrt(sum(d^2))
shade3d( facing3d( icosahedron3d(), up = d, strict = FALSE), 
         col = "yellow")
wire3d( facing3d( icosahedron3d(), up = d, front = FALSE), 
         col = "black")
# Show the direction:
arrow3d(-2*d , -d)Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.