Security News
NIST Misses 2024 Deadline to Clear NVD Backlog
NIST has failed to meet its self-imposed deadline of clearing the NVD's backlog by the end of the fiscal year. Meanwhile, CVE's awaiting analysis have increased by 33% since June.
turf tin module
turf.tin(points, propertyName)
Takes a set of points and the name of a z-value property and creates a Triangulated Irregular Network, or a TIN for short, returned as a collection of Polygons. These are often used for developing elevation contour maps or stepped heat visualizations.
This triangulates the points, as well as adds properties called a
, b
,
and c
representing the value of the given propertyName
at each of
the points that represent the corners of the triangle.
parameter | type | description |
---|---|---|
points | FeatureCollection | - a GeoJSON FeatureCollection containing Features with Point geometries |
propertyName | string | optional: - name of the property from which to pull z values. This is optional: if not given, then there will be no extra data added to the derived triangles. |
// generate some random point data
var points = turf.random('points', 30, {
bbox: [50, 30, 70, 50]
});
//=points
// add a random property to each point between 0 and 9
for (var i = 0; i < points.features.length; i++) {
points.features[i].properties.z = ~~(Math.random() * 9);
}
var tin = turf.tin(points, 'z')
for (var i = 0; i < tin.features.length; i++) {
var properties = tin.features[i].properties;
// roughly turn the properties of each
// triangle into a fill color
// so we can visualize the result
properties.fill = '#' + properties.a +
properties.b + properties.c;
}
//=tin
undefined
If the points of the triangle are collinear, then just find the extremes and use the midpoint as the center of the circumcircle.
undefined
Bail if there aren't enough vertices to form any triangles.
undefined
Ensure the vertex array is in order of descending X coordinate (which is needed to ensure a subquadratic runtime), and then find the bounding box around the points.
dx
Find a supertriangle, which is a triangle that surrounds all the vertices. This is used like something of a sentinel value to remove cases in the main algorithm, and is removed before we return any results.
Once found, put it in the "open" list. (The "open" list is for triangles who may still need to be considered; the "closed" list is for triangles which do not.)
undefined
Incrementally add each vertex to the mesh.
length
For each open triangle, check to see if the current point is inside it's circumcircle. If it is, remove the triangle and add it's edges to an edge list.
undefined
If this point is to the right of this triangle's circumcircle, then this triangle should never get checked again. Remove it from the open list, add it to the closed list, and skip.
undefined
If not, skip this triangle.
undefined
Remove the triangle and add it's edges to the edge list.
undefined
Remove any doubled edges.
undefined
Add a new triangle for each edge.
undefined
Copy any remaining open triangles to the closed list, and then remove any triangles that share a vertex with the supertriangle.
undefined
Yay, we're done!
Requires nodejs.
$ npm install turf-tin
$ npm test
FAQs
turf tin module
The npm package turf-tin receives a total of 10,666 weekly downloads. As such, turf-tin popularity was classified as popular.
We found that turf-tin demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 9 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
NIST has failed to meet its self-imposed deadline of clearing the NVD's backlog by the end of the fiscal year. Meanwhile, CVE's awaiting analysis have increased by 33% since June.
Security News
Cloudflare has launched a setup wizard allowing users to easily create and manage a security.txt file for vulnerability disclosure on their websites.
Security News
The Socket Research team breaks down a malicious npm package targeting the legitimate DOMPurify library. It uses obfuscated code to hide that it is exfiltrating browser and crypto wallet data.