[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [18817] branches/blender2.5/blender/source /blender/editors/mesh: flip_editnormals is back, alt+3key

Shaul Kedem shaul_kedem at yahoo.com
Thu Feb 5 02:32:40 CET 2009


Revision: 18817
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=18817
Author:   shul
Date:     2009-02-05 02:32:37 +0100 (Thu, 05 Feb 2009)

Log Message:
-----------
flip_editnormals is back, alt+3key

Modified Paths:
--------------
    branches/blender2.5/blender/source/blender/editors/mesh/editmesh_lib.c
    branches/blender2.5/blender/source/blender/editors/mesh/editmesh_mods.c
    branches/blender2.5/blender/source/blender/editors/mesh/mesh_intern.h
    branches/blender2.5/blender/source/blender/editors/mesh/mesh_ops.c

Modified: branches/blender2.5/blender/source/blender/editors/mesh/editmesh_lib.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/mesh/editmesh_lib.c	2009-02-05 01:12:47 UTC (rev 18816)
+++ branches/blender2.5/blender/source/blender/editors/mesh/editmesh_lib.c	2009-02-05 01:32:37 UTC (rev 18817)
@@ -1895,43 +1895,8 @@
 }
 #endif
 
-void flipface(EditMesh *em, EditFace *efa)
-{
-	if(efa->v4) {
-		SWAP(EditVert *, efa->v2, efa->v4);
-		SWAP(EditEdge *, efa->e1, efa->e4);
-		SWAP(EditEdge *, efa->e2, efa->e3);
-		EM_data_interp_from_faces(em, efa, NULL, efa, 0, 3, 2, 1);
-	}
-	else {
-		SWAP(EditVert *, efa->v2, efa->v3);
-		SWAP(EditEdge *, efa->e1, efa->e3);
-		efa->e2->dir= 1-efa->e2->dir;
-		EM_data_interp_from_faces(em, efa, NULL, efa, 0, 2, 1, 3);
-	}
 
-	if(efa->v4) CalcNormFloat4(efa->v1->co, efa->v2->co, efa->v3->co, efa->v4->co, efa->n);
-	else CalcNormFloat(efa->v1->co, efa->v2->co, efa->v3->co, efa->n);
-}
 
-
-void flip_editnormals(EditMesh *em)
-{
-	EditFace *efa;
-	
-	efa= em->faces.first;
-	while(efa) {
-		if( efa->f & SELECT ){
-			flipface(em, efa);
-		}
-		efa= efa->next;
-	}
-	
-	/* update vertex normals too */
-	recalc_editnormals(em);
-	
-}
-
 /* does face centers too */
 void recalc_editnormals(EditMesh *em)
 {

Modified: branches/blender2.5/blender/source/blender/editors/mesh/editmesh_mods.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/mesh/editmesh_mods.c	2009-02-05 01:12:47 UTC (rev 18816)
+++ branches/blender2.5/blender/source/blender/editors/mesh/editmesh_mods.c	2009-02-05 01:32:37 UTC (rev 18817)
@@ -4731,3 +4731,57 @@
 	/* props */
 	RNA_def_float(ot->srna, "percent", 100.0f, 0.0f, 100.0f, "Percent", "DOC_BROKEN", 0.01f, 100.0f);
 }
+
+void flipface(EditMesh *em, EditFace *efa)
+{
+	if(efa->v4) {
+		SWAP(EditVert *, efa->v2, efa->v4);
+		SWAP(EditEdge *, efa->e1, efa->e4);
+		SWAP(EditEdge *, efa->e2, efa->e3);
+		EM_data_interp_from_faces(em, efa, NULL, efa, 0, 3, 2, 1);
+	}
+	else {
+		SWAP(EditVert *, efa->v2, efa->v3);
+		SWAP(EditEdge *, efa->e1, efa->e3);
+		efa->e2->dir= 1-efa->e2->dir;
+		EM_data_interp_from_faces(em, efa, NULL, efa, 0, 2, 1, 3);
+	}
+
+	if(efa->v4) CalcNormFloat4(efa->v1->co, efa->v2->co, efa->v3->co, efa->v4->co, efa->n);
+	else CalcNormFloat(efa->v1->co, efa->v2->co, efa->v3->co, efa->n);
+}
+
+
+static int flip_editnormals(bContext *C, wmOperator *op)
+{
+	Object *obedit= CTX_data_edit_object(C);
+	EditMesh *em= ((Mesh *)obedit->data)->edit_mesh;
+	EditFace *efa;
+	
+	efa= em->faces.first;
+	while(efa) {
+		if( efa->f & SELECT ){
+			flipface(em, efa);
+		}
+		efa= efa->next;
+	}
+	
+	/* update vertex normals too */
+	recalc_editnormals(em);
+
+	return OPERATOR_FINISHED;
+}
+
+void MESH_OT_flip_editnormals(wmOperatorType *ot)
+{
+	/* identifiers */
+	ot->name= "Flip Normals";
+	ot->idname= "MESH_OT_flip_editnormals";
+	
+	/* api callbacks */
+	ot->exec= flip_editnormals;
+	ot->poll= ED_operator_editmesh;
+	
+	/* flags */
+	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+}

Modified: branches/blender2.5/blender/source/blender/editors/mesh/mesh_intern.h
===================================================================
--- branches/blender2.5/blender/source/blender/editors/mesh/mesh_intern.h	2009-02-05 01:12:47 UTC (rev 18816)
+++ branches/blender2.5/blender/source/blender/editors/mesh/mesh_intern.h	2009-02-05 01:32:37 UTC (rev 18817)
@@ -196,6 +196,7 @@
 void MESH_OT_mark_seam(struct wmOperatorType *ot);
 void MESH_OT_mark_sharp(struct wmOperatorType *ot);
 void MESH_OT_smooth_vertex(struct wmOperatorType *ot);
+void MESH_OT_flip_editnormals(struct wmOperatorType *ot);
 
 extern EditEdge *findnearestedge(ViewContext *vc, int *dist);
 extern void EM_automerge(int update);

Modified: branches/blender2.5/blender/source/blender/editors/mesh/mesh_ops.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/mesh/mesh_ops.c	2009-02-05 01:12:47 UTC (rev 18816)
+++ branches/blender2.5/blender/source/blender/editors/mesh/mesh_ops.c	2009-02-05 01:32:37 UTC (rev 18817)
@@ -164,6 +164,7 @@
 	WM_operatortype_append(MESH_OT_mark_seam);
 	WM_operatortype_append(MESH_OT_mark_sharp);
 	WM_operatortype_append(MESH_OT_smooth_vertex);
+	WM_operatortype_append(MESH_OT_flip_editnormals);
 	
 }
 
@@ -210,6 +211,8 @@
 
 	WM_keymap_add_item(keymap, "MESH_OT_smooth_vertex", THREEKEY, KM_PRESS, KM_CTRL , 0);
 
+	WM_keymap_add_item(keymap, "MESH_OT_flip_editnormals", THREEKEY, KM_PRESS, KM_ALT , 0);
+
 	/* temp hotkeys! */
 	WM_keymap_add_item(keymap, "MESH_OT_similar_vertex_select", GKEY, KM_PRESS, KM_SHIFT, 0);
 	WM_keymap_add_item(keymap, "MESH_OT_similar_edge_select", GKEY, KM_PRESS, KM_SHIFT2|KM_CTRL, 0);





More information about the Bf-blender-cvs mailing list