Add inverse-square falloff to bmesh, mask & compo.

This commit is contained in:
Campbell Barton 2015-04-26 18:31:54 +10:00
parent d33314393e
commit c2f7cffd56
5 changed files with 10 additions and 0 deletions

View File

@ -1360,6 +1360,9 @@ float BKE_maskrasterize_handle_sample(MaskRasterHandle *mr_handle, const float x
case PROP_SHARP:
value_layer = value_layer * value_layer;
break;
case PROP_INVSQUARE:
value_layer = value_layer * (2.0f - value_layer);
break;
case PROP_LIN:
default:
/* nothing */

View File

@ -46,6 +46,7 @@ enum {
SUBD_FALLOFF_ROOT,
SUBD_FALLOFF_SHARP,
SUBD_FALLOFF_LIN,
SUBD_FALLOFF_INVSQUARE = 7, /* matching PROP_INVSQUARE */
};
enum {

View File

@ -2419,6 +2419,9 @@ float bmesh_subd_falloff_calc(const int falloff, float val)
break;
case SUBD_FALLOFF_LIN:
break;
case SUBD_FALLOFF_INVSQUARE:
val = val * (2.0f - val);
break;
default:
BLI_assert(0);
break;

View File

@ -133,6 +133,8 @@ float *BlurBaseOperation::make_dist_fac_inverse(float rad, int size, int falloff
case PROP_SHARP:
val = val * val;
break;
case PROP_INVSQUARE:
val = val * (2.0f - val);
case PROP_LIN:
/* fall-through */
#ifndef NDEBUG

View File

@ -134,6 +134,7 @@ EnumPropertyItem proportional_falloff_curve_only_items[] = {
{PROP_SMOOTH, "SMOOTH", ICON_SMOOTHCURVE, "Smooth", "Smooth falloff"},
{PROP_SPHERE, "SPHERE", ICON_SPHERECURVE, "Sphere", "Spherical falloff"},
{PROP_ROOT, "ROOT", ICON_ROOTCURVE, "Root", "Root falloff"},
{PROP_INVSQUARE, "INVERSE_SQUARE", ICON_ROOTCURVE, "Inverse Square", "Inverse Square falloff"},
{PROP_SHARP, "SHARP", ICON_SHARPCURVE, "Sharp", "Sharp falloff"},
{PROP_LIN, "LINEAR", ICON_LINCURVE, "Linear", "Linear falloff"},
{0, NULL, 0, NULL, NULL}