Page Menu
Home
Search
Configure Global Search
Log In
Files
F4359
cyclesel4.txt
Public
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Authored By
Juho Vepsalainen (bebraw)
Nov 13 2013, 1:15 PM
Size
6 KB
Subscribers
None
cyclesel4.txt
View Options
Index: source/blender/include/BIF_editmesh.h
===================================================================
RCS file: /cvsroot/bf-blender/blender/source/blender/include/BIF_editmesh.h,v
retrieving revision 1.67
diff -u -p -u -r1.67 BIF_editmesh.h
--- source/blender/include/BIF_editmesh.h 8 Jun 2006 05:41:57 -0000 1.67
+++ source/blender/include/BIF_editmesh.h 24 Aug 2006 06:25:13 -0000
@@ -118,9 +118,9 @@ extern int EM_init_backbuf_circle(short
extern int EM_check_backbuf(unsigned int index);
extern void EM_free_backbuf(void);
+extern void EM_selectmode_cycle(unsigned int direction);
extern void EM_selectmode_menu(void);
-
extern void vertexnoise(void);
extern void vertexsmooth(void);
extern void righthandfaces(int select);
@@ -225,4 +225,3 @@ void pathselect(void);
void loop_to_region(void);
void region_to_loop(void);
#endif
-
Index: source/blender/makesdna/DNA_scene_types.h
===================================================================
RCS file: /cvsroot/bf-blender/blender/source/blender/makesdna/DNA_scene_types.h,v
retrieving revision 1.76
diff -u -p -u -r1.76 DNA_scene_types.h
--- source/blender/makesdna/DNA_scene_types.h 28 Jul 2006 00:56:34 -0000 1.76
+++ source/blender/makesdna/DNA_scene_types.h 24 Aug 2006 06:25:13 -0000
@@ -514,9 +514,13 @@ typedef struct Scene {
#define SCE_ADDSCENAME 1
/* sce->selectmode */
-#define SCE_SELECT_VERTEX 1
-#define SCE_SELECT_EDGE 2
-#define SCE_SELECT_FACE 4
+#define SCE_SELECT_VERTEX 1
+#define SCE_SELECT_EDGE 2
+#define SCE_SELECT_VERTEX_AND_EDGE 3
+#define SCE_SELECT_FACE 4
+#define SCE_SELECT_VERTEX_AND_FACE 5
+#define SCE_SELECT_EDGE_AND_FACE 6
+#define SCE_SELECT_VERTEX_AND_EDGE_AND_FACE 7
/* sce->recalc (now in use by previewrender) */
#define SCE_PRV_CHANGED 1
@@ -553,4 +557,3 @@ typedef struct Scene {
#endif
#endif
-
Index: source/blender/makesdna/DNA_userdef_types.h
===================================================================
RCS file: /cvsroot/bf-blender/blender/source/blender/makesdna/DNA_userdef_types.h,v
retrieving revision 1.56
diff -u -p -u -r1.56 DNA_userdef_types.h
--- source/blender/makesdna/DNA_userdef_types.h 8 Jun 2006 19:05:58 -0000 1.56
+++ source/blender/makesdna/DNA_userdef_types.h 24 Aug 2006 06:25:13 -0000
@@ -223,6 +223,7 @@ extern UserDef U; /* from usiblender.c !
#define USER_HIDE_DOT 65536
#define USER_SHOW_ROTVIEWICON 131072
#define USER_SHOW_VIEWPORTNAME 262144
+#define USER_CYCLE_SELMODE 524288
/* transopts */
@@ -265,4 +266,3 @@ extern UserDef U; /* from usiblender.c !
#endif
-
Index: source/blender/src/editmesh_mods.c
===================================================================
RCS file: /cvsroot/bf-blender/blender/source/blender/src/editmesh_mods.c,v
retrieving revision 1.108
diff -u -p -u -r1.108 editmesh_mods.c
--- source/blender/src/editmesh_mods.c 20 Aug 2006 15:22:55 -0000 1.108
+++ source/blender/src/editmesh_mods.c 24 Aug 2006 06:25:13 -0000
@@ -2471,8 +2471,66 @@ void editmesh_deselect_by_material(int i
EM_selectmode_flush();
}
-void EM_selectmode_menu(void)
+void EM_selectmode_cycle(unsigned int direction)
{
+ int selectModes[] = {SCE_SELECT_VERTEX, SCE_SELECT_VERTEX_AND_EDGE, SCE_SELECT_EDGE, SCE_SELECT_EDGE_AND_FACE, SCE_SELECT_FACE, SCE_SELECT_VERTEX_AND_FACE};
+ const char *undoStrings[] = {"Vertex","Vertex\\Edge","Edge","Edge\\Face","Face","Vertex\\Face"};
+ int amountOfSelectModes = 6;
+
+ static char undoBegin[] = "Selectmode Set: ";
+ static char undoEnd[] = " ";
+
+ int i = 0;
+
+ /*the user can select all selection modes at once which is not in the
+ sequence. this exceptional case is handled here*/
+ if (G.scene->selectmode == SCE_SELECT_VERTEX_AND_EDGE_AND_FACE) {
+ G.scene->selectmode= SCE_SELECT_VERTEX;
+ EM_selectmode_set();
+ countall();
+ BIF_undo_push("Selectmode Set: Vertex ");
+ }
+ else {
+ for(i; i<amountOfSelectModes; i++) {
+ //forward
+ if (direction == 1) {
+ int j = i+1;
+ /*special case in which we have to "jump" to start*/
+ if (i == amountOfSelectModes-1) {
+ j = 0;
+ }
+ if (G.scene->selectmode == selectModes[i]) {
+ G.scene->selectmode= selectModes[j];
+ EM_selectmode_set();
+ countall();
+ char *undoText = strcat(undoBegin, undoStrings[j]);
+ BIF_undo_push(strcat(undoText, undoEnd));
+ break;
+ }
+ }
+ //backwards
+ else {
+ if (G.scene->selectmode == selectModes[i]) {
+ int j = i-1;
+ /*special case in which we have to "jump" to end*/
+ if (i == 0) {
+ j = amountOfSelectModes-1;
+ }
+ G.scene->selectmode= selectModes[j];
+ EM_selectmode_set();
+ countall();
+ char *undoText = strcat(undoBegin, undoStrings[j]);
+ BIF_undo_push(strcat(undoText, undoEnd));
+ break;
+ }
+ }
+ }
+ }
+ allqueue(REDRAWVIEW3D, 1);
+}
+
+void EM_selectmode_menu(void)
+{
int val;
if(G.scene->selectmode & SCE_SELECT_VERTEX) pupmenu_set_active(1);
@@ -3220,4 +3278,3 @@ void vertices_to_sphere(void)
#endif
BIF_undo_push("To Sphere");
}
-
Index: source/blender/src/space.c
===================================================================
RCS file: /cvsroot/bf-blender/blender/source/blender/src/space.c,v
retrieving revision 1.374
diff -u -p -u -r1.374 space.c
--- source/blender/src/space.c 20 Aug 2006 15:22:56 -0000 1.374
+++ source/blender/src/space.c 24 Aug 2006 06:25:14 -0000
@@ -2752,6 +2752,12 @@ void drawinfospace(ScrArea *sa, void *sp
uiDefBut(block, LABEL,0,"Middle Mouse Button:",
(xpos+(2*edgsp)+(4*mpref)+(4*midsp)),y6label,mpref,buth,
0, 0, 0, 0, 0, "");
+
+ uiDefButBitI(block, TOG, USER_CYCLE_SELMODE, B_DRAWINFO, "Cycle Selection Mode",
+ (xpos+edgsp+(3*mpref)+(4*midsp)),y1,mpref,buth,
+ &(U.uiflag), 0, 0, 0, 0,
+ "Cycle through selection modes by using ctrl-tab and ctrl-shift-tab");
+
uiBlockBeginAlign(block);
uiBlockSetCol(block, TH_BUT_SETTING1); /* mutually exclusive toggles, start color */
uiDefButBitI(block, TOGN, USER_VIEWMOVE, B_DRAWINFO, "Rotate View",
Index: source/blender/src/toets.c
===================================================================
RCS file: /cvsroot/bf-blender/blender/source/blender/src/toets.c,v
retrieving revision 1.82
diff -u -p -u -r1.82 toets.c
--- source/blender/src/toets.c 20 Jul 2006 10:36:55 -0000 1.82
+++ source/blender/src/toets.c 24 Aug 2006 06:25:14 -0000
@@ -664,8 +664,21 @@ int blenderqread(unsigned short event, s
else enter_posemode();
}
else if(ob->type==OB_MESH) {
- if(ob==G.obedit) EM_selectmode_menu();
+ if(ob==G.obedit) {
+ if (U.uiflag & USER_CYCLE_SELMODE) EM_selectmode_cycle(1);
+ else EM_selectmode_menu();
+ }
else set_wpaint();
+ }
+ }
+ }
+ else if(G.qual == (LR_SHIFTKEY | LR_CTRLKEY)) {
+ Object *ob= OBACT;
+ if(ob) {
+ if(ob->type==OB_MESH) {
+ if(ob==G.obedit) {
+ if (U.uiflag & USER_CYCLE_SELMODE) EM_selectmode_cycle(0);
+ }
}
}
}
File Metadata
Details
Mime Type
text/x-diff
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
b5/0a/00104672aa506d1a87d6928d8f03
Event Timeline
Log In to Comment