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>2010-07-05 03:08:37 +0400
committerTamito Kajiyama <rd6t-kjym@asahi-net.or.jp>2010-07-05 03:08:37 +0400
commit38b7cbbd004ef7268a1c39114d8503906361c1f7 (patch)
tree1312b72e85499323e130b9e455f39c2b9833b1cb /source/blender/freestyle/intern/stroke/StrokeRep.cpp
parent4dd23a381a8a7c65732e12025e2f0503595e2956 (diff)
Bug fixes from Stéphane Grabli, one of the coauthors of the
original Freestyle: * Fix for making the stroke construction more robust to nearly overlapping vertices. * Fix for a bug in the computation of the occluded surfaces. These changes make the visibility computation more robust and the line quality generally higher.
Diffstat (limited to 'source/blender/freestyle/intern/stroke/StrokeRep.cpp')
-rwxr-xr-xsource/blender/freestyle/intern/stroke/StrokeRep.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/source/blender/freestyle/intern/stroke/StrokeRep.cpp b/source/blender/freestyle/intern/stroke/StrokeRep.cpp
index fbe1273bac0..6ae15c71833 100755
--- a/source/blender/freestyle/intern/stroke/StrokeRep.cpp
+++ b/source/blender/freestyle/intern/stroke/StrokeRep.cpp
@@ -254,7 +254,14 @@ Strip::createStrip (const vector<StrokeVertex*>& iStrokeVertices)
else
_vertices.push_back(new StrokeVertexRep(p-thickness[0]*stripDir));
++i;
-
+
+ if((stripDir+stripDirPrev).norm() <= 1.e-06){
+ // the strip is most likely doing a U-turn, we can't compute the average vector.
+ // We just continue and hope it's ok
+ vPrev = v;
+ continue;
+ }
+
// if the angle is obtuse, we simply average the directions to avoid the singularity
stripDir=stripDir+stripDirPrev;
if ((dirNorm<ZERO) || (dirPrevNorm<ZERO) || (stripDir.norm() < ZERO)) {