UNPKG

@polygonjs/polygonjs

Version:

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

47 lines (46 loc) 2.23 kB
"use strict"; import { TypedJsNode } from "./_Base"; import { NodeParamsConfig } from "../utils/params/ParamsConfig"; import { JsConnectionPoint, JsConnectionPointType, JS_CONNECTION_POINT_IN_NODE_DEF } from "../utils/io/connections/Js"; const CONNECTION_OPTIONS = JS_CONNECTION_POINT_IN_NODE_DEF; class BaseRaySphereJsParamsConfig extends NodeParamsConfig { } const ParamsConfig = new BaseRaySphereJsParamsConfig(); export class BaseRaySphereJsNode extends TypedJsNode { constructor() { super(...arguments); this.paramsConfig = ParamsConfig; } initializeNode() { this.io.inputs.setNamedInputConnectionPoints([ new JsConnectionPoint(JsConnectionPointType.RAY, JsConnectionPointType.RAY, CONNECTION_OPTIONS), new JsConnectionPoint(JsConnectionPointType.SPHERE, JsConnectionPointType.SPHERE, CONNECTION_OPTIONS) ]); } // override initializeNode() { // super.initializeNode(); // this.io.connection_points.initializeNode(); // this.io.connection_points.set_input_name_function(this._expectedInputName.bind(this)); // this.io.connection_points.set_output_name_function(this._expectedOutputName.bind(this)); // this.io.connection_points.set_expected_input_types_function(this._expectedInputType.bind(this)); // this.io.connection_points.set_expected_output_types_function(() => [this._expectedOutputType()]); // } // protected abstract _expectedOutputName(index: number): string; // protected abstract _expectedOutputType(): T; // protected _processData: RayProcessData = {}; // protected abstract _processRayData(): ReturnValueTypeByActorConnectionPointType[T]; // protected _expectedInputName(index: number) { // return this._expectedInputType()[index]; // } // protected _expectedInputType() { // return [ActorConnectionPointType.RAY, ActorConnectionPointType.SPHERE]; // } // public override outputValue(context: ActorNodeTriggerContext) { // this._processData.ray = this._inputValue<ActorConnectionPointType.RAY>(ActorConnectionPointType.RAY, context); // this._processData.sphere = this._inputValue<ActorConnectionPointType.SPHERE>( // ActorConnectionPointType.SPHERE, // context // ); // return this._processRayData(); // } }