Exemple #1
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)
Exemple #2
0
    def update(self):
        if 'Data' in self.inputs and len(self.inputs['Data'].links) > 0:
            inputsocketname = 'Data'
            outputsocketname = ['Item', 'Other']
            changable_sockets(self, inputsocketname, outputsocketname)

        if 'Item' in self.outputs and self.outputs['Item'].links or \
                'Other' in self.outputs and self.outputs['Other'].links:

            if 'Data' in self.inputs and self.inputs['Data'].links:
                data = SvGetSocketAnyType(self, self.inputs['Data'])

                if 'Item' in self.inputs and self.inputs['Item'].links:
                    items = SvGetSocketAnyType(self, self.inputs['Item'])
                else:
                    items = [[self.item]]

                if 'Item' in self.outputs and self.outputs['Item'].links:
                    if self.level - 1:
                        out = self.get(data, self.level - 1, items,
                                       self.get_items)
                    else:
                        out = self.get_items(data, items[0])
                    SvSetSocketAnyType(self, 'Item', out)
                if 'Other' in self.outputs and self.outputs['Other'].links:
                    if self.level - 1:
                        out = self.get(data, self.level - 1, items,
                                       self.get_other)
                    else:
                        out = self.get_other(data, items[0])
                    SvSetSocketAnyType(self, 'Other', out)
Exemple #3
0
    def update(self):
        if 'Data' in self.inputs and len(self.inputs['Data'].links) > 0:
            inputsocketname = 'Data'
            outputsocketname = ['Item', 'Other']
            changable_sockets(self, inputsocketname, outputsocketname)

        if 'Item' in self.outputs and self.outputs['Item'].links or \
                'Other' in self.outputs and self.outputs['Other'].links:

            if 'Data' in self.inputs and self.inputs['Data'].links:
                data = SvGetSocketAnyType(self, self.inputs['Data'])

                if 'Item' in self.inputs and self.inputs['Item'].links:
                    items = SvGetSocketAnyType(self, self.inputs['Item'])
                else:
                    items = [[self.item]]

                if 'Item' in self.outputs and self.outputs['Item'].links:
                    if self.level-1:
                        out = self.get(data, self.level-1, items, self.get_items)
                    else:
                        out = self.get_items(data, items[0])
                    SvSetSocketAnyType(self, 'Item', out)
                if 'Other' in self.outputs and self.outputs['Other'].links:
                    if self.level-1:
                        out = self.get(data, self.level-1, items, self.get_other)
                    else:
                        out = self.get_other(data, items[0])
                    SvSetSocketAnyType(self, 'Other', out)
Exemple #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
Exemple #5
0
    def update(self):
        # достаём два слота - вершины и полики
        if 'Data' in self.inputs and self.inputs['Data'].links:
            inputsocketname = 'Data'
            outputsocketname = ['Data', ]
            changable_sockets(self, inputsocketname, outputsocketname)

            data = SvGetSocketAnyType(self, self.inputs['Data'])

            if 'Number' in self.inputs and self.inputs['Number'].links:
                tmp = SvGetSocketAnyType(self, self.inputs['Number'])
                Number = tmp[0]
            else:
                Number = [self.number]

            if 'Data' in self.outputs and self.outputs['Data'].links:
                out_ = self.count(data, self.level, Number)
                if self.unwrap:
                    if len(out_) > 0:
                        out = []
                        for o in out_:
                            out.extend(o)
                else:
                    out = out_

                SvSetSocketAnyType(self, 'Data', out)
