[Bf-blender-cvs] [97e46b5e145] soc-2017-vertex_paint: added the alpha along with rgb in .ply exporter in vpaint

Darshan Kadu noreply at git.blender.org
Sun Jul 9 10:23:49 CEST 2017


Commit: 97e46b5e1450bdb18b96a61a98fcf7248cd2d9ce
Author: Darshan Kadu
Date:   Sun Jul 9 13:53:15 2017 +0530
Branches: soc-2017-vertex_paint
https://developer.blender.org/rB97e46b5e1450bdb18b96a61a98fcf7248cd2d9ce

added the alpha along with rgb in .ply exporter in vpaint

===================================================================

M	source/blender/editors/sculpt_paint/paint_vertex.c
M	source/blender/makesdna/DNA_brush_types.h
M	source/blender/makesrna/intern/rna_mesh.c

===================================================================

diff --git a/source/blender/editors/sculpt_paint/paint_vertex.c b/source/blender/editors/sculpt_paint/paint_vertex.c
index ce67cf87ea6..3704447df6c 100644
--- a/source/blender/editors/sculpt_paint/paint_vertex.c
+++ b/source/blender/editors/sculpt_paint/paint_vertex.c
@@ -576,10 +576,14 @@ BLI_INLINE unsigned int mcol_blend(unsigned int col1, unsigned int col2, int fac
 	unsigned int col = 0;
 
 	if (fac == 0) {
+		cp = (unsigned char *)&col1;
+		cp[3] = use_alpha ? alpha_value : cp[3];
 		return col1;
 	}
 
 	if (fac >= 255) {
+		cp = (unsigned char *)&col2;
+		cp[3] = use_alpha ? alpha_value : cp[3];
 		return col2;
 	}
 
@@ -614,6 +618,8 @@ BLI_INLINE unsigned int mcol_add(unsigned int col1, unsigned int col2, int fac,
 	unsigned int col = 0;
 
 	if (fac == 0) {
+		cp = (unsigned char *)&col1;
+		cp[3] = use_alpha ? alpha_value : cp[3];
 		return col1;
 	}
 
@@ -640,6 +646,8 @@ BLI_INLINE unsigned int mcol_sub(unsigned int col1, unsigned int col2, int fac,
 	unsigned int col = 0;
 
 	if (fac == 0) {
+		cp = (unsigned char *)&col1;
+		cp[3] = use_alpha ? alpha_value : cp[3];
 		return col1;
 	}
 
@@ -666,6 +674,8 @@ BLI_INLINE unsigned int mcol_mul(unsigned int col1, unsigned int col2, int fac,
 	unsigned int col = 0;
 
 	if (fac == 0) {
+		cp = (unsigned char *)&col1;
+		cp[3] = use_alpha ? alpha_value : cp[3];
 		return col1;
 	}
 
@@ -692,9 +702,13 @@ BLI_INLINE unsigned int mcol_lighten(unsigned int col1, unsigned int col2, int f
 	unsigned int col = 0;
 
 	if (fac == 0) {
+		cp = (unsigned char *)&col1;
+		cp[3] = use_alpha ? alpha_value : cp[3];
 		return col1;
 	}
 	else if (fac >= 255) {
+		cp = (unsigned char *)&col2;
+		cp[3] = use_alpha ? alpha_value : cp[3];
 		return col2;
 	}
 
@@ -726,9 +740,13 @@ BLI_INLINE unsigned int mcol_darken(unsigned int col1, unsigned int col2, int fa
 	unsigned int col = 0;
 
 	if (fac == 0) {
+		cp = (unsigned char *)&col1;
+		cp[3] = use_alpha ? alpha_value : cp[3];
 		return col1;
 	}
 	else if (fac >= 255) {
+		cp = (unsigned char *)&col2;
+		cp[3] = use_alpha ? alpha_value : cp[3];
 		return col2;
 	}
 
@@ -759,6 +777,8 @@ BLI_INLINE unsigned int mcol_colordodge(unsigned int col1, unsigned int col2, in
 	unsigned int col = 0;
 
 	if (fac == 0) {
+		cp = (unsigned char *)&col1;
+		cp[3] = use_alpha ? alpha_value : cp[3];
 		return col1;
 	}
 
@@ -786,6 +806,8 @@ BLI_INLINE unsigned int mcol_difference(unsigned int col1, unsigned int col2, in
 	unsigned int col = 0;
 
 	if (fac == 0) {
+		cp = (unsigned char *)&col1;
+		cp[3] = use_alpha ? alpha_value : cp[3];
 		return col1;
 	}
 
@@ -813,6 +835,8 @@ BLI_INLINE unsigned int mcol_screen(unsigned int col1, unsigned int col2, int fa
 	unsigned int col = 0;
 
 	if (fac == 0) {
+		cp = (unsigned char *)&col1;
+		cp[3] = use_alpha ? alpha_value : cp[3];
 		return col1;
 	}
 
@@ -840,6 +864,8 @@ BLI_INLINE unsigned int mcol_hardlight(unsigned int col1, unsigned int col2, int
 	unsigned int col = 0;
 
 	if (fac == 0) {
+		cp = (unsigned char *)&col1;
+		cp[3] = use_alpha ? alpha_value : cp[3];
 		return col1;
 	}
 
@@ -873,6 +899,8 @@ BLI_INLINE unsigned int mcol_overlay(unsigned int col1, unsigned int col2, int f
 	unsigned int col = 0;
 
 	if (fac == 0) {
+		cp = (unsigned char *)&col1;
+		cp[3] = use_alpha ? alpha_value : cp[3];
 		return col1;
 	}
 
@@ -906,6 +934,8 @@ BLI_INLINE unsigned int mcol_softlight(unsigned int col1, unsigned int col2, int
 	unsigned int col = 0;
 
 	if (fac == 0) {
+		cp = (unsigned char *)&col1;
+		cp[3] = use_alpha ? alpha_value : cp[3];
 		return col1;
 	}
 
@@ -939,6 +969,8 @@ BLI_INLINE unsigned int mcol_exclusion(unsigned int col1, unsigned int col2, int
 	unsigned int col = 0;
 
 	if (fac == 0) {
+		cp = (unsigned char *)&col1;
+		cp[3] = use_alpha ? alpha_value : cp[3];
 		return col1;
 	}
 
@@ -966,6 +998,8 @@ BLI_INLINE unsigned int mcol_luminocity(unsigned int col1, unsigned int col2, in
 	unsigned int col = 0;
 
 	if (fac == 0) {
+		cp = (unsigned char *)&col1;
+		cp[3] = use_alpha ? alpha_value : cp[3];
 		return col1;
 	}
 
@@ -1000,6 +1034,8 @@ BLI_INLINE unsigned int mcol_saturation(unsigned int col1, unsigned int col2, in
 	unsigned int col = 0;
 
 	if (fac == 0) {
+		cp = (unsigned char *)&col1;
+		cp[3] = use_alpha ? alpha_value : cp[3];
 		return col1;
 	}
 
@@ -1036,6 +1072,8 @@ BLI_INLINE unsigned int mcol_hue(unsigned int col1, unsigned int col2, int fac,
 	unsigned int col = 0;
 
 	if (fac == 0) {
+		cp = (unsigned char *)&col1;
+		cp[3] = use_alpha ? alpha_value : cp[3];
 		return col1;
 	}
 
diff --git a/source/blender/makesdna/DNA_brush_types.h b/source/blender/makesdna/DNA_brush_types.h
index 56cd645c8cc..733a9f64c29 100644
--- a/source/blender/makesdna/DNA_brush_types.h
+++ b/source/blender/makesdna/DNA_brush_types.h
@@ -191,7 +191,7 @@ typedef enum BrushFlags {
 	BRUSH_JITTER_PRESSURE = (1 << 4),
 	BRUSH_SPACING_PRESSURE = (1 << 5),
 	BRUSH_UNUSED = (1 << 6),
-//	BRUSH_RAKE = (1 << 7),// deprecated, use brush_angle_mode
+//	BRUSH_RAKE = (1 << 7), deprecated, use brush_angle_mode
 	BRUSH_ALPHA_VPAINT = (1 << 7),
 	BRUSH_ANCHORED = (1 << 8),
 	BRUSH_DIR_IN = (1 << 9),
diff --git a/source/blender/makesrna/intern/rna_mesh.c b/source/blender/makesrna/intern/rna_mesh.c
index aac187948f0..075fa25922c 100644
--- a/source/blender/makesrna/intern/rna_mesh.c
+++ b/source/blender/makesrna/intern/rna_mesh.c
@@ -596,7 +596,7 @@ static void rna_MeshColor_color2_get(PointerRNA *ptr, float *values)
 {
 	MCol *mcol = (MCol *)ptr->data;
 
-	values[3] = (&mcol[0].r)[3] / 255.0f;
+	values[3] = (&mcol[1].r)[3] / 255.0f;
 	values[2] = (&mcol[1].r)[0] / 255.0f;
 	values[1] = (&mcol[1].r)[1] / 255.0f;
 	values[0] = (&mcol[1].r)[2] / 255.0f;
@@ -606,7 +606,7 @@ static void rna_MeshColor_color2_set(PointerRNA *ptr, const float *values)
 {
 	MCol *mcol = (MCol *)ptr->data;
 
-	(&mcol[0].r)[3] = (char)(CLAMPIS(values[3] * 255.0f, 0, 255));
+	(&mcol[1].r)[3] = (char)(CLAMPIS(values[3] * 255.0f, 0, 255));
 	(&mcol[1].r)[2] = (char)(CLAMPIS(values[0] * 255.0f, 0, 255));
 	(&mcol[1].r)[1] = (char)(CLAMPIS(values[1] * 255.0f, 0, 255));
 	(&mcol[1].r)[0] = (char)(CLAMPIS(values[2] * 255.0f, 0, 255));
@@ -616,7 +616,7 @@ static void rna_MeshColor_color3_get(PointerRNA *ptr, float *values)
 {
 	MCol *mcol = (MCol *)ptr->data;
 
-	values[3] = (&mcol[3].r)[0] / 255.0f;
+	values[3] = (&mcol[2].r)[3] / 255.0f;
 	values[2] = (&mcol[2].r)[0] / 255.0f;
 	values[1] = (&mcol[2].r)[1] / 255.0f;
 	values[0] = (&mcol[2].r)[2] / 255.0f;




More information about the Bf-blender-cvs mailing list