@polygonjs/polygonjs
Version:
node-based WebGL 3D engine https://polygonjs.com
28 lines (27 loc) • 945 B
JavaScript
;
import { Quaternion } from "three";
import { touchObjectProperty, GetObjectPropertyJsNodeInputName } from "../../core/reactivity/ObjectPropertyReactivity";
import { ObjectNamedFunction3 } from "./_Base";
import { isBooleanTrue } from "../../core/Type";
const q1 = new Quaternion();
const q2 = new Quaternion();
export class setObjectQuaternion extends ObjectNamedFunction3 {
static type() {
return "setObjectQuaternion";
}
func(object3D, quaternion, lerp, updateMatrix) {
if (lerp >= 1) {
object3D.quaternion.copy(quaternion);
} else {
q1.copy(object3D.quaternion);
q2.copy(quaternion);
q1.slerp(q2, lerp);
object3D.quaternion.copy(q1);
}
touchObjectProperty(object3D, GetObjectPropertyJsNodeInputName.quaternion);
if (isBooleanTrue(updateMatrix)) {
object3D.updateMatrix();
touchObjectProperty(object3D, GetObjectPropertyJsNodeInputName.matrix);
}
}
}