本文整理汇总了Python中sverchok.data_structure.fullList函数的典型用法代码示例。如果您正苦于以下问题:Python fullList函数的具体用法?Python fullList怎么用?Python fullList使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了fullList函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: process
def process(self):
inputs, outputs = self.inputs, self.outputs
if not outputs[0].is_linked:
return
_noise_type = noise_dict[self.noise_type]
tfunc = turbulence_f[self.out_mode]
verts = inputs['Vertices'].sv_get(deepcopy=False)
maxlen = len(verts)
arguments = [verts]
# gather socket data into arguments
for socket in inputs[1:]:
data = socket.sv_get()[0]
fullList(data, maxlen)
arguments.append(data)
# iterate over vert lists and pass arguments to the turbulence function
out = []
for idx, (vert_list, octaves, hard, amp, freq, seed) in enumerate(zip(*arguments)):
final_vert_list = seed_adjusted(vert_list, seed)
out.append([tfunc(v, octaves, hard, _noise_type, amp, freq) for v in final_vert_list])
if 'Noise V' in outputs:
out = Vector_degenerate(out)
outputs[0].sv_set(out)
示例2: process
def process(self):
# return if no outputs are connected
if not any(s.is_linked for s in self.outputs):
return
input_num = self.inputs["Num"].sv_get()
input_step = self.inputs["Step"].sv_get()
params = match_long_repeat([input_num, input_step])
stepList = []
for n, s in zip(*params):
num = max(2, n[0]) # sanitize the input
# adjust the step list based on number of verts and steps
steps = s[:(num - 1)] # shorten if needed
fullList(steps, num - 1) # extend if needed
if self.normalize:
size = self.size / sum(steps)
steps = [s * size for s in steps]
stepList.append(steps)
c, d = self.center, self.direction
verts, edges = [ve for ve in zip(*[make_line(s, c, d) for s in stepList])]
# outputs
if self.outputs['Vertices'].is_linked:
self.outputs['Vertices'].sv_set(verts)
if self.outputs['Edges'].is_linked:
self.outputs['Edges'].sv_set(edges)
示例3: process
def process(self):
# inputs
if not self.outputs['EvPoint'].is_linked:
return
VerticesA = self.inputs['Vertice A'].sv_get()
VerticesB = self.inputs['Vertice B'].sv_get()
factor = self.inputs['Factor'].sv_get()
# outputs
# match inputs using fullList, longest list matching on A and B
# extend factor list if necessary, it should not control length of output
max_obj = max(len(VerticesA), len(VerticesB))
fullList(VerticesA, max_obj)
fullList(VerticesB, max_obj)
if len(factor) < max_obj:
fullList(factor, max_obj)
points = []
for i in range(max_obj):
points_ = []
max_l = max(len(VerticesA[i]), len(VerticesB[i]))
fullList(VerticesA[i], max_l)
fullList(VerticesB[i], max_l)
for j in range(max_l):
tmp_pts = [(Vector(VerticesA[i][j]).lerp(VerticesB[i][j], factor[i][k]))[:]
for k in range(len(factor[i]))]
points_.extend(tmp_pts)
points.append(points_)
self.outputs['EvPoint'].sv_set(points)
示例4: process
def process(self):
if not any(output.is_linked for output in self.outputs):
return
vertices_s = self.inputs['Vertices'].sv_get(default=[[]])
masks_s = self.inputs['Mask'].sv_get()
radius_s = self.inputs['Radius'].sv_get()
out_coeffs = []
meshes = match_long_repeat([vertices_s, masks_s, radius_s])
for vertices, masks, radius in zip(*meshes):
fullList(masks, len(vertices))
if isinstance(radius, list) and isinstance(radius[0], (int, float)):
radius = radius[0]
# build KDTree
base = [v for v, mask in zip(vertices, masks) if mask]
tree = kdtree.KDTree(len(base))
for i, v in enumerate(base):
tree.insert(v, i)
tree.balance()
coeffs = []
for vertex, mask in zip(vertices, masks):
if mask:
coef = 1.0
else:
_, _, rho = tree.find(vertex)
coef = self.falloff(radius, rho)
coeffs.append(coef)
out_coeffs.append(coeffs)
self.outputs['Coeffs'].sv_set(out_coeffs)
示例5: make_line
def make_line(integer, step, center):
vertices = [(0.0, 0.0, 0.0)]
integer = [int(integer) if type(integer) is not list else int(integer[0])]
# center the line: offset the starting point of the line by half its size
if center:
Nn = integer[0]-1 # number of steps based on the number of vertices
Ns = len(step) # number of steps given by the step list
# line size (step list & repeated last step if any)
size1 = sum(step[:min(Nn, Ns)]) # step list size
size2 = max(0, (Nn - Ns)) * step[Ns-1] # repeated last step size
size = size1 + size2 # total size
# starting point of the line offset by half its size
vertices = [(-0.5*size, 0.0, 0.0)]
if type(step) is not list:
step = [step]
fullList(step, integer[0])
for i in range(integer[0]-1):
v = Vector(vertices[i]) + Vector((step[i], 0.0, 0.0))
vertices.append(v[:])
edges = []
for i in range(integer[0]-1):
edges.append((i, i+1))
return vertices, edges
示例6: process
def process(self):
if not (self.outputs['Vers'].is_linked and self.inputs['Vers'].is_linked):
return
vertices = Vector_generate(self.inputs['Vers'].sv_get())
faces = self.inputs['Pols'].sv_get()
offset = self.inputs['Offset'].sv_get()[0]
nsides = self.inputs['N sides'].sv_get()[0][0]
radius = self.inputs['Radius'].sv_get()[0]
outv = []
oute = []
outo = []
outn = []
# for each object
for verts_obj, faces_obj in zip(vertices, faces):
fullList(offset, len(faces_obj))
fullList(radius, len(faces_obj))
verlen = set(range(len(verts_obj)))
bm = bmesh_from_pydata(verts_obj, [], faces_obj, normal_update=True)
result = self.Offset_pols(bm, offset, radius, nsides, verlen)
outv.append(result[0])
oute.append(result[1])
outo.append(result[2])
outn.append(result[3])
self.outputs['Vers'].sv_set(outv)
self.outputs['Edgs'].sv_set(oute)
self.outputs['OutPols'].sv_set(outo)
self.outputs['InPols'].sv_set(outn)
示例7: match_points_and_pressures
def match_points_and_pressures(pressure_set, num_points):
num_pressures = len(pressure_set)
if num_pressures < num_points:
fullList(pressure_set, num_points)
elif num_pressures > num_points:
pressure_set = pressure_set[:num_points]
return pressure_set
示例8: sv_main
def sv_main(p=[],m=[]):
in_sockets = [
['s', 'p', p],
['s', 'm', m]]
if not m:
out_sockets = [
['s', 'out', []],
['s', 'out_not', p],
]
return in_sockets, out_sockets
out = []
out_not = []
for opol,omas in zip(p,m):
fullList(omas, len(opol))
for mas, pol in zip(omas, opol):
if set(mas).intersection(pol):
out.append(pol)
else:
out_not.append(pol)
out_sockets = [
['s', 'out', [out]],
['s', 'out_not', [out_not]],
]
return in_sockets, out_sockets
示例9: homogenize_input
def homogenize_input(self, segments, longest):
'''
edit segments in place, extend all to match length of longest
'''
for letter, letter_dict in segments.items():
if letter_dict['length'] < longest:
fullList(letter_dict['data'], longest)
示例10: process
def process(self):
if not any(s.is_linked for s in self.outputs):
return
input_num = self.inputs["Num"].sv_get()
input_step = self.inputs["Step"].sv_get()
c, d = self.center, self.direction
stepList = []
res1,res2 = [],[]
normal_size = 1.0
if self.normalize:
self.upgrade_if_needed()
normal_size = self.inputs["Size"].sv_get()[0][0]
for n, s in zip(*match_long_repeat([input_num, input_step])):
for num in n:
num = max(2,num)
s = s[:(num - 1)] # shorten if needed
fullList(s, num - 1) # extend if needed
stepList.append([S * normal_size / sum(s) for S in s] if self.normalize else s)
for s in stepList:
r1,r2 = make_line(s, c, d)
res1.append(r1)
res2.append(r2)
if self.outputs['Vertices'].is_linked:
self.outputs['Vertices'].sv_set(res1)
if self.outputs['Edges'].is_linked:
self.outputs['Edges'].sv_set(res2)
示例11: generate_callback
def generate_callback(self, n_id, IV):
inputs = self.inputs
verts, matrices = [], []
text = ''
# gather vertices from input
propv = inputs['vertices'].sv_get()
verts = dataCorrect(propv)
# end early, no point doing anything else.
if not verts:
return
# draw text on locations instead of indices.
text_so = inputs['text'].sv_get(default=[])
text = dataCorrect(text_so)
if text:
fullList(text, len(verts))
for i, t in enumerate(text):
fullList(text[i], len(verts[i]))
# read non vertex inputs in a loop and assign to data_collected
data_collected = []
for socket in ['edges', 'faces', 'matrix']:
propm = inputs[socket].sv_get(default=[])
input_stream = dataCorrect(propm)
data_collected.append(input_stream)
edges, faces, matrices = data_collected
bg = self.draw_bg
settings = self.get_settings()
IV.callback_enable(
n_id, verts, edges, faces, matrices, bg, settings, text)
示例12: define_steplist
def define_steplist(self, step_list, s, n, nor, normal):
for num in n:
num = max(2, num)
s = s[:(num - 1)] # shorten if needed
fullList(s, num - 1) # extend if needed
step_list.append([S * nor / sum(s) for S in s] if normal else s)
示例13: joinvers
def joinvers(ver):
''' for joinvers to one object '''
joinvers = []
for ob in ver:
fullList(list(ob), lenvers)
joinvers.extend(ob)
return joinvers
示例14: process
def process(self):
if not (self.inputs['vertices'].is_linked):
return
# perhaps if any of mverts is [] this should already fail.
has_matrices = self.inputs['matrix'].is_linked
mverts, mmatrices = self.get_geometry_from_sockets()
# extend all non empty lists to longest of mverts or *mrest
maxlen = max(len(mverts), len(mmatrices))
if has_matrices:
fullList(mmatrices, maxlen)
for obj_index, Verts in enumerate(mverts):
if not Verts:
continue
curve_name = self.basemesh_name + "_" + str(obj_index)
if has_matrices:
matrix = mmatrices[obj_index]
else:
matrix = []
make_curve_geometry(self, bpy.context, curve_name, Verts, matrix, self.close)
self.remove_non_updated_objects(obj_index)
objs = self.get_children()
if bpy.data.materials.get(self.material):
self.set_corresponding_materials(objs)
示例15: process
def process(self):
frame = self.inputs[0]
coordinates = self.inputs[1]
if frame.is_linked and coordinates.is_linked:
strokes = frame.sv_get()
coords = coordinates.sv_get()
self.num_strokes = len(coords)
set_correct_stroke_count(strokes, coords)
cyclic_socket_value = self.inputs["draw cyclic"].sv_get()[0]
fullList(cyclic_socket_value, self.num_strokes)
pressures = self.get_pressures()
for idx, (stroke, coord_set) in enumerate(zip(strokes, coords)):
stroke.draw_mode = self.draw_mode
stroke.draw_cyclic = cyclic_socket_value[idx]
num_points = len(coord_set)
pass_data_to_stroke(stroke, coord_set)
flat_pressures = match_points_and_pressures(pressures[idx], num_points)
pass_pressures_to_stroke(stroke, flat_pressures)
# color.fill_alpha
# color.alpha
self.outputs[0].sv_set(strokes)