[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [44486] trunk/blender/source/blender: bmesh minor api edits to be a little more typesafe.
Campbell Barton
ideasman42 at gmail.com
Mon Feb 27 15:57:10 CET 2012
Revision: 44486
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=44486
Author: campbellbarton
Date: 2012-02-27 14:57:09 +0000 (Mon, 27 Feb 2012)
Log Message:
-----------
bmesh minor api edits to be a little more typesafe.
Modified Paths:
--------------
trunk/blender/source/blender/bmesh/bmesh.h
trunk/blender/source/blender/bmesh/bmesh_marking.h
trunk/blender/source/blender/bmesh/intern/bmesh_construct.c
trunk/blender/source/blender/bmesh/intern/bmesh_inline.c
trunk/blender/source/blender/bmesh/intern/bmesh_marking.c
trunk/blender/source/blender/bmesh/intern/bmesh_newcore.c
trunk/blender/source/blender/bmesh/intern/bmesh_private.h
trunk/blender/source/blender/bmesh/operators/bmo_subdivide.c
trunk/blender/source/blender/editors/mesh/bmesh_tools.c
Modified: trunk/blender/source/blender/bmesh/bmesh.h
===================================================================
--- trunk/blender/source/blender/bmesh/bmesh.h 2012-02-27 14:56:21 UTC (rev 44485)
+++ trunk/blender/source/blender/bmesh/bmesh.h 2012-02-27 14:57:09 UTC (rev 44486)
@@ -144,12 +144,12 @@
#define BM_elem_flag_toggle( ele, hflag) _bm_elem_flag_toggle (&(ele)->head, hflag)
#define BM_elem_flag_merge( ele_a, ele_b) _bm_elem_flag_merge (&(ele_a)->head, &(ele_b)->head)
-BM_INLINE char _bm_elem_flag_test(const BMHeader *element, const char hflag);
-BM_INLINE void _bm_elem_flag_enable(BMHeader *element, const char hflag);
-BM_INLINE void _bm_elem_flag_disable(BMHeader *element, const char hflag);
-BM_INLINE void _bm_elem_flag_set(BMHeader *ele, const char hflag, const int val);
-BM_INLINE void _bm_elem_flag_toggle(BMHeader *ele, const char hflag);
-BM_INLINE void _bm_elem_flag_merge(BMHeader *ele_a, BMHeader *ele_b);
+BM_INLINE char _bm_elem_flag_test(const BMHeader *head, const char hflag);
+BM_INLINE void _bm_elem_flag_enable(BMHeader *head, const char hflag);
+BM_INLINE void _bm_elem_flag_disable(BMHeader *head, const char hflag);
+BM_INLINE void _bm_elem_flag_set(BMHeader *head, const char hflag, const int val);
+BM_INLINE void _bm_elem_flag_toggle(BMHeader *head, const char hflag);
+BM_INLINE void _bm_elem_flag_merge(BMHeader *head_a, BMHeader *head_b);
/* notes on BM_elem_index_set(...) usage,
* Set index is sometimes abused as temp storage, other times we cant be
Modified: trunk/blender/source/blender/bmesh/bmesh_marking.h
===================================================================
--- trunk/blender/source/blender/bmesh/bmesh_marking.h 2012-02-27 14:56:21 UTC (rev 44485)
+++ trunk/blender/source/blender/bmesh/bmesh_marking.h 2012-02-27 14:57:09 UTC (rev 44486)
@@ -35,13 +35,15 @@
} BMEditSelection;
/* geometry hiding code */
-void BM_elem_hide_set(BMesh *bm, void *element, int hide);
+#define BM_elem_hide_set(bm, ele, hide) _bm_elem_hide_set(bm, &(ele)->head, hide)
+void _bm_elem_hide_set(BMesh *bm, BMHeader *ele, int hide);
void BM_vert_hide_set(BMesh *bm, BMVert *v, int hide);
void BM_edge_hide_set(BMesh *bm, BMEdge *e, int hide);
void BM_face_hide_set(BMesh *bm, BMFace *f, int hide);
/* Selection code */
-void BM_elem_select_set(BMesh *bm, void *element, int select);
+#define BM_elem_select_set(bm, ele, hide) _bm_elem_select_set(bm, &(ele)->head, hide)
+void _bm_elem_select_set(BMesh *bm, BMHeader *ele, int select);
/* use BM_elem_flag_test(ele, BM_ELEM_SELECT) to test selection */
Modified: trunk/blender/source/blender/bmesh/intern/bmesh_construct.c
===================================================================
--- trunk/blender/source/blender/bmesh/intern/bmesh_construct.c 2012-02-27 14:56:21 UTC (rev 44485)
+++ trunk/blender/source/blender/bmesh/intern/bmesh_construct.c 2012-02-27 14:57:09 UTC (rev 44486)
@@ -567,7 +567,7 @@
/* First we copy select */
if (BM_elem_flag_test((BMElem *)sheader, BM_ELEM_SELECT)) {
- BM_elem_select_set(target_mesh, target, TRUE);
+ BM_elem_select_set(target_mesh, (BMElem *)target, TRUE);
}
/* Now we copy flags */
Modified: trunk/blender/source/blender/bmesh/intern/bmesh_inline.c
===================================================================
--- trunk/blender/source/blender/bmesh/intern/bmesh_inline.c 2012-02-27 14:56:21 UTC (rev 44485)
+++ trunk/blender/source/blender/bmesh/intern/bmesh_inline.c 2012-02-27 14:57:09 UTC (rev 44486)
@@ -31,46 +31,46 @@
#include "bmesh.h"
-BM_INLINE char _bm_elem_flag_test(const BMHeader *ele, const char hflag)
+BM_INLINE char _bm_elem_flag_test(const BMHeader *head, const char hflag)
{
- return ele->hflag & hflag;
+ return head->hflag & hflag;
}
-BM_INLINE void _bm_elem_flag_enable(BMHeader *ele, const char hflag)
+BM_INLINE void _bm_elem_flag_enable(BMHeader *head, const char hflag)
{
- ele->hflag |= hflag;
+ head->hflag |= hflag;
}
-BM_INLINE void _bm_elem_flag_disable(BMHeader *ele, const char hflag)
+BM_INLINE void _bm_elem_flag_disable(BMHeader *head, const char hflag)
{
- ele->hflag &= ~hflag;
+ head->hflag &= ~hflag;
}
-BM_INLINE void _bm_elem_flag_set(BMHeader *ele, const char hflag, const int val)
+BM_INLINE void _bm_elem_flag_set(BMHeader *head, const char hflag, const int val)
{
- if (val) _bm_elem_flag_enable(ele, hflag);
- else _bm_elem_flag_disable(ele, hflag);
+ if (val) _bm_elem_flag_enable(head, hflag);
+ else _bm_elem_flag_disable(head, hflag);
}
-BM_INLINE void _bm_elem_flag_toggle(BMHeader *ele, const char hflag)
+BM_INLINE void _bm_elem_flag_toggle(BMHeader *head, const char hflag)
{
- ele->hflag ^= hflag;
+ head->hflag ^= hflag;
}
-BM_INLINE void _bm_elem_flag_merge(BMHeader *ele_a, BMHeader *ele_b)
+BM_INLINE void _bm_elem_flag_merge(BMHeader *head_a, BMHeader *head_b)
{
- ele_a->hflag = ele_b->hflag = ele_a->hflag | ele_b->hflag;
+ head_a->hflag = head_b->hflag = head_a->hflag | head_b->hflag;
}
-BM_INLINE void _bm_elem_index_set(BMHeader *ele, const int index)
+BM_INLINE void _bm_elem_index_set(BMHeader *head, const int index)
{
- ele->index = index;
+ head->index = index;
}
-BM_INLINE int _bm_elem_index_get(const BMHeader *ele)
+BM_INLINE int _bm_elem_index_get(const BMHeader *head)
{
- return ele->index;
+ return head->index;
}
#endif /* __BMESH_INLINE_C__ */
Modified: trunk/blender/source/blender/bmesh/intern/bmesh_marking.c
===================================================================
--- trunk/blender/source/blender/bmesh/intern/bmesh_marking.c 2012-02-27 14:56:21 UTC (rev 44485)
+++ trunk/blender/source/blender/bmesh/intern/bmesh_marking.c 2012-02-27 14:57:09 UTC (rev 44486)
@@ -475,19 +475,17 @@
}
/* note: by design, this will not touch the editselection history stuff */
-void BM_elem_select_set(struct BMesh *bm, void *element, int select)
+void _bm_elem_select_set(struct BMesh *bm, BMHeader *head, int select)
{
- BMHeader *head = element;
-
switch (head->htype) {
case BM_VERT:
- BM_vert_select_set(bm, (BMVert *)element, select);
+ BM_vert_select_set(bm, (BMVert *)head, select);
break;
case BM_EDGE:
- BM_edge_select_set(bm, (BMEdge *)element, select);
+ BM_edge_select_set(bm, (BMEdge *)head, select);
break;
case BM_FACE:
- BM_face_select_set(bm, (BMFace *)element, select);
+ BM_face_select_set(bm, (BMFace *)head, select);
break;
default:
BLI_assert(0);
@@ -881,25 +879,25 @@
}
}
-void BM_elem_hide_set(BMesh *bm, void *element, int hide)
+void _bm_elem_hide_set(BMesh *bm, BMHeader *head, int hide)
{
- BMHeader *h = element;
-
/* Follow convention of always deselecting before
* hiding an element */
- if (hide) {
- BM_elem_select_set(bm, element, FALSE);
- }
-
- switch (h->htype) {
+ switch (head->htype) {
case BM_VERT:
- BM_vert_hide_set(bm, element, hide);
+ if (hide) BM_vert_select_set(bm, (BMVert *)head, FALSE);
+ BM_vert_hide_set(bm, (BMVert *)head, hide);
break;
case BM_EDGE:
- BM_edge_hide_set(bm, element, hide);
+ if (hide) BM_edge_select_set(bm, (BMEdge *)head, FALSE);
+ BM_edge_hide_set(bm, (BMEdge *)head, hide);
break;
case BM_FACE:
- BM_face_hide_set(bm, element, hide);
+ if (hide) BM_face_select_set(bm, (BMFace *)head, FALSE);
+ BM_face_hide_set(bm, (BMFace *)head, hide);
break;
+ default:
+ BMESH_ASSERT(0);
+ break;
}
}
Modified: trunk/blender/source/blender/bmesh/intern/bmesh_newcore.c
===================================================================
--- trunk/blender/source/blender/bmesh/intern/bmesh_newcore.c 2012-02-27 14:56:21 UTC (rev 44485)
+++ trunk/blender/source/blender/bmesh/intern/bmesh_newcore.c 2012-02-27 14:57:09 UTC (rev 44486)
@@ -330,7 +330,7 @@
return f;
}
-int bmesh_element_check(BMesh *UNUSED(bm), void *element, const char htype)
+int bmesh_elem_check(BMesh *UNUSED(bm), void *element, const char htype)
{
BMHeader *head = element;
int err = 0;
Modified: trunk/blender/source/blender/bmesh/intern/bmesh_private.h
===================================================================
--- trunk/blender/source/blender/bmesh/intern/bmesh_private.h 2012-02-27 14:56:21 UTC (rev 44485)
+++ trunk/blender/source/blender/bmesh/intern/bmesh_private.h 2012-02-27 14:57:09 UTC (rev 44486)
@@ -40,13 +40,13 @@
struct BMLoop;
/* returns positive nonzero on error */
-int bmesh_element_check(BMesh *bm, void *element, const char htype);
+int bmesh_elem_check(BMesh *bm, void *element, const char htype);
#define BM_CHECK_ELEMENT(bm, el) \
- if (bmesh_element_check(bm, el, ((BMHeader *)el)->htype)) { \
+ if (bmesh_elem_check(bm, el, ((BMHeader *)el)->htype)) { \
printf("check_element failure, with code %i on line %i in file\n" \
" \"%s\"\n\n", \
- bmesh_element_check(bm, el, ((BMHeader *)el)->htype), \
+ bmesh_elem_check(bm, el, ((BMHeader *)el)->htype), \
__LINE__, __FILE__); \
}
Modified: trunk/blender/source/blender/bmesh/operators/bmo_subdivide.c
===================================================================
--- trunk/blender/source/blender/bmesh/operators/bmo_subdivide.c 2012-02-27 14:56:21 UTC (rev 44485)
+++ trunk/blender/source/blender/bmesh/operators/bmo_subdivide.c 2012-02-27 14:57:09 UTC (rev 44486)
@@ -1031,7 +1031,7 @@
if (seltype == SUBDIV_SELECT_INNER) {
BMOIter iter;
- BMHeader *ele;
+ BMElem *ele;
// int i;
ele = BMO_iter_new(&iter, bm, &op, "outinner", BM_EDGE|BM_VERT);
@@ -1041,7 +1041,7 @@
}
else if (seltype == SUBDIV_SELECT_LOOPCUT) {
BMOIter iter;
- BMHeader *ele;
+ BMElem *ele;
// int i;
/* deselect input */
@@ -1051,7 +1051,7 @@
for ( ; ele; ele = BMO_iter_step(&iter)) {
BM_elem_select_set(bm, ele, TRUE);
- if (ele->htype == BM_VERT) {
+ if (ele->head.htype == BM_VERT) {
BMEdge *e;
BMIter eiter;
Modified: trunk/blender/source/blender/editors/mesh/bmesh_tools.c
===================================================================
--- trunk/blender/source/blender/editors/mesh/bmesh_tools.c 2012-02-27 14:56:21 UTC (rev 44485)
+++ trunk/blender/source/blender/editors/mesh/bmesh_tools.c 2012-02-27 14:57:09 UTC (rev 44486)
@@ -245,7 +245,7 @@
BMEdge *edge;
BMFace *f;
ModifierData *md;
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list