Rotate Mesh

rotate_mesh(
  mesh,
  angle = c(0, 0, 0),
  pivot_point = c(0, 0, 0),
  order_rotation = c(1, 2, 3)
)

Arguments

mesh

The mesh.

angle

Default `c(0,0,0)`. The rotation amount for the x/y/z axes, in degrees.

pivot_point

Default `c(0,0,0)`. The pivot point of the rotation.

order_rotation

Default `c(1,2,3)`. The order in which to perform the rotations.

Value

Rotated Mesh

Examples

# \dontshow{
options("cores"=1)
# }
#Rotate a mesh in the Cornell box
robj = obj_mesh(r_obj(), scale=80,angle=c(0,180,0))

# \donttest{
generate_cornell_mesh() %>% 
add_shape(rotate_mesh(translate_mesh(robj,c(400,0,155)),c(0,30,0), 
                      pivot_point=c(400,0,155))) %>% 
add_shape(rotate_mesh(translate_mesh(robj,c(555/2,100,555/2)),c(-30,60,30), 
                      pivot_point=c(555/2,100,555/2))) %>% 
add_shape(rotate_mesh(translate_mesh(robj,c(155,200,400)),c(-30,60,30), 
                      pivot_point=c(155,200,400), order_rotation=c(3,2,1))) %>% 
rasterize_scene(light_info=directional_light(direction=c(0.1,0.6,-1)))
#> Setting default values for Cornell box: lookfrom `c(278,278,-800)` lookat `c(278,278,0)` fov `40` .
#> Error in loadNamespace(i, c(lib.loc, .libPaths()), versionCheck = vI[[i]]): there is no package called ‘terra’
# }