MeshesDifference | R Documentation |
Computes the difference between two meshes.
MeshesDifference( mesh1, mesh2, clean = FALSE, normals = FALSE, numbersType = "double" )
mesh1, mesh2 |
two triangular meshes, each given as a list with
(at least) two fields: |
clean |
Boolean, whether to clean the input mesh (merging duplicated vertices, duplicated faces, removed isolated vertices) as well as the output mesh |
normals |
Boolean, whether to return the per-vertex normals of the output mesh |
numbersType |
the type of the numbers used in C++ for the
computations; must be one of |
A triangular mesh given as a list with fields vertices
,
faces
, edges
, exteriorEdges
, gmpvertices
if numberTypes="gmp"
, and normals
if normals=TRUE
.
library(RCGAL) library(rgl) # mesh one: a cube; one has to triangulate it cube1 <- cube3d() # (from the rgl package) vertices <- t(cube1$vb[-4L, ]) faces <- t(cube1$ib) mesh1 <- Mesh(vertices, faces, triangulate = TRUE, normals = FALSE) # mesh two: another cube; one also has to triangulate it cube2 <- translate3d( # (from the rgl package) cube3d(), 1, 1, 0 ) vertices <- t(cube2$vb[-4L, ]) faces <- t(cube2$ib) mesh2 <- Mesh(vertices, faces, triangulate = TRUE, normals = FALSE) # compute the difference differ <- MeshesDifference(mesh1, mesh2) # plot rgldiffer <- tmesh3d( vertices = t(differ[["vertices"]]), indices = t(differ[["faces"]]), homogeneous = FALSE ) open3d(windowRect = c(50, 50, 562, 562)) shade3d(cube1, color = "yellow", alpha = 0.2) shade3d(cube2, color = "cyan", alpha = 0.2) shade3d(rgldiffer, color = "red") plotEdges( vertices = differ[["vertices"]], edges = differ[["exteriorEdges"]], edgesAsTubes = TRUE, verticesAsSpheres = TRUE )
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.