|
|
@ -48,7 +48,7 @@ |
|
|
|
EVENT_LINK_COLOR: "#A86", |
|
|
|
EVENT_LINK_COLOR: "#A86", |
|
|
|
CONNECTING_LINK_COLOR: "#AFA", |
|
|
|
CONNECTING_LINK_COLOR: "#AFA", |
|
|
|
|
|
|
|
|
|
|
|
MAX_NUMBER_OF_NODES: 1000, //avoid infinite loops
|
|
|
|
MAX_NUMBER_OF_NODES: 10000, //avoid infinite loops
|
|
|
|
DEFAULT_POSITION: [100, 100], //default node position
|
|
|
|
DEFAULT_POSITION: [100, 100], //default node position
|
|
|
|
VALID_SHAPES: ["default", "box", "round", "card"], //,"circle"
|
|
|
|
VALID_SHAPES: ["default", "box", "round", "card"], //,"circle"
|
|
|
|
|
|
|
|
|
|
|
@ -3788,16 +3788,42 @@ |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* returns the bounding of the object, used for rendering purposes |
|
|
|
* returns the bounding of the object, used for rendering purposes |
|
|
|
* bounding is: [topleft_cornerx, topleft_cornery, width, height] |
|
|
|
|
|
|
|
* @method getBounding |
|
|
|
* @method getBounding |
|
|
|
* @return {Float32Array[4]} the total size |
|
|
|
* @param out {Float32Array[4]?} [optional] a place to store the output, to free garbage |
|
|
|
|
|
|
|
* @param compute_outer {boolean?} [optional] set to true to include the shadow and connection points in the bounding calculation |
|
|
|
|
|
|
|
* @return {Float32Array[4]} the bounding box in format of [topleft_cornerx, topleft_cornery, width, height] |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
LGraphNode.prototype.getBounding = function(out) { |
|
|
|
LGraphNode.prototype.getBounding = function(out, compute_outer) { |
|
|
|
out = out || new Float32Array(4); |
|
|
|
out = out || new Float32Array(4); |
|
|
|
out[0] = this.pos[0] - 4; |
|
|
|
const nodePos = this.pos; |
|
|
|
out[1] = this.pos[1] - LiteGraph.NODE_TITLE_HEIGHT; |
|
|
|
const isCollapsed = this.flags.collapsed; |
|
|
|
out[2] = this.flags.collapsed ? (this._collapsed_width || LiteGraph.NODE_COLLAPSED_WIDTH) : this.size[0] + 4; |
|
|
|
const nodeSize = this.size; |
|
|
|
out[3] = this.flags.collapsed ? LiteGraph.NODE_TITLE_HEIGHT : this.size[1] + LiteGraph.NODE_TITLE_HEIGHT; |
|
|
|
|
|
|
|
|
|
|
|
let left_offset = 0; |
|
|
|
|
|
|
|
// 1 offset due to how nodes are rendered
|
|
|
|
|
|
|
|
let right_offset = 1 ; |
|
|
|
|
|
|
|
let top_offset = 0; |
|
|
|
|
|
|
|
let bottom_offset = 0; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (compute_outer) { |
|
|
|
|
|
|
|
// 4 offset for collapsed node connection points
|
|
|
|
|
|
|
|
left_offset = 4; |
|
|
|
|
|
|
|
// 6 offset for right shadow and collapsed node connection points
|
|
|
|
|
|
|
|
right_offset = 6 + left_offset; |
|
|
|
|
|
|
|
// 4 offset for collapsed nodes top connection points
|
|
|
|
|
|
|
|
top_offset = 4; |
|
|
|
|
|
|
|
// 5 offset for bottom shadow and collapsed node connection points
|
|
|
|
|
|
|
|
bottom_offset = 5 + top_offset; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
out[0] = nodePos[0] - left_offset; |
|
|
|
|
|
|
|
out[1] = nodePos[1] - LiteGraph.NODE_TITLE_HEIGHT - top_offset; |
|
|
|
|
|
|
|
out[2] = isCollapsed ? |
|
|
|
|
|
|
|
(this._collapsed_width || LiteGraph.NODE_COLLAPSED_WIDTH) + right_offset : |
|
|
|
|
|
|
|
nodeSize[0] + right_offset; |
|
|
|
|
|
|
|
out[3] = isCollapsed ? |
|
|
|
|
|
|
|
LiteGraph.NODE_TITLE_HEIGHT + bottom_offset : |
|
|
|
|
|
|
|
nodeSize[1] + LiteGraph.NODE_TITLE_HEIGHT + bottom_offset; |
|
|
|
|
|
|
|
|
|
|
|
if (this.onBounding) { |
|
|
|
if (this.onBounding) { |
|
|
|
this.onBounding(out); |
|
|
|
this.onBounding(out); |
|
|
@ -7674,7 +7700,7 @@ LGraphNode.prototype.executeAction = function(action) |
|
|
|
continue; |
|
|
|
continue; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (!overlapBounding(this.visible_area, n.getBounding(temp))) { |
|
|
|
if (!overlapBounding(this.visible_area, n.getBounding(temp, true))) { |
|
|
|
continue; |
|
|
|
continue; |
|
|
|
} //out of the visible area
|
|
|
|
} //out of the visible area
|
|
|
|
|
|
|
|
|
|
|
@ -11336,6 +11362,7 @@ LGraphNode.prototype.executeAction = function(action) |
|
|
|
name_element.innerText = title; |
|
|
|
name_element.innerText = title; |
|
|
|
var value_element = dialog.querySelector(".value"); |
|
|
|
var value_element = dialog.querySelector(".value"); |
|
|
|
value_element.value = value; |
|
|
|
value_element.value = value; |
|
|
|
|
|
|
|
value_element.select(); |
|
|
|
|
|
|
|
|
|
|
|
var input = value_element; |
|
|
|
var input = value_element; |
|
|
|
input.addEventListener("keydown", function(e) { |
|
|
|
input.addEventListener("keydown", function(e) { |
|
|
|