Passer au contenu principal

math

Description​

This library includes types and functions to handle different types of math.

Compatibility​

The types in ecs.math represent widely followed paradigms and can be bridged easily to other libraries.

three.js​

The types in ecs.math can be converted to and from the corresponding three.js math types THREE.Vector3, THREE.Quaternion, and THREE.Matrix4 by following the examples below.

const {mat4, quat, vec3} = ecs.math

// Vec3 <--> THREE.Vector3
const v3js = new THREE.Vector3()
const v = vec3.zero()

v3js.copy(v) // Set a THREE.Vector3 from a Vec3.
v.setFrom(v3js) // Set a Vec3 from a THREE.Vector3.
const v2 = vec3.from(v3js) // Create new Vec3 from a THREE.Vector3.

// Quat <--> THREE.Quaternion
const q3js = new THREE.Quaternion()
const q = quat.zero()

q3js.copy(q) // Set a THREE.Quaternion from a Quat.
q.setFrom(q3js) // Set a Quat from a THREE.Quaternion.
const q2 = quat.from(q3js) // Create new Quat from a THREE.Quaternion.

// Mat4 <--> THREE.Matrix4
const m3js = new THREE.Matrix4()
const m = mat4.i()

m3js.fromArray(m.data()) // Set a THREE.Matrix4 from a Mat4.
m.set(m3js.elements) // Set a Mat4 from a THREE.Matrix4.
const m2 = mat4.of(m3js.elements) // Create a new Mat4 from a THREE.Matrix4