update
This commit is contained in:
parent
55bde74ff2
commit
8f09adceac
|
@ -1,21 +1,48 @@
|
|||
# SPDX-FileCopyrightText: 2023 SatyrDiamond
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
from functions import xtramath
|
||||
|
||||
def reverse(regions, num_len):
|
||||
return [[((num_len-region[0])-region[1])-1, region[1]] for region in regions]
|
||||
|
||||
def get_used_areas(regionsdata, num_len):
|
||||
def split(regionsdata, splitnum, mindur):
|
||||
out_regionsdata = []
|
||||
for region in regionsdata:
|
||||
if region[0] < splitnum < region[1]:
|
||||
if splitnum-region[0] >= mindur: out_regionsdata.append([region[0], splitnum])
|
||||
if region[1]-splitnum >= mindur: out_regionsdata.append([splitnum, region[1]])
|
||||
else: out_regionsdata.append(region)
|
||||
return out_regionsdata
|
||||
|
||||
def get_startendpoints(regionsdata, startpoints, endpoints, mindur):
|
||||
for region in regionsdata:
|
||||
if (region[1]-region[0]) >= mindur:
|
||||
if region[0] not in startpoints: startpoints[region[0]] = 0
|
||||
startpoints[region[0]] += 1
|
||||
if region[1] not in endpoints: endpoints[region[1]] = 0
|
||||
endpoints[region[1]] += 1
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
def boollist_get(regionsdata, num_len):
|
||||
used_areas = [False for _ in range(num_len)]
|
||||
for s_reg in regionsdata:
|
||||
for num in range(s_reg[0], s_reg[0]+s_reg[1]):
|
||||
used_areas[num] = True
|
||||
return used_areas
|
||||
|
||||
def get_endpoints(endpoints, regionsdata):
|
||||
for s_reg in regionsdata:
|
||||
endpointval = s_reg[0]+s_reg[1]
|
||||
if endpointval not in endpoints: endpoints[endpointval] = 0
|
||||
endpoints[endpointval] += 1
|
||||
|
||||
def merge_used_areas(used1, used2):
|
||||
def boollist_merge(used1, used2):
|
||||
return [(used1[x] or used2[x]) for x in range(len(used1))]
|
|
@ -75,6 +75,23 @@ def list_to_reigons(i_list, offsetval):
|
|||
mscount += 1
|
||||
return output
|
||||
|
||||
def list_to_reigons_bool(i_list):
|
||||
found_regs = []
|
||||
i_list_p = None
|
||||
mscount = 0
|
||||
for i_list_e in i_list:
|
||||
if i_list_e != i_list_p:
|
||||
i_list_p = i_list_e
|
||||
found_regs.append([i_list_p, mscount, mscount])
|
||||
found_regs[-1][2] += 1
|
||||
mscount += 1
|
||||
|
||||
output = []
|
||||
for found_reg in found_regs:
|
||||
if found_reg[0]: output.append(found_reg[1:])
|
||||
|
||||
return output
|
||||
|
||||
def list_findrepeat(i_list):
|
||||
outdata = []
|
||||
for part in i_list:
|
||||
|
@ -172,4 +189,10 @@ def list_tab_closest(i_list, v_target, v_num):
|
|||
closestnumlist[0] = list_part
|
||||
closestnumlist[1] = num
|
||||
closestnumlist[2] = howclose
|
||||
return closestnumlist
|
||||
return closestnumlist
|
||||
|
||||
def list_samesimilar(first, second):
|
||||
out = 0
|
||||
for x in range(len(first)):
|
||||
if first[x] == second[x]: out += 1
|
||||
return out/len(first)
|
|
@ -5,41 +5,6 @@ from functions import xtramath
|
|||
from functions import data_values
|
||||
from functions import data_regions
|
||||
|
||||
# ---------------------------------------------------------------------------------------------------------------
|
||||
# ---------------------------------------------------------------------------------------------------------------
|
||||
# ---------------------------------------------------------------------------------------------------------------
|
||||
# -------------------------------------------------- Print --------------------------------------------------
|
||||
# ---------------------------------------------------------------------------------------------------------------
|
||||
# ---------------------------------------------------------------------------------------------------------------
|
||||
# ---------------------------------------------------------------------------------------------------------------
|
||||
|
||||
p_headersize = 20
|
||||
p_partsize = 4
|
||||
|
||||
def print_usedlist(i_name, numlist):
|
||||
print((i_name).rjust(p_headersize), end=' |')
|
||||
for x in numlist:
|
||||
if x == True: x = '###'
|
||||
if x == False: x = ' '
|
||||
print(str(x).rjust(p_partsize)+'|', end='')
|
||||
print()
|
||||
|
||||
def print_numlist(i_name, numlist):
|
||||
print((i_name).rjust(p_headersize), end=' |')
|
||||
[print(str(x).rjust(p_partsize)+'|', end='') for x in numlist]
|
||||
print()
|
||||
|
||||
def print_regions(i_length, i_name, regions):
|
||||
usedparts = [' ' for _ in range(i_length*2)]
|
||||
for region in regions:
|
||||
for num in range(region[0], region[0]+region[1]):
|
||||
usedparts[num] = '####'
|
||||
usedparts[region[0]+region[1]] = '##\\ '
|
||||
|
||||
print((i_name).rjust(p_headersize), end=' |')
|
||||
[print(str(x).rjust(p_partsize)+'|', end='') for x in usedparts]
|
||||
print()
|
||||
|
||||
# ---------------------------------------------------------------------------------------------------------------
|
||||
# ---------------------------------------------------------------------------------------------------------------
|
||||
# ---------------------------------------------------------------------------------------------------------------
|
||||
|
@ -103,8 +68,6 @@ def find(in_numberlist, in_reversed):
|
|||
for x in lst_numberlist:
|
||||
if x != None: lst_existing.append(x)
|
||||
|
||||
#print_numlist('NUMLIST', lst_numberlist)
|
||||
|
||||
len_numberlist = len(lst_numberlist)
|
||||
|
||||
numbdone = []
|
||||
|
@ -126,7 +89,6 @@ def find(in_numberlist, in_reversed):
|
|||
used_areas = [False for _ in range(len_numberlist) ]
|
||||
d_endpoints = {}
|
||||
for s_regionsdata in regionsdata:
|
||||
#print_regions(len_numberlist, 'FOUND '+str(s_regionsdata[0]), s_regionsdata[1])
|
||||
for s_reg in s_regionsdata[1]:
|
||||
endpointval = s_reg[0]+s_reg[1]
|
||||
|
||||
|
@ -142,6 +104,4 @@ def find(in_numberlist, in_reversed):
|
|||
else:
|
||||
if d_endpoints[d_endpoint] > 0: used_areas[d_endpoint] = False
|
||||
|
||||
#print_usedlist('USED', used_areas)
|
||||
|
||||
return used_areas
|
|
@ -119,4 +119,18 @@ def add_info_msg(cvpj_l, i_datatype, i_value):
|
|||
data_values.nested_dict_add_value(cvpj_l, ['info', 'message'], {'type': i_datatype, 'text': i_value})
|
||||
|
||||
def add_param(cvpj_l, p_id, p_value, **kwargs):
|
||||
params.add(cvpj_l, [], p_id, p_value, 'float', **kwargs)
|
||||
params.add(cvpj_l, [], p_id, p_value, 'float', **kwargs)
|
||||
|
||||
def add_visual_window(cvpj_l, w_group, w_name, w_open, w_pos, w_size):
|
||||
data_values.nested_dict_add_value(cvpj_l, ['visual_window', w_group, w_name], {'active': w_open, 'pos': w_pos, 'size': w_size})
|
||||
|
||||
def get_visual_window(cvpj_l, w_group, w_name):
|
||||
out_open = False
|
||||
out_pos = [0,0]
|
||||
out_size = [100,100]
|
||||
out_data = nested_dict_get_value(i_data, ['visual_window', w_group, w_name])
|
||||
if out_data != None:
|
||||
out_open = out_data['active']
|
||||
out_pos = out_data['pos']
|
||||
out_size = out_data['size']
|
||||
return out_open, out_pos, out_size
|
Loading…
Reference in New Issue