@polygonjs/polygonjs
Version:
node-based WebGL 3D engine https://polygonjs.com
51 lines (50 loc) • 2.08 kB
JavaScript
;
import { TypedJsNode } from "./_Base";
import { NodeParamsConfig } from "../utils/params/ParamsConfig";
import { JS_CONNECTION_POINT_IN_NODE_DEF, JsConnectionPoint, JsConnectionPointType } from "../utils/io/connections/Js";
import { Poly } from "../../Poly";
const CONNECTION_OPTIONS = JS_CONNECTION_POINT_IN_NODE_DEF;
var QuaternionAngleToInputName = /* @__PURE__ */ ((QuaternionAngleToInputName2) => {
QuaternionAngleToInputName2["q1"] = "q1";
QuaternionAngleToInputName2["q2"] = "q2";
return QuaternionAngleToInputName2;
})(QuaternionAngleToInputName || {});
var QuaternionAngleToOutputName = /* @__PURE__ */ ((QuaternionAngleToOutputName2) => {
QuaternionAngleToOutputName2["angle"] = "angle";
return QuaternionAngleToOutputName2;
})(QuaternionAngleToOutputName || {});
class QuaternionAngleToJsParamsConfig extends NodeParamsConfig {
}
const ParamsConfig = new QuaternionAngleToJsParamsConfig();
export class QuaternionAngleToJsNode extends TypedJsNode {
constructor() {
super(...arguments);
this.paramsConfig = ParamsConfig;
}
static type() {
return "quaternionAngleTo";
}
initializeNode() {
super.initializeNode();
this.io.inputs.setNamedInputConnectionPoints([
new JsConnectionPoint("q1" /* q1 */, JsConnectionPointType.QUATERNION, CONNECTION_OPTIONS),
new JsConnectionPoint("q2" /* q2 */, JsConnectionPointType.QUATERNION, CONNECTION_OPTIONS)
]);
this.io.outputs.setNamedOutputConnectionPoints([
new JsConnectionPoint("angle" /* angle */, JsConnectionPointType.FLOAT)
]);
}
setLines(linesController) {
const q1 = this.variableForInput(linesController, "q1" /* q1 */);
const q2 = this.variableForInput(linesController, "q2" /* q2 */);
const varName = this.jsVarName("angle" /* angle */);
const func = Poly.namedFunctionsRegister.getFunction("quaternionAngleTo", this, linesController);
linesController.addBodyOrComputed(this, [
{
dataType: JsConnectionPointType.EULER,
varName,
value: func.asString(q1, q2)
}
]);
}
}