Upload files to 'UI'
This commit is contained in:
parent
72f002497c
commit
4e96b3e9d2
1 changed files with 74 additions and 0 deletions
|
@ -61,3 +61,77 @@ def rectangle_overlap(rectangle1, rectangle2):
|
|||
|
||||
|
||||
return overlap
|
||||
|
||||
def rectangle_surround( win, name, target_pos, target_size, now_pos, now_size ):
|
||||
|
||||
# This function does surrounding operations. For example you have N amount
|
||||
# of nodes selected. And you want to draw a rectangle arround all of them.
|
||||
# for this you will have to find out the smallest of all values and biggest
|
||||
# and so this is what this funtion is for.
|
||||
|
||||
now_pos = now_pos.copy()
|
||||
now_size = now_size.copy()
|
||||
|
||||
# We are going to start by refrashing the current position of the rectangle
|
||||
# for this we need to know whether at this frame there was a refresh already.
|
||||
|
||||
if win.current["frame"] != win.surround["frame"]:# and win.current["frame"] % 2 == 0:
|
||||
win.surround["frame"] = win.current["frame"]
|
||||
win.surround["rects"] = []
|
||||
|
||||
# Now let's see if a given name is in the data of those refrashed.
|
||||
|
||||
if name not in win.surround["rects"]:
|
||||
target_pos[0] = now_pos[0]
|
||||
target_pos[1] = now_pos[1]
|
||||
target_size[0] = now_size[0]
|
||||
target_size[1] = now_size[1]
|
||||
|
||||
win.surround["rects"].append(name)
|
||||
|
||||
# Now you maybe wondering why I would not just make the whole targer_size
|
||||
# for example = [0,0]. And it because lists are linked from some other
|
||||
# data. And I don't create new lists. But change the link lists.
|
||||
|
||||
|
||||
|
||||
# Now let's do the checking and overwritting of all the rest of the data.
|
||||
|
||||
if now_pos[0] < target_pos[0]:
|
||||
target_size[0] += target_pos[0] - now_pos[0]
|
||||
target_pos[0] = now_pos[0]
|
||||
|
||||
if now_pos[1] < target_pos[1]:
|
||||
target_size[1] += target_pos[1] - now_pos[1]
|
||||
target_pos[1] = now_pos[1]
|
||||
|
||||
# Now the size. It's a bit trickier. But not too hard. We need to remember
|
||||
# the the ultimate bottom, right point is a combintation of position and
|
||||
# size.
|
||||
|
||||
|
||||
if now_pos[0] + now_size[0] > target_pos[0] + target_size[0]:
|
||||
target_size[0] = now_size[0] + now_pos[0] - target_pos[0]
|
||||
|
||||
if now_pos[1] + now_size[1] > target_pos[1] + target_size[1]:
|
||||
target_size[1] = now_size[1] + now_pos[1] - target_pos[1]
|
||||
|
||||
def filter_arrows(win):
|
||||
|
||||
# This function filters the arrow connections. I copied it from the
|
||||
# Blender_Organizer's code. at py_data/modules/story_editor.py
|
||||
|
||||
# Doing some clever magic I forgot the purpose of
|
||||
for num, arrow in enumerate(win.story["arrows"]):
|
||||
for num2, arrow2 in enumerate(win.story["arrows"]):
|
||||
if arrow[0] == arrow2[0] or arrow[1] == arrow2[1]:
|
||||
win.story["arrows"][num] = arrow2
|
||||
|
||||
# Removing doubles
|
||||
tmp = []
|
||||
for i in win.story["arrows"]:
|
||||
if i not in tmp:
|
||||
tmp.append(i)
|
||||
win.story["arrows"] = tmp
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue