UNPKG

@polygonjs/polygonjs

Version:

node-based WebGL 3D engine https://polygonjs.com

24 lines (22 loc) 863 B
import {Object3D, Vector3} from 'three'; import {touchObjectProperty, GetObjectPropertyJsNodeInputName} from '../../core/reactivity/ObjectPropertyReactivity'; import {ObjectNamedFunction4} from './_Base'; const _scale = new Vector3(); export class setObjectScale extends ObjectNamedFunction4<[Vector3, number, number, boolean]> { static override type() { return 'setObjectScale'; } func(object3D: Object3D, scale: Vector3, mult: number, lerp: number, updateMatrix: boolean): void { if (lerp >= 1) { object3D.scale.copy(scale).multiplyScalar(mult); } else { _scale.copy(scale).multiplyScalar(mult); object3D.scale.lerp(_scale, lerp); } touchObjectProperty(object3D, GetObjectPropertyJsNodeInputName.scale); if (updateMatrix) { object3D.updateMatrix(); touchObjectProperty(object3D, GetObjectPropertyJsNodeInputName.matrix); } } }