[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [25654] trunk/blender/source/blender: grease pencil stroke depth option, rather then snapping to geometry you can draw over existing grease pencil lines .

Campbell Barton ideasman42 at gmail.com
Fri Jan 1 17:46:27 CET 2010


Revision: 25654
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=25654
Author:   campbellbarton
Date:     2010-01-01 17:46:27 +0100 (Fri, 01 Jan 2010)

Log Message:
-----------
grease pencil stroke depth option, rather then snapping to geometry you can draw over existing grease pencil lines. makes it easuer to draw 3D shapes with grease pencil.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/gpencil/gpencil_buttons.c
    trunk/blender/source/blender/editors/gpencil/gpencil_paint.c
    trunk/blender/source/blender/editors/include/ED_view3d.h
    trunk/blender/source/blender/editors/space_view3d/view3d_draw.c
    trunk/blender/source/blender/editors/space_view3d/view3d_edit.c
    trunk/blender/source/blender/editors/space_view3d/view3d_intern.h
    trunk/blender/source/blender/makesdna/DNA_gpencil_types.h
    trunk/blender/source/blender/makesrna/intern/rna_gpencil.c

Modified: trunk/blender/source/blender/editors/gpencil/gpencil_buttons.c
===================================================================
--- trunk/blender/source/blender/editors/gpencil/gpencil_buttons.c	2010-01-01 15:57:17 UTC (rev 25653)
+++ trunk/blender/source/blender/editors/gpencil/gpencil_buttons.c	2010-01-01 16:46:27 UTC (rev 25654)
@@ -254,16 +254,18 @@
 	}
 	
 	/* draw gpd drawing settings first ------------------------------------- */
-	col= uiLayoutColumn(layout, 0);
+	col= uiLayoutColumn(layout, 1);
 		/* label */
 		uiItemL(col, "Drawing Settings:", 0);
 		
 		/* 'stick to view' option */
 		//uiItemR(col, NULL, 0, &gpd_ptr, "draw_mode", 0);
-		row= uiLayoutRow(layout, 1);
+		row= uiLayoutRow(col, 1);
 		uiItemEnumR_string(row, NULL, 0, &gpd_ptr, "draw_mode", "VIEW");
 		uiItemEnumR_string(row, NULL, 0, &gpd_ptr, "draw_mode", "CURSOR");
-		uiItemEnumR_string(row, NULL, 0, &gpd_ptr, "draw_mode", "DEPTH");
+		row= uiLayoutRow(col, 1);
+		uiItemEnumR_string(row, NULL, 0, &gpd_ptr, "draw_mode", "SURFACE");
+		uiItemEnumR_string(row, NULL, 0, &gpd_ptr, "draw_mode", "STROKE");
 }	
 
 

Modified: trunk/blender/source/blender/editors/gpencil/gpencil_paint.c
===================================================================
--- trunk/blender/source/blender/editors/gpencil/gpencil_paint.c	2010-01-01 15:57:17 UTC (rev 25653)
+++ trunk/blender/source/blender/editors/gpencil/gpencil_paint.c	2010-01-01 16:46:27 UTC (rev 25654)
@@ -155,7 +155,7 @@
 static int gpencil_project_check (tGPsdata *p)
 {
 	bGPdata *gpd= p->gpd;
-	return ((gpd->sbuffer_sflag & GP_STROKE_3DSPACE) && (p->gpd->flag & GP_DATA_VIEWDEPTH)) ? 1:0;
+	return ((gpd->sbuffer_sflag & GP_STROKE_3DSPACE) && (p->gpd->flag & (GP_DATA_DEPTH_VIEW | GP_DATA_DEPTH_STROKE))) ? 1:0;
 }
 
 /* ******************************************* */
@@ -1165,7 +1165,7 @@
 		
 		/* need to restore the original projection settings before packing up */
 		view3d_operator_needs_opengl(C);
-		view_autodist_init(p->scene, p->ar, v3d);
+		view_autodist_init(p->scene, p->ar, v3d, (p->gpd->flag & GP_DATA_DEPTH_STROKE) ? 1:0);
 	}
 
 	gp_paint_cleanup(p);

Modified: trunk/blender/source/blender/editors/include/ED_view3d.h
===================================================================
--- trunk/blender/source/blender/editors/include/ED_view3d.h	2010-01-01 15:57:17 UTC (rev 25653)
+++ trunk/blender/source/blender/editors/include/ED_view3d.h	2010-01-01 16:46:27 UTC (rev 25654)
@@ -127,7 +127,7 @@
 int view_autodist(struct Scene *scene, struct ARegion *ar, struct View3D *v3d, short *mval, float mouse_worldloc[3]);
 
 /* only draw so view_autodist_simple can be called many times after */
-int view_autodist_init(struct Scene *scene, struct ARegion *ar, struct View3D *v3d);
+int view_autodist_init(struct Scene *scene, struct ARegion *ar, struct View3D *v3d, int mode);
 int view_autodist_simple(struct ARegion *ar, short *mval, float mouse_worldloc[3], float *force_depth);
 int view_autodist_depth(struct ARegion *ar, short *mval, float *depth);
 

Modified: trunk/blender/source/blender/editors/space_view3d/view3d_draw.c
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/view3d_draw.c	2010-01-01 15:57:17 UTC (rev 25653)
+++ trunk/blender/source/blender/editors/space_view3d/view3d_draw.c	2010-01-01 16:46:27 UTC (rev 25654)
@@ -1643,6 +1643,29 @@
 	}
 }
 
