Update physics
This commit is contained in:
parent
1b7dee4be0
commit
d9d8d03c36
30 changed files with 447 additions and 552 deletions
|
|
@ -1,5 +0,0 @@
|
|||
export const exponentialDecay = (
|
||||
accumulator: number,
|
||||
nextValue: number,
|
||||
biasOfNextValue: number
|
||||
) => accumulator * (1 - biasOfNextValue) + nextValue * biasOfNextValue;
|
||||
|
|
@ -1,29 +0,0 @@
|
|||
export const getCombinations = (values: Array<Array<number>>): Array<Array<number>> => {
|
||||
if (!values.every((a) => a.length > 0)) {
|
||||
return [];
|
||||
}
|
||||
|
||||
const result: Array<Array<number>> = [];
|
||||
const counters = values.map((_) => 0);
|
||||
|
||||
const increaseCounter = (i: number) => {
|
||||
if (i >= counters.length) {
|
||||
return false;
|
||||
}
|
||||
|
||||
counters[i]++;
|
||||
|
||||
if (counters[i] >= values[i].length) {
|
||||
counters[i] = 0;
|
||||
return increaseCounter(i + 1);
|
||||
}
|
||||
|
||||
return true;
|
||||
};
|
||||
|
||||
do {
|
||||
result.push(values.map((v, i) => v[counters[i]]));
|
||||
} while (increaseCounter(0));
|
||||
|
||||
return result;
|
||||
};
|
||||
3
frontend/src/scripts/helper/rgb.ts
Normal file
3
frontend/src/scripts/helper/rgb.ts
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
import { vec3 } from 'gl-matrix';
|
||||
|
||||
export const rgb = (r: number, g: number, b: number): vec3 => vec3.fromValues(r, g, b);
|
||||
4
frontend/src/scripts/helper/rgb255.ts
Normal file
4
frontend/src/scripts/helper/rgb255.ts
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
import { vec3 } from 'gl-matrix';
|
||||
|
||||
export const rgb255 = (r: number, g: number, b: number): vec3 =>
|
||||
vec3.fromValues(r / 255, g / 255, b / 255);
|
||||
|
|
@ -1,29 +0,0 @@
|
|||
export const waitWhileFalse = (body: () => boolean): Promise<void> => {
|
||||
let resolveOnDone: () => void;
|
||||
let rejectOnDone: (e: Error) => void;
|
||||
|
||||
const onDone = new Promise<void>((resolve, reject) => {
|
||||
resolveOnDone = resolve;
|
||||
rejectOnDone = reject;
|
||||
});
|
||||
|
||||
const waiter = () => {
|
||||
let success: boolean;
|
||||
|
||||
try {
|
||||
success = body();
|
||||
} catch (e) {
|
||||
rejectOnDone(e);
|
||||
return;
|
||||
}
|
||||
|
||||
if (success) {
|
||||
resolveOnDone();
|
||||
} else {
|
||||
requestAnimationFrame(waiter);
|
||||
}
|
||||
};
|
||||
|
||||
waiter();
|
||||
return onDone;
|
||||
};
|
||||
Loading…
Add table
Add a link
Reference in a new issue