4230-hw-1/RotatingCube/Homogeneous3D.js
2022-07-27 22:40:54 -05:00

39 lines
853 B
JavaScript

// 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);
}
}