Research
Security News
Malicious npm Packages Inject SSH Backdoors via Typosquatted Libraries
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
@teropa/triangle-tessellation
Advanced tools
A simple implementation of the OpenGL triangle tessellation algorithm
A JavaScript (TypeScript) implementation of the triangle tessellation algorithm from the OpenGL specification for tessellation shaders.
Takes the three endpoints of a single triangle and the level(s) of depth to which to subdivide it, and returns a collection of vertices and faces that tessellate the triangle to that depth.
The tessellation depth is controlled separately for each triangle edge. This allows neighbouring triangles to have matching subdivisions for their shared edge to prevent gaps in the tessellated triangle mesh. Just use the same weight for the shared edge.
npm install @teropa/triangle-tessellation
ES Modules, CommonJS modules, and an UMD build are all provided.
import { tessellateTriangle } from "@teropa/triangle-tessellation";
let { vertices, faces } = tessellateTriangle(
triangle,
outerLevel1,
outerLevel2,
outerLevel3,
innerLevel
);
The arguments are:
triangle
- the triangle you wish to tessellate, expressed as a 3x3 numeric array, of three 3D points. This could be in either cartesian or barycentric coordinates.outerLevel1
- the outer tessellation depth for the first edge of the triangleouterLevel2
- the outer tessellation depth for the second edge of the triangleouterLevel3
- the outer tessellation depth for the third edge of the triangleinnerLevel
- the inner tessellation depth for the triangleThe return value is an object of two properties, together representing an indexed mesh geometry suitable for 3D rendering:
vertices
- an array of pointsfaces
- an array of triangle faces, expressed as indexes into the vertices
array. The faces will be in counterclockwise winding order based on the normal of the input triangle.import { tessellateTriangle } from "@teropa/triangle-tessellation";
let myTriangle = [
[1, 0, 0],
[0, 1, 0],
[0, 0, 1],
];
let { vertices, faces } = tessellateTriangle(myTriangle, 2, 3, 4, 3);
console.log(vertices);
/*
[
[1, 0, 0],
[0, 1, 0],
[0, 0, 1],
[0, 0.5, 0.5],
[0.3333333333333333, 0, 0.6666666666666667],
[0.6666666666666666, 0, 0.33333333333333337],
[0.3333333333333333, 0.3333333333333333, 0.3333333333333333]
]
*/
console.log(faces);
/*
[
[0, 1, 6],
[1, 3, 6],
[3, 2, 6],
[2, 4, 6],
[4, 5, 6],
[5, 0, 6]
]
*/
FAQs
A simple implementation of the OpenGL triangle tessellation algorithm
We found that @teropa/triangle-tessellation demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer 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.
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.