UNPKG

@polygonjs/polygonjs

Version:

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

404 lines (403 loc) 23.7 kB
"use strict"; import { CATEGORY_GL } from "./Category"; import { FloatToIntGlNode, IntToFloatGlNode, IntToBoolGlNode, BoolToIntGlNode } from "../../../nodes/gl/_ConversionMisc"; import { FloatToVec2GlNode, FloatToVec3GlNode, FloatToVec4GlNode } from "../../../nodes/gl/_ConversionToVec"; import { Vec2ToFloatGlNode, Vec3ToFloatGlNode, Vec4ToFloatGlNode, Vec4ToVec3GlNode, Vec3ToVec4GlNode, Vec3ToVec2GlNode, Vec2ToVec3GlNode } from "../../../nodes/gl/_ConversionVecTo"; import { AbsGlNode, AcosGlNode, AsinGlNode, AtanGlNode, CeilGlNode, CosGlNode, DegreesGlNode, ExpGlNode, Exp2GlNode, FloorGlNode, FractGlNode, InverseSqrtGlNode, LogGlNode, Log2GlNode, NormalizeGlNode, RadiansGlNode, SignGlNode, SinGlNode, SqrtGlNode, TanGlNode } from "../../../nodes/gl/_Math_Arg1"; import { DistanceGlNode, DotGlNode, MaxGlNode, MinGlNode, ModGlNode, PowGlNode, ReflectGlNode, StepGlNode } from "../../../nodes/gl/_Math_Arg2"; import { ClampGlNode, FaceforwardGlNode, SmoothstepGlNode } from "../../../nodes/gl/_Math_Arg3"; import { AddGlNode, DivideGlNode, MultGlNode, SubtractGlNode } from "../../../nodes/gl/_Math_Arg2Operation"; import { AndGlNode, OrGlNode } from "../../../nodes/gl/_Math_Arg2Boolean"; import { AccelerationGlNode } from "../../../nodes/gl/Acceleration"; import { AdjacentPointsAttribSmoothGlNode } from "../../../nodes/gl/AdjacentPointsAttribSmooth"; import { AdjacentUvAttribSmoothGlNode } from "../../../nodes/gl/AdjacentUvAttribSmooth"; import { AlignGlNode } from "../../../nodes/gl/Align"; import { AttributeGlNode } from "../../../nodes/gl/Attribute"; import { CartesianToPolarGlNode } from "../../../nodes/gl/CartesianToPolar"; import { CheckersGlNode } from "../../../nodes/gl/Checkers"; import { ClothSolverPositionGlNode } from "../../../nodes/gl/ClothSolverPosition"; import { ClothSolverUvGlNode } from "../../../nodes/gl/ClothSolverUv"; import { ColorCorrectGlNode } from "../../../nodes/gl/ColorCorrect"; import { CompareGlNode } from "../../../nodes/gl/Compare"; import { ComplementGlNode } from "../../../nodes/gl/Complement"; import { ComputeNormalsGlNode } from "../../../nodes/gl/ComputeNormals"; import { ConstantGlNode } from "../../../nodes/gl/Constant"; import { CrossGlNode } from "../../../nodes/gl/Cross"; import { CycleGlNode } from "../../../nodes/gl/Cycle"; import { DiskGlNode } from "../../../nodes/gl/Disk"; import { DitherGlNode } from "../../../nodes/gl/Dither"; import { EasingGlNode } from "../../../nodes/gl/Easing"; import { FitGlNode, FitTo01GlNode, FitFrom01GlNode, FitFrom01ToVarianceGlNode } from "../../../nodes/gl/Fit"; import { FogGlNode } from "../../../nodes/gl/Fog"; import { ForLoopGlNode } from "../../../nodes/gl/ForLoop"; import { FresnelGlNode } from "../../../nodes/gl/Fresnel"; import { GeometryAttributeLookupUvGlNode } from "../../../nodes/gl/GeometryAttributeLookupUv"; import { GlobalsGlNode } from "../../../nodes/gl/Globals"; import { GridGlNode } from "../../../nodes/gl/Grid"; import { HsluvToRgbGlNode } from "../../../nodes/gl/HsluvToRgb"; import { HsvToRgbGlNode } from "../../../nodes/gl/HsvToRgb"; import { IfThenGlNode } from "../../../nodes/gl/IfThen"; import { InRangeGlNode } from "../../../nodes/gl/InRange"; import { IsInfOrNanGlNode } from "../../../nodes/gl/IsInfOrNan"; import { ImpostorUvGlNode } from "../../../nodes/gl/ImpostorUv"; import { InstanceTransformGlNode } from "../../../nodes/gl/InstanceTransform"; import { InverseTransformDirectionGlNode } from "../../../nodes/gl/InverseTransformDirection"; import { LengthGlNode } from "../../../nodes/gl/Length"; import { LuminanceGlNode } from "../../../nodes/gl/Luminance"; import { MaxLengthGlNode } from "../../../nodes/gl/MaxLength"; import { MixGlNode } from "../../../nodes/gl/Mix"; import { ModelMatrixMultGlNode } from "../../../nodes/gl/ModelMatrixMult"; import { ModelViewMatrixMultGlNode } from "../../../nodes/gl/ModelViewMatrixMult"; import { MultAddGlNode } from "../../../nodes/gl/MultAdd"; import { MultScalarGlNode } from "../../../nodes/gl/MultScalar"; import { MultVectorMatrixGlNode } from "../../../nodes/gl/MultVectorMatrix"; import { NegateGlNode } from "../../../nodes/gl/Negate"; import { NeighbourAttractGlNode } from "../../../nodes/gl/NeighbourAttract"; import { NeighbourAttractRepulseGlNode } from "../../../nodes/gl/NeighbourAttractRepulse"; import { NeighbourAttribSmoothGlNode } from "../../../nodes/gl/NeighbourAttribSmooth"; import { NeighbourDensityGlNode } from "../../../nodes/gl/NeighbourDensity"; import { NeighbourRepulseGlNode } from "../../../nodes/gl/NeighbourRepulse"; import { NoiseGlNode } from "../../../nodes/gl/Noise"; import { NormalToWorldGlNode } from "../../../nodes/gl/NormalToWorld"; import { NullGlNode } from "../../../nodes/gl/Null"; import { OutputGlNode } from "../../../nodes/gl/Output"; import { ParamGlNode } from "../../../nodes/gl/Param"; import { PositionToWorldGlNode } from "../../../nodes/gl/PositionToWorld"; import { OklabToRgbGlNode } from "../../../nodes/gl/OklabToRgb"; import { PolarToCartesianGlNode } from "../../../nodes/gl/PolarToCartesian"; import { QuatMultGlNode } from "../../../nodes/gl/QuatMult"; import { QuatFromAxisAngleGlNode } from "../../../nodes/gl/QuatFromAxisAngle"; import { QuatSlerpGlNode } from "../../../nodes/gl/QuatSlerp"; import { QuatToAngleGlNode } from "../../../nodes/gl/QuatToAngle"; import { QuatToAxisGlNode } from "../../../nodes/gl/QuatToAxis"; import { RampGlNode } from "../../../nodes/gl/Ramp"; import { RandomGlNode } from "../../../nodes/gl/Random"; import { RefractGlNode } from "../../../nodes/gl/Refract"; import { RgbToHsvGlNode } from "../../../nodes/gl/RgbToHsv"; import { RgbToOklabGlNode } from "../../../nodes/gl/RgbToOklab"; import { RotateGlNode } from "../../../nodes/gl/Rotate"; import { RoundGlNode } from "../../../nodes/gl/Round"; import { SDF2DBoxGlNode } from "../../../nodes/gl/SDF2DBox"; import { SDF2DCircleGlNode } from "../../../nodes/gl/SDF2DCircle"; import { SDF2DCrossGlNode } from "../../../nodes/gl/SDF2DCross"; import { SDF2DHeartGlNode } from "../../../nodes/gl/SDF2DHeart"; import { SDF2DRoundedXGlNode } from "../../../nodes/gl/SDF2DRoundedX"; import { SDF2DStairsGlNode } from "../../../nodes/gl/SDF2DStairs"; import { SDFBoxGlNode } from "../../../nodes/gl/SDFBox"; import { SDFBoxFrameGlNode } from "../../../nodes/gl/SDFBoxFrame"; import { SDFBoxRoundGlNode } from "../../../nodes/gl/SDFBoxRound"; import { SDFCapsuleGlNode } from "../../../nodes/gl/SDFCapsule"; import { SDFCapsuleVerticalGlNode } from "../../../nodes/gl/SDFCapsuleVertical"; import { SDFConeGlNode } from "../../../nodes/gl/SDFCone"; import { SDFConeRoundGlNode } from "../../../nodes/gl/SDFConeRound"; import { SDFContextGlNode } from "../../../nodes/gl/SDFContext"; import { SDFElongateGlNode } from "../../../nodes/gl/SDFElongate"; import { SDFExtrudeGlNode } from "../../../nodes/gl/SDFExtrude"; import { SDFFractalMandelbrotGlNode } from "../../../nodes/gl/SDFFractalMandelbrot"; import { SDFGradientGlNode } from "../../../nodes/gl/SDFGradient"; import { SDFHexagonalPrismGlNode } from "../../../nodes/gl/SDFHexagonalPrism"; import { SDFHorseShoeGlNode } from "../../../nodes/gl/SDFHorseShoe"; import { SDFIntersectGlNode } from "../../../nodes/gl/SDFIntersect"; import { SDFLinkGlNode } from "../../../nodes/gl/SDFLink"; import { SDFMaterialGlNode } from "../../../nodes/gl/SDFMaterial"; import { SDFMaxGlNode } from "../../../nodes/gl/SDFMax"; import { SDFMinGlNode } from "../../../nodes/gl/SDFMin"; import { SDFMirrorGlNode } from "../../../nodes/gl/SDFMirror"; import { SDFOctahedronGlNode } from "../../../nodes/gl/SDFOctahedron"; import { SDFOctogonalPrismGlNode } from "../../../nodes/gl/SDFOctogonalPrism"; import { SDFOnionGlNode } from "../../../nodes/gl/SDFOnion"; import { SDFPlaneGlNode } from "../../../nodes/gl/SDFPlane"; import { SDFPyramidGlNode } from "../../../nodes/gl/SDFPyramid"; import { SDFQuadGlNode } from "../../../nodes/gl/SDFQuad"; import { SDFRepeatGlNode } from "../../../nodes/gl/SDFRepeat"; import { SDFRepeatPolarGlNode } from "../../../nodes/gl/SDFRepeatPolar"; import { SDFRevolutionGlNode } from "../../../nodes/gl/SDFRevolution"; import { SDFRhombusGlNode } from "../../../nodes/gl/SDFRhombus"; import { SDFRhombusTriacontahedronGlNode } from "../../../nodes/gl/SDFRhombusTriacontahedron"; import { SDFSolidAngleGlNode } from "../../../nodes/gl/SDFSolidAngle"; import { SDFSphereGlNode } from "../../../nodes/gl/SDFSphere"; import { SDFSphereCutGlNode } from "../../../nodes/gl/SDFSphereCut"; import { SDFSphereHollowGlNode } from "../../../nodes/gl/SDFSphereHollow"; import { SDFSubtractGlNode } from "../../../nodes/gl/SDFSubtract"; import { SDFTorusGlNode } from "../../../nodes/gl/SDFTorus"; import { SDFTransformGlNode } from "../../../nodes/gl/SDFTransform"; import { SDFTriangleGlNode } from "../../../nodes/gl/SDFTriangle"; import { SDFTriangularPrismGlNode } from "../../../nodes/gl/SDFTriangularPrism"; import { SDFTubeGlNode } from "../../../nodes/gl/SDFTube"; import { SDFTwistGlNode } from "../../../nodes/gl/SDFTwist"; import { SDFUnionGlNode } from "../../../nodes/gl/SDFUnion"; import { SkinningGlNode } from "../../../nodes/gl/Skinning"; import { SSSModelGlNode } from "../../../nodes/gl/SSSModel"; import { SphereGlNode } from "../../../nodes/gl/Sphere"; import { SubnetGlNode } from "../../../nodes/gl/Subnet"; import { SubnetInputGlNode } from "../../../nodes/gl/SubnetInput"; import { SubnetOutputGlNode } from "../../../nodes/gl/SubnetOutput"; import { SwitchGlNode } from "../../../nodes/gl/Switch"; import { TextureGlNode } from "../../../nodes/gl/Texture"; import { Texture2DArrayGlNode } from "../../../nodes/gl/Texture2DArray"; import { TextureDisplacementGlNode } from "../../../nodes/gl/TextureDisplacement"; import { TextureSDFGlNode } from "../../../nodes/gl/TextureSDF"; import { TileUvGlNode } from "../../../nodes/gl/TileUv"; import { ToWorldSpaceGlNode } from "../../../nodes/gl/ToWorldSpace"; import { TwoWaySwitchGlNode } from "../../../nodes/gl/TwoWaySwitch"; import { UvToOklabGlNode } from "../../../nodes/gl/UvToOklab"; import { VaryingWriteGlNode } from "../../../nodes/gl/VaryingWrite"; import { VaryingReadGlNode } from "../../../nodes/gl/VaryingRead"; import { VectorAlignGlNode } from "../../../nodes/gl/VectorAlign"; import { VectorAngleGlNode } from "../../../nodes/gl/VectorAngle"; import { VertexAnimationTextureGlNode } from "../../../nodes/gl/VertexAnimationTexture"; import "../../../nodes/gl/VertexAnimationTextureInterpolated"; import { WavesGlNode } from "../../../nodes/gl/Waves"; import { NodeContext } from "../../NodeContext"; import { CopType } from "./types/Cop"; import { SopType } from "./types/Sop"; const SUBNET_CHILD_OPTION = { only: [ `${ComputeNormalsGlNode.context()}/${ComputeNormalsGlNode.type()}`, `${IfThenGlNode.context()}/${IfThenGlNode.type()}`, `${SubnetGlNode.context()}/${SubnetGlNode.type()}`, `${ForLoopGlNode.context()}/${ForLoopGlNode.type()}`, `${SDFGradientGlNode.context()}/${SDFGradientGlNode.type()}` ] }; const particlesOnlyOption = { only: [`${NodeContext.SOP}/${SopType.PARTICLES_SYSTEM_GPU}`] }; export class GlRegister { static run(poly) { poly.registerNode(AbsGlNode, CATEGORY_GL.MATH); poly.registerNode(AccelerationGlNode, CATEGORY_GL.PHYSICS); poly.registerNode(AcosGlNode, CATEGORY_GL.TRIGO); poly.registerNode(AddGlNode, CATEGORY_GL.MATH); poly.registerNode(AdjacentPointsAttribSmoothGlNode, CATEGORY_GL.ADVANCED, particlesOnlyOption); poly.registerNode(AdjacentUvAttribSmoothGlNode, CATEGORY_GL.ADVANCED, particlesOnlyOption); poly.registerNode(AlignGlNode, CATEGORY_GL.TRIGO); poly.registerNode(AndGlNode, CATEGORY_GL.LOGIC); poly.registerNode(AsinGlNode, CATEGORY_GL.TRIGO); poly.registerNode(AtanGlNode, CATEGORY_GL.TRIGO); poly.registerNode(AttributeGlNode, CATEGORY_GL.GLOBALS, { except: [`${NodeContext.COP}/${CopType.BUILDER}`] }); poly.registerNode(BoolToIntGlNode, CATEGORY_GL.CONVERSION); poly.registerNode(CartesianToPolarGlNode, CATEGORY_GL.MATH); poly.registerNode(CeilGlNode, CATEGORY_GL.MATH); poly.registerNode(ClampGlNode, CATEGORY_GL.MATH); poly.registerNode(CheckersGlNode, CATEGORY_GL.GEOMETRY); poly.registerNode(ClothSolverPositionGlNode, CATEGORY_GL.ADVANCED); poly.registerNode(ClothSolverUvGlNode, CATEGORY_GL.ADVANCED); poly.registerNode(ColorCorrectGlNode, CATEGORY_GL.COLOR); poly.registerNode(CompareGlNode, CATEGORY_GL.LOGIC); poly.registerNode(ComplementGlNode, CATEGORY_GL.MATH); poly.registerNode(ComputeNormalsGlNode, CATEGORY_GL.GEOMETRY); poly.registerNode(ConstantGlNode, CATEGORY_GL.GLOBALS); poly.registerNode(CosGlNode, CATEGORY_GL.TRIGO); poly.registerNode(CrossGlNode, CATEGORY_GL.GEOMETRY); poly.registerNode(CycleGlNode, CATEGORY_GL.MATH); poly.registerNode(DegreesGlNode, CATEGORY_GL.CONVERSION); poly.registerNode(DiskGlNode, CATEGORY_GL.GEOMETRY); poly.registerNode(DistanceGlNode, CATEGORY_GL.GEOMETRY); poly.registerNode(DitherGlNode, CATEGORY_GL.ADVANCED); poly.registerNode(DivideGlNode, CATEGORY_GL.MATH); poly.registerNode(DotGlNode, CATEGORY_GL.GEOMETRY); poly.registerNode(EasingGlNode, CATEGORY_GL.MATH); poly.registerNode(ExpGlNode, CATEGORY_GL.MATH); poly.registerNode(Exp2GlNode, CATEGORY_GL.MATH); poly.registerNode(FaceforwardGlNode, CATEGORY_GL.GEOMETRY); poly.registerNode(FitGlNode, CATEGORY_GL.MATH); poly.registerNode(FitTo01GlNode, CATEGORY_GL.MATH); poly.registerNode(FitFrom01GlNode, CATEGORY_GL.MATH); poly.registerNode(FitFrom01ToVarianceGlNode, CATEGORY_GL.MATH); poly.registerNode(FloatToIntGlNode, CATEGORY_GL.CONVERSION); poly.registerNode(FloatToVec2GlNode, CATEGORY_GL.CONVERSION); poly.registerNode(FloatToVec3GlNode, CATEGORY_GL.CONVERSION); poly.registerNode(FloatToVec4GlNode, CATEGORY_GL.CONVERSION); poly.registerNode(FloorGlNode, CATEGORY_GL.MATH); poly.registerNode(FogGlNode, CATEGORY_GL.COLOR); poly.registerNode(ForLoopGlNode, CATEGORY_GL.LOGIC); poly.registerNode(FractGlNode, CATEGORY_GL.MATH); poly.registerNode(FresnelGlNode, CATEGORY_GL.ADVANCED); poly.registerNode(GeometryAttributeLookupUvGlNode, CATEGORY_GL.ADVANCED); poly.registerNode(GlobalsGlNode, CATEGORY_GL.GLOBALS); poly.registerNode(GridGlNode, CATEGORY_GL.GEOMETRY); poly.registerNode(HsluvToRgbGlNode, CATEGORY_GL.COLOR); poly.registerNode(HsvToRgbGlNode, CATEGORY_GL.COLOR); poly.registerNode(IfThenGlNode, CATEGORY_GL.LOGIC); poly.registerNode(IsInfOrNanGlNode, CATEGORY_GL.LOGIC); poly.registerNode(ImpostorUvGlNode, CATEGORY_GL.UTIL); poly.registerNode(InRangeGlNode, CATEGORY_GL.UTIL); poly.registerNode(IntToBoolGlNode, CATEGORY_GL.CONVERSION); poly.registerNode(IntToFloatGlNode, CATEGORY_GL.CONVERSION); poly.registerNode(InstanceTransformGlNode, CATEGORY_GL.GEOMETRY); poly.registerNode(InverseSqrtGlNode, CATEGORY_GL.MATH); poly.registerNode(InverseTransformDirectionGlNode, CATEGORY_GL.GEOMETRY); poly.registerNode(LengthGlNode, CATEGORY_GL.GEOMETRY); poly.registerNode(LuminanceGlNode, CATEGORY_GL.COLOR); poly.registerNode(LogGlNode, CATEGORY_GL.MATH); poly.registerNode(Log2GlNode, CATEGORY_GL.MATH); poly.registerNode(MaxGlNode, CATEGORY_GL.MATH); poly.registerNode(MaxLengthGlNode, CATEGORY_GL.MATH); poly.registerNode(MinGlNode, CATEGORY_GL.MATH); poly.registerNode(MixGlNode, CATEGORY_GL.MATH); poly.registerNode(ModGlNode, CATEGORY_GL.MATH); poly.registerNode(ModelMatrixMultGlNode, CATEGORY_GL.MATH); poly.registerNode(ModelViewMatrixMultGlNode, CATEGORY_GL.MATH); poly.registerNode(MultGlNode, CATEGORY_GL.MATH); poly.registerNode(MultAddGlNode, CATEGORY_GL.MATH); poly.registerNode(MultScalarGlNode, CATEGORY_GL.MATH); poly.registerNode(MultVectorMatrixGlNode, CATEGORY_GL.MATH); poly.registerNode(NegateGlNode, CATEGORY_GL.MATH); poly.registerNode(NeighbourAttractGlNode, CATEGORY_GL.ADVANCED, particlesOnlyOption); poly.registerNode(NeighbourAttractRepulseGlNode, CATEGORY_GL.ADVANCED, particlesOnlyOption); poly.registerNode(NeighbourAttribSmoothGlNode, CATEGORY_GL.ADVANCED, particlesOnlyOption); poly.registerNode(NeighbourDensityGlNode, CATEGORY_GL.ADVANCED, particlesOnlyOption); poly.registerNode(NeighbourRepulseGlNode, CATEGORY_GL.ADVANCED, particlesOnlyOption); poly.registerNode(NullGlNode, CATEGORY_GL.UTIL); poly.registerNode(NoiseGlNode, CATEGORY_GL.GEOMETRY); poly.registerNode(NormalToWorldGlNode, CATEGORY_GL.GEOMETRY); poly.registerNode(NormalizeGlNode, CATEGORY_GL.MATH); poly.registerNode(OklabToRgbGlNode, CATEGORY_GL.COLOR); poly.registerNode(OrGlNode, CATEGORY_GL.LOGIC); poly.registerNode(OutputGlNode, CATEGORY_GL.GLOBALS); poly.registerNode(ParamGlNode, CATEGORY_GL.GLOBALS); poly.registerNode(PolarToCartesianGlNode, CATEGORY_GL.MATH); poly.registerNode(PositionToWorldGlNode, CATEGORY_GL.MATH); poly.registerNode(PowGlNode, CATEGORY_GL.MATH); poly.registerNode(QuatMultGlNode, CATEGORY_GL.QUAT); poly.registerNode(QuatFromAxisAngleGlNode, CATEGORY_GL.QUAT); poly.registerNode(QuatSlerpGlNode, CATEGORY_GL.QUAT); poly.registerNode(QuatToAngleGlNode, CATEGORY_GL.QUAT); poly.registerNode(QuatToAxisGlNode, CATEGORY_GL.QUAT); poly.registerNode(RampGlNode, CATEGORY_GL.GLOBALS); poly.registerNode(RandomGlNode, CATEGORY_GL.MATH); poly.registerNode(RadiansGlNode, CATEGORY_GL.CONVERSION); poly.registerNode(ReflectGlNode, CATEGORY_GL.GEOMETRY); poly.registerNode(RefractGlNode, CATEGORY_GL.GEOMETRY); poly.registerNode(RgbToHsvGlNode, CATEGORY_GL.COLOR); poly.registerNode(RgbToOklabGlNode, CATEGORY_GL.COLOR); poly.registerNode(RotateGlNode, CATEGORY_GL.GEOMETRY); poly.registerNode(RoundGlNode, CATEGORY_GL.MATH); poly.registerNode(SDF2DBoxGlNode, CATEGORY_GL.SDF_PRIMITIVES_2D); poly.registerNode(SDF2DCircleGlNode, CATEGORY_GL.SDF_PRIMITIVES_2D); poly.registerNode(SDF2DCrossGlNode, CATEGORY_GL.SDF_PRIMITIVES_2D); poly.registerNode(SDF2DHeartGlNode, CATEGORY_GL.SDF_PRIMITIVES_2D); poly.registerNode(SDF2DRoundedXGlNode, CATEGORY_GL.SDF_PRIMITIVES_2D); poly.registerNode(SDF2DStairsGlNode, CATEGORY_GL.SDF_PRIMITIVES_2D); poly.registerNode(SDFBoxGlNode, CATEGORY_GL.SDF_PRIMITIVES); poly.registerNode(SDFBoxFrameGlNode, CATEGORY_GL.SDF_PRIMITIVES); poly.registerNode(SDFBoxRoundGlNode, CATEGORY_GL.SDF_PRIMITIVES); poly.registerNode(SDFCapsuleGlNode, CATEGORY_GL.SDF_PRIMITIVES); poly.registerNode(SDFCapsuleVerticalGlNode, CATEGORY_GL.SDF_PRIMITIVES); poly.registerNode(SDFConeGlNode, CATEGORY_GL.SDF_PRIMITIVES); poly.registerNode(SDFConeRoundGlNode, CATEGORY_GL.SDF_PRIMITIVES); poly.registerNode(SDFContextGlNode, CATEGORY_GL.SDF_MODIFIERS); poly.registerNode(SDFElongateGlNode, CATEGORY_GL.SDF_MODIFIERS); poly.registerNode(SDFExtrudeGlNode, CATEGORY_GL.SDF_MODIFIERS); poly.registerNode(SDFFractalMandelbrotGlNode, CATEGORY_GL.SDF_PRIMITIVES); poly.registerNode(SDFGradientGlNode, CATEGORY_GL.SDF_MODIFIERS); poly.registerNode(SDFHexagonalPrismGlNode, CATEGORY_GL.SDF_PRIMITIVES); poly.registerNode(SDFHorseShoeGlNode, CATEGORY_GL.SDF_PRIMITIVES); poly.registerNode(SDFIntersectGlNode, CATEGORY_GL.SDF_MODIFIERS); poly.registerNode(SDFLinkGlNode, CATEGORY_GL.SDF_PRIMITIVES); poly.registerNode(SDFMaterialGlNode, CATEGORY_GL.SDF_MODIFIERS); poly.registerNode(SDFMaxGlNode, CATEGORY_GL.SDF_MODIFIERS); poly.registerNode(SDFMinGlNode, CATEGORY_GL.SDF_MODIFIERS); poly.registerNode(SDFMirrorGlNode, CATEGORY_GL.SDF_MODIFIERS); poly.registerNode(SDFOctahedronGlNode, CATEGORY_GL.SDF_PRIMITIVES); poly.registerNode(SDFOctogonalPrismGlNode, CATEGORY_GL.SDF_PRIMITIVES); poly.registerNode(SDFOnionGlNode, CATEGORY_GL.SDF_MODIFIERS); poly.registerNode(SDFPlaneGlNode, CATEGORY_GL.SDF_PRIMITIVES); poly.registerNode(SDFPyramidGlNode, CATEGORY_GL.SDF_PRIMITIVES); poly.registerNode(SDFQuadGlNode, CATEGORY_GL.SDF_PRIMITIVES); poly.registerNode(SDFRepeatGlNode, CATEGORY_GL.SDF_MODIFIERS); poly.registerNode(SDFRepeatPolarGlNode, CATEGORY_GL.SDF_MODIFIERS); poly.registerNode(SDFRevolutionGlNode, CATEGORY_GL.SDF_MODIFIERS); poly.registerNode(SDFRhombusGlNode, CATEGORY_GL.SDF_PRIMITIVES); poly.registerNode(SDFRhombusTriacontahedronGlNode, CATEGORY_GL.SDF_PRIMITIVES); poly.registerNode(SDFSolidAngleGlNode, CATEGORY_GL.SDF_PRIMITIVES); poly.registerNode(SDFSphereGlNode, CATEGORY_GL.SDF_PRIMITIVES); poly.registerNode(SDFSphereCutGlNode, CATEGORY_GL.SDF_PRIMITIVES); poly.registerNode(SDFSphereHollowGlNode, CATEGORY_GL.SDF_PRIMITIVES); poly.registerNode(SDFSubtractGlNode, CATEGORY_GL.SDF_MODIFIERS); poly.registerNode(SDFTorusGlNode, CATEGORY_GL.SDF_PRIMITIVES); poly.registerNode(SDFTransformGlNode, CATEGORY_GL.SDF_MODIFIERS); poly.registerNode(SDFTriangleGlNode, CATEGORY_GL.SDF_PRIMITIVES); poly.registerNode(SDFTriangularPrismGlNode, CATEGORY_GL.SDF_PRIMITIVES); poly.registerNode(SDFTubeGlNode, CATEGORY_GL.SDF_PRIMITIVES); poly.registerNode(SDFTwistGlNode, CATEGORY_GL.SDF_MODIFIERS); poly.registerNode(SDFUnionGlNode, CATEGORY_GL.SDF_MODIFIERS); poly.registerNode(SignGlNode, CATEGORY_GL.MATH); poly.registerNode(SinGlNode, CATEGORY_GL.TRIGO); poly.registerNode(SkinningGlNode, CATEGORY_GL.GEOMETRY); poly.registerNode(SmoothstepGlNode, CATEGORY_GL.MATH); poly.registerNode(SphereGlNode, CATEGORY_GL.GEOMETRY); poly.registerNode(SqrtGlNode, CATEGORY_GL.MATH); poly.registerNode(SSSModelGlNode, CATEGORY_GL.LIGHTING); poly.registerNode(StepGlNode, CATEGORY_GL.GEOMETRY); poly.registerNode(SubnetGlNode, CATEGORY_GL.LOGIC); poly.registerNode(SubnetInputGlNode, CATEGORY_GL.LOGIC, SUBNET_CHILD_OPTION); poly.registerNode(SubnetOutputGlNode, CATEGORY_GL.LOGIC, SUBNET_CHILD_OPTION); poly.registerNode(SubtractGlNode, CATEGORY_GL.MATH); poly.registerNode(SwitchGlNode, CATEGORY_GL.LOGIC); poly.registerNode(TanGlNode, CATEGORY_GL.TRIGO); poly.registerNode(TextureGlNode, CATEGORY_GL.COLOR); poly.registerNode(Texture2DArrayGlNode, CATEGORY_GL.COLOR); poly.registerNode(TextureDisplacementGlNode, CATEGORY_GL.COLOR); poly.registerNode(TextureSDFGlNode, CATEGORY_GL.COLOR); poly.registerNode(TileUvGlNode, CATEGORY_GL.UTIL); poly.registerNode(ToWorldSpaceGlNode, CATEGORY_GL.GLOBALS); poly.registerNode(TwoWaySwitchGlNode, CATEGORY_GL.LOGIC); poly.registerNode(UvToOklabGlNode, CATEGORY_GL.COLOR); poly.registerNode(VaryingWriteGlNode, CATEGORY_GL.GLOBALS); poly.registerNode(VaryingReadGlNode, CATEGORY_GL.GLOBALS); poly.registerNode(Vec2ToFloatGlNode, CATEGORY_GL.CONVERSION); poly.registerNode(Vec2ToVec3GlNode, CATEGORY_GL.CONVERSION); poly.registerNode(Vec3ToFloatGlNode, CATEGORY_GL.CONVERSION); poly.registerNode(Vec3ToVec2GlNode, CATEGORY_GL.CONVERSION); poly.registerNode(Vec3ToVec4GlNode, CATEGORY_GL.CONVERSION); poly.registerNode(Vec4ToFloatGlNode, CATEGORY_GL.CONVERSION); poly.registerNode(Vec4ToVec3GlNode, CATEGORY_GL.CONVERSION); poly.registerNode(VectorAlignGlNode, CATEGORY_GL.GEOMETRY); poly.registerNode(VectorAngleGlNode, CATEGORY_GL.GEOMETRY); poly.registerNode(VertexAnimationTextureGlNode, CATEGORY_GL.ADVANCED); if (false) { poly.registerNode(VertexAnimationTextureInterpolatedGlNode, CATEGORY_GL.ADVANCED); } poly.registerNode(WavesGlNode, CATEGORY_GL.GEOMETRY); } }