Skip to content

An octasphere geometry for 3D rendering, including normals, UVs and cell indices (faces).

License

Notifications You must be signed in to change notification settings

dmnsgn/primitive-octasphere

Repository files navigation

primitive-octasphere

npm version stability-stable npm minzipped size dependencies types Conventional Commits styled with prettier linted with eslint license

An octasphere geometry for 3D rendering, including normals, UVs and cell indices (faces). Based on Philip Rideout's article here.

paypal coinbase twitter

Installation

npm install primitive-octasphere

Usage

import createOctasphere from "primitive-octasphere";

const geometry = createOctasphere();

console.log(geometry);
// {
//   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], ... ]
// }

API

Functions

createOctasphere([options])SimplicialComplex

An octasphere geometry for 3D rendering, including normals, UVs and cell indices (faces).

Typedefs

vec2 : Array.<number>
vec3 : Array.<number>
OctasphereOptions : object
SimplicialComplex : object

Geometry definition.

createOctasphere([options]) ⇒ SimplicialComplex

An octasphere geometry for 3D rendering, including normals, UVs and cell indices (faces).

Kind: global function

Param Type Default
[options] OctasphereOptions {}

vec2 : Array.<number>

Kind: global typedef

vec3 : Array.<number>

Kind: global typedef

OctasphereOptions : object

Kind: global typedef Properties

Name Type Default
[radius] number 0.5
[subdivisions] number 2

SimplicialComplex : object

Geometry definition.

Kind: global typedef Properties

Name Type
positions Array.<vec3>
normals Array.<vec3>
uvs Array.<vec2>
cells Array.<vec3>

License

MIT. See license file.