Torus 3D Model

torus_mesh(
  position = c(0, 0, 0),
  scale = c(1, 1, 1),
  angle = c(0, 0, 0),
  pivot_point = c(0, 0, 0),
  order_rotation = c(1, 2, 3),
  radius = 0.5,
  ring_radius = 0.2,
  sides = 36,
  rings = 36,
  material = material_list()
)

Arguments

position

Default `c(0,0,0)`. Position of the mesh.

scale

Default `c(1,1,1)`. Scale of the mesh. Can also be a single numeric value scaling all axes uniformly.

angle

Default `c(0,0,0)`. Angle to rotate the mesh.

pivot_point

Default `c(0,0,0)`. Point around which to rotate the mesh.

order_rotation

Default `c(1,2,3)`. Order to rotate the axes.

radius

Default `0.5`. The radius of the torus.

ring_radius

Default `0.2`. The radius of the ring.

sides

Default `36`. The number of faces around the ring when triangulating the torus.

rings

Default `36`. The number of faces around the torus.

material

Default `material_list()` (default values). Specify the material of the object.

Value

List describing the mesh.

Examples

# \dontshow{
options("cores"=1)
# }
#Plot a group of tori in the cornell box
# \donttest{
generate_cornell_mesh(ceiling = FALSE) %>% 
 add_shape(torus_mesh(position=c(555/2,555/3,555/2), angle=c(20,0,45),
                      radius=120, ring_radius = 40,
                      material = material_list(diffuse="dodgerblue4",type="phong",
                                               ambient="dodgerblue4",ambient_intensity=0.2))) %>%
 add_shape(torus_mesh(position=c(400,400,555/2), angle=c(20,200,45),radius=80, ring_radius = 30,
                      material=material_list(diffuse="orange",type="phong",
                                             ambient="orange",ambient_intensity=0.2))) %>%
 add_shape(torus_mesh(position=c(150,450,555/2), angle=c(60,180,0),radius=40, ring_radius = 20,
                      material=material_list(diffuse="red",type="phong"))) %>%
 rasterize_scene(light_info = directional_light(c(0,1,-2)))
#> 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’
 # }