DEL: Convert object to a constrained-Delaunay triangulation

View source: R/DEL-model.R

DELR Documentation

Convert object to a constrained-Delaunay triangulation

Description

This relational-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

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

## Default S3 method:
DEL(x, ..., max_area = NULL)

## S3 method for class 'PATH0'
DEL(x, ..., max_area = NULL)

## S3 method for class 'TRI'
DEL(x, ..., max_area = NULL)

## S3 method for class 'TRI0'
DEL(x, ..., max_area = NULL)

## S3 method for class 'SC'
DEL(x, ..., max_area = NULL)

## S3 method for class 'SC0'
DEL(x, ..., max_area = NULL)

## S3 method for class 'PATH'
DEL(x, ..., max_area = NULL)

Arguments

x

input model

...

passed to the underlying Triangle library, see RTriangle::triangulate()

max_area

the maximum area of a triangle

Details

Compare DEL() to its structural-form counterpart DEL0(). DEL() records a visible property on the triangle table, and this is queried by other functions for the status of triangles that belonged to a hole within a surface. These triangle are obviously useful, so they are kept but default to visible = FALSE and so are not plotted.

The Delaunay model is a constrained triangulation with a variety of constraint and qualification types. The Delaunay model has the odd but defining characteristic of not being always consistent with the Delaunay criterion. Edge inclusion is non-negotiable, but other constraints include (limit, or avoid) Steiner vertex insertion, a limit on the maximum area of a triangle, minimum triangle angle and strict adherence to the Delaunay criterion.

The Delaunay criterion forms the basis of this model, and is its defining characteristic without being strictly adhered to. This is awkward to describe but is the key property. From Wikipedia: The "Delaunay triangulation (also known as a Delone triangulation) for a given set P of discrete points in a plane is a triangulation DT(P) such that no point in P is inside the circumcircle of any triangle in DT(P). Delaunay triangulations maximize the minimum angle of all the angles of the triangles in the triangulation; they tend to avoid sliver triangles. . . . The Delaunay triangulation corresponds to the dual graph of the Voronoi diagram of P" https://en.wikipedia.org/wiki/Delaunay_triangulation.

This strict criterion is relaxed in small measure, to ensure that all edge-inputs are preserved and to allow further constraints such as triangle size and internal angle to be specified.

Value

DEL model

Warning

Please take care with the max_area argument. The units are not taken into account, the value refers only to the planar area of the x/y coordinates as they are so this is not a real world area, but a mathematical property of the data. There is a safety check for a very large number of triangles, and this may be overridden by replying 'Yes' to the prompt.

Topology

The DEL model cannot currently mesh point features, and it cannot mesh linear features if they include z or other vertex attributes - for now use DEL0() which can do those.

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

DEL0 TRI TRI0

Examples

plot3d(DEL(simpleworld))

r-gris/rangl documentation built on Nov. 18, 2022, 2:43 a.m.