Fix physics

This commit is contained in:
schmelczerandras 2020-10-12 20:49:17 +02:00
parent 37954e2ef1
commit f9f6825776
51 changed files with 832 additions and 541 deletions

View file

@ -0,0 +1,12 @@
import { vec3 } from 'gl-matrix';
import { clamp01 } from './clamp';
import { mix } from './mix';
export const mixRgb = (a: vec3, b: vec3, q: number): vec3 => {
const clampedQ = clamp01(q);
return vec3.fromValues(
mix(a[0], b[0], clampedQ),
mix(a[1], b[1], clampedQ),
mix(a[2], b[2], clampedQ),
);
};

View file

@ -9,6 +9,19 @@ export abstract class Random {
Random._seed = value;
}
public static choose<T>(values: Array<T>): T | undefined {
const to = values.length;
if (to === 0) {
return undefined;
}
return values[Math.floor(this.getRandomInRange(0, to))];
}
public static getRandomInRange(from: number, to: number): number {
return from + this.getRandom() * (to - from);
}
public static getRandom(): number {
let t = (Random._seed += 0x6d2b79f5);
t = Math.imul(t ^ (t >>> 15), t | 1);

3
shared/src/helper/rgb.ts Normal file
View 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);

View 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);