# vec3 [![NPM version](https://img.shields.io/npm/v/vec3.svg)](http://npmjs.com/package/vec3) [![Build Status](https://github.com/PrismarineJS/node-vec3/workflows/CI/badge.svg)](https://github.com/PrismarineJS/node-vec3/actions?query=workflow%3A%22CI%22) 3D vector math with robust unit tests. ## Usage ```js var v = require('vec3'); var v1 = v(1, 2, 3); console.log(v1); // prints "(1, 2, 3)" var v2 = v1.offset(0, 0, 1); console.log(v2); // prints "(1, 2, 4)" ``` Or: ```js var Vec3 = require('vec3').Vec3; var v1 = new Vec3(1, 2, 3); // etc... ``` More available functions are listed below in Test Coverage. ## Test Coverage ``` v() ✓ no args ✓ x, y, z ✓ array ✓ object ✓ string coords ✓ deserialize ✓ invalid deserialize vec3 ✓ rounded ✓ round ✓ floored ✓ floor ✓ offset ✓ translate ✓ plus ✓ minus ✓ scaled ✓ abs ✓ distanceTo ✓ equals ✓ toString ✓ clone ✓ add ✓ subtract ✓ multiply ✓ divide ✓ set ✓ modulus ✓ volume ✓ min ✓ max ✓ update ✓ norm ✓ dot ✓ cross ✓ unit ✓ normalize ✓ scale ✓ xyDistanceTo ✓ xzDistanceTo ✓ yzDistanceTo ✓ innerProduct ✓ manhattanDistanceTo ✓ toArray 39 passing ``` More functions welcome in the form of pull requests. ## History See [History](HISTORY.md)