|
Blender V4.3
|
#include "bmesh_structure.hh"Go to the source code of this file.
Macros | |
| #define | BM_CHECK_ELEMENT(el) |
| #define | BM_ELEM_API_FLAG_ENABLE(element, f) |
| #define | BM_ELEM_API_FLAG_DISABLE(element, f) |
| #define | BM_ELEM_API_FLAG_TEST(element, f) ((element)->head.api_flag & (f)) |
| #define | BM_ELEM_API_FLAG_CLEAR(element) |
Enumerations | |
| enum | { _FLAG_JF = (1 << 0) , _FLAG_MF = (1 << 1) , _FLAG_MV = (1 << 1) , _FLAG_OVERLAP = (1 << 2) , _FLAG_WALK = (1 << 3) , _FLAG_WALK_ALT = (1 << 4) , _FLAG_ELEM_CHECK = (1 << 7) } |
Functions | |
| int | bmesh_elem_check (void *element, char htype) |
| int | bmesh_radial_length (const BMLoop *l) |
| int | bmesh_disk_count_at_most (const BMVert *v, int count_max) |
| int | bmesh_disk_count (const BMVert *v) |
| void | poly_rotate_plane (const float normal[3], float(*verts)[3], uint nverts) |
| POLY ROTATE PLANE. | |
Private function prototypes for bmesh public API. This file is a grab-bag of functions from various parts of the bmesh internals.
Definition in file bmesh_private.hh.
| #define BM_CHECK_ELEMENT | ( | el | ) |
Definition at line 29 of file bmesh_private.hh.
Referenced by BM_edge_create(), BM_edge_splice(), BM_face_create(), BM_face_kill(), BM_face_kill_loose(), BM_faces_join(), bm_subdivide_multicut(), BM_vert_create(), BM_vert_splice(), bmesh_kernel_edge_separate(), bmesh_kernel_join_edge_kill_vert(), bmesh_kernel_join_face_kill_edge(), bmesh_kernel_join_vert_kill_edge(), bmesh_kernel_loop_reverse(), bmesh_kernel_split_edge_make_vert(), bmesh_kernel_split_face_make_edge(), bmesh_kernel_unglue_region_make_vert(), and bmo_subdivide_edges_exec().
| #define BM_ELEM_API_FLAG_CLEAR | ( | element | ) |
Definition at line 74 of file bmesh_private.hh.
Referenced by bmo_flag_layer_alloc(), and bmo_flag_layer_free().
| #define BM_ELEM_API_FLAG_DISABLE | ( | element, | |
| f ) |
Definition at line 68 of file bmesh_private.hh.
Referenced by BM_edge_split(), bm_edges_sort_winding(), bm_elements_systag_disable(), BM_face_copy_shared(), BM_face_exists_overlap(), BM_face_exists_overlap_subset(), BM_face_split_edgenet(), bm_face_split_edgenet_find_loop_walk(), BM_faces_join(), bm_isect_tri_tri(), BM_lnorspace_rebuild(), bm_loop_region_count__clear(), BM_select_history_merge_from_targetmap(), BM_vert_splice_check_double(), BM_verts_in_face(), BM_verts_in_face_count(), bmesh_elem_check(), bmesh_kernel_unglue_region_make_vert_multi(), and bmesh_kernel_vert_separate().
| #define BM_ELEM_API_FLAG_ENABLE | ( | element, | |
| f ) |
Definition at line 63 of file bmesh_private.hh.
Referenced by BM_edge_split(), bm_edges_sort_winding(), bm_elements_systag_enable(), BM_face_copy_shared(), BM_face_exists_overlap(), BM_face_exists_overlap_subset(), BM_face_split_edgenet(), bm_face_split_edgenet_find_loop_walk(), BM_faces_join(), BM_lnorspace_invalidate(), bm_loop_region_count__recursive(), BM_select_history_merge_from_targetmap(), BM_vert_splice_check_double(), BM_verts_in_face(), BM_verts_in_face_count(), bmesh_elem_check(), bmesh_kernel_unglue_region_make_vert_multi(), and bmesh_kernel_vert_separate().
| #define BM_ELEM_API_FLAG_TEST | ( | element, | |
| f ) ((element)->head.api_flag & (f)) |
Definition at line 73 of file bmesh_private.hh.
Referenced by bm_edge_flagged_radial_count(), bm_edge_flagged_radial_first(), BM_edge_split(), bm_edges_sort_winding(), BM_face_copy_shared(), BM_face_exists_overlap(), BM_face_exists_overlap_subset(), BM_face_split_edgenet(), bm_face_split_edgenet_find_loop_pair(), bm_face_split_edgenet_find_loop_pair_exists(), bm_face_split_edgenet_find_loop_walk(), BM_faces_join(), bm_isect_tri_tri(), BM_lnorspace_rebuild(), bm_loop_region_count__recursive(), bm_loop_systag_count_radial(), bm_mesh_loops_calc_normals__single_threaded(), bm_mesh_loops_calc_normals_for_vert_with_clnors(), bm_mesh_loops_calc_normals_for_vert_without_clnors(), BM_select_history_merge_from_targetmap(), bm_vert_is_manifold_flagged(), BM_vert_splice_check_double(), bm_vert_systag_count_disk(), BM_verts_in_face(), BM_verts_in_face_count(), bmesh_elem_check(), bmesh_kernel_unglue_region_make_vert_multi(), and bmesh_kernel_vert_separate().
| anonymous enum |
Internal BMHeader.api_flag
| Enumerator | |
|---|---|
| _FLAG_JF | |
| _FLAG_MF | |
| _FLAG_MV | |
| _FLAG_OVERLAP | |
| _FLAG_WALK | |
| _FLAG_WALK_ALT | |
| _FLAG_ELEM_CHECK | |
Definition at line 52 of file bmesh_private.hh.
Definition at line 200 of file bmesh_structure.cc.
References bmesh_disk_edge_next(), count, BMVert::e, and v.
Referenced by BM_vert_collapse_faces(), BM_vert_edge_count(), bmesh_kernel_join_edge_kill_vert(), and bmesh_kernel_split_edge_make_vert().
Definition at line 213 of file bmesh_structure.cc.
References bmesh_disk_edge_next(), count, BMVert::e, and v.
Referenced by BM_vert_edge_count_at_most(), bmesh_disk_validate(), bmesh_elem_check(), and bmesh_kernel_join_edge_kill_vert().
| int bmesh_elem_check | ( | void * | element, |
| char | htype ) |
Check the element is valid.
BMESH_TODO, when this raises an error the output is incredibly confusing. need to have some nice way to print/debug what the heck's going on.
Definition at line 554 of file bmesh_core.cc.
References _FLAG_ELEM_CHECK, BLI_assert, BM_EDGE, BM_ELEM_API_FLAG_DISABLE, BM_ELEM_API_FLAG_ENABLE, BM_ELEM_API_FLAG_TEST, BM_FACE, BM_FACE_FIRST_LOOP, BM_LOOP, BM_NGON_MAX, BM_VERT, BM_vert_in_edge(), BMESH_ASSERT, bmesh_disk_count_at_most(), bmesh_radial_length(), bmesh_radial_validate(), BMLoop::e, BMVert::e, e, element, BMLoop::f, BMEdge::head, BMFace::head, BMVert::head, BMHeader::htype, IS_EDGE_NULL_DISK_LINK, IS_EDGE_NULL_RADIAL_LINK, IS_EDGE_WRONG_FACE_TYPE, IS_EDGE_WRONG_LOOP_TYPE, IS_EDGE_ZERO_FACE_LENGTH, IS_FACE_LOOP_DUPE_EDGE, IS_FACE_LOOP_DUPE_LOOP, IS_FACE_LOOP_DUPE_VERT, IS_FACE_LOOP_VERT_NOT_IN_EDGE, IS_FACE_LOOP_WRONG_DISK_LENGTH, IS_FACE_LOOP_WRONG_RADIAL_LENGTH, IS_FACE_NULL_EDGE, IS_FACE_NULL_LOOP, IS_FACE_NULL_VERT, IS_FACE_WRONG_LENGTH, IS_FACE_WRONG_LOOP_FACE, IS_LOOP_NULL_CYCLE_LINK, IS_LOOP_VERT_NOT_IN_EDGE, IS_LOOP_WRONG_EDGE_TYPE, IS_LOOP_WRONG_FACE_LENGTH, IS_LOOP_WRONG_FACE_TYPE, IS_LOOP_WRONG_RADIAL_LENGTH, IS_LOOP_WRONG_VERT_TYPE, IS_LOOP_ZERO_FACE_LENGTH, IS_NULL, IS_VERT_WRONG_EDGE_TYPE, IS_WRONG_TYPE, l, BMFace::l_first, BMFace::len, len, BMLoop::next, BMLoop::radial_next, BMLoop::radial_prev, BMLoop::v, and v.
Definition at line 466 of file bmesh_structure.cc.
References BM_LOOP_RADIAL_MAX, BMESH_ASSERT, l, BMLoop::radial_next, and UNLIKELY.
Referenced by BM_edge_splice(), bmesh_elem_check(), bmesh_kernel_edge_separate(), bmesh_kernel_join_edge_kill_vert(), bmesh_kernel_split_edge_make_vert(), and bmesh_radial_validate().
POLY ROTATE PLANE.
Rotates a polygon so that its normal is pointing towards the mesh Z axis
Definition at line 581 of file bmesh_polygon.cc.
References axis_dominant_v3_to_m3(), copy_v3_v3(), mul_v2_m3v3(), and verts.
Referenced by quad_co().