UNPKG

@threejs-addons/threejs-addons

Version:

free & opensource threejs addons to boost productivity

19 lines (16 loc) 727 B
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; }