[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