Nodes.js 8.4 KB

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