@polygonjs/polygonjs
Version:
node-based WebGL 3D engine https://polygonjs.com
74 lines (73 loc) • 2.9 kB
JavaScript
;
import { MathFunctionArgNOperationFactory } from "./_Math_ArgNOperation";
export class MultJsNode extends MathFunctionArgNOperationFactory("mult", {
inputPrefix: "mult",
out: "product",
operator: {
primitive: "multNumber",
vector: "multVector",
vectorScalar: "multVectorNumber"
}
}) {
// static override type() {
// return 'mult';
// }
paramDefaultValue(name) {
return 1;
}
// protected _applyOperation<T extends number>(arg1: T, arg2: T): any {
// return arg1 * arg2;
// }
// override initializeNode() {
// super.initializeNode();
// this.io.connection_points.set_expected_input_types_function(this._expectedInputTypes.bind(this));
// this.io.connection_points.set_expected_output_types_function(this._expectedOutputType.bind(this));
// }
// protected _expectedOutputType() {
// const inputTypes = this._expectedInputTypes();
// const type = inputTypes[inputTypes.length - 1];
// return [type];
// }
// protected override _expectedInputTypes(): JsConnectionPointType[] {
// const input_connections = this.io.connections.existingInputConnections();
// if (input_connections) {
// const first_connection = input_connections[0];
// if (first_connection) {
// const connection_point_for_first_connection =
// first_connection.node_src.io.outputs.namedOutputConnectionPoints()[first_connection.output_index];
// // this.io.inputs.namedInputConnectionPoints()[
// // first_connection.input_index
// // ];
// const type = connection_point_for_first_connection.type();
// const expected_count = Math.max(input_connections.length + 1, 2);
// const empty_array = new Array(expected_count);
// if (type == JsConnectionPointType.FLOAT) {
// const second_connection = input_connections[1];
// if (second_connection) {
// const connection_point_for_second_connection =
// second_connection.node_src.io.outputs.namedOutputConnectionPoints()[
// second_connection.output_index
// ];
// const second_type = connection_point_for_second_connection.type();
// if (second_type == JsConnectionPointType.FLOAT) {
// // if first 2 inputs are float: n+1 float inputs
// return empty_array.fill(type);
// } else {
// // if first input is float and 2nd is different: 1 float, 1 like second, and no other input
// return [type, second_type];
// }
// } else {
// // if only 1 input: 2 with same type
// return [type, type];
// }
// } else {
// // if first input is not a float: n+1 inputs with same type
// return empty_array.fill(type);
// }
// } else {
// // if we arrive here, we simply go to the last return statement
// }
// }
// return [JsConnectionPointType.FLOAT, JsConnectionPointType.FLOAT];
// }
}