|
Blender V5.0
|
#include <cstring>#include "BLI_alloca.h"#include "BLI_ghash.h"#include "BLI_linklist.h"#include "BLI_linklist_stack.h"#include "BLI_listbase.h"#include "BLI_mempool.h"#include "MEM_guardedalloc.h"#include "bmesh.hh"#include "tools/bmesh_region_match.hh"#include "BLI_strict_flags.h"Go to the source code of this file.
Classes | |
| struct | UIDWalk |
| struct | UIDFaceStep |
| struct | UIDFaceStepItem |
Macros | |
| #define | USE_WALKER_REUSE |
| #define | USE_PIVOT_FASTMATCH |
| #define | USE_PIVOT_SEARCH |
| #define | PRIME_VERT_SMALL 7 |
| #define | PRIME_VERT_MID 43 |
| #define | PRIME_VERT_LARGE 1031 |
| #define | PRIME_FACE_SMALL 13 |
| #define | PRIME_FACE_MID 53 |
| #define | PRIME_VERT_SMALL 11 |
| #define | PRIME_FACE_SMALL 17 |
| #define | PRIME_FACE_LARGE 1013 |
| #define | PRIME_VERT_SMALL_A 7 |
| #define | PRIME_VERT_SMALL_B 13 |
| #define | PRIME_VERT_MID_A 103 |
| #define | PRIME_VERT_MID_B 131 |
| #define | PRIME_VERT_MID_A 23 |
| #define | PRIME_VERT_MID_B 31 |
| #define | PRIME_EDGE 7 |
| #define | PRIME_FACE 31 |
| #define | PRIME_LOOP 61 |
Functions | |
| static BMFace ** | bm_mesh_region_match_pair (UIDWalk *w_src, UIDWalk *w_dst, BMEdge *e_src, BMEdge *e_dst, const uint faces_src_region_len, const uint verts_src_region_len, uint *r_faces_result_len) |
| static void | bm_face_array_visit (BMFace **faces, const uint faces_len, uint *r_verts_len, bool visit_faces) |
| int | BM_mesh_region_match (BMesh *bm, BMFace **faces_region, uint faces_region_len, ListBase *r_face_regions) |
Internal UIDFaceStep API | |
| static int | facestep_sort (const void *a, const void *b) |
| static bool | bm_uidwalk_facestep_begin (UIDWalk *uidwalk, UIDFaceStep *fstep) |
| static void | bm_uidwalk_facestep_end (UIDWalk *uidwalk, UIDFaceStep *fstep) |
| static void | bm_uidwalk_facestep_free (UIDWalk *uidwalk, UIDFaceStep *fstep) |
Internal UIDWalk API | |
| #define | PRIME_VERT_INIT 100003 |
| using | UID_Int = uintptr_t |
| using | SUID_Int = intptr_t |
| BLI_INLINE bool | bm_uidwalk_face_test (UIDWalk *uidwalk, BMFace *f) |
| BLI_INLINE bool | bm_uidwalk_vert_lookup (UIDWalk *uidwalk, BMVert *v, UID_Int *r_uid) |
| BLI_INLINE bool | bm_uidwalk_face_lookup (UIDWalk *uidwalk, BMFace *f, UID_Int *r_uid) |
| static uint | ghashutil_bmelem_indexhash (const void *key) |
| static bool | ghashutil_bmelem_indexcmp (const void *a, const void *b) |
| static GHash * | ghash_bmelem_new_ex (const char *info, const uint nentries_reserve) |
| static GSet * | gset_bmelem_new_ex (const char *info, const uint nentries_reserve) |
| static GHash * | ghash_bmelem_new (const char *info) |
| static GSet * | gset_bmelem_new (const char *info) |
| static void | bm_uidwalk_init (UIDWalk *uidwalk, const uint faces_src_region_len, const uint verts_src_region_len) |
| static void | bm_uidwalk_clear (UIDWalk *uidwalk) |
| static void | bm_uidwalk_free (UIDWalk *uidwalk) |
| static UID_Int | bm_uidwalk_calc_vert_uid (UIDWalk *uidwalk, BMVert *v) |
| static UID_Int | bm_uidwalk_calc_face_uid (UIDWalk *uidwalk, BMFace *f) |
| static void | bm_uidwalk_rehash_reserve (UIDWalk *uidwalk, uint rehash_store_len_new) |
| static void | bm_uidwalk_rehash (UIDWalk *uidwalk) |
| static void | bm_uidwalk_rehash_facelinks (UIDWalk *uidwalk, LinkNode *faces, const uint faces_len, const bool is_init) |
| static bool | bm_vert_is_uid_connect (UIDWalk *uidwalk, BMVert *v) |
| static void | bm_uidwalk_pass_add (UIDWalk *uidwalk, LinkNode *faces_pass, const uint faces_pass_len) |
| static int | bm_face_len_cmp (const void *v1, const void *v2) |
| static uint | bm_uidwalk_init_from_edge (UIDWalk *uidwalk, BMEdge *e) |
| BLI_INLINE intptr_t | abs_intptr (intptr_t a) |
| static bool | bm_edge_is_region_boundary (BMEdge *e) |
| static void | bm_face_region_pivot_edge_use_best (GHash *gh, BMEdge *e_test, BMEdge **r_e_pivot_best, SUID_Int e_pivot_best_id[2]) |
| static SUID_Int | bm_face_region_vert_boundary_id (BMVert *v) |
| static SUID_Int | bm_face_region_vert_pass_id (GHash *gh, BMVert *v) |
| static BMEdge * | bm_face_region_pivot_edge_find (BMFace **faces_region, uint faces_region_len, uint verts_region_len, uint *r_depth) |
Fast Match | |
| using | UIDFashMatch = uintptr_t |
| static UIDFashMatch | bm_vert_fasthash_single (BMVert *v) |
| static UIDFashMatch * | bm_vert_fasthash_create (BMesh *bm, const uint depth) |
| static void | bm_vert_fasthash_edge_order (const UIDFashMatch *fm, const BMEdge *e, UIDFashMatch e_fm[2]) |
| static bool | bm_vert_fasthash_edge_is_match (UIDFashMatch *fm, const BMEdge *e_a, const BMEdge *e_b) |
| static void | bm_vert_fasthash_destroy (UIDFashMatch *fm) |
Given a contiguous region of faces, find multiple matching regions (based on topology) and return them.
Implementation:
Definition in file bmesh_region_match.cc.
| #define PRIME_EDGE 7 |
Referenced by bm_vert_fasthash_single().
| #define PRIME_FACE 31 |
Referenced by bm_vert_fasthash_single().
| #define PRIME_FACE_LARGE 1013 |
Referenced by bm_uidwalk_calc_face_uid().
| #define PRIME_FACE_MID 53 |
Referenced by bm_uidwalk_calc_vert_uid().
| #define PRIME_FACE_SMALL 17 |
| #define PRIME_FACE_SMALL 13 |
Referenced by bm_uidwalk_calc_face_uid(), and bm_uidwalk_calc_vert_uid().
| #define PRIME_LOOP 61 |
Referenced by bm_vert_fasthash_single().
| #define PRIME_VERT_INIT 100003 |
Definition at line 62 of file bmesh_region_match.cc.
Referenced by bm_uidwalk_init_from_edge().
| #define PRIME_VERT_LARGE 1031 |
Referenced by bm_uidwalk_calc_vert_uid().
| #define PRIME_VERT_MID 43 |
Referenced by bm_uidwalk_calc_vert_uid().
| #define PRIME_VERT_MID_A 23 |
| #define PRIME_VERT_MID_A 103 |
Referenced by bm_face_region_vert_boundary_id(), and bm_face_region_vert_pass_id().
| #define PRIME_VERT_MID_B 31 |
| #define PRIME_VERT_MID_B 131 |
Referenced by bm_face_region_vert_boundary_id(), and bm_face_region_vert_pass_id().
| #define PRIME_VERT_SMALL 11 |
| #define PRIME_VERT_SMALL 7 |
Referenced by bm_uidwalk_calc_face_uid(), and bm_uidwalk_calc_vert_uid().
| #define PRIME_VERT_SMALL_A 7 |
Referenced by bm_face_region_vert_boundary_id().
| #define PRIME_VERT_SMALL_B 13 |
Referenced by bm_face_region_vert_boundary_id().
| #define USE_PIVOT_FASTMATCH |
Definition at line 43 of file bmesh_region_match.cc.
| #define USE_PIVOT_SEARCH |
Definition at line 46 of file bmesh_region_match.cc.
| #define USE_WALKER_REUSE |
Definition at line 38 of file bmesh_region_match.cc.
Referenced by BM_mesh_region_match(), and bm_mesh_region_match_pair().
| using SUID_Int = intptr_t |
Definition at line 906 of file bmesh_region_match.cc.
| using UID_Int = uintptr_t |
Definition at line 64 of file bmesh_region_match.cc.
| using UIDFashMatch = uintptr_t |
Definition at line 1231 of file bmesh_region_match.cc.
| BLI_INLINE intptr_t abs_intptr | ( | intptr_t | a | ) |
Definition at line 908 of file bmesh_region_match.cc.
References BLI_INLINE.
Referenced by bm_face_region_vert_boundary_id(), and bm_face_region_vert_pass_id().
|
static |
Definition at line 913 of file bmesh_region_match.cc.
References BM_elem_flag_test, BM_ELEM_TAG, e, BMLoop::f, and BMLoop::radial_next.
Referenced by bm_face_region_pivot_edge_find(), and bm_face_region_vert_boundary_id().
|
static |
Tag as visited, avoid re-use.
Definition at line 867 of file bmesh_region_match.cc.
References BM_elem_flag_enable, BM_elem_flag_test, BM_ELEM_TAG, BM_FACE_FIRST_LOOP, BMLoop::e, faces, i, BMLoop::next, and BMLoop::v.
Referenced by BM_mesh_region_match().
|
static |
Definition at line 540 of file bmesh_region_match.cc.
References BMFace::len, and v2.
Referenced by bm_uidwalk_init_from_edge().
|
static |
Take a face region and find the inner-most vertex. also calculate the number of connections to the boundary, and the total number unique of verts used by this face region.
This is only called once on the source region (no need to be highly optimized).
Definition at line 1043 of file bmesh_region_match.cc.
References BLI_assert, BLI_ghash_ensure_p(), BLI_ghash_free(), BLI_ghash_haskey(), BLI_ghash_lookup(), BLI_ghash_lookup_p(), BLI_ghash_ptr_new(), BLI_LINKSTACK_DECLARE, BLI_LINKSTACK_FREE, BLI_LINKSTACK_INIT, BLI_LINKSTACK_POP, BLI_LINKSTACK_PUSH, BLI_LINKSTACK_SIZE, BLI_LINKSTACK_SWAP, bm_edge_is_region_boundary(), BM_edge_other_vert(), BM_EDGES_OF_VERT, BM_elem_flag_disable, BM_elem_flag_enable, BM_elem_flag_test, BM_ELEM_TAG, BM_FACE_FIRST_LOOP, bm_face_region_pivot_edge_use_best(), bm_face_region_vert_boundary_id(), bm_face_region_vert_pass_id(), BM_ITER_ELEM, BMLoop::e, e, i, LinkNode::link, BMLoop::next, LinkNode::next, printf, and v.
Referenced by BM_mesh_region_match().
|
static |
Definition at line 928 of file bmesh_region_match.cc.
References BLI_ghash_lookup(), BMEdge::v1, and BMEdge::v2.
Referenced by bm_face_region_pivot_edge_find().
Definition at line 954 of file bmesh_region_match.cc.
References abs_intptr(), bm_edge_is_region_boundary(), BM_ITER_ELEM, BM_LOOPS_OF_VERT, l, PRIME_VERT_MID_A, PRIME_VERT_MID_B, PRIME_VERT_SMALL_A, PRIME_VERT_SMALL_B, and v.
Referenced by bm_face_region_pivot_edge_find().
Accumulate id's from a previous pass (swap sign each pass)
Definition at line 986 of file bmesh_region_match.cc.
References abs_intptr(), BLI_ghash_lookup(), BM_edge_other_vert(), BM_EDGES_OF_VERT, BM_elem_flag_test, BM_ELEM_TAG, BM_ITER_ELEM, e, BMLoop::f, INTPTR_MIN, BMFace::len, PRIME_VERT_MID_A, PRIME_VERT_MID_B, BMLoop::radial_next, UNLIKELY, and v.
Referenced by bm_face_region_pivot_edge_find().
| int BM_mesh_region_match | ( | BMesh * | bm, |
| BMFace ** | faces_region, | ||
| uint | faces_region_len, | ||
| ListBase * | r_face_regions ) |
Take a face-region and return a list of matching face-regions.
| faces_region | A single, contiguous face-region. |
Definition at line 1328 of file bmesh_region_match.cc.
References BLI_addtail(), BLI_genericNodeN(), BLI_listbase_clear(), bm, BM_EDGE, BM_edge_is_wire(), BM_EDGES_OF_MESH, BM_elem_flag_test, BM_ELEM_TAG, BM_FACE, bm_face_array_visit(), bm_face_region_pivot_edge_find(), BM_ITER_MESH, BM_mesh_active_edge_get(), BM_mesh_elem_hflag_disable_all(), BM_mesh_elem_index_ensure(), bm_mesh_region_match_pair(), BM_select_history_clear(), BM_select_history_store, bm_uidwalk_clear(), bm_uidwalk_free(), bm_uidwalk_init(), BM_VERT, bm_vert_fasthash_create(), bm_vert_fasthash_destroy(), bm_vert_fasthash_edge_is_match(), printf, TIMEIT_END, TIMEIT_START, and USE_WALKER_REUSE.
Referenced by edbm_select_similar_region_exec().
|
static |
Given a face region and 2 candidate verts to begin mapping. return the matching region or nullptr.
Definition at line 706 of file bmesh_region_match.cc.
References BLI_assert, BLI_ghash_len(), BLI_ghashIterator_getKey(), BLI_linklist_free_pool(), BLI_listbase_count(), bm_uidwalk_clear(), bm_uidwalk_facestep_begin(), bm_uidwalk_facestep_end(), bm_uidwalk_facestep_free(), bm_uidwalk_free(), bm_uidwalk_init(), bm_uidwalk_init_from_edge(), bm_uidwalk_pass_add(), bm_uidwalk_rehash(), bm_uidwalk_rehash_reserve(), UIDFaceStep::faces, UIDWalk::faces_step, UIDWalk::faces_uid, ListBase::first, GHASH_ITER_INDEX, i, UIDFaceStep::items, UIDWalk::link_pool, UIDFaceStepItem::list, UIDFaceStepItem::list_len, MEM_mallocN(), UIDFaceStep::next, UIDFaceStepItem::next, UIDFaceStepItem::uid, UNLIKELY, and USE_WALKER_REUSE.
Referenced by BM_mesh_region_match().
Definition at line 314 of file bmesh_region_match.cc.
References BM_FACE_FIRST_LOOP, bm_uidwalk_face_lookup(), bm_uidwalk_vert_lookup(), BMLoop::f, BMFace::len, BMLoop::next, UIDWalk::pass, PRIME_FACE_LARGE, PRIME_FACE_SMALL, PRIME_VERT_SMALL, BMLoop::radial_next, and BMLoop::v.
Referenced by bm_uidwalk_facestep_begin(), bm_uidwalk_rehash(), and bm_uidwalk_rehash_facelinks().
Definition at line 259 of file bmesh_region_match.cc.
References BM_edge_other_vert(), BM_EDGES_OF_VERT, BM_FACES_OF_VERT, BM_ITER_ELEM, bm_uidwalk_face_lookup(), bm_uidwalk_vert_lookup(), e, UIDWalk::pass, PRIME_FACE_MID, PRIME_FACE_SMALL, PRIME_VERT_LARGE, PRIME_VERT_MID, PRIME_VERT_SMALL, and v.
Referenced by bm_uidwalk_pass_add(), and bm_uidwalk_rehash().
|
static |
Definition at line 215 of file bmesh_region_match.cc.
References BLI_ghash_clear(), BLI_gset_clear(), BLI_listbase_clear(), BLI_mempool_clear(), UIDWalk::cache, UIDWalk::faces_from_uid, UIDWalk::faces_step, UIDWalk::faces_uid, UIDWalk::link_pool, UIDWalk::pass, UIDWalk::step_pool, UIDWalk::step_pool_items, UIDWalk::use_face_isolate, and UIDWalk::verts_uid.
Referenced by BM_mesh_region_match(), and bm_mesh_region_match_pair().
| BLI_INLINE bool bm_uidwalk_face_lookup | ( | UIDWalk * | uidwalk, |
| BMFace * | f, | ||
| UID_Int * | r_uid ) |
Definition at line 142 of file bmesh_region_match.cc.
References BLI_ghash_lookup_p(), BLI_INLINE, UIDWalk::faces_uid, and ret.
Referenced by bm_uidwalk_calc_face_uid(), and bm_uidwalk_calc_vert_uid().
| BLI_INLINE bool bm_uidwalk_face_test | ( | UIDWalk * | uidwalk, |
| BMFace * | f ) |
Definition at line 123 of file bmesh_region_match.cc.
References BLI_INLINE, BM_elem_flag_test_bool, BM_ELEM_TAG, and UIDWalk::use_face_isolate.
Referenced by bm_uidwalk_init_from_edge(), and bm_uidwalk_pass_add().
|
static |
Put faces in lists based on their UID's, re-run for each pass since rehashing may differentiate face-groups.
Definition at line 618 of file bmesh_region_match.cc.
References BLI_addhead(), BLI_assert, BLI_ghash_clear(), BLI_ghash_ensure_p(), BLI_ghash_haskey(), BLI_ghash_len(), BLI_linklist_prepend_pool(), BLI_listbase_is_empty(), BLI_listbase_sort(), BLI_mempool_alloc(), BLI_mempool_free(), bm_uidwalk_calc_face_uid(), UIDWalk::cache, UIDFaceStep::faces, UIDWalk::faces_from_uid, UIDWalk::faces_uid, facestep_sort(), UIDFaceStep::items, LinkNode::link, UIDWalk::link_pool, UIDFaceStepItem::list, UIDFaceStepItem::list_len, LinkNode::next, UIDWalk::step_pool_items, and UIDFaceStepItem::uid.
Referenced by bm_mesh_region_match_pair().
|
static |
Cleans up temp data from bm_uidwalk_facestep_begin
Definition at line 674 of file bmesh_region_match.cc.
References BLI_mempool_free(), BLI_pophead(), UIDFaceStep::items, and UIDWalk::step_pool_items.
Referenced by bm_mesh_region_match_pair().
|
static |
Definition at line 682 of file bmesh_region_match.cc.
References BLI_assert, BLI_listbase_is_empty(), BLI_mempool_free(), BLI_remlink(), UIDFaceStep::faces, UIDWalk::faces_step, UIDFaceStep::items, UIDWalk::link_pool, LinkNode::next, and UIDWalk::step_pool.
Referenced by bm_mesh_region_match_pair().
|
static |
Handled by pools
Definition at line 237 of file bmesh_region_match.cc.
References BLI_ghash_free(), BLI_gset_free(), BLI_mempool_destroy(), UIDWalk::cache, UIDWalk::faces_from_uid, UIDWalk::faces_step, UIDWalk::faces_uid, UIDWalk::link_pool, MEM_SAFE_FREE, UIDWalk::rehash_store, UIDWalk::step_pool, UIDWalk::step_pool_items, and UIDWalk::verts_uid.
Referenced by BM_mesh_region_match(), and bm_mesh_region_match_pair().
|
static |
Definition at line 187 of file bmesh_region_match.cc.
References BLI_ghash_int_new(), BLI_listbase_clear(), BLI_mempool_create(), BLI_MEMPOOL_NOP, UIDWalk::cache, UIDWalk::faces_from_uid, UIDWalk::faces_step, UIDWalk::faces_uid, ghash_bmelem_new(), ghash_bmelem_new_ex(), gset_bmelem_new(), UIDWalk::link_pool, UIDWalk::pass, UIDWalk::rehash_store, UIDWalk::rehash_store_len, UIDWalk::step_pool, UIDWalk::step_pool_items, UIDWalk::use_face_isolate, and UIDWalk::verts_uid.
Referenced by BM_mesh_region_match(), and bm_mesh_region_match_pair().
Definition at line 554 of file bmesh_region_match.cc.
References BLI_array_alloca, BLI_assert, BLI_ghash_insert(), BLI_linklist_free_pool(), BLI_linklist_prepend_pool(), BM_edge_face_count(), bm_face_len_cmp(), bm_uidwalk_face_test(), bm_uidwalk_pass_add(), e, BMLoop::f, i, BMFace::len, len, UIDWalk::link_pool, PRIME_VERT_INIT, BMLoop::radial_next, and UIDWalk::verts_uid.
Referenced by bm_mesh_region_match_pair().
|
static |
Definition at line 463 of file bmesh_region_match.cc.
References BLI_addhead(), BLI_assert, BLI_ghash_clear(), BLI_ghash_ensure_p(), BLI_ghash_haskey(), BLI_ghash_insert(), BLI_ghash_len(), BLI_ghashIterator_getKey(), BLI_ghashIterator_getValue(), BLI_gset_clear(), BLI_gset_haskey(), BLI_gset_insert(), BLI_gset_len(), BLI_linklist_count(), BLI_linklist_prepend_pool(), BLI_listbase_clear(), BLI_mempool_alloc(), BM_FACE_FIRST_LOOP, bm_uidwalk_calc_vert_uid(), bm_uidwalk_face_test(), bm_uidwalk_rehash_facelinks(), bm_vert_is_uid_connect(), UIDWalk::cache, BMLoop::f, UIDFaceStep::faces, UIDWalk::faces_step, UIDWalk::faces_uid, GHASH_ITER, UIDFaceStep::items, LinkNode::link, UIDWalk::link_pool, BMLoop::next, LinkNode::next, UIDWalk::pass, BMLoop::radial_next, UIDWalk::step_pool, BMLoop::v, v, and UIDWalk::verts_uid.
Referenced by bm_mesh_region_match_pair(), and bm_uidwalk_init_from_edge().
|
static |
Re-hash all elements, delay updating so as not to create feedback loop.
Definition at line 378 of file bmesh_region_match.cc.
References BLI_ghash_len(), BLI_ghashIterator_getKey(), BLI_ghashIterator_getValue_p(), bm_uidwalk_calc_face_uid(), bm_uidwalk_calc_vert_uid(), bm_uidwalk_rehash_reserve(), UIDWalk::cache, UIDWalk::faces_uid, GHASH_ITER, i, UIDWalk::rehash_store, v, and UIDWalk::verts_uid.
Referenced by bm_mesh_region_match_pair().
|
static |
Definition at line 415 of file bmesh_region_match.cc.
References BLI_ghash_insert(), BLI_ghash_lookup_p(), bm_uidwalk_calc_face_uid(), bm_uidwalk_rehash_reserve(), UIDWalk::cache, faces, UIDWalk::faces_uid, i, LinkNode::link, LinkNode::next, and UIDWalk::rehash_store.
Referenced by bm_uidwalk_pass_add().
Definition at line 364 of file bmesh_region_match.cc.
References UIDWalk::cache, MEM_reallocN, UIDWalk::rehash_store, UIDWalk::rehash_store_len, and UNLIKELY.
Referenced by bm_mesh_region_match_pair(), bm_uidwalk_rehash(), and bm_uidwalk_rehash_facelinks().
| BLI_INLINE bool bm_uidwalk_vert_lookup | ( | UIDWalk * | uidwalk, |
| BMVert * | v, | ||
| UID_Int * | r_uid ) |
Definition at line 131 of file bmesh_region_match.cc.
References BLI_ghash_lookup_p(), BLI_INLINE, ret, v, and UIDWalk::verts_uid.
Referenced by bm_uidwalk_calc_face_uid(), and bm_uidwalk_calc_vert_uid().
|
static |
Definition at line 1261 of file bmesh_region_match.cc.
References bm, BM_edge_is_wire(), BM_EDGES_OF_MESH, BM_elem_index_get, BM_ITER_MESH, BM_ITER_MESH_INDEX, bm_vert_fasthash_single(), BM_VERTS_OF_MESH, e, i, MEM_freeN(), MEM_malloc_arrayN(), and v.
Referenced by BM_mesh_region_match().
|
static |
Definition at line 1319 of file bmesh_region_match.cc.
References MEM_freeN().
Referenced by BM_mesh_region_match().
|
static |
Definition at line 1308 of file bmesh_region_match.cc.
References bm_vert_fasthash_edge_order().
Referenced by BM_mesh_region_match().
|
static |
Definition at line 1296 of file bmesh_region_match.cc.
References BM_elem_index_get, and e.
Referenced by bm_vert_fasthash_edge_is_match().
|
static |
Definition at line 1233 of file bmesh_region_match.cc.
References BM_edge_is_wire(), BM_EDGES_OF_VERT, BM_ITER_ELEM, e, BMLoop::f, BMFace::len, PRIME_EDGE, PRIME_FACE, PRIME_LOOP, BMLoop::radial_next, and v.
Referenced by bm_vert_fasthash_create().
Definition at line 449 of file bmesh_region_match.cc.
References BLI_ghash_haskey(), BM_edge_other_vert(), BM_EDGES_OF_VERT, BM_ITER_ELEM, e, v, and UIDWalk::verts_uid.
Referenced by bm_uidwalk_pass_add().
|
static |
Definition at line 607 of file bmesh_region_match.cc.
References b, and UIDFaceStepItem::uid.
Referenced by bm_uidwalk_facestep_begin().
|
static |
Definition at line 177 of file bmesh_region_match.cc.
References ghash_bmelem_new_ex().
Referenced by bm_uidwalk_init().
Definition at line 165 of file bmesh_region_match.cc.
References BLI_ghash_new_ex(), ghashutil_bmelem_indexcmp(), and ghashutil_bmelem_indexhash().
Referenced by bm_uidwalk_init(), and ghash_bmelem_new().
|
static |
Definition at line 159 of file bmesh_region_match.cc.
References b, BLI_assert, and BM_elem_index_get.
Referenced by ghash_bmelem_new_ex(), and gset_bmelem_new_ex().
|
static |
Definition at line 153 of file bmesh_region_match.cc.
References BM_elem_index_get.
Referenced by ghash_bmelem_new_ex(), and gset_bmelem_new_ex().
|
static |
Definition at line 182 of file bmesh_region_match.cc.
References gset_bmelem_new_ex().
Referenced by bm_uidwalk_init().
Definition at line 171 of file bmesh_region_match.cc.
References BLI_gset_new_ex(), ghashutil_bmelem_indexcmp(), and ghashutil_bmelem_indexhash().
Referenced by gset_bmelem_new().