+void draw_depth_gpencil(Scene *scene, ARegion *ar, View3D *v3d)
+{
+	RegionView3D *rv3d= ar->regiondata;
+	Scene *sce;
+
+	setwinmatrixview3d(ar, v3d, NULL);	/* 0= no pick rect */
+	setviewmatrixview3d(scene, v3d, rv3d);	/* note: calls where_is_object for camera... */
+
+	mul_m4_m4m4(rv3d->persmat, rv3d->viewmat, rv3d->winmat);
+	invert_m4_m4(rv3d->persinv, rv3d->persmat);
+	invert_m4_m4(rv3d->viewinv, rv3d->viewmat);
+
+	glClear(GL_DEPTH_BUFFER_BIT);
+
+	wmLoadMatrix(rv3d->viewmat);
+
+	v3d->zbuf= TRUE;
+	glEnable(GL_DEPTH_TEST);
+
+	draw_gpencil_3dview_ext(scene, ar, 1);
+	return;
+}
+
 void draw_depth(Scene *scene, ARegion *ar, View3D *v3d, int (* func)(void *))
 {
 	RegionView3D *rv3d= ar->regiondata;

Modified: trunk/blender/source/blender/editors/space_view3d/view3d_edit.c
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/view3d_edit.c	2010-01-01 15:57:17 UTC (rev 25653)
+++ trunk/blender/source/blender/editors/space_view3d/view3d_edit.c	2010-01-01 16:46:27 UTC (rev 25654)
@@ -2265,12 +2265,19 @@
 	return 1;
 }
 
-int view_autodist_init(Scene *scene, ARegion *ar, View3D *v3d) //, float *autodist )
+int view_autodist_init(Scene *scene, ARegion *ar, View3D *v3d, int mode) //, float *autodist )
 {
 	RegionView3D *rv3d= ar->regiondata;
 
 	/* Get Z Depths, needed for perspective, nice for ortho */
-	draw_depth(scene, ar, v3d, NULL);
+	switch(mode) {
+	case 0:
+		draw_depth(scene, ar, v3d, NULL);
+		break;
+	case 1:
+		draw_depth_gpencil(scene, ar, v3d);
+		break;
+	}
 
 	/* force updating */
 	if (rv3d->depths) {

Modified: trunk/blender/source/blender/editors/space_view3d/view3d_intern.h
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/view3d_intern.h	2010-01-01 15:57:17 UTC (rev 25653)
+++ trunk/blender/source/blender/editors/space_view3d/view3d_intern.h	2010-01-01 16:46:27 UTC (rev 25654)
@@ -116,6 +116,7 @@
 /* view3d_draw.c */
 void view3d_main_area_draw(const struct bContext *C, struct ARegion *ar);
 void draw_depth(Scene *scene, struct ARegion *ar, View3D *v3d, int (* func)(void *));
+void draw_depth_gpencil(Scene *scene, ARegion *ar, View3D *v3d);
 void view3d_clr_clipping(void);
 void view3d_set_clipping(RegionView3D *rv3d);
 void add_view3d_after(View3D *v3d, Base *base, int type, int flag);

Modified: trunk/blender/source/blender/makesdna/DNA_gpencil_types.h
===================================================================
--- trunk/blender/source/blender/makesdna/DNA_gpencil_types.h	2010-01-01 15:57:17 UTC (rev 25653)
+++ trunk/blender/source/blender/makesdna/DNA_gpencil_types.h	2010-01-01 16:46:27 UTC (rev 25654)
@@ -147,6 +147,7 @@
 	/* new strokes are added in viewport space */
 #define GP_DATA_VIEWALIGN	(1<<4)
 	/* Project into the screens Z values */
-#define GP_DATA_VIEWDEPTH	(1<<5)
+#define GP_DATA_DEPTH_VIEW	(1<<5)
+#define GP_DATA_DEPTH_STROKE (1<<6)
 
 #endif /*  DNA_GPENCIL_TYPES_H */

Modified: trunk/blender/source/blender/makesrna/intern/rna_gpencil.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_gpencil.c	2010-01-01 15:57:17 UTC (rev 25653)
+++ trunk/blender/source/blender/makesrna/intern/rna_gpencil.c	2010-01-01 16:46:27 UTC (rev 25654)
@@ -223,7 +223,8 @@
 	static EnumPropertyItem draw_mode_items[] = {
 		{GP_DATA_VIEWALIGN, "CURSOR", 0, "Cursor", ""},
 		{0, "VIEW", 0, "View", ""}, /* weired, GP_DATA_VIEWALIGN is inverted */
-		{GP_DATA_VIEWALIGN|GP_DATA_VIEWDEPTH, "DEPTH", 0, "Depth", ""},
+		{GP_DATA_VIEWALIGN|GP_DATA_DEPTH_VIEW, "SURFACE", 0, "Surface", ""},
+		{GP_DATA_VIEWALIGN|GP_DATA_DEPTH_STROKE, "STROKE", 0, "Stroke", ""},
 		{0, NULL, 0, NULL, NULL}};
 
 	srna= RNA_def_struct(brna, "GreasePencil", "ID");





More information about the Bf-blender-cvs mailing list