[Bf-blender-cvs] [6bc0375d222] greasepencil-object: Opacity modifer affect strength
Antonio Vazquez
noreply at git.blender.org
Mon Jul 24 12:42:28 CEST 2017
Commit: 6bc0375d222a5b1f5726a32616d7180e418e5971
Author: Antonio Vazquez
Date: Mon Jul 24 12:42:10 2017 +0200
Branches: greasepencil-object
https://developer.blender.org/rB6bc0375d222a5b1f5726a32616d7180e418e5971
Opacity modifer affect strength
If the factor is > 1, the strength of the stroke is affected by modifier
===================================================================
M source/blender/blenkernel/intern/gpencil.c
M source/blender/makesrna/intern/rna_modifier.c
===================================================================
diff --git a/source/blender/blenkernel/intern/gpencil.c b/source/blender/blenkernel/intern/gpencil.c
index ce34e1e4f1d..7a135e17d50 100644
--- a/source/blender/blenkernel/intern/gpencil.c
+++ b/source/blender/blenkernel/intern/gpencil.c
@@ -1919,6 +1919,8 @@ void ED_gpencil_tint_modifier(int UNUSED(id), GpencilTintModifierData *mmd, bGPD
/* opacity strokes */
void ED_gpencil_opacity_modifier(int UNUSED(id), GpencilOpacityModifierData *mmd, bGPDlayer *gpl, bGPDstroke *gps)
{
+ bGPDspoint *pt;
+
if (!is_stroke_affected_by_modifier(mmd->layername, mmd->passindex, 3, gpl, gps,
(int)mmd->flag & GP_OPACITY_INVERSE_LAYER, (int)mmd->flag & GP_OPACITY_INVERSE_PASS)) {
return;
@@ -1929,6 +1931,15 @@ void ED_gpencil_opacity_modifier(int UNUSED(id), GpencilOpacityModifierData *mmd
CLAMP(gps->palcolor->rgb[3], 0.0f, 1.0f);
CLAMP(gps->palcolor->fill[3], 0.0f, 1.0f);
+
+ /* if opacity > 1.0, affect the strength of the stroke */
+ if (mmd->factor > 1.0f) {
+ for (int i = 0; i < gps->totpoints; ++i) {
+ bGPDspoint *pt = &gps->points[i];
+ pt->strength += (mmd->factor - 1.0f);
+ CLAMP(pt->strength, 0.0f, 1.0f);
+ }
+ }
}
/* helper function to sort strokes using qsort */
diff --git a/source/blender/makesrna/intern/rna_modifier.c b/source/blender/makesrna/intern/rna_modifier.c
index 8dabcf6480f..ed99a339783 100644
--- a/source/blender/makesrna/intern/rna_modifier.c
+++ b/source/blender/makesrna/intern/rna_modifier.c
@@ -314,6 +314,16 @@ EnumPropertyItem rna_enum_gpencil_lockshift_items[] = {
# include "ABC_alembic.h"
#endif
+static void rna_GPencilOpacity_factor_range(PointerRNA *ptr, float *min, float *max,
+ float *softmin, float *softmax)
+{
+ *min = 0.0f;
+ *max = 2.0f;
+
+ *softmin = 0.0f;
+ *softmax = 1.0f;
+}
+
static void rna_UVProject_projectors_begin(CollectionPropertyIterator *iter, PointerRNA *ptr)
{
UVProjectModifierData *uvp = (UVProjectModifierData *)ptr->data;
@@ -5011,7 +5021,7 @@ static void rna_def_modifier_gpencilopacity(BlenderRNA *brna)
prop = RNA_def_property(srna, "factor", PROP_FLOAT, PROP_NONE);
RNA_def_property_float_sdna(prop, NULL, "factor");
- RNA_def_property_range(prop, 0, 1.0);
+ RNA_def_property_float_funcs(prop, NULL, NULL, "rna_GPencilOpacity_factor_range");
RNA_def_property_ui_text(prop, "Factor", "Factor of opacity");
RNA_def_property_update(prop, 0, "rna_Modifier_update");
More information about the Bf-blender-cvs
mailing list