Exemple #6
0
    def update(self):
        if self.inputs['Data'].links:
            # адаптивный сокет
            inputsocketname = 'Data'
            outputsocketname = ["Middl", 'First', 'Last']
            changable_sockets(self, inputsocketname, outputsocketname)

        if 'First' in self.outputs and self.outputs['First'].links or \
                'Last' in self.outputs and self.outputs['Last'].links or \
                'Middl' in self.outputs and self.outputs['Middl'].links:
            data = SvGetSocketAnyType(self, self.inputs['Data'])

            # blocking too height values of levels, reduce
            levels = levelsOflist(data) - 2
            if levels >= self.level:
                levels = self.level - 1
            elif levels < 1:
                levels = 1
            # assign out
            if self.outputs['First'].links:
                out = self.count(data, levels, 0)
                SvSetSocketAnyType(self, 'First', out)
            if self.outputs['Middl'].links:
                out = self.count(data, levels, 1)
                SvSetSocketAnyType(self, 'Middl', out)
            if self.outputs['Last'].links:
                out = self.count(data, levels, 2)
                SvSetSocketAnyType(self, 'Last', out)
Exemple #7
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)
Exemple #8
0
    def update(self):
        # достаём два слота - вершины и полики
        if 'Data' in self.inputs and self.inputs['Data'].links:
            inputsocketname = 'Data'
            outputsocketname = [
                'Data',
            ]
            changable_sockets(self, inputsocketname, outputsocketname)

            data = SvGetSocketAnyType(self, self.inputs['Data'])

            if 'Number' in self.inputs and self.inputs['Number'].links:
                tmp = SvGetSocketAnyType(self, self.inputs['Number'])
                Number = tmp[0]
            else:
                Number = [self.number]

            if 'Data' in self.outputs and self.outputs['Data'].links:
                out_ = self.count(data, self.level, Number)
                if self.unwrap:
                    if len(out_) > 0:
                        out = []
                        for o in out_:
                            out.extend(o)
                else:
                    out = out_

                SvSetSocketAnyType(self, 'Data', out)
Exemple #9
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
Exemple #10
0
    def update(self):
        if 'data' in self.inputs and len(self.inputs['data'].links) > 0:
            # адаптивный сокет
            inputsocketname = 'data'
            outputsocketname = ['data']
            changable_sockets(self, inputsocketname, outputsocketname)

            data = SvGetSocketAnyType(self, self.inputs['data'])
            output = self.revers(data, self.level)
            SvSetSocketAnyType(self, 'data', output)
Exemple #11
0
    def update(self):
        if 'data' in self.inputs and len(self.inputs['data'].links) > 0:
            # адаптивный сокет
            inputsocketname = 'data'
            outputsocketname = ['data']
            changable_sockets(self, inputsocketname, outputsocketname)

            data = SvGetSocketAnyType(self, self.inputs['data'])
            output = self.revers(data, self.level)
            SvSetSocketAnyType(self, 'data', output)
Exemple #12
0
    def update(self):
        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 len(self.outputs['data'].links) > 0:
                data = SvGetSocketAnyType(self, self.inputs['data'])
                userlevelb = literal_eval('['+self.Sverch_LisLev+']')
                SvSetSocketAnyType(self, 'data', preobrazovatel(data, userlevelb))
Exemple #13
0
    def update(self):

        if not 'Out' in self.outputs:
            return
        if self.inputs and self.inputs[0].links:
            in_socket = 'In'
            out_socket = ['Out']
            changable_sockets(self, in_socket, out_socket)
        if self.outputs[0].links:
            data = SvGetSocketAnyType(self, self.inputs[0], deepcopy=False)
            SvSetSocketAnyType(self, 'Out', data)
Exemple #14
0
    def update(self):

        if not 'Out' in self.outputs:
            return
        if self.inputs and self.inputs[0].links:
            in_socket = 'In'
            out_socket = ['Out']
            changable_sockets(self, in_socket, out_socket)
        if self.outputs[0].links:
            data = SvGetSocketAnyType(self, self.inputs[0], deepcopy=False)
            SvSetSocketAnyType(self, 'Out', data)
Exemple #15
0
    def update(self):
        # адаптивный сокет
        inputsocketname = 'data'
        outputsocketname = ['data']
        changable_sockets(self, inputsocketname, outputsocketname)

        if 'data' in self.outputs and self.outputs['data'].links:
            outEval = SvGetSocketAnyType(self, self.inputs['data'])
            outCorr = dataCorrect(outEval)  # this is bullshit, as max 3 in levels
            levels = self.level-1
            out = self.flip(outCorr, levels)
            SvSetSocketAnyType(self, 'data', out)
