|
Blender V4.3
|
Go to the source code of this file.
Classes | |
| struct | BMWalker |
Macros | |
| #define | BMW_MASK_NOP 0 |
| #define | BMW_ITER(ele, walker, data) |
| #define | BMW_NIL_LAY 0 |
Typedefs | |
| typedef struct BMWalker | BMWalker |
Enumerations | |
| enum | BMWOrder { BMW_DEPTH_FIRST , BMW_BREADTH_FIRST } |
| enum | BMWFlag { BMW_FLAG_NOP = 0 , BMW_FLAG_TEST_HIDDEN = (1 << 0) } |
| enum | { BMW_VERT_SHELL , BMW_LOOP_SHELL , BMW_LOOP_SHELL_WIRE , BMW_FACE_SHELL , BMW_EDGELOOP , BMW_FACELOOP , BMW_EDGERING , BMW_EDGEBOUNDARY , BMW_EDGELOOP_NONMANIFOLD , BMW_LOOPDATA_ISLAND , BMW_ISLANDBOUND , BMW_ISLAND , BMW_ISLAND_MANIFOLD , BMW_CONNECTED_VERTEX , BMW_CUSTOM , BMW_MAXWALKERS } |
Functions | |
| void | BMW_init (struct BMWalker *walker, BMesh *bm, int type, short mask_vert, short mask_edge, short mask_face, BMWFlag flag, int layer) |
| Init Walker. | |
| void * | BMW_begin (BMWalker *walker, void *start) |
| void * | BMW_step (struct BMWalker *walker) |
| Step Walker. | |
| void | BMW_end (struct BMWalker *walker) |
| End Walker. | |
| int | BMW_current_depth (BMWalker *walker) |
| Walker Current Depth. | |
| void * | BMW_current_state (BMWalker *walker) |
| Current Walker State. | |
| void * | BMW_state_add (BMWalker *walker) |
| Add a new Walker State. | |
| void | BMW_state_remove (BMWalker *walker) |
| Remove Current Walker State. | |
| void * | BMW_walk (BMWalker *walker) |
| Main Walking Function. | |
| void | BMW_reset (BMWalker *walker) |
| Reset Walker. | |
| #define BMW_ITER | ( | ele, | |
| walker, | |||
| data ) |
Definition at line 130 of file bmesh_walkers.hh.
Referenced by edbm_select_linked_exec(), and edbm_select_linked_pick_ex().
| #define BMW_MASK_NOP 0 |
Definition at line 56 of file bmesh_walkers.hh.
Referenced by BM_mesh_decimate_unsubdivide_ex(), bmo_collapse_exec(), bmo_collapsecon_do_layer(), bmo_dissolve_faces_exec(), check_hole_in_region(), edbm_select_linked_exec(), edbm_select_linked_pick_ex(), edgering_select(), view3d_preselect_mesh_edgering_update_edges_from_edge(), walker_select(), and walker_select_count().
| #define BMW_NIL_LAY 0 |
Definition at line 172 of file bmesh_walkers.hh.
Referenced by BM_mesh_decimate_unsubdivide_ex(), bmo_collapse_exec(), bmo_dissolve_faces_exec(), check_hole_in_region(), edbm_select_linked_exec(), edbm_select_linked_pick_ex(), edgering_select(), view3d_preselect_mesh_edgering_update_edges_from_edge(), walker_deselect_nth(), walker_select(), and walker_select_count().
| typedef struct BMWalker BMWalker |
| anonymous enum |
Definition at line 148 of file bmesh_walkers.hh.
| enum BMWFlag |
| Enumerator | |
|---|---|
| BMW_FLAG_NOP | |
| BMW_FLAG_TEST_HIDDEN | |
Definition at line 20 of file bmesh_walkers.hh.
| enum BMWOrder |
| Enumerator | |
|---|---|
| BMW_DEPTH_FIRST | |
| BMW_BREADTH_FIRST | |
Definition at line 15 of file bmesh_walkers.hh.
| void * BMW_begin | ( | BMWalker * | walker, |
| void * | start ) |
Definition at line 40 of file bmesh_walkers.cc.
References BMWalker::begin, BMWalker::begin_htype, BLI_assert, BMW_current_state(), and BMWalker::step.
Referenced by BM_mesh_decimate_unsubdivide_ex(), bmo_collapse_exec(), bmo_collapsecon_do_layer(), bmo_dissolve_faces_exec(), check_hole_in_region(), edgering_select(), view3d_preselect_mesh_edgering_update_edges_from_edge(), walker_deselect_nth(), walker_select(), and walker_select_count().
Walker Current Depth.
Returns the current depth of the walker.
Definition at line 123 of file bmesh_walkers.cc.
References BMWalker::depth.
Referenced by BM_mesh_decimate_unsubdivide_ex(), and walker_deselect_nth().
| void * BMW_current_state | ( | BMWalker * | walker | ) |
Current Walker State.
Returns the first state from the walker state worklist. This state is the next in the worklist for processing.
Definition at line 141 of file bmesh_walkers.cc.
References BMWalker::depth, BMwGenericWalker::depth, ListBase::first, and BMWalker::states.
Referenced by BMW_begin(), bmw_ConnectedVertexWalker_yield(), bmw_EdgeboundaryWalker_yield(), bmw_EdgeLoopWalker_begin(), bmw_EdgeLoopWalker_yield(), bmw_EdgeringWalker_begin(), bmw_EdgeringWalker_yield(), bmw_FaceLoopWalker_begin(), bmw_FaceLoopWalker_yield(), bmw_FaceShellWalker_yield(), bmw_IslandboundWalker_step(), bmw_IslandboundWalker_yield(), bmw_IslandWalker_yield(), bmw_LoopShellWalker_yield(), bmw_LoopShellWireWalker_yield(), bmw_NonManifoldedgeWalker_yield(), BMW_reset(), BMW_state_remove(), bmw_UVEdgeWalker_yield(), bmw_VertShellWalker_yield(), and BMW_walk().
| void BMW_end | ( | struct BMWalker * | walker | ) |
End Walker.
Frees a walker's worklist.
Definition at line 107 of file bmesh_walkers.cc.
References BLI_gset_free(), BLI_mempool_destroy(), BMWalker::visit_set, BMWalker::visit_set_alt, and BMWalker::worklist.
Referenced by BM_mesh_decimate_unsubdivide_ex(), bmo_collapse_exec(), bmo_collapsecon_do_layer(), bmo_dissolve_faces_exec(), check_hole_in_region(), edbm_select_linked_exec(), edbm_select_linked_pick_ex(), edgering_select(), view3d_preselect_mesh_edgering_update_edges_from_edge(), walker_deselect_nth(), walker_select(), and walker_select_count().
| void BMW_init | ( | struct BMWalker * | walker, |
| BMesh * | bm, | ||
| int | type, | ||
| short | mask_vert, | ||
| short | mask_edge, | ||
| short | mask_face, | ||
| BMWFlag | flag, | ||
| int | layer ) |
Init Walker.
Allocates and returns a new mesh walker of a given type. The elements visited are filtered by the bitmask 'searchmask'.
Definition at line 49 of file bmesh_walkers.cc.
References BMWalker::begin, BMWalker::begin_htype, BLI_assert, BLI_gset_ptr_new(), BLI_listbase_clear(), BLI_mempool_create(), BLI_MEMPOOL_NOP, bm, BMWalker::bm, BM_EDGE, BM_FACE, BM_VERT, bm_walker_types, BMW_CUSTOM, BMW_MAXWALKERS, BMWalker::flag, flag, BMWalker::layer, BMWalker::mask_edge, BMWalker::mask_face, BMWalker::mask_vert, BMWalker::order, BMWalker::states, BMWalker::step, BMWalker::structsize, UNLIKELY, BMWalker::valid_mask, BMWalker::visit_set, BMWalker::visit_set_alt, BMWalker::worklist, and BMWalker::yield.
Referenced by BM_mesh_decimate_unsubdivide_ex(), bmo_collapse_exec(), bmo_collapsecon_do_layer(), bmo_dissolve_faces_exec(), check_hole_in_region(), edbm_select_linked_exec(), edbm_select_linked_pick_ex(), edgering_select(), view3d_preselect_mesh_edgering_update_edges_from_edge(), walker_deselect_nth(), walker_select(), and walker_select_count().
| void BMW_reset | ( | BMWalker * | walker | ) |
Reset Walker.
Frees all states from the worklist, resetting the walker for reuse in a new walk.
Definition at line 187 of file bmesh_walkers.cc.
References BLI_gset_clear(), BMW_current_state(), BMW_state_remove(), BMWalker::depth, BMWalker::visit_set, and BMWalker::visit_set_alt.
| void * BMW_state_add | ( | BMWalker * | walker | ) |
Add a new Walker State.
Allocate a new empty state and put it on the worklist. A pointer to the new state is returned so that the caller can fill in the state data. The new state will be inserted at the front for depth-first walks, and at the end for breadth-first walks.
Definition at line 168 of file bmesh_walkers.cc.
References BLI_addhead(), BLI_addtail(), BLI_assert, BLI_mempool_alloc(), BMW_BREADTH_FIRST, BMW_DEPTH_FIRST, BMWalker::depth, BMwGenericWalker::depth, BMWalker::order, BMWalker::states, and BMWalker::worklist.
Referenced by bmw_ConnectedVertexWalker_visitVertex(), bmw_EdgeboundaryWalker_begin(), bmw_EdgeboundaryWalker_step(), bmw_EdgeLoopWalker_begin(), bmw_EdgeLoopWalker_step(), bmw_EdgeringWalker_begin(), bmw_EdgeringWalker_step(), bmw_FaceLoopWalker_begin(), bmw_FaceLoopWalker_step(), bmw_FaceShellWalker_visitEdge(), bmw_IslandboundWalker_begin(), bmw_IslandboundWalker_step(), bmw_IslandWalker_begin(), bmw_IslandWalker_step_ex(), bmw_LoopShellWalker_visitEdgeWire(), bmw_LoopShellWalker_visitLoop(), bmw_NonManifoldedgeWalker_begin(), bmw_NonManifoldedgeWalker_step(), bmw_UVEdgeWalker_begin(), bmw_UVEdgeWalker_step(), and bmw_VertShellWalker_visitEdge().
| void BMW_state_remove | ( | BMWalker * | walker | ) |
Remove Current Walker State.
Remove and free an item from the end of the walker state worklist.
Definition at line 160 of file bmesh_walkers.cc.
References BLI_mempool_free(), BLI_remlink(), BMW_current_state(), BMWalker::states, and BMWalker::worklist.
Referenced by bmw_IslandboundWalker_step(), and BMW_reset().
| void * BMW_step | ( | struct BMWalker * | walker | ) |
Step Walker.
Definition at line 114 of file bmesh_walkers.cc.
References BMW_walk().
Referenced by BM_mesh_decimate_unsubdivide_ex(), bmo_collapse_exec(), bmo_collapsecon_do_layer(), bmo_dissolve_faces_exec(), check_hole_in_region(), edgering_select(), view3d_preselect_mesh_edgering_update_edges_from_edge(), walker_deselect_nth(), walker_select(), and walker_select_count().
| void * BMW_walk | ( | BMWalker * | walker | ) |
Main Walking Function.
Steps a mesh walker forward by one element
Definition at line 128 of file bmesh_walkers.cc.
References BMW_current_state(), and BMWalker::step.
Referenced by bmw_EdgeLoopWalker_begin(), bmw_EdgeringWalker_begin(), bmw_FaceLoopWalker_begin(), and BMW_step().