forked from bartvdbraak/blender
Add inverse-square blending for PET and warp
Similar to 'Root' but without noticeable spike/pinch in the center.
This commit is contained in:
parent
15cd222270
commit
02acfdab9e
@ -1937,6 +1937,9 @@ void calculatePropRatio(TransInfo *t)
|
||||
case PROP_RANDOM:
|
||||
td->factor = BLI_frand() * dist;
|
||||
break;
|
||||
case PROP_INVSQUARE:
|
||||
td->factor = dist * (2.0f - dist);
|
||||
break;
|
||||
default:
|
||||
td->factor = 1;
|
||||
break;
|
||||
@ -1965,6 +1968,9 @@ void calculatePropRatio(TransInfo *t)
|
||||
case PROP_RANDOM:
|
||||
strcpy(t->proptext, IFACE_("(Random)"));
|
||||
break;
|
||||
case PROP_INVSQUARE:
|
||||
strcpy(t->proptext, IFACE_("(InvSquare)"));
|
||||
break;
|
||||
default:
|
||||
t->proptext[0] = '\0';
|
||||
break;
|
||||
|
@ -978,6 +978,7 @@ typedef enum {
|
||||
eWarp_Falloff_Linear = 5, /* PROP_LIN */
|
||||
eWarp_Falloff_Const = 6, /* PROP_CONST */
|
||||
eWarp_Falloff_Sphere = 7, /* PROP_SPHERE */
|
||||
eWarp_Falloff_InvSquare = 8, /* PROP_INVSQUARE */
|
||||
/* PROP_RANDOM not used */
|
||||
} WarpModifierFalloff;
|
||||
|
||||
|
@ -1625,7 +1625,8 @@ extern const char *RE_engine_id_CYCLES;
|
||||
#define PROP_LIN 4
|
||||
#define PROP_CONST 5
|
||||
#define PROP_RANDOM 6
|
||||
#define PROP_MODE_MAX 7
|
||||
#define PROP_INVSQUARE 7
|
||||
#define PROP_MODE_MAX 8
|
||||
|
||||
/* toolsettings->proportional */
|
||||
#define PROP_EDIT_OFF 0
|
||||
|
@ -1117,6 +1117,7 @@ static void rna_def_modifier_warp(BlenderRNA *brna)
|
||||
{eWarp_Falloff_Smooth, "SMOOTH", ICON_SMOOTHCURVE, "Smooth", ""},
|
||||
{eWarp_Falloff_Sphere, "SPHERE", ICON_SPHERECURVE, "Sphere", ""},
|
||||
{eWarp_Falloff_Root, "ROOT", ICON_ROOTCURVE, "Root", ""},
|
||||
{eWarp_Falloff_InvSquare, "INVERSE_SQUARE", ICON_ROOTCURVE, "Inverse Square", ""},
|
||||
{eWarp_Falloff_Sharp, "SHARP", ICON_SHARPCURVE, "Sharp", ""},
|
||||
{eWarp_Falloff_Linear, "LINEAR", ICON_LINCURVE, "Linear", ""},
|
||||
{eWarp_Falloff_Const, "CONSTANT", ICON_NOCURVE, "Constant", ""},
|
||||
|
@ -112,6 +112,7 @@ EnumPropertyItem proportional_falloff_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"},
|
||||
{PROP_CONST, "CONSTANT", ICON_NOCURVE, "Constant", "Constant falloff"},
|
||||
|
@ -265,6 +265,9 @@ static void warpModifier_do(WarpModifierData *wmd, Object *ob,
|
||||
case eWarp_Falloff_Sphere:
|
||||
fac = sqrtf(2 * fac - fac * fac);
|
||||
break;
|
||||
case eWarp_Falloff_InvSquare:
|
||||
fac = fac * (2.0f - fac);
|
||||
break;
|
||||
}
|
||||
|
||||
fac *= weight;
|
||||
|
Loading…
Reference in New Issue
Block a user