Showing:

5

18

3mos ago

0

0

MIT

Built-In

No

# vector-field

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

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.sin(phi),
Math.cos(theta),
Math.sin(theta) * Math.cos(phi),
];
};
const vectorField = new VectorField(directionFn, [12, 6, 6], 1);

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

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

## Classes

VectorField

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

## Typedefs

vec3 : `Array.<number>`
VectorFieldCell : `Object`
VectorFieldDirectionFn : `function`

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

## VectorField

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

Kind: global class
Properties

NameType
directionFn`VectorFieldDirectionFn`
steps`vec3`
bounds`vec3`
halfBounds`vec3`
field`Array.<VectorFieldCell>`

### new VectorField(directionFn, [steps], [bounds])

Creates an instance of VectorField.

ParamTypeDefaultDescription
directionFn`VectorFieldDirectionFn`The custom function to compute the cell direction (often a noise function)
[steps]`number` | `vec3``10`The number of steps on each dimension (all positive integer). Use integer for identical dimensions.
[bounds]`number` | `vec3``1`The 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
cell`vec3`[cx, cy, cz]

## vec3 : `Array.<number>`

Kind: global typedef

## VectorFieldCell : `Object`

Kind: global typedef
Properties

NameType
position`vec3`
direction`vec3`

## VectorFieldDirectionFn : `function`

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

Kind: global typedef

ParamType
position`vec3`
stepPosition`vec3`

## Rate & Review

Great Documentation0
Easy to Use0
Performant0
Highly Customizable0
Bleeding Edge0
Responsive Maintainers0
Poor Documentation0
Hard to Use0
Slow0
Buggy0
Abandoned0
Unwelcoming Community0
100