ability to calculate mask curve and feather with predefined resolution (*_ex functions)
This commit is contained in:
parent
b63b8ea69d
commit
83d2314edf
|
@ -67,9 +67,10 @@ struct MaskSpline *BKE_mask_spline_add(struct MaskLayer *masklay);
|
|||
float (*BKE_mask_spline_differentiate(struct MaskSpline *spline, int *tot_diff_point))[2];
|
||||
float (*BKE_mask_spline_feather_differentiated_points(struct MaskSpline *spline, int *tot_feather_point))[2];
|
||||
|
||||
float (*BKE_mask_spline_differentiate_with_resolution_ex(struct MaskSpline *spline, const int resol, int *tot_diff_point))[2];
|
||||
float (*BKE_mask_spline_differentiate_with_resolution(struct MaskSpline *spline, int width, int height, int *tot_diff_point))[2];
|
||||
float (*BKE_mask_spline_feather_differentiated_points_with_resolution(struct MaskSpline *spline,
|
||||
int width, int height, int *tot_feather_point))[2];
|
||||
float (*BKE_mask_spline_feather_differentiated_points_with_resolution_ex(struct MaskSpline *spline, const int resol, int *tot_feather_point))[2];
|
||||
float (*BKE_mask_spline_feather_differentiated_points_with_resolution(struct MaskSpline *spline, int width, int height, int *tot_feather_point))[2];
|
||||
|
||||
float (*BKE_mask_spline_feather_points(struct MaskSpline *spline, int *tot_feather_point))[2];
|
||||
|
||||
|
|
|
@ -314,14 +314,14 @@ static int BKE_mask_spline_feather_resolution(MaskSpline *spline, int width, int
|
|||
return resol;
|
||||
}
|
||||
|
||||
float (*BKE_mask_spline_differentiate_with_resolution(MaskSpline *spline, int width, int height,
|
||||
int *tot_diff_point))[2]
|
||||
float (*BKE_mask_spline_differentiate_with_resolution_ex(MaskSpline *spline, const int resol,
|
||||
int *tot_diff_point))[2]
|
||||
{
|
||||
MaskSplinePoint *points_array = BKE_mask_spline_point_array(spline);
|
||||
|
||||
MaskSplinePoint *point, *prev;
|
||||
float (*diff_points)[2], (*fp)[2];
|
||||
int a, len, resol = BKE_mask_spline_resolution(spline, width, height);
|
||||
int a, len;
|
||||
|
||||
if (spline->tot_point <= 1) {
|
||||
/* nothing to differentiate */
|
||||
|
@ -378,18 +378,26 @@ float (*BKE_mask_spline_differentiate_with_resolution(MaskSpline *spline, int wi
|
|||
return diff_points;
|
||||
}
|
||||
|
||||
float (*BKE_mask_spline_differentiate_with_resolution(MaskSpline *spline, int width, int height,
|
||||
int *tot_diff_point))[2]
|
||||
{
|
||||
int resol = BKE_mask_spline_resolution(spline, width, height);
|
||||
|
||||
return BKE_mask_spline_differentiate_with_resolution_ex(spline, resol, tot_diff_point);
|
||||
}
|
||||
|
||||
float (*BKE_mask_spline_differentiate(MaskSpline *spline, int *tot_diff_point))[2]
|
||||
{
|
||||
return BKE_mask_spline_differentiate_with_resolution(spline, 0, 0, tot_diff_point);
|
||||
}
|
||||
|
||||
float (*BKE_mask_spline_feather_differentiated_points_with_resolution(MaskSpline *spline, int width, int height,
|
||||
int *tot_feather_point))[2]
|
||||
float (*BKE_mask_spline_feather_differentiated_points_with_resolution_ex(MaskSpline *spline, const int resol,
|
||||
int *tot_feather_point))[2]
|
||||
{
|
||||
MaskSplinePoint *points_array = BKE_mask_spline_point_array(spline);
|
||||
|
||||
float (*feather)[2], (*fp)[2];
|
||||
int i, j, tot, resol = BKE_mask_spline_feather_resolution(spline, width, height);
|
||||
int i, j, tot;
|
||||
|
||||
tot = resol * spline->tot_point;
|
||||
feather = fp = MEM_mallocN(tot * sizeof(*feather), "mask spline feather diff points");
|
||||
|
@ -416,6 +424,14 @@ float (*BKE_mask_spline_feather_differentiated_points_with_resolution(MaskSpline
|
|||
return feather;
|
||||
}
|
||||
|
||||
float (*BKE_mask_spline_feather_differentiated_points_with_resolution(MaskSpline *spline, int width, int height,
|
||||
int *tot_feather_point))[2]
|
||||
{
|
||||
int resol = BKE_mask_spline_feather_resolution(spline, width, height);
|
||||
|
||||
return BKE_mask_spline_feather_differentiated_points_with_resolution_ex(spline, resol, tot_feather_point);
|
||||
}
|
||||
|
||||
float (*BKE_mask_spline_feather_differentiated_points(MaskSpline *spline, int *tot_feather_point))[2]
|
||||
{
|
||||
return BKE_mask_spline_feather_differentiated_points_with_resolution(spline, 0, 0, tot_feather_point);
|
||||
|
|
Loading…
Reference in New Issue