Author: Carlos Lopez <genet...@gmail.com> Date: Wed Apr 6 17:42:45 2011 +0200
Fix bad render of the first widthpoint. --- .../src/modules/mod_geometry/advanced_outline.cpp | 12 +++++++++--- 1 files changed, 9 insertions(+), 3 deletions(-) diff --git a/synfig-core/src/modules/mod_geometry/advanced_outline.cpp b/synfig-core/src/modules/mod_geometry/advanced_outline.cpp index 6287bfb..254a4d8 100644 --- a/synfig-core/src/modules/mod_geometry/advanced_outline.cpp +++ b/synfig-core/src/modules/mod_geometry/advanced_outline.cpp @@ -247,8 +247,7 @@ Advanced_Outline::sync() // in the code. Later they are separated and works as expected. witer=wnext; const vector<WidthPoint>::const_iterator wend(wplist.end()); - // Is this comparison needed? I think that it is always 0.0 - Real ipos(blineloop?0.0:witer->get_norm_position()); + Real ipos(0.0); do { Vector iter_t(biter->get_tangent2()); @@ -321,8 +320,15 @@ Advanced_Outline::sync() // if we are in the middle of two widthpoints with sides // that doesn't produce interpolation, then jump to the // next withpoint. - if(witer->get_side_type_after()!=WidthPoint::TYPE_INTERPOLATE && + // or + // if are doing the first widthpoint of a non blinelooped outline + // then we need to jump to the first widthpoint + if( + (witer->get_side_type_after()!=WidthPoint::TYPE_INTERPOLATE && wnext->get_side_type_before()!=WidthPoint::TYPE_INTERPOLATE) + || + (witer==wplist.begin() && wnext==wplist.begin()) + ) { ipos=wnext_pos; // we need to consider if we are jumping any bezier too ------------------------------------------------------------------------------ Xperia(TM) PLAY It's a major breakthrough. An authentic gaming smartphone on the nation's most reliable network. And it wants your games. http://p.sf.net/sfu/verizon-sfdev _______________________________________________ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl