A minimal 3D torus geometry for 3D rendering, including normals, UVs, and cell indices.
var torus = require('primitive-torus')
var mesh = torus()
// the simplicial complex
console.log(mesh.positions, mesh.cells)
// rendering attributes
console.log(mesh.uvs)
console.log(mesh.normals)
mesh = torus([opt])Creates a new torus with options:
majorRadius the radius of the major ring R, default 1.0minorRadius the radius of the minor ring r, default 0.25majorSegments the number of segments for the major ring, default 32minorSegments the number of segments for the minor ring, defualt 64arc the arc to draw, default Math.PI * 2 (full circle)The returned mesh is an object with the following data:
{
positions: [ [x, y, z], [x, y, z], ... ],
cells: [ [a, b, c], [a, b, c], ... ],
uvs: [ [u, v], [u, v], ... ],
normals: [ [x, y, z], [x, y, z], ... ]
}
The algorithm here is from ThreeJS TorusGeometry.
MIT. See LICENSE.md for details.