Revision: 49024
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=49024
Author: nazgul
Date: 2012-07-18 11:48:13 +0000 (Wed, 18 Jul 2012)
Log Message:
-----------
Fixed wrong self-intersection check for non-closed splines
Modified Paths:
--------------
trunk/blender/source/blender/blenkernel/intern/mask.c
Modified: trunk/blender/source/blender/blenkernel/intern/mask.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/mask.c 2012-07-18
11:01:23 UTC (rev 49023)
+++ trunk/blender/source/blender/blenkernel/intern/mask.c 2012-07-18
11:48:13 UTC (rev 49024)
@@ -512,7 +512,7 @@
*diagonal_bucket_b_r = &buckets[diagonal_bucket_b_index];
}
-static void spline_feather_collapse_inner_loops(float (*feather_points)[2],
int tot_feather_point)
+static void spline_feather_collapse_inner_loops(MaskSpline *spline, float
(*feather_points)[2], int tot_feather_point)
{
#define BUCKET_INDEX(co) \
feather_bucket_index_from_coord(co, min, bucket_scale, buckets_per_side)
@@ -541,8 +541,12 @@
int next = i + 1;
float delta;
- if (next == tot_feather_point)
- next = 0;
+ if (next == tot_feather_point) {
+ if (spline->flag & MASK_SPLINE_CYCLIC)
+ next = 0;
+ else
+ break;
+ }
delta = fabsf(feather_points[i][0] - feather_points[next][0]);
if (delta > max_delta_x)
@@ -585,8 +589,12 @@
int start = i, end = i + 1;
int start_bucket_index, end_bucket_index;
- if (end == tot_feather_point)
- end = 0;
+ if (end == tot_feather_point) {
+ if (spline->flag & MASK_SPLINE_CYCLIC)
+ end = 0;
+ else
+ break;
+ }
start_bucket_index = BUCKET_INDEX(feather_points[start]);
end_bucket_index = BUCKET_INDEX(feather_points[end]);
@@ -718,7 +726,7 @@
/* this is slow! - don't do on draw */
if (do_collapse) {
- spline_feather_collapse_inner_loops(feather, tot);
+ spline_feather_collapse_inner_loops(spline, feather, tot);
}
return feather;
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs