mirror of
https://github.com/Ttanasart-pt/Pixel-Composer.git
synced 2024-11-12 21:43:52 +01:00
linn
This commit is contained in:
parent
d84d96274a
commit
a30e481ffd
@ -538,6 +538,7 @@
|
||||
{"name":"draw_circle_functions","order":3,"path":"scripts/draw_circle_functions/draw_circle_functions.yy",},
|
||||
{"name":"draw_connect_elbow_diag","order":2,"path":"scripts/draw_connect_elbow_diag/draw_connect_elbow_diag.yy",},
|
||||
{"name":"draw_connect_elbow","order":1,"path":"scripts/draw_connect_elbow/draw_connect_elbow.yy",},
|
||||
{"name":"draw_connect_line","order":4,"path":"scripts/draw_connect_line/draw_connect_line.yy",},
|
||||
{"name":"draw_connect_linear","order":3,"path":"scripts/draw_connect_linear/draw_connect_linear.yy",},
|
||||
{"name":"draw_corner","order":13,"path":"scripts/draw_corner/draw_corner.yy",},
|
||||
{"name":"draw_fit","order":11,"path":"scripts/draw_fit/draw_fit.yy",},
|
||||
|
@ -1060,6 +1060,7 @@
|
||||
{"id":{"name":"draw_connect_curve","path":"scripts/draw_connect_curve/draw_connect_curve.yy",},},
|
||||
{"id":{"name":"draw_connect_elbow_diag","path":"scripts/draw_connect_elbow_diag/draw_connect_elbow_diag.yy",},},
|
||||
{"id":{"name":"draw_connect_elbow","path":"scripts/draw_connect_elbow/draw_connect_elbow.yy",},},
|
||||
{"id":{"name":"draw_connect_line","path":"scripts/draw_connect_line/draw_connect_line.yy",},},
|
||||
{"id":{"name":"draw_connect_linear","path":"scripts/draw_connect_linear/draw_connect_linear.yy",},},
|
||||
{"id":{"name":"draw_corner","path":"scripts/draw_corner/draw_corner.yy",},},
|
||||
{"id":{"name":"draw_enable_alphablend","path":"scripts/draw_enable_alphablend/draw_enable_alphablend.yy",},},
|
||||
|
@ -1,12 +1,17 @@
|
||||
function draw_line_elbow_color(x0, y0, x1, y1, cx = noone, cy = noone, _s = 1, thick = 1, col1 = c_white, col2 = c_white, corner = 0, indexIn = 1, indexOut = 1, type = LINE_STYLE.solid) {
|
||||
function draw_line_elbow_color(x0, y0, x1, y1, cx = noone, cy = noone, _s = 1, thick = 1, col1 = c_white, col2 = c_white, params = {}) {
|
||||
var extend = params.extend;
|
||||
var corner = min(extend, params.corner);
|
||||
var indexIn = params.fromIndex;
|
||||
var indexOut = params.toIndex;
|
||||
var type = params.type;
|
||||
|
||||
if(cx == noone) cx = (x0 + x1) / 2;
|
||||
if(cy == noone) cy = (y0 + y1) / 2;
|
||||
|
||||
var _x0 = min(x0, x1);
|
||||
var _x1 = max(x0, x1);
|
||||
var _y0 = min(y0, y1);
|
||||
var _y1 = max(y0, y1);
|
||||
var _x0 = min(x0, x1);
|
||||
var _x1 = max(x0, x1);
|
||||
var _y0 = min(y0, y1);
|
||||
var _y1 = max(y0, y1);
|
||||
var th = thick / 2;
|
||||
var inv = x1 - 16 * indexOut * _s <= x0 + 16 * indexIn * _s;
|
||||
var rat = inv? (_y1 == _y0? 0.5 : (cy - _y0) / (_y1 - _y0)) :
|
||||
@ -71,9 +76,14 @@ function draw_line_elbow_color(x0, y0, x1, y1, cx = noone, cy = noone, _s = 1, t
|
||||
}
|
||||
}
|
||||
|
||||
function draw_line_elbow_corner(x0, y0, x1, y1, _s = 1, thick = 1, col1 = c_white, col2 = c_white, corner = 0, indexIn = 1, indexOut = 1, type = LINE_STYLE.solid) {
|
||||
var sample = corner / 4;
|
||||
sample = clamp(sample, 1, 8);
|
||||
function draw_line_elbow_corner(x0, y0, x1, y1, _s = 1, thick = 1, col1 = c_white, col2 = c_white, params = {}) {
|
||||
var extend = params.extend;
|
||||
var corner = min(extend, params.corner);
|
||||
var indexIn = params.fromIndex;
|
||||
var indexOut = params.toIndex;
|
||||
var type = params.type;
|
||||
|
||||
var sample = clamp(corner / 4, 1, 8);
|
||||
|
||||
var rat = abs(x0 - x1) / (abs(x0 - x1) + abs(y0 - y1));
|
||||
var colc = merge_color(col1, col2, rat);
|
||||
@ -87,10 +97,14 @@ function draw_line_elbow_corner(x0, y0, x1, y1, _s = 1, thick = 1, col1 = c_whit
|
||||
draw_corner(x1 - corner * sx, y0, x1, y0, x1, y0 + corner * sy, thick, colc, sample);
|
||||
}
|
||||
|
||||
function distance_to_elbow(mx, my, x0, y0, x1, y1, cx, cy, _s, indexIn = 1, indexOut = 1) {
|
||||
var inv = x1 - 16 * _s * indexOut <= x0 + 16 * _s * indexIn;
|
||||
var xx0 = x0 + 16 * _s * indexIn;
|
||||
var xx1 = x1 - 16 * _s * indexOut;
|
||||
function distance_to_elbow(mx, my, x0, y0, x1, y1, cx, cy, _s, params = {}) {
|
||||
var extend = params.extend;
|
||||
var indexIn = params.fromIndex;
|
||||
var indexOut = params.toIndex;
|
||||
|
||||
var inv = x1 - extend * _s * indexOut <= x0 + extend * _s * indexIn;
|
||||
var xx0 = x0 + extend * _s * indexIn;
|
||||
var xx1 = x1 - extend * _s * indexOut;
|
||||
|
||||
if(y0 != y1 && inv) {
|
||||
var dist = distance_to_line(mx, my, xx0, y0, xx0, cy);
|
||||
|
@ -1,12 +1,17 @@
|
||||
function draw_line_elbow_diag_color(x0, y0, x1, y1, cx = noone, cy = noone, _s = 1, thick = 1, c1 = c_white, c2 = c_white, corner = 0, indexIn = 1, indexOut = 1, type = LINE_STYLE.solid) { #region
|
||||
function draw_line_elbow_diag_color(x0, y0, x1, y1, cx = noone, cy = noone, _s = 1, thick = 1, c1 = c_white, c2 = c_white, params = {}) {
|
||||
var extend = params.extend;
|
||||
var corner = min(extend, params.corner);
|
||||
var indexIn = params.fromIndex;
|
||||
var indexOut = params.toIndex;
|
||||
var type = params.type;
|
||||
|
||||
var __dash = 6 * _s;
|
||||
var __line = type == LINE_STYLE.solid? draw_line_width_color : draw_line_dashed_color;
|
||||
|
||||
if(y0 == y1) { __line(x0, y0, x1, y1, thick, c1, c2, __dash); return; }
|
||||
|
||||
corner = min(corner, abs(y1 - y0) / 2);
|
||||
var sample = floor(corner / 8);
|
||||
sample = clamp(sample, 0, 8);
|
||||
corner = min(corner, abs(y1 - y0) / 2);
|
||||
var sample = clamp(floor(corner / 8), 0, 8);
|
||||
if(sample == 0) corner = 0;
|
||||
|
||||
if(cx == noone) cx = (x0 + x1) / 2;
|
||||
@ -14,13 +19,12 @@ function draw_line_elbow_diag_color(x0, y0, x1, y1, cx = noone, cy = noone, _s =
|
||||
|
||||
var iy = sign(y1 - y0);
|
||||
|
||||
var xx0 = x0 + 16 * _s * indexIn;
|
||||
var xx1 = x1 - 16 * _s * indexOut;
|
||||
var yy0 = y0 + 16 * _s * iy;
|
||||
var yy1 = y1 - 16 * _s * iy;
|
||||
|
||||
var ix = sign(xx0 - xx1);
|
||||
var xx0 = x0 + extend * _s * indexIn;
|
||||
var xx1 = x1 - extend * _s * indexOut;
|
||||
var yy0 = y0;
|
||||
var yy1 = y1;
|
||||
|
||||
var ix = sign(xx0 - xx1);
|
||||
var vert = abs(yy1 - yy0) > abs(xx1 - xx0);
|
||||
var inv = vert || xx1 <= xx0;
|
||||
var _x0 = min(x0, x1);
|
||||
@ -38,17 +42,14 @@ function draw_line_elbow_diag_color(x0, y0, x1, y1, cx = noone, cy = noone, _s =
|
||||
var iy1 = sign(y1 - cy);
|
||||
var rrx = abs(xx0 - xx1);
|
||||
|
||||
var cS = min(corner, 16 * _s);
|
||||
var cS = min(corner, 16 * _s);
|
||||
|
||||
if(xx1 > xx0 && !ofl) {
|
||||
if(abs(y1 - y0) < abs(xx1 - xx0))
|
||||
cS = 0;
|
||||
|
||||
var cS0 = min(cS, abs(cy - y0) - rrx / 2);
|
||||
cS0 = max(0, cS0);
|
||||
|
||||
var cS1 = min(cS, abs(cy - y1) - rrx / 2);
|
||||
cS1 = max(0, cS1);
|
||||
var cS0 = clamp(cS, 0, abs(cy - y0) - rrx / 2);
|
||||
var cS1 = clamp(cS, 0, abs(cy - y1) - rrx / 2);
|
||||
|
||||
var top = abs(cy - y0) < rrx / 2;
|
||||
var bot = abs(y1 - cy) < rrx / 2;
|
||||
@ -206,9 +207,15 @@ function draw_line_elbow_diag_color(x0, y0, x1, y1, cx = noone, cy = noone, _s =
|
||||
draw_corner(_xc1 - cor2, y1 - cor2 * iy, _xc1, y1, _xc1 + corn, y1, thick, cm, sample);
|
||||
}
|
||||
}
|
||||
} #endregion
|
||||
}
|
||||
|
||||
function draw_line_elbow_diag_corner(x0, y0, x1, y1, _s = 1, thick = 1, col1 = c_white, col2 = c_white, corner = 0, indexIn = 1, indexOut = 1, type = LINE_STYLE.solid) { #region
|
||||
function draw_line_elbow_diag_corner(x0, y0, x1, y1, _s = 1, thick = 1, col1 = c_white, col2 = c_white, params = {}) {
|
||||
var extend = params.extend;
|
||||
var corner = min(extend, params.corner);
|
||||
var indexIn = params.fromIndex;
|
||||
var indexOut = params.toIndex;
|
||||
var type = params.type;
|
||||
|
||||
var sample = floor(corner / 8);
|
||||
sample = clamp(sample, 0, 8);
|
||||
if(sample == 0) corner = 0;
|
||||
@ -229,16 +236,18 @@ function draw_line_elbow_diag_corner(x0, y0, x1, y1, _s = 1, thick = 1, col1 = c
|
||||
draw_corner(x1 - (diag + corner) * sx, y0, x1 - diag * sx, y0, x1 - (diag - cor2) * sx, y0 + cor2 * sy, thick, colc, sample);
|
||||
draw_corner(x1 - cor2 * sx, y0 + (diag - cor2) * sy, x1, y0 + diag * sy, x1, y0 + (diag + corner) * sy, thick, colc, sample);
|
||||
|
||||
//draw_circle(x1 - diag * sx, y0, 4, false);
|
||||
//draw_circle(x1, y0 + diag * sy, 4, false);
|
||||
} #endregion
|
||||
}
|
||||
|
||||
function distance_to_elbow_diag(mx, my, x0, y0, x1, y1, cx, cy, _s, indexIn = 1, indexOut = 1) { #region
|
||||
function distance_to_elbow_diag(mx, my, x0, y0, x1, y1, cx, cy, _s, params = {}) {
|
||||
var extend = params.extend;
|
||||
var indexIn = params.fromIndex;
|
||||
var indexOut = params.toIndex;
|
||||
|
||||
var iy = sign(y1 - y0);
|
||||
var xx0 = x0 + 16 * _s * indexIn;
|
||||
var xx1 = x1 - 16 * _s * indexOut;
|
||||
var yy0 = y0 + 16 * _s * iy;
|
||||
var yy1 = y1 - 16 * _s * iy;
|
||||
var xx0 = x0 + extend * _s * indexIn;
|
||||
var xx1 = x1 - extend * _s * indexOut;
|
||||
var yy0 = y0;
|
||||
var yy1 = y1;
|
||||
|
||||
var vert = abs(yy1 - yy0) > abs(xx1 - xx0);
|
||||
var inv = vert || xx1 <= xx0;
|
||||
@ -330,9 +339,9 @@ function distance_to_elbow_diag(mx, my, x0, y0, x1, y1, cx, cy, _s, indexIn = 1,
|
||||
|
||||
return dist;
|
||||
}
|
||||
} #endregion
|
||||
}
|
||||
|
||||
function distance_to_elbow_diag_corner(mx, my, x0, y0, x1, y1) { #region
|
||||
function distance_to_elbow_diag_corner(mx, my, x0, y0, x1, y1) {
|
||||
var sx = sign(x1 - x0);
|
||||
var sy = sign(y1 - y0);
|
||||
var diag = min(abs(x0 - x1) / 2, abs(y0 - y1) / 2);
|
||||
@ -343,4 +352,4 @@ function distance_to_elbow_diag_corner(mx, my, x0, y0, x1, y1) { #region
|
||||
dist = min(dist, distance_to_line(mx, my, x1, y0 + diag * sy, x1, y1));
|
||||
|
||||
return dist;
|
||||
} #endregion
|
||||
}
|
42
scripts/draw_connect_line/draw_connect_line.gml
Normal file
42
scripts/draw_connect_line/draw_connect_line.gml
Normal file
@ -0,0 +1,42 @@
|
||||
function draw_line_connect(x0, y0, x1, y1, _s = 1, thick = 1, c1 = c_white, c2 = c_white, params = {}) {
|
||||
var extend = params.extend;
|
||||
var corner = min(extend, params.corner);
|
||||
var type = params.type;
|
||||
|
||||
var sample = clamp(corner / 4, 1, 8);
|
||||
|
||||
var xx0 = x0 + extend * _s;
|
||||
var xx1 = x1 - extend * _s;
|
||||
var dir = point_direction(xx0, y0, xx1, y1);
|
||||
|
||||
var cx0 = xx0 + lengthdir_x(corner, dir);
|
||||
var cy0 = y0 + lengthdir_y(corner, dir);
|
||||
var cx1 = xx1 - lengthdir_x(corner, dir);
|
||||
var cy1 = y1 - lengthdir_y(corner, dir);
|
||||
|
||||
draw_line_width_color( x0, y0, xx0 - corner, y0, thick, c1, c1);
|
||||
draw_line_width_color(xx1 + corner, y1, x1, y1, thick, c2, c2);
|
||||
draw_line_width_color(cx0, cy0, cx1, cy1, thick, c1, c2);
|
||||
|
||||
draw_corner(xx0 - corner, y0,
|
||||
xx0, y0,
|
||||
cx0, cy0,
|
||||
thick, c1, sample);
|
||||
|
||||
draw_corner(cx1, cy1,
|
||||
xx1, y1,
|
||||
xx1 + corner, y1,
|
||||
thick, c2, sample);
|
||||
|
||||
}
|
||||
|
||||
function distance_to_linear_connection(mx, my, x0, y0, x1, y1, _s, params = {}) {
|
||||
var extend = params.extend;
|
||||
var indexIn = params.fromIndex;
|
||||
var indexOut = params.toIndex;
|
||||
|
||||
var xx0 = x0 + extend * _s;
|
||||
var xx1 = x1 - extend * _s;
|
||||
|
||||
return distance_to_line(mx, my, xx0, y0, xx1, y1);
|
||||
}
|
13
scripts/draw_connect_line/draw_connect_line.yy
Normal file
13
scripts/draw_connect_line/draw_connect_line.yy
Normal file
@ -0,0 +1,13 @@
|
||||
{
|
||||
"$GMScript":"v1",
|
||||
"%Name":"draw_connect_line",
|
||||
"isCompatibility":false,
|
||||
"isDnD":false,
|
||||
"name":"draw_connect_line",
|
||||
"parent":{
|
||||
"name":"connection",
|
||||
"path":"folders/functions/connection.yy",
|
||||
},
|
||||
"resourceType":"GMScript",
|
||||
"resourceVersion":"2.0",
|
||||
}
|
@ -18,7 +18,11 @@ function draw_corner(x1, y1, xc, yc, x3, y3, thick = 1, col = c_white, sample =
|
||||
var y4 = p4[1];
|
||||
|
||||
var ra = (x1 - x2) * (y3 - y4) - (y1 - y2) * (x3 - x4);
|
||||
if(ra == 0) return;
|
||||
if(ra == 0) {
|
||||
__draw_set_color(col);
|
||||
draw_line_width(x1, y1, x3, y3, thick);
|
||||
return;
|
||||
}
|
||||
|
||||
var px = ((x1 * y2 - y1 * x2) * (x3 - x4) - (x1 - x2) * (x3 * y4 - y3 * x4)) / ra;
|
||||
var py = ((x1 * y2 - y1 * x2) * (y3 - y4) - (y1 - y2) * (x3 * y4 - y3 * x4)) / ra;
|
||||
|
@ -723,7 +723,7 @@ function Node_Mesh_Warp(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
|
||||
for(var i = control_index; i < array_length(inputs); i++) {
|
||||
var c = getInputData(i);
|
||||
|
||||
if(c[0] == PUPPET_FORCE_MODE.puppet)
|
||||
if(c[0] == PUPPET_FORCE_MODE.puppet)
|
||||
array_push(mesh_data.controls, c);
|
||||
}
|
||||
|
||||
|
@ -2049,9 +2049,22 @@ function NodeValue(_name, _node, _connect, _type, _value, _tooltip = "") constru
|
||||
|
||||
var _action = type == VALUE_TYPE.action;
|
||||
var _output = connect_type == CONNECT_TYPE.output;
|
||||
var _drawParam = {
|
||||
corner : corner,
|
||||
extend : PREFERENCES.connection_line_extend,
|
||||
fromIndex : 1,
|
||||
toIndex : 1,
|
||||
type : LINE_STYLE.solid,
|
||||
}
|
||||
|
||||
switch(PREFERENCES.curve_connection_line) {
|
||||
case 0 : draw_line_width(sx, sy, _mx, _my, th); break;
|
||||
case 0 :
|
||||
if(drawCorner) draw_line_width(sx, sy, _mx, _my, th);
|
||||
else {
|
||||
if(_output) draw_line_connect(sx, sy, _mx, _my, ss, th, col, col, _drawParam);
|
||||
else draw_line_connect(_mx, _my, sx, sy, ss, th, col, col, _drawParam);
|
||||
}
|
||||
break;
|
||||
|
||||
case 1 :
|
||||
if(drawCorner) {
|
||||
@ -2065,21 +2078,21 @@ function NodeValue(_name, _node, _connect, _type, _value, _tooltip = "") constru
|
||||
|
||||
case 2 :
|
||||
if(drawCorner) {
|
||||
if(_action) draw_line_elbow_corner(_mx, _my, sx, sy, ss, th, col, col, corner);
|
||||
else draw_line_elbow_corner(sx, sy, _mx, _my, ss, th, col, col, corner);
|
||||
if(_action) draw_line_elbow_corner(_mx, _my, sx, sy, ss, th, col, col, _drawParam);
|
||||
else draw_line_elbow_corner(sx, sy, _mx, _my, ss, th, col, col, _drawParam);
|
||||
} else {
|
||||
if(_output) draw_line_elbow_color(sx, sy, _mx, _my,,, ss, th, col, col, corner);
|
||||
else draw_line_elbow_color(_mx, _my, sx, sy,,, ss, th, col, col, corner);
|
||||
if(_output) draw_line_elbow_color(sx, sy, _mx, _my,,, ss, th, col, col, _drawParam);
|
||||
else draw_line_elbow_color(_mx, _my, sx, sy,,, ss, th, col, col, _drawParam);
|
||||
}
|
||||
break;
|
||||
|
||||
case 3 :
|
||||
if(drawCorner) {
|
||||
if(_action) draw_line_elbow_diag_corner(_mx, _my, sx, sy, ss, th, col, col, corner);
|
||||
else draw_line_elbow_diag_corner(sx, sy, _mx, _my, ss, th, col, col, corner);
|
||||
if(_action) draw_line_elbow_diag_corner(_mx, _my, sx, sy, ss, th, col, col, _drawParam);
|
||||
else draw_line_elbow_diag_corner(sx, sy, _mx, _my, ss, th, col, col, _drawParam);
|
||||
} else {
|
||||
if(_output) draw_line_elbow_diag_color(sx, sy, _mx, _my,,, ss, th, col, col, corner);
|
||||
else draw_line_elbow_diag_color(_mx, _my, sx, sy,,, ss, th, col, col, corner);
|
||||
if(_output) draw_line_elbow_diag_color(sx, sy, _mx, _my,,, ss, th, col, col, _drawParam);
|
||||
else draw_line_elbow_diag_color(_mx, _my, sx, sy,,, ss, th, col, col, _drawParam);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@ -2434,38 +2447,45 @@ function drawJuncConnection(from, to, params) {
|
||||
#endregion
|
||||
|
||||
#region +++++ CHECK HOVER +++++
|
||||
var _drawParam = {
|
||||
extend : PREFERENCES.connection_line_extend,
|
||||
fromIndex : fromIndex,
|
||||
toIndex : toIndex,
|
||||
}
|
||||
var hovDist = max(th * 2, 6);
|
||||
|
||||
if(PANEL_GRAPH.pHOVER) {
|
||||
if(_loop || from.node == to.node) {
|
||||
hover = distance_line_feedback(mx, my, jx, jy, frx, fry, _s) < hovDist;
|
||||
|
||||
} else {
|
||||
var _hdist = 999999;
|
||||
|
||||
switch(PREFERENCES.curve_connection_line) {
|
||||
case 0 :
|
||||
hover = distance_to_line(mx, my, jx, jy, frx, fry) < hovDist;
|
||||
if(downDirection) _hdist = distance_to_line(mx, my, jx, jy, frx, fry);
|
||||
else _hdist = distance_to_linear_connection(mx, my, jx, jy, frx, fry, _s, _drawParam);
|
||||
break;
|
||||
case 1 :
|
||||
if(downDirection) hover = distance_to_curve_corner(mx, my, jx, jy, frx, fry, _s) < hovDist;
|
||||
else hover = distance_to_curve(mx, my, jx, jy, frx, fry, cx, cy, _s) < hovDist;
|
||||
|
||||
if(PANEL_GRAPH.value_focus == noone)
|
||||
to.draw_line_shift_hover = hover;
|
||||
case 1 :
|
||||
if(downDirection) _hdist = distance_to_curve_corner(mx, my, jx, jy, frx, fry, _s);
|
||||
else _hdist = distance_to_curve(mx, my, jx, jy, frx, fry, cx, cy, _s);
|
||||
break;
|
||||
|
||||
case 2 :
|
||||
if(downDirection) hover = distance_to_elbow_corner(mx, my, frx, fry, jx, jy) < hovDist;
|
||||
else hover = distance_to_elbow(mx, my, frx, fry, jx, jy, cx, cy, _s, fromIndex, toIndex) < hovDist;
|
||||
|
||||
if(PANEL_GRAPH.value_focus == noone)
|
||||
to.draw_line_shift_hover = hover;
|
||||
if(downDirection) _hdist = distance_to_elbow_corner(mx, my, frx, fry, jx, jy);
|
||||
else _hdist = distance_to_elbow(mx, my, frx, fry, jx, jy, cx, cy, _s, _drawParam);
|
||||
break;
|
||||
|
||||
case 3 :
|
||||
if(downDirection) hover = distance_to_elbow_diag_corner(mx, my, frx, fry, jx, jy) < hovDist;
|
||||
else hover = distance_to_elbow_diag(mx, my, frx, fry, jx, jy, cx, cy, _s, fromIndex, toIndex) < hovDist;
|
||||
|
||||
if(PANEL_GRAPH.value_focus == noone)
|
||||
to.draw_line_shift_hover = hover;
|
||||
if(downDirection) _hdist = distance_to_elbow_diag_corner(mx, my, frx, fry, jx, jy);
|
||||
else _hdist = distance_to_elbow_diag(mx, my, frx, fry, jx, jy, cx, cy, _s, _drawParam);
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
hover = _hdist < hovDist;
|
||||
if(PANEL_GRAPH.value_focus == noone) to.draw_line_shift_hover = hover;
|
||||
}
|
||||
}
|
||||
|
||||
@ -2526,23 +2546,30 @@ function drawJuncConnection(from, to, params) {
|
||||
if(_loop || from.node == to.node) {
|
||||
draw_line_feedback(jx, jy, frx, fry, th, c1, c0, ss);
|
||||
} else {
|
||||
_drawParam.corner = corner;
|
||||
_drawParam.type = ty;
|
||||
|
||||
switch(PREFERENCES.curve_connection_line) {
|
||||
case 0 :
|
||||
if(ty == LINE_STYLE.solid) draw_line_width_color(jx, jy, frx, fry, th, c1, c0);
|
||||
else draw_line_dashed_color(jx, jy, frx, fry, th, c1, c0, 6 * ss);
|
||||
if(downDirection) draw_line_width_color(jx, jy, frx, fry, th, c1, c0);
|
||||
else draw_line_connect(frx, fry, jx, jy, ss, th, c1, c0, _drawParam);
|
||||
break;
|
||||
|
||||
case 1 :
|
||||
if(downDirection) draw_line_curve_corner(jx, jy, frx, fry, ss, th, c0, c1);
|
||||
else draw_line_curve_color(jx, jy, frx, fry, cx, cy, ss, th, c0, c1, ty);
|
||||
break;
|
||||
|
||||
case 2 :
|
||||
if(downDirection) draw_line_elbow_corner(frx, fry, jx, jy, ss, th, c0, c1, corner, fromIndex, toIndex, ty);
|
||||
else draw_line_elbow_color(frx, fry, jx, jy, cx, cy, ss, th, c0, c1, corner, fromIndex, toIndex, ty);
|
||||
if(downDirection) draw_line_elbow_corner(frx, fry, jx, jy, ss, th, c0, c1, _drawParam);
|
||||
else draw_line_elbow_color(frx, fry, jx, jy, cx, cy, ss, th, c0, c1, _drawParam);
|
||||
break;
|
||||
|
||||
case 3 :
|
||||
if(downDirection) draw_line_elbow_diag_corner(frx, fry, jx, jy, ss, th, c0, c1, corner, fromIndex, toIndex, ty);
|
||||
else draw_line_elbow_diag_color(frx, fry, jx, jy, cx, cy, ss, th, c0, c1, corner, fromIndex, toIndex, ty);
|
||||
if(downDirection) draw_line_elbow_diag_corner(frx, fry, jx, jy, ss, th, c0, c1, _drawParam);
|
||||
else draw_line_elbow_diag_color(frx, fry, jx, jy, cx, cy, ss, th, c0, c1, _drawParam);
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -5,38 +5,42 @@ function Panel_Graph_Connection_Setting() : Panel_Linear_Setting() constructor {
|
||||
new __Panel_Linear_Setting_Item_Preference(
|
||||
__txt("Type"),
|
||||
"curve_connection_line",
|
||||
new buttonGroup([ THEME.icon_curve_connection, THEME.icon_curve_connection, THEME.icon_curve_connection, THEME.icon_curve_connection ],
|
||||
function(val) { PREFERENCES.curve_connection_line = val; }),
|
||||
new buttonGroup(array_create(4, THEME.icon_curve_connection), function(val) /*=>*/ { PREFERENCES.curve_connection_line = val; }),
|
||||
),
|
||||
new __Panel_Linear_Setting_Item_Preference(
|
||||
__txtx("dialog_connection_thickness", "Line thickness"),
|
||||
"connection_line_width",
|
||||
new textBox(TEXTBOX_INPUT.number, function(str) { PREFERENCES.connection_line_width = max(0.5, real(str)); }),
|
||||
new textBox(TEXTBOX_INPUT.number, function(str) /*=>*/ { PREFERENCES.connection_line_width = max(0.5, real(str)); }),
|
||||
),
|
||||
new __Panel_Linear_Setting_Item_Preference(
|
||||
__txtx("dialog_connection_radius", "Corner radius"),
|
||||
"connection_line_corner",
|
||||
new textBox(TEXTBOX_INPUT.number, function(str) { PREFERENCES.connection_line_corner = max(0, real(str)); }),
|
||||
new textBox(TEXTBOX_INPUT.number, function(str) /*=>*/ { PREFERENCES.connection_line_corner = max(0, real(str)); }),
|
||||
),
|
||||
new __Panel_Linear_Setting_Item_Preference(
|
||||
__txtx("dialog_connection_extends", "Extends"),
|
||||
"connection_line_extend",
|
||||
new textBox(TEXTBOX_INPUT.number, function(str) /*=>*/ { PREFERENCES.connection_line_extend = max(0, real(str)); }),
|
||||
),
|
||||
new __Panel_Linear_Setting_Item_Preference(
|
||||
__txtx("pref_connection_quality", "Render quality"),
|
||||
"connection_line_aa",
|
||||
new textBox(TEXTBOX_INPUT.number, function(str) { PREFERENCES.connection_line_aa = clamp(real(str), 1, 4); }),
|
||||
new textBox(TEXTBOX_INPUT.number, function(str) /*=>*/ { PREFERENCES.connection_line_aa = clamp(real(str), 1, 4); }),
|
||||
),
|
||||
new __Panel_Linear_Setting_Item_Preference(
|
||||
__txtx("pref_connection_highlight", "Highlight connection"),
|
||||
"connection_line_highlight",
|
||||
new buttonGroup([ "None", "ALT", "Always" ], function(val) { PREFERENCES.connection_line_highlight = val; }),
|
||||
new buttonGroup([ "None", "ALT", "Always" ], function(val) /*=>*/ { PREFERENCES.connection_line_highlight = val; }),
|
||||
),
|
||||
new __Panel_Linear_Setting_Item_Preference(
|
||||
__txtx("pref_connection_highlight_fade", "Fade connection"),
|
||||
"connection_line_highlight_fade",
|
||||
slider(0, 1, 0.05, function(val) { PREFERENCES.connection_line_highlight_fade = val; }),
|
||||
slider(0, 1, 0.05, function(val) /*=>*/ { PREFERENCES.connection_line_highlight_fade = val; }),
|
||||
),
|
||||
new __Panel_Linear_Setting_Item_Preference(
|
||||
__txtx("pref_connection_highlight_all", "Highlight all"),
|
||||
"connection_line_highlight_all",
|
||||
new checkBox(function() { PREFERENCES.connection_line_highlight_all = !PREFERENCES.connection_line_highlight_all; }),
|
||||
new checkBox(function() /*=>*/ { PREFERENCES.connection_line_highlight_all = !PREFERENCES.connection_line_highlight_all; }),
|
||||
),
|
||||
];
|
||||
|
||||
|
@ -108,6 +108,7 @@
|
||||
PREFERENCES.connection_line_highlight = 0;
|
||||
PREFERENCES.connection_line_highlight_fade = 0.75;
|
||||
PREFERENCES.connection_line_highlight_all = false;
|
||||
PREFERENCES.connection_line_extend = 16;
|
||||
PREFERENCES.curve_connection_line = 1;
|
||||
|
||||
PREFERENCES.collection_animated = true;
|
||||
|
Loading…
Reference in New Issue
Block a user