# vector-field

2.1.1 • Public • Published

# 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.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();
});```

## 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

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

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

Creates an instance of VectorField.

Param Type Default Description
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`

Param Type Description
cell `vec3` [cx, cy, cz]

## vec3 : `Array.<number>`

Kind: global typedef

## VectorFieldCell : `object`

Kind: global typedef Properties

Name Type
position `vec3`
direction `vec3`

## VectorFieldDirectionFn : `function`

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

Kind: global typedef

Param Type
position `vec3`
stepPosition `vec3`

## Package Sidebar

### Install

`npm i vector-field`

### Repository

github.com/dmnsgn/vector-field

### Homepage

github.com/dmnsgn/vector-field

5

2.1.1

MIT

15.6 kB

8