Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTamito Kajiyama <rd6t-kjym@asahi-net.or.jp>2013-03-04 01:56:36 +0400
committerTamito Kajiyama <rd6t-kjym@asahi-net.or.jp>2013-03-04 01:56:36 +0400
commitb4b22699850a859d601bb4851d0af18f568b3061 (patch)
tree9f943565ad173592d0b7ba1af7c740dd7533cd65
parent66a2b848972d47a033f617a40f9a9044756d1d32 (diff)
Fix for the Sinus Displacement geometry modifier not working properly.
The problem was caused by keeping a reference to a Vector object that is assumed to be unchanged, but actually altered by the geometry modifier. The same code updates were made to similar code portions to prevent possible future bugs.
-rw-r--r--release/scripts/freestyle/style_modules/parameter_editor.py14
1 files changed, 7 insertions, 7 deletions
diff --git a/release/scripts/freestyle/style_modules/parameter_editor.py b/release/scripts/freestyle/style_modules/parameter_editor.py
index cf3c125bf6e..36d49d006a3 100644
--- a/release/scripts/freestyle/style_modules/parameter_editor.py
+++ b/release/scripts/freestyle/style_modules/parameter_editor.py
@@ -174,11 +174,11 @@ def iter_t2d_along_stroke(stroke):
total = stroke.length_2d
distance = 0.0
it = stroke.stroke_vertices_begin()
+ prev = it.object.point
while not it.is_end:
p = it.object.point
- if not it.is_begin:
- distance += (prev - p).length
- prev = p
+ distance += (prev - p).length
+ prev = p.copy() # need a copy because the point can be altered
t = min(distance / total, 1.0)
yield it, t
it.increment()
@@ -475,11 +475,11 @@ class CalligraphicThicknessShader(ThicknessBlenderMixIn, ScalarBlendModifier):
def iter_distance_along_stroke(stroke):
distance = 0.0
it = stroke.stroke_vertices_begin()
+ prev = it.object.point
while not it.is_end:
p = it.object.point
- if not it.is_begin:
- distance += (prev - p).length
- prev = p
+ distance += (prev - p).length
+ prev = p.copy() # need a copy because the point can be altered
yield it, distance
it.increment()
@@ -658,7 +658,7 @@ def iter_stroke_vertices(stroke):
p = sv.point
if prev_p is None or (prev_p - p).length > 1e-6:
yield sv
- prev_p = p
+ prev_p = p.copy()
it.increment()
class RoundCapShader(StrokeShader):