def update(self): if self.text_mode == 'CSV' or self.text_mode == 'JSON': multi_socket(self, min=1) elif self.text_mode == 'SV': pass # only one input, do nothing if self.dump_on_update: self.dump()
def update(self): if 'data' in self.inputs and self.inputs['data'].links: # get any type socket from input: data = SvGetSocketAnyType(self, self.inputs['data']) # Process data leve = min((levelsOflist(data) - 2), self.level) result = self.beat(data, leve, leve) # multisocket - from util(formula node) multi_socket(self, min=1, start=2, breck=True, output=len(result)) # adaptive socket - from util(mask list node) # list to pack and change type of multysockets in output... maybe not so quick outputsocketname = [name.name for name in self.outputs] changable_sockets(self, 'data', outputsocketname) self.multi_socket_type = get_socket_type_full(self, 'data') # how to assign correct property to adaptive output: # in nearest future with socket's data' dictionary we will send # only node_name+layout_name+socket_name in str() format # and will make separate definition to easyly assign and # get and recognise data from dictionary for i, out in enumerate(result): SvSetSocket(self.outputs[i], out) if i >= 32: break
def update(self): if 'data' in self.inputs and self.inputs['data'].links: # get any type socket from input: data = SvGetSocketAnyType(self, self.inputs['data']) # Process data leve = min((levelsOflist(data)-2), self.level) result = self.beat(data, leve, leve) # multisocket - from util(formula node) multi_socket(self, min=1, start=2, breck=True, output=len(result)) # adaptive socket - from util(mask list node) # list to pack and change type of multysockets in output... maybe not so quick outputsocketname = [name.name for name in self.outputs] changable_sockets(self, 'data', outputsocketname) self.multi_socket_type = get_socket_type_full(self, 'data') # how to assign correct property to adaptive output: # in nearest future with socket's data' dictionary we will send # only node_name+layout_name+socket_name in str() format # and will make separate definition to easyly assign and # get and recognise data from dictionary for i, out in enumerate(result): SvSetSocket(self.outputs[i], out) if i >= 32: break
def update(self): multi_socket(self, min=2) if 'x0' in self.inputs and len(self.inputs['x0'].links) > 0: inputsocketname = self.inputs[0].name outputsocketname = [ 'data', ] changable_sockets(self, inputsocketname, outputsocketname) if 'data' in self.outputs and len(self.outputs['data'].links) > 0: if 'x0' in self.inputs and len(self.inputs['x0'].links) > 0: X = SvGetSocketAnyType(self, self.inputs['data']) slots = [] for socket in self.inputs: if socket.links: slots.append(SvGetSocketAnyType(self, socket)) if len(slots) < 2: return X_ = dataCorrect(X) result = [] for socket in slots: result.extend(self.f(X_, dataCorrect(socket))) SvSetSocketAnyType(self, 'data', result)
def update(self): # inputs multi_socket(self, min=1) if 'data' in self.inputs and len(self.inputs['data'].links) > 0: inputsocketname = 'data' outputsocketname = ['data'] changable_sockets(self, inputsocketname, outputsocketname) if 'data' in self.outputs and self.outputs['data'].links: slots = [] for socket in self.inputs: if socket.links: slots.append(SvGetSocketAnyType(self, socket)) if len(slots) == 0: return list_result = joiner(slots, self.JoinLevel) result = list_result.copy() if self.mix_check: list_mix = myZip_2(slots, self.JoinLevel) result = list_mix.copy() if self.wrap_check: list_wrap = wrapper_2(slots, list_result, self.JoinLevel) result = list_wrap.copy() if self.mix_check: list_wrap_mix = wrapper_2(slots, list_mix, self.JoinLevel) result = list_wrap_mix.copy() SvSetSocketAnyType(self, 'data', result)
def update(self): # ugly hack to get var name sometimes with old layouts if not self.var_name: self.gen_var_name() self.base_name = self.var_name multi_socket(self, min=1, breck=True) if any(s.links for s in self.inputs): self.color = READY_COLOR
def update(self): multi_socket(self, min=1) if not self.print_data: return for i, socket in enumerate(self.inputs): if socket.links and self.print_socket[i]: print(SvGetSocketAnyType(self, socket, deepcopy=False)) if self.inputs["Data 0"].links: self.use_custom_color = True self.color = (0.5, 0.5, 1) else: self.use_custom_color = True self.color = (0.05, 0.05, 0.1)
def update(self): multi_socket(self, min=1) if not self.print_data: return for i, socket in enumerate(self.inputs): if socket.links and self.print_socket[i]: print(SvGetSocketAnyType(self, socket, deepcopy=False)) if self.inputs['Data 0'].links: self.use_custom_color = True self.color = (0.5, 0.5, 1) else: self.use_custom_color = True self.color = (0.05, 0.05, 0.1)
def update(self): # inputs multi_socket(self, min=2, start=-1, breck=True) if 'X' in self.inputs and len(self.inputs['X'].links) > 0: # адаптивный сокет inputsocketname = 'X' outputsocketname = ['Result'] changable_sockets(self, inputsocketname, outputsocketname) vecs = SvGetSocketAnyType(self, self.inputs['X']) else: vecs = [[0.0]] # outputs if 'Result' in self.outputs and len(self.outputs['Result'].links) > 0: list_mult = [] if 'n[0]' in self.inputs and len(self.inputs['n[0]'].links) > 0: i = 0 for socket in self.inputs: if socket.links and i != 0: list_mult.append(SvGetSocketAnyType(self, socket)) else: i = 1 #print(list_mult) code_formula = parser.expr(self.formula).compile() # finding nasty levels, make equal nastyness (canonical 0,1,2,3) levels = [levelsOflist(vecs)] for n in list_mult: levels.append(levelsOflist(n)) maxlevel = max(max(levels), 3) diflevel = maxlevel - levels[0] if diflevel: vecs_ = dataSpoil([vecs], diflevel-1) vecs = dataCorrect(vecs_, nominal_dept=2) for i, lev in enumerate(levels): if i == 0: continue diflevel = maxlevel-lev if diflevel: list_temp = dataSpoil([list_mult[i-1]], diflevel-1) list_mult[i-1] = dataCorrect(list_temp, nominal_dept=2) #print(list_mult) r = self.inte(vecs, code_formula, list_mult, 3) result = dataCorrect(r, nominal_dept=min((levels[0]-1), 2)) SvSetSocketAnyType(self, 'Result', result)
def update(self): # inputs multi_socket(self, min=2, start=-1, breck=True) if 'X' in self.inputs and len(self.inputs['X'].links) > 0: # адаптивный сокет inputsocketname = 'X' outputsocketname = ['Result'] changable_sockets(self, inputsocketname, outputsocketname) vecs = SvGetSocketAnyType(self, self.inputs['X']) else: vecs = [[0.0]] # outputs if 'Result' in self.outputs and len(self.outputs['Result'].links) > 0: list_mult = [] if 'n[0]' in self.inputs and len(self.inputs['n[0]'].links) > 0: i = 0 for socket in self.inputs: if socket.links and i != 0: list_mult.append(SvGetSocketAnyType(self, socket)) else: i = 1 #print(list_mult) code_formula = parser.expr(self.formula).compile() # finding nasty levels, make equal nastyness (canonical 0,1,2,3) levels = [levelsOflist(vecs)] for n in list_mult: levels.append(levelsOflist(n)) maxlevel = max(max(levels), 3) diflevel = maxlevel - levels[0] if diflevel: vecs_ = dataSpoil([vecs], diflevel - 1) vecs = dataCorrect(vecs_, nominal_dept=2) for i, lev in enumerate(levels): if i == 0: continue diflevel = maxlevel - lev if diflevel: list_temp = dataSpoil([list_mult[i - 1]], diflevel - 1) list_mult[i - 1] = dataCorrect(list_temp, nominal_dept=2) #print(list_mult) r = self.inte(vecs, code_formula, list_mult, 3) result = dataCorrect(r, nominal_dept=min((levels[0] - 1), 2)) SvSetSocketAnyType(self, 'Result', result)
def update(self): # multisocket - from util(formula node) multi_socket(self, min=2) if 'x0' in self.inputs and len(self.inputs['x0'].links) > 0: # adaptive socket - from util(mask list node) inputsocketname = self.inputs[ 0].name # is you need x0 to define socket type - set 0 to 1 outputsocketname = [ 'data', ] changable_sockets(self, inputsocketname, outputsocketname) if 'data' in self.outputs and len(self.outputs['data'].links) > 0: if 'x0' in self.inputs and len(self.inputs['x0'].links) > 0: # get any type socket from input: X = SvGetSocketAnyType(self, self.inputs['data']) slots = [] for socket in self.inputs: if socket.links: slots.append(SvGetSocketAnyType(self, socket)) # determine if you have enough inputs for make output # if not return # examples: all but last (last is never connected) # len(slots) == len(self.inputs)-1 # if more than 2 etc. if len(slots) < 2: return # Process data X_ = dataCorrect(X) result = [] for socket in slots: result.extend(self.f(X_, dataCorrect(socket))) # how to assign correct property to adaptive output: # in nearest future with socket's data' dictionary we will send # only node_name+layout_name+socket_name in str() format # and will make separate definition to easyly assign and # get and recognise data from dictionary SvSetSocketAnyType(self, 'data', result)
def update(self): # inputs multi_socket(self, min=1) if 'data' in self.inputs and self.inputs['data'].links: # адаптивный сокет inputsocketname = 'data' outputsocketname = ['data'] changable_sockets(self, inputsocketname, outputsocketname) if 'data' in self.outputs and self.outputs['data'].links: slots = [] for socket in self.inputs: if socket.links: slots.append(SvGetSocketAnyType(self, socket)) if len(slots) < 2: return output = self.myZip(slots, self.level) if self.unwrap: output = preobrazovatel(output, [2,3]) SvSetSocketAnyType(self, 'data', output)
def update(self): # multisocket - from util(formula node) multi_socket(self, min=2) if 'x0' in self.inputs and len(self.inputs['x0'].links) > 0: # adaptive socket - from util(mask list node) inputsocketname = self.inputs[0].name # is you need x0 to define socket type - set 0 to 1 outputsocketname = ['data', ] changable_sockets(self, inputsocketname, outputsocketname) if 'data' in self.outputs and len(self.outputs['data'].links) > 0: if 'x0' in self.inputs and len(self.inputs['x0'].links) > 0: # get any type socket from input: X = SvGetSocketAnyType(self, self.inputs['data']) slots = [] for socket in self.inputs: if socket.links: slots.append(SvGetSocketAnyType(self, socket)) # determine if you have enough inputs for make output # if not return # examples: all but last (last is never connected) # len(slots) == len(self.inputs)-1 # if more than 2 etc. if len(slots) < 2: return # Process data X_ = dataCorrect(X) result = [] for socket in slots: result.extend(self.f(X_, dataCorrect(socket))) # how to assign correct property to adaptive output: # in nearest future with socket's data' dictionary we will send # only node_name+layout_name+socket_name in str() format # and will make separate definition to easyly assign and # get and recognise data from dictionary SvSetSocketAnyType(self, 'data', result)
def update(self): # inputs multi_socket(self, min=1) if 'vertices' in self.outputs and self.outputs['vertices'].links or \ 'data' in self.outputs and self.outputs['data'].links: slots = [] for socket in self.inputs: if socket.links and type(socket.links[0].from_socket) == VerticesSocket: slots.append(SvGetSocketAnyType(self, socket)) if len(slots) == 0: return if levelsOflist(slots) <= 4: lev = 1 else: lev = self.JoinLevel result = self.connect(slots, self.dir_check, self.cicl_check, lev, self.polygons, self.slice_check) if self.outputs['vertices'].links: SvSetSocketAnyType(self, 'vertices', result[0]) if self.outputs['data'].links: SvSetSocketAnyType(self, 'data', result[1])
def update(self): multi_socket(self, min=2) if 'x0' in self.inputs and len(self.inputs['x0'].links) > 0: inputsocketname = self.inputs[0].name outputsocketname = ['data', ] changable_sockets(self, inputsocketname, outputsocketname) if 'data' in self.outputs and len(self.outputs['data'].links) > 0: if 'x0' in self.inputs and len(self.inputs['x0'].links) > 0: X = SvGetSocketAnyType(self, self.inputs['data']) slots = [] for socket in self.inputs: if socket.links: slots.append(SvGetSocketAnyType(self, socket)) if len(slots) < 2: return X_ = dataCorrect(X) result = [] for socket in slots: result.extend(self.f(X_, dataCorrect(socket))) SvSetSocketAnyType(self, 'data', result)