frenet-serret-frames
TypeScript icon, indicating that this package has built-in type declarations

3.1.0 • Public • Published

frenet-serret-frames

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

Compute Frenet-Serret frames for a geometry of 3D positions and optionally provided tangents.

paypal coinbase twitter

Installation

npm install frenet-serret-frames

Usage

import frenetSerretFrames from "frenet-serret-frames";

const geometry = { positions, cells };
frenetSerretFrames(geometry, {
  closed: true,
  initialNormal: [0, 1, 0],
});
console.log(geometry);
// {
//   positions: Float32Array [x, y, z, x, y, z,  ...],
//   tangents: Float32Array [x, y, z, x, y, z, ...]
//   normals: Float32Array [x, y, z, x, y, z, ...]
//   binormals: Float32Array [x, y, z, x, y, z, ...]
//   cells: Uint8/16/32/Array [a, b, c, a, b, c, ...],
// }

API

Functions

frenetSerretFrames(geometry, [options])SimplicialComplexWithTNB

Compute Frenet-Serret frames for a geometry of 3D positions and optionally provided tangents.

Typedefs

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

Geometry definition.

SimplicialComplexWithTNB : object

Geometry definition augmented with tangents, normals and binormals.

Options : object

Options for frames computation. All optional.

frenetSerretFrames(geometry, [options]) ⇒ SimplicialComplexWithTNB

Compute Frenet-Serret frames for a geometry of 3D positions and optionally provided tangents.

Kind: global function See: Frenet–Serret formulas

Param Type Default
geometry SimplicialComplex
[options] Options {}

vec2 : Array.<number>

Kind: global typedef

vec3 : Array.<number>

Kind: global typedef

SimplicialComplex : object

Geometry definition.

Kind: global typedef Properties

Name Type
positions Float32Array | Array | Array.<vec3>
[tangents] Float32Array | Array | Array.<vec3>
[normals] Float32Array | Array | Array.<vec3>
[uvs] Float32Array | Array | Array.<vec2>
[cells] Uint8Array | Uint16Array | Uint32Array | Array | Array.<vec3>

SimplicialComplexWithTNB : object

Geometry definition augmented with tangents, normals and binormals.

Kind: global typedef Properties

Name Type
positions Float32Array | Array | Array.<vec3>
tangents Float32Array | Array | Array.<vec3>
normals Float32Array | Array | Array.<vec3>
binormals Float32Array | Array | Array.<vec3>
[uvs] Float32Array | Array | Array.<vec2>
[cells] Uint8Array | Uint16Array | Uint32Array | Array | Array.<vec3>

Options : object

Options for frames computation. All optional.

Kind: global typedef Properties

Name Type Default Description
[closed] boolean false Specify is the path is closed.
[initialNormal] vec3 Specify a starting normal for the frames. Default to the direction of the minimum tangent component.

License

MIT. See license file.

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 3.1.0
    4
    • latest

Version History

Package Sidebar

Install

npm i frenet-serret-frames

Weekly Downloads

4

Version

3.1.0

License

MIT

Unpacked Size

19.6 kB

Total Files

9

Last publish

Collaborators

  • dmnsgn