README
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();
});
API
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
VectorFieldCell
| undefined
vectorField.lookup(cell) ⇒ 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] |
Array.<number>
vec3 :
Object
VectorFieldCell : Kind: global typedef
Properties
Name | Type |
---|---|
position | vec3 |
direction | vec3 |
function
VectorFieldDirectionFn : The custom function to compute the cell direction (often a noise function)
Kind: global typedef
Param | Type |
---|---|
position | vec3 |
stepPosition | vec3 |
License
MIT. See license file.