// Homogeneous3D.js // John Breaux 2022-07-12 // 3D Homogeneous coordinate library "use strict"; // // Classes // // Homogeneous3D: Stores a 3D vector or point in homogeneous coords class Homogeneous3D { constructor({ x = 0, y = 0, z = 0, w = 0 } = { x: 0, y: 0, z: 0, w: 0 }) { this.x = x; this.y = y; this.z = z; this.w = w; } // Add with modify add_m(rhs) { if (rhs) { this.x += rhs.x; this.y += rhs.y; this.z += rhs.z; this.w += rhs.w; return this; } else return null; } // calculate the magnitude (lol what are points) magnitude() { var magnitude = Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w); } // copy copy() { return new Homogeneous3D(this.x, this.y, this.z, this.w); } }