nodes_material.ts 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. /// if (arm_windows || arm_linux || arm_macos)
  2. let nodes_material_categories: string[] = [ _tr("Input"), _tr("Texture"), _tr("Color"), _tr("Utilities"), _tr("Neural"), _tr("Group") ];
  3. /// else
  4. let nodes_material_categories: string[] = [ _tr("Input"), _tr("Texture"), _tr("Color"), _tr("Utilities"), _tr("Group") ];
  5. /// end
  6. let nodes_material_input: ui_node_t[];
  7. let nodes_material_texture: ui_node_t[];
  8. let nodes_material_color: ui_node_t[];
  9. let nodes_material_utilities: ui_node_t[];
  10. let nodes_material_neural: ui_node_t[];
  11. let nodes_material_group: ui_node_t[];
  12. type node_list_t = ui_node_t[];
  13. let nodes_material_list: node_list_t[] = null;
  14. function nodes_material_init() {
  15. if (nodes_material_list != null) {
  16. return;
  17. }
  18. nodes_material_input = [];
  19. attribute_node_init();
  20. camera_data_node_init();
  21. rgb_node_init(); // color_node_init
  22. fresnel_node_init();
  23. geometry_node_init();
  24. layer_node_init();
  25. layer_mask_node_init();
  26. layer_weight_node_init();
  27. material_node_init();
  28. object_info_node_init();
  29. picker_node_init();
  30. script_node_init();
  31. shader_node_init();
  32. tangent_node_init();
  33. texture_coordinate_node_init();
  34. uv_map_node_init();
  35. value_node_init();
  36. wireframe_node_init();
  37. nodes_material_texture = [];
  38. brick_texture_node_init();
  39. camera_texture_node_init();
  40. checker_texture_node_init();
  41. curvature_bake_node_init();
  42. gradient_texture_node_init();
  43. image_texture_node_init();
  44. text_texture_node_init();
  45. magic_texture_node_init();
  46. noise_texture_node_init();
  47. voronoi_texture_node_init();
  48. wave_texture_node_init();
  49. gabor_texture_node_init();
  50. nodes_material_color = [];
  51. blur_node_init();
  52. brightness_contrast_node_init();
  53. gamma_node_init();
  54. hue_saturation_value_node_init();
  55. invert_color_node_init();
  56. mix_color_node_init();
  57. quantize_node_init();
  58. replace_color_node_init();
  59. warp_node_init();
  60. nodes_material_utilities = [];
  61. bump_node_init();
  62. mapping_node_init();
  63. mix_normal_map_node_init();
  64. normal_node_init();
  65. normal_map_node_init();
  66. vector_curves_node_init();
  67. clamp_node_init();
  68. color_ramp_node_init();
  69. color_mask_node_init();
  70. combine_xyz_node_init();
  71. map_range_node_init();
  72. math2_node_init();
  73. rgb_to_bw_node_init();
  74. separate_xyz_node_init();
  75. vector_math2_node_init();
  76. /// if (arm_windows || arm_linux || arm_macos)
  77. nodes_material_neural = [];
  78. edit_image_node_init();
  79. /// if arm_windows
  80. image_to_3d_mesh_node_init();
  81. /// end
  82. image_to_depth_node_init();
  83. image_to_normal_map_node_init();
  84. image_to_pbr_node_init();
  85. inpaint_image_node_init();
  86. outpaint_image_node_init();
  87. text_to_image_node_init();
  88. tile_image_node_init();
  89. upscale_image_node_init();
  90. vary_image_node_init();
  91. /// end
  92. nodes_material_group = [];
  93. group_node_init();
  94. /// if (arm_windows || arm_linux || arm_macos)
  95. nodes_material_list =
  96. [ nodes_material_input, nodes_material_texture, nodes_material_color, nodes_material_utilities, nodes_material_neural, nodes_material_group ];
  97. /// else
  98. nodes_material_list = [ nodes_material_input, nodes_material_texture, nodes_material_color, nodes_material_utilities, nodes_material_group ];
  99. /// end
  100. }
  101. function nodes_material_get_node_t(node_type: string): ui_node_t {
  102. for (let i: i32 = 0; i < nodes_material_list.length; ++i) {
  103. let c: ui_node_t[] = nodes_material_list[i];
  104. for (let i: i32 = 0; i < c.length; ++i) {
  105. let n: ui_node_t = c[i];
  106. if (n.type == node_type) {
  107. return n;
  108. }
  109. }
  110. }
  111. return null;
  112. }
  113. function nodes_material_create_node(node_type: string, group: node_group_t = null): ui_node_t {
  114. let n: ui_node_t = nodes_material_get_node_t(node_type);
  115. if (n == null) {
  116. return null;
  117. }
  118. let canvas: ui_node_canvas_t = group != null ? group.canvas : ui_nodes_get_canvas();
  119. let nodes: ui_nodes_t = group != null ? group.nodes : context_raw.material.nodes;
  120. let node: ui_node_t = ui_nodes_make_node(n, nodes, canvas);
  121. array_push(canvas.nodes, node);
  122. return node;
  123. }