Blender
V3.3
|
#include "BLI_alloca.h"
#include "BLI_linklist_stack.h"
#include "BLI_math.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 float | bm_face_subset_calc_planar (BMLoop *l_first, BMLoop *l_last, const float no[3]) |
static bool | bm_face_split_find (BMesh *bm, BMFace *f, BMLoop *l_pair[2], float *r_angle_cos) |
static bool | bm_face_split_by_angle (BMesh *bm, BMFace *f, BMFace *r_f_pair[2], const float angle_limit_cos) |
void | bmo_connect_verts_nonplanar_exec (BMesh *bm, BMOperator *op) |
Connect verts non-planer faces iteratively (splits faces).
Definition in file bmo_connect_nonplanar.c.
#define EDGE_OUT (1 << 0) |
Definition at line 18 of file bmo_connect_nonplanar.c.
#define FACE_OUT (1 << 1) |
Definition at line 19 of file bmo_connect_nonplanar.c.
|
static |
Definition at line 104 of file bmo_connect_nonplanar.c.
References bm, BM_face_split(), bm_face_split_find(), BMO_edge_flag_enable, BMO_face_flag_enable, BMLoop::e, EDGE_OUT, FACE_OUT, and NULL.
Referenced by bmo_connect_verts_nonplanar_exec().
|
static |
Definition at line 46 of file bmo_connect_nonplanar.c.
References BLI_array_alloca, bm, BM_face_calc_normal_subset(), BM_FACE_FIRST_LOOP, BM_face_splits_check_legal(), bm_face_subset_calc_planar(), BM_loop_is_adjacent(), dot_v3v3(), l_b, BMFace::len, and BMLoop::next.
Referenced by bm_face_split_by_angle().
|
static |
Calculates how non-planar the face subset is.
Definition at line 24 of file bmo_connect_nonplanar.c.
References axis_dominant_v3_to_m3(), BMVert::co, dot_m3_v3_row_z(), fabsf, BMLoop::next, and BMLoop::v.
Referenced by bm_face_split_find().
void bmo_connect_verts_nonplanar_exec | ( | BMesh * | bm, |
BMOperator * | op | ||
) |
Definition at line 131 of file bmo_connect_nonplanar.c.
References BLI_LINKSTACK_DECLARE, BLI_LINKSTACK_FREE, BLI_LINKSTACK_INIT, BLI_LINKSTACK_POP, BLI_LINKSTACK_PUSH, bm, BM_EDGE, BM_FACE, BM_face_normal_update(), bm_face_split_by_angle(), BMO_ITER, BMO_slot_buffer_from_enabled_flag(), BMO_slot_float_get(), cosf, EDGE_OUT, FACE_OUT, BMFace::len, len, BMOperator::slots_in, and BMOperator::slots_out.