|
Blender V4.3
|
#include "MEM_guardedalloc.h"#include "BLI_alloca.h"#include "BLI_heap.h"#include "BLI_linklist.h"#include "BLI_math_geom.h"#include "BLI_math_vector.h"#include "BLI_memarena.h"#include "BLI_polyfill_2d.h"#include "BLI_polyfill_2d_beautify.h"#include "BLI_utildefines.h"#include "bmesh.hh"#include "intern/bmesh_operators_private.hh"Go to the source code of this file.
Macros | |
| #define | EDGE_OUT (1 << 0) |
| #define | FACE_OUT (1 << 1) |
Functions | |
| static int | bm_edge_length_cmp (const void *a_, const void *b_) |
| static bool | bm_face_split_by_concave (BMesh *bm, BMFace *f_base, const float eps, MemArena *pf_arena, Heap *pf_heap) |
| static bool | bm_face_convex_tag_verts (BMFace *f) |
| void | bmo_connect_verts_concave_exec (BMesh *bm, BMOperator *op) |
Connect vertices so all resulting faces are convex.
Implementation:
Definition in file bmo_connect_concave.cc.
| #define EDGE_OUT (1 << 0) |
Definition at line 35 of file bmo_connect_concave.cc.
Referenced by bm_face_split_by_concave(), and bmo_connect_verts_concave_exec().
| #define FACE_OUT (1 << 1) |
Definition at line 36 of file bmo_connect_concave.cc.
Referenced by bm_face_split_by_concave(), and bmo_connect_verts_concave_exec().
|
static |
Definition at line 38 of file bmo_connect_concave.cc.
References BM_edge_calc_length_squared(), BM_elem_flag_test, BM_ELEM_TAG, BMEdge::v1, and BMEdge::v2.
Referenced by bm_face_split_by_concave().
|
static |
Definition at line 166 of file bmo_connect_concave.cc.
References BM_elem_flag_disable, BM_elem_flag_enable, BM_ELEM_TAG, BM_FACE_FIRST_LOOP, BM_loop_is_convex(), BMFace::len, BMLoop::next, and BMLoop::v.
Referenced by bmo_connect_verts_concave_exec().
|
static |
Definition at line 69 of file bmo_connect_concave.cc.
References BLI_array_alloca, BLI_assert, BLI_heap_clear(), bm, BM_edge_is_contiguous(), bm_edge_length_cmp(), BM_edge_loop_pair(), BM_face_kill(), BM_face_triangulate(), BM_faces_join(), BMO_edge_flag_enable, BMO_face_flag_enable, BMVert::co, copy_v3_v3(), cross(), cross_tri_v3(), dot_v3v3(), e, EDGE_OUT, eps, BMLoop::f, FACE_OUT, l, BMFace::len, LinkNode::link, MEM_freeN(), BMLoop::next, LinkNode::next, next, BMFace::no, BMLoop::prev, BMLoop::radial_next, and BMLoop::v.
Referenced by bmo_connect_verts_concave_exec().
| void bmo_connect_verts_concave_exec | ( | BMesh * | bm, |
| BMOperator * | op ) |
Definition at line 186 of file bmo_connect_concave.cc.
References BLI_heap_free(), BLI_heap_new_ex(), BLI_memarena_free(), BLI_memarena_new(), BLI_POLYFILL_ALLOC_NGON_RESERVE, BLI_POLYFILL_ARENA_SIZE, bm, BM_EDGE, BM_FACE, bm_face_convex_tag_verts(), bm_face_split_by_concave(), BMO_ITER, BMO_slot_buffer_from_enabled_flag(), EDGE_OUT, FACE_OUT, BMFace::len, BMOperator::slots_in, and BMOperator::slots_out.