@polygonjs/polygonjs
Version:
node-based WebGL 3D engine https://polygonjs.com
24 lines (22 loc) • 863 B
text/typescript
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);
}
}
}