UNPKG

@polygonjs/polygonjs

Version:

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

55 lines (54 loc) 2.29 kB
"use strict"; import { TypedJsNode } from "./_Base"; import { NodeParamsConfig, ParamConfig } from "../utils/params/ParamsConfig"; import { JS_CONNECTION_POINT_IN_NODE_DEF, JsConnectionPoint, JsConnectionPointType } from "../utils/io/connections/Js"; import { Poly } from "../../Poly"; import { Quaternion } from "three"; const CONNECTION_OPTIONS = JS_CONNECTION_POINT_IN_NODE_DEF; var QuaternionSlerpInputName = /* @__PURE__ */ ((QuaternionSlerpInputName2) => { QuaternionSlerpInputName2["q1"] = "q1"; QuaternionSlerpInputName2["q2"] = "q2"; return QuaternionSlerpInputName2; })(QuaternionSlerpInputName || {}); class QuaternionSlerpJsParamsConfig extends NodeParamsConfig { constructor() { super(...arguments); this.lerp = ParamConfig.FLOAT(0.5); } } const ParamsConfig = new QuaternionSlerpJsParamsConfig(); export class QuaternionSlerpJsNode extends TypedJsNode { constructor() { super(...arguments); this.paramsConfig = ParamsConfig; } static type() { return "quaternionSlerp"; } initializeNode() { super.initializeNode(); this.io.inputs.setNamedInputConnectionPoints([ new JsConnectionPoint("q1" /* q1 */, JsConnectionPointType.QUATERNION, CONNECTION_OPTIONS), new JsConnectionPoint("q2" /* q2 */, JsConnectionPointType.QUATERNION, CONNECTION_OPTIONS) // new JsConnectionPoint(QuaternionSlerpInputName.lerp, JsConnectionPointType.FLOAT, CONNECTION_OPTIONS), ]); this.io.outputs.setNamedOutputConnectionPoints([ new JsConnectionPoint(JsConnectionPointType.QUATERNION, JsConnectionPointType.QUATERNION) ]); } setLines(linesController) { const q1 = this.variableForInput(linesController, "q1" /* q1 */); const q2 = this.variableForInput(linesController, "q2" /* q2 */); const lerp = this.variableForInputParam(linesController, this.p.lerp); const varName = this.jsVarName(JsConnectionPointType.QUATERNION); const tmpVarName = linesController.addVariable(this, new Quaternion()); const func = Poly.namedFunctionsRegister.getFunction("quaternionSlerp", this, linesController); linesController.addBodyOrComputed(this, [ { dataType: JsConnectionPointType.EULER, varName, value: func.asString(q1, q2, lerp, tmpVarName) } ]); } }