primitive-torus

1.0.4 • Public • Published

primitive-torus

stable

screen

(demo)

A minimal 3D torus geometry for 3D rendering, including normals, UVs, and cell indices.

Example

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)

Usage

NPM

mesh = torus([opt])

Creates a new torus with options:

  • majorRadius the radius of the major ring R, default 1.0
  • minorRadius the radius of the minor ring r, default 0.25
  • majorSegments the number of segments for the major ring, default 32
  • minorSegments the number of segments for the minor ring, defualt 64
  • arc 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], ... ]
}

Credits

The algorithm here is from ThreeJS TorusGeometry.

License

MIT. See LICENSE.md for details.

/primitive-torus/

    Package Sidebar

    Install

    npm i primitive-torus

    Weekly Downloads

    2,411

    Version

    1.0.4

    License

    MIT

    Last publish

    Collaborators

    • mattdesl