Nodes.js 8.9 KB

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