Commit: 63a2cc2ab76794f5645f5b9289199ac9b1a8974c
Author: Campbell Barton
Date:   Mon Dec 23 16:03:07 2013 +1100
http://developer.blender.org/rB63a2cc2ab76794f5645f5b9289199ac9b1a8974c

BMesh API: make simple, low level functions inline

===================================================================

M       source/blender/bmesh/CMakeLists.txt
M       source/blender/bmesh/intern/bmesh_core.c
M       source/blender/bmesh/intern/bmesh_mods.c
M       source/blender/bmesh/intern/bmesh_queries.c
M       source/blender/bmesh/intern/bmesh_queries.h
A       source/blender/bmesh/intern/bmesh_queries_inline.h
M       source/blender/bmesh/intern/bmesh_structure.c
M       source/blender/bmesh/intern/bmesh_structure.h
A       source/blender/bmesh/intern/bmesh_structure_inline.h

===================================================================

diff --git a/source/blender/bmesh/CMakeLists.txt 
b/source/blender/bmesh/CMakeLists.txt
index cd8d71b..8d87e29 100644
--- a/source/blender/bmesh/CMakeLists.txt
+++ b/source/blender/bmesh/CMakeLists.txt
@@ -108,8 +108,10 @@ set(SRC
        intern/bmesh_private.h
        intern/bmesh_queries.c
        intern/bmesh_queries.h
+       intern/bmesh_queries_inline.h
        intern/bmesh_structure.c
        intern/bmesh_structure.h
+       intern/bmesh_structure_inline.h
        intern/bmesh_walkers.c
        intern/bmesh_walkers.h
        intern/bmesh_walkers_impl.c
diff --git a/source/blender/bmesh/intern/bmesh_core.c 
b/source/blender/bmesh/intern/bmesh_core.c
index a270830..cbaffe2 100644
--- a/source/blender/bmesh/intern/bmesh_core.c
+++ b/source/blender/bmesh/intern/bmesh_core.c
@@ -862,7 +862,7 @@ static bool bm_loop_reverse_loop(BMesh *bm, BMFace *f
                for (i = 0, l_iter = l_first; i < len; i++, l_iter = 
l_iter->next) {
                        edok = 0;
                        for (j = 0; j < len; j++) {
-                               edok = bmesh_verts_in_edge(l_iter->v, 
l_iter->next->v, edar[j]);
+                               edok = BM_verts_in_edge(l_iter->v, 
l_iter->next->v, edar[j]);
                                if (edok) {
                                        l_iter->e = edar[j];
                                        break;
@@ -1424,9 +1424,9 @@ BMVert *bmesh_semv(BMesh *bm, BMVert *tv, BMEdge *e, 
BMEdge **r_e)
        int i;
 #endif
 
-       BLI_assert(bmesh_vert_in_edge(e, tv) != false);
+       BLI_assert(BM_vert_in_edge(e, tv) != false);
 
-       v_old = bmesh_edge_other_vert_get(e, tv);
+       v_old = BM_edge_other_vert(e, tv);
 
 #ifndef NDEBUG
        valence1 = bmesh_disk_count(v_old);
@@ -1489,7 +1489,7 @@ BMVert *bmesh_semv(BMesh *bm, BMVert *tv, BMEdge *e, 
BMEdge **r_e)
                        l_new->v = v_new;
 
                        /* assign the correct edge to the correct loop */
-                       if (bmesh_verts_in_edge(l_new->v, l_new->next->v, e)) {
+                       if (BM_verts_in_edge(l_new->v, l_new->next->v, e)) {
                                l_new->e = e;
                                l->e = e_new;
 
@@ -1507,7 +1507,7 @@ BMVert *bmesh_semv(BMesh *bm, BMVert *tv, BMEdge *e, 
BMEdge **r_e)
                                bmesh_radial_append(l_new->e, l_new);
                                bmesh_radial_append(l->e, l);
                        }
-                       else if (bmesh_verts_in_edge(l_new->v, l_new->next->v, 
e_new)) {
+                       else if (BM_verts_in_edge(l_new->v, l_new->next->v, 
e_new)) {
                                l_new->e = e_new;
                                l->e = e;
 
@@ -1541,7 +1541,7 @@ BMVert *bmesh_semv(BMesh *bm, BMVert *tv, BMEdge *e, 
BMEdge **r_e)
                        //BMESH_ASSERT(l->radial_next == l);
                        BMESH_ASSERT(!(l->prev->e != e_new && l->next->e != 
e_new));
 
-                       edok = bmesh_verts_in_edge(l->v, l->next->v, e);
+                       edok = BM_verts_in_edge(l->v, l->next->v, e);
                        BMESH_ASSERT(edok != false);
                        BMESH_ASSERT(l->v != l->next->v);
                        BMESH_ASSERT(l->e != l->next->e);
@@ -1557,7 +1557,7 @@ BMVert *bmesh_semv(BMesh *bm, BMVert *tv, BMEdge *e, 
BMEdge **r_e)
                        BMESH_ASSERT(l->e == e_new);
                        // BMESH_ASSERT(l->radial_next == l);
                        BMESH_ASSERT(!(l->prev->e != e && l->next->e != e));
-                       edok = bmesh_verts_in_edge(l->v, l->next->v, e_new);
+                       edok = BM_verts_in_edge(l->v, l->next->v, e_new);
                        BMESH_ASSERT(edok != false);
                        BMESH_ASSERT(l->v != l->next->v);
                        BMESH_ASSERT(l->e != l->next->e);
@@ -1619,7 +1619,7 @@ BMEdge *bmesh_jekv(BMesh *bm, BMEdge *e_kill, BMVert 
*v_kill, const bool check_e
        int len, radlen = 0, i;
        bool edok, halt = false;
 
-       if (bmesh_vert_in_edge(e_kill, v_kill) == 0) {
+       if (BM_vert_in_edge(e_kill, v_kill) == 0) {
                return NULL;
        }
 
@@ -1632,9 +1632,9 @@ BMEdge *bmesh_jekv(BMesh *bm, BMEdge *e_kill, BMVert 
*v_kill, const bool check_e
 #endif
 
                e_old = bmesh_disk_edge_next(e_kill, v_kill);
-               tv = bmesh_edge_other_vert_get(e_kill, v_kill);
-               v_old = bmesh_edge_other_vert_get(e_old, v_kill);
-               halt = bmesh_verts_in_edge(v_kill, tv, e_old); /* check for 
double edges */
+               tv = BM_edge_other_vert(e_kill, v_kill);
+               v_old = BM_edge_other_vert(e_old, v_kill);
+               halt = BM_verts_in_edge(v_kill, tv, e_old); /* check for double 
edges */
                
                if (halt) {
                        return NULL;
@@ -1722,7 +1722,7 @@ BMEdge *bmesh_jekv(BMesh *bm, BMEdge *e_kill, BMVert 
*v_kill, const bool check_e
                        /* Validate loop cycle of all faces attached to 'e_old' 
*/
                        for (i = 0, l = e_old->l; i < radlen; i++, l = 
l->radial_next) {
                                BMESH_ASSERT(l->e == e_old);
-                               edok = bmesh_verts_in_edge(l->v, l->next->v, 
e_old);
+                               edok = BM_verts_in_edge(l->v, l->next->v, 
e_old);
                                BMESH_ASSERT(edok != false);
                                edok = bmesh_loop_validate(l->f);
                                BMESH_ASSERT(edok != false);
diff --git a/source/blender/bmesh/intern/bmesh_mods.c 
b/source/blender/bmesh/intern/bmesh_mods.c
index 4dc155e..49c8c98 100644
--- a/source/blender/bmesh/intern/bmesh_mods.c
+++ b/source/blender/bmesh/intern/bmesh_mods.c
@@ -461,7 +461,7 @@ BMEdge *BM_vert_collapse_faces(BMesh *bm, BMEdge *e_kill, 
BMVert *v_kill, float
                                const bool join_faces, const bool 
kill_degenerate_faces)
 {
        BMEdge *e_new = NULL;
-       BMVert *tv = bmesh_edge_other_vert_get(e_kill, v_kill);
+       BMVert *tv = BM_edge_other_vert(e_kill, v_kill);
 
        BMEdge *e2;
        BMVert *tv2;
@@ -575,7 +575,7 @@ BMEdge *BM_vert_collapse_edge(BMesh *bm, BMEdge *e_kill, 
BMVert *v_kill,
 
        /* in this case we want to keep all faces and not join them,
         * rather just get rid of the vertex - see bug [#28645] */
-       BMVert *tv  = bmesh_edge_other_vert_get(e_kill, v_kill);
+       BMVert *tv  = BM_edge_other_vert(e_kill, v_kill);
        if (tv) {
                BMEdge *e2 = bmesh_disk_edge_next(e_kill, v_kill);
                if (e2) {
@@ -642,7 +642,7 @@ BMVert *BM_edge_split(BMesh *bm, BMEdge *e, BMVert *v, 
BMEdge **r_e, float perce
                }
        }
 
-       v2 = bmesh_edge_other_vert_get(e, v);
+       v2 = BM_edge_other_vert(e, v);
        v_new = bmesh_semv(bm, v, e, r_e);
 
        BLI_assert(v_new != NULL);
diff --git a/source/blender/bmesh/intern/bmesh_queries.c 
b/source/blender/bmesh/intern/bmesh_queries.c
index c655fe4..15e564b 100644
--- a/source/blender/bmesh/intern/bmesh_queries.c
+++ b/source/blender/bmesh/intern/bmesh_queries.c
@@ -41,15 +41,6 @@
 #include "intern/bmesh_private.h"
 
 /**
- * Returns whether or not a given vertex is
- * is part of a given edge.
- */
-bool BM_vert_in_edge(const BMEdge *e, const BMVert *v)
-{
-       return bmesh_vert_in_edge(e, v);
-}
-
-/**
  * \brief Other Loop in Face Sharing an Edge
  *
  * Finds the other loop that shares \a v with \a e loop in \a f.
@@ -354,32 +345,6 @@ bool BM_edge_in_face(BMEdge *e, BMFace *f)
 }
 
 /**
- * Returns whether or not a given edge is is part of a given loop.
- */
-bool BM_edge_in_loop(BMEdge *e, BMLoop *l)
-{
-       return (l->e == e || l->prev->e == e);
-}
-
-/**
- * Returns whether or not two vertices are in
- * a given edge
- */
-bool BM_verts_in_edge(BMVert *v1, BMVert *v2, BMEdge *e)
-{
-       return bmesh_verts_in_edge(v1, v2, e);
-}
-
-/**
- * Given a edge and one of its vertices, returns
- * the other vertex.
- */
-BMVert *BM_edge_other_vert(BMEdge *e, BMVert *v)
-{
-       return bmesh_edge_other_vert_get(e, v);
-}
-
-/**
  * Given a edge and a loop (assumes the edge is manifold). returns
  * the other faces loop, sharing the same vertex.
  *
@@ -665,15 +630,6 @@ bool BM_vert_is_wire(const BMVert *v)
 }
 
 /**
- * Tests whether or not the edge is part of a wire.
- * (ie: has no faces attached to it)
- */
-bool BM_edge_is_wire(const BMEdge *e)
-{
-       return (e->l == NULL);
-}
-
-/**
  * A vertex is non-manifold if it meets the following conditions:
  * 1: Loose - (has no edges/faces incident upon it).
  * 2: Joins two distinct regions - (two pyramids joined at the tip).
@@ -740,44 +696,6 @@ bool BM_vert_is_manifold(const BMVert *v)
 }
 
 /**
- * Tests whether or not this edge is manifold.
- * A manifold edge has exactly 2 faces attached to it.
- */
-
-#if 1 /* fast path for checking manifold */
-bool BM_edge_is_manifold(const BMEdge *e)
-{
-       const BMLoop *l = e->l;
-       return (l && (l->radial_next != l) &&             /* not 0 or 1 face 
users */
-                    (l->radial_next->radial_next == l)); /* 2 face users */
-}
-#else
-int BM_edge_is_manifold(BMEdge *e)
-{
-       int count = BM_edge_face_count(e);
-       if (count == 2) {
-               return true;
-       }
-       else {
-               return false;
-       }
-}
-#endif
-
-/**
- * Tests that the edge is manifold and
- * that both its faces point the same way.
- */
-bool BM_edge_is_contiguous(const BMEdge *e)
-{
-       const BMLoop *l = e->l;
-       const BMLoop *l_other;
-       return (l && ((l_other = l->radial_next) != l) &&  /* not 0 or 1 face 
users */
-                    (l_other->radial_next == l) &&        /* 2 face users */
-                    (l_other->v != l->v));
-}
-
-/**
  * Check if the edge is convex or concave
  * (depends on face winding)
  */
@@ -798,30 +716,6 @@ bool BM_edge_is_convex(const BMEdge *e)
        return true;
 }
 
-/**
- * Tests whether or not an edge is on the boundary
- * of a shell (has one face associated with it)
- */
-
-#if 1 /* fast path for checking boundary */
-bool BM_edge_is_boundary(const BMEdge *e)
-{
-       const BMLoop *l = e->l;
-       return (l && (l->radial_next == l));
-}
-#else
-int BM_edge_is_boundary(BMEdge *e)
-{
-       int count = BM_edge_face_count(e);
-       if (count == 1) {
-               return true;
-       }
-       else {
-               return false;
-       }
-}
-#endif
-
 bool BM_vert_is_boundary(const BMVert *v)
 {
        if (v->e) {
diff --git a/source/blender/bmesh/intern/bmesh_queries.h 
b/source/blender/bmesh/intern/bmesh_queries.h
index ab20b1c..17c1431 100644
--- a/source/blender/bmesh/intern/bmesh_queries.h
+++ b/source/blender/bmesh/intern/bmesh_queries.h
@@ -32,16 +32,16 @@ int     BM_verts_in_face_count(BMFace *f, BMVert **varr, 
int len);
 bool    BM_verts_in_face(BMFace *f, BMVert **varr, int len);
 
 bool    BM_edge_in_face(BMEdge *e, BMFace *f);
-bool    BM_edge_in_loop(BMEdge *e, BMLoop *l);
+BLI_INLINE bool    BM_edge_in_loop(const BMEdge *e, const BMLoop *l);
 
-bool    BM_vert_in_edge(const BMEdge *e, const BMVert *v);
-bool    BM_verts_in_edge(BMVert *v1, BMVert *v2, BMEdge *e);
+BLI_INLINE bool    BM_vert_in_edge(const BMEdge *e, const BMVert *v);
+BLI_INLINE bool    BM_verts_in_edge(const BMVert *v1, const BMVert *v2, const 
BMEdge *e);
 
 float   BM_edge_calc_length(BMEdge *e);
 float   BM_edge_calc_length_squared(BMEdge *e);
 bool    BM_edge_face_pair(BMEdge *e, BMFace **r_fa, BMFace **r_fb);
 bool    BM_edge_loop_pair(BMEdge *e, BMLoop **r_la, BMLoop **r_lb);
-BMVert *BM_edge_other_vert(BMEdge *e, BMVert *v);
+BLI_INLINE BMVert *BM_edge_other_vert(BMEdge *e, const BMVert *v);
 BMLoop *BM_edge_other_loop(BMEdge *e, BMLoop *l);
 BMLoop *BM_face_other_edge_loop(BMFace *f, BM

@@ Diff output truncated at 10240 characters. @@

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to