Fix for Freestyle hang up in stroke rendering, due to missing update of 2D stroke length in StorkeCleaner.

Problem report by Light BWK through personal communications, thanks!
This commit is contained in:
Tamito Kajiyama 2013-09-26 20:14:29 +00:00
parent 226d6fbfc5
commit e424002d30

@ -1062,8 +1062,8 @@ class Seed:
_seed = Seed()
### T.K. 07-Aug-2013 Temporary fix for unexpected line gaps
### T.K. 07-Aug-2013 Temporary fix for unexpected line gaps
def iter_three_segments(stroke):
n = stroke.stroke_vertices_size()
@ -1101,6 +1101,7 @@ class StrokeCleaner(StrokeShader):
p3 = mathutils.Vector(sv3.point)
sv2.point = p3
sv3.point = p2
stroke.update_length()
# main function for parameter processing
@ -1233,6 +1234,9 @@ def process(layer_name, lineset_name):
Operators.select(LengthThresholdUP1D(length_min, length_max))
# prepare a list of stroke shaders
shaders_list = []
###
shaders_list.append(StrokeCleaner())
###
for m in linestyle.geometry_modifiers:
if not m.use:
continue
@ -1282,9 +1286,6 @@ def process(layer_name, lineset_name):
elif m.type == '2D_TRANSFORM':
shaders_list.append(Transform2DShader(
m.pivot, m.scale_x, m.scale_y, m.angle, m.pivot_u, m.pivot_x, m.pivot_y))
###
shaders_list.append(StrokeCleaner())
###
color = linestyle.color
if (not linestyle.use_chaining) or (linestyle.chaining == 'PLAIN' and linestyle.use_same_object):
thickness_position = linestyle.thickness_position