Exemple #16
0
    def update(self):
        # адаптивный сокет
        inputsocketname = 'data'
        outputsocketname = ['data']
        changable_sockets(self, inputsocketname, outputsocketname)

        if 'data' in self.outputs and self.outputs['data'].links:
            outEval = SvGetSocketAnyType(self, self.inputs['data'])
            outCorr = dataCorrect(
                outEval)  # this is bullshit, as max 3 in levels
            levels = self.level - 1
            out = self.flip(outCorr, levels)
            SvSetSocketAnyType(self, 'data', out)
Exemple #17
0
    def update(self):
        # changable types sockets in output
        # you need the next:
        # typ - needed self value
        # newsocket - needed self value
        # inputsocketname to get one socket to define type
        # outputsocketname to get list of outputs, that will be changed
        inputsocketname = 'data'
        outputsocketname = ['dataTrue', 'dataFalse']
        changable_sockets(self, inputsocketname, outputsocketname)

        # input sockets
        if 'data' not in self.inputs:
            return False
        data = [[]]
        mask = [[1, 0]]

        if self.inputs['data'].links:
            data = SvGetSocketAnyType(self, self.inputs['data'])

        if self.inputs['mask'].links and \
           type(self.inputs['mask'].links[0].from_socket) == StringsSocket:
            mask = SvGetSocketAnyType(self, self.inputs['mask'])

        result = self.getMask(data, mask, self.Level)

        # outupy sockets data
        if 'dataTrue' in self.outputs and self.outputs['dataTrue'].is_linked:
            SvSetSocketAnyType(self, 'dataTrue', result[0])
        else:
            SvSetSocketAnyType(self, 'dataTrue', [[]])
        # print ('всё',result)
        if 'dataFalse' in self.outputs and self.outputs['dataFalse'].is_linked:
            SvSetSocketAnyType(self, 'dataFalse', result[1])
        else:
            SvSetSocketAnyType(self, 'dataFalse', [[]])

        if 'mask' in self.outputs and self.outputs['mask'].is_linked:
            SvSetSocketAnyType(self, 'mask', result[2])
        else:
            SvSetSocketAnyType(self, 'mask', [[]])
        if 'ind_true' in self.outputs and self.outputs['ind_true'].is_linked:
            SvSetSocketAnyType(self, 'ind_true', result[3])
        else:
            SvSetSocketAnyType(self, 'ind_true', [[]])
        if 'ind_false' in self.outputs and self.outputs['ind_false'].is_linked:
            SvSetSocketAnyType(self, 'ind_false', result[4])
        else:
            SvSetSocketAnyType(self, 'ind_false', [[]])
Exemple #18
0
    def update(self):
        # changable types sockets in output
        # you need the next:
        # typ - needed self value
        # newsocket - needed self value
        # inputsocketname to get one socket to define type
        # outputsocketname to get list of outputs, that will be changed
        inputsocketname = 'data'
        outputsocketname = ['dataTrue', 'dataFalse']
        changable_sockets(self, inputsocketname, outputsocketname)

        # input sockets
        if 'data' not in self.inputs:
            return False
        data = [[]]
        mask = [[1, 0]]

        if self.inputs['data'].links:
            data = SvGetSocketAnyType(self, self.inputs['data'])

        if self.inputs['mask'].links and \
           type(self.inputs['mask'].links[0].from_socket) == StringsSocket:
            mask = SvGetSocketAnyType(self, self.inputs['mask'])

        result = self.getMask(data, mask, self.Level)

        # outupy sockets data
        if 'dataTrue' in self.outputs and self.outputs['dataTrue'].is_linked:
            SvSetSocketAnyType(self, 'dataTrue', result[0])
        else:
            SvSetSocketAnyType(self, 'dataTrue', [[]])
        # print ('всё',result)
        if 'dataFalse' in self.outputs and self.outputs['dataFalse'].is_linked:
            SvSetSocketAnyType(self, 'dataFalse', result[1])
        else:
            SvSetSocketAnyType(self, 'dataFalse', [[]])

        if 'mask' in self.outputs and self.outputs['mask'].is_linked:
            SvSetSocketAnyType(self, 'mask', result[2])
        else:
            SvSetSocketAnyType(self, 'mask', [[]])
        if 'ind_true' in self.outputs and self.outputs['ind_true'].is_linked:
            SvSetSocketAnyType(self, 'ind_true', result[3])
        else:
            SvSetSocketAnyType(self, 'ind_true', [[]])
        if 'ind_false' in self.outputs and self.outputs['ind_false'].is_linked:
            SvSetSocketAnyType(self, 'ind_false', result[4])
        else:
            SvSetSocketAnyType(self, 'ind_false', [[]])
Exemple #19
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)
Exemple #20
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)
Exemple #21
0
    def update(self):
        if 'Data' in self.inputs and self.inputs['Data'].links:
            inputsocketname = 'Data'
            outputsocketname = ['Split']
            changable_sockets(self, inputsocketname, outputsocketname)

        if 'Split' in self.outputs and self.outputs['Split'].links:
            if 'Data' in self.inputs and self.inputs['Data'].links:
                data = SvGetSocketAnyType(self, self.inputs['Data'])
                sizes = self.inputs['Split'].sv_get()[0]
                if self.unwrap:
                    out = self.get(data, self.level_unwrap, sizes)
                elif self.level:
                    out = self.get(data, self.level, sizes)
                else:
                    out = split(data, sizes[0])
                SvSetSocketAnyType(self, 'Split', out)
Exemple #22
0
    def update(self):
        if 'Data' in self.inputs and self.inputs['Data'].links:
            inputsocketname = 'Data'
            outputsocketname = ['Split']
            changable_sockets(self, inputsocketname, outputsocketname)

        if 'Split' in self.outputs and self.outputs['Split'].links:
            if 'Data' in self.inputs and self.inputs['Data'].links:
                data = SvGetSocketAnyType(self, self.inputs['Data'])
                sizes = self.inputs['Split'].sv_get()[0]
                if self.unwrap:
                    out = self.get(data, self.level_unwrap, sizes)
                elif self.level:
                    out = self.get(data, self.level, sizes)
                else:
                    out = split(data, sizes[0])
                SvSetSocketAnyType(self, 'Split', out)
Exemple #23
0
    def update(self):
        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:

            if 'seed' not in self.inputs:
                seed = self.seed
            else:
                seed = self.inputs['seed'].sv_get()[0][0]

            random.seed(seed)
            data = SvGetSocketAnyType(self, self.inputs['data'])
            output = self.shuffle(data, self.level)
            SvSetSocketAnyType(self, 'data', output)
Exemple #24
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)
Exemple #25
0
    def update(self):
        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 len(self.outputs['data'].links) > 0 \
                and 'data' in self.inputs and len(self.inputs['data'].links) > 0:
            data_ = SvGetSocketAnyType(self, self.inputs['data'])

            # init_level = levelsOflist(data)
            data = dataCorrect(data_, nominal_dept=self.level)
            out_ = []
            for obj in data:
                out_.append(svQsort(obj))
            out = dataCorrect(out_)
            SvSetSocketAnyType(self, 'data', out)
Exemple #26
0
    def update(self):
        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 len(self.outputs['data'].links) > 0 \
                and 'data' in self.inputs and len(self.inputs['data'].links) > 0:
            data_ = SvGetSocketAnyType(self, self.inputs['data'])

            # init_level = levelsOflist(data)
            data = dataCorrect(data_, nominal_dept=self.level)
            out_ = []
            for obj in data:
                out_.append(svQsort(obj))
            out = dataCorrect(out_)
            SvSetSocketAnyType(self, 'data', out)
Exemple #27
0
    def update(self):
        if 'Data' in self.inputs and len(self.inputs['Data'].links) > 0:
            # адаптивный сокет
            inputsocketname = 'Data'
            outputsocketname = ['Item', 'Other']
            changable_sockets(self, inputsocketname, outputsocketname)

        if 'Item' in self.outputs and self.outputs['Item'].links or \
                'Other' in self.outputs and self.outputs['Other'].links:

            if 'Data' in self.inputs and self.inputs['Data'].links:
                data = SvGetSocketAnyType(self, self.inputs['Data'])

                if 'Item' in self.outputs and self.outputs['Item'].links:
                    out = self.count(data, self.level - 1, self.item, True)
                    SvSetSocketAnyType(self, 'Item', out)
                if 'Other' in self.outputs and self.outputs['Other'].links:
                    out = self.count(data, self.level - 1, self.item, False)
                    SvSetSocketAnyType(self, 'Other', out)
Exemple #28
0
    def update(self):
        if 'Data' in self.inputs and len(self.inputs['Data'].links) > 0:
            # адаптивный сокет
            inputsocketname = 'Data'
            outputsocketname = ['Item', 'Other']
            changable_sockets(self, inputsocketname, outputsocketname)

        if 'Item' in self.outputs and self.outputs['Item'].links or \
                'Other' in self.outputs and self.outputs['Other'].links:

            if 'Data' in self.inputs and self.inputs['Data'].links:
                data = SvGetSocketAnyType(self, self.inputs['Data'])

                if 'Item' in self.outputs and self.outputs['Item'].links:
                    out = self.count(data, self.level-1, self.item, True)
                    SvSetSocketAnyType(self, 'Item', out)
                if 'Other' in self.outputs and self.outputs['Other'].links:
                    out = self.count(data, self.level-1, self.item, False)
                    SvSetSocketAnyType(self, 'Other', out)
Exemple #29
0
    def update(self):
        if 'Data' not in self.outputs:
            return
        if not self.outputs['Data'].links:
            return
        inputsocketname = 'Data True'
        outputsocketname = ['Data']
        changable_sockets(self, inputsocketname, outputsocketname)

        if all((s.links for s in self.inputs[1:])):
                if self.inputs['Mask'].links:
                    mask = SvGetSocketAnyType(self, self.inputs['Mask'])
                else:  # to match MaskList
                    mask = [[1, 0]]
                data_t = SvGetSocketAnyType(self, self.inputs['Data True'])
                data_f = SvGetSocketAnyType(self, self.inputs['Data False'])

                data_out = self.get_level(mask, data_t, data_f, self.level-1)

                SvSetSocketAnyType(self, 'Data', data_out)
Exemple #30
0
    def update(self):
        if 'Data' not in self.outputs:
            return
        if not self.outputs['Data'].links:
            return
        inputsocketname = 'Data True'
        outputsocketname = ['Data']
        changable_sockets(self, inputsocketname, outputsocketname)

        if all((s.links for s in self.inputs[1:])):
            if self.inputs['Mask'].links:
                mask = SvGetSocketAnyType(self, self.inputs['Mask'])
            else:  # to match MaskList
                mask = [[1, 0]]
            data_t = SvGetSocketAnyType(self, self.inputs['Data True'])
            data_f = SvGetSocketAnyType(self, self.inputs['Data False'])

            data_out = self.get_level(mask, data_t, data_f, self.level - 1)

            SvSetSocketAnyType(self, 'Data', data_out)
Exemple #31
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)
Exemple #32
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)
Exemple #33
0
    def update(self):
        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:
            if 'shift' in self.inputs and self.inputs['shift'].links and \
               type(self.inputs['shift'].links[0].from_socket) == StringsSocket:

                number = SvGetSocketAnyType(self, self.inputs['shift'])
                # не знаю насколько целесообразно
                #if type(number)!=list or type(number[0])!=list or type(number[0][0])!=int:
                    #number = [[0]]
            else:
                number = [[self.shift_c]]

            data = SvGetSocketAnyType(self, self.inputs['data'])
            output = self.shift(data, number, self.enclose, self.level)

            SvSetSocketAnyType(self, 'data', output)
Exemple #34
0
    def update(self):
        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:
            if 'shift' in self.inputs and self.inputs['shift'].links and \
               type(self.inputs['shift'].links[0].from_socket) == StringsSocket:

                number = SvGetSocketAnyType(self, self.inputs['shift'])
                # не знаю насколько целесообразно
                #if type(number)!=list or type(number[0])!=list or type(number[0][0])!=int:
                #number = [[0]]
            else:
                number = [[self.shift_c]]

            data = SvGetSocketAnyType(self, self.inputs['data'])
            output = self.shift(data, number, self.enclose, self.level)

            SvSetSocketAnyType(self, 'data', output)
Exemple #35
0
    def update(self):
        if "Data" in self.inputs and len(self.inputs["Data"].links) > 0:
            inputsocketname = "Data"
            outputsocketname = ["Slice", "Other"]
            changable_sockets(self, inputsocketname, outputsocketname)

        if (
            "Slice" in self.outputs
            and self.outputs["Slice"].links
            or "Other" in self.outputs
            and self.outputs["Other"].links
        ):

            if "Data" in self.inputs and self.inputs["Data"].links:
                data = SvGetSocketAnyType(self, self.inputs["Data"])

                if "Start" in self.inputs and self.inputs["Start"].links:
                    start = SvGetSocketAnyType(self, self.inputs["Start"])[0]
                else:
                    start = [self.start]

                if "Stop" in self.inputs and self.inputs["Stop"].links:
                    stop = SvGetSocketAnyType(self, self.inputs["Stop"])[0]
                else:
                    stop = [self.stop]

                if "Slice" in self.outputs and self.outputs["Slice"].links:
                    if self.level:
                        out = self.get(data, start, stop, self.level, self.slice)
                    else:
                        out = self.slice(data, start[0], stop[0])
                    SvSetSocketAnyType(self, "Slice", out)
                if "Other" in self.outputs and self.outputs["Other"].links:
                    if self.level:
                        out = self.get(data, start, stop, self.level, self.other)
                    else:
                        out = self.other(data, start[0], stop[0])
                    SvSetSocketAnyType(self, "Other", out)
Exemple #36
0
    def update(self):
        if 'Data' in self.inputs and len(self.inputs['Data'].links) > 0:
            inputsocketname = 'Data'
            outputsocketname = ['Slice', 'Other']
            changable_sockets(self, inputsocketname, outputsocketname)

        if 'Slice' in self.outputs and self.outputs['Slice'].links or \
                'Other' in self.outputs and self.outputs['Other'].links:

            if 'Data' in self.inputs and self.inputs['Data'].links:
                data = SvGetSocketAnyType(self, self.inputs['Data'])

                if 'Start' in self.inputs and self.inputs['Start'].links:
                    start = SvGetSocketAnyType(self, self.inputs['Start'])[0]
                else:
                    start = [self.start]

                if 'Stop' in self.inputs and self.inputs['Stop'].links:
                    stop = SvGetSocketAnyType(self, self.inputs['Stop'])[0]
                else:
                    stop = [self.stop]

                if 'Slice' in self.outputs and self.outputs['Slice'].links:
                    if self.level:
                        out = self.get(data, start, stop, self.level,
                                       self.slice)
                    else:
                        out = self.slice(data, start[0], stop[0])
                    SvSetSocketAnyType(self, 'Slice', out)
                if 'Other' in self.outputs and self.outputs['Other'].links:
                    if self.level:
                        out = self.get(data, start, stop, self.level,
                                       self.other)
                    else:
                        out = self.other(data, start[0], stop[0])
                    SvSetSocketAnyType(self, 'Other', out)
Exemple #37
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)