rgl (version 0.83-3)

qmesh3d: 3D Quadrangle Mesh objects

Description

3D Quadrangle Mesh object creation and a collection of sample objects.

Usage

qmesh3d(vertices, indices, homogeneous = TRUE, material = NULL, normals = NULL)
  cube3d(trans = identityMatrix(), ...)  # cube object
  oh3d(trans = identityMatrix(), ...)    # an 'o' object
  
  dot3d(x, ...)   # draw dots at the vertices of an object
  ## S3 method for class 'qmesh3d':
dot3d(x, override = TRUE, ...)
  wire3d(x, ...)  # draw a wireframe object
  ## S3 method for class 'qmesh3d':
wire3d(x, override = TRUE, ...)
  shade3d(x, ...) # draw a shaded object
  ## S3 method for class 'qmesh3d':
shade3d(x, override = TRUE, ...)

Arguments

x
a qmesh3d object (class qmesh3d)
vertices
3- or 4-component vector of coordinates
indices
4-component vector of quad indices
homogeneous
logical indicating if homogeneous (four component) coordinates are used.
material
material properties for later rendering
normals
normals at each vertex
trans
transformation to apply to objects; see below for defaults
...
additional rendering parameters
override
should the parameters specified here override those stored in the object?

Value

  • qmesh3d, cube3d, and oh3d return qmesh3d objects. dot3d, wire3d, and shade3d are called for their side effect of drawing an object into the scene; they return an object ID.

Details

The cube3d and oh3d objects optionally take a matrix transformation as an argument. This transformation is applied to all vertices of the default shape. The default is an identity transformation. Use par3d("userMatrix") to render the object vertically in the current user view.

See Also

r3d, par3d

Examples

Run this code
# generate a quad mesh object

  vertices <- c( 
     -1.0, -1.0, 0, 1.0,
      1.0, -1.0, 0, 1.0,
      1.0,  1.0, 0, 1.0,
     -1.0,  1.0, 0, 1.0
  )
  indices <- c( 1, 2, 3, 4 )
  
  open3d()  
  wire3d( qmesh3d(vertices,indices) )
  
  # render 4 meshes vertically in the current view

  open3d()  
  bg3d("gray")
  l0 <- oh3d(tran = par3d("userMatrix"), color = "green" )
  shade3d( translate3d( l0, -6, 0, 0 ))
  l1 <- subdivision3d( l0 )
  shade3d( translate3d( l1 , -2, 0, 0 ), color="red", override = FALSE )
  l2 <- subdivision3d( l1 )
  shade3d( translate3d( l2 , 2, 0, 0 ), color="red", override = TRUE )
  l3 <- subdivision3d( l2 )
  shade3d( translate3d( l3 , 6, 0, 0 ), color="red" )

Run the code above in your browser using DataLab