[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [58442] trunk/blender: hidden wireframe option for mesh editmode, important for retopology mode ( can be used with xray).

Campbell Barton ideasman42 at gmail.com
Sat Jul 20 05:51:50 CEST 2013


Revision: 58442
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=58442
Author:   campbellbarton
Date:     2013-07-20 03:51:49 +0000 (Sat, 20 Jul 2013)
Log Message:
-----------
hidden wireframe option for mesh editmode, important for retopology mode (can be used with xray).

Modified Paths:
--------------
    trunk/blender/release/scripts/startup/bl_ui/space_view3d.py
    trunk/blender/source/blender/editors/space_view3d/drawobject.c
    trunk/blender/source/blender/editors/util/CMakeLists.txt
    trunk/blender/source/blender/makesdna/DNA_view3d_types.h
    trunk/blender/source/blender/makesrna/intern/rna_space.c

Modified: trunk/blender/release/scripts/startup/bl_ui/space_view3d.py
===================================================================
--- trunk/blender/release/scripts/startup/bl_ui/space_view3d.py	2013-07-20 03:15:57 UTC (rev 58441)
+++ trunk/blender/release/scripts/startup/bl_ui/space_view3d.py	2013-07-20 03:51:49 UTC (rev 58442)
@@ -2580,6 +2580,8 @@
             if view.use_matcap:
                 col.template_icon_view(view, "matcap_icon")
         col.prop(view, "show_backface_culling")
+        if ob.mode == 'EDIT' and view.viewport_shade not in {'BOUNDBOX', 'WIREFRAME'}:
+            col.prop(view, "show_occlude_wire")
 
         layout.separator()
 

Modified: trunk/blender/source/blender/editors/space_view3d/drawobject.c
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/drawobject.c	2013-07-20 03:15:57 UTC (rev 58441)
+++ trunk/blender/source/blender/editors/space_view3d/drawobject.c	2013-07-20 03:51:49 UTC (rev 58442)
@@ -3092,6 +3092,7 @@
 	BMFace *efa_act = BM_mesh_active_face_get(em->bm, false, true); /* annoying but active faces is stored differently */
 	BMEdge *eed_act = NULL;
 	BMVert *eve_act = NULL;
+	bool use_occlude_wire = (v3d->flag2 & V3D_OCCLUDE_WIRE) && (dt > OB_WIRE);
 	
 	// if (cageDM)  BLI_assert(!(cageDM->dirty & DM_DIRTY_NORMALS));
 	if (finalDM) BLI_assert(!(finalDM->dirty & DM_DIRTY_NORMALS));
@@ -3130,7 +3131,13 @@
 		}
 	}
 	else if (dt > OB_WIRE) {
-		if (check_object_draw_texture(scene, v3d, dt)) {
+		if (use_occlude_wire) {
+			glColorMask(GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE);
+			finalDM->drawMappedFaces(finalDM, draw_em_fancy__setFaceOpts,
+			                         GPU_enable_material, NULL, me->edit_btmesh, 0);
+			glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE);
+		}
+		else if (check_object_draw_texture(scene, v3d, dt)) {
 			if (draw_glsl_material(scene, ob, v3d, dt)) {
 				glFrontFace((ob->transflag & OB_NEG_SCALE) ? GL_CW : GL_CCW);
 
@@ -3171,8 +3178,8 @@
 			finalDM->drawEdges(finalDM, 1, 0);
 		}
 	}
-	
-	if (me->drawflag & ME_DRAWFACES) {  /* transp faces */
+
+	if ((me->drawflag & ME_DRAWFACES) && (use_occlude_wire == false)) {  /* transp faces */
 		unsigned char col1[4], col2[4], col3[4];
 #ifdef WITH_FREESTYLE
 		unsigned char col4[4];
@@ -3311,6 +3318,11 @@
 		bglPolygonOffset(rv3d->dist, 0.0);
 		GPU_disable_material();
 	}
+#if 0  /* currently not needed */
+	else if (use_occlude_wire) {
+		bglPolygonOffset(rv3d->dist, 0.0);
+	}
+#endif
 }
 
 /* Mesh drawing routines */

Modified: trunk/blender/source/blender/editors/util/CMakeLists.txt
===================================================================
--- trunk/blender/source/blender/editors/util/CMakeLists.txt	2013-07-20 03:15:57 UTC (rev 58441)
+++ trunk/blender/source/blender/editors/util/CMakeLists.txt	2013-07-20 03:51:49 UTC (rev 58442)
@@ -47,6 +47,7 @@
 	../include/BIF_glutil.h
 	../include/ED_anim_api.h
 	../include/ED_armature.h
+	../include/ED_buttons.h
 	../include/ED_clip.h
 	../include/ED_curve.h
 	../include/ED_datafiles.h

Modified: trunk/blender/source/blender/makesdna/DNA_view3d_types.h
===================================================================
--- trunk/blender/source/blender/makesdna/DNA_view3d_types.h	2013-07-20 03:15:57 UTC (rev 58441)
+++ trunk/blender/source/blender/makesdna/DNA_view3d_types.h	2013-07-20 03:51:49 UTC (rev 58442)
@@ -279,7 +279,9 @@
 #define V3D_RENDER_BORDER		2048
 #define V3D_SOLID_MATCAP		4096	/* user flag */
 #define V3D_SHOW_SOLID_MATCAP	8192	/* runtime flag */
+#define V3D_OCCLUDE_WIRE		16384
 
+
 /* View3D->around */
 #define V3D_CENTER		 0
 #define V3D_CENTROID	 3

Modified: trunk/blender/source/blender/makesrna/intern/rna_space.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_space.c	2013-07-20 03:15:57 UTC (rev 58441)
+++ trunk/blender/source/blender/makesrna/intern/rna_space.c	2013-07-20 03:51:49 UTC (rev 58442)
@@ -1921,6 +1921,11 @@
 	RNA_def_property_ui_text(prop, "Backface Culling", "Use back face culling to hide the back side of faces");
 	RNA_def_property_update(prop, NC_SPACE | ND_SPACE_VIEW3D, NULL);
 
+	prop = RNA_def_property(srna, "show_occlude_wire", PROP_BOOLEAN, PROP_NONE);
+	RNA_def_property_boolean_sdna(prop, NULL, "flag2", V3D_OCCLUDE_WIRE);
+	RNA_def_property_ui_text(prop, "Hidden Wire", "Use hidden wireframe display");
+	RNA_def_property_update(prop, NC_SPACE | ND_SPACE_VIEW3D, NULL);
+
 	prop = RNA_def_property(srna, "lock_camera", PROP_BOOLEAN, PROP_NONE);
 	RNA_def_property_boolean_sdna(prop, NULL, "flag2", V3D_LOCK_CAMERA);
 	RNA_def_property_ui_text(prop, "Lock Camera to View", "Enable view navigation within the camera view");




More information about the Bf-blender-cvs mailing list