[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [18213] branches/blender2.5/blender/source /blender: 2.5

Ton Roosendaal ton at blender.org
Thu Jan 1 14:15:36 CET 2009


Revision: 18213
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=18213
Author:   ton
Date:     2009-01-01 14:15:35 +0100 (Thu, 01 Jan 2009)

Log Message:
-----------
2.5

- Edit mode Mesh undo/redo back
  (undo for editmodes needed recode, todo for curve/lattice/etc)
- Added border select for edit mesh
- Added Akey (de)select all for edit mesh
- Added notifiers for mode changes.

This is also the first trial to dynamically add/remove
keymap handlers, based on modes. For that reason the Object
keymap was split in 2, modal and non-modal. On TABkey, the
view3d listener removes and adds maps.

The view3d keymap still handles generic mouse/border selection.
Internally it will verify modes.

The modes are not  re-implemented still... have to move this
to scene context.

Modified Paths:
--------------
    branches/blender2.5/blender/source/blender/editors/include/ED_mesh.h
    branches/blender2.5/blender/source/blender/editors/include/ED_screen.h
    branches/blender2.5/blender/source/blender/editors/include/ED_util.h
    branches/blender2.5/blender/source/blender/editors/mesh/Makefile
    branches/blender2.5/blender/source/blender/editors/mesh/editface.c
    branches/blender2.5/blender/source/blender/editors/mesh/editmesh.c
    branches/blender2.5/blender/source/blender/editors/mesh/editmesh_add.c
    branches/blender2.5/blender/source/blender/editors/mesh/editmesh_lib.c
    branches/blender2.5/blender/source/blender/editors/mesh/editmesh_loop.c
    branches/blender2.5/blender/source/blender/editors/mesh/editmesh_mods.c
    branches/blender2.5/blender/source/blender/editors/mesh/editmesh_tools.c
    branches/blender2.5/blender/source/blender/editors/mesh/meshtools.c
    branches/blender2.5/blender/source/blender/editors/object/object_edit.c
    branches/blender2.5/blender/source/blender/editors/object/object_ops.c
    branches/blender2.5/blender/source/blender/editors/screen/screen_ops.c
    branches/blender2.5/blender/source/blender/editors/space_api/spacetypes.c
    branches/blender2.5/blender/source/blender/editors/space_outliner/space_outliner.c
    branches/blender2.5/blender/source/blender/editors/space_view3d/space_view3d.c
    branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_select.c
    branches/blender2.5/blender/source/blender/editors/util/ed_util.c
    branches/blender2.5/blender/source/blender/editors/util/editmode_undo.c
    branches/blender2.5/blender/source/blender/editors/util/undo.c
    branches/blender2.5/blender/source/blender/windowmanager/WM_types.h
    branches/blender2.5/blender/source/blender/windowmanager/intern/wm_event_system.c
    branches/blender2.5/blender/source/blender/windowmanager/intern/wm_files.c
    branches/blender2.5/blender/source/blender/windowmanager/intern/wm_init_exit.c

Added Paths:
-----------
    branches/blender2.5/blender/source/blender/editors/mesh/mesh_intern.h
    branches/blender2.5/blender/source/blender/editors/mesh/mesh_ops.c
    branches/blender2.5/blender/source/blender/editors/util/util_intern.h

Removed Paths:
-------------
    branches/blender2.5/blender/source/blender/editors/mesh/editmesh.h

Modified: branches/blender2.5/blender/source/blender/editors/include/ED_mesh.h
===================================================================
--- branches/blender2.5/blender/source/blender/editors/include/ED_mesh.h	2009-01-01 10:49:53 UTC (rev 18212)
+++ branches/blender2.5/blender/source/blender/editors/include/ED_mesh.h	2009-01-01 13:15:35 UTC (rev 18213)
@@ -31,7 +31,12 @@
 struct View3D;
 struct ARegion;
 struct EditMesh;
+struct EditVert;
+struct EditEdge;
+struct EditFace;
 struct bContext;
+struct wmWindowManager;
+struct EditSelection;
 
 // edge and face flag both
 #define EM_FGON		2
@@ -67,39 +72,48 @@
 
 /* meshtools.c */
 
-intptr_t	mesh_octree_table(Object *ob, EditMesh *em, float *co, char mode);
-EditVert   *editmesh_get_x_mirror_vert(Object *ob, EditMesh *em, float *co);
+intptr_t	mesh_octree_table(Object *ob, struct EditMesh *em, float *co, char mode);
+struct EditVert   *editmesh_get_x_mirror_vert(Object *ob, struct EditMesh *em, float *co);
 
+/* mesh_ops.c */
+void		ED_operatortypes_mesh(void);
+void		ED_keymap_mesh(struct wmWindowManager *wm);
+
+
 /* editmesh.c */
+void		ED_spacetypes_init(void);
+void		ED_keymap_mesh(struct wmWindowManager *wm);
+
 void		make_editMesh(Scene *scene, Object *ob);
 void		load_editMesh(Scene *scene, Object *ob);
 void		remake_editMesh(Scene *scene, Object *ob);
-void		free_editMesh(EditMesh *em);
+void		free_editMesh(struct EditMesh *em);
 
 
 void		EM_init_index_arrays(struct EditMesh *em, int forVert, int forEdge, int forFace);
 void		EM_free_index_arrays(void);
-EditVert	*EM_get_vert_for_index(int index);
-EditEdge	*EM_get_edge_for_index(int index);
-EditFace	*EM_get_face_for_index(int index);
+struct EditVert	*EM_get_vert_for_index(int index);
+struct EditEdge	*EM_get_edge_for_index(int index);
+struct EditFace	*EM_get_face_for_index(int index);
 int			EM_texFaceCheck(struct EditMesh *em);
 int			EM_vertColorCheck(struct EditMesh *em);
-void		undo_push_mesh(char *name);
 
+void		undo_push_mesh(struct bContext *C, char *name);
 
+
 /* editmesh_lib.c */
 
-EditFace	*EM_get_actFace(struct EditMesh *em, int sloppy);
+struct EditFace	*EM_get_actFace(struct EditMesh *em, int sloppy);
 
-void		EM_select_edge(EditEdge *eed, int sel);
-void		EM_select_face_fgon(struct EditMesh *em, EditFace *efa, int val);
+void		EM_select_edge(struct EditEdge *eed, int sel);
+void		EM_select_face_fgon(struct EditMesh *em, struct EditFace *efa, int val);
 void		EM_selectmode_flush(struct EditMesh *em);
 void		EM_deselect_flush(struct EditMesh *em);
 			
 			/* exported to transform */
-int			EM_get_actSelection(EditMesh *em, EditSelection *ese);
-void		EM_editselection_normal(float *normal, EditSelection *ese);
-void		EM_editselection_plane(float *plane, EditSelection *ese);
+int			EM_get_actSelection(struct EditMesh *em, struct EditSelection *ese);
+void		EM_editselection_normal(float *normal, struct EditSelection *ese);
+void		EM_editselection_plane(float *plane, struct EditSelection *ese);
 
 
 /* editmesh_mods.c */

Modified: branches/blender2.5/blender/source/blender/editors/include/ED_screen.h
===================================================================
--- branches/blender2.5/blender/source/blender/editors/include/ED_screen.h	2009-01-01 10:49:53 UTC (rev 18212)
+++ branches/blender2.5/blender/source/blender/editors/include/ED_screen.h	2009-01-01 13:15:35 UTC (rev 18213)
@@ -94,6 +94,9 @@
 int		ED_operator_ipo_active(struct bContext *C);
 int		ED_operator_sequencer_active(struct bContext *C);
 
+int		ED_operator_object_active(struct bContext *C);
+int		ED_operator_editmesh(struct bContext *C);
+int		ED_operator_editcurve(struct bContext *C);
 
 /* default keymaps, bitflags */
 #define ED_KEYMAP_UI		1

Modified: branches/blender2.5/blender/source/blender/editors/include/ED_util.h
===================================================================
--- branches/blender2.5/blender/source/blender/editors/include/ED_util.h	2009-01-01 10:49:53 UTC (rev 18212)
+++ branches/blender2.5/blender/source/blender/editors/include/ED_util.h	2009-01-01 13:15:35 UTC (rev 18213)
@@ -46,14 +46,19 @@
 void	ED_OT_redo				(struct wmOperatorType *ot);
 
 /* undo_editmode.c */
-void	undo_editmode_push			(char *name, void (*freedata)(void *), 
-									 void (*to_editmode)(void *),  void *(*from_editmode)(void),
-									 int (*validate_undo)(void *));
+void undo_editmode_push(struct bContext *C, char *name, 
+						void * (*getdata)(struct bContext *C),
+						void (*freedata)(void *), 
+						void (*to_editmode)(void *, void *),  
+						void *(*from_editmode)(void *),
+						int (*validate_undo)(void *, void *));
+
+						
 void	*undo_editmode_get_prev		(struct Object *ob);
 struct uiBlock *editmode_undohistorymenu(struct bContext *C, struct uiMenuBlockHandle *handle, void *arg_unused);
-void	undo_editmode_menu			(void);
+void	undo_editmode_menu			(struct bContext *C);
 void	undo_editmode_clear			(void);
-void	undo_editmode_step			(int step);
+void	undo_editmode_step			(struct bContext *C, int step);
 
 
 /* ************** XXX OLD CRUFT WARNING ************* */

Modified: branches/blender2.5/blender/source/blender/editors/mesh/Makefile
===================================================================
--- branches/blender2.5/blender/source/blender/editors/mesh/Makefile	2009-01-01 10:49:53 UTC (rev 18212)
+++ branches/blender2.5/blender/source/blender/editors/mesh/Makefile	2009-01-01 13:15:35 UTC (rev 18213)
@@ -47,6 +47,7 @@
 CPPFLAGS += -I../../blenloader
 CPPFLAGS += -I../../blenlib
 CPPFLAGS += -I../../makesdna
+CPPFLAGS += -I../../makesrna
 CPPFLAGS += -I../../imbuf
 CPPFLAGS += -I../../gpu
 CPPFLAGS += -I../../render/extern/include

Modified: branches/blender2.5/blender/source/blender/editors/mesh/editface.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/mesh/editface.c	2009-01-01 10:49:53 UTC (rev 18212)
+++ branches/blender2.5/blender/source/blender/editors/mesh/editface.c	2009-01-01 13:15:35 UTC (rev 18213)
@@ -79,7 +79,7 @@
 #include "WM_types.h"
 
 /* own include */
-#include "editmesh.h"
+#include "mesh_intern.h"
 
 
 /* Pupmenu codes: */

Modified: branches/blender2.5/blender/source/blender/editors/mesh/editmesh.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/mesh/editmesh.c	2009-01-01 10:49:53 UTC (rev 18212)
+++ branches/blender2.5/blender/source/blender/editors/mesh/editmesh.c	2009-01-01 13:15:35 UTC (rev 18213)
@@ -81,7 +81,7 @@
 #include "ED_util.h"
 
 /* own include */
-#include "editmesh.h"
+#include "mesh_intern.h"
 
 /* 
 editmesh.c:
@@ -1877,10 +1877,10 @@
 	MEM_freeN(um);
 }
 
-static void *editMesh_to_undoMesh(void)
+static void *editMesh_to_undoMesh(void *emv)
 {
-	EditMesh *em= NULL; // XXX
-	Scene *scene= NULL;
+	EditMesh *em= (EditMesh *)emv;
+//	Scene *scene= NULL;
 	UndoMesh *um;
 	EditVert *eve;
 	EditEdge *eed;
@@ -1891,7 +1891,7 @@
 	EditFaceC *efac=NULL;
 	EditSelectionC *esec=NULL;
 	int a;
-	return NULL;	// XXX
+
 	um= MEM_callocN(sizeof(UndoMesh), "undomesh");
 	
 	um->selectmode = em->selectmode;
@@ -1972,7 +1972,7 @@
 	}
 
 // XXX	um->retopo_paint_data= retopo_paint_data_copy(em->retopo_paint_data);
-	um->retopo_mode= scene->toolsettings->retopo_mode;
+//	um->retopo_mode= scene->toolsettings->retopo_mode;
 	
 	{
 		Multires *mr= get_mesh(G.obedit)->mr;
@@ -1996,10 +1996,10 @@
 	return um;
 }
 
-static void undoMesh_to_editMesh(void *umv)
+static void undoMesh_to_editMesh(void *umv, void *emv)
 {
-	EditMesh *em= NULL; // XXX
-	UndoMesh *um= (UndoMesh*)umv;
+	EditMesh *em= (EditMesh *)emv;
+	UndoMesh *um= (UndoMesh *)umv;
 	EditVert *eve, **evar=NULL;
 	EditEdge *eed;
 	EditFace *efa;
@@ -2009,7 +2009,7 @@
 	EditFaceC *efac;
 	EditSelectionC *esec;
 	int a=0;
-	return; // XXX
+
 	em->selectmode = um->selectmode;
 	
 	free_editMesh(em);
@@ -2110,11 +2110,20 @@
 	}
 }
 
+static void *getEditMesh(bContext *C)
+{
+	Object *obedit= CTX_data_edit_object(C);
+	if(obedit) {
+		Mesh *me= obedit->data;
+		return me->edit_mesh;
+	}
+	return NULL;
+}
 
 /* and this is all the undo system needs to know */
-void undo_push_mesh(char *name)
+void undo_push_mesh(bContext *C, char *name)
 {
-	undo_editmode_push(name, free_undoMesh, undoMesh_to_editMesh, editMesh_to_undoMesh, NULL);
+	undo_editmode_push(C, name, getEditMesh, free_undoMesh, undoMesh_to_editMesh, editMesh_to_undoMesh, NULL);
 }
 
 

Deleted: branches/blender2.5/blender/source/blender/editors/mesh/editmesh.h
===================================================================
--- branches/blender2.5/blender/source/blender/editors/mesh/editmesh.h	2009-01-01 10:49:53 UTC (rev 18212)
+++ branches/blender2.5/blender/source/blender/editors/mesh/editmesh.h	2009-01-01 13:15:35 UTC (rev 18213)
@@ -1,199 +0,0 @@
-/**
- * $Id: 
- *
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-/* Internal for editmesh_xxxx.c functions */
-
-#ifndef EDITMESH_H
-#define EDITMESH_H
-
-struct bContext;
-
-#define TEST_EDITMESH	if(G.obedit==0) return; /* layer test XXX */
-
-#define UVCOPY(t, s) memcpy(t, s, 2 * sizeof(float));
-
-/* ******************** editface.c */
-
-int edgetag_context_check(Scene *scene, EditEdge *eed);
-void edgetag_context_set(Scene *scene, EditEdge *eed, int val);
-int edgetag_shortest_path(Scene *scene, EditMesh *em, EditEdge *source, EditEdge *target);
-
-/* ******************* meshtools.c */
-
-int mesh_get_x_mirror_vert(Object *ob, int index);
-
-/* XXX move to uv editor? */
-enum {
-	B_UVAUTO_REDRAW = 3301,
-	B_UVAUTO_SPHERE,
-	B_UVAUTO_CYLINDER,

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list