Nodes.js 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358
  1. // core
  2. import ArrayUniformNode from './core/ArrayUniformNode.js';
  3. import AttributeNode from './core/AttributeNode.js';
  4. import BypassNode from './core/BypassNode.js';
  5. import CodeNode from './core/CodeNode.js';
  6. import ConstNode from './core/ConstNode.js';
  7. import ContextNode from './core/ContextNode.js';
  8. import ExpressionNode from './core/ExpressionNode.js';
  9. import FunctionCallNode from './core/FunctionCallNode.js';
  10. import FunctionNode from './core/FunctionNode.js';
  11. import InstanceIndexNode from './core/InstanceIndexNode.js';
  12. import Node from './core/Node.js';
  13. import NodeAttribute from './core/NodeAttribute.js';
  14. import NodeBuilder from './core/NodeBuilder.js';
  15. import NodeCode from './core/NodeCode.js';
  16. import NodeFrame from './core/NodeFrame.js';
  17. import NodeFunctionInput from './core/NodeFunctionInput.js';
  18. import NodeKeywords from './core/NodeKeywords.js';
  19. import NodeUniform from './core/NodeUniform.js';
  20. import NodeVar from './core/NodeVar.js';
  21. import NodeVarying from './core/NodeVarying.js';
  22. import PropertyNode from './core/PropertyNode.js';
  23. import TempNode from './core/TempNode.js';
  24. import UniformNode from './core/UniformNode.js';
  25. import VarNode from './core/VarNode.js';
  26. import VaryingNode from './core/VaryingNode.js';
  27. // accessors
  28. import BitangentNode from './accessors/BitangentNode.js';
  29. import BufferNode from './accessors/BufferNode.js';
  30. import CameraNode from './accessors/CameraNode.js';
  31. import CubeTextureNode from './accessors/CubeTextureNode.js';
  32. import InstanceNode from './accessors/InstanceNode.js';
  33. import MaterialNode from './accessors/MaterialNode.js';
  34. import MaterialReferenceNode from './accessors/MaterialReferenceNode.js';
  35. import ModelNode from './accessors/ModelNode.js';
  36. import ModelViewProjectionNode from './accessors/ModelViewProjectionNode.js';
  37. import NormalNode from './accessors/NormalNode.js';
  38. import Object3DNode from './accessors/Object3DNode.js';
  39. import PointUVNode from './accessors/PointUVNode.js';
  40. import PositionNode from './accessors/PositionNode.js';
  41. import ReferenceNode from './accessors/ReferenceNode.js';
  42. import ReflectVectorNode from './accessors/ReflectVectorNode.js';
  43. import SkinningNode from './accessors/SkinningNode.js';
  44. import TangentNode from './accessors/TangentNode.js';
  45. import TextureNode from './accessors/TextureNode.js';
  46. import UVNode from './accessors/UVNode.js';
  47. import UserDataNode from './accessors/UserDataNode.js';
  48. // geometry
  49. import RangeNode from './geometry/RangeNode.js';
  50. // gpgpu
  51. import ComputeNode from './gpgpu/ComputeNode.js';
  52. // display
  53. import BlendModeNode from './display/BlendModeNode.js';
  54. import ColorAdjustmentNode from './display/ColorAdjustmentNode.js';
  55. import ColorSpaceNode from './display/ColorSpaceNode.js';
  56. import FrontFacingNode from './display/FrontFacingNode.js';
  57. import NormalMapNode from './display/NormalMapNode.js';
  58. import PosterizeNode from './display/PosterizeNode.js';
  59. import ToneMappingNode from './display/ToneMappingNode.js';
  60. import ViewportNode from './display/ViewportNode.js';
  61. // math
  62. import MathNode from './math/MathNode.js';
  63. import OperatorNode from './math/OperatorNode.js';
  64. import CondNode from './math/CondNode.js';
  65. // lighting
  66. import PunctualLightNode from './lighting/PunctualLightNode.js';
  67. import LightsNode from './lighting/LightsNode.js';
  68. import LightingNode from './lighting/LightingNode.js';
  69. import LightingContextNode from './lighting/LightingContextNode.js';
  70. import HemisphereLightNode from './lighting/HemisphereLightNode.js';
  71. import EnvironmentNode from './lighting/EnvironmentNode.js';
  72. import AONode from './lighting/AONode.js';
  73. import AnalyticLightNode from './lighting/AnalyticLightNode.js';
  74. // utils
  75. import ArrayElementNode from './utils/ArrayElementNode.js';
  76. import ConvertNode from './utils/ConvertNode.js';
  77. import EquirectUVNode from './utils/EquirectUVNode.js';
  78. import JoinNode from './utils/JoinNode.js';
  79. import MatcapUVNode from './utils/MatcapUVNode.js';
  80. import MaxMipLevelNode from './utils/MaxMipLevelNode.js';
  81. import OscNode from './utils/OscNode.js';
  82. import RemapNode from './utils/RemapNode.js';
  83. import RotateUVNode from './utils/RotateUVNode.js';
  84. import SplitNode from './utils/SplitNode.js';
  85. import SpriteSheetUVNode from './utils/SpriteSheetUVNode.js';
  86. import TimerNode from './utils/TimerNode.js';
  87. import TriplanarTexturesNode from './utils/TriplanarTexturesNode.js';
  88. // loaders
  89. import NodeLoader from './loaders/NodeLoader.js';
  90. import NodeObjectLoader from './loaders/NodeObjectLoader.js';
  91. import NodeMaterialLoader from './loaders/NodeMaterialLoader.js';
  92. // parsers
  93. import WGSLNodeParser from './parsers/WGSLNodeParser.js';
  94. import GLSLNodeParser from './parsers/GLSLNodeParser.js';
  95. // procedural
  96. import CheckerNode from './procedural/CheckerNode.js';
  97. // fog
  98. import FogNode from './fog/FogNode.js';
  99. import FogRangeNode from './fog/FogRangeNode.js';
  100. // core
  101. export * from './core/constants.js';
  102. // materials
  103. export * from './materials/Materials.js';
  104. // shader node
  105. export * from './shadernode/ShaderNodeElements.js';
  106. // extensions
  107. export * from './materialx/MaterialXNodes.js';
  108. // shader stages
  109. export { defaultShaderStages } from './core/NodeBuilder.js';
  110. const nodeLib = {
  111. // core
  112. ArrayUniformNode,
  113. AttributeNode,
  114. BypassNode,
  115. CodeNode,
  116. ContextNode,
  117. ConstNode,
  118. ExpressionNode,
  119. FunctionCallNode,
  120. FunctionNode,
  121. InstanceIndexNode,
  122. Node,
  123. NodeAttribute,
  124. NodeBuilder,
  125. NodeCode,
  126. NodeFrame,
  127. NodeFunctionInput,
  128. NodeKeywords,
  129. NodeUniform,
  130. NodeVar,
  131. NodeVarying,
  132. PropertyNode,
  133. TempNode,
  134. UniformNode,
  135. VarNode,
  136. VaryingNode,
  137. // geometry
  138. RangeNode,
  139. // gpgpu
  140. ComputeNode,
  141. // accessors
  142. BitangentNode,
  143. BufferNode,
  144. CameraNode,
  145. CubeTextureNode,
  146. InstanceNode,
  147. MaterialNode,
  148. MaterialReferenceNode,
  149. ModelNode,
  150. ModelViewProjectionNode,
  151. NormalNode,
  152. Object3DNode,
  153. PointUVNode,
  154. PositionNode,
  155. ReferenceNode,
  156. ReflectVectorNode,
  157. SkinningNode,
  158. TangentNode,
  159. TextureNode,
  160. UVNode,
  161. UserDataNode,
  162. // display
  163. BlendModeNode,
  164. ColorAdjustmentNode,
  165. ColorSpaceNode,
  166. FrontFacingNode,
  167. NormalMapNode,
  168. PosterizeNode,
  169. ToneMappingNode,
  170. ViewportNode,
  171. // math
  172. MathNode,
  173. OperatorNode,
  174. CondNode,
  175. // lighting
  176. PunctualLightNode,
  177. LightsNode,
  178. LightingNode,
  179. LightingContextNode,
  180. HemisphereLightNode,
  181. EnvironmentNode,
  182. AONode,
  183. AnalyticLightNode,
  184. // utils
  185. ArrayElementNode,
  186. ConvertNode,
  187. EquirectUVNode,
  188. JoinNode,
  189. MatcapUVNode,
  190. MaxMipLevelNode,
  191. OscNode,
  192. RemapNode,
  193. RotateUVNode,
  194. SplitNode,
  195. SpriteSheetUVNode,
  196. TimerNode,
  197. TriplanarTexturesNode,
  198. // procedural
  199. CheckerNode,
  200. // fog
  201. FogNode,
  202. FogRangeNode,
  203. // loaders
  204. NodeLoader,
  205. NodeObjectLoader,
  206. NodeMaterialLoader,
  207. // parsers
  208. WGSLNodeParser,
  209. GLSLNodeParser
  210. };
  211. export const fromType = ( type ) => {
  212. return new nodeLib[ type ]();
  213. };
  214. export {
  215. // core
  216. ArrayUniformNode,
  217. AttributeNode,
  218. BypassNode,
  219. CodeNode,
  220. ContextNode,
  221. ConstNode,
  222. ExpressionNode,
  223. FunctionCallNode,
  224. FunctionNode,
  225. InstanceIndexNode,
  226. Node,
  227. NodeAttribute,
  228. NodeBuilder,
  229. NodeCode,
  230. NodeFrame,
  231. NodeFunctionInput,
  232. NodeKeywords,
  233. NodeUniform,
  234. NodeVar,
  235. NodeVarying,
  236. PropertyNode,
  237. TempNode,
  238. UniformNode,
  239. VarNode,
  240. VaryingNode,
  241. // geometry
  242. RangeNode,
  243. // gpgpu
  244. ComputeNode,
  245. // accessors
  246. BitangentNode,
  247. BufferNode,
  248. CameraNode,
  249. CubeTextureNode,
  250. InstanceNode,
  251. MaterialNode,
  252. MaterialReferenceNode,
  253. ModelNode,
  254. ModelViewProjectionNode,
  255. NormalNode,
  256. Object3DNode,
  257. PointUVNode,
  258. PositionNode,
  259. ReferenceNode,
  260. ReflectVectorNode,
  261. SkinningNode,
  262. TangentNode,
  263. TextureNode,
  264. UVNode,
  265. UserDataNode,
  266. // display
  267. BlendModeNode,
  268. ColorAdjustmentNode,
  269. ColorSpaceNode,
  270. FrontFacingNode,
  271. NormalMapNode,
  272. PosterizeNode,
  273. ToneMappingNode,
  274. ViewportNode,
  275. // math
  276. MathNode,
  277. OperatorNode,
  278. CondNode,
  279. // lighting
  280. PunctualLightNode,
  281. LightsNode,
  282. LightingNode,
  283. LightingContextNode,
  284. HemisphereLightNode,
  285. EnvironmentNode,
  286. AONode,
  287. AnalyticLightNode,
  288. // utils
  289. ArrayElementNode,
  290. ConvertNode,
  291. EquirectUVNode,
  292. JoinNode,
  293. MatcapUVNode,
  294. MaxMipLevelNode,
  295. OscNode,
  296. RemapNode,
  297. RotateUVNode,
  298. SplitNode,
  299. SpriteSheetUVNode,
  300. TimerNode,
  301. TriplanarTexturesNode,
  302. // procedural
  303. CheckerNode,
  304. // fog
  305. FogNode,
  306. FogRangeNode,
  307. // loaders
  308. NodeLoader,
  309. NodeObjectLoader,
  310. NodeMaterialLoader,
  311. // parsers
  312. WGSLNodeParser,
  313. GLSLNodeParser
  314. };