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/view_map/Functions0D.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/view_map/Functions0D.cpp')
-rwxr-xr-xsource/blender/freestyle/intern/view_map/Functions0D.cpp21
1 files changed, 9 insertions, 12 deletions
diff --git a/source/blender/freestyle/intern/view_map/Functions0D.cpp b/source/blender/freestyle/intern/view_map/Functions0D.cpp
index b28ac575d00..dc38ca34184 100755
--- a/source/blender/freestyle/intern/view_map/Functions0D.cpp
+++ b/source/blender/freestyle/intern/view_map/Functions0D.cpp
@@ -38,16 +38,9 @@ namespace Functions0D {
Interface0DIterator prev = it, next = it;
++next;
int count = 1;
- while((!prev.isBegin()) && (count < 3))
- {
- --prev;
- ++count;
- }
- while((!next.isEnd()) && (count < 3))
- {
- ++next;
- ++count;
- }
+ if (!it.isBegin() && !next.isEnd()) {
+ count = 3;
+ }
if(count < 3)
{
// if we only have 2 vertices
@@ -296,9 +289,13 @@ namespace Functions0D {
int MaterialF0D::operator()(Interface0DIterator& iter) {
FEdge *fe1, *fe2;
getFEdges(iter,fe1,fe2);
-
- if(fe1 == 0)
+
+ if(fe1 == 0) {
+ // DEBUG
getFEdges(iter, fe1, fe2);
+ return 1;
+ }
+
if(fe1->isSmooth())
result = ((FEdgeSmooth*)fe1)->frs_material();
else