[Bf-blender-cvs] [cd12b157562] greasepencil-object: Make Ruler works with Annotations not Grease Pencil object

Antonio Vazquez noreply at git.blender.org
Mon Jul 9 15:45:19 CEST 2018


Commit: cd12b157562d43baefc692ab3264a79761910c09
Author: Antonio Vazquez
Date:   Mon Jul 9 15:44:54 2018 +0200
Branches: greasepencil-object
https://developer.blender.org/rBcd12b157562d43baefc692ab3264a79761910c09

Make Ruler works with Annotations not Grease Pencil object

Now, the ruler is using the annotation datablock (scene) and not a object with materials

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

M	source/blender/editors/space_view3d/view3d_manipulator_ruler.c
M	source/blender/editors/space_view3d/view3d_ruler.c

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

diff --git a/source/blender/editors/space_view3d/view3d_manipulator_ruler.c b/source/blender/editors/space_view3d/view3d_manipulator_ruler.c
index 652b8ad5aa4..0d9efeb2de2 100644
--- a/source/blender/editors/space_view3d/view3d_manipulator_ruler.c
+++ b/source/blender/editors/space_view3d/view3d_manipulator_ruler.c
@@ -400,18 +400,19 @@ static bool view3d_ruler_to_gpencil(bContext *C, wmManipulatorGroup *mgroup)
 	bool changed = false;
 	float cur[3] = { 0 };
 
-	Object *gp_ob = ED_add_gpencil_object(C,scene, cur);
-	gpd = gp_ob->data;
+	if (scene->gpd == NULL) {
+		scene->gpd = BKE_gpencil_data_addnew(bmain, "Notes");
+	}
+	gpd = scene->gpd;
+
 	gpl = BLI_findstring(&gpd->layers, ruler_name, offsetof(bGPDlayer, info));
 	if (gpl == NULL) {
 		gpl = BKE_gpencil_layer_addnew(gpd, ruler_name, false);
+		copy_v4_v4(gpl->color, U.gpencil_new_layer_col);
 		gpl->thickness = 1;
 		gpl->flag |= GP_LAYER_HIDE;
 	}
 
-	/* try to get active color or create a new one */
-	Material *mat = BKE_gpencil_material_ensure(bmain, ob);
-
 	gpf = BKE_gpencil_layer_getframe(gpl, CFRA, true);
 	BKE_gpencil_free_strokes(gpf);
 
@@ -445,8 +446,6 @@ static bool view3d_ruler_to_gpencil(bContext *C, wmManipulatorGroup *mgroup)
 		}
 		gps->flag = GP_STROKE_3DSPACE;
 		gps->thickness = 3;
-		/* assign color to stroke */
-		gps->mat_nr = BKE_object_material_slot_find_index(ob, mat) - 1;
 
 		BLI_addtail(&gpf->strokes, gps);
 		changed = true;
diff --git a/source/blender/editors/space_view3d/view3d_ruler.c b/source/blender/editors/space_view3d/view3d_ruler.c
index 51351acf4fc..c661782a4d6 100644
--- a/source/blender/editors/space_view3d/view3d_ruler.c
+++ b/source/blender/editors/space_view3d/view3d_ruler.c
@@ -315,18 +315,19 @@ static bool view3d_ruler_to_gpencil(bContext *C, RulerInfo *ruler_info)
 
 	/* FIXME: This needs to be reviewed. Should it keep being done like this? */
 	float cur[3] = { 0 };
-	Object *gp_ob = ED_add_gpencil_object(C, scene, cur);
-	bGPdata *gpd = gp_ob->data;
+	if (scene->gpd == NULL) {
+		scene->gpd = BKE_gpencil_data_addnew(bmain, "Notes");
+	}
+	bGPdata *gpd = scene->gpd;
+
 	gpl = BLI_findstring(&gpd->layers, ruler_name, offsetof(bGPDlayer, info));
 	if (gpl == NULL) {
 		gpl = BKE_gpencil_layer_addnew(gpd, ruler_name, false);
+		copy_v4_v4(gpl->color, U.gpencil_new_layer_col);
 		gpl->thickness = 1;
 		gpl->flag |= GP_LAYER_HIDE;
 	}
 
-	/* try to get active color or create a new one */
-	Material *mat = BKE_gpencil_material_ensure(bmain, ob);
-
 	gpf = BKE_gpencil_layer_getframe(gpl, CFRA, true);
 	BKE_gpencil_free_strokes(gpf);
 
@@ -360,8 +361,6 @@ static bool view3d_ruler_to_gpencil(bContext *C, RulerInfo *ruler_info)
 		}
 		gps->flag = GP_STROKE_3DSPACE;
 		gps->thickness = 3;
-		/* assign color to stroke */
-		gps->mat_nr = BKE_object_material_slot_find_index(ob, mat) - 1;
 
 		BLI_addtail(&gpf->strokes, gps);
 		changed = true;



More information about the Bf-blender-cvs mailing list