[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [42568] branches/soc-2008-mxcurioni/source /blender/freestyle/intern/stroke/Operators.cpp: Fix for Operators. recursiveSplit() not able to split a chain within the last segment.

Tamito Kajiyama rd6t-kjym at asahi-net.or.jp
Sun Dec 11 12:17:45 CET 2011


Revision: 42568
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=42568
Author:   kjym3
Date:     2011-12-11 11:17:41 +0000 (Sun, 11 Dec 2011)
Log Message:
-----------
Fix for Operators.recursiveSplit() not able to split a chain within the last segment.

Modified Paths:
--------------
    branches/soc-2008-mxcurioni/source/blender/freestyle/intern/stroke/Operators.cpp

Modified: branches/soc-2008-mxcurioni/source/blender/freestyle/intern/stroke/Operators.cpp
===================================================================
--- branches/soc-2008-mxcurioni/source/blender/freestyle/intern/stroke/Operators.cpp	2011-12-11 10:39:41 UTC (rev 42567)
+++ branches/soc-2008-mxcurioni/source/blender/freestyle/intern/stroke/Operators.cpp	2011-12-11 11:17:41 UTC (rev 42568)
@@ -695,7 +695,7 @@
   CurveInternal::CurvePointIterator vnext = vit; ++vnext;
 
   
-  for(; (vit!=vitend)&&(vnext!=vitend)&&(split._CurvilinearLength-vit._CurvilinearLength> 0.001); ++vit,++vnext){
+  for(; (vit!=vitend)&&(vnext!=vitend)&&(vnext._CurvilinearLength<split._CurvilinearLength); ++vit,++vnext){
     new_curve_a->push_vertex_back(&(*vit));
   }
   if((vit==vitend) || (vnext == vitend)){
@@ -707,15 +707,11 @@
   }
 
   // build the two resulting chains
-  if(fabs(vit._CurvilinearLength-split._CurvilinearLength) > 0.001){
-    new_curve_a->push_vertex_back(&(*split));
-    new_curve_b->push_vertex_back(&(*split));
-  }
-  else{
-    new_curve_a->push_vertex_back(&(*vit));
-  }
+  new_curve_a->push_vertex_back(&(*vit));
+  new_curve_a->push_vertex_back(&(*split));
+  new_curve_b->push_vertex_back(&(*split));
 
-  for(;vit!=vitend;++vit)
+  for(vit=vnext;vit!=vitend;++vit)
     new_curve_b->push_vertex_back(&(*vit));
   
   // let's check whether one or two of the two new curves 
@@ -864,7 +860,7 @@
   CurveInternal::CurvePointIterator vnext = vit; ++vnext;
 
   
-  for(; (vit!=vitend)&&(vnext!=vitend)&&(split._CurvilinearLength-vit._CurvilinearLength> 0.001); ++vit,++vnext){
+  for(; (vit!=vitend)&&(vnext!=vitend)&&(vnext._CurvilinearLength<split._CurvilinearLength); ++vit,++vnext){
     new_curve_a->push_vertex_back(&(*vit));
   }
   if((vit==vitend) || (vnext == vitend)){
@@ -876,15 +872,11 @@
   }
 
   // build the two resulting chains
-  if(fabs(vit._CurvilinearLength-split._CurvilinearLength) > 0.001){
-    new_curve_a->push_vertex_back(&(*split));
-    new_curve_b->push_vertex_back(&(*split));
-  }
-  else{
-    new_curve_a->push_vertex_back(&(*vit));
-  }
+  new_curve_a->push_vertex_back(&(*vit));
+  new_curve_a->push_vertex_back(&(*split));
+  new_curve_b->push_vertex_back(&(*split));
 
-  for(;vit!=vitend;++vit)
+  for(vit=vnext;vit!=vitend;++vit)
     new_curve_b->push_vertex_back(&(*vit));
   
   // let's check whether one or two of the two new curves 




More information about the Bf-blender-cvs mailing list