import {CATEGORY_JS} from './Category';

import {AbsJsNode} from '../../../nodes/js/Abs';
import {AcosJsNode} from '../../../nodes/js/Acos';
import {AddJsNode} from '../../../nodes/js/Add';
import {AndJsNode} from '../../../nodes/js/And';
import {AnimationActionJsNode} from '../../../nodes/js/AnimationAction';
import {AnimationActionCrossFadeJsNode} from '../../../nodes/js/AnimationActionCrossFade';
import {AnimationActionFadeOutJsNode} from '../../../nodes/js/AnimationActionFadeOut';
import {AnimationActionFadeInJsNode} from '../../../nodes/js/AnimationActionFadeIn';
import {AnimationActionPlayJsNode} from '../../../nodes/js/AnimationActionPlay';
import {AnimationActionStopJsNode} from '../../../nodes/js/AnimationActionStop';
import {AnimationMixerJsNode} from '../../../nodes/js/AnimationMixer';
import {AnimationMixerUpdateJsNode} from '../../../nodes/js/AnimationMixerUpdate';
import {AnyTriggerJsNode} from '../../../nodes/js/AnyTrigger';
import {ArrayElementJsNode} from '../../../nodes/js/ArrayElement';
import {ArrayLengthJsNode} from '../../../nodes/js/ArrayLength';
import {ArrayPopJsNode} from '../../../nodes/js/ArrayPop';
import {ArrayShiftJsNode} from '../../../nodes/js/ArrayShift';
import {AsinJsNode} from '../../../nodes/js/Asin';
import {AtanJsNode} from '../../../nodes/js/Atan';
import {AttributeJsNode} from '../../../nodes/js/Attribute';
import {BoolToIntJsNode} from '../../../nodes/js/BoolToInt';
import {Box3JsNode} from '../../../nodes/js/Box3';
import {Box3ContainsPointJsNode} from '../../../nodes/js/Box3ContainsPoint';
import {Box3IntersectsBox3JsNode} from '../../../nodes/js/Box3IntersectsBox3';
import {Box3SetFromObjectJsNode} from '../../../nodes/js/Box3SetFromObject';
import {CatmullRomCurve3GetPointJsNode} from '../../../nodes/js/CatmullRomCurve3GetPoint';
import {CeilJsNode} from '../../../nodes/js/Ceil';
import {ClampJsNode} from '../../../nodes/js/Clamp';
import {ClothSolverResetJsNode} from '../../../nodes/js/ClothSolverReset';
import {ClothSolverStepSimulationJsNode} from '../../../nodes/js/ClothSolverStepSimulation';
import {ClothSolverUpdateMaterialJsNode} from '../../../nodes/js/ClothSolverUpdateMaterial';
import {CodeJsNode} from '../../../nodes/js/Code';
import {ColorToVec3JsNode} from '../../../nodes/js/ColorToVec3';
import {CompareJsNode} from '../../../nodes/js/Compare';
import {ComplementJsNode} from '../../../nodes/js/Complement';
import {ComputeVelocityJsNode} from '../../../nodes/js/ComputeVelocity';
import {ConstantJsNode} from '../../../nodes/js/Constant';
import {CookNodeJsNode} from '../../../nodes/js/CookNode';
import {CosJsNode} from '../../../nodes/js/Cos';
import {CreateClothConstraintJsNode} from '../../../nodes/js/CreateClothConstraint';
import {CreateObjectsJsNode} from '../../../nodes/js/CreateObjects';
import {CreatePhysicsRBDKinematicConstraintJsNode} from '../../../nodes/js/CreatePhysicsRBDKinematicConstraint';
import {CreatePhysicsRBDsJsNode} from '../../../nodes/js/CreatePhysicsRBDs';
import {CreateSoftBodyConstraintJsNode} from '../../../nodes/js/CreateSoftBodyConstraint';
import {CrossJsNode} from '../../../nodes/js/Cross';
import {CursorJsNode} from '../../../nodes/js/Cursor';
import {CursorToUvJsNode} from '../../../nodes/js/CursorToUv';
import {DebugJsNode} from '../../../nodes/js/Debug';
import {DeformGeometryCubeLatticeJsNode} from '../../../nodes/js/DeformGeometryCubeLattice';
import {DeleteClothConstraintJsNode} from '../../../nodes/js/DeleteClothConstraint';
import {DeleteObjectJsNode} from '../../../nodes/js/DeleteObject';
import {DeletePhysicsRBDJsNode} from '../../../nodes/js/DeletePhysicsRBD';
import {DeletePhysicsRBDKinematicConstraintJsNode} from '../../../nodes/js/DeletePhysicsRBDKinematicConstraint';
import {DeletePhysicsRBDConstraintsJsNode} from '../../../nodes/js/DeletePhysicsRBDConstraints';
import {DeleteSoftBodyConstraintJsNode} from '../../../nodes/js/DeleteSoftBodyConstraint';
import {DegToRadJsNode} from '../../../nodes/js/DegToRad';
import {DeviceOrientationJsNode} from '../../../nodes/js/DeviceOrientation';
import {DistanceJsNode} from '../../../nodes/js/Distance';
import {DivideJsNode} from '../../../nodes/js/Divide';
import {DotJsNode} from '../../../nodes/js/Dot';
import {EasingJsNode} from '../../../nodes/js/Easing';
import {ElementsToArrayJsNode} from '../../../nodes/js/ElementsToArray';
import {EulerJsNode} from '../../../nodes/js/Euler';
import {EulerFromQuaternionJsNode} from '../../../nodes/js/EulerFromQuaternion';
import {FitJsNode} from '../../../nodes/js/Fit';
import {FloatToColorJsNode} from '../../../nodes/js/FloatToColor';
import {FloatToIntJsNode} from '../../../nodes/js/FloatToInt';
import {FloatToVec2JsNode} from '../../../nodes/js/FloatToVec2';
import {FloatToVec3JsNode} from '../../../nodes/js/FloatToVec3';
import {FloatToVec4JsNode} from '../../../nodes/js/FloatToVec4';
import {FloorJsNode} from '../../../nodes/js/Floor';
import {ForLoopJsNode} from '../../../nodes/js/ForLoop';
import {GeolocationCurrentPositionJsNode} from '../../../nodes/js/GeolocationCurrentPosition';
import {GetBox3PropertyJsNode} from '../../../nodes/js/GetBox3Property';
import {GetChildrenAttributesJsNode} from '../../../nodes/js/GetChildrenAttributes';
import {GetChildrenPhysicsRBDPropertiesJsNode} from '../../../nodes/js/GetChildrenPhysicsRBDProperties';
import {GetChildrenPropertiesJsNode} from '../../../nodes/js/GetChildrenProperties';
import {GetDefaultCameraJsNode} from '../../../nodes/js/GetDefaultCamera';
import {GetGeometryBoundingBoxJsNode} from '../../../nodes/js/GetGeometryBoundingBox';
import {GetGeometryNodeObjectsJsNode} from '../../../nodes/js/GetGeometryNodeObjects';
import {GetGeometryPositionsJsNode} from '../../../nodes/js/GetGeometryPositions';
import {GetInstanceAttributeJsNode} from '../../../nodes/js/GetInstanceAttribute';
import {GetInstancePropertyJsNode} from '../../../nodes/js/GetInstanceProperty';
import {GetIntersectionAttributeJsNode} from '../../../nodes/js/GetIntersectionAttribute';
import {GetIntersectionPropertyJsNode} from '../../../nodes/js/GetIntersectionProperty';
import {GetMaterialJsNode} from '../../../nodes/js/GetMaterial';
import {GetNodeJsNode} from '../../../nodes/js/GetNode';
import {GetObjectJsNode} from '../../../nodes/js/GetObject';
import {GetObjectAttributeJsNode} from '../../../nodes/js/GetObjectAttribute';
import {GetObjectChildJsNode} from '../../../nodes/js/GetObjectChild';
import {GetObjectPropertyJsNode} from '../../../nodes/js/GetObjectProperty';
import {GetObjectUserDataJsNode} from '../../../nodes/js/GetObjectUserData';
import {GetObjectWorldPositionJsNode} from '../../../nodes/js/GetObjectWorldPosition';
import {GetParamJsNode} from '../../../nodes/js/GetParam';
import {GetParentJsNode} from '../../../nodes/js/GetParent';
import {GetPhysicsRBDJsNode} from '../../../nodes/js/GetPhysicsRBD';
import {GetPhysicsRBDConePropertyJsNode} from '../../../nodes/js/GetPhysicsRBDConeProperty';
import {GetPhysicsRBDCapsulePropertyJsNode} from '../../../nodes/js/GetPhysicsRBDCapsuleProperty';
import {GetPhysicsRBDCylinderPropertyJsNode} from '../../../nodes/js/GetPhysicsRBDCylinderProperty';
import {GetPhysicsRBDCuboidPropertyJsNode} from '../../../nodes/js/GetPhysicsRBDCuboidProperty';
import {GetPhysicsRBDSpherePropertyJsNode} from '../../../nodes/js/GetPhysicsRBDSphereProperty';
import {GetPhysicsRBDPropertyJsNode} from '../../../nodes/js/GetPhysicsRBDProperty';
import {GetPlanePropertyJsNode} from '../../../nodes/js/GetPlaneProperty';
import {GetPointAttributeJsNode} from '../../../nodes/js/GetPointAttribute';
import {GetPointPropertyJsNode} from '../../../nodes/js/GetPointProperty';
import {GetPrimitiveAttributeJsNode} from '../../../nodes/js/GetPrimitiveAttribute';
import {GetRayPropertyJsNode} from '../../../nodes/js/GetRayProperty';
import {GetSibblingJsNode} from '../../../nodes/js/GetSibbling';
import {GetSpherePropertyJsNode} from '../../../nodes/js/GetSphereProperty';
import {GetTextureJsNode} from '../../../nodes/js/GetTexture';
import {GetTrackedHandPropertyJsNode} from '../../../nodes/js/GetTrackedHandProperty';
import {GetVideoPropertyJsNode} from '../../../nodes/js/GetVideoProperty';
import {GetWebXRARSessionPropertyJsNode} from '../../../nodes/js/GetWebXRARSessionProperty';
import {GetWebXRControllerPropertyJsNode} from '../../../nodes/js/GetWebXRControllerProperty';
import {GetWebXRTrackedMarkerPropertyJsNode} from '../../../nodes/js/GetWebXRTrackedMarkerProperty';
import {GlobalsJsNode} from '../../../nodes/js/Globals';
import {GlobalsAmbientLightJsNode} from '../../../nodes/js/GlobalsAmbientLight';
import {GlobalsAreaLightJsNode} from '../../../nodes/js/GlobalsAreaLight';
import {GlobalsDirectionalLightJsNode} from '../../../nodes/js/GlobalsDirectionalLight';
import {GlobalsHemisphereLightJsNode} from '../../../nodes/js/GlobalsHemisphereLight';
import {GlobalsPointLightJsNode} from '../../../nodes/js/GlobalsPointLight';
import {GlobalsSpotLightJsNode} from '../../../nodes/js/GlobalsSpotLight';
import {HsvToRgbJsNode} from '../../../nodes/js/HsvToRgb';
import {ImportAttributeJsNode} from '../../../nodes/js/ImportAttribute';
import {IntToBoolJsNode} from '../../../nodes/js/IntToBool';
import {IntToFloatJsNode} from '../../../nodes/js/IntToFloat';
import {IsDefinedJsNode} from '../../../nodes/js/IsDefined';
import {IsTouchDeviceJsNode} from '../../../nodes/js/IsTouchDevice';
import {KeyframesJsNode} from '../../../nodes/js/Keyframes';
import {LengthJsNode} from '../../../nodes/js/Length';
import {LerpJsNode} from '../../../nodes/js/Lerp';
import {ManhattanDistanceJsNode} from '../../../nodes/js/ManhattanDistance';
import {Matrix4LookAtJsNode} from '../../../nodes/js/Matrix4LookAt';
import {Matrix4MakeTranslationJsNode} from '../../../nodes/js/Matrix4MakeTranslation';
import {Matrix4MultiplyJsNode} from '../../../nodes/js/Matrix4Multiply';
import {MaxJsNode} from '../../../nodes/js/Max';
import {MaxLengthJsNode} from '../../../nodes/js/MaxLength';
import {MinJsNode} from '../../../nodes/js/Min';
import {MixJsNode} from '../../../nodes/js/Mix';
import {ModJsNode} from '../../../nodes/js/Mod';
import {MultJsNode} from '../../../nodes/js/Mult';
import {MultAddJsNode} from '../../../nodes/js/MultAdd';
import {MultScalarJsNode} from '../../../nodes/js/MultScalar';
import {NearestPositionJsNode} from '../../../nodes/js/NearestPosition';
import {NegateJsNode} from '../../../nodes/js/Negate';
import {NoiseImprovedJsNode} from '../../../nodes/js/NoiseImproved';
import {NoiseSimplexJsNode} from '../../../nodes/js/NoiseSimplex';
import {NormalizeJsNode} from '../../../nodes/js/Normalize';
import {NullJsNode} from '../../../nodes/js/Null';
import {Object3DLocalToWorldJsNode} from '../../../nodes/js/Object3DLocalToWorld';
import {Object3DWorldToLocalJsNode} from '../../../nodes/js/Object3DWorldToLocal';
import {Object3DUpdateMatrixJsNode} from '../../../nodes/js/Object3DUpdateMatrix';
import {Object3DUpdateWorldMatrixJsNode} from '../../../nodes/js/Object3DUpdateWorldMatrix';
import {ObjectDispatchEventJsNode} from '../../../nodes/js/ObjectDispatchEvent';
import {OnChildAttributeUpdateJsNode} from '../../../nodes/js/OnChildAttributeUpdate';
import {OnKeyJsNode} from '../../../nodes/js/OnKey';
import {OnKeydownJsNode} from '../../../nodes/js/OnKeydown';
import {OnKeypressJsNode} from '../../../nodes/js/OnKeypress';
import {OnKeyupJsNode} from '../../../nodes/js/OnKeyup';
import {OnManualTriggerJsNode} from '../../../nodes/js/OnManualTrigger';
import {OnMapboxCameraMoveJsNode} from '../../../nodes/js/OnMapboxCameraMove';
import {OnMapboxCameraMoveEndJsNode} from '../../../nodes/js/OnMapboxCameraMoveEnd';
import {OnMapboxCameraMoveStartJsNode} from '../../../nodes/js/OnMapboxCameraMoveStart';
import {OnObjectAttributeUpdateJsNode} from '../../../nodes/js/OnObjectAttributeUpdate';
import {OnObjectBeforeDeleteJsNode} from '../../../nodes/js/OnObjectBeforeDelete';
import {OnObjectClickJsNode} from '../../../nodes/js/OnObjectClick';
import {OnObjectClickGPUJsNode} from '../../../nodes/js/OnObjectClickGPU';
import {OnObjectContextMenuJsNode} from '../../../nodes/js/OnObjectContextMenu';
import {OnObjectContextMenuGPUJsNode} from '../../../nodes/js/OnObjectContextMenuGPU';
import {OnObjectDoubleClickJsNode} from '../../../nodes/js/OnObjectDoubleClick';
import {OnObjectDispatchEventJsNode} from '../../../nodes/js/OnObjectDispatchEvent';
import {OnObjectHoverJsNode} from '../../../nodes/js/OnObjectHover';
import {OnObjectHoverGPUJsNode} from '../../../nodes/js/OnObjectHoverGPU';
import {OnObjectLongPressJsNode} from '../../../nodes/js/OnObjectLongPress';
import {OnObjectLongPressGPUJsNode} from '../../../nodes/js/OnObjectLongPressGPU';
import {OnObjectMouseClickJsNode} from '../../../nodes/js/OnObjectMouseClick';
import {OnObjectPointerdownJsNode} from '../../../nodes/js/OnObjectPointerdown';
import {OnObjectPointerdownGPUJsNode} from '../../../nodes/js/OnObjectPointerdownGPU';
import {OnObjectPointerupJsNode} from '../../../nodes/js/OnObjectPointerup';
import {OnObjectPointerupGPUJsNode} from '../../../nodes/js/OnObjectPointerupGPU';
import {OnObjectSwipeJsNode} from '../../../nodes/js/OnObjectSwipe';
import {OnObjectSwipeGPUJsNode} from '../../../nodes/js/OnObjectSwipeGPU';
// import {OnObjectSwipedownJsNode} from '../../../nodes/js/OnObjectSwipedown';
// import {OnObjectSwipeleftJsNode} from '../../../nodes/js/OnObjectSwipeleft';
// import {OnObjectSwiperightJsNode} from '../../../nodes/js/OnObjectSwiperight';
// import {OnObjectSwipeupJsNode} from '../../../nodes/js/OnObjectSwipeup';
import {OnPerformanceChangeJsNode} from '../../../nodes/js/OnPerformanceChange';
import {OnPointerdownJsNode} from '../../../nodes/js/OnPointerdown';
import {OnPointerupJsNode} from '../../../nodes/js/OnPointerup';
import {OnScenePauseJsNode} from '../../../nodes/js/OnScenePause';
import {OnScenePlayJsNode} from '../../../nodes/js/OnScenePlay';
import {OnSceneResetJsNode} from '../../../nodes/js/OnSceneReset';
import {OnScrollJsNode} from '../../../nodes/js/OnScroll';
import {OnTickJsNode} from '../../../nodes/js/OnTick';
import {OnVideoEventJsNode} from '../../../nodes/js/OnVideoEvent';
import {OnViewerControlsEventJsNode} from '../../../nodes/js/OnViewerControlsEvent';
import {OnWebXRControllerEventJsNode} from '../../../nodes/js/OnWebXRControllerEvent';
import {OrJsNode} from '../../../nodes/js/Or';
import {OutputJsNode} from '../../../nodes/js/Output';
import {OutputAmbientLightJsNode} from '../../../nodes/js/OutputAmbientLight';
import {OutputAreaLightJsNode} from '../../../nodes/js/OutputAreaLight';
import {OutputDirectionalLightJsNode} from '../../../nodes/js/OutputDirectionalLight';
import {OutputHemisphereLightJsNode} from '../../../nodes/js/OutputHemisphereLight';
import {OutputPointLightJsNode} from '../../../nodes/js/OutputPointLight';
import {OutputSpotLightJsNode} from '../../../nodes/js/OutputSpotLight';
import {ParamJsNode} from '../../../nodes/js/Param';
import {ParticlesSystemResetJsNode} from '../../../nodes/js/ParticlesSystemReset';
import {ParticlesSystemStepSimulationJsNode} from '../../../nodes/js/ParticlesSystemStepSimulation';
import {PauseAudioSourceJsNode} from '../../../nodes/js/PauseAudioSource';
import {PhysicsDebugUpdateJsNode} from '../../../nodes/js/PhysicsDebugUpdate';
import {PhysicsPlayerUpdateJsNode} from '../../../nodes/js/PhysicsPlayerUpdate';
import {PhysicsRBDAddForceJsNode} from '../../../nodes/js/PhysicsRBDAddForce';
import {PhysicsRBDAddForceAtPointJsNode} from '../../../nodes/js/PhysicsRBDAddForceAtPoint';
import {PhysicsRBDAddTorqueJsNode} from '../../../nodes/js/PhysicsRBDAddTorque';
import {PhysicsRBDApplyImpulseJsNode} from '../../../nodes/js/PhysicsRBDApplyImpulse';
import {PhysicsRBDApplyTorqueImpulseJsNode} from '../../../nodes/js/PhysicsRBDApplyTorqueImpulse';
import {PhysicsRBDApplyImpulseAtPointJsNode} from '../../../nodes/js/PhysicsRBDApplyImpulseAtPoint';
import {PhysicsRBDResetAllJsNode} from '../../../nodes/js/PhysicsRBDResetAll';
import {PhysicsRBDResetForcesJsNode} from '../../../nodes/js/PhysicsRBDResetForces';
import {PhysicsRBDResetTorquesJsNode} from '../../../nodes/js/PhysicsRBDResetTorques';
import {PhysicsWorldResetJsNode} from '../../../nodes/js/PhysicsWorldReset';
import {PhysicsWorldStepSimulationJsNode} from '../../../nodes/js/PhysicsWorldStepSimulation';
import {PlaneJsNode} from '../../../nodes/js/Plane';
import {PlayAnimationJsNode} from '../../../nodes/js/PlayAnimation';
import {PlayAudioSourceJsNode} from '../../../nodes/js/PlayAudioSource';
import {PlayerModeJsNode} from '../../../nodes/js/PlayerMode';
import {PlayerUpdateJsNode} from '../../../nodes/js/PlayerUpdate';
import {PlayInstrumentNoteJsNode} from '../../../nodes/js/PlayInstrumentNote';
import {PolarTransformJsNode} from '../../../nodes/js/PolarTransform';
import {PowJsNode} from '../../../nodes/js/Pow';
import {PressButtonParamJsNode} from '../../../nodes/js/PressButtonParam';
import {PreviousValueJsNode} from '../../../nodes/js/PreviousValue';
import {PrimitiveNeighbourIndexJsNode} from '../../../nodes/js/PrimitiveNeighbourIndex';
import {PrimitiveNeighboursCountJsNode} from '../../../nodes/js/PrimitiveNeighboursCount';
import {QuaternionJsNode} from '../../../nodes/js/Quaternion';
import {QuaternionAngleToJsNode} from '../../../nodes/js/QuaternionAngleTo';
import {QuaternionSlerpJsNode} from '../../../nodes/js/QuaternionSlerp';
import {RadToDegJsNode} from '../../../nodes/js/RadToDeg';
import {RandJsNode} from '../../../nodes/js/Rand';
import {RandomJsNode} from '../../../nodes/js/Random';
import {RayJsNode} from '../../../nodes/js/Ray';
import {RayFromCameraJsNode} from '../../../nodes/js/RayFromCamera';
import {RayFromCursorJsNode} from '../../../nodes/js/RayFromCursor';
import {RayIntersectBoxJsNode} from '../../../nodes/js/RayIntersectBox';
import {RayIntersectsBoxJsNode} from '../../../nodes/js/RayIntersectsBox';
import {RayIntersectObjectJsNode} from '../../../nodes/js/RayIntersectObject';
import {RayIntersectsObjectJsNode} from '../../../nodes/js/RayIntersectsObject';
import {RayDistanceToPlaneJsNode} from '../../../nodes/js/RayDistanceToPlane';
import {RayIntersectPlaneJsNode} from '../../../nodes/js/RayIntersectPlane';
import {RayIntersectsPlaneJsNode} from '../../../nodes/js/RayIntersectsPlane';
import {RayIntersectSphereJsNode} from '../../../nodes/js/RayIntersectSphere';
import {RayIntersectsSphereJsNode} from '../../../nodes/js/RayIntersectsSphere';
import {RenderPixelJsNode} from '../../../nodes/js/RenderPixel';
import {RotateJsNode} from '../../../nodes/js/Rotate';
import {RoundJsNode} from '../../../nodes/js/Round';
import {SDF2DBoxJsNode} from '../../../nodes/js/SDF2DBox';
import {SDF2DCircleJsNode} from '../../../nodes/js/SDF2DCircle';
import {SDF2DCrossJsNode} from '../../../nodes/js/SDF2DCross';
import {SDF2DHeartJsNode} from '../../../nodes/js/SDF2DHeart';
import {SDF2DRoundedXJsNode} from '../../../nodes/js/SDF2DRoundedX';
import {SDFBoxJsNode} from '../../../nodes/js/SDFBox';
import {SDFElongateJsNode} from '../../../nodes/js/SDFElongate';
import {SDFIntersectJsNode} from '../../../nodes/js/SDFIntersect';
import {SDFOnionJsNode} from '../../../nodes/js/SDFOnion';
import {SDFPlaneJsNode} from '../../../nodes/js/SDFPlane';
import {SDFRevolutionJsNode} from '../../../nodes/js/SDFRevolution';
import {SDFSphereJsNode} from '../../../nodes/js/SDFSphere';
import {SDFSubtractJsNode} from '../../../nodes/js/SDFSubtract';
import {SDFTorusJsNode} from '../../../nodes/js/SDFTorus';
import {SDFTransformJsNode} from '../../../nodes/js/SDFTransform';
import {SDFTubeJsNode} from '../../../nodes/js/SDFTube';
import {SDFUnionJsNode} from '../../../nodes/js/SDFUnion';
import {SetCameraViewOffsetJsNode} from '../../../nodes/js/SetCameraViewOffset';
import {SetClothConstraintPositionJsNode} from '../../../nodes/js/SetClothConstraintPosition';
import {SetCSSObjectClassJsNode} from '../../../nodes/js/SetCSSObjectClass';
import {SetGeometryInstanceAttributeJsNode} from '../../../nodes/js/SetGeometryInstanceAttribute';
import {SetGeometryInstancePositionsJsNode} from '../../../nodes/js/SetGeometryInstancePositions';
import {SetGeometryInstanceQuaternionsJsNode} from '../../../nodes/js/SetGeometryInstanceQuaternions';
import {SetGeometryInstanceScalesJsNode} from '../../../nodes/js/SetGeometryInstanceScales';
import {SetGeometryInstanceTransformsJsNode} from '../../../nodes/js/SetGeometryInstanceTransforms';
import {SetGeometryPositionsJsNode} from '../../../nodes/js/SetGeometryPositions';
import {SetInstanceAttributeJsNode} from '../../../nodes/js/SetInstanceAttribute';
import {SetInstanceLookAtJsNode} from '../../../nodes/js/SetInstanceLookAt';
import {SetInstancePositionJsNode} from '../../../nodes/js/SetInstancePosition';
import {SetInstanceQuaternionJsNode} from '../../../nodes/js/SetInstanceQuaternion';
import {SetInstanceScaleJsNode} from '../../../nodes/js/SetInstanceScale';
import {SetMaterialAlphaMapJsNode} from '../../../nodes/js/SetMaterialAlphaMap';
import {SetMaterialAOMapJsNode} from '../../../nodes/js/SetMaterialAOMap';
import {SetMaterialColorJsNode} from '../../../nodes/js/SetMaterialColor';
import {SetMaterialDisplacementMapJsNode} from '../../../nodes/js/SetMaterialDisplacementMap';
import {SetMaterialEmissiveColorJsNode} from '../../../nodes/js/SetMaterialEmissiveColor';
import {SetMaterialEnvMapJsNode} from '../../../nodes/js/SetMaterialEnvMap';
import {SetMaterialEmissiveMapJsNode} from '../../../nodes/js/SetMaterialEmissiveMap';
import {SetMaterialMapJsNode} from '../../../nodes/js/SetMaterialMap';
import {SetMaterialMetalnessMapJsNode} from '../../../nodes/js/SetMaterialMetalnessMap';
import {SetMaterialRoughnessMapJsNode} from '../../../nodes/js/SetMaterialRoughnessMap';
import {SetMaterialOpacityJsNode} from '../../../nodes/js/SetMaterialOpacity';
import {SetMaterialUniformJsNode} from '../../../nodes/js/SetMaterialUniform';
import {SetObjectAttributeJsNode} from '../../../nodes/js/SetObjectAttribute';
import {SetObjectCastShadowJsNode} from '../../../nodes/js/SetObjectCastShadow';
import {SetObjectFrustumCulledJsNode} from '../../../nodes/js/SetObjectFrustumCulled';
import {SetObjectLookAtJsNode} from '../../../nodes/js/SetObjectLookAt';
import {SetObjectMaterialJsNode} from '../../../nodes/js/SetObjectMaterial';
import {SetObjectMaterialColorJsNode} from '../../../nodes/js/SetObjectMaterialColor';
import {SetObjectMatrixJsNode} from '../../../nodes/js/SetObjectMatrix';
import {SetObjectMatrixAutoUpdateJsNode} from '../../../nodes/js/SetObjectMatrixAutoUpdate';
import {SetObjectPositionJsNode} from '../../../nodes/js/SetObjectPosition';
import {SetObjectReceiveShadowJsNode} from '../../../nodes/js/SetObjectReceiveShadow';
import {SetObjectRotationJsNode} from '../../../nodes/js/SetObjectRotation';
import {SetObjectQuaternionJsNode} from '../../../nodes/js/SetObjectQuaternion';
import {SetObjectPolarTransformJsNode} from '../../../nodes/js/SetObjectPolarTransform';
import {SetObjectScaleJsNode} from '../../../nodes/js/SetObjectScale';
import {SetObjectVisibleJsNode} from '../../../nodes/js/SetObjectVisible';
import {SetParamJsNode} from '../../../nodes/js/SetParam';
import {SetPerspectiveCameraFovJsNode} from '../../../nodes/js/SetPerspectiveCameraFov';
import {SetPerspectiveCameraNearFarJsNode} from '../../../nodes/js/SetPerspectiveCameraNearFar';
import {SetPhysicsRBDAngularVelocityJsNode} from '../../../nodes/js/SetPhysicsRBDAngularVelocity';
import {SetPhysicsRBDLinearVelocityJsNode} from '../../../nodes/js/SetPhysicsRBDLinearVelocity';
import {SetPhysicsRBDPositionJsNode} from '../../../nodes/js/SetPhysicsRBDPosition';
import {SetPhysicsRBDRotationJsNode} from '../../../nodes/js/SetPhysicsRBDRotation';
import {SetPhysicsRBDCapsulePropertyJsNode} from '../../../nodes/js/SetPhysicsRBDCapsuleProperty';
import {SetPhysicsRBDConePropertyJsNode} from '../../../nodes/js/SetPhysicsRBDConeProperty';
import {SetPhysicsRBDCylinderPropertyJsNode} from '../../../nodes/js/SetPhysicsRBDCylinderProperty';
import {SetPhysicsRBDCuboidPropertyJsNode} from '../../../nodes/js/SetPhysicsRBDCuboidProperty';
import {SetPhysicsRBDSpherePropertyJsNode} from '../../../nodes/js/SetPhysicsRBDSphereProperty';
import {SetPhysicsWorldGravityJsNode} from '../../../nodes/js/SetPhysicsWorldGravity';
import {SetPlayerInputJsNode} from '../../../nodes/js/SetPlayerInput';
import {SetPointAttributeJsNode} from '../../../nodes/js/SetPointAttribute';
import {SetPointPositionJsNode} from '../../../nodes/js/SetPointPosition';
import {SetSoftBodyPositionJsNode} from '../../../nodes/js/SetSoftBodyPosition';
import {SetSoftBodyVelocityJsNode} from '../../../nodes/js/SetSoftBodyVelocity';
import {SetSoftBodyConstraintPositionJsNode} from '../../../nodes/js/SetSoftBodyConstraintPosition';
import {SetSpotLightIntensityJsNode} from '../../../nodes/js/SetSpotLightIntensity';
import {SetViewerJsNode} from '../../../nodes/js/SetViewer';
import {SetViewerControlsJsNode} from '../../../nodes/js/SetViewerControls';
import {SetWFCSoftConstraintJsNode} from '../../../nodes/js/SetWFCSoftConstraint';
import {SignJsNode} from '../../../nodes/js/Sign';
import {SinJsNode} from '../../../nodes/js/Sin';
import {SmoothstepJsNode} from '../../../nodes/js/Smoothstep';
import {SmootherstepJsNode} from '../../../nodes/js/Smootherstep';
import {SoftBodySolverStepSimulationJsNode} from '../../../nodes/js/SoftBodySolverStepSimulation';
import {SphereJsNode} from '../../../nodes/js/Sphere';
import {SqrtJsNode} from '../../../nodes/js/Sqrt';
import {SubnetJsNode} from '../../../nodes/js/Subnet';
import {SubnetInputJsNode} from '../../../nodes/js/SubnetInput';
import {SubnetOutputJsNode} from '../../../nodes/js/SubnetOutput';
import {SubtractJsNode} from '../../../nodes/js/Subtract';
import {SwitchJsNode} from '../../../nodes/js/Switch';
import {TanJsNode} from '../../../nodes/js/Tan';
// import {TextureSDFJsNode} from '../../../nodes/js/TextureSDF';
import {TrackFaceJsNode} from '../../../nodes/js/TrackFace';
import {TrackHandJsNode} from '../../../nodes/js/TrackHand';
import {TriggerDelayJsNode} from '../../../nodes/js/TriggerDelay';
import {TriggerFilterJsNode} from '../../../nodes/js/TriggerFilter';
import {TriggerSwitchJsNode} from '../../../nodes/js/TriggerSwitch';
import {TriggerTwoWaySwitchJsNode} from '../../../nodes/js/TriggerTwoWaySwitch';
import {TwoWaySwitchJsNode} from '../../../nodes/js/TwoWaySwitch';
import {Vector3AngleToJsNode} from '../../../nodes/js/Vector3AngleTo';
import {Vector3ProjectJsNode} from '../../../nodes/js/Vector3Project';
import {Vector3ProjectOnPlaneJsNode} from '../../../nodes/js/Vector3ProjectOnPlane';
import {Vector3UnprojectJsNode} from '../../../nodes/js/Vector3Unproject';
import {Vec2ToFloatJsNode} from '../../../nodes/js/Vec2ToFloat';
import {Vec2ToVec3JsNode} from '../../../nodes/js/Vec2ToVec3';
import {Vec3ToFloatJsNode} from '../../../nodes/js/Vec3ToFloat';
import {Vec3ToColorJsNode} from '../../../nodes/js/Vec3ToColor';
import {Vec3ToVec2JsNode} from '../../../nodes/js/Vec3ToVec2';
import {Vec3ToVec4JsNode} from '../../../nodes/js/Vec3ToVec4';
import {Vec4ToFloatJsNode} from '../../../nodes/js/Vec4ToFloat';
import {Vec4ToVec3JsNode} from '../../../nodes/js/Vec4ToVec3';
import {Vector2JsNode} from '../../../nodes/js/Vector2';
import {Vector3JsNode} from '../../../nodes/js/Vector3';
import {Vector3ApplyMatrix4JsNode} from '../../../nodes/js/Vector3ApplyMatrix4';
import {Vector4JsNode} from '../../../nodes/js/Vector4';
import {WFCBuildJsNode} from '../../../nodes/js/WFCBuild';

