From 0f8232645b2b1f504268ae3502511e4988ebc18b Mon Sep 17 00:00:00 2001 From: Tanasart <22589759+Ttanasart-pt@users.noreply.github.com> Date: Thu, 31 Aug 2023 16:58:13 +0200 Subject: [PATCH] - [Path] Fix inspector not showing the right anchor list. --- PixelComposer.resource_order | 14 +- PixelComposer.yyp | 15 +- datafiles/data/themes/default.zip | Bin 3947928 -> 3947911 bytes scripts/__bone/__bone.gml | 2 +- .../__matrix3.gml} | 0 scripts/__matrix3/__matrix3.yy | 11 ++ .../__matrix4.gml} | 0 scripts/__matrix4/__matrix4.yy | 11 ++ scripts/__mesh/__mesh.gml | 2 +- scripts/__path/__path.gml | 8 +- scripts/__point/__point.gml | 26 --- scripts/__point/__point.yy | 11 -- scripts/__polygon/__polygon.gml | 2 +- scripts/__shapes/__shapes.gml | 114 +++++------ scripts/__strandSim/__strandSim.gml | 4 +- scripts/__vec2/__vec2.gml | 181 ++++++++++++++++++ .../d3d_vec3.yy => __vec2/__vec2.yy} | 6 +- .../d3d_vec3.gml => __vec3/__vec3.gml} | 151 +++++++-------- .../d3d_vec2.yy => __vec3/__vec3.yy} | 6 +- .../d3d_vec4.gml => __vec4/__vec4.gml} | 2 +- .../d3d_vec4.yy => __vec4/__vec4.yy} | 6 +- .../d3_vector.gml => __vector/__vector.gml} | 0 .../d3_vector.yy => __vector/__vector.yy} | 6 +- scripts/checkboxGroup/checkboxGroup.gml | 4 +- scripts/d3d_matrix3/d3d_matrix3.yy | 11 -- scripts/d3d_matrix4/d3d_matrix4.yy | 11 -- scripts/d3d_scene/d3d_scene.gml | 26 +-- scripts/d3d_vec2/d3d_vec2.gml | 36 ---- scripts/delau_helper/delau_helper.gml | 6 +- scripts/globals/globals.gml | 6 +- scripts/node_3d_camera/node_3d_camera.gml | 6 + .../node_armature_to_path.gml | 6 +- scripts/node_collection/node_collection.gml | 4 +- scripts/node_data/node_data.gml | 2 + .../node_mesh_to_path/node_mesh_to_path.gml | 2 +- scripts/node_path/node_path.gml | 153 ++++++++------- scripts/node_path_array/node_path_array.gml | 12 +- scripts/node_path_blend/node_path_blend.gml | 4 +- .../node_path_builder/node_path_builder.gml | 12 +- .../node_path_l_system/node_path_l_system.gml | 6 +- .../node_path_map_area/node_path_map_area.gml | 2 +- scripts/node_path_plot/node_path_plot.gml | 4 +- .../node_path_reverse/node_path_reverse.gml | 2 +- scripts/node_path_shift/node_path_shift.gml | 2 +- .../node_path_transform.gml | 2 +- scripts/node_path_trim/node_path_trim.gml | 2 +- scripts/node_path_wave/node_path_wave.gml | 2 +- scripts/panel_preview/panel_preview.gml | 9 +- 48 files changed, 523 insertions(+), 387 deletions(-) rename scripts/{d3d_matrix3/d3d_matrix3.gml => __matrix3/__matrix3.gml} (100%) create mode 100644 scripts/__matrix3/__matrix3.yy rename scripts/{d3d_matrix4/d3d_matrix4.gml => __matrix4/__matrix4.gml} (100%) create mode 100644 scripts/__matrix4/__matrix4.yy delete mode 100644 scripts/__point/__point.gml delete mode 100644 scripts/__point/__point.yy create mode 100644 scripts/__vec2/__vec2.gml rename scripts/{d3d_vec3/d3d_vec3.yy => __vec2/__vec2.yy} (59%) rename scripts/{d3d_vec3/d3d_vec3.gml => __vec3/__vec3.gml} (68%) rename scripts/{d3d_vec2/d3d_vec2.yy => __vec3/__vec3.yy} (59%) rename scripts/{d3d_vec4/d3d_vec4.gml => __vec4/__vec4.gml} (98%) rename scripts/{d3d_vec4/d3d_vec4.yy => __vec4/__vec4.yy} (59%) rename scripts/{d3_vector/d3_vector.gml => __vector/__vector.gml} (100%) rename scripts/{d3_vector/d3_vector.yy => __vector/__vector.yy} (59%) delete mode 100644 scripts/d3d_matrix3/d3d_matrix3.yy delete mode 100644 scripts/d3d_matrix4/d3d_matrix4.yy delete mode 100644 scripts/d3d_vec2/d3d_vec2.gml diff --git a/PixelComposer.resource_order b/PixelComposer.resource_order index 2af2f5176..774d3f93e 100644 --- a/PixelComposer.resource_order +++ b/PixelComposer.resource_order @@ -77,6 +77,7 @@ {"name":"__legacy","order":5,"path":"folders/nodes/data/3D/__legacy.yy",}, {"name":"primitive","order":9,"path":"folders/nodes/data/3D/__legacy/primitive.yy",}, {"name":"2d effects","order":7,"path":"folders/nodes/data/3D/2d effects.yy",}, + {"name":"d3d compose","order":17,"path":"folders/nodes/data/3D/d3d compose.yy",}, {"name":"d3d light","order":14,"path":"folders/nodes/data/3D/d3d light.yy",}, {"name":"d3d mesh","order":12,"path":"folders/nodes/data/3D/d3d mesh.yy",}, {"name":"animation","order":6,"path":"folders/nodes/data/animation.yy",}, @@ -192,7 +193,6 @@ {"name":"biterator","order":2,"path":"folders/VCT/biterator.yy",}, {"name":"widget","order":3,"path":"folders/VCT/widget.yy",}, {"name":"widgets","order":5,"path":"folders/widgets.yy",}, - {"name":"d3d compose","order":17,"path":"folders/nodes/data/3D/d3d compose.yy",}, ], "ResourceOrderSettings": [ {"name":"s_node_corner","order":16,"path":"sprites/s_node_corner/s_node_corner.yy",}, @@ -214,7 +214,7 @@ {"name":"s_node_normal","order":30,"path":"sprites/s_node_normal/s_node_normal.yy",}, {"name":"node_pixel_sort","order":12,"path":"scripts/node_pixel_sort/node_pixel_sort.yy",}, {"name":"sh_dither","order":28,"path":"shaders/sh_dither/sh_dither.yy",}, - {"name":"d3d_vec2","order":11,"path":"scripts/d3d_vec2/d3d_vec2.yy",}, + {"name":"__vec2","order":7,"path":"scripts/__vec2/__vec2.yy",}, {"name":"node_region_fill","order":20,"path":"scripts/node_region_fill/node_region_fill.yy",}, {"name":"sh_d3d_normal","order":18,"path":"shaders/sh_d3d_normal/sh_d3d_normal.yy",}, {"name":"s_node_text_file_read","order":13,"path":"sprites/s_node_text_file_read/s_node_text_file_read.yy",}, @@ -326,7 +326,6 @@ {"name":"sh_mesh_generation","order":4,"path":"shaders/sh_mesh_generation/sh_mesh_generation.yy",}, {"name":"math_function","order":7,"path":"scripts/math_function/math_function.yy",}, {"name":"panel_preview_snap_setting","order":5,"path":"scripts/panel_preview_snap_setting/panel_preview_snap_setting.yy",}, - {"name":"__point","order":4,"path":"scripts/__point/__point.yy",}, {"name":"scrollBox","order":13,"path":"scripts/scrollBox/scrollBox.yy",}, {"name":"o_dialog_exit","order":2,"path":"objects/o_dialog_exit/o_dialog_exit.yy",}, {"name":"node_polygonal_shape","order":10,"path":"scripts/node_polygonal_shape/node_polygonal_shape.yy",}, @@ -365,7 +364,7 @@ {"name":"node_pb_fx_strip","order":11,"path":"scripts/node_pb_fx_strip/node_pb_fx_strip.yy",}, {"name":"node_stripe","order":4,"path":"scripts/node_stripe/node_stripe.yy",}, {"name":"sh_texture_atlas","order":39,"path":"shaders/sh_texture_atlas/sh_texture_atlas.yy",}, - {"name":"d3d_vec4","order":5,"path":"scripts/d3d_vec4/d3d_vec4.yy",}, + {"name":"__vec4","order":9,"path":"scripts/__vec4/__vec4.yy",}, {"name":"s_node_fluidSim_domain","order":6,"path":"sprites/s_node_fluidSim_domain/s_node_fluidSim_domain.yy",}, {"name":"s_node_displace","order":20,"path":"sprites/s_node_displace/s_node_displace.yy",}, {"name":"sh_polar","order":1,"path":"shaders/sh_polar/sh_polar.yy",}, @@ -735,7 +734,7 @@ {"name":"s_node_lua_surface","order":18,"path":"sprites/s_node_lua_surface/s_node_lua_surface.yy",}, {"name":"node_data","order":1,"path":"scripts/node_data/node_data.yy",}, {"name":"node_wiggler","order":2,"path":"scripts/node_wiggler/node_wiggler.yy",}, - {"name":"d3d_matrix4","order":1,"path":"scripts/d3d_matrix4/d3d_matrix4.yy",}, + {"name":"__matrix4","order":6,"path":"scripts/__matrix4/__matrix4.yy",}, {"name":"fd_GUIDE","order":5,"path":"scripts/fd_GUIDE/fd_GUIDE.yy",}, {"name":"node_fluid_update","order":3,"path":"scripts/node_fluid_update/node_fluid_update.yy",}, {"name":"s_node_grid_noise","order":5,"path":"sprites/s_node_grid_noise/s_node_grid_noise.yy",}, @@ -950,7 +949,7 @@ {"name":"s_node_fluidSim_domain_queue","order":9,"path":"sprites/s_node_fluidSim_domain_queue/s_node_fluidSim_domain_queue.yy",}, {"name":"sh_d3d_shadow_cube_depth","order":20,"path":"shaders/sh_d3d_shadow_cube_depth/sh_d3d_shadow_cube_depth.yy",}, {"name":"s_node_vfx_spawn","order":2,"path":"sprites/s_node_vfx_spawn/s_node_vfx_spawn.yy",}, - {"name":"d3d_vec3","order":4,"path":"scripts/d3d_vec3/d3d_vec3.yy",}, + {"name":"__vec3","order":8,"path":"scripts/__vec3/__vec3.yy",}, {"name":"texture_set_repeat","order":1,"path":"scripts/texture_set_repeat/texture_set_repeat.yy",}, {"name":"o_dialog_color_quick_pick","order":5,"path":"objects/o_dialog_color_quick_pick/o_dialog_color_quick_pick.yy",}, {"name":"fd_rectangle_update_velocity","order":22,"path":"scripts/fd_rectangle_update_velocity/fd_rectangle_update_velocity.yy",}, @@ -1193,7 +1192,7 @@ {"name":"node_blur_contrast","order":1,"path":"scripts/node_blur_contrast/node_blur_contrast.yy",}, {"name":"sh_trail_filler","order":50,"path":"shaders/sh_trail_filler/sh_trail_filler.yy",}, {"name":"s_node_border","order":12,"path":"sprites/s_node_border/s_node_border.yy",}, - {"name":"d3_vector","order":7,"path":"scripts/d3_vector/d3_vector.yy",}, + {"name":"__vector","order":10,"path":"scripts/__vector/__vector.yy",}, {"name":"s_node_pin","order":2,"path":"sprites/s_node_pin/s_node_pin.yy",}, {"name":"node_local_analyze","order":17,"path":"scripts/node_local_analyze/node_local_analyze.yy",}, {"name":"s_node_blur_contrast","order":10,"path":"sprites/s_node_blur_contrast/s_node_blur_contrast.yy",}, @@ -1437,6 +1436,7 @@ {"name":"__node_value_processor","order":6,"path":"scripts/__node_value_processor/__node_value_processor.yy",}, {"name":"s_node_group_input","order":16,"path":"sprites/s_node_group_input/s_node_group_input.yy",}, {"name":"sample_projects","order":6,"path":"scripts/sample_projects/sample_projects.yy",}, + {"name":"__matrix3","order":5,"path":"scripts/__matrix3/__matrix3.yy",}, {"name":"draw_fit","order":12,"path":"scripts/draw_fit/draw_fit.yy",}, {"name":"node_armature_sample","order":5,"path":"scripts/node_armature_sample/node_armature_sample.yy",}, {"name":"sh_pb_shade","order":3,"path":"shaders/sh_pb_shade/sh_pb_shade.yy",}, diff --git a/PixelComposer.yyp b/PixelComposer.yyp index ec7f040b9..ff0161ef3 100644 --- a/PixelComposer.yyp +++ b/PixelComposer.yyp @@ -101,6 +101,7 @@ {"resourceType":"GMFolder","resourceVersion":"1.0","name":"__legacy","folderPath":"folders/nodes/data/3D/__legacy.yy",}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"primitive","folderPath":"folders/nodes/data/3D/__legacy/primitive.yy",}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"2d effects","folderPath":"folders/nodes/data/3D/2d effects.yy",}, + {"resourceType":"GMFolder","resourceVersion":"1.0","name":"d3d compose","folderPath":"folders/nodes/data/3D/d3d compose.yy",}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"d3d light","folderPath":"folders/nodes/data/3D/d3d light.yy",}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"d3d mesh","folderPath":"folders/nodes/data/3D/d3d mesh.yy",}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"animation","folderPath":"folders/nodes/data/animation.yy",}, @@ -230,7 +231,6 @@ {"resourceType":"GMFolder","resourceVersion":"1.0","name":"biterator","folderPath":"folders/VCT/biterator.yy",}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"widget","folderPath":"folders/VCT/widget.yy",}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"widgets","folderPath":"folders/widgets.yy",}, - {"resourceType":"GMFolder","resourceVersion":"1.0","name":"d3d compose","folderPath":"folders/nodes/data/3D/d3d compose.yy",}, ], "IncludedFiles": [ {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"ApolloHelp.html","ConfigValues":{"Itch":{"CopyToMask":"0",},},"CopyToMask":-1,"filePath":"datafiles",}, @@ -731,7 +731,7 @@ {"id":{"name":"s_node_normal","path":"sprites/s_node_normal/s_node_normal.yy",},}, {"id":{"name":"node_pixel_sort","path":"scripts/node_pixel_sort/node_pixel_sort.yy",},}, {"id":{"name":"sh_dither","path":"shaders/sh_dither/sh_dither.yy",},}, - {"id":{"name":"d3d_vec2","path":"scripts/d3d_vec2/d3d_vec2.yy",},}, + {"id":{"name":"__vec2","path":"scripts/__vec2/__vec2.yy",},}, {"id":{"name":"control_function","path":"scripts/control_function/control_function.yy",},}, {"id":{"name":"node_region_fill","path":"scripts/node_region_fill/node_region_fill.yy",},}, {"id":{"name":"sh_d3d_normal","path":"shaders/sh_d3d_normal/sh_d3d_normal.yy",},}, @@ -861,7 +861,6 @@ {"id":{"name":"sh_mesh_generation","path":"shaders/sh_mesh_generation/sh_mesh_generation.yy",},}, {"id":{"name":"math_function","path":"scripts/math_function/math_function.yy",},}, {"id":{"name":"panel_preview_snap_setting","path":"scripts/panel_preview_snap_setting/panel_preview_snap_setting.yy",},}, - {"id":{"name":"__point","path":"scripts/__point/__point.yy",},}, {"id":{"name":"node_strand_sim","path":"scripts/node_strand_sim/node_strand_sim.yy",},}, {"id":{"name":"scrollBox","path":"scripts/scrollBox/scrollBox.yy",},}, {"id":{"name":"o_dialog_exit","path":"objects/o_dialog_exit/o_dialog_exit.yy",},}, @@ -906,7 +905,7 @@ {"id":{"name":"node_pb_fx_strip","path":"scripts/node_pb_fx_strip/node_pb_fx_strip.yy",},}, {"id":{"name":"node_stripe","path":"scripts/node_stripe/node_stripe.yy",},}, {"id":{"name":"sh_texture_atlas","path":"shaders/sh_texture_atlas/sh_texture_atlas.yy",},}, - {"id":{"name":"d3d_vec4","path":"scripts/d3d_vec4/d3d_vec4.yy",},}, + {"id":{"name":"__vec4","path":"scripts/__vec4/__vec4.yy",},}, {"id":{"name":"s_node_fluidSim_domain","path":"sprites/s_node_fluidSim_domain/s_node_fluidSim_domain.yy",},}, {"id":{"name":"s_node_displace","path":"sprites/s_node_displace/s_node_displace.yy",},}, {"id":{"name":"sh_polar","path":"shaders/sh_polar/sh_polar.yy",},}, @@ -1330,7 +1329,7 @@ {"id":{"name":"s_node_lua_surface","path":"sprites/s_node_lua_surface/s_node_lua_surface.yy",},}, {"id":{"name":"node_data","path":"scripts/node_data/node_data.yy",},}, {"id":{"name":"node_wiggler","path":"scripts/node_wiggler/node_wiggler.yy",},}, - {"id":{"name":"d3d_matrix4","path":"scripts/d3d_matrix4/d3d_matrix4.yy",},}, + {"id":{"name":"__matrix4","path":"scripts/__matrix4/__matrix4.yy",},}, {"id":{"name":"fd_GUIDE","path":"scripts/fd_GUIDE/fd_GUIDE.yy",},}, {"id":{"name":"node_fluid_update","path":"scripts/node_fluid_update/node_fluid_update.yy",},}, {"id":{"name":"s_node_checker","path":"sprites/s_node_checker/s_node_checker.yy",},}, @@ -1568,7 +1567,7 @@ {"id":{"name":"sh_d3d_shadow_cube_depth","path":"shaders/sh_d3d_shadow_cube_depth/sh_d3d_shadow_cube_depth.yy",},}, {"id":{"name":"sh_camera","path":"shaders/sh_camera/sh_camera.yy",},}, {"id":{"name":"s_node_vfx_spawn","path":"sprites/s_node_vfx_spawn/s_node_vfx_spawn.yy",},}, - {"id":{"name":"d3d_vec3","path":"scripts/d3d_vec3/d3d_vec3.yy",},}, + {"id":{"name":"__vec3","path":"scripts/__vec3/__vec3.yy",},}, {"id":{"name":"texture_set_repeat","path":"scripts/texture_set_repeat/texture_set_repeat.yy",},}, {"id":{"name":"o_dialog_color_quick_pick","path":"objects/o_dialog_color_quick_pick/o_dialog_color_quick_pick.yy",},}, {"id":{"name":"fd_rectangle_update_velocity","path":"scripts/fd_rectangle_update_velocity/fd_rectangle_update_velocity.yy",},}, @@ -1849,7 +1848,7 @@ {"id":{"name":"s_fx_pixel","path":"sprites/s_fx_pixel/s_fx_pixel.yy",},}, {"id":{"name":"gradients_function","path":"scripts/gradients_function/gradients_function.yy",},}, {"id":{"name":"s_node_border","path":"sprites/s_node_border/s_node_border.yy",},}, - {"id":{"name":"d3_vector","path":"scripts/d3_vector/d3_vector.yy",},}, + {"id":{"name":"__vector","path":"scripts/__vector/__vector.yy",},}, {"id":{"name":"s_node_pin","path":"sprites/s_node_pin/s_node_pin.yy",},}, {"id":{"name":"s_node_9patch","path":"sprites/s_node_9patch/s_node_9patch.yy",},}, {"id":{"name":"node_local_analyze","path":"scripts/node_local_analyze/node_local_analyze.yy",},}, @@ -2131,7 +2130,7 @@ {"id":{"name":"s_node_group_input","path":"sprites/s_node_group_input/s_node_group_input.yy",},}, {"id":{"name":"sample_projects","path":"scripts/sample_projects/sample_projects.yy",},}, {"id":{"name":"load_function","path":"scripts/load_function/load_function.yy",},}, - {"id":{"name":"d3d_matrix3","path":"scripts/d3d_matrix3/d3d_matrix3.yy",},}, + {"id":{"name":"__matrix3","path":"scripts/__matrix3/__matrix3.yy",},}, {"id":{"name":"draw_fit","path":"scripts/draw_fit/draw_fit.yy",},}, {"id":{"name":"node_armature_sample","path":"scripts/node_armature_sample/node_armature_sample.yy",},}, {"id":{"name":"sh_pb_shade","path":"shaders/sh_pb_shade/sh_pb_shade.yy",},}, diff --git a/datafiles/data/themes/default.zip b/datafiles/data/themes/default.zip index a3e6a9f1fd640695d6cf444e8a0706f6b46e4b57..b3131a5a48e1f2d6137b967a0459b76ac1d6027b 100644 GIT binary patch delta 11232 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 delta 11268 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 ICc#JgALGq4a{vGU diff --git a/scripts/__bone/__bone.gml b/scripts/__bone/__bone.gml index 8c4338fe2..50cf21782 100644 --- a/scripts/__bone/__bone.gml +++ b/scripts/__bone/__bone.gml @@ -105,7 +105,7 @@ function __Bone(parent = noone, distance = 0, direction = 0, angle = 0, length = var len = _len * progress; if(parent == noone) - return new Point(lengthdir_x(distance, direction), lengthdir_y(distance, direction)) + return new __vec2(lengthdir_x(distance, direction), lengthdir_y(distance, direction)) .add(lengthdir_x(len, _ang), lengthdir_y(len, _ang)); if(parent_anchor) { diff --git a/scripts/d3d_matrix3/d3d_matrix3.gml b/scripts/__matrix3/__matrix3.gml similarity index 100% rename from scripts/d3d_matrix3/d3d_matrix3.gml rename to scripts/__matrix3/__matrix3.gml diff --git a/scripts/__matrix3/__matrix3.yy b/scripts/__matrix3/__matrix3.yy new file mode 100644 index 000000000..e268db1c9 --- /dev/null +++ b/scripts/__matrix3/__matrix3.yy @@ -0,0 +1,11 @@ +{ + "resourceType": "GMScript", + "resourceVersion": "1.0", + "name": "__matrix3", + "isCompatibility": false, + "isDnD": false, + "parent": { + "name": "vector", + "path": "folders/functions/vector.yy", + }, +} \ No newline at end of file diff --git a/scripts/d3d_matrix4/d3d_matrix4.gml b/scripts/__matrix4/__matrix4.gml similarity index 100% rename from scripts/d3d_matrix4/d3d_matrix4.gml rename to scripts/__matrix4/__matrix4.gml diff --git a/scripts/__matrix4/__matrix4.yy b/scripts/__matrix4/__matrix4.yy new file mode 100644 index 000000000..e7b3a82c7 --- /dev/null +++ b/scripts/__matrix4/__matrix4.yy @@ -0,0 +1,11 @@ +{ + "resourceType": "GMScript", + "resourceVersion": "1.0", + "name": "__matrix4", + "isCompatibility": false, + "isDnD": false, + "parent": { + "name": "vector", + "path": "folders/functions/vector.yy", + }, +} \ No newline at end of file diff --git a/scripts/__mesh/__mesh.gml b/scripts/__mesh/__mesh.gml index c81a63d7d..f9097ce81 100644 --- a/scripts/__mesh/__mesh.gml +++ b/scripts/__mesh/__mesh.gml @@ -16,7 +16,7 @@ function Mesh() constructor { var _x = (1 - sqrt(a1)) * p0.x + (sqrt(a1) * (1 - a2)) * p1.x + (sqrt(a1) * a2) * p2.x; var _y = (1 - sqrt(a1)) * p0.y + (sqrt(a1) * (1 - a2)) * p1.y + (sqrt(a1) * a2) * p2.y; - return new Point( _x, _y ); + return new __vec2( _x, _y ); } static draw = function(_x, _y, _s) { diff --git a/scripts/__path/__path.gml b/scripts/__path/__path.gml index 635ee0ad9..18824dfc5 100644 --- a/scripts/__path/__path.gml +++ b/scripts/__path/__path.gml @@ -12,9 +12,9 @@ function Path() constructor { static getLineCount = function() { return 1; } static getTangentRatio = function(_rat) { return 0; } - static getPointDistance = function(_seg) { return new Point(0, 0); } - static getPointSegment = function(_seg) { return new Point(0, 0); } - static getPointRatio = function(_rat) { return new Point(0, 0); } + static getPointDistance = function(_seg) { return new __vec2(0, 0); } + static getPointSegment = function(_seg) { return new __vec2(0, 0); } + static getPointRatio = function(_rat) { return new __vec2(0, 0); } } function PathSegment() : Path() constructor { @@ -69,7 +69,7 @@ function PathSegment() : Path() constructor { _dist -= lengths[i]; } - return new Point(0, 0); + return new __vec2(0, 0); } static getPointSegment = function(_seg) { diff --git a/scripts/__point/__point.gml b/scripts/__point/__point.gml deleted file mode 100644 index 2136cfefc..000000000 --- a/scripts/__point/__point.gml +++ /dev/null @@ -1,26 +0,0 @@ -function Point(x = 0, y = 0) constructor { - if(is_array(x)) { - self.x = x[0]; - self.y = x[1]; - } else { - self.x = x; - self.y = y; - } - - u = 0; - v = 0; - - static add = function(x, y) { self.x += x; self.y += y; return self; } - static addPoint = function(p) { self.x += p.x; self.y += p.y; return self; } - - static _add = function(x, y) { return new Point(self.x + x, self.y + y); } - static _addPoint = function(p) { return new Point(self.x + p.x, self.y + p.y); } - - static lerpTo = function(p, rat) { return new Point( lerp(x, p.x, rat), lerp(y, p.y, rat) ); } - static directionTo = function(p) { return point_direction(x, y, p.x, p.y); } - static distanceTo = function(p) { return point_distance(x, y, p.x, p.y); } - - static equal = function(p) { return x == p.x && y == p.y; } - static clone = function(){ return new Point(x, y); } - static toArray = function() { return [ x, y ]; } -} \ No newline at end of file diff --git a/scripts/__point/__point.yy b/scripts/__point/__point.yy deleted file mode 100644 index 02a2f66a2..000000000 --- a/scripts/__point/__point.yy +++ /dev/null @@ -1,11 +0,0 @@ -{ - "resourceType": "GMScript", - "resourceVersion": "1.0", - "name": "__point", - "isCompatibility": false, - "isDnD": false, - "parent": { - "name": "geometry", - "path": "folders/functions/geometry.yy", - }, -} \ No newline at end of file diff --git a/scripts/__polygon/__polygon.gml b/scripts/__polygon/__polygon.gml index 4ecff566a..5e28e1f4d 100644 --- a/scripts/__polygon/__polygon.gml +++ b/scripts/__polygon/__polygon.gml @@ -197,7 +197,7 @@ function polygon_triangulate_convex_fan(points) { cx /= amo; cy /= amo; - var pc = new Point(cx, cy); + var pc = new __vec2(cx, cy); for( var i = 0; i < amo; i++ ) { array_push(triangles, [ points[i], points[(i + 1) % amo], pc ]); } diff --git a/scripts/__shapes/__shapes.gml b/scripts/__shapes/__shapes.gml index fb40985b6..25f0ef24a 100644 --- a/scripts/__shapes/__shapes.gml +++ b/scripts/__shapes/__shapes.gml @@ -8,12 +8,12 @@ function SHAPE_rectangle(_sca) { var triangles = [ - [ new Point(-_sca[0], -_sca[1]), new Point( _sca[0], -_sca[1]), new Point(-_sca[0], _sca[1]) ], - [ new Point( _sca[0], -_sca[1]), new Point(-_sca[0], _sca[1]), new Point( _sca[0], _sca[1]) ], + [ new __vec2(-_sca[0], -_sca[1]), new __vec2( _sca[0], -_sca[1]), new __vec2(-_sca[0], _sca[1]) ], + [ new __vec2( _sca[0], -_sca[1]), new __vec2(-_sca[0], _sca[1]), new __vec2( _sca[0], _sca[1]) ], ]; - var segment = [ new Point(-_sca[0], -_sca[1]), new Point( _sca[0], -_sca[1]), - new Point( _sca[0], _sca[1]), new Point(-_sca[0], _sca[1]), - new Point(-_sca[0], -_sca[1]) ]; + var segment = [ new __vec2(-_sca[0], -_sca[1]), new __vec2( _sca[0], -_sca[1]), + new __vec2( _sca[0], _sca[1]), new __vec2(-_sca[0], _sca[1]), + new __vec2(-_sca[0], -_sca[1]) ]; return [ [{ type: SHAPE_TYPE.triangles, triangles: triangles }], @@ -33,10 +33,10 @@ var x1 = lengthdir_x(0.5, (i + 1) * ang) * _sca[0] * 2; var y1 = lengthdir_y(0.5, (i + 1) * ang) * _sca[1] * 2; - array_push(triangles, [ new Point(0, 0), new Point(x0, y0), new Point(x1, y1) ]); + array_push(triangles, [ new __vec2(0, 0), new __vec2(x0, y0), new __vec2(x1, y1) ]); - if(i == 0) array_push(segment, new Point(x0, y0)); - array_push(segment, new Point(x1, y1)); + if(i == 0) array_push(segment, new __vec2(x0, y0)); + array_push(segment, new __vec2(x1, y1)); } return [ @@ -57,16 +57,16 @@ var inx = lengthdir_x(inner / 2, (i + 0.5) / prec * 360) * _sca[0] * 2; var iny = lengthdir_y(inner / 2, (i + 0.5) / prec * 360) * _sca[1] * 2; - array_push(triangles, [ new Point(0, 0), new Point(otx, oty), new Point(inx, iny) ]); + array_push(triangles, [ new __vec2(0, 0), new __vec2(otx, oty), new __vec2(inx, iny) ]); - var pi0 = new Point(inx, iny); + var pi0 = new __vec2(inx, iny); var inx = lengthdir_x(inner / 2, (i - 0.5) / prec * 360) * _sca[0] * 2; var iny = lengthdir_y(inner / 2, (i - 0.5) / prec * 360) * _sca[1] * 2; - array_push(triangles, [ new Point(0, 0), new Point(otx, oty), new Point(inx, iny) ]); + array_push(triangles, [ new __vec2(0, 0), new __vec2(otx, oty), new __vec2(inx, iny) ]); - array_push(segment, new Point(inx, iny)); - array_push(segment, new Point(otx, oty)); + array_push(segment, new __vec2(inx, iny)); + array_push(segment, new __vec2(otx, oty)); array_push(segment, pi0); } @@ -82,11 +82,11 @@ var hh = _sca[1] * rad; var shapes = []; var segment = []; - array_push(segment, new Point(-_sca[0] + _sca[1], _sca[1]), new Point( _sca[0] - hh, hh)); + array_push(segment, new __vec2(-_sca[0] + _sca[1], _sca[1]), new __vec2( _sca[0] - hh, hh)); var triangles = [ - [ new Point(-_sca[0] + _sca[1], -_sca[1]), new Point( _sca[0] - hh, -hh), new Point(-_sca[0] + _sca[1], _sca[1]) ], - [ new Point( _sca[0] - hh, -hh), new Point(-_sca[0] + _sca[1], _sca[1]), new Point( _sca[0] - hh, hh) ], + [ new __vec2(-_sca[0] + _sca[1], -_sca[1]), new __vec2( _sca[0] - hh, -hh), new __vec2(-_sca[0] + _sca[1], _sca[1]) ], + [ new __vec2( _sca[0] - hh, -hh), new __vec2(-_sca[0] + _sca[1], _sca[1]), new __vec2( _sca[0] - hh, hh) ], ]; shapes[0] = { type: SHAPE_TYPE.triangles, triangles: triangles }; @@ -100,17 +100,17 @@ ny = cy + lengthdir_y(_sca[1], na); if(i) { - array_push(triangles, [ new Point(cx, cy), new Point(ox, oy), new Point(nx, ny) ]); - array_push(segment, new Point(ox, oy)); + array_push(triangles, [ new __vec2(cx, cy), new __vec2(ox, oy), new __vec2(nx, ny) ]); + array_push(segment, new __vec2(ox, oy)); } - array_push(segment, new Point(nx, ny)); + array_push(segment, new __vec2(nx, ny)); oa = na; ox = nx; oy = ny; } - array_push(segment, new Point(-_sca[0] + _sca[1], -_sca[1]), new Point( _sca[0] - hh, -hh)); + array_push(segment, new __vec2(-_sca[0] + _sca[1], -_sca[1]), new __vec2( _sca[0] - hh, -hh)); shapes[1] = { type: SHAPE_TYPE.triangles, triangles: triangles }; var triangles = []; @@ -124,10 +124,10 @@ ny = cy + lengthdir_y(hh, na); if(i) { - array_push(triangles, [ new Point(cx, cy), new Point(ox, oy), new Point(nx, ny) ]); - array_push(_seg, new Point(ox, oy)); + array_push(triangles, [ new __vec2(cx, cy), new __vec2(ox, oy), new __vec2(nx, ny) ]); + array_push(_seg, new __vec2(ox, oy)); } - array_push(_seg, new Point(nx, ny)); + array_push(_seg, new __vec2(nx, ny)); oa = na; ox = nx; @@ -164,12 +164,12 @@ var nx1 = lengthdir_x(0.5, (i + 1) / prec * 360) * _sca[0] * 2; var ny1 = lengthdir_y(0.5, (i + 1) / prec * 360) * _sca[1] * 2; - array_push(triangles, [ new Point(ix0, iy0), new Point(nx0, ny0), new Point(nx1, ny1) ]); - array_push(triangles, [ new Point(ix0, iy0), new Point(nx1, ny1), new Point(ix1, iy1) ]); + array_push(triangles, [ new __vec2(ix0, iy0), new __vec2(nx0, ny0), new __vec2(nx1, ny1) ]); + array_push(triangles, [ new __vec2(ix0, iy0), new __vec2(nx1, ny1), new __vec2(ix1, iy1) ]); if(i == 0) - array_push(segment, new Point(nx0, ny0)); - array_push(segment, new Point(nx1, ny1)); + array_push(segment, new __vec2(nx0, ny0)); + array_push(segment, new __vec2(nx1, ny1)); } return [ @@ -202,11 +202,11 @@ var nx1 = lengthdir_x(body, (i + 1) / prec * 360) * _sca[0] * 2; var ny1 = lengthdir_y(body, (i + 1) / prec * 360) * _sca[1] * 2; - array_push(triangles, [ new Point(ix0, iy0), new Point(nx0, ny0), new Point(nx1, ny1) ]); - array_push(triangles, [ new Point(ix0, iy0), new Point(nx1, ny1), new Point(ix1, iy1) ]); + array_push(triangles, [ new __vec2(ix0, iy0), new __vec2(nx0, ny0), new __vec2(nx1, ny1) ]); + array_push(triangles, [ new __vec2(ix0, iy0), new __vec2(nx1, ny1), new __vec2(ix1, iy1) ]); if(i == 0) - array_push(segment, new Point(nx0, ny0)); + array_push(segment, new __vec2(nx0, ny0)); if(i % 2) { var tx0 = nx0 + lengthdir_x(teth, (i + 0.5 - teethT) / prec * 360) * _sca[0] * 2; @@ -215,14 +215,14 @@ var tx1 = nx1 + lengthdir_x(teth, (i + 0.5 + teethT) / prec * 360) * _sca[0] * 2; var ty1 = ny1 + lengthdir_y(teth, (i + 0.5 + teethT) / prec * 360) * _sca[1] * 2; - array_push(triangles, [ new Point(tx0, ty0), new Point(nx0, ny0), new Point(nx1, ny1) ]); - array_push(triangles, [ new Point(tx0, ty0), new Point(nx1, ny1), new Point(tx1, ty1) ]); + array_push(triangles, [ new __vec2(tx0, ty0), new __vec2(nx0, ny0), new __vec2(nx1, ny1) ]); + array_push(triangles, [ new __vec2(tx0, ty0), new __vec2(nx1, ny1), new __vec2(tx1, ty1) ]); - array_push(segment, new Point(tx0, ty0)); - array_push(segment, new Point(tx1, ty1)); + array_push(segment, new __vec2(tx0, ty0)); + array_push(segment, new __vec2(tx1, ty1)); } - array_push(segment, new Point(nx1, ny1)); + array_push(segment, new __vec2(nx1, ny1)); } return [ @@ -238,34 +238,34 @@ var side = min(_sca[0], _sca[1]) * inner; array_push(triangles, - [ new Point(-side, -side), new Point( side, -side), new Point(-side, side) ], - [ new Point( side, -side), new Point(-side, side), new Point( side, side) ], + [ new __vec2(-side, -side), new __vec2( side, -side), new __vec2(-side, side) ], + [ new __vec2( side, -side), new __vec2(-side, side), new __vec2( side, side) ], ); array_push(triangles, //top - [ new Point(-side, -side), new Point( side, -side), new Point(-side, -_sca[1]) ], - [ new Point( side, -side), new Point(-side, -_sca[1]), new Point( side, -_sca[1]) ], + [ new __vec2(-side, -side), new __vec2( side, -side), new __vec2(-side, -_sca[1]) ], + [ new __vec2( side, -side), new __vec2(-side, -_sca[1]), new __vec2( side, -_sca[1]) ], ); array_push(triangles, //bottom - [ new Point(-side, _sca[1]), new Point( side, _sca[1]), new Point(-side, side) ], - [ new Point( side, _sca[1]), new Point(-side, side), new Point( side, side) ], + [ new __vec2(-side, _sca[1]), new __vec2( side, _sca[1]), new __vec2(-side, side) ], + [ new __vec2( side, _sca[1]), new __vec2(-side, side), new __vec2( side, side) ], ); array_push(triangles, //left - [ new Point( -side, -side), new Point(-_sca[0], -side), new Point(-side, side) ], - [ new Point(-_sca[0], -side), new Point(-side, side), new Point(-_sca[0], side) ], + [ new __vec2( -side, -side), new __vec2(-_sca[0], -side), new __vec2(-side, side) ], + [ new __vec2(-_sca[0], -side), new __vec2(-side, side), new __vec2(-_sca[0], side) ], ); array_push(triangles, //right - [ new Point(_sca[0], -side), new Point( side, -side), new Point(_sca[0], side) ], - [ new Point( side, -side), new Point(_sca[0], side), new Point( side, side) ], + [ new __vec2(_sca[0], -side), new __vec2( side, -side), new __vec2(_sca[0], side) ], + [ new __vec2( side, -side), new __vec2(_sca[0], side), new __vec2( side, side) ], ); - array_push(segment, new Point(-side, -side), new Point(-side, -_sca[1]), new Point( side, -_sca[1]), new Point(side, -side) ); - array_push(segment, new Point(_sca[0], -side), new Point(_sca[0], side), new Point( side, side)); - array_push(segment, new Point(side, _sca[1]), new Point(-side, _sca[1]), new Point(-side, side)); - array_push(segment, new Point(-_sca[0], side), new Point(-_sca[0], -side), new Point(-side, -side)); + array_push(segment, new __vec2(-side, -side), new __vec2(-side, -_sca[1]), new __vec2( side, -_sca[1]), new __vec2(side, -side) ); + array_push(segment, new __vec2(_sca[0], -side), new __vec2(_sca[0], side), new __vec2( side, side)); + array_push(segment, new __vec2(side, _sca[1]), new __vec2(-side, _sca[1]), new __vec2(-side, side)); + array_push(segment, new __vec2(-_sca[0], side), new __vec2(-_sca[0], -side), new __vec2(-side, -side)); return [ [{ type: SHAPE_TYPE.triangles, triangles: triangles }], @@ -300,12 +300,12 @@ var nx0 = lengthdir_x(0.5, oa) * _sca[0] * 2; var ny0 = lengthdir_y(0.5, oa) * _sca[1] * 2; - array_push(triangles, [ new Point(ix0, iy0), new Point(nx0, ny0), new Point(nx1, ny1) ]); - array_push(triangles, [ new Point(ix0, iy0), new Point(nx1, ny1), new Point(ix1, iy1) ]); + array_push(triangles, [ new __vec2(ix0, iy0), new __vec2(nx0, ny0), new __vec2(nx1, ny1) ]); + array_push(triangles, [ new __vec2(ix0, iy0), new __vec2(nx1, ny1), new __vec2(ix1, iy1) ]); } - array_push(sgArcI, new Point(ix1, iy1)); - array_push(sgArcO, new Point(nx1, ny1)); + array_push(sgArcI, new __vec2(ix1, iy1)); + array_push(sgArcO, new __vec2(nx1, ny1)); oa = na; } @@ -322,9 +322,9 @@ nx = cx + lengthdir_x((1 - inner) / 2, na) * _sca[0]; ny = cy + lengthdir_y((1 - inner) / 2, na) * _sca[1]; - if(i) array_push(triangles, [ new Point(cx, cy), new Point(ox, oy), new Point(nx, ny) ]); + if(i) array_push(triangles, [ new __vec2(cx, cy), new __vec2(ox, oy), new __vec2(nx, ny) ]); - array_push(sgCapI, new Point(nx, ny)); + array_push(sgCapI, new __vec2(nx, ny)); oa = na; ox = nx; @@ -340,9 +340,9 @@ nx = cx + lengthdir_x((1 - inner) / 2, na) * _sca[0]; ny = cy + lengthdir_y((1 - inner) / 2, na) * _sca[1]; - if(i) array_push(triangles, [ new Point(cx, cy), new Point(ox, oy), new Point(nx, ny) ]); + if(i) array_push(triangles, [ new __vec2(cx, cy), new __vec2(ox, oy), new __vec2(nx, ny) ]); - array_push(sgCapO, new Point(nx, ny)); + array_push(sgCapO, new __vec2(nx, ny)); oa = na; ox = nx; diff --git a/scripts/__strandSim/__strandSim.gml b/scripts/__strandSim/__strandSim.gml index a19170aa7..48a571a95 100644 --- a/scripts/__strandSim/__strandSim.gml +++ b/scripts/__strandSim/__strandSim.gml @@ -409,7 +409,7 @@ function StrandMesh() constructor { } static getPointRatio = function(rat, ind = 0) { - if(array_length(hairs) == 0) return new Point(); + if(array_length(hairs) == 0) return new __vec2(); var h = array_safe_get(hairs, ind); var sg = rat * (array_length(h.points) - 1); @@ -418,7 +418,7 @@ function StrandMesh() constructor { var p0 = array_safe_get(h.points, floor(sg)); var p1 = array_safe_get(h.points, floor(sg) + 1); - return new Point(lerp(p0.x, p1.x, fr), lerp(p0.y, p1.y, fr)); + return new __vec2(lerp(p0.x, p1.x, fr), lerp(p0.y, p1.y, fr)); } static getLineCount = function() { diff --git a/scripts/__vec2/__vec2.gml b/scripts/__vec2/__vec2.gml new file mode 100644 index 000000000..aa933b5e6 --- /dev/null +++ b/scripts/__vec2/__vec2.gml @@ -0,0 +1,181 @@ +function __vec2(_x = 0, _y = _x) constructor { + static set = function(_x = 0, _y = _x) { #region + if(is_struct(_x) && is_instanceof(_x, __vec2)) { + x = _x.x; + y = _x.y; + return self; + } + + if(is_struct(_x) && is_instanceof(_x, BBMOD_Vec2)) { + x = _x.X; + y = _x.Y; + return self; + } + + if(is_array(_x)) { + x = _x[0]; + y = _x[1]; + return self; + } + + x = _x; + y = _y; + return self; + } set(_x, _y); #endregion + + static setIndex = function(index, value) { #region + gml_pragma("forceinline"); + switch(index) { + case 0 : x = value; break; + case 1 : y = value; break; + } + return self; + } #endregion + + static getIndex = function(index) { #region + switch(index) { + case 0 : return x; + case 1 : return y; + } + return 0; + } #endregion + + static addElement = function(_x, _y) { #region + gml_pragma("forceinline"); + return new __vec2(x + _x, y + _y); + } #endregion + static _addElement = function(_x, _y) { #region + gml_pragma("forceinline"); + x += _x; + y += _y; + return self; + } #endregion + + static add = function(_vec2) { #region + gml_pragma("forceinline"); + return new __vec2(x + _vec2.x, y + _vec2.y); + } #endregion + static _add = function(_vec2) { #region + gml_pragma("forceinline"); + x += _vec2.x; + y += _vec2.y; + return self; + } #endregion + + static subtract = function(_vec2) { #region + gml_pragma("forceinline"); + return new __vec2(x - _vec2.x, y - _vec2.y); + } #endregion + static _subtract = function(_vec2) { #region + gml_pragma("forceinline"); + x -= _vec2.x; + y -= _vec2.y; + return self; + } #endregion + + static multiply = function(_scalar) { #region + gml_pragma("forceinline"); + return new __vec2(x * _scalar, y * _scalar); + } #endregion + static _multiply = function(_scalar) { #region + gml_pragma("forceinline"); + x *= _scalar; + y *= _scalar; + return self; + } #endregion + + static multiplyVec = function(_vec) { #region + gml_pragma("forceinline"); + return new __vec2(x * _vec.x, y * _vec.y); + } #endregion + static _multiplyVec = function(_vec) { #region + gml_pragma("forceinline"); + x *= _vec.x; + y *= _vec.y; + return self; + } #endregion + + static divide = function(_scalar) { #region + gml_pragma("forceinline"); + if (_scalar != 0) + return new __vec2(x / _scalar, y / _scalar); + + return new __vec2(x, y, z); // Avoid division by zero + } #endregion + static _divide = function(_scalar) { #region + gml_pragma("forceinline"); + if (_scalar != 0) { + x /= _scalar; + y /= _scalar; + } + return self; + } #endregion + + static dot = function(_vec2) { #region + gml_pragma("forceinline"); + return x * _vec2.x + y * _vec2.y; + } #endregion + + static distance = function(_vec2) { #region + gml_pragma("forceinline"); + var dx = _vec2.x - x; + var dy = _vec2.y - y; + return sqrt(dx * dx + dy * dy); + } #endregion + + static directionTo = function(_vec2) { #region + gml_pragma("forceinline"); + return point_direction(x, y, _vec2.x, _vec2.y); + } #endregion + + static length = function() { #region + gml_pragma("forceinline"); + return sqrt(x * x + y * y); + } #endregion + + static normalize = function() { #region + gml_pragma("forceinline"); + return clone()._normalize(); + } #endregion + static _normalize = function() { #region + gml_pragma("forceinline"); + var _length = length(); + if (_length != 0) { + x /= _length; + y /= _length; + } + return self; + } #endregion + + static lerpTo = function(to, speed = 0.3) { #region + gml_pragma("forceinline"); + return new __vec2(lerp(x, to.x, speed), lerp(y, to.y, speed)); + } #endregion + static _lerpTo = function(to, speed = 0.3) { #region + gml_pragma("forceinline"); + x = lerp(x, to.x, speed); + y = lerp(y, to.y, speed); + } #endregion + + static _lerp_float = function(to, speed = 5, pre = 0.01) { #region + gml_pragma("forceinline"); + x = lerp_float(x, to.x, speed, pre); + y = lerp_float(y, to.y, speed, pre); + } #endregion + + static equal = function(to) { #region + gml_pragma("forceinline"); + return x == to.x && y == to.y; + } #endregion + + static clone = function() { #region + gml_pragma("forceinline"); + return new __vec2(x, y); + } #endregion + + static toString = function() { return $"[{x}, {y}]"; } + + static toBBMOD = function() { return new BBMOD_Vec2(x, y); } + + static toArray = function() { return [ x, y ]; } +} \ No newline at end of file diff --git a/scripts/d3d_vec3/d3d_vec3.yy b/scripts/__vec2/__vec2.yy similarity index 59% rename from scripts/d3d_vec3/d3d_vec3.yy rename to scripts/__vec2/__vec2.yy index ef49e3dd8..e054c3320 100644 --- a/scripts/d3d_vec3/d3d_vec3.yy +++ b/scripts/__vec2/__vec2.yy @@ -1,11 +1,11 @@ { "resourceType": "GMScript", "resourceVersion": "1.0", - "name": "d3d_vec3", + "name": "__vec2", "isCompatibility": false, "isDnD": false, "parent": { - "name": "util", - "path": "folders/functions/3d/util.yy", + "name": "vector", + "path": "folders/functions/vector.yy", }, } \ No newline at end of file diff --git a/scripts/d3d_vec3/d3d_vec3.gml b/scripts/__vec3/__vec3.gml similarity index 68% rename from scripts/d3d_vec3/d3d_vec3.gml rename to scripts/__vec3/__vec3.gml index c771c41c0..fa082eece 100644 --- a/scripts/d3d_vec3/d3d_vec3.gml +++ b/scripts/__vec3/__vec3.gml @@ -3,7 +3,7 @@ #macro __vec3_up new __vec3(0.0, 0.0, 1.0) function __vec3(_x = 0, _y = _x, _z = _x) constructor { - static set = function(_x = 0, _y = _x, _z = _x) { + static set = function(_x = 0, _y = _x, _z = _x) { #region if(is_struct(_x) && is_instanceof(_x, __vec3)) { x = _x.x; y = _x.y; @@ -29,14 +29,14 @@ function __vec3(_x = 0, _y = _x, _z = _x) constructor { y = _y; z = _z; return self; - } set(_x, _y, _z); + } set(_x, _y, _z); #endregion - static isZero = function() { + static isZero = function() { #region gml_pragma("forceinline"); return x == 0 && y == 0 && z == 0; - } + } #endregion - static setIndex = function(index, value) { + static setIndex = function(index, value) { #region gml_pragma("forceinline"); switch(index) { case 0 : x = value; break; @@ -44,92 +44,73 @@ function __vec3(_x = 0, _y = _x, _z = _x) constructor { case 2 : z = value; break; } return self; - } + } #endregion - static getIndex = function(index) { + static getIndex = function(index) { #region switch(index) { case 0 : return x; case 1 : return y; case 2 : return z; } return 0; - } + } #endregion - static add = function(_vec3) { + static add = function(_vec3) { #region gml_pragma("forceinline"); return new __vec3(x + _vec3.x, y + _vec3.y, z + _vec3.z); - } - - static subtract = function(_vec3) { - gml_pragma("forceinline"); - return new __vec3(x - _vec3.x, y - _vec3.y, z - _vec3.z); - } - - static multiply = function(_scalar) { - gml_pragma("forceinline"); - return new __vec3(x * _scalar, y * _scalar, z * _scalar); - } - - static multiplyVec = function(_vec) { - gml_pragma("forceinline"); - return new __vec3(x * _vec.x, y * _vec.y, z * _vec.z); - } - - static divide = function(_scalar) { - gml_pragma("forceinline"); - if (_scalar != 0) - return new __vec3(x / _scalar, y / _scalar, z / _scalar); - - return new __vec3(x, y, z); // Avoid division by zero - } - - static dot = function(_vec3) { - gml_pragma("forceinline"); - return x * _vec3.x + y * _vec3.y + z * _vec3.z; - } - - static cross = function(_vec3) { - gml_pragma("forceinline"); - var cross_x = y * _vec3.z - z * _vec3.y; - var cross_y = z * _vec3.x - x * _vec3.z; - var cross_z = x * _vec3.y - y * _vec3.x; - return new __vec3(cross_x, cross_y, cross_z); - } - - // In-place computation functions - static _add = function(_vec3) { + } #endregion + static _add = function(_vec3) { #region gml_pragma("forceinline"); x += _vec3.x; y += _vec3.y; z += _vec3.z; return self; - } + } #endregion - static _subtract = function(_vec3) { + static subtract = function(_vec3) { #region + gml_pragma("forceinline"); + return new __vec3(x - _vec3.x, y - _vec3.y, z - _vec3.z); + } #endregion + static _subtract = function(_vec3) { #region gml_pragma("forceinline"); x -= _vec3.x; y -= _vec3.y; z -= _vec3.z; return self; - } + } #endregion - static _multiply = function(_scalar) { + static multiply = function(_scalar) { #region + gml_pragma("forceinline"); + return new __vec3(x * _scalar, y * _scalar, z * _scalar); + } #endregion + static _multiply = function(_scalar) { #region gml_pragma("forceinline"); x *= _scalar; y *= _scalar; z *= _scalar; return self; - } + } #endregion - static _multiplyVec = function(_vec) { + static multiplyVec = function(_vec) { #region + gml_pragma("forceinline"); + return new __vec3(x * _vec.x, y * _vec.y, z * _vec.z); + } #endregion + static _multiplyVec = function(_vec) { #region gml_pragma("forceinline"); x *= _vec.x; y *= _vec.y; z *= _vec.z; return self; - } + } #endregion - static _divide = function(_scalar) { + static divide = function(_scalar) { #region + gml_pragma("forceinline"); + if (_scalar != 0) + return new __vec3(x / _scalar, y / _scalar, z / _scalar); + + return new __vec3(x, y, z); // Avoid division by zero + } #endregion + static _divide = function(_scalar) { #region gml_pragma("forceinline"); if (_scalar != 0) { x /= _scalar; @@ -137,27 +118,39 @@ function __vec3(_x = 0, _y = _x, _z = _x) constructor { z /= _scalar; } return self; - } + } #endregion + + static dot = function(_vec3) { #region + gml_pragma("forceinline"); + return x * _vec3.x + y * _vec3.y + z * _vec3.z; + } #endregion - static distance = function(_vec3) { + static cross = function(_vec3) { #region + gml_pragma("forceinline"); + var cross_x = y * _vec3.z - z * _vec3.y; + var cross_y = z * _vec3.x - x * _vec3.z; + var cross_z = x * _vec3.y - y * _vec3.x; + return new __vec3(cross_x, cross_y, cross_z); + } #endregion + + static distance = function(_vec3) { #region gml_pragma("forceinline"); var dx = _vec3.x - x; var dy = _vec3.y - y; var dz = _vec3.z - z; return sqrt(dx * dx + dy * dy + dz * dz); - } + } #endregion - static length = function() { + static length = function() { #region gml_pragma("forceinline"); return sqrt(x * x + y * y + z * z); - } + } #endregion - static normalize = function() { + static normalize = function() { #region gml_pragma("forceinline"); return clone()._normalize(); - } - - static _normalize = function() { + } #endregion + static _normalize = function() { #region gml_pragma("forceinline"); var _length = length(); if (_length != 0) { @@ -166,49 +159,49 @@ function __vec3(_x = 0, _y = _x, _z = _x) constructor { z /= _length; } return self; - } + } #endregion - static _lerp = function(to, speed = 0.3) { + static _lerpTo = function(to, speed = 0.3) { #region gml_pragma("forceinline"); x = lerp(x, to.x, speed); y = lerp(y, to.y, speed); z = lerp(z, to.z, speed); - } + } #endregion - static _lerp_float = function(to, speed = 5, pre = 0.01) { + static _lerp_float = function(to, speed = 5, pre = 0.01) { #region gml_pragma("forceinline"); x = lerp_float(x, to.x, speed, pre); y = lerp_float(y, to.y, speed, pre); z = lerp_float(z, to.z, speed, pre); - } + } #endregion - static equal = function(to) { + static equal = function(to) { #region gml_pragma("forceinline"); return x == to.x && y == to.y && z == to.z; - } + } #endregion - static minVal = function(vec) { + static minVal = function(vec) { #region gml_pragma("forceinline"); return new __vec3( min(x, vec.x), min(y, vec.y), min(z, vec.z), ); - } + } #endregion - static maxVal = function(vec) { + static maxVal = function(vec) { #region gml_pragma("forceinline"); return new __vec3( max(x, vec.x), max(y, vec.y), max(z, vec.z), ); - } + } #endregion - static clone = function() { + static clone = function() { #region gml_pragma("forceinline"); return new __vec3(x, y, z); - } + } #endregion static toString = function() { return $"[{x}, {y}, {z}]"; } diff --git a/scripts/d3d_vec2/d3d_vec2.yy b/scripts/__vec3/__vec3.yy similarity index 59% rename from scripts/d3d_vec2/d3d_vec2.yy rename to scripts/__vec3/__vec3.yy index dd75f1fab..0ca6b258a 100644 --- a/scripts/d3d_vec2/d3d_vec2.yy +++ b/scripts/__vec3/__vec3.yy @@ -1,11 +1,11 @@ { "resourceType": "GMScript", "resourceVersion": "1.0", - "name": "d3d_vec2", + "name": "__vec3", "isCompatibility": false, "isDnD": false, "parent": { - "name": "util", - "path": "folders/functions/3d/util.yy", + "name": "vector", + "path": "folders/functions/vector.yy", }, } \ No newline at end of file diff --git a/scripts/d3d_vec4/d3d_vec4.gml b/scripts/__vec4/__vec4.gml similarity index 98% rename from scripts/d3d_vec4/d3d_vec4.gml rename to scripts/__vec4/__vec4.gml index 5a60a0a07..23e138634 100644 --- a/scripts/d3d_vec4/d3d_vec4.gml +++ b/scripts/__vec4/__vec4.gml @@ -145,7 +145,7 @@ function __vec4(_x = 0, _y = _x, _z = _x, _w = _x) constructor { return self; } - static _lerp = function(to, speed = 0.3) { + static _lerpTo = function(to, speed = 0.3) { gml_pragma("forceinline"); x = lerp(x, to.x, speed); y = lerp(y, to.y, speed); diff --git a/scripts/d3d_vec4/d3d_vec4.yy b/scripts/__vec4/__vec4.yy similarity index 59% rename from scripts/d3d_vec4/d3d_vec4.yy rename to scripts/__vec4/__vec4.yy index 848b3df24..1e94aab28 100644 --- a/scripts/d3d_vec4/d3d_vec4.yy +++ b/scripts/__vec4/__vec4.yy @@ -1,11 +1,11 @@ { "resourceType": "GMScript", "resourceVersion": "1.0", - "name": "d3d_vec4", + "name": "__vec4", "isCompatibility": false, "isDnD": false, "parent": { - "name": "util", - "path": "folders/functions/3d/util.yy", + "name": "vector", + "path": "folders/functions/vector.yy", }, } \ No newline at end of file diff --git a/scripts/d3_vector/d3_vector.gml b/scripts/__vector/__vector.gml similarity index 100% rename from scripts/d3_vector/d3_vector.gml rename to scripts/__vector/__vector.gml diff --git a/scripts/d3_vector/d3_vector.yy b/scripts/__vector/__vector.yy similarity index 59% rename from scripts/d3_vector/d3_vector.yy rename to scripts/__vector/__vector.yy index c225297d6..d768e258d 100644 --- a/scripts/d3_vector/d3_vector.yy +++ b/scripts/__vector/__vector.yy @@ -1,11 +1,11 @@ { "resourceType": "GMScript", "resourceVersion": "1.0", - "name": "d3_vector", + "name": "__vector", "isCompatibility": false, "isDnD": false, "parent": { - "name": "util", - "path": "folders/functions/3d/util.yy", + "name": "vector", + "path": "folders/functions/vector.yy", }, } \ No newline at end of file diff --git a/scripts/checkboxGroup/checkboxGroup.gml b/scripts/checkboxGroup/checkboxGroup.gml index 6a9ed20b0..82afa8d73 100644 --- a/scripts/checkboxGroup/checkboxGroup.gml +++ b/scripts/checkboxGroup/checkboxGroup.gml @@ -10,7 +10,7 @@ function checkBoxGroup(sprs, _onClick) : widget() constructor { } static drawParam = function(params) { - return draw(params.x, params.y, params.data, params.m); + return draw(params.x, params.y, params.data, params.m, params.s); } static draw = function(_x, _y, _value, _m, ss = ui(28), halign = fa_left, valign = fa_top) { @@ -56,7 +56,7 @@ function checkBoxGroup(sprs, _onClick) : widget() constructor { draw_sprite_stretched_ext(spr, ind, _dx, _dy, ss, ss, c_white, aa); if(_value[i]) draw_sprite_stretched_ext(spr, 3, _dx, _dy, ss, ss, COLORS._main_accent, 1); - draw_sprite_stretched_ext(sprs, i, _dx, _dy, ss, ss, c_white, 0.5 + _value[i] * 0.5); + draw_sprite_ext(sprs, i, _dx + ss / 2, _dy + ss / 2, 1, 1, 0, c_white, 0.5 + _value[i] * 0.5); _dx += ss; } diff --git a/scripts/d3d_matrix3/d3d_matrix3.yy b/scripts/d3d_matrix3/d3d_matrix3.yy deleted file mode 100644 index a417eec8a..000000000 --- a/scripts/d3d_matrix3/d3d_matrix3.yy +++ /dev/null @@ -1,11 +0,0 @@ -{ - "resourceType": "GMScript", - "resourceVersion": "1.0", - "name": "d3d_matrix3", - "isCompatibility": false, - "isDnD": false, - "parent": { - "name": "util", - "path": "folders/functions/3d/util.yy", - }, -} \ No newline at end of file diff --git a/scripts/d3d_matrix4/d3d_matrix4.yy b/scripts/d3d_matrix4/d3d_matrix4.yy deleted file mode 100644 index 0266cfee2..000000000 --- a/scripts/d3d_matrix4/d3d_matrix4.yy +++ /dev/null @@ -1,11 +0,0 @@ -{ - "resourceType": "GMScript", - "resourceVersion": "1.0", - "name": "d3d_matrix4", - "isCompatibility": false, - "isDnD": false, - "parent": { - "name": "util", - "path": "folders/functions/3d/util.yy", - }, -} \ No newline at end of file diff --git a/scripts/d3d_scene/d3d_scene.gml b/scripts/d3d_scene/d3d_scene.gml index 5d79b3ea8..c27000b0d 100644 --- a/scripts/d3d_scene/d3d_scene.gml +++ b/scripts/d3d_scene/d3d_scene.gml @@ -37,9 +37,9 @@ function __3dScene(camera) constructor { lightAmbient = c_black; lightDir_max = 16; - lightDir_shadow_max = 4; + lightDir_shadow_max = 2; lightPnt_max = 16; - lightPnt_shadow_max = 4; + lightPnt_shadow_max = 2; cull_mode = cull_noculling; enviroment_map = noone; @@ -47,7 +47,9 @@ function __3dScene(camera) constructor { draw_background = false; - defer_normal = true; + defer_normal = true; + defer_normal_radius = 0; + show_normal = false; geometry_data = [ noone, noone, noone ]; @@ -156,15 +158,17 @@ function __3dScene(camera) constructor { gpu_set_ztestenable(false); surface_reset_target(); - var _normal_blurred = surface_create_size(geometry_data[2], surface_rgba32float); - surface_set_shader(_normal_blurred, sh_d3d_normal_blur); - shader_set_f("radius", 5); - shader_set_dim("dimension", geometry_data[2]); - draw_surface_safe(geometry_data[2]); - surface_reset_shader(); + if(defer_normal_radius) { + var _normal_blurred = surface_create_size(geometry_data[2], surface_rgba32float); + surface_set_shader(_normal_blurred, sh_d3d_normal_blur); + shader_set_f("radius", defer_normal_radius); + shader_set_dim("dimension", geometry_data[2]); + draw_surface_safe(geometry_data[2]); + surface_reset_shader(); - surface_free(geometry_data[2]); - geometry_data[2] = _normal_blurred; + surface_free(geometry_data[2]); + geometry_data[2] = _normal_blurred; + } } #endregion static ssaoPass = function() { #region diff --git a/scripts/d3d_vec2/d3d_vec2.gml b/scripts/d3d_vec2/d3d_vec2.gml deleted file mode 100644 index 33a1644c9..000000000 --- a/scripts/d3d_vec2/d3d_vec2.gml +++ /dev/null @@ -1,36 +0,0 @@ -function __vec2(_x = 0, _y = _x) constructor { - static set = function(_x = 0, _y = _x) { - if(is_struct(_x) && is_instanceof(_x, __vec2)) { - x = _x.x; - y = _x.y; - return self; - } - - if(is_struct(_x) && is_instanceof(_x, BBMOD_Vec2)) { - x = _x.X; - y = _x.Y; - return self; - } - - if(is_array(_x)) { - x = _x[0]; - y = _x[1]; - return self; - } - - x = _x; - y = _y; - return self; - } set(_x, _y); - - static clone = function() { - gml_pragma("forceinline"); - return new __vec2(x, y); - } - - static toString = function() { return $"[{x}, {y}]"; } - - static toBBMOD = function() { return new BBMOD_Vec2(x, y); } - - static toArray = function() { return [ x, y ]; } -} \ No newline at end of file diff --git a/scripts/delau_helper/delau_helper.gml b/scripts/delau_helper/delau_helper.gml index 4a4663f5b..4bc5b8203 100644 --- a/scripts/delau_helper/delau_helper.gml +++ b/scripts/delau_helper/delau_helper.gml @@ -63,9 +63,9 @@ function _create_super_triangle(points) { var center_x = (min_x + max_x) / 2, center_y = (min_y + max_y) / 2; return [ - new Point(center_x - 2 * d_max, center_y - d_max), - new Point(center_x, center_y + 2 * d_max), - new Point(center_x + 2 * d_max, center_y - d_max) + new __vec2(center_x - 2 * d_max, center_y - d_max), + new __vec2(center_x, center_y + 2 * d_max), + new __vec2(center_x + 2 * d_max, center_y - d_max) ]; } diff --git a/scripts/globals/globals.gml b/scripts/globals/globals.gml index 6d245f628..ae3fa9f56 100644 --- a/scripts/globals/globals.gml +++ b/scripts/globals/globals.gml @@ -101,10 +101,10 @@ globalvar VERSION, SAVE_VERSION, VERSION_STRING, BUILD_NUMBER; - VERSION = 11506; + VERSION = 11510; SAVE_VERSION = 11500; - VERSION_STRING = "1.15.0.6"; - BUILD_NUMBER = 11506; + VERSION_STRING = "1.15.1.0"; + BUILD_NUMBER = 11510; globalvar APPEND_MAP; APPEND_MAP = ds_map_create(); diff --git a/scripts/node_3d_camera/node_3d_camera.gml b/scripts/node_3d_camera/node_3d_camera.gml index 6ef4ca36c..ede9d022a 100644 --- a/scripts/node_3d_camera/node_3d_camera.gml +++ b/scripts/node_3d_camera/node_3d_camera.gml @@ -70,6 +70,8 @@ function Node_3D_Camera(_x, _y, _group = noone) : Node_3D_Object(_x, _y, _group) inputs[| in_d3d + 20] = nodeValue("AO Strength", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1. ) .setDisplay(VALUE_DISPLAY.slider, [ 0.01, 4, 0.01 ]); + inputs[| in_d3d + 21] = nodeValue("Round Normal", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0 ); + outputs[| 0] = nodeValue("Rendered", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone ); outputs[| 1] = nodeValue("Normal", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone ) @@ -84,6 +86,7 @@ function Node_3D_Camera(_x, _y, _group = noone) : Node_3D_Object(_x, _y, _group) ["Camera", false], in_d3d + 3, in_d3d + 0, in_d3d + 1, in_d3d + 8, ["Render", false], in_d3d + 5, in_d3d + 16, in_d3d + 6, in_d3d + 7, in_d3d + 15, ["Ambient Occlusion", false], in_d3d + 17, in_d3d + 20, in_d3d + 18, in_d3d + 19, + ["Effects", false], in_d3d + 21, ]; tool_lookat = new NodeTool( "Move Target", THEME.tools_3d_transform_object ); @@ -190,6 +193,8 @@ function Node_3D_Camera(_x, _y, _group = noone) : Node_3D_Object(_x, _y, _group) var _aoBi = _data[in_d3d + 19]; var _aoSr = _data[in_d3d + 20]; + var _nrmSmt = _data[in_d3d + 21]; + var _qi1 = new BBMOD_Quaternion().FromAxisAngle(new BBMOD_Vec3(0, 1, 0), 90); var _qi2 = new BBMOD_Quaternion().FromAxisAngle(new BBMOD_Vec3(1, 0, 0), -90); var _qi3 = new BBMOD_Quaternion().FromAxisAngle(new BBMOD_Vec3(1, 0, 0), 90); @@ -255,6 +260,7 @@ function Node_3D_Camera(_x, _y, _group = noone) : Node_3D_Object(_x, _y, _group) scene.ssao_radius = _aoRa; scene.ssao_bias = _aoBi; scene.ssao_strength = _aoSr; + scene.defer_normal_radius = _nrmSmt; scene.draw_background = _dbg; diff --git a/scripts/node_armature_to_path/node_armature_to_path.gml b/scripts/node_armature_to_path/node_armature_to_path.gml index 703796660..b3d01ef49 100644 --- a/scripts/node_armature_to_path/node_armature_to_path.gml +++ b/scripts/node_armature_to_path/node_armature_to_path.gml @@ -65,13 +65,13 @@ function Node_Armature_Path(_x, _y, _group = noone) : Node(_x, _y, _group) const var _p0 = lines[_ind][0]; var _p1 = lines[_ind][1]; - if(!is_array(_p0) || array_length(_p0) < 2) return new Point(); - if(!is_array(_p1) || array_length(_p1) < 2) return new Point(); + if(!is_array(_p0) || array_length(_p0) < 2) return new __vec2(); + if(!is_array(_p1) || array_length(_p1) < 2) return new __vec2(); var _x = lerp(_p0[0], _p1[0], _rat); var _y = lerp(_p0[1], _p1[1], _rat); - return new Point( _x, _y ); + return new __vec2( _x, _y ); } function update() { diff --git a/scripts/node_collection/node_collection.gml b/scripts/node_collection/node_collection.gml index 00c8d55ed..2b7e6763a 100644 --- a/scripts/node_collection/node_collection.gml +++ b/scripts/node_collection/node_collection.gml @@ -226,7 +226,7 @@ function Node_Collection(_x, _y, _group = noone) : Node(_x, _y, _group) construc static exitGroup = function() {} - function add(_node) { + static add = function(_node) { ds_list_add(getNodeList(), _node); var list = _node.group == noone? PANEL_GRAPH.nodes_list : _node.group.getNodeList(); var _pos = ds_list_find_index(list, _node); @@ -236,7 +236,7 @@ function Node_Collection(_x, _y, _group = noone) : Node(_x, _y, _group) construc _node.group = self; } - function remove(_node) { + static remove = function(_node) { var node_list = getNodeList(); var _pos = ds_list_find_index(node_list, _node); ds_list_delete(node_list, _pos); diff --git a/scripts/node_data/node_data.gml b/scripts/node_data/node_data.gml index 80ae4757a..7a5015ba4 100644 --- a/scripts/node_data/node_data.gml +++ b/scripts/node_data/node_data.gml @@ -981,6 +981,8 @@ function Node(_x, _y, _group = PANEL_GRAPH.getCurrentContext()) : __Node_Base(_x static drawActive = function(_x, _y, _s, ind = 0) { active_draw_index = ind; } + static drawPreview = function(_x, _y, _s) {} + static drawOverlay = function(active, _x, _y, _s, _mx, _my, _snx, _sny) {} static drawAnimationTimeline = function(_w, _h, _s) {} diff --git a/scripts/node_mesh_to_path/node_mesh_to_path.gml b/scripts/node_mesh_to_path/node_mesh_to_path.gml index b1c68824a..431c8a930 100644 --- a/scripts/node_mesh_to_path/node_mesh_to_path.gml +++ b/scripts/node_mesh_to_path/node_mesh_to_path.gml @@ -45,7 +45,7 @@ function Node_Mesh_To_Path(_x, _y, _group = noone) : Node(_x, _y, _group) constr l -= lengths[i]; } - return new Point(0, 0); + return new __vec2(); } function update() { diff --git a/scripts/node_path/node_path.gml b/scripts/node_path/node_path.gml index fc22df1d5..600c37dbb 100644 --- a/scripts/node_path/node_path.gml +++ b/scripts/node_path/node_path.gml @@ -35,27 +35,13 @@ function Node_Path(_x, _y, _group = noone) : Node(_x, _y, _group) constructor { setIsDynamicInput(1); - function createAnchor(_x = 0, _y = 0, _dxx = 0, _dxy = 0, _dyx = 0, _dyy = 0) { - var index = ds_list_size(inputs); - - inputs[| index] = nodeValue("Anchor", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ _x, _y, _dxx, _dxy, _dyx, _dyy, false ]) - .setDisplay(VALUE_DISPLAY.vector); - - recordAction(ACTION_TYPE.var_modify, self, [ array_clone(input_display_list), "input_display_list" ]); - recordAction(ACTION_TYPE.list_insert, inputs, [ inputs[| index], index, "add path anchor point" ]); - array_push(input_display_list, index); - - return inputs[| index]; - } - - static createNewInput = function() { createAnchor(0, 0); } - outputs[| 0] = nodeValue("Position out", self, JUNCTION_CONNECT.output, VALUE_TYPE.float, [ 0, 0 ]) .setDisplay(VALUE_DISPLAY.vector); outputs[| 1] = nodeValue("Path data", self, JUNCTION_CONNECT.output, VALUE_TYPE.pathnode, self); - outputs[| 2] = nodeValue("Anchors", self, JUNCTION_CONNECT.output, VALUE_TYPE.float, []); + outputs[| 2] = nodeValue("Anchors", self, JUNCTION_CONNECT.output, VALUE_TYPE.float, []) + .setArrayDepth(1); tool_pathDrawer = new NodeTool( "Draw path", THEME.path_tools_draw ) .addSetting("Smoothness", VALUE_TYPE.float, function(val) { tool_pathDrawer.attribute.thres = val; }, "thres", 4) @@ -70,30 +56,58 @@ function Node_Path(_x, _y, _group = noone) : Node(_x, _y, _group) constructor { new NodeTool( "Circle path", THEME.path_tools_circle ), ]; - anchors = []; - lengths = []; - lengthAccs = []; - boundary = []; - lengthTotal = 0; + #region ---- path ---- + anchors = []; + lengths = []; + lengthAccs = []; + boundary = []; + lengthTotal = 0; - cached_pos = ds_map_create(); + cached_pos = ds_map_create(); + #endregion - drag_point = -1; - drag_points = []; - drag_type = 0; - drag_point_mx = 0; - drag_point_my = 0; - drag_point_sx = 0; - drag_point_sy = 0; + #region ---- editor ---- + drag_point = -1; + drag_points = []; + drag_type = 0; + drag_point_mx = 0; + drag_point_my = 0; + drag_point_sx = 0; + drag_point_sy = 0; - transform_type = 0; - transform_minx = 0; transform_miny = 0; - transform_maxx = 0; transform_maxy = 0; - transform_cx = 0; transform_cy = 0; - transform_sx = 0; transform_sy = 0; - transform_mx = 0; transform_my = 0; + transform_type = 0; + transform_minx = 0; transform_miny = 0; + transform_maxx = 0; transform_maxy = 0; + transform_cx = 0; transform_cy = 0; + transform_sx = 0; transform_sy = 0; + transform_mx = 0; transform_my = 0; + #endregion - static onValueUpdate = function(index = 0) { + static resetDisplayList = function() { + recordAction(ACTION_TYPE.var_modify, self, [ array_clone(input_display_list), "input_display_list" ]); + + input_display_list = [ + ["Path", false], 0, 2, 1, 3, + ["Anchors", false], + ]; + + for( var i = input_fix_len, n = ds_list_size(inputs); i < n; i++ ) + array_push(input_display_list, i); + } + + static createNewInput = function(_x = 0, _y = 0, _dxx = 0, _dxy = 0, _dyx = 0, _dyy = 0) { #region + var index = ds_list_size(inputs); + + inputs[| index] = nodeValue("Anchor", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ _x, _y, _dxx, _dxy, _dyx, _dyy, false ]) + .setDisplay(VALUE_DISPLAY.vector); + + recordAction(ACTION_TYPE.list_insert, inputs, [ inputs[| index], index, "add path anchor point" ]); + resetDisplayList(); + + return inputs[| index]; + } #endregion + + static onValueUpdate = function(index = 0) { #region if(index == 2) { var type = inputs[| 2].getValue(); if(type == 0) @@ -101,9 +115,13 @@ function Node_Path(_x, _y, _group = noone) : Node(_x, _y, _group) constructor { else if(type == 1) inputs[| 0].setDisplay(VALUE_DISPLAY._default); } - } + } #endregion - static drawOverlay = function(active, _x, _y, _s, _mx, _my, _snx, _sny) { + static drawPreview = function(_x, _y, _s) { #region + + } #endregion + + static drawOverlay = function(active, _x, _y, _s, _mx, _my, _snx, _sny) { #region var sample = PREF_MAP[? "path_resolution"]; var loop = inputs[| 1].getValue(); var ansize = ds_list_size(inputs) - input_fix_len; @@ -422,7 +440,7 @@ function Node_Path(_x, _y, _group = noone) : Node(_x, _y, _group) constructor { anc = [_p[_ANCHOR.x], _p[_ANCHOR.y], dxx, dxy, dyx, dyy]; if(input_fix_len + i >= ds_list_size(inputs)) - createAnchor(_p[_ANCHOR.x], _p[_ANCHOR.y], dxx, dxy, dyx, dyy); + createNewInput(_p[_ANCHOR.x], _p[_ANCHOR.y], dxx, dxy, dyx, dyy); else inputs[| input_fix_len + i].setValue(anc); } @@ -680,7 +698,7 @@ function Node_Path(_x, _y, _group = noone) : Node(_x, _y, _group) constructor { if(replace) { while(ds_list_size(inputs) > input_fix_len) ds_list_delete(inputs, input_fix_len); - array_resize(input_display_list, input_display_len); + resetDisplayList(); } drag_point = 0; @@ -696,7 +714,7 @@ function Node_Path(_x, _y, _group = noone) : Node(_x, _y, _group) constructor { if(mouse_press(mb_left, active)) { while(ds_list_size(inputs) > input_fix_len) ds_list_delete(inputs, input_fix_len); - array_resize(input_display_list, input_display_len); + resetDisplayList(); drag_point = 0; drag_type = isUsingTool(4)? 3 : 4; @@ -705,7 +723,7 @@ function Node_Path(_x, _y, _group = noone) : Node(_x, _y, _group) constructor { inputs[| 1].setValue(true); repeat(4) - createAnchor(value_snap((_mx - _x) / _s, _snx), value_snap((_my - _y) / _s, _sny)); + createNewInput(value_snap((_mx - _x) / _s, _snx), value_snap((_my - _y) / _s, _sny)); } #endregion } else if(anchor_hover != -1) { #region no tool, dragging existing point @@ -740,11 +758,10 @@ function Node_Path(_x, _y, _group = noone) : Node(_x, _y, _group) constructor { draw_sprite_ui_uniform(THEME.cursor_path_remove, 0, _mx + 16, _my + 16); if(mouse_press(mb_left, active)) { - recordAction(ACTION_TYPE.var_modify, self, [ array_clone(input_display_list), "input_display_list" ]); recordAction(ACTION_TYPE.list_delete, inputs, [ inputs[| input_fix_len + anchor_hover], input_fix_len + anchor_hover, "remove path anchor point" ]); ds_list_delete(inputs, input_fix_len + anchor_hover); - array_remove(input_display_list, input_fix_len + anchor_hover); + resetDisplayList(); doUpdate(); } } else { @@ -777,7 +794,7 @@ function Node_Path(_x, _y, _group = noone) : Node(_x, _y, _group) constructor { draw_sprite_ui_uniform(THEME.cursor_path_add, 0, _mx + 16, _my + 16); if(mouse_press(mb_left, active)) { - var anc = createAnchor(value_snap((_mx - _x) / _s, _snx), value_snap((_my - _y) / _s, _sny)); + var anc = createNewInput(value_snap((_mx - _x) / _s, _snx), value_snap((_my - _y) / _s, _sny)); UNDO_HOLDING = true; if(line_hover == -1) { @@ -798,9 +815,9 @@ function Node_Path(_x, _y, _group = noone) : Node(_x, _y, _group) constructor { } #endregion } - } + } #endregion - static updateLength = function() { + static updateLength = function() { #region boundary = new BoundingBox(); lengthTotal = 0; var loop = inputs[| 1].getValue(); @@ -851,7 +868,7 @@ function Node_Path(_x, _y, _group = noone) : Node(_x, _y, _group) constructor { lengthTotal += l; lengthAccs[i] = lengthTotal; } - } + } #endregion static getLineCount = function() { return 1; } static getSegmentCount = function() { return array_length(lengths); } @@ -860,7 +877,7 @@ function Node_Path(_x, _y, _group = noone) : Node(_x, _y, _group) constructor { static getLength = function() { return lengthTotal; } static getAccuLength = function() { return lengthAccs; } - static getPointDistance = function(_dist) { + static getPointDistance = function(_dist) { #region if(ds_map_exists(cached_pos, _dist)) return cached_pos[? _dist]; @@ -871,7 +888,7 @@ function Node_Path(_x, _y, _group = noone) : Node(_x, _y, _group) constructor { var ansize = array_length(lengths); var amo = ds_list_size(inputs) - input_fix_len; - if(ansize == 0) return new Point(); + if(ansize == 0) return new __vec2(); var _a0, _a1; @@ -892,23 +909,23 @@ function Node_Path(_x, _y, _group = noone) : Node(_x, _y, _group) constructor { var _t = _dist / lengths[i]; if(!is_array(_a0) || !is_array(_a1)) - return new Point(); + return new __vec2(); var _p = eval_bezier(_t, _a0[0], _a0[1], _a1[0], _a1[1], _a0[0] + _a0[4], _a0[1] + _a0[5], _a1[0] + _a1[2], _a1[1] + _a1[3]); - var _point = new Point(_p); + var _point = new __vec2(_p); cached_pos[? _dist] = _point; return _point; } - return new Point(); - } + return new __vec2(); + } #endregion - static getPointRatio = function(_rat) { + static getPointRatio = function(_rat) { #region var pix = frac(_rat) * lengthTotal; return getPointDistance(pix); - } + } #endregion - static getPointSegment = function(_rat) { + static getPointSegment = function(_rat) { #region var loop = inputs[| 1].getValue(); var rond = inputs[| 3].getValue(); if(!is_real(rond)) rond = false; @@ -916,12 +933,12 @@ function Node_Path(_x, _y, _group = noone) : Node(_x, _y, _group) constructor { var ansize = array_length(lengths); var amo = ds_list_size(inputs) - input_fix_len; - if(amo < 1) return new Point(0, 0); + if(amo < 1) return new __vec2(0, 0); if(_rat < 0) { var _p0 = inputs[| input_fix_len].getValue(); if(rond) - return new Point(round(_p0[0]), round(_p0[1])); - return new Point(_p0[0], _p0[1]); + return new __vec2(round(_p0[0]), round(_p0[1])); + return new __vec2(_p0[0], _p0[1]); } _rat = safe_mod(_rat, ansize); @@ -933,8 +950,8 @@ function Node_Path(_x, _y, _group = noone) : Node(_x, _y, _group) constructor { if(!loop) { var _p1 = inputs[| ds_list_size(inputs) - 1].getValue() if(rond) - return new Point(round(_p1[0]), round(_p1[1])); - return new Point(_p1[0], _p1[1]); + return new __vec2(round(_p1[0]), round(_p1[1])); + return new __vec2(_p1[0], _p1[1]); } _i1 = 0; @@ -949,10 +966,10 @@ function Node_Path(_x, _y, _group = noone) : Node(_x, _y, _group) constructor { } var p = eval_bezier(_t, _a0[0], _a0[1], _a1[0], _a1[1], _a0[0] + _a0[4], _a0[1] + _a0[5], _a1[0] + _a1[2], _a1[1] + _a1[3]); - return new Point(p[0], p[1]); - } + return new __vec2(p[0], p[1]); + } #endregion - static update = function(frame = PROJECT.animator.current_frame) { + static update = function(frame = PROJECT.animator.current_frame) { #region ds_map_clear(cached_pos); updateLength(); @@ -988,10 +1005,10 @@ function Node_Path(_x, _y, _group = noone) : Node(_x, _y, _group) constructor { outputs[| 0].setValue(_out.toArray()); } - } + } #endregion - static onDrawNode = function(xx, yy, _mx, _my, _s, _hover, _focus) { + static onDrawNode = function(xx, yy, _mx, _my, _s, _hover, _focus) { #region var bbox = drawGetBbox(xx, yy, _s); draw_sprite_fit(THEME.node_draw_path, 0, bbox.xc, bbox.yc, bbox.w, bbox.h); - } + } #endregion } \ No newline at end of file diff --git a/scripts/node_path_array/node_path_array.gml b/scripts/node_path_array/node_path_array.gml index fadcbd526..10787eff9 100644 --- a/scripts/node_path_array/node_path_array.gml +++ b/scripts/node_path_array/node_path_array.gml @@ -91,28 +91,28 @@ function Node_Path_Array(_x, _y, _group = noone) : Node(_x, _y, _group) construc return 0; } - static getPointRatio = function(_rat, ind = 0) { + static get__vec2Ratio = function(_rat, ind = 0) { for( var i = input_fix_len; i < ds_list_size(inputs) - 1; i += data_length ) { var _path = inputs[| i].getValue(); var lc = struct_has(_path, "getLineCount")? _path.getLineCount() : 1; - if(ind < lc) return _path.getPointRatio(_rat, ind).clone(); + if(ind < lc) return _path.get__vec2Ratio(_rat, ind).clone(); ind -= lc; } - return new Point(); + return new __vec2(); } - static getPointDistance = function(_dist, ind = 0) { + static get__vec2Distance = function(_dist, ind = 0) { for( var i = input_fix_len; i < ds_list_size(inputs) - 1; i += data_length ) { var _path = inputs[| i].getValue(); var lc = struct_has(_path, "getLineCount")? _path.getLineCount() : 1; - if(ind < lc) return _path.getPointDistance(_dist, ind).clone(); + if(ind < lc) return _path.get__vec2Distance(_dist, ind).clone(); ind -= lc; } - return new Point(); + return new __vec2(); } static getBoundary = function(ind = 0) { diff --git a/scripts/node_path_blend/node_path_blend.gml b/scripts/node_path_blend/node_path_blend.gml index 84c58665c..c4668a8a8 100644 --- a/scripts/node_path_blend/node_path_blend.gml +++ b/scripts/node_path_blend/node_path_blend.gml @@ -93,13 +93,13 @@ function Node_Path_Blend(_x, _y, _group = noone) : Node(_x, _y, _group) construc var p1 = _path1 != noone && struct_has(_path1, "getPointRatio"); var p2 = _path2 != noone && struct_has(_path2, "getPointRatio"); - if(!p1 && !p2) return new Point(); + if(!p1 && !p2) return new __vec2(); if( p1 && !p2) return _path1.getPointRatio(_rat, ind); if(!p1 && p2) return _path2.getPointRatio(_rat, ind); var _p1 = _path1.getPointRatio(_rat, ind); var _p2 = _path2.getPointRatio(_rat, ind); - var _r = new Point(); + var _r = new __vec2(); _r.x = lerp(_p1.x, _p2.x, _lerp); _r.y = lerp(_p1.y, _p2.y, _lerp); diff --git a/scripts/node_path_builder/node_path_builder.gml b/scripts/node_path_builder/node_path_builder.gml index 491f548e1..70fff2e5a 100644 --- a/scripts/node_path_builder/node_path_builder.gml +++ b/scripts/node_path_builder/node_path_builder.gml @@ -70,24 +70,24 @@ function Node_Path_Builder(_x, _y, _group = noone) : Node(_x, _y, _group) constr _p0 = array_safe_get(_lines, floor(_st) + 0,, ARRAY_OVERFLOW._default); _p1 = array_safe_get(_lines, floor(_st) + 1,, ARRAY_OVERFLOW._default); - if(!is_array(_p0)) return new Point(); - if(!is_array(_p1)) return new Point(); + if(!is_array(_p0)) return new __vec2(); + if(!is_array(_p1)) return new __vec2(); _x = lerp(_p0[0], _p1[0], frac(_st)); _y = lerp(_p0[1], _p1[1], frac(_st)); - return new Point( _x, _y ); + return new __vec2( _x, _y ); } else { _p0 = array_safe_get(_lines, _ind * 2 + 0,, ARRAY_OVERFLOW._default); _p1 = array_safe_get(_lines, _ind * 2 + 1,, ARRAY_OVERFLOW._default); - if(!is_array(_p0)) return new Point(); - if(!is_array(_p1)) return new Point(); + if(!is_array(_p0)) return new __vec2(); + if(!is_array(_p1)) return new __vec2(); _x = lerp(_p0[0], _p1[0], _rat); _y = lerp(_p0[1], _p1[1], _rat); - return new Point( _x, _y ); + return new __vec2( _x, _y ); } } diff --git a/scripts/node_path_l_system/node_path_l_system.gml b/scripts/node_path_l_system/node_path_l_system.gml index c14e06783..d488469a2 100644 --- a/scripts/node_path_l_system/node_path_l_system.gml +++ b/scripts/node_path_l_system/node_path_l_system.gml @@ -164,13 +164,13 @@ function Node_Path_L_System(_x, _y, _group = noone) : Node(_x, _y, _group) const var _p0 = lines[_ind][0]; var _p1 = lines[_ind][1]; - if(!is_array(_p0) || array_length(_p0) < 2) return new Point(); - if(!is_array(_p1) || array_length(_p1) < 2) return new Point(); + if(!is_array(_p0) || array_length(_p0) < 2) return new __vec2(); + if(!is_array(_p1) || array_length(_p1) < 2) return new __vec2(); var _x = lerp(_p0[0], _p1[0], _rat); var _y = lerp(_p0[1], _p1[1], _rat); - return new Point( _x, _y ); + return new __vec2( _x, _y ); } static getPointDistance = function(_dist, _ind = 0) { diff --git a/scripts/node_path_map_area/node_path_map_area.gml b/scripts/node_path_map_area/node_path_map_area.gml index f5d83a83f..781f04cd8 100644 --- a/scripts/node_path_map_area/node_path_map_area.gml +++ b/scripts/node_path_map_area/node_path_map_area.gml @@ -47,7 +47,7 @@ function Node_Path_Map_Area(_x, _y, _group = noone) : Node(_x, _y, _group) const } if(!is_struct(_path) || !struct_has(_path, "getPointRatio")) - return new Point(); + return new __vec2(); var _b = _path.getBoundary(); var _p = _path.getPointRatio(_rat, ind).clone(); diff --git a/scripts/node_path_plot/node_path_plot.gml b/scripts/node_path_plot/node_path_plot.gml index 5f759ba4d..f309501c7 100644 --- a/scripts/node_path_plot/node_path_plot.gml +++ b/scripts/node_path_plot/node_path_plot.gml @@ -63,7 +63,7 @@ function Node_Path_Plot(_x, _y, _group = noone) : Node(_x, _y, _group) construct _rat = _ran[0] + (_rat * (_ran[1] - _ran[0])); - var _p = new Point(); + var _p = new __vec2(); switch(_coor) { case 0 : @@ -83,7 +83,7 @@ function Node_Path_Plot(_x, _y, _group = noone) : Node(_x, _y, _group) construct } break; case 1 : - var _a = new Point(); + var _a = new __vec2(); switch(_eqa) { case 0 : _a.x = _rat * _iran[0] + _shf[0]; diff --git a/scripts/node_path_reverse/node_path_reverse.gml b/scripts/node_path_reverse/node_path_reverse.gml index df62871a4..8742b0480 100644 --- a/scripts/node_path_reverse/node_path_reverse.gml +++ b/scripts/node_path_reverse/node_path_reverse.gml @@ -38,7 +38,7 @@ function Node_Path_Reverse(_x, _y, _group = noone) : Node(_x, _y, _group) constr var _path = inputs[| 0].getValue(); if(!is_struct(_path) || !struct_has(_path, "getPointRatio")) - return new Point(); + return new __vec2(); return _path.getPointRatio(1 - _rat, ind).clone(); } diff --git a/scripts/node_path_shift/node_path_shift.gml b/scripts/node_path_shift/node_path_shift.gml index 8bdcc544f..f073bd4eb 100644 --- a/scripts/node_path_shift/node_path_shift.gml +++ b/scripts/node_path_shift/node_path_shift.gml @@ -41,7 +41,7 @@ function Node_Path_Shift(_x, _y, _group = noone) : Node(_x, _y, _group) construc } if(!is_struct(_path) || !struct_has(_path, "getPointRatio")) - return new Point(); + return new __vec2(); var _p0 = _path.getPointRatio(clamp(_rat - 0.001, 0, 0.999999), ind); var _p = _path.getPointRatio(_rat, ind).clone(); diff --git a/scripts/node_path_transform/node_path_transform.gml b/scripts/node_path_transform/node_path_transform.gml index 34a1b28f8..4f0b72120 100644 --- a/scripts/node_path_transform/node_path_transform.gml +++ b/scripts/node_path_transform/node_path_transform.gml @@ -96,7 +96,7 @@ function Node_Path_Transform(_x, _y, _group = noone) : Node(_x, _y, _group) cons } if(!is_struct(_path) || !struct_has(_path, "getPointRatio")) - return new Point(); + return new __vec2(); var _p = _path.getPointRatio(_rat, ind).clone(); diff --git a/scripts/node_path_trim/node_path_trim.gml b/scripts/node_path_trim/node_path_trim.gml index 590a04596..0c7f5b929 100644 --- a/scripts/node_path_trim/node_path_trim.gml +++ b/scripts/node_path_trim/node_path_trim.gml @@ -42,7 +42,7 @@ function Node_Path_Trim(_x, _y, _group = noone) : Node(_x, _y, _group) construct } if(!is_struct(_path) || !struct_has(_path, "getPointRatio")) - return new Point(); + return new __vec2(); _rat = _rng[0] + _rat * (_rng[1] - _rng[0]); return _path.getPointRatio(_rat, ind).clone(); diff --git a/scripts/node_path_wave/node_path_wave.gml b/scripts/node_path_wave/node_path_wave.gml index af3af1949..0448ef284 100644 --- a/scripts/node_path_wave/node_path_wave.gml +++ b/scripts/node_path_wave/node_path_wave.gml @@ -72,7 +72,7 @@ function Node_Path_Wave(_x, _y, _group = noone) : Node(_x, _y, _group) construct } if(!is_struct(_path) || !struct_has(_path, "getPointRatio")) - return new Point(); + return new __vec2(); var _p0 = _path.getPointRatio(clamp(_rat - 0.001, 0, 0.999999), ind); var _p = _path.getPointRatio(_rat, ind).clone(); diff --git a/scripts/panel_preview/panel_preview.gml b/scripts/panel_preview/panel_preview.gml index 02a0e53e5..831127f63 100644 --- a/scripts/panel_preview/panel_preview.gml +++ b/scripts/panel_preview/panel_preview.gml @@ -618,8 +618,13 @@ function Panel_Preview() : PanelContent() constructor { } var _node = getNodePreview(); - if(_node) + if(_node) { title = _node.display_name == ""? _node.name : _node.display_name; + + var cx = canvas_x + _node.preview_x * canvas_s; + var cy = canvas_y + _node.preview_y * canvas_s; + _node.drawPreview(cx, cy, canvas_s); + } if(splitView == 0 && tileMode == 0 && is_surface(preview_surface[0])) { var node = preview_node[0]; @@ -1252,6 +1257,8 @@ function Panel_Preview() : PanelContent() constructor { } var params = new widgetParam(tolx, toly, tolw, tolh, atr[$ key],, [ mx, my ]) + params.s = tolh; + wdg.drawParam(params); tolx += tolw + ui(16);