Пример #1
0
 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()
Пример #2
0
    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
Пример #3
0
 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()
Пример #4
0
    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
Пример #5
0
    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)
Пример #6
0
    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)
Пример #7
0
    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
Пример #8
0
 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
Пример #9
0
    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)
Пример #10
0
    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)
Пример #11
0
    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)
Пример #12
0
    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)
Пример #13
0
    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)
Пример #14
0
    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)
Пример #15
0
    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)
Пример #16
0
    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])
Пример #17
0
    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)