[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [45947] trunk/blender/source/blender: code cleanup: no functional change - had both EDBM_editselection_* and BM_editselection_* funcs , replace EDBM_ funcs.
Campbell Barton
ideasman42 at gmail.com
Tue Apr 24 23:19:19 CEST 2012
Revision: 45947
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=45947
Author: campbellbarton
Date: 2012-04-24 21:19:18 +0000 (Tue, 24 Apr 2012)
Log Message:
-----------
code cleanup: no functional change - had both EDBM_editselection_* and BM_editselection_* funcs, replace EDBM_ funcs.
Modified Paths:
--------------
trunk/blender/source/blender/bmesh/intern/bmesh_construct.c
trunk/blender/source/blender/bmesh/intern/bmesh_core.c
trunk/blender/source/blender/bmesh/intern/bmesh_marking.c
trunk/blender/source/blender/bmesh/intern/bmesh_marking.h
trunk/blender/source/blender/editors/include/ED_mesh.h
trunk/blender/source/blender/editors/mesh/editmesh_loopcut.c
trunk/blender/source/blender/editors/mesh/editmesh_rip.c
trunk/blender/source/blender/editors/mesh/editmesh_select.c
trunk/blender/source/blender/editors/mesh/editmesh_slide.c
trunk/blender/source/blender/editors/mesh/editmesh_utils.c
trunk/blender/source/blender/editors/mesh/mesh_intern.h
trunk/blender/source/blender/editors/space_view3d/view3d_snap.c
trunk/blender/source/blender/editors/transform/transform_generics.c
trunk/blender/source/blender/editors/transform/transform_manipulator.c
trunk/blender/source/blender/editors/transform/transform_orientations.c
trunk/blender/source/blender/editors/uvedit/uvedit_ops.c
Modified: trunk/blender/source/blender/bmesh/intern/bmesh_construct.c
===================================================================
--- trunk/blender/source/blender/bmesh/intern/bmesh_construct.c 2012-04-24 20:33:39 UTC (rev 45946)
+++ trunk/blender/source/blender/bmesh/intern/bmesh_construct.c 2012-04-24 21:19:18 UTC (rev 45947)
@@ -803,6 +803,7 @@
BMesh *bm_new;
BMVert *v, *v2, **vtable = NULL;
BMEdge *e, *e2, **edges = NULL, **etable = NULL;
+ BMElem **eletable;
BLI_array_declare(edges);
BMLoop *l, /* *l2, */ **loops = NULL;
BLI_array_declare(loops);
@@ -913,21 +914,29 @@
/* copy over edit selection history */
for (ese = bm_old->selected.first; ese; ese = ese->next) {
- void *ele = NULL;
+ BMElem *ele = NULL;
- if (ese->htype == BM_VERT)
- ele = vtable[BM_elem_index_get(ese->ele)];
- else if (ese->htype == BM_EDGE)
- ele = etable[BM_elem_index_get(ese->ele)];
- else if (ese->htype == BM_FACE) {
- ele = ftable[BM_elem_index_get(ese->ele)];
+ switch (ese->htype) {
+ case BM_VERT:
+ eletable = (BMElem **)vtable;
+ break;
+ case BM_EDGE:
+ eletable = (BMElem **)etable;
+ break;
+ case BM_FACE:
+ eletable = (BMElem **)ftable;
+ break;
+ default:
+ eletable = NULL;
+ break;
}
- else {
- BLI_assert(0);
+
+ if (eletable) {
+ ele = eletable[BM_elem_index_get(ese->ele)];
+ if (ele) {
+ BM_select_history_store(bm_new, ele);
+ }
}
-
- if (ele)
- BM_select_history_store(bm_new, ele);
}
MEM_freeN(etable);
Modified: trunk/blender/source/blender/bmesh/intern/bmesh_core.c
===================================================================
--- trunk/blender/source/blender/bmesh/intern/bmesh_core.c 2012-04-24 20:33:39 UTC (rev 45946)
+++ trunk/blender/source/blender/bmesh/intern/bmesh_core.c 2012-04-24 21:19:18 UTC (rev 45947)
@@ -453,7 +453,7 @@
bm->totvert--;
bm->elem_index_dirty |= BM_VERT;
- BM_select_history_remove(bm, (BMElem *)v);
+ BM_select_history_remove(bm, v);
if (v->head.data)
CustomData_bmesh_free_block(&bm->vdata, &v->head.data);
Modified: trunk/blender/source/blender/bmesh/intern/bmesh_marking.c
===================================================================
--- trunk/blender/source/blender/bmesh/intern/bmesh_marking.c 2012-04-24 20:33:39 UTC (rev 45946)
+++ trunk/blender/source/blender/bmesh/intern/bmesh_marking.c 2012-04-24 21:19:18 UTC (rev 45947)
@@ -566,7 +566,7 @@
* - #EM_editselection_normal
* - #EM_editselection_plane
*/
-void BM_editselection_center(float r_center[3], BMEditSelection *ese)
+void BM_editselection_center(BMEditSelection *ese, float r_center[3])
{
if (ese->htype == BM_VERT) {
BMVert *eve = (BMVert *)ese->ele;
@@ -583,7 +583,7 @@
}
}
-void BM_editselection_normal(float r_normal[3], BMEditSelection *ese)
+void BM_editselection_normal(BMEditSelection *ese, float r_normal[3])
{
if (ese->htype == BM_VERT) {
BMVert *eve = (BMVert *)ese->ele;
@@ -617,14 +617,14 @@
/* Calculate a plane that is rightangles to the edge/vert/faces normal
* also make the plane run along an axis that is related to the geometry,
* because this is used for the manipulators Y axis. */
-void BM_editselection_plane(BMesh *bm, float r_plane[3], BMEditSelection *ese)
+void BM_editselection_plane(BMEditSelection *ese, float r_plane[3])
{
if (ese->htype == BM_VERT) {
BMVert *eve = (BMVert *)ese->ele;
float vec[3] = {0.0f, 0.0f, 0.0f};
if (ese->prev) { /* use previously selected data to make a useful vertex plane */
- BM_editselection_center(vec, ese->prev);
+ BM_editselection_center(ese->prev, vec);
sub_v3_v3v3(r_plane, vec, eve->co);
}
else {
@@ -674,7 +674,7 @@
else {
BMVert *verts[4] = {NULL};
- BM_iter_as_array(bm, BM_VERTS_OF_FACE, efa, (void **)verts, 4);
+ BM_iter_as_array(NULL, BM_VERTS_OF_FACE, efa, (void **)verts, 4);
if (efa->len == 4) {
float vecA[3], vecB[3];
@@ -713,12 +713,14 @@
normalize_v3(r_plane);
}
-int BM_select_history_check(BMesh *bm, const BMElem *ele)
+
+/* --- macro wrapped funcs --- */
+int _bm_select_history_check(BMesh *bm, const BMHeader *ele)
{
BMEditSelection *ese;
for (ese = bm->selected.first; ese; ese = ese->next) {
- if (ese->ele == ele) {
+ if (ese->ele == (BMElem *)ele) {
return TRUE;
}
}
@@ -726,11 +728,11 @@
return FALSE;
}
-int BM_select_history_remove(BMesh *bm, BMElem *ele)
+int _bm_select_history_remove(BMesh *bm, BMHeader *ele)
{
BMEditSelection *ese;
for (ese = bm->selected.first; ese; ese = ese->next) {
- if (ese->ele == ele) {
+ if (ese->ele == (BMElem *)ele) {
BLI_freelinkN(&(bm->selected), ese);
return TRUE;
}
@@ -739,27 +741,30 @@
return FALSE;
}
-void BM_select_history_clear(BMesh *bm)
+void _bm_select_history_store_notest(BMesh *bm, BMHeader *ele)
{
- BLI_freelistN(&bm->selected);
- bm->selected.first = bm->selected.last = NULL;
-}
-
-void BM_select_history_store_notest(BMesh *bm, BMElem *ele)
-{
BMEditSelection *ese = (BMEditSelection *) MEM_callocN(sizeof(BMEditSelection), "BMEdit Selection");
- ese->htype = ((BMHeader *)ele)->htype;
- ese->ele = ele;
+ ese->htype = ele->htype;
+ ese->ele = (BMElem *)ele;
BLI_addtail(&(bm->selected), ese);
}
-void BM_select_history_store(BMesh *bm, BMElem *ele)
+void _bm_select_history_store(BMesh *bm, BMHeader *ele)
{
- if (!BM_select_history_check(bm, ele)) {
- BM_select_history_store_notest(bm, ele);
+ if (!BM_select_history_check(bm, (BMElem *)ele)) {
+ BM_select_history_store_notest(bm, (BMElem *)ele);
}
}
+/* --- end macro wrapped funcs --- */
+
+void BM_select_history_clear(BMesh *bm)
+{
+ BLI_freelistN(&bm->selected);
+ bm->selected.first = bm->selected.last = NULL;
+}
+
+
void BM_select_history_validate(BMesh *bm)
{
BMEditSelection *ese, *nextese;
@@ -775,6 +780,41 @@
}
}
+/* utility function */
+int BM_select_history_active_get(BMesh *bm, BMEditSelection *ese)
+{
+ BMEditSelection *ese_last = bm->selected.last;
+ BMFace *efa = BM_active_face_get(bm, FALSE);
+
+ ese->next = ese->prev = NULL;
+
+ if (ese_last) {
+ if (ese_last->htype == BM_FACE) { /* if there is an active face, use it over the last selected face */
+ if (efa) {
+ ese->ele = (BMElem *)efa;
+ }
+ else {
+ ese->ele = ese_last->ele;
+ }
+ ese->htype = BM_FACE;
+ }
+ else {
+ ese->ele = ese_last->ele;
+ ese->htype = ese_last->htype;
+ }
+ }
+ else if (efa) { /* no */
+ ese->ele = (BMElem *)efa;
+ ese->htype = BM_FACE;
+ }
+ else {
+ ese->ele = NULL;
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
void BM_mesh_elem_hflag_disable_test(BMesh *bm, const char htype, const char hflag,
int respecthide, const char hflag_test)
{
Modified: trunk/blender/source/blender/bmesh/intern/bmesh_marking.h
===================================================================
--- trunk/blender/source/blender/bmesh/intern/bmesh_marking.h 2012-04-24 20:33:39 UTC (rev 45946)
+++ trunk/blender/source/blender/bmesh/intern/bmesh_marking.h 2012-04-24 21:19:18 UTC (rev 45947)
@@ -73,15 +73,23 @@
/* edit selection stuff */
void BM_active_face_set(BMesh *bm, BMFace *f);
BMFace *BM_active_face_get(BMesh *bm, int sloppy);
-void BM_editselection_center(float r_center[3], BMEditSelection *ese);
-void BM_editselection_normal(float r_normal[3], BMEditSelection *ese);
-void BM_editselection_plane(BMesh *bm, float r_plane[3], BMEditSelection *ese);
-int BM_select_history_check(BMesh *bm, const BMElem *ele);
-int BM_select_history_remove(BMesh *bm, BMElem *ele);
-void BM_select_history_store_notest(BMesh *bm, BMElem *ele);
-void BM_select_history_store(BMesh *bm, BMElem *ele);
+void BM_editselection_center(BMEditSelection *ese, float r_center[3]);
+void BM_editselection_normal(BMEditSelection *ese, float r_normal[3]);
+void BM_editselection_plane(BMEditSelection *ese, float r_plane[3]);
+
+#define BM_select_history_check(bm, ele) _bm_select_history_check(bm, &(ele)->head)
+#define BM_select_history_remove(bm, ele) _bm_select_history_remove(bm, &(ele)->head)
+#define BM_select_history_store_notest(bm, ele) _bm_select_history_store_notest(bm, &(ele)->head)
+#define BM_select_history_store(bm, ele) _bm_select_history_store(bm, &(ele)->head)
+
+int _bm_select_history_check(BMesh *bm, const BMHeader *ele);
+int _bm_select_history_remove(BMesh *bm, BMHeader *ele);
+void _bm_select_history_store_notest(BMesh *bm, BMHeader *ele);
+void _bm_select_history_store(BMesh *bm, BMHeader *ele);
+
void BM_select_history_validate(BMesh *bm);
void BM_select_history_clear(BMesh *em);
+int BM_select_history_active_get(BMesh *bm, struct BMEditSelection *ese);
#endif /* __BMESH_MARKING_H__ */
Modified: trunk/blender/source/blender/editors/include/ED_mesh.h
===================================================================
--- trunk/blender/source/blender/editors/include/ED_mesh.h 2012-04-24 20:33:39 UTC (rev 45946)
+++ trunk/blender/source/blender/editors/include/ED_mesh.h 2012-04-24 21:19:18 UTC (rev 45947)
@@ -114,13 +114,9 @@
void EDBM_selectmode_convert(struct BMEditMesh *em, short oldmode, short selectmode);
void undo_push_mesh(struct bContext *C, const char *name);
-int EDBM_editselection_active_get(struct BMEditMesh *em, struct BMEditSelection *ese);
-void EDBM_editselection_center(float *center, struct BMEditSelection *ese);
-void EDBM_editselection_plane(struct BMEditMesh *em, float *plane, struct BMEditSelection *ese);
-void EDBM_editselection_normal(float *normal, struct BMEditSelection *ese);
int EDBM_vert_color_check(struct BMEditMesh *em);
-void EDBM_editselection_validate(struct BMEditMesh *em);
+
void EDBM_mesh_hide(struct BMEditMesh *em, int swap);
void EDBM_mesh_reveal(struct BMEditMesh *em);
Modified: trunk/blender/source/blender/editors/mesh/editmesh_loopcut.c
===================================================================
--- trunk/blender/source/blender/editors/mesh/editmesh_loopcut.c 2012-04-24 20:33:39 UTC (rev 45946)
+++ trunk/blender/source/blender/editors/mesh/editmesh_loopcut.c 2012-04-24 21:19:18 UTC (rev 45947)
@@ -337,9 +337,9 @@
/* sets as active, useful for other tools */
if (em->selectmode & SCE_SELECT_VERTEX)
- EDBM_editselection_store(em, &lcd->eed->v1->head); /* low priority TODO, get vertrex close to mouse */
+ BM_select_history_store(em->bm, lcd->eed->v1); /* low priority TODO, get vertrex close to mouse */
if (em->selectmode & SCE_SELECT_EDGE)
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list