Blender
V3.3
|
#include "MEM_guardedalloc.h"
#include "BLI_alloca.h"
#include "BLI_heap.h"
#include "BLI_linklist.h"
#include "BLI_math.h"
#include "BLI_memarena.h"
#include "BLI_polyfill_2d.h"
#include "BLI_polyfill_2d_beautify.h"
#include "BLI_utildefines.h"
#include "bmesh.h"
#include "intern/bmesh_operators_private.h"
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, struct 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.c.
#define EDGE_OUT (1 << 0) |
Definition at line 32 of file bmo_connect_concave.c.
#define FACE_OUT (1 << 1) |
Definition at line 33 of file bmo_connect_concave.c.
Definition at line 35 of file bmo_connect_concave.c.
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().
Definition at line 163 of file bmo_connect_concave.c.
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 66 of file bmo_connect_concave.c.
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(), blender::math::cross(), cross_tri_v3(), dot_v3v3(), e, EDGE_OUT, eps, BMLoop::f, FACE_OUT, l, BMFace::len, LinkNode::link, MEM_freeN, LinkNode::next, BMLoop::next, next, BMFace::no, normal, NULL, 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 183 of file bmo_connect_concave.c.
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, NULL, BMOperator::slots_in, and BMOperator::slots_out.