mesh3d {rgl}
Description
3D triangle and quadrangle mesh object creation and a collection of sample objects.
Usage
qmesh3d(vertices, indices, homogeneous = TRUE, material = NULL,
normals = NULL, texcoords = NULL)
tmesh3d(vertices, indices, homogeneous = TRUE, material = NULL,
normals = NULL, texcoords = NULL)
cube3d(trans = identityMatrix(), ...)
tetrahedron3d(trans = identityMatrix(), ...)
octahedron3d(trans = identityMatrix(), ...)
icosahedron3d(trans = identityMatrix(), ...)
dodecahedron3d(trans = identityMatrix(), ...)
cuboctahedron3d(trans = identityMatrix(), ...)
oh3d(trans = identityMatrix(), ...) # an 'o' object
dot3d(x, ...) # draw dots at the vertices of an object
## S3 method for class 'mesh3d':
dot3d((x, override = TRUE, ...)
wire3d(x, ...) # draw a wireframe object)
## S3 method for class 'mesh3d':
wire3d((x, override = TRUE, ...)
shade3d(x, ...) # draw a shaded object)
## S3 method for class 'mesh3d':
shade3d((x, override = TRUE, ...))
Arguments
- x
- a
mesh3dobject (classqmesh3dortmesh3d) - vertices
- 3- or 4-component vector of coordinates
- indices
- 4-component vector of vertex indices
- homogeneous
- logical indicating if homogeneous (four component) coordinates are used.
- material
- material properties for later rendering
- normals
- normals at each vertex
- texcoords
- texture coordinates 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?
Details
These functions create and work with mesh3d objects, which consist of a matrix of vertex coordinates together with a matrix of indices indicating which vertex is part of which face. Such objects may have triangular faces, planar quadrilateral faces, or both. The sample objects optionally take a matrix transformation trans as an argument. This transformation is applied to all vertices of the default shape. The default is an identity transformation. The "shape3d" class is a general class for shapes that can be plotted by dot3d, wire3d or shade3d. The "mesh3d" class is a class of objects that form meshes: the vertices are in member vb, as a 3 or 4 by n matrix. Meshes with triangular faces will contain it, a 3 * n matrix giving the indices of the vertices in each face. Quad meshes will have vertex indices in ib, a 4 * n matrix.
Values
qmesh3d, cube3d, oh3d, tmesh3d, tetrahedron3d, octahedron3d, icosahedron3d and dodecahedron3d return objects of class c("mesh3d", "shape3d"). The first three of these are quad meshes, the rest are triangle meshes. dot3d, wire3d, and shade3d are called for their side effect of drawing an object into the scene; they return an object ID (or vector of IDs, for some classes) invisibly. See rgl.primitive for a discussion of texture coordinates.
See Also
r3d, par3d, shapelist3d for multiple shapes
Examples
# 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" ) # render all of the Platonic solids open3d() shade3d( translate3d( tetrahedron3d(col="red"), 0, 0, 0) ) shade3d( translate3d( cube3d(col="green"), 3, 0, 0) ) shade3d( translate3d( octahedron3d(col="blue"), 6, 0, 0) ) shade3d( translate3d( dodecahedron3d(col="cyan"), 9, 0, 0) ) shade3d( translate3d( icosahedron3d(col="magenta"), 12, 0, 0) )
Documentation reproduced from package rgl, version 0.93.935. License: GPL
