This structural-form Delaunay-based triangulation model is analogous to the TRI() model in the silicate package and formally extends the class of that model. A primitives-based shape-constrained triangulation. The Delaunay model is the mostly Delaunay scheme used by the provable-quality meshers.

DEL0(x, ..., max_area = NULL)

# S3 method for DEL
DEL0(x, ..., max_area = NULL)

# S3 method for default
DEL0(x, ..., max_area = NULL)

# S3 method for SC
DEL0(x, ..., max_area = NULL)

# S3 method for SC0
DEL0(x, ..., max_area = NULL)

# S3 method for TRI
DEL0(x, ..., max_area = NULL)

# S3 method for TRI0
DEL0(x, ..., max_area = NULL)

# S3 method for ARC
DEL0(x, ..., max_area = NULL)

# S3 method for PATH
DEL0(x, ..., max_area = NULL)

# S3 method for PATH0
DEL0(x, ..., max_area = NULL)

# S3 method for BasicRaster
DEL0(x, ..., max_triangles = NULL)

Arguments

x

object of class PATH0 or understood by PATH0()

...

ignored

max_area

the maximum area of a triangle

max_triangles

limit on triangles to create, passed to terrainmeshr

Value

DEL0 class

Details

This is a more compact form of the relational-form DEL() model.

Topology

Note that for explicitly linear features, these still use a post-meshing identification for which triangles belong in which feature. This can't make sense for many line layers, but we leave it for now.

For point features, the mesher unproblematically creates a triangulation in the convex hull of the points, any attributes names z_, m_, or t_ are automatically interpolated and include in the output. See the help for RTriangle::triangulate() for how this works via the $PA element.

Note that for a raster input the terrainmeshr package is used to determine a sensible number of triangles based on local curvature. To avoid creating this adative mesh and use as.mesh3d(QUAD(raster)) to get quad primitives or as.mesh3d(QUAD(raster), triangles = TRUE) to get triangle primitives directly from raster cells.

Licensing

The anglr package is released with license CC BY-NC-SA 4.0 to match the one dependency RTriangle. Please note and respect the license of the RTriangle package used by the DEL() or DEL0() functions in anglr, and invoked within 3D plot methods. These return high-quality constrained Delaunay triangulations of polygonal regions, with the ability to control mesh characteristics including maximum triangle area, minimum internal angle, and conformance to the Delaunay criterion. If you are interested in a less restrictive license for high-quality meshing in R please get involved with the laridae package which aims to provide access to CGAL.

See also

Examples

a <- DEL0(cad_tas) plot(a)
## ---- intepolate via triangulation, sample points from volcano rgl::clear3d() n <- 150 max_area <- .005 ## we working in x 0,1 y 0,1 library(anglr) library(dplyr)
#> #> Attaching package: 'dplyr'
#> The following objects are masked from 'package:raster': #> #> intersect, select, union
#> The following objects are masked from 'package:stats': #> #> filter, lag
#> The following objects are masked from 'package:base': #> #> intersect, setdiff, setequal, union
d <- data.frame(x = runif(n), y = runif(n), multipoint_id = 1) %>% dplyr::mutate( z = raster::extract(raster::raster(volcano), cbind(x, y)), multipoint_id = 1 ) # \donttest{ mesh <- DEL0( sfheaders::sf_multipoint(d, x = "x", y = "y", z = "z", multipoint_id = "multipoint_id"), max_area = max_area) plot3d(mesh , color = "darkgrey", specular = "darkgrey") #sample(grey.colors(5))) # }