[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [47153] branches/soc-2011-tomato/source/ blender/blenkernel/intern/mask.c: check for parent before applying offset
Campbell Barton
ideasman42 at gmail.com
Tue May 29 08:31:43 CEST 2012
Revision: 47153
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=47153
Author: campbellbarton
Date: 2012-05-29 06:31:42 +0000 (Tue, 29 May 2012)
Log Message:
-----------
check for parent before applying offset
Modified Paths:
--------------
branches/soc-2011-tomato/source/blender/blenkernel/intern/mask.c
Modified: branches/soc-2011-tomato/source/blender/blenkernel/intern/mask.c
===================================================================
--- branches/soc-2011-tomato/source/blender/blenkernel/intern/mask.c 2012-05-29 05:48:07 UTC (rev 47152)
+++ branches/soc-2011-tomato/source/blender/blenkernel/intern/mask.c 2012-05-29 06:31:42 UTC (rev 47153)
@@ -812,13 +812,13 @@
}
}
-static void evaluate_mask_parent(MaskParent *parent, float ctime, float r_co[2])
+static int evaluate_mask_parent(MaskParent *parent, float ctime, float r_co[2])
{
if (!parent)
- return;
+ return FALSE;
if ((parent->flag & MASK_PARENT_ACTIVE) == 0)
- return;
+ return FALSE;
if (parent->id_type == ID_MC) {
if (parent->id) {
@@ -836,10 +836,14 @@
MovieTrackingMarker *marker = BKE_tracking_get_marker(track, ctime);
BKE_mask_coord_from_movieclip(clip, &user, r_co, marker->pos);
add_v2_v2(r_co, parent->offset);
+
+ return TRUE;
}
}
}
}
+
+ return FALSE;
}
static void mask_calc_point_handle(MaskSplinePoint *point, MaskSplinePoint *prev_point, MaskSplinePoint *next_point)
@@ -979,7 +983,7 @@
void BKE_mask_calc_handle_adjacent_length(Mask *mask, MaskSpline *spline, MaskSplinePoint *point)
{
/* TODO! - make this interpolate between siblings - not always midpoint! */
- int length_tot = 0;
+ int length_tot = 0;
float length_average = 0.0f;
MaskSplinePoint *prev_point, *next_point;
@@ -1098,16 +1102,19 @@
for (spline = maskobj->splines.first; spline; spline = spline->next) {
for (i = 0; i < spline->tot_point; i++) {
MaskSplinePoint *point = &spline->points[i];
- BezTriple *bezt = &point->bezt;
- float co[2], delta[2];
+ float co[2];
- copy_v2_v2(co, bezt->vec[1]);
- evaluate_mask_parent(&point->parent, ctime, co);
- sub_v2_v2v2(delta, co, bezt->vec[1]);
+ if (evaluate_mask_parent(&point->parent, ctime, co)) {
+ BezTriple *bezt = &point->bezt;
+ float delta[2];
- add_v2_v2(bezt->vec[0], delta);
- add_v2_v2(bezt->vec[1], delta);
- add_v2_v2(bezt->vec[2], delta);
+ copy_v2_v2(co, bezt->vec[1]);
+ sub_v2_v2v2(delta, co, bezt->vec[1]);
+
+ add_v2_v2(bezt->vec[0], delta);
+ add_v2_v2(bezt->vec[1], delta);
+ add_v2_v2(bezt->vec[2], delta);
+ }
}
}
}
@@ -1220,7 +1227,7 @@
}
BLI_INLINE void interp_v2_v2v2_flfl(float target[2], const float a[2], const float b[2],
- const float t, const float s)
+ const float t, const float s)
{
target[0] = s * a[0] + t * b[0];
target[1] = s * a[1] + t * b[1];
More information about the Bf-blender-cvs
mailing list