diff --git a/nodes/list_struct/slice.py b/nodes/list_struct/slice.py index 571926720a97953825e4deff8b1f9b06ceffa87e..a73f24db3b4f94665334ea91641f9c1fc386123a 100644 --- a/nodes/list_struct/slice.py +++ b/nodes/list_struct/slice.py @@ -22,6 +22,7 @@ from bpy.props import BoolProperty, IntProperty, StringProperty, EnumProperty from sverchok.node_tree import SverchCustomTreeNode from sverchok.data_structure import (updateNode, changable_sockets, repeat_last, match_long_repeat) +from numpy import ndarray, arange, delete # ListSlice # by Linus Yng @@ -78,7 +79,7 @@ class ListSliceNode(bpy.types.Node, SverchCustomTreeNode): self.outputs['Other'].sv_set(out) def slice(self, data, start, stop): - if isinstance(data, (tuple, list)): + if isinstance(data, (tuple, list, ndarray)): return data[start:stop] else: return None @@ -86,6 +87,8 @@ class ListSliceNode(bpy.types.Node, SverchCustomTreeNode): def other(self, data, start, stop): if isinstance(data, (tuple, list)): return data[:start] + data[stop:] + elif isinstance(data,(ndarray)): + return delete(data, arange(start,stop)) else: return None diff --git a/nodes/list_struct/split.py b/nodes/list_struct/split.py index accbd9ebbb38815a92402c146603f34b1a3cecff..a761301b6086dca6fbfce8d698218a6a617de0b4 100644 --- a/nodes/list_struct/split.py +++ b/nodes/list_struct/split.py @@ -21,7 +21,7 @@ import bpy from bpy.props import BoolProperty, IntProperty, StringProperty from sverchok.node_tree import SverchCustomTreeNode from sverchok.data_structure import (changable_sockets, repeat_last, updateNode) - +import numpy as np # ListSplit # by Linus Yng def split(data, size): @@ -83,7 +83,7 @@ class SvListSplitNode(bpy.types.Node, SverchCustomTreeNode): def get(self, data, level, size): if not isinstance(data, (list, tuple)): return data - if not isinstance(data[0], (list, tuple)): + if not isinstance(data[0], (list, tuple, np.ndarray)): return data if level > 1: # find level to work on return [self.get(d, level - 1, size) for d in data]