Nodes.js 8.8 KB

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