Nodes.js 8.7 KB

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