Vec3 class
Basic usage
Vec3 is the class used for all 3 dimensions vector manipulations.
Creation
To create a new Vec3, just use its constructor.
If used without parameters, it will create a null vector Vec3 with X, Y and Z components equal to 0.
Use chaining
Since most of the Vec3 methods return the vector itself, you can use chaining:
onChange callback
Vec3 class is using getters and setters, allowing to execute a function each time one of the vector components changes:
Parameters
 X float, optional value along X axis. Default to 0.
 Y float, optional value along Y axis. Default to 0.
 Z float, optional value along Z axis. Default to 0.
Properties

x (float): v7.0
Value along X axis.

y (float): v7.0
Value along Y axis.

z (float): v7.0
Value along Z axis.
Methods

add(vector): v7.0
Adds a vector to this vector.
 vector Vec3 class object vector to add
returns: this vector after addition.

addScalar(scalar): v7.0
Adds a scalar to this vector.
 scalar float number to add
returns: this vector after addition.

applyMat4(matrix): v7.0
Apply a 4 dimensions Mat4 matrix to this vector.
 matrix Mat4 class object matrix to apply
returns: this vector after matrix application.

applyQuat(quaternion): v7.1
Apply a quaternion (rotation in 3D space) to this vector.
 quaternion Quat class object quaternion to apply
returns: this vector after quaternion application.

clone(): v7.0
Clone this vector.
returns: new cloned vector.

copy(vector): v7.0
Copy a vector into this vector.
 vector Vec3 class object vector to copy
returns: this vector after copy.

dot(vector): v7.0
Calculates the dot product of 2 vectors.
 vector Vec3 class object vector to use for dot product
returns: a float representing the dot product of the 2 vectors.

equals(vector): v7.0
Checks if 2 vectors are equal.
 vector Vec3 class object vector to compare
returns: true if the 2 vectors are equals, false otherwise.

max(vector): v7.0
Apply max values to this vector.
 vector Vec3 class object vector representing max values
returns: vector with max values applied.

min(vector): v7.0
Apply min values to this vector.
 vector Vec3 class object vector representing min values
returns: vector with min values applied.

multiply(vector): v7.1
Multiplies a vector with this vector.
 vector Vec3 class object vector to use for multiplication
returns: this vector after multiplication.

multiplyScalar(scalar): v7.1
Multiplies a scalar with this vector.
 scalar float number to use for multiplication
returns: this vector after multiplication.

normalize(): v7.0
Normalize this vector.
returns: normalized vector.

project(camera): v7.1
Project 3D coordinate to 2D point.
 camera Camera class object. Use a plane camera. camera to use to project this vector from 3D to 2D space.
returns: this vector after having been projected.

sanitizeNaNValuesWith(vector): v7.0
Merges this vector with a vector when values are NaN. Mostly used internally to avoid errors.
 vector Vec3 class object vector to use for sanitization (i.e. set this vector value if original vector value is NaN).
returns: sanitized vector.

set(x, y, z): v7.0
Sets the vector from values.
 x float X component of our vector.
 y float Y component of our vector.
 z float Z component of our vector.
returns: this vector after being set.

sub(vector): v7.0
Subtracts a vector from this vector.
 vector Vec3 class object vector to use for subtraction.
returns: this vector after subtraction.

subScalar(scalar): v7.0
Subtracts a scalar to this vector.
 scalar float number to use for subtraction.
returns: this vector after subtraction.

unproject(camera): v7.1
Unproject 2D point to 3D coordinate.
 camera Camera class object. Use a plane camera. camera to use to unproject this vector from 2D to 3D space.
returns: this vector after having been unprojected.
Events

onChange(callback): v8.0
Execute a function each time the x, y or z component of the vector changed.
 callback function function to execute.
returns: your Vec3 object, allowing it to be chainable.