export interface JsNodeChildrenMap {
	abs: AbsJsNode;
	add: AddJsNode;
	acos: AcosJsNode;
	and: AndJsNode;
	animationAction: AnimationActionJsNode;
	animationActionCrossFade: AnimationActionCrossFadeJsNode;
	animationActionFadeOut: AnimationActionFadeOutJsNode;
	animationActionFadeIn: AnimationActionFadeInJsNode;
	animationActionPlay: AnimationActionPlayJsNode;
	animationActionStop: AnimationActionStopJsNode;
	animationMixer: AnimationMixerJsNode;
	animationMixerUpdate: AnimationMixerUpdateJsNode;
	anyTrigger: AnyTriggerJsNode;
	arrayElement: ArrayElementJsNode;
	arrayLength: ArrayLengthJsNode;
	arrayPop: ArrayPopJsNode;
	arrayShift: ArrayShiftJsNode;
	asin: AsinJsNode;
	atan: AtanJsNode;
	attribute: AttributeJsNode;
	boolToInt: BoolToIntJsNode;
	box3: Box3JsNode;
	box3ContainsPoint: Box3ContainsPointJsNode;
	box3IntersectsBox3: Box3IntersectsBox3JsNode;
	box3SetFromObject: Box3SetFromObjectJsNode;
	catmullRomCurve3GetPoint: CatmullRomCurve3GetPointJsNode;
	ceil: CeilJsNode;
	clamp: ClampJsNode;
	clothSolverReset: ClothSolverResetJsNode;
	clothSolverStepSimulation: ClothSolverStepSimulationJsNode;
	clothSolverUpdateMaterial: ClothSolverUpdateMaterialJsNode;
	code: CodeJsNode;
	compare: CompareJsNode;
	complement: ComplementJsNode;
	computeVelocity: ComputeVelocityJsNode;
	cookNode: CookNodeJsNode;
	colorToVec3: ColorToVec3JsNode;
	constant: ConstantJsNode;
	cos: CosJsNode;
	createClothConstraint: CreateClothConstraintJsNode;
	createObjects: CreateObjectsJsNode;
	createPhysicsRBDKinematicConstraint: CreatePhysicsRBDKinematicConstraintJsNode;
	createPhysicsRBDs: CreatePhysicsRBDsJsNode;
	createSoftBodyConstraint: CreateSoftBodyConstraintJsNode;
	cross: CrossJsNode;
	cursor: CursorJsNode;
	cursorToUv: CursorToUvJsNode;
	debug: DebugJsNode;
	deformGeometryCubeLattice: DeformGeometryCubeLatticeJsNode;
	deleteClothConstraint: DeleteClothConstraintJsNode;
	deleteObject: DeleteObjectJsNode;
	deletePhysicsRBD: DeletePhysicsRBDJsNode;
	deletePhysicsRBDKinematicConstraint: DeletePhysicsRBDKinematicConstraintJsNode;
	deletePhysicsRBDConstraints: DeletePhysicsRBDConstraintsJsNode;
	deleteSoftBodyConstraint: DeleteSoftBodyConstraintJsNode;
	degToRad: DegToRadJsNode;
	deviceOrientation: DeviceOrientationJsNode;
	dot: DotJsNode;
	distance: DistanceJsNode;
	divide: DivideJsNode;
	easing: EasingJsNode;
	elementsToArray: ElementsToArrayJsNode;
	euler: EulerJsNode;
	eulerFromQuaternion: EulerFromQuaternionJsNode;
	fit: FitJsNode;
	floatToColor: FloatToColorJsNode;
	floatToInt: FloatToIntJsNode;
	floatToVec2: FloatToVec2JsNode;
	floatToVec3: FloatToVec3JsNode;
	floatToVec4: FloatToVec4JsNode;
	floor: FloorJsNode;
	forLoop: ForLoopJsNode;
	geolocationCurrentPosition: GeolocationCurrentPositionJsNode;
	getBox3Property: GetBox3PropertyJsNode;
	getChildrenAttributes: GetChildrenAttributesJsNode;
	getChildrenPhysicsRBDProperties: GetChildrenPhysicsRBDPropertiesJsNode;
	getChildrenProperties: GetChildrenPropertiesJsNode;
	getDefaultCamera: GetDefaultCameraJsNode;
	getGeometryBoundingBox: GetGeometryBoundingBoxJsNode;
	getGeometryNodeObjects: GetGeometryNodeObjectsJsNode;
	getGeometryPositions: GetGeometryPositionsJsNode;
	getInstanceAttribute: GetInstanceAttributeJsNode;
	getInstanceProperty: GetInstancePropertyJsNode;
	getIntersectionAttribute: GetIntersectionAttributeJsNode;
	getIntersectionProperty: GetIntersectionPropertyJsNode;
	getMaterial: GetMaterialJsNode;
	getNode: GetNodeJsNode;
	getObject: GetObjectJsNode;
	getObjectAttribute: GetObjectAttributeJsNode;
	getObjectChild: GetObjectChildJsNode;
	getObjectProperty: GetObjectPropertyJsNode;
	getObjectUserData: GetObjectUserDataJsNode;
	getObjectWorldPosition: GetObjectWorldPositionJsNode;
	getParam: GetParamJsNode;
	getParent: GetParentJsNode;
	getPlaneProperty: GetPlanePropertyJsNode;
	getPhysicsRBD: GetPhysicsRBDJsNode;
	getPhysicsRBDCapsuleProperty: GetPhysicsRBDCapsulePropertyJsNode;
	getPhysicsRBDConeProperty: GetPhysicsRBDConePropertyJsNode;
	getPhysicsRBDCylinderProperty: GetPhysicsRBDCylinderPropertyJsNode;
	getPhysicsRBDCuboidProperty: GetPhysicsRBDCuboidPropertyJsNode;
	getPhysicsRBDSphereProperty: GetPhysicsRBDSpherePropertyJsNode;
	getPhysicsRBDProperty: GetPhysicsRBDPropertyJsNode;
	getPointAttribute: GetPointAttributeJsNode;
	getPointProperty: GetPointPropertyJsNode;
	getPrimitiveAttribute: GetPrimitiveAttributeJsNode;
	getRayProperty: GetRayPropertyJsNode;
	getSibbling: GetSibblingJsNode;
	getSphereProperty: GetSpherePropertyJsNode;
	getTexture: GetTextureJsNode;
	getTrackedHandProperty: GetTrackedHandPropertyJsNode;
	getVideoProperty: GetVideoPropertyJsNode;
	getWebXRARSessionProperty: GetWebXRARSessionPropertyJsNode;
	getWebXRControllerProperty: GetWebXRControllerPropertyJsNode;
	getWebXRTrackedMarkerProperty: GetWebXRTrackedMarkerPropertyJsNode;
	globals: GlobalsJsNode;
	globalsAmbientLight: GlobalsAmbientLightJsNode;
	globalsAreaLight: GlobalsAreaLightJsNode;
	globalsDirectionalLight: GlobalsDirectionalLightJsNode;
	globalsHemisphereLight: GlobalsHemisphereLightJsNode;
	globalsPointLight: GlobalsPointLightJsNode;
	globalsSpotLight: GlobalsSpotLightJsNode;
	hsvToRgb: HsvToRgbJsNode;
	importAttribute: ImportAttributeJsNode;
	intToBool: IntToBoolJsNode;
	intToFloat: IntToFloatJsNode;
	isDefined: IsDefinedJsNode;
	IsTouchDevice: IsTouchDeviceJsNode;
	keyframes: KeyframesJsNode;
	length: LengthJsNode;
	lerp: LerpJsNode;
	manhattanDistance: ManhattanDistanceJsNode;
	matrix4LookAt: Matrix4LookAtJsNode;
	matrix4MakeTranslation: Matrix4MakeTranslationJsNode;
	matrix4Multiply: Matrix4MultiplyJsNode;
	max: MaxJsNode;
	maxLength: MaxLengthJsNode;
	min: MinJsNode;
	mix: MixJsNode;
	mod: ModJsNode;
	mult: MultJsNode;
	multAdd: MultAddJsNode;
	multScalar: MultScalarJsNode;
	nearestPosition: NearestPositionJsNode;
	negate: NegateJsNode;
	noiseImproved: NoiseImprovedJsNode;
	noiseSimplex: NoiseSimplexJsNode;
	normalize: NormalizeJsNode;
	null: NullJsNode;
	object3DLocalToWorld: Object3DLocalToWorldJsNode;
	object3DWorldToLocal: Object3DWorldToLocalJsNode;
	object3DUpdateMatrix: Object3DUpdateMatrixJsNode;
	object3DUpdateWorldMatrix: Object3DUpdateWorldMatrixJsNode;
	objectDispatchEvent: ObjectDispatchEventJsNode;
	onChildAttributeUpdate: OnChildAttributeUpdateJsNode;
	onKey: OnKeyJsNode;
	onKeydown: OnKeydownJsNode;
	onKeypress: OnKeypressJsNode;
	onKeyup: OnKeyupJsNode;
	onManualTrigger: OnManualTriggerJsNode;
	onMapboxCameraMove: OnMapboxCameraMoveJsNode;
	onMapboxCameraMoveEnd: OnMapboxCameraMoveEndJsNode;
	onMapboxCameraMoveStart: OnMapboxCameraMoveStartJsNode;
	onObjectAttributeUpdate: OnObjectAttributeUpdateJsNode;
	onObjectBeforeDelete: OnObjectBeforeDeleteJsNode;
	onObjectClick: OnObjectClickJsNode;
	onObjectClickGPU: OnObjectClickGPUJsNode;
	onObjectContextMenu: OnObjectContextMenuJsNode;
	onObjectContextMenuGPU: OnObjectContextMenuGPUJsNode;
	onObjectDoubleClick: OnObjectDoubleClickJsNode;
	onObjectDispatchEvent: OnObjectDispatchEventJsNode;
	onObjectHover: OnObjectHoverJsNode;
	onObjectHoverGPU: OnObjectHoverGPUJsNode;
	onObjectLongPress: OnObjectLongPressJsNode;
	onObjectLongPressGPU: OnObjectLongPressGPUJsNode;
	onObjectMouseClick: OnObjectMouseClickJsNode;
	onObjectPointerdown: OnObjectPointerdownJsNode;
	onObjectPointerdownGPU: OnObjectPointerdownGPUJsNode;
	onObjectPointerup: OnObjectPointerupJsNode;
	onObjectPointerupGPU: OnObjectPointerupGPUJsNode;
	onObjectSwipe: OnObjectSwipeJsNode;
	onObjectSwipeGPU: OnObjectSwipeGPUJsNode;
	// onObjectSwipedown: OnObjectSwipedownJsNode;
	// onObjectSwipeleft: OnObjectSwipeleftJsNode;
	// onObjectSwiperight: OnObjectSwiperightJsNode;
	// onObjectSwipeup: OnObjectSwipeupJsNode;
	onPerformanceChange: OnPerformanceChangeJsNode;
	onPointerdown: OnPointerdownJsNode;
	onPointerup: OnPointerupJsNode;
	onScenePause: OnScenePauseJsNode;
	onScenePlay: OnScenePlayJsNode;
	onSceneReset: OnSceneResetJsNode;
	onScroll: OnScrollJsNode;
	onTick: OnTickJsNode;
	onVideoEvent: OnVideoEventJsNode;
	onViewerControlsEvent: OnViewerControlsEventJsNode;
	onWebXRControllerEvent: OnWebXRControllerEventJsNode;
	or: OrJsNode;
	output: OutputJsNode;
	outputAmbientLight: OutputAmbientLightJsNode;
	outputAreaLight: OutputAreaLightJsNode;
	outputDirectionalLight: OutputDirectionalLightJsNode;
	outputHemisphereLight: OutputHemisphereLightJsNode;
	outputPointLight: OutputPointLightJsNode;
	outputSpotLight: OutputSpotLightJsNode;
	param: ParamJsNode;
	particlesSystemReset: ParticlesSystemResetJsNode;
	particlesSystemStepSimulation: ParticlesSystemStepSimulationJsNode;
	pauseAudioSource: PauseAudioSourceJsNode;
	physicsDebugUpdate: PhysicsDebugUpdateJsNode;
	physicsPlayerUpdate: PhysicsPlayerUpdateJsNode;
	physicsRBDAddForce: PhysicsRBDAddForceJsNode;
	physicsRBDAddForceAtPoint: PhysicsRBDAddForceAtPointJsNode;
	physicsRBDAddTorque: PhysicsRBDAddTorqueJsNode;
	physicsRBDApplyImpulse: PhysicsRBDApplyImpulseJsNode;
	physicsRBDApplyTorqueImpulse: PhysicsRBDApplyTorqueImpulseJsNode;
	physicsRBDApplyImpulseAtPoint: PhysicsRBDApplyImpulseAtPointJsNode;
	physicsRBDResetAll: PhysicsRBDResetAllJsNode;
	physicsRBDResetForces: PhysicsRBDResetForcesJsNode;
	physicsRBDResetTorques: PhysicsRBDResetTorquesJsNode;
	physicsWorldReset: PhysicsWorldResetJsNode;
	physicsWorldStepSimulation: PhysicsWorldStepSimulationJsNode;
	plane: PlaneJsNode;
	playAnimation: PlayAnimationJsNode;
	playAudioSource: PlayAudioSourceJsNode;
	playerMode: PlayerModeJsNode;
	playInstrumentNote: PlayInstrumentNoteJsNode;
	playerUpdate: PlayerUpdateJsNode;
	polarTransform: PolarTransformJsNode;
	pow: PowJsNode;
	pressButtonParam: PressButtonParamJsNode;
	previousValue: PreviousValueJsNode;
	primitiveNeighbourIndex: PrimitiveNeighbourIndexJsNode;
	primitiveNeighboursCount: PrimitiveNeighboursCountJsNode;
	quaternion: QuaternionJsNode;
	quaternionAngleTo: QuaternionAngleToJsNode;
	quaternionSlerp: QuaternionSlerpJsNode;
	radToDeg: RadToDegJsNode;
	rand: RandJsNode;
	random: RandomJsNode;
	ray: RayJsNode;
	rayFromCamera: RayFromCameraJsNode;
	rayFromCursor: RayFromCursorJsNode;
	rayIntersectBox: RayIntersectBoxJsNode;
	rayIntersectsBox: RayIntersectsBoxJsNode;
	rayIntersectObject: RayIntersectObjectJsNode;
	rayIntersectsObject: RayIntersectsObjectJsNode;
	rayDistanceToPlane: RayDistanceToPlaneJsNode;
	rayIntersectPlane: RayIntersectPlaneJsNode;
	rayIntersectsPlane: RayIntersectsPlaneJsNode;
	rayIntersectSphere: RayIntersectSphereJsNode;
	rayIntersectsSphere: RayIntersectsSphereJsNode;
	renderPixel: RenderPixelJsNode;
	rotate: RotateJsNode;
	round: RoundJsNode;
	SDF2DBox: SDF2DBoxJsNode;
	SDF2DCircle: SDF2DCircleJsNode;
	SDF2DCross: SDF2DCrossJsNode;
	SDF2DHeart: SDF2DHeartJsNode;
	SDF2DRoundedX: SDF2DRoundedXJsNode;
	SDFBox: SDFBoxJsNode;
	SDFElongate: SDFElongateJsNode;
	SDFIntersect: SDFIntersectJsNode;
	SDFOnion: SDFOnionJsNode;
	SDFPlane: SDFPlaneJsNode;
	SDFRevolution: SDFRevolutionJsNode;
	SDFSphere: SDFSphereJsNode;
	SDFSubtract: SDFSubtractJsNode;
	SDFTorus: SDFTorusJsNode;
	SDFTransform: SDFTransformJsNode;
	SDFTube: SDFTubeJsNode;
	SDFUnion: SDFUnionJsNode;
	setCameraViewOffset: SetCameraViewOffsetJsNode;
	setCSSObjectClass: SetCSSObjectClassJsNode;
	setGeometryInstanceAttribute: SetGeometryInstanceAttributeJsNode;
	setGeometryInstancePositions: SetGeometryInstancePositionsJsNode;
	setGeometryInstanceQuaternions: SetGeometryInstanceQuaternionsJsNode;
	setGeometryInstanceScales: SetGeometryInstanceScalesJsNode;
	setGeometryInstanceTransforms: SetGeometryInstanceTransformsJsNode;
	setGeometryPositions: SetGeometryPositionsJsNode;
	setInstanceAttribute: SetInstanceAttributeJsNode;
	setInstanceLookAt: SetInstanceLookAtJsNode;
	setInstancePosition: SetInstancePositionJsNode;
	setInstanceQuaternion: SetInstanceQuaternionJsNode;
	setInstanceScale: SetInstanceScaleJsNode;
	setMaterialAlphaMap: SetMaterialAlphaMapJsNode;
	setMaterialAOMap: SetMaterialAOMapJsNode;
	setMaterialColor: SetMaterialColorJsNode;
	setMaterialDisplacementMap: SetMaterialDisplacementMapJsNode;
	setMaterialEmissiveColor: SetMaterialEmissiveColorJsNode;
	setMaterialEnvMapJsNode: SetMaterialEnvMapJsNode;
	setMaterialEmissiveMapJsNode: SetMaterialEmissiveMapJsNode;
	setMaterialMap: SetMaterialMapJsNode;
	setMaterialMetalnessMap: SetMaterialMetalnessMapJsNode;
	setMaterialRoughnessMap: SetMaterialRoughnessMapJsNode;
	setMaterialOpacity: SetMaterialOpacityJsNode;
	setMaterialUniform: SetMaterialUniformJsNode;
	setObjectAttribute: SetObjectAttributeJsNode;
	setObjectCastShadow: SetObjectCastShadowJsNode;
	setObjectFrustumCulled: SetObjectFrustumCulledJsNode;
	setObjectLookAt: SetObjectLookAtJsNode;
	setObjectMaterial: SetObjectMaterialJsNode;
	setObjectMaterialColor: SetObjectMaterialColorJsNode;
	setObjectMatrix: SetObjectMatrixJsNode;
	setObjectMatrixAutoUpdate: SetObjectMatrixAutoUpdateJsNode;
	setObjectPosition: SetObjectPositionJsNode;
	setObjectPolarTransform: SetObjectPolarTransformJsNode;
	setObjectQuaternion: SetObjectQuaternionJsNode;
	setObjectRotation: SetObjectRotationJsNode;
	setObjectReceiveShadow: SetObjectReceiveShadowJsNode;
	setObjectScale: SetObjectScaleJsNode;
	setObjectVisible: SetObjectVisibleJsNode;
	setParam: SetParamJsNode;
	setPerspectiveCameraFov: SetPerspectiveCameraFovJsNode;
	setPerspectiveCameraNearFar: SetPerspectiveCameraNearFarJsNode;
	setPhysicsRBDAngularVelocity: SetPhysicsRBDAngularVelocityJsNode;
	setPhysicsRBDLinearVelocity: SetPhysicsRBDLinearVelocityJsNode;
	setPhysicsRBDPosition: SetPhysicsRBDPositionJsNode;
	setPhysicsRBDRotation: SetPhysicsRBDRotationJsNode;
	setPhysicsRBDCapsuleProperty: SetPhysicsRBDCapsulePropertyJsNode;
	setPhysicsRBDConeProperty: SetPhysicsRBDConePropertyJsNode;
	setPhysicsRBDCylinderProperty: SetPhysicsRBDCylinderPropertyJsNode;
	setPhysicsRBDCuboidProperty: SetPhysicsRBDCuboidPropertyJsNode;
	setPhysicsRBDSphereProperty: SetPhysicsRBDSpherePropertyJsNode;
	setPhysicsWorldGravity: SetPhysicsWorldGravityJsNode;
	setPlayerInput: SetPlayerInputJsNode;
	setPointAttribute: SetPointAttributeJsNode;
	setPointPosition: SetPointPositionJsNode;
	setClothConstraintPosition: SetClothConstraintPositionJsNode;
	setSoftBodyPosition: SetSoftBodyPositionJsNode;
	setSoftBodyVelocity: SetSoftBodyVelocityJsNode;
	setSoftBodyConstraintPosition: SetSoftBodyConstraintPositionJsNode;
	setSpotLightIntensity: SetSpotLightIntensityJsNode;
	setViewer: SetViewerJsNode;
	setViewerControls: SetViewerControlsJsNode;
	SetWFCSoftConstraint: SetWFCSoftConstraintJsNode;
	sign: SignJsNode;
	sin: SinJsNode;
	smoothstep: SmoothstepJsNode;
	smootherstep: SmootherstepJsNode;
	softBodySolverStepSimulation: SoftBodySolverStepSimulationJsNode;
	sphere: SphereJsNode;
	sqrt: SqrtJsNode;
	subnet: SubnetJsNode;
	subnetInput: SubnetInputJsNode;
	subnetOutput: SubnetOutputJsNode;
	subtract: SubtractJsNode;
	switch: SwitchJsNode;
	tan: TanJsNode;
	// textureSDF: TextureSDFJsNode;
	trackFace: TrackFaceJsNode;
	trackHand: TrackHandJsNode;
	triggerDelay: TriggerDelayJsNode;
	triggerFilter: TriggerFilterJsNode;
	triggerSwitch: TriggerSwitchJsNode;
	triggerTwoWaySwitch: TriggerTwoWaySwitchJsNode;
	twoWaySwitch: TwoWaySwitchJsNode;
	vector3AngleTo: Vector3AngleToJsNode;
	vector3Project: Vector3ProjectJsNode;
	vector3ProjectOnPlane: Vector3ProjectOnPlaneJsNode;
	vector3Unproject: Vector3UnprojectJsNode;
	vec2ToFloat: Vec2ToFloatJsNode;
	vec2ToVec3: Vec2ToVec3JsNode;
	vec3ToColor: Vec3ToColorJsNode;
	vec3ToFloat: Vec3ToFloatJsNode;
	vec3ToVec2: Vec3ToVec2JsNode;
	vec3ToVec4: Vec3ToVec4JsNode;
	vec4ToFloat: Vec4ToFloatJsNode;
	vec4ToVec3: Vec4ToVec3JsNode;
	vector2: Vector2JsNode;
	vector3: Vector3JsNode;
	vector3ApplyMatrix4: Vector3ApplyMatrix4JsNode;
	vector4: Vector4JsNode;
	WFCBuild: WFCBuildJsNode;
}

import {PolyEngine} from '../../../Poly';
import {SopType} from './types/Sop';
import {NetworkNodeType, NodeContext} from '../../NodeContext';
import {JsType} from './types/Js';

const sopType = (type: SopType) => `${NodeContext.SOP}/${type}`;
const jsType = (type: JsType | NetworkNodeType) => `${NodeContext.JS}/${type}`;
const JS_SUBNET_TYPE = jsType(NetworkNodeType.SUBNET);
const JS_FOR_LOOP_TYPE = jsType(JsType.FOR_LOOP);
const JS_SUBNET_TYPES = [JS_SUBNET_TYPE, JS_FOR_LOOP_TYPE];
const SUBNET_CHILD_OPTION = {
	only: JS_SUBNET_TYPES,
};
const ONLY_WITH_GLOBALS = {
	only: [
		sopType(SopType.ENTITY_BUILDER),
		sopType(SopType.INSTANCE_BUILDER),
		sopType(SopType.OBJECT_BUILDER),
		sopType(SopType.POINT_BUILDER),
		sopType(SopType.SDF_BUILDER),
		sopType(SopType.TET_SOFT_BODY_SOLVER),
	],
};
const ONLY_OBJECT_BUILDER = {
	only: [sopType(SopType.OBJECT_BUILDER), ...JS_SUBNET_TYPES],
};
const ONLY_ENTITY_BUILDERS = {
	only: [
		sopType(SopType.ENTITY_BUILDER),
		sopType(SopType.INSTANCE_BUILDER),
		sopType(SopType.OBJECT_BUILDER),
		sopType(SopType.POINT_BUILDER),
		...JS_SUBNET_TYPES,
	],
};
const ONLY_ENTITY_BUILDER = {
	only: [sopType(SopType.ENTITY_BUILDER), ...JS_SUBNET_TYPES],
};

const ACTOR_OBJECTS = [
	sopType(SopType.ACTOR),
	sopType(SopType.PHYSICS_WORLD),
	sopType(SopType.PHYSICS_DEBUG),
	sopType(SopType.PHYSICS_PLAYER),
	// sopType(SopType.TET_SOFT_BODY_SOLVER),
	...[
		NodeContext.ANIM,
		NodeContext.AUDIO,
		NodeContext.COP,
		NodeContext.EVENT,
		NodeContext.MAT,
		NodeContext.OBJ,
		NodeContext.POST,
		NodeContext.ROP,
		NodeContext.SOP,
	].map((c) => `${c}/${NetworkNodeType.ACTOR}`),
];
const ACTOR_POINTS = [sopType(SopType.ACTOR_POINT)];
const ACTOR_INSTANCES = [sopType(SopType.ACTOR_INSTANCE)];
// const SDF_BUILDERs = [sopType(SopType.SDF_BUILDER)];
const ONLY_ACTOR = {
	only: ACTOR_OBJECTS,
};
const ONLY_ACTOR_POINT = {
	only: ACTOR_POINTS,
};
const ONLY_ACTOR_INSTANCE = {
	only: ACTOR_INSTANCES,
};
const ONLY_ACTOR_AND_POINT = {
	only: [...ACTOR_OBJECTS, ...ACTOR_POINTS, ...ACTOR_INSTANCES],
};
// const ONLY_ACTOR_AND_SDF = {
// 	only: [...ACTOR_OBJECTS, ...SDF_BUILDERs],
// };
export class JsRegister {
	static run(poly: PolyEngine) {
		poly.registerNode(AttributeJsNode, CATEGORY_JS.GLOBALS, ONLY_ENTITY_BUILDERS);
		poly.registerNode(AbsJsNode, CATEGORY_JS.MATH);
		poly.registerNode(AcosJsNode, CATEGORY_JS.MATH);
		poly.registerNode(AddJsNode, CATEGORY_JS.MATH);
		poly.registerNode(AndJsNode, CATEGORY_JS.LOGIC);
		poly.registerNode(AnimationActionJsNode, CATEGORY_JS.ANIMATION, ONLY_ACTOR);
		poly.registerNode(AnimationActionCrossFadeJsNode, CATEGORY_JS.ANIMATION, ONLY_ACTOR);
		poly.registerNode(AnimationActionFadeOutJsNode, CATEGORY_JS.ANIMATION, ONLY_ACTOR);
		poly.registerNode(AnimationActionFadeInJsNode, CATEGORY_JS.ANIMATION, ONLY_ACTOR);
		poly.registerNode(AnimationActionPlayJsNode, CATEGORY_JS.ANIMATION, ONLY_ACTOR);
		poly.registerNode(AnimationActionStopJsNode, CATEGORY_JS.ANIMATION, ONLY_ACTOR);
		poly.registerNode(AnimationMixerJsNode, CATEGORY_JS.ANIMATION, ONLY_ACTOR);
		poly.registerNode(AnimationMixerUpdateJsNode, CATEGORY_JS.ANIMATION, ONLY_ACTOR);
		poly.registerNode(AnyTriggerJsNode, CATEGORY_JS.ANIMATION, ONLY_ACTOR);
		poly.registerNode(ArrayElementJsNode, CATEGORY_JS.CONVERSION);
		poly.registerNode(ArrayLengthJsNode, CATEGORY_JS.LOGIC);
		poly.registerNode(ArrayPopJsNode, CATEGORY_JS.LOGIC);
		poly.registerNode(ArrayShiftJsNode, CATEGORY_JS.LOGIC);
		poly.registerNode(AsinJsNode, CATEGORY_JS.MATH);
		poly.registerNode(AtanJsNode, CATEGORY_JS.MATH);
		poly.registerNode(BoolToIntJsNode, CATEGORY_JS.CONVERSION);
		poly.registerNode(Box3JsNode, CATEGORY_JS.MATH);
		poly.registerNode(Box3ContainsPointJsNode, CATEGORY_JS.MATH);
		poly.registerNode(Box3IntersectsBox3JsNode, CATEGORY_JS.MATH);
		poly.registerNode(Box3SetFromObjectJsNode, CATEGORY_JS.MATH);
		poly.registerNode(CatmullRomCurve3GetPointJsNode, CATEGORY_JS.MATH);
		poly.registerNode(CeilJsNode, CATEGORY_JS.MATH);
		poly.registerNode(ClampJsNode, CATEGORY_JS.MATH);
		poly.registerNode(ClothSolverResetJsNode, CATEGORY_JS.PHYSICS);
		poly.registerNode(ClothSolverStepSimulationJsNode, CATEGORY_JS.PHYSICS);
		poly.registerNode(ClothSolverUpdateMaterialJsNode, CATEGORY_JS.PHYSICS);
		poly.registerNode(CodeJsNode, CATEGORY_JS.ADVANCED, ONLY_ACTOR);
		poly.registerNode(ColorToVec3JsNode, CATEGORY_JS.CONVERSION);
		poly.registerNode(CompareJsNode, CATEGORY_JS.LOGIC);
		poly.registerNode(ComplementJsNode, CATEGORY_JS.MATH);
		poly.registerNode(ComputeVelocityJsNode, CATEGORY_JS.MATH);
		poly.registerNode(ConstantJsNode, CATEGORY_JS.GLOBALS);
		poly.registerNode(CookNodeJsNode, CATEGORY_JS.ACTION, ONLY_ACTOR);
		poly.registerNode(CosJsNode, CATEGORY_JS.MATH);
		poly.registerNode(CreateClothConstraintJsNode, CATEGORY_JS.PHYSICS);
		poly.registerNode(CreateObjectsJsNode, CATEGORY_JS.ACTION);
		poly.registerNode(CreatePhysicsRBDKinematicConstraintJsNode, CATEGORY_JS.PHYSICS);
		poly.registerNode(CreatePhysicsRBDsJsNode, CATEGORY_JS.PHYSICS);
		poly.registerNode(CreateSoftBodyConstraintJsNode, CATEGORY_JS.PHYSICS);
		poly.registerNode(CrossJsNode, CATEGORY_JS.MATH);
		poly.registerNode(CursorJsNode, CATEGORY_JS.INPUTS, ONLY_ACTOR);
		poly.registerNode(CursorToUvJsNode, CATEGORY_JS.INPUTS);
		poly.registerNode(DebugJsNode, CATEGORY_JS.FLOW, ONLY_ACTOR);
		poly.registerNode(DeformGeometryCubeLatticeJsNode, CATEGORY_JS.GEOMETRY, ONLY_ACTOR);
		poly.registerNode(DeleteClothConstraintJsNode, CATEGORY_JS.ACTION, ONLY_ACTOR);
		poly.registerNode(DeleteObjectJsNode, CATEGORY_JS.ACTION, ONLY_ACTOR);
		poly.registerNode(DeletePhysicsRBDJsNode, CATEGORY_JS.ACTION, ONLY_ACTOR);
		poly.registerNode(DeletePhysicsRBDKinematicConstraintJsNode, CATEGORY_JS.ACTION, ONLY_ACTOR);
		poly.registerNode(DeletePhysicsRBDConstraintsJsNode, CATEGORY_JS.ACTION, ONLY_ACTOR);
		poly.registerNode(DeleteSoftBodyConstraintJsNode, CATEGORY_JS.ACTION, ONLY_ACTOR);
		poly.registerNode(DegToRadJsNode, CATEGORY_JS.MATH);
		poly.registerNode(DeviceOrientationJsNode, CATEGORY_JS.GLOBALS, ONLY_ACTOR);
		poly.registerNode(DistanceJsNode, CATEGORY_JS.MATH);
		poly.registerNode(DivideJsNode, CATEGORY_JS.MATH);
		poly.registerNode(DotJsNode, CATEGORY_JS.MATH);
		poly.registerNode(EasingJsNode, CATEGORY_JS.MATH);
		poly.registerNode(ElementsToArrayJsNode, CATEGORY_JS.CONVERSION);
		poly.registerNode(EulerJsNode, CATEGORY_JS.MATH);
		poly.registerNode(EulerFromQuaternionJsNode, CATEGORY_JS.MATH);
		poly.registerNode(FitJsNode, CATEGORY_JS.MATH);
		poly.registerNode(FloatToColorJsNode, CATEGORY_JS.CONVERSION);
		poly.registerNode(FloatToIntJsNode, CATEGORY_JS.CONVERSION);
		poly.registerNode(FloatToVec2JsNode, CATEGORY_JS.CONVERSION);
		poly.registerNode(FloatToVec3JsNode, CATEGORY_JS.CONVERSION);
		poly.registerNode(FloatToVec4JsNode, CATEGORY_JS.CONVERSION);
		poly.registerNode(FloorJsNode, CATEGORY_JS.MATH);
		poly.registerNode(ForLoopJsNode, CATEGORY_JS.FLOW, ONLY_ENTITY_BUILDER);
		poly.registerNode(GeolocationCurrentPositionJsNode, CATEGORY_JS.GLOBALS, ONLY_ACTOR);
		poly.registerNode(GetBox3PropertyJsNode, CATEGORY_JS.MATH);
		poly.registerNode(GetChildrenAttributesJsNode, CATEGORY_JS.GET, ONLY_ACTOR);
		poly.registerNode(GetChildrenPhysicsRBDPropertiesJsNode, CATEGORY_JS.PHYSICS, ONLY_ACTOR);
		poly.registerNode(GetChildrenPropertiesJsNode, CATEGORY_JS.GET, ONLY_ACTOR);
		poly.registerNode(GetDefaultCameraJsNode, CATEGORY_JS.GET, ONLY_ACTOR);
		poly.registerNode(GetGeometryBoundingBoxJsNode, CATEGORY_JS.GET, ONLY_ACTOR);
		poly.registerNode(GetGeometryNodeObjectsJsNode, CATEGORY_JS.GET, ONLY_ACTOR);
		poly.registerNode(GetGeometryPositionsJsNode, CATEGORY_JS.GET, ONLY_ACTOR);
		poly.registerNode(GetIntersectionAttributeJsNode, CATEGORY_JS.GET);
		poly.registerNode(GetIntersectionPropertyJsNode, CATEGORY_JS.GET);
		poly.registerNode(GetInstanceAttributeJsNode, CATEGORY_JS.GET, ONLY_ACTOR_INSTANCE);
		poly.registerNode(GetInstancePropertyJsNode, CATEGORY_JS.GET, ONLY_ACTOR_INSTANCE);
		poly.registerNode(GetMaterialJsNode, CATEGORY_JS.GET, ONLY_ACTOR);
		poly.registerNode(GetObjectChildJsNode, CATEGORY_JS.GET, ONLY_ACTOR);
		poly.registerNode(GetObjectJsNode, CATEGORY_JS.GET, ONLY_ACTOR);
		poly.registerNode(GetObjectAttributeJsNode, CATEGORY_JS.GET, ONLY_ACTOR);
		poly.registerNode(GetObjectPropertyJsNode, CATEGORY_JS.GET);
		poly.registerNode(GetObjectUserDataJsNode, CATEGORY_JS.GET, ONLY_ACTOR);
		poly.registerNode(GetObjectWorldPositionJsNode, CATEGORY_JS.GET, ONLY_ACTOR);
		poly.registerNode(GetNodeJsNode, CATEGORY_JS.GET, ONLY_ACTOR);
		poly.registerNode(GetParamJsNode, CATEGORY_JS.GET, ONLY_ACTOR);
		poly.registerNode(GetParentJsNode, CATEGORY_JS.GET, ONLY_ACTOR);
		poly.registerNode(GetPlanePropertyJsNode, CATEGORY_JS.MATH);
		poly.registerNode(GetPhysicsRBDJsNode, CATEGORY_JS.PHYSICS, ONLY_ACTOR);
		poly.registerNode(GetPhysicsRBDCapsulePropertyJsNode, CATEGORY_JS.PHYSICS, ONLY_ACTOR);
		poly.registerNode(GetPhysicsRBDConePropertyJsNode, CATEGORY_JS.PHYSICS, ONLY_ACTOR);
		poly.registerNode(GetPhysicsRBDCylinderPropertyJsNode, CATEGORY_JS.PHYSICS, ONLY_ACTOR);
		poly.registerNode(GetPhysicsRBDCuboidPropertyJsNode, CATEGORY_JS.PHYSICS, ONLY_ACTOR);
		poly.registerNode(GetPhysicsRBDSpherePropertyJsNode, CATEGORY_JS.PHYSICS, ONLY_ACTOR);
		poly.registerNode(GetPhysicsRBDPropertyJsNode, CATEGORY_JS.PHYSICS, ONLY_ACTOR);
		poly.registerNode(GetRayPropertyJsNode, CATEGORY_JS.MATH);
		poly.registerNode(GetPointAttributeJsNode, CATEGORY_JS.GET, ONLY_ACTOR_POINT);
		poly.registerNode(GetPointPropertyJsNode, CATEGORY_JS.GET, ONLY_ACTOR_POINT);
		poly.registerNode(GetPrimitiveAttributeJsNode, CATEGORY_JS.GET, ONLY_ACTOR);
		poly.registerNode(GetSibblingJsNode, CATEGORY_JS.GET);
		poly.registerNode(GetSpherePropertyJsNode, CATEGORY_JS.MATH);
		poly.registerNode(GetTextureJsNode, CATEGORY_JS.GET, ONLY_ACTOR);
		poly.registerNode(GetTrackedHandPropertyJsNode, CATEGORY_JS.COMPUTER_VISION, ONLY_ACTOR);
		poly.registerNode(GetVideoPropertyJsNode, CATEGORY_JS.GET, ONLY_ACTOR);
		poly.registerNode(GetWebXRARSessionPropertyJsNode, CATEGORY_JS.WEBXR, ONLY_ACTOR);
		poly.registerNode(GetWebXRControllerPropertyJsNode, CATEGORY_JS.WEBXR, ONLY_ACTOR);
		poly.registerNode(GetWebXRTrackedMarkerPropertyJsNode, CATEGORY_JS.WEBXR, ONLY_ACTOR);
		poly.registerNode(GlobalsJsNode, CATEGORY_JS.GLOBALS, ONLY_WITH_GLOBALS);
		poly.registerNode(GlobalsAmbientLightJsNode, CATEGORY_JS.GLOBALS, ONLY_OBJECT_BUILDER);
		poly.registerNode(GlobalsAreaLightJsNode, CATEGORY_JS.GLOBALS, ONLY_OBJECT_BUILDER);
		poly.registerNode(GlobalsDirectionalLightJsNode, CATEGORY_JS.GLOBALS, ONLY_OBJECT_BUILDER);
		poly.registerNode(GlobalsHemisphereLightJsNode, CATEGORY_JS.GLOBALS, ONLY_OBJECT_BUILDER);
		poly.registerNode(GlobalsPointLightJsNode, CATEGORY_JS.GLOBALS, ONLY_OBJECT_BUILDER);
		poly.registerNode(GlobalsSpotLightJsNode, CATEGORY_JS.GLOBALS, ONLY_OBJECT_BUILDER);
		poly.registerNode(HsvToRgbJsNode, CATEGORY_JS.CONVERSION);
		poly.registerNode(ImportAttributeJsNode, CATEGORY_JS.GLOBALS, ONLY_ENTITY_BUILDER);
		poly.registerNode(IntToBoolJsNode, CATEGORY_JS.CONVERSION);
		poly.registerNode(IntToFloatJsNode, CATEGORY_JS.CONVERSION);
		poly.registerNode(IsDefinedJsNode, CATEGORY_JS.FLOW);
		poly.registerNode(IsTouchDeviceJsNode, CATEGORY_JS.FLOW);
		poly.registerNode(KeyframesJsNode, CATEGORY_JS.ANIMATION);
		poly.registerNode(LengthJsNode, CATEGORY_JS.MATH);
		poly.registerNode(LerpJsNode, CATEGORY_JS.MATH);
		poly.registerNode(ManhattanDistanceJsNode, CATEGORY_JS.MATH);
		poly.registerNode(Matrix4LookAtJsNode, CATEGORY_JS.MATH);
		poly.registerNode(Matrix4MakeTranslationJsNode, CATEGORY_JS.MATH);
		poly.registerNode(Matrix4MultiplyJsNode, CATEGORY_JS.MATH);
		poly.registerNode(MaxJsNode, CATEGORY_JS.MATH);
		poly.registerNode(MaxLengthJsNode, CATEGORY_JS.MATH);
		poly.registerNode(MinJsNode, CATEGORY_JS.MATH);
		poly.registerNode(MixJsNode, CATEGORY_JS.MATH);
		poly.registerNode(ModJsNode, CATEGORY_JS.MATH);
		poly.registerNode(MultJsNode, CATEGORY_JS.MATH);
		poly.registerNode(MultAddJsNode, CATEGORY_JS.MATH);
		poly.registerNode(MultScalarJsNode, CATEGORY_JS.MATH);
		poly.registerNode(NearestPositionJsNode, CATEGORY_JS.MATH);
		poly.registerNode(NegateJsNode, CATEGORY_JS.MATH);
		poly.registerNode(NoiseImprovedJsNode, CATEGORY_JS.MATH);
		poly.registerNode(NoiseSimplexJsNode, CATEGORY_JS.MATH);
		poly.registerNode(NormalizeJsNode, CATEGORY_JS.MATH);
		poly.registerNode(NullJsNode, CATEGORY_JS.FLOW);
		poly.registerNode(Object3DLocalToWorldJsNode, CATEGORY_JS.GET, ONLY_ACTOR);
		poly.registerNode(Object3DWorldToLocalJsNode, CATEGORY_JS.GET, ONLY_ACTOR);
		poly.registerNode(Object3DUpdateMatrixJsNode, CATEGORY_JS.GET, ONLY_ACTOR);
		poly.registerNode(Object3DUpdateWorldMatrixJsNode, CATEGORY_JS.GET, ONLY_ACTOR);
		poly.registerNode(ObjectDispatchEventJsNode, CATEGORY_JS.GET, ONLY_ACTOR);
		poly.registerNode(OnChildAttributeUpdateJsNode, CATEGORY_JS.EVENTS, ONLY_ACTOR);
		poly.registerNode(OnKeyJsNode, CATEGORY_JS.EVENTS, ONLY_ACTOR);
		poly.registerNode(OnKeydownJsNode, CATEGORY_JS.EVENTS, ONLY_ACTOR);
		poly.registerNode(OnKeypressJsNode, CATEGORY_JS.EVENTS, ONLY_ACTOR);
		poly.registerNode(OnKeyupJsNode, CATEGORY_JS.EVENTS, ONLY_ACTOR);
		poly.registerNode(OnManualTriggerJsNode, CATEGORY_JS.EVENTS, ONLY_ACTOR);
		poly.registerNode(OnMapboxCameraMoveJsNode, CATEGORY_JS.EVENTS, ONLY_ACTOR);
		poly.registerNode(OnMapboxCameraMoveEndJsNode, CATEGORY_JS.EVENTS, ONLY_ACTOR);
		poly.registerNode(OnMapboxCameraMoveStartJsNode, CATEGORY_JS.EVENTS, ONLY_ACTOR);
		poly.registerNode(OnObjectAttributeUpdateJsNode, CATEGORY_JS.EVENTS, ONLY_ACTOR);
		poly.registerNode(OnObjectBeforeDeleteJsNode, CATEGORY_JS.EVENTS, ONLY_ACTOR);
		poly.registerNode(OnObjectClickJsNode, CATEGORY_JS.EVENTS, ONLY_ACTOR);
		poly.registerNode(OnObjectClickGPUJsNode, CATEGORY_JS.EVENTS, ONLY_ACTOR);
		poly.registerNode(OnObjectContextMenuJsNode, CATEGORY_JS.EVENTS, ONLY_ACTOR);
		poly.registerNode(OnObjectContextMenuGPUJsNode, CATEGORY_JS.EVENTS, ONLY_ACTOR);
		poly.registerNode(OnObjectDoubleClickJsNode, CATEGORY_JS.EVENTS, ONLY_ACTOR);
		poly.registerNode(OnObjectDispatchEventJsNode, CATEGORY_JS.EVENTS, ONLY_ACTOR);
		poly.registerNode(OnObjectHoverJsNode, CATEGORY_JS.EVENTS, ONLY_ACTOR);
		poly.registerNode(OnObjectHoverGPUJsNode, CATEGORY_JS.EVENTS, ONLY_ACTOR);
		poly.registerNode(OnObjectLongPressJsNode, CATEGORY_JS.EVENTS, ONLY_ACTOR);
		poly.registerNode(OnObjectLongPressGPUJsNode, CATEGORY_JS.EVENTS, ONLY_ACTOR);
		poly.registerNode(OnObjectMouseClickJsNode, CATEGORY_JS.EVENTS, ONLY_ACTOR);
		poly.registerNode(OnObjectPointerdownJsNode, CATEGORY_JS.EVENTS, ONLY_ACTOR);
		poly.registerNode(OnObjectPointerdownGPUJsNode, CATEGORY_JS.EVENTS, ONLY_ACTOR);
		poly.registerNode(OnObjectPointerupJsNode, CATEGORY_JS.EVENTS, ONLY_ACTOR);
		poly.registerNode(OnObjectPointerupGPUJsNode, CATEGORY_JS.EVENTS, ONLY_ACTOR);
		poly.registerNode(OnObjectSwipeJsNode, CATEGORY_JS.EVENTS, ONLY_ACTOR);
		poly.registerNode(OnObjectSwipeGPUJsNode, CATEGORY_JS.EVENTS, ONLY_ACTOR);
		// poly.registerNode(OnObjectSwipedownJsNode, CATEGORY_JS.EVENTS, ONLY_ACTOR);
		// poly.registerNode(OnObjectSwipeleftJsNode, CATEGORY_JS.EVENTS, ONLY_ACTOR);
		// poly.registerNode(OnObjectSwiperightJsNode, CATEGORY_JS.EVENTS, ONLY_ACTOR);
		// poly.registerNode(OnObjectSwipeupJsNode, CATEGORY_JS.EVENTS, ONLY_ACTOR);
		poly.registerNode(OnPerformanceChangeJsNode, CATEGORY_JS.EVENTS, ONLY_ACTOR);
		poly.registerNode(OnPointerdownJsNode, CATEGORY_JS.EVENTS, ONLY_ACTOR);
		poly.registerNode(OnPointerupJsNode, CATEGORY_JS.EVENTS, ONLY_ACTOR);
		poly.registerNode(OnScenePauseJsNode, CATEGORY_JS.EVENTS, ONLY_ACTOR);
		poly.registerNode(OnScenePlayJsNode, CATEGORY_JS.EVENTS, ONLY_ACTOR);
		poly.registerNode(OnSceneResetJsNode, CATEGORY_JS.EVENTS, ONLY_ACTOR);
		poly.registerNode(OnScrollJsNode, CATEGORY_JS.EVENTS, ONLY_ACTOR);
		poly.registerNode(OnTickJsNode, CATEGORY_JS.EVENTS, ONLY_ACTOR_AND_POINT);
		poly.registerNode(OnVideoEventJsNode, CATEGORY_JS.EVENTS, ONLY_ACTOR);
		poly.registerNode(OnViewerControlsEventJsNode, CATEGORY_JS.EVENTS, ONLY_ACTOR);
		poly.registerNode(OnWebXRControllerEventJsNode, CATEGORY_JS.EVENTS, ONLY_ACTOR);
		poly.registerNode(OrJsNode, CATEGORY_JS.LOGIC);
		poly.registerNode(OutputJsNode, CATEGORY_JS.GLOBALS, ONLY_WITH_GLOBALS);
		poly.registerNode(OutputAmbientLightJsNode, CATEGORY_JS.GLOBALS, ONLY_OBJECT_BUILDER);
		poly.registerNode(OutputAreaLightJsNode, CATEGORY_JS.GLOBALS, ONLY_OBJECT_BUILDER);
		poly.registerNode(OutputDirectionalLightJsNode, CATEGORY_JS.GLOBALS, ONLY_OBJECT_BUILDER);
		poly.registerNode(OutputHemisphereLightJsNode, CATEGORY_JS.GLOBALS, ONLY_OBJECT_BUILDER);
		poly.registerNode(OutputPointLightJsNode, CATEGORY_JS.GLOBALS, ONLY_OBJECT_BUILDER);
		poly.registerNode(OutputSpotLightJsNode, CATEGORY_JS.GLOBALS, ONLY_OBJECT_BUILDER);
		poly.registerNode(ParamJsNode, CATEGORY_JS.GLOBALS);
		poly.registerNode(ParticlesSystemResetJsNode, CATEGORY_JS.PARTICLES, ONLY_ACTOR);
		poly.registerNode(ParticlesSystemStepSimulationJsNode, CATEGORY_JS.PARTICLES, ONLY_ACTOR);
		poly.registerNode(PauseAudioSourceJsNode, CATEGORY_JS.AUDIO, ONLY_ACTOR);
		poly.registerNode(PhysicsDebugUpdateJsNode, CATEGORY_JS.PHYSICS, ONLY_ACTOR);
		poly.registerNode(PhysicsPlayerUpdateJsNode, CATEGORY_JS.PHYSICS, ONLY_ACTOR);
		poly.registerNode(PhysicsRBDAddForceJsNode, CATEGORY_JS.PHYSICS, ONLY_ACTOR);
		poly.registerNode(PhysicsRBDAddForceAtPointJsNode, CATEGORY_JS.PHYSICS, ONLY_ACTOR);
		poly.registerNode(PhysicsRBDAddTorqueJsNode, CATEGORY_JS.PHYSICS, ONLY_ACTOR);
		poly.registerNode(PhysicsRBDApplyImpulseJsNode, CATEGORY_JS.PHYSICS, ONLY_ACTOR);
		poly.registerNode(PhysicsRBDApplyTorqueImpulseJsNode, CATEGORY_JS.PHYSICS, ONLY_ACTOR);
		poly.registerNode(PhysicsRBDApplyImpulseAtPointJsNode, CATEGORY_JS.PHYSICS, ONLY_ACTOR);
		poly.registerNode(PhysicsRBDResetAllJsNode, CATEGORY_JS.PHYSICS, ONLY_ACTOR);
		poly.registerNode(PhysicsRBDResetForcesJsNode, CATEGORY_JS.PHYSICS, ONLY_ACTOR);
		poly.registerNode(PhysicsRBDResetTorquesJsNode, CATEGORY_JS.PHYSICS, ONLY_ACTOR);
		poly.registerNode(PhysicsWorldResetJsNode, CATEGORY_JS.PHYSICS, ONLY_ACTOR);
		poly.registerNode(PhysicsWorldStepSimulationJsNode, CATEGORY_JS.PHYSICS, ONLY_ACTOR);
		poly.registerNode(PlaneJsNode, CATEGORY_JS.MATH);
		poly.registerNode(PlayAnimationJsNode, CATEGORY_JS.ACTION, ONLY_ACTOR);
		poly.registerNode(PlayAudioSourceJsNode, CATEGORY_JS.AUDIO, ONLY_ACTOR);
		poly.registerNode(PlayInstrumentNoteJsNode, CATEGORY_JS.AUDIO, ONLY_ACTOR);
		poly.registerNode(PlayerModeJsNode, CATEGORY_JS.LOGIC);
		poly.registerNode(PlayerUpdateJsNode, CATEGORY_JS.ACTION, ONLY_ACTOR);
		poly.registerNode(PolarTransformJsNode, CATEGORY_JS.MATH);
		poly.registerNode(PowJsNode, CATEGORY_JS.MATH);
		poly.registerNode(PressButtonParamJsNode, CATEGORY_JS.ACTION, ONLY_ACTOR);
		poly.registerNode(PreviousValueJsNode, CATEGORY_JS.ADVANCED, ONLY_ACTOR);
		poly.registerNode(PrimitiveNeighbourIndexJsNode, CATEGORY_JS.ADVANCED, ONLY_ENTITY_BUILDER);
		poly.registerNode(PrimitiveNeighboursCountJsNode, CATEGORY_JS.ADVANCED, ONLY_ENTITY_BUILDER);
		poly.registerNode(QuaternionJsNode, CATEGORY_JS.MATH);
		poly.registerNode(QuaternionAngleToJsNode, CATEGORY_JS.MATH);
		poly.registerNode(QuaternionSlerpJsNode, CATEGORY_JS.MATH);
		poly.registerNode(RadToDegJsNode, CATEGORY_JS.MATH);
		poly.registerNode(RandJsNode, CATEGORY_JS.MATH);
		poly.registerNode(RandomJsNode, CATEGORY_JS.MATH);
		poly.registerNode(RayJsNode, CATEGORY_JS.MATH);
		poly.registerNode(RayFromCameraJsNode, CATEGORY_JS.INPUTS);
		poly.registerNode(RayFromCursorJsNode, CATEGORY_JS.INPUTS);
		poly.registerNode(RayIntersectBoxJsNode, CATEGORY_JS.MATH);
		poly.registerNode(RayIntersectsBoxJsNode, CATEGORY_JS.MATH);
		poly.registerNode(RayIntersectObjectJsNode, CATEGORY_JS.MATH);
		poly.registerNode(RayIntersectsObjectJsNode, CATEGORY_JS.MATH);
		poly.registerNode(RayDistanceToPlaneJsNode, CATEGORY_JS.MATH);
		poly.registerNode(RayIntersectPlaneJsNode, CATEGORY_JS.MATH);
		poly.registerNode(RayIntersectsPlaneJsNode, CATEGORY_JS.MATH);
		poly.registerNode(RayIntersectSphereJsNode, CATEGORY_JS.MATH);
		poly.registerNode(RayIntersectsSphereJsNode, CATEGORY_JS.MATH);
		poly.registerNode(RenderPixelJsNode, CATEGORY_JS.ADVANCED, ONLY_ACTOR);
		poly.registerNode(RotateJsNode, CATEGORY_JS.MATH);
		poly.registerNode(RoundJsNode, CATEGORY_JS.MATH);
		poly.registerNode(SDF2DBoxJsNode, CATEGORY_JS.SDF_PRIMITIVES_2D);
		poly.registerNode(SDF2DCircleJsNode, CATEGORY_JS.SDF_PRIMITIVES_2D);
		poly.registerNode(SDF2DCrossJsNode, CATEGORY_JS.SDF_PRIMITIVES_2D);
		poly.registerNode(SDF2DHeartJsNode, CATEGORY_JS.SDF_PRIMITIVES_2D);
		poly.registerNode(SDF2DRoundedXJsNode, CATEGORY_JS.SDF_PRIMITIVES_2D);
		poly.registerNode(SDFBoxJsNode, CATEGORY_JS.SDF_PRIMITIVES);
		poly.registerNode(SDFElongateJsNode, CATEGORY_JS.SDF_MODIFIERS);
		poly.registerNode(SDFIntersectJsNode, CATEGORY_JS.SDF_MODIFIERS);
		poly.registerNode(SDFOnionJsNode, CATEGORY_JS.SDF_PRIMITIVES);
		poly.registerNode(SDFPlaneJsNode, CATEGORY_JS.SDF_PRIMITIVES);
		poly.registerNode(SDFRevolutionJsNode, CATEGORY_JS.SDF_MODIFIERS);
		poly.registerNode(SDFSphereJsNode, CATEGORY_JS.SDF_PRIMITIVES);
		poly.registerNode(SDFSubtractJsNode, CATEGORY_JS.SDF_MODIFIERS);
		poly.registerNode(SDFTorusJsNode, CATEGORY_JS.SDF_PRIMITIVES);
		poly.registerNode(SDFTransformJsNode, CATEGORY_JS.SDF_PRIMITIVES);
		poly.registerNode(SDFTubeJsNode, CATEGORY_JS.SDF_PRIMITIVES);
		poly.registerNode(SDFUnionJsNode, CATEGORY_JS.SDF_MODIFIERS);
		poly.registerNode(SetCameraViewOffsetJsNode, CATEGORY_JS.ACTION, ONLY_ACTOR);
		poly.registerNode(SetClothConstraintPositionJsNode, CATEGORY_JS.EVENTS, ONLY_ACTOR);
		poly.registerNode(SetCSSObjectClassJsNode, CATEGORY_JS.ACTION, ONLY_ACTOR);
		poly.registerNode(SetGeometryInstanceAttributeJsNode, CATEGORY_JS.ACTION, ONLY_ACTOR);
		poly.registerNode(SetGeometryInstancePositionsJsNode, CATEGORY_JS.ACTION, ONLY_ACTOR);
		poly.registerNode(SetGeometryInstanceQuaternionsJsNode, CATEGORY_JS.ACTION, ONLY_ACTOR);
		poly.registerNode(SetGeometryInstanceScalesJsNode, CATEGORY_JS.ACTION, ONLY_ACTOR);
		poly.registerNode(SetGeometryInstanceTransformsJsNode, CATEGORY_JS.ACTION, ONLY_ACTOR);
		poly.registerNode(SetGeometryPositionsJsNode, CATEGORY_JS.ACTION, ONLY_ACTOR);
		poly.registerNode(SetInstanceAttributeJsNode, CATEGORY_JS.ACTION, ONLY_ACTOR_INSTANCE);
		poly.registerNode(SetInstanceLookAtJsNode, CATEGORY_JS.ACTION, ONLY_ACTOR_INSTANCE);
		poly.registerNode(SetInstancePositionJsNode, CATEGORY_JS.ACTION, ONLY_ACTOR_INSTANCE);
		poly.registerNode(SetInstanceQuaternionJsNode, CATEGORY_JS.ACTION, ONLY_ACTOR_INSTANCE);
		poly.registerNode(SetInstanceScaleJsNode, CATEGORY_JS.ACTION, ONLY_ACTOR_INSTANCE);
		poly.registerNode(SetMaterialAlphaMapJsNode, CATEGORY_JS.ACTION, ONLY_ACTOR);
		poly.registerNode(SetMaterialAOMapJsNode, CATEGORY_JS.ACTION, ONLY_ACTOR);
		poly.registerNode(SetMaterialColorJsNode, CATEGORY_JS.ACTION, ONLY_ACTOR);
		poly.registerNode(SetMaterialDisplacementMapJsNode, CATEGORY_JS.ACTION, ONLY_ACTOR);
		poly.registerNode(SetMaterialEmissiveColorJsNode, CATEGORY_JS.ACTION, ONLY_ACTOR);
		poly.registerNode(SetMaterialEnvMapJsNode, CATEGORY_JS.ACTION, ONLY_ACTOR);
		poly.registerNode(SetMaterialEmissiveMapJsNode, CATEGORY_JS.ACTION, ONLY_ACTOR);
		poly.registerNode(SetMaterialMapJsNode, CATEGORY_JS.ACTION, ONLY_ACTOR);
		poly.registerNode(SetMaterialMetalnessMapJsNode, CATEGORY_JS.ACTION, ONLY_ACTOR);
		poly.registerNode(SetMaterialOpacityJsNode, CATEGORY_JS.ACTION, ONLY_ACTOR);
		poly.registerNode(SetMaterialRoughnessMapJsNode, CATEGORY_JS.ACTION, ONLY_ACTOR);
		poly.registerNode(SetMaterialUniformJsNode, CATEGORY_JS.ACTION, ONLY_ACTOR);
		poly.registerNode(SetObjectAttributeJsNode, CATEGORY_JS.ACTION, ONLY_ACTOR);
		poly.registerNode(SetObjectCastShadowJsNode, CATEGORY_JS.ACTION, ONLY_ACTOR);
		poly.registerNode(SetObjectFrustumCulledJsNode, CATEGORY_JS.ACTION, ONLY_ACTOR);
		poly.registerNode(SetObjectLookAtJsNode, CATEGORY_JS.ACTION, ONLY_ACTOR);
		poly.registerNode(SetObjectMaterialJsNode, CATEGORY_JS.ACTION, ONLY_ACTOR);
		poly.registerNode(SetObjectMaterialColorJsNode, CATEGORY_JS.ACTION, ONLY_ACTOR);
		poly.registerNode(SetObjectMatrixJsNode, CATEGORY_JS.ACTION, ONLY_ACTOR);
		poly.registerNode(SetObjectMatrixAutoUpdateJsNode, CATEGORY_JS.ACTION, ONLY_ACTOR);
		poly.registerNode(SetObjectPositionJsNode, CATEGORY_JS.ACTION, ONLY_ACTOR);
		poly.registerNode(SetObjectPolarTransformJsNode, CATEGORY_JS.ACTION, ONLY_ACTOR);
		poly.registerNode(SetObjectQuaternionJsNode, CATEGORY_JS.ACTION, ONLY_ACTOR);
		poly.registerNode(SetObjectReceiveShadowJsNode, CATEGORY_JS.ACTION, ONLY_ACTOR);
		poly.registerNode(SetObjectRotationJsNode, CATEGORY_JS.ACTION, ONLY_ACTOR);
		poly.registerNode(SetObjectScaleJsNode, CATEGORY_JS.ACTION, ONLY_ACTOR);
		poly.registerNode(SetObjectVisibleJsNode, CATEGORY_JS.ACTION, ONLY_ACTOR);
		poly.registerNode(SetParamJsNode, CATEGORY_JS.ACTION, ONLY_ACTOR);
		poly.registerNode(SetPerspectiveCameraFovJsNode, CATEGORY_JS.ACTION, ONLY_ACTOR);
		poly.registerNode(SetPerspectiveCameraNearFarJsNode, CATEGORY_JS.ACTION, ONLY_ACTOR);
		poly.registerNode(SetPhysicsRBDAngularVelocityJsNode, CATEGORY_JS.PHYSICS, ONLY_ACTOR);
		poly.registerNode(SetPhysicsRBDLinearVelocityJsNode, CATEGORY_JS.PHYSICS, ONLY_ACTOR);
		poly.registerNode(SetPhysicsRBDPositionJsNode, CATEGORY_JS.PHYSICS, ONLY_ACTOR);
		poly.registerNode(SetPhysicsRBDRotationJsNode, CATEGORY_JS.PHYSICS, ONLY_ACTOR);
		poly.registerNode(SetPhysicsRBDCapsulePropertyJsNode, CATEGORY_JS.PHYSICS, ONLY_ACTOR);
		poly.registerNode(SetPhysicsRBDConePropertyJsNode, CATEGORY_JS.PHYSICS, ONLY_ACTOR);
		poly.registerNode(SetPhysicsRBDCylinderPropertyJsNode, CATEGORY_JS.PHYSICS, ONLY_ACTOR);
		poly.registerNode(SetPhysicsRBDCuboidPropertyJsNode, CATEGORY_JS.PHYSICS, ONLY_ACTOR);
		poly.registerNode(SetPhysicsRBDSpherePropertyJsNode, CATEGORY_JS.PHYSICS, ONLY_ACTOR);
		poly.registerNode(SetPhysicsWorldGravityJsNode, CATEGORY_JS.PHYSICS, ONLY_ACTOR);
		poly.registerNode(SetPlayerInputJsNode, CATEGORY_JS.EVENTS, ONLY_ACTOR);
		poly.registerNode(SetPointAttributeJsNode, CATEGORY_JS.ACTION, ONLY_ACTOR_POINT);
		poly.registerNode(SetPointPositionJsNode, CATEGORY_JS.ACTION, ONLY_ACTOR_POINT);
		poly.registerNode(SetSoftBodyPositionJsNode, CATEGORY_JS.EVENTS, ONLY_ACTOR);
		poly.registerNode(SetSoftBodyVelocityJsNode, CATEGORY_JS.EVENTS, ONLY_ACTOR);
		poly.registerNode(SetSoftBodyConstraintPositionJsNode, CATEGORY_JS.EVENTS, ONLY_ACTOR);
		poly.registerNode(SetSpotLightIntensityJsNode, CATEGORY_JS.PHYSICS, ONLY_ACTOR);
		poly.registerNode(SetViewerJsNode, CATEGORY_JS.ACTION, ONLY_ACTOR);
		poly.registerNode(SetViewerControlsJsNode, CATEGORY_JS.ACTION, ONLY_ACTOR);
		if (process.env.NODE_ENV == 'development') {
			poly.registerNode(SetWFCSoftConstraintJsNode, CATEGORY_JS.WFC, ONLY_ACTOR);
		}
		poly.registerNode(SignJsNode, CATEGORY_JS.MATH);
		poly.registerNode(SinJsNode, CATEGORY_JS.MATH);
		poly.registerNode(SmoothstepJsNode, CATEGORY_JS.MATH);
		poly.registerNode(SmootherstepJsNode, CATEGORY_JS.MATH);
		poly.registerNode(SoftBodySolverStepSimulationJsNode, CATEGORY_JS.PHYSICS);
		poly.registerNode(SphereJsNode, CATEGORY_JS.MATH);
		poly.registerNode(SqrtJsNode, CATEGORY_JS.MATH);
		poly.registerNode(SubnetJsNode, CATEGORY_JS.LOGIC);
		poly.registerNode(SubnetInputJsNode, CATEGORY_JS.LOGIC, SUBNET_CHILD_OPTION);
		poly.registerNode(SubnetOutputJsNode, CATEGORY_JS.LOGIC, SUBNET_CHILD_OPTION);
		poly.registerNode(SubtractJsNode, CATEGORY_JS.MATH);
		poly.registerNode(SwitchJsNode, CATEGORY_JS.LOGIC);
		poly.registerNode(TanJsNode, CATEGORY_JS.MATH);
		// poly.registerNode(TextureSDFJsNode, CATEGORY_JS.SDF_PRIMITIVES);
		poly.registerNode(TrackFaceJsNode, CATEGORY_JS.COMPUTER_VISION);
		poly.registerNode(TrackHandJsNode, CATEGORY_JS.COMPUTER_VISION);
		poly.registerNode(TriggerDelayJsNode, CATEGORY_JS.FLOW, ONLY_ACTOR);
		poly.registerNode(TriggerFilterJsNode, CATEGORY_JS.FLOW, ONLY_ACTOR);
		poly.registerNode(TriggerSwitchJsNode, CATEGORY_JS.FLOW, ONLY_ACTOR_AND_POINT);
		poly.registerNode(TriggerTwoWaySwitchJsNode, CATEGORY_JS.FLOW, ONLY_ACTOR_AND_POINT);
		poly.registerNode(TwoWaySwitchJsNode, CATEGORY_JS.LOGIC);
		poly.registerNode(Vector3AngleToJsNode, CATEGORY_JS.MATH);
		poly.registerNode(Vector3ProjectJsNode, CATEGORY_JS.MATH);
		poly.registerNode(Vector3ProjectOnPlaneJsNode, CATEGORY_JS.MATH);
		poly.registerNode(Vector3UnprojectJsNode, CATEGORY_JS.MATH);
		poly.registerNode(Vec2ToFloatJsNode, CATEGORY_JS.CONVERSION);
		poly.registerNode(Vec2ToVec3JsNode, CATEGORY_JS.CONVERSION);
		poly.registerNode(Vec3ToFloatJsNode, CATEGORY_JS.CONVERSION);
		poly.registerNode(Vec3ToColorJsNode, CATEGORY_JS.CONVERSION);
		poly.registerNode(Vec3ToVec2JsNode, CATEGORY_JS.CONVERSION);
		poly.registerNode(Vec3ToVec4JsNode, CATEGORY_JS.CONVERSION);
		poly.registerNode(Vec4ToFloatJsNode, CATEGORY_JS.CONVERSION);
		poly.registerNode(Vec4ToVec3JsNode, CATEGORY_JS.CONVERSION);
		poly.registerNode(Vector2JsNode, CATEGORY_JS.MATH);
		poly.registerNode(Vector3JsNode, CATEGORY_JS.MATH);
		poly.registerNode(Vector3ApplyMatrix4JsNode, CATEGORY_JS.MATH);
		poly.registerNode(Vector4JsNode, CATEGORY_JS.MATH);
		if (process.env.NODE_ENV == 'development') {
			poly.registerNode(WFCBuildJsNode, CATEGORY_JS.WFC);
		}
	}
}
