Skip to content

Commit

Permalink
Fixed lots of bugs based on code analysis.
Browse files Browse the repository at this point in the history
  • Loading branch information
Elixonus committed Mar 5, 2023
1 parent fd77900 commit 1b5c3bb
Showing 1 changed file with 35 additions and 39 deletions.
74 changes: 35 additions & 39 deletions optics/script.js
Original file line number Diff line number Diff line change
Expand Up @@ -515,9 +515,9 @@ class Scene {
return mirrors;
}

getClosestObjectToPoint(p = pointOrigin, objects = []) {
let closestObject;
let distanceToClosestObject;
static getClosestObjectToPoint(p = pointOrigin, objects = []) {
let closestObject = undefined;
let distanceToClosestObject = undefined;

for (let n = 0; n < objects.length; n++) {
let object = objects[n];
Expand All @@ -540,7 +540,7 @@ class Scene {
}

getClosestMirrorToPoint(p = pointOrigin) {
let closest = this.getClosestObjectToPoint(p, this.mirrors);
let closest = Scene.getClosestObjectToPoint(p, this.mirrors);
return closest;
}

Expand All @@ -564,14 +564,14 @@ class Scene {
}

let laserLine = Line.fromRay(laser.position, laser.rotation);
let closestMirror;
let closestIntersection;
let distanceToClosestIntersection;
let closestSide;
let closestMirror = undefined;
let closestIntersection = undefined;
let distanceToClosestIntersection = undefined;
let closestSide = undefined;

for (let n = 0; n < this.mirrors.length; n++) {
let mirror = this.mirrors[n];
let lastVertex;
let lastVertex = undefined;

if (mirror.closedShape || mirror.isRefracting) {
lastVertex = mirror.vertices.length;
Expand Down Expand Up @@ -640,14 +640,13 @@ class Scene {
refractedIndex = average(getPropertiesOfObjects(newInsideMirrors, "indexOfRefraction"));
}

let criticalAngle;
let criticalAngleSine;
let criticalAngle = undefined;
let criticalAngleSine = undefined;

if (incidentIndex > refractedIndex) {
criticalAngleSine = refractedIndex / incidentIndex;
criticalAngle = Math.asin(criticalAngleSine);
} else {
criticalAngle = Math.PI / 2;
criticalAngleSine = 1;
}

Expand Down Expand Up @@ -761,10 +760,10 @@ class Mirror extends Object {
return false;
}

let leftMost;
let rightMost;
let upMost;
let downMost;
let leftMost = undefined;
let rightMost = undefined;
let upMost = undefined;
let downMost = undefined;

for (let n = 0; n < this.vertices.length; n++) {
let vertex = this.getVertex(n, absolute);
Expand Down Expand Up @@ -859,7 +858,6 @@ class Mirror extends Object {
subdivideVertices(vertexMultiplier = 2) {
for (let n = 0; n < this.vertices.length; n++) {
let side = this.getSide(n);
let interpolations = [];

for (let m = 1; m < vertexMultiplier; m++) {
this.vertices.splice(n + 1, 0, side.p1.clone().interpolateToPointLinear(side.p2, m / (vertexMultiplier + 1)));
Expand Down Expand Up @@ -1042,7 +1040,7 @@ class Animation {
}

getValues() {
let lowKeyframe;
let lowKeyframe = undefined;

for (let n = 0; n < this.keyframes.length; n++) {
let keyframe = this.keyframes[n];
Expand All @@ -1051,7 +1049,7 @@ class Animation {
}
}

let highKeyframe;
let highKeyframe = undefined;

for (let n = 0; n < this.keyframes.length; n++) {
let keyframe = this.keyframes[n];
Expand Down Expand Up @@ -1106,9 +1104,7 @@ class Keyframe {
}
}

let request;
const requestAnimationFrame = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || window.msRequestAnimationFrame;
const cancelAnimationFrame = window.cancelAnimationFrame || window.mozCancelAnimationFrame || window.webkitCancelAnimationFrame || window.msCancelAnimationFrame;
let request = undefined;
let windowWidth = window.innerWidth;
let windowHeight = window.innerHeight;
const canvas = document.getElementById("canvas");
Expand Down Expand Up @@ -1210,7 +1206,7 @@ function render() {
}
}

let closest = scene.getClosestObjectToPoint(scene.draggedObject.position, objects);
let closest = Scene.getClosestObjectToPoint(scene.draggedObject.position, objects);

if (closest !== false && closest.distanceToObject <= 50) {
scene.draggedObject.position.setTo(closest.object.position);
Expand Down Expand Up @@ -1250,7 +1246,7 @@ function render() {
let mirrors = scene.mirrors;

for (let n = 0; n < 3; n++) {
let selectedMirrors;
let selectedMirrors = undefined;

if (n === 0) {
selectedMirrors = mirrors.filter(function (mirror) {
Expand Down Expand Up @@ -1360,7 +1356,7 @@ function render() {
}

if (scene.draggedObject !== false) {
let text;
let text = undefined;
let doDrawText = true;

if (mouseAction === MouseAction.dragX) {
Expand Down Expand Up @@ -1576,7 +1572,7 @@ function render() {

ctx.restore();
time += 1;
request = requestAnimationFrame(render);
request = window.requestAnimationFrame(render);
}

function loadExample(n) {
Expand Down Expand Up @@ -1661,7 +1657,7 @@ window.onmousemove = mousemove;
window.onkeydown = keydown;
window.onkeyup = keyup;
window.onload = function () {
request = requestAnimationFrame(render);
request = window.requestAnimationFrame(render);
}
window.oncontextmenu = function (event) {
event.preventDefault();
Expand Down Expand Up @@ -1750,7 +1746,7 @@ function mousedown(event) {
mouseAction = MouseAction.change;
return;
} else if (mouseAction === MouseAction.guide) {
let guide;
let guide = undefined;

if (scene.guides.length === 0) {
guide = new Guide(mousePosition.clone().addTo(cameraPosition), 0);
Expand All @@ -1776,29 +1772,29 @@ function mousedown(event) {
}

let point = mousePosition.clone().addTo(cameraPosition);
let closestLaser = scene.getClosestObjectToPoint(point, scene.lasers.filter(function (z) {
let closestLaser = Scene.getClosestObjectToPoint(point, scene.lasers.filter(function (z) {
return z.interactive;
}));
let laser;
let laser = undefined;

if (closestLaser !== false && closestLaser.distanceToObject <= 200) {
laser = [closestLaser.object];
} else {
laser = [];
}

let closestGuide = scene.getClosestObjectToPoint(point, scene.guides.filter(function (z) {
let closestGuide = Scene.getClosestObjectToPoint(point, scene.guides.filter(function (z) {
return z.interactive;
}));
let guide;
let guide = undefined;

if (closestGuide !== false && closestGuide.distanceToObject <= 300) {
guide = [closestGuide.object];
} else {
guide = [];
}

let closest = scene.getClosestObjectToPoint(point, scene.getMirrorsWithPointInside(point).filter(function (z) {
let closest = Scene.getClosestObjectToPoint(point, scene.getMirrorsWithPointInside(point).filter(function (z) {
return z.interactive;
}).concat(laser, guide));

Expand Down Expand Up @@ -1929,12 +1925,12 @@ function getPropertiesOfObjects(objects, property) {
}

function minimum(values) {
let min;
let min = values[0];

for (let n = 0; n < values.length; n++) {
for (let n = 1; n < values.length; n++) {
let value = values[n];

if (min === undefined || value < min) {
if (value < min) {
min = value;
}
}
Expand All @@ -1943,12 +1939,12 @@ function minimum(values) {
}

function maximum(values) {
let max;
let max = values[0];

for (let n = 0; n < values.length; n++) {
for (let n = 1; n < values.length; n++) {
let value = values[n];

if (max === undefined || value > max) {
if (value > max) {
max = value;
}
}
Expand Down

0 comments on commit 1b5c3bb

Please sign in to comment.