mergeVertices.Rd
A mesh object can have the same vertex listed twice. Each copy is
allowed to have separate normals, texture coordinates, and color.
However, it is more efficient to have just a single copy if those
differences aren't needed. For automatic smoothing using
addNormals
, triangles and quads need to share vertices.
This function merges identical (or similar) vertices to achieve this.
mergeVertices(mesh,
notEqual = NULL,
attribute = "vertices",
tolerance = sqrt(.Machine$double.eps))
A mesh3d
object.
A logical matrix indicating that certain pairs should not be merged even if they appear identical.
Which attribute(s) should be considered in comparing vertices?
A vector chosen from c("vertices", "colors", "normals", "texcoords"))
When comparing vertices using all.equal
, this tolerance
will be used to ignore rounding error.
A new mesh object.
as.mesh3d.rglId
, which often constructs mesh
objects containing a lot of duplication.
open3d()
(mesh1 <- cuboctahedron3d(col = rainbow(14), meshColor = "face"))
#> mesh3d object with 12 vertices, 8 triangles, 6 quads.
id <- shade3d(mesh1)
(mesh2 <- as.mesh3d(id))
#> mesh3d object with 48 vertices, 20 triangles.
shade3d(translate3d(mesh2, 3, 0, 0))
(mesh3 <- mergeVertices(mesh2))
#> mesh3d object with 12 vertices, 20 triangles.
shade3d(translate3d(mesh3, 6, 0, 0))
3D plot