(function (global, factory) {
  if (typeof define === "function" && define.amd) {
    define(["exports", "./core/Node.js", "./core/TempNode.js", "./core/InputNode.js", "./core/ConstNode.js", "./core/VarNode.js", "./core/StructNode.js", "./core/AttributeNode.js", "./core/FunctionNode.js", "./core/ExpressionNode.js", "./core/FunctionCallNode.js", "./core/NodeLib.js", "./core/NodeUtils.js", "./core/NodeFrame.js", "./core/NodeUniform.js", "./core/NodeBuilder.js", "./inputs/BoolNode.js", "./inputs/IntNode.js", "./inputs/FloatNode.js", "./inputs/Vector2Node.js", "./inputs/Vector3Node.js", "./inputs/Vector4Node.js", "./inputs/ColorNode.js", "./inputs/Matrix3Node.js", "./inputs/Matrix4Node.js", "./inputs/TextureNode.js", "./inputs/CubeTextureNode.js", "./inputs/ScreenNode.js", "./inputs/ReflectorNode.js", "./inputs/PropertyNode.js", "./inputs/RTTNode.js", "./accessors/UVNode.js", "./accessors/ColorsNode.js", "./accessors/PositionNode.js", "./accessors/NormalNode.js", "./accessors/CameraNode.js", "./accessors/LightNode.js", "./accessors/ReflectNode.js", "./accessors/ScreenUVNode.js", "./accessors/ResolutionNode.js", "./math/MathNode.js", "./math/OperatorNode.js", "./math/CondNode.js", "./procedural/Noise2DNode.js", "./procedural/Noise3DNode.js", "./procedural/CheckerNode.js", "./procedural/Fractal3DNode.js", "./misc/TextureCubeUVNode.js", "./misc/TextureCubeNode.js", "./misc/NormalMapNode.js", "./misc/BumpMapNode.js", "./utils/BypassNode.js", "./utils/JoinNode.js", "./utils/SwitchNode.js", "./utils/RemapNode.js", "./utils/TimerNode.js", "./utils/VelocityNode.js", "./utils/UVTransformNode.js", "./utils/MaxMIPLevelNode.js", "./utils/SpecularMIPLevelNode.js", "./utils/ColorSpaceNode.js", "./utils/SubSlotNode.js", "./effects/BlurNode.js", "./effects/ColorAdjustmentNode.js", "./effects/LuminanceNode.js", "./materials/nodes/RawNode.js", "./materials/nodes/BasicNode.js", "./materials/nodes/SpriteNode.js", "./materials/nodes/PhongNode.js", "./materials/nodes/StandardNode.js", "./materials/nodes/MeshStandardNode.js", "./materials/NodeMaterial.js", "./materials/BasicNodeMaterial.js", "./materials/SpriteNodeMaterial.js", "./materials/PhongNodeMaterial.js", "./materials/StandardNodeMaterial.js", "./materials/MeshStandardNodeMaterial.js", "./postprocessing/NodePostProcessing.js"], factory);
  } else if (typeof exports !== "undefined") {
    factory(exports, require("./core/Node.js"), require("./core/TempNode.js"), require("./core/InputNode.js"), require("./core/ConstNode.js"), require("./core/VarNode.js"), require("./core/StructNode.js"), require("./core/AttributeNode.js"), require("./core/FunctionNode.js"), require("./core/ExpressionNode.js"), require("./core/FunctionCallNode.js"), require("./core/NodeLib.js"), require("./core/NodeUtils.js"), require("./core/NodeFrame.js"), require("./core/NodeUniform.js"), require("./core/NodeBuilder.js"), require("./inputs/BoolNode.js"), require("./inputs/IntNode.js"), require("./inputs/FloatNode.js"), require("./inputs/Vector2Node.js"), require("./inputs/Vector3Node.js"), require("./inputs/Vector4Node.js"), require("./inputs/ColorNode.js"), require("./inputs/Matrix3Node.js"), require("./inputs/Matrix4Node.js"), require("./inputs/TextureNode.js"), require("./inputs/CubeTextureNode.js"), require("./inputs/ScreenNode.js"), require("./inputs/ReflectorNode.js"), require("./inputs/PropertyNode.js"), require("./inputs/RTTNode.js"), require("./accessors/UVNode.js"), require("./accessors/ColorsNode.js"), require("./accessors/PositionNode.js"), require("./accessors/NormalNode.js"), require("./accessors/CameraNode.js"), require("./accessors/LightNode.js"), require("./accessors/ReflectNode.js"), require("./accessors/ScreenUVNode.js"), require("./accessors/ResolutionNode.js"), require("./math/MathNode.js"), require("./math/OperatorNode.js"), require("./math/CondNode.js"), require("./procedural/Noise2DNode.js"), require("./procedural/Noise3DNode.js"), require("./procedural/CheckerNode.js"), require("./procedural/Fractal3DNode.js"), require("./misc/TextureCubeUVNode.js"), require("./misc/TextureCubeNode.js"), require("./misc/NormalMapNode.js"), require("./misc/BumpMapNode.js"), require("./utils/BypassNode.js"), require("./utils/JoinNode.js"), require("./utils/SwitchNode.js"), require("./utils/RemapNode.js"), require("./utils/TimerNode.js"), require("./utils/VelocityNode.js"), require("./utils/UVTransformNode.js"), require("./utils/MaxMIPLevelNode.js"), require("./utils/SpecularMIPLevelNode.js"), require("./utils/ColorSpaceNode.js"), require("./utils/SubSlotNode.js"), require("./effects/BlurNode.js"), require("./effects/ColorAdjustmentNode.js"), require("./effects/LuminanceNode.js"), require("./materials/nodes/RawNode.js"), require("./materials/nodes/BasicNode.js"), require("./materials/nodes/SpriteNode.js"), require("./materials/nodes/PhongNode.js"), require("./materials/nodes/StandardNode.js"), require("./materials/nodes/MeshStandardNode.js"), require("./materials/NodeMaterial.js"), require("./materials/BasicNodeMaterial.js"), require("./materials/SpriteNodeMaterial.js"), require("./materials/PhongNodeMaterial.js"), require("./materials/StandardNodeMaterial.js"), require("./materials/MeshStandardNodeMaterial.js"), require("./postprocessing/NodePostProcessing.js"));
  } else {
    var mod = {
      exports: {}
    };
    factory(mod.exports, global.Node, global.TempNode, global.InputNode, global.ConstNode, global.VarNode, global.StructNode, global.AttributeNode, global.FunctionNode, global.ExpressionNode, global.FunctionCallNode, global.NodeLib, global.NodeUtils, global.NodeFrame, global.NodeUniform, global.NodeBuilder, global.BoolNode, global.IntNode, global.FloatNode, global.Vector2Node, global.Vector3Node, global.Vector4Node, global.ColorNode, global.Matrix3Node, global.Matrix4Node, global.TextureNode, global.CubeTextureNode, global.ScreenNode, global.ReflectorNode, global.PropertyNode, global.RTTNode, global.UVNode, global.ColorsNode, global.PositionNode, global.NormalNode, global.CameraNode, global.LightNode, global.ReflectNode, global.ScreenUVNode, global.ResolutionNode, global.MathNode, global.OperatorNode, global.CondNode, global.Noise2DNode, global.Noise3DNode, global.CheckerNode, global.Fractal3DNode, global.TextureCubeUVNode, global.TextureCubeNode, global.NormalMapNode, global.BumpMapNode, global.BypassNode, global.JoinNode, global.SwitchNode, global.RemapNode, global.TimerNode, global.VelocityNode, global.UVTransformNode, global.MaxMIPLevelNode, global.SpecularMIPLevelNode, global.ColorSpaceNode, global.SubSlotNode, global.BlurNode, global.ColorAdjustmentNode, global.LuminanceNode, global.RawNode, global.BasicNode, global.SpriteNode, global.PhongNode, global.StandardNode, global.MeshStandardNode, global.NodeMaterial, global.BasicNodeMaterial, global.SpriteNodeMaterial, global.PhongNodeMaterial, global.StandardNodeMaterial, global.MeshStandardNodeMaterial, global.NodePostProcessing);
    global.Nodes = mod.exports;
  }
})(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : this, function (_exports, _Node, _TempNode, _InputNode, _ConstNode, _VarNode, _StructNode, _AttributeNode, _FunctionNode, _ExpressionNode, _FunctionCallNode, _NodeLib, _NodeUtils, _NodeFrame, _NodeUniform, _NodeBuilder, _BoolNode, _IntNode, _FloatNode, _Vector2Node, _Vector3Node, _Vector4Node, _ColorNode, _Matrix3Node, _Matrix4Node, _TextureNode, _CubeTextureNode, _ScreenNode, _ReflectorNode, _PropertyNode, _RTTNode, _UVNode, _ColorsNode, _PositionNode, _NormalNode, _CameraNode, _LightNode, _ReflectNode, _ScreenUVNode, _ResolutionNode, _MathNode, _OperatorNode, _CondNode, _Noise2DNode, _Noise3DNode, _CheckerNode, _Fractal3DNode, _TextureCubeUVNode, _TextureCubeNode, _NormalMapNode, _BumpMapNode, _BypassNode, _JoinNode, _SwitchNode, _RemapNode, _TimerNode, _VelocityNode, _UVTransformNode, _MaxMIPLevelNode, _SpecularMIPLevelNode, _ColorSpaceNode, _SubSlotNode, _BlurNode, _ColorAdjustmentNode, _LuminanceNode, _RawNode, _BasicNode, _SpriteNode, _PhongNode, _StandardNode, _MeshStandardNode, _NodeMaterial, _BasicNodeMaterial, _SpriteNodeMaterial, _PhongNodeMaterial, _StandardNodeMaterial, _MeshStandardNodeMaterial, _NodePostProcessing) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "AttributeNode", {
    enumerable: true,
    get: function get() {
      return _AttributeNode.AttributeNode;
    }
  });
  Object.defineProperty(_exports, "BasicNode", {
    enumerable: true,
    get: function get() {
      return _BasicNode.BasicNode;
    }
  });
  Object.defineProperty(_exports, "BasicNodeMaterial", {
    enumerable: true,
    get: function get() {
      return _BasicNodeMaterial.BasicNodeMaterial;
    }
  });
  Object.defineProperty(_exports, "BlurNode", {
    enumerable: true,
    get: function get() {
      return _BlurNode.BlurNode;
    }
  });
  Object.defineProperty(_exports, "BoolNode", {
    enumerable: true,
    get: function get() {
      return _BoolNode.BoolNode;
    }
  });
  Object.defineProperty(_exports, "BumpMapNode", {
    enumerable: true,
    get: function get() {
      return _BumpMapNode.BumpMapNode;
    }
  });
  Object.defineProperty(_exports, "BypassNode", {
    enumerable: true,
    get: function get() {
      return _BypassNode.BypassNode;
    }
  });
  Object.defineProperty(_exports, "CameraNode", {
    enumerable: true,
    get: function get() {
      return _CameraNode.CameraNode;
    }
  });
  Object.defineProperty(_exports, "CheckerNode", {
    enumerable: true,
    get: function get() {
      return _CheckerNode.CheckerNode;
    }
  });
  Object.defineProperty(_exports, "ColorAdjustmentNode", {
    enumerable: true,
    get: function get() {
      return _ColorAdjustmentNode.ColorAdjustmentNode;
    }
  });
  Object.defineProperty(_exports, "ColorNode", {
    enumerable: true,
    get: function get() {
      return _ColorNode.ColorNode;
    }
  });
  Object.defineProperty(_exports, "ColorSpaceNode", {
    enumerable: true,
    get: function get() {
      return _ColorSpaceNode.ColorSpaceNode;
    }
  });
  Object.defineProperty(_exports, "ColorsNode", {
    enumerable: true,
    get: function get() {
      return _ColorsNode.ColorsNode;
    }
  });
  Object.defineProperty(_exports, "CondNode", {
    enumerable: true,
    get: function get() {
      return _CondNode.CondNode;
    }
  });
  Object.defineProperty(_exports, "ConstNode", {
    enumerable: true,
    get: function get() {
      return _ConstNode.ConstNode;
    }
  });
  Object.defineProperty(_exports, "CubeTextureNode", {
    enumerable: true,
    get: function get() {
      return _CubeTextureNode.CubeTextureNode;
    }
  });
  Object.defineProperty(_exports, "ExpressionNode", {
    enumerable: true,
    get: function get() {
      return _ExpressionNode.ExpressionNode;
    }
  });
  Object.defineProperty(_exports, "FloatNode", {
    enumerable: true,
    get: function get() {
      return _FloatNode.FloatNode;
    }
  });
  Object.defineProperty(_exports, "Fractal3DNode", {
    enumerable: true,
    get: function get() {
      return _Fractal3DNode.Fractal3DNode;
    }
  });
  Object.defineProperty(_exports, "FunctionCallNode", {
    enumerable: true,
    get: function get() {
      return _FunctionCallNode.FunctionCallNode;
    }
  });
  Object.defineProperty(_exports, "FunctionNode", {
    enumerable: true,
    get: function get() {
      return _FunctionNode.FunctionNode;
    }
  });
  Object.defineProperty(_exports, "InputNode", {
    enumerable: true,
    get: function get() {
      return _InputNode.InputNode;
    }
  });
  Object.defineProperty(_exports, "IntNode", {
    enumerable: true,
    get: function get() {
      return _IntNode.IntNode;
    }
  });
  Object.defineProperty(_exports, "JoinNode", {
    enumerable: true,
    get: function get() {
      return _JoinNode.JoinNode;
    }
  });
  Object.defineProperty(_exports, "LightNode", {
    enumerable: true,
    get: function get() {
      return _LightNode.LightNode;
    }
  });
  Object.defineProperty(_exports, "LuminanceNode", {
    enumerable: true,
    get: function get() {
      return _LuminanceNode.LuminanceNode;
    }
  });
  Object.defineProperty(_exports, "MathNode", {
    enumerable: true,
    get: function get() {
      return _MathNode.MathNode;
    }
  });
  Object.defineProperty(_exports, "Matrix3Node", {
    enumerable: true,
    get: function get() {
      return _Matrix3Node.Matrix3Node;
    }
  });
  Object.defineProperty(_exports, "Matrix4Node", {
    enumerable: true,
    get: function get() {
      return _Matrix4Node.Matrix4Node;
    }
  });
  Object.defineProperty(_exports, "MaxMIPLevelNode", {
    enumerable: true,
    get: function get() {
      return _MaxMIPLevelNode.MaxMIPLevelNode;
    }
  });
  Object.defineProperty(_exports, "MeshStandardNode", {
    enumerable: true,
    get: function get() {
      return _MeshStandardNode.MeshStandardNode;
    }
  });
  Object.defineProperty(_exports, "MeshStandardNodeMaterial", {
    enumerable: true,
    get: function get() {
      return _MeshStandardNodeMaterial.MeshStandardNodeMaterial;
    }
  });
  Object.defineProperty(_exports, "Node", {
    enumerable: true,
    get: function get() {
      return _Node.Node;
    }
  });
  Object.defineProperty(_exports, "NodeBuilder", {
    enumerable: true,
    get: function get() {
      return _NodeBuilder.NodeBuilder;
    }
  });
  Object.defineProperty(_exports, "NodeFrame", {
    enumerable: true,
    get: function get() {
      return _NodeFrame.NodeFrame;
    }
  });
  Object.defineProperty(_exports, "NodeLib", {
    enumerable: true,
    get: function get() {
      return _NodeLib.NodeLib;
    }
  });
  Object.defineProperty(_exports, "NodeMaterial", {
    enumerable: true,
    get: function get() {
      return _NodeMaterial.NodeMaterial;
    }
  });
  Object.defineProperty(_exports, "NodePostProcessing", {
    enumerable: true,
    get: function get() {
      return _NodePostProcessing.NodePostProcessing;
    }
  });
  Object.defineProperty(_exports, "NodeUniform", {
    enumerable: true,
    get: function get() {
      return _NodeUniform.NodeUniform;
    }
  });
  Object.defineProperty(_exports, "NodeUtils", {
    enumerable: true,
    get: function get() {
      return _NodeUtils.NodeUtils;
    }
  });
  Object.defineProperty(_exports, "Noise2DNode", {
    enumerable: true,
    get: function get() {
      return _Noise2DNode.Noise2DNode;
    }
  });
  Object.defineProperty(_exports, "Noise3DNode", {
    enumerable: true,
    get: function get() {
      return _Noise3DNode.Noise3DNode;
    }
  });
  Object.defineProperty(_exports, "NormalMapNode", {
    enumerable: true,
    get: function get() {
      return _NormalMapNode.NormalMapNode;
    }
  });
  Object.defineProperty(_exports, "NormalNode", {
    enumerable: true,
    get: function get() {
      return _NormalNode.NormalNode;
    }
  });
  Object.defineProperty(_exports, "OperatorNode", {
    enumerable: true,
    get: function get() {
      return _OperatorNode.OperatorNode;
    }
  });
  Object.defineProperty(_exports, "PhongNode", {
    enumerable: true,
    get: function get() {
      return _PhongNode.PhongNode;
    }
  });
  Object.defineProperty(_exports, "PhongNodeMaterial", {
    enumerable: true,
    get: function get() {
      return _PhongNodeMaterial.PhongNodeMaterial;
    }
  });
  Object.defineProperty(_exports, "PositionNode", {
    enumerable: true,
    get: function get() {
      return _PositionNode.PositionNode;
    }
  });
  Object.defineProperty(_exports, "PropertyNode", {
    enumerable: true,
    get: function get() {
      return _PropertyNode.PropertyNode;
    }
  });
  Object.defineProperty(_exports, "RTTNode", {
    enumerable: true,
    get: function get() {
      return _RTTNode.RTTNode;
    }
  });
  Object.defineProperty(_exports, "RawNode", {
    enumerable: true,
    get: function get() {
      return _RawNode.RawNode;
    }
  });
  Object.defineProperty(_exports, "ReflectNode", {
    enumerable: true,
    get: function get() {
      return _ReflectNode.ReflectNode;
    }
  });
  Object.defineProperty(_exports, "ReflectorNode", {
    enumerable: true,
    get: function get() {
      return _ReflectorNode.ReflectorNode;
    }
  });
  Object.defineProperty(_exports, "RemapNode", {
    enumerable: true,
    get: function get() {
      return _RemapNode.RemapNode;
    }
  });
  Object.defineProperty(_exports, "ResolutionNode", {
    enumerable: true,
    get: function get() {
      return _ResolutionNode.ResolutionNode;
    }
  });
  Object.defineProperty(_exports, "ScreenNode", {
    enumerable: true,
    get: function get() {
      return _ScreenNode.ScreenNode;
    }
  });
  Object.defineProperty(_exports, "ScreenUVNode", {
    enumerable: true,
    get: function get() {
      return _ScreenUVNode.ScreenUVNode;
    }
  });
  Object.defineProperty(_exports, "SpecularMIPLevelNode", {
    enumerable: true,
    get: function get() {
      return _SpecularMIPLevelNode.SpecularMIPLevelNode;
    }
  });
  Object.defineProperty(_exports, "SpriteNode", {
    enumerable: true,
    get: function get() {
      return _SpriteNode.SpriteNode;
    }
  });
  Object.defineProperty(_exports, "SpriteNodeMaterial", {
    enumerable: true,
    get: function get() {
      return _SpriteNodeMaterial.SpriteNodeMaterial;
    }
  });
  Object.defineProperty(_exports, "StandardNode", {
    enumerable: true,
    get: function get() {
      return _StandardNode.StandardNode;
    }
  });
  Object.defineProperty(_exports, "StandardNodeMaterial", {
    enumerable: true,
    get: function get() {
      return _StandardNodeMaterial.StandardNodeMaterial;
    }
  });
  Object.defineProperty(_exports, "StructNode", {
    enumerable: true,
    get: function get() {
      return _StructNode.StructNode;
    }
  });
  Object.defineProperty(_exports, "SubSlotNode", {
    enumerable: true,
    get: function get() {
      return _SubSlotNode.SubSlotNode;
    }
  });
  Object.defineProperty(_exports, "SwitchNode", {
    enumerable: true,
    get: function get() {
      return _SwitchNode.SwitchNode;
    }
  });
  Object.defineProperty(_exports, "TempNode", {
    enumerable: true,
    get: function get() {
      return _TempNode.TempNode;
    }
  });
  Object.defineProperty(_exports, "TextureCubeNode", {
    enumerable: true,
    get: function get() {
      return _TextureCubeNode.TextureCubeNode;
    }
  });
  Object.defineProperty(_exports, "TextureCubeUVNode", {
    enumerable: true,
    get: function get() {
      return _TextureCubeUVNode.TextureCubeUVNode;
    }
  });
  Object.defineProperty(_exports, "TextureNode", {
    enumerable: true,
    get: function get() {
      return _TextureNode.TextureNode;
    }
  });
  Object.defineProperty(_exports, "TimerNode", {
    enumerable: true,
    get: function get() {
      return _TimerNode.TimerNode;
    }
  });
  Object.defineProperty(_exports, "UVNode", {
    enumerable: true,
    get: function get() {
      return _UVNode.UVNode;
    }
  });
  Object.defineProperty(_exports, "UVTransformNode", {
    enumerable: true,
    get: function get() {
      return _UVTransformNode.UVTransformNode;
    }
  });
  Object.defineProperty(_exports, "VarNode", {
    enumerable: true,
    get: function get() {
      return _VarNode.VarNode;
    }
  });
  Object.defineProperty(_exports, "Vector2Node", {
    enumerable: true,
    get: function get() {
      return _Vector2Node.Vector2Node;
    }
  });
  Object.defineProperty(_exports, "Vector3Node", {
    enumerable: true,
    get: function get() {
      return _Vector3Node.Vector3Node;
    }
  });
  Object.defineProperty(_exports, "Vector4Node", {
    enumerable: true,
    get: function get() {
      return _Vector4Node.Vector4Node;
    }
  });
  Object.defineProperty(_exports, "VelocityNode", {
    enumerable: true,
    get: function get() {
      return _VelocityNode.VelocityNode;
    }
  });
});