Learn R Programming

anglr (version 0.7.0)

DEL0: Convert object to a constrained-Delaunay triangulation

Description

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.

Usage

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

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.

Details

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

See Also

DEL

Examples

Run this code
# NOT RUN {
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)
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
  )
# }
# NOT RUN {
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)))
# }

Run the code above in your browser using DataLab