2.1.1 • Published 8 months ago

vector-field v2.1.1

Weekly downloads
-
License
MIT
Repository
github
Last release
8 months ago

vector-field

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

A data structure and lookup for 3D vector fields (flow fields).

paypal coinbase twitter

npm.io

See the example and its source.

Installation

npm install vector-field

Usage

import VectorField from "vector-field";

let time = 0;
const directionFn = ([x, y, z]) => {
  const n = myNoise4D(x, y, z, time);
  const theta = n;
  const phi = n;

  return [
    Math.sin(theta) * Math.cos(phi),
    Math.sin(theta) * Math.sin(phi),
    Math.cos(theta),
  ];
};
const vectorField = new VectorField(directionFn, [12, 6, 6], 1);

const frame = () => {
  time += 0.001;
  vectorField.update();
  requestAnimationFrame(frame);
};

requestAnimationFrame(() => {
  frame();
});

API

Classes

Typedefs

VectorField

A data structure and lookup for 3D vector fields (flow fields).

Kind: global class Properties

NameType
directionFnVectorFieldDirectionFn
stepsvec3
boundsvec3
halfBoundsvec3
fieldArray.<VectorFieldCell>

new VectorField(directionFn, steps, bounds)

Creates an instance of VectorField.

ParamTypeDefaultDescription
directionFnVectorFieldDirectionFnThe custom function to compute the cell direction (often a noise function)
stepsnumber | vec310The number of steps on each dimension (all positive integer). Use integer for identical dimensions.
boundsnumber | vec31The size of a containing box for the field. Is divided into steps for each dimension (all positive). Use integer for identical dimensions.

vectorField.update()

Create/update the field according to the provided noise function.

Kind: instance method of VectorField

vectorField.lookup(cell) ⇒ VectorFieldCell | undefined

Find a VectorFieldCell at specified position. Useful to compute a particle's velocity for instance.

Kind: instance method of VectorField

ParamTypeDescription
cellvec3cx, cy, cz

vec3 : Array.<number>

Kind: global typedef

VectorFieldCell : object

Kind: global typedef Properties

NameType
positionvec3
directionvec3

VectorFieldDirectionFn : function

The custom function to compute the cell direction (often a noise function)

Kind: global typedef

ParamType
positionvec3
stepPositionvec3

License

MIT. See license file.