Nodes.js 7.9 KB

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