@threejs-addons/threejs-addons
Version:
free & opensource threejs addons to boost productivity
19 lines (16 loc) • 727 B
text/typescript
import { Vector3 } from 'three/src/math/Vector3';
/**
* @description calculate velocity based on direction vector
* @param direction
* @returns velocity
*/
export const calculateVelocity = ( { direction, delta, SPEED_UP_CONSTANT, speedFactor }: {direction: Vector3, SPEED_UP_CONSTANT: number, delta: number, speedFactor: number }) => {
let VAL_ENUM: (number)[] = [ 1, -1 ]
let velocity = new Vector3(0, 0, 0);
for(const [key, index] of Object.keys(direction)){
if(VAL_ENUM.includes(direction[key as 'x' | 'y' | 'z'])){
velocity[key as 'x' | 'y' | 'z'] -= direction[key as 'x' | 'y' | 'z'] * SPEED_UP_CONSTANT * delta * speedFactor;
}
}
return velocity;
}