Blender
V3.3
|
#include "MEM_guardedalloc.h"
#include "DNA_meshdata_types.h"
#include "BLI_math.h"
#include "bmesh.h"
#include "BKE_customdata.h"
#include "BKE_deform.h"
#include "bmesh_wireframe.h"
Go to the source code of this file.
Macros | |
#define | VERT_DUPE_TEST_ORIG(v) (verts_neg[BM_elem_index_get(v)] != NULL) |
#define | VERT_DUPE_TEST(v) (verts_pos[BM_elem_index_get(v)] != NULL) |
#define | VERT_DUPE_CLEAR(v) |
Functions | |
static BMLoop * | bm_edge_tag_faceloop (BMEdge *e) |
static void | bm_vert_boundary_tangent (BMVert *v, float r_no[3], float r_no_face[3], BMVert **r_va_other, BMVert **r_vb_other) |
static bool | bm_loop_is_radial_boundary (BMLoop *l_first) |
void | BM_mesh_wireframe (BMesh *bm, const float offset, const float offset_fac, const float offset_fac_vg, const bool use_replace, const bool use_boundary, const bool use_even_offset, const bool use_relative_offset, const bool use_crease, const float crease_weight, const int defgrp_index, const bool defgrp_invert, const short mat_offset, const short mat_max, const bool use_tag) |
Creates a solid wireframe from connected faces.
Definition in file bmesh_wireframe.c.
#define VERT_DUPE_TEST | ( | v | ) | (verts_pos[BM_elem_index_get(v)] != NULL) |
#define VERT_DUPE_TEST_ORIG | ( | v | ) | (verts_neg[BM_elem_index_get(v)] != NULL) |
Definition at line 22 of file bmesh_wireframe.c.
References BM_elem_flag_test, BM_ELEM_TAG, e, BMLoop::f, l, NULL, and BMLoop::radial_next.
Referenced by bm_vert_boundary_tangent().
Definition at line 124 of file bmesh_wireframe.c.
References BM_elem_flag_test, BM_ELEM_TAG, BMLoop::f, l, and BMLoop::radial_next.
Referenced by BM_mesh_wireframe().
void BM_mesh_wireframe | ( | BMesh * | bm, |
float | offset, | ||
float | offset_fac, | ||
float | offset_fac_vg, | ||
bool | use_replace, | ||
bool | use_boundary, | ||
bool | use_even_offset, | ||
bool | use_relative_offset, | ||
bool | use_crease, | ||
float | crease_weight, | ||
int | defgrp_index, | ||
bool | defgrp_invert, | ||
short | mat_offset, | ||
short | mat_max, | ||
bool | use_tag | ||
) |
defgrp_index | Vertex group index, -1 for no vertex groups. |
Definition at line 141 of file bmesh_wireframe.c.
References angle_on_axis_v3v3v3_v3(), BKE_defvert_find_weight(), BLI_assert, bm, BM_CREATE_NOP, BM_data_layer_add(), BM_edge_exists(), BM_elem_attrs_copy(), BM_ELEM_CD_GET_VOID_P, BM_ELEM_CD_SET_FLOAT, BM_elem_flag_disable, BM_elem_flag_enable, BM_elem_flag_set, BM_elem_flag_test, BM_elem_index_get, BM_elem_index_set, BM_ELEM_TAG, BM_FACE, BM_face_create_quad_tri(), BM_FACE_FIRST_LOOP, BM_FACES_OF_MESH, BM_ITER_ELEM, BM_ITER_MESH, BM_ITER_MESH_INDEX, BM_LOOP, BM_loop_calc_face_angle(), BM_loop_calc_face_tangent(), bm_loop_is_radial_boundary(), BM_LOOPS_OF_FACE, BM_mesh_elem_hflag_disable_all(), BM_VERT, bm_vert_boundary_tangent(), BM_vert_calc_median_tagged_edge_length(), BM_vert_create(), BM_vert_kill(), BM_VERTS_OF_MESH, CD_CREASE, CD_MDEFORMVERT, CLAMPIS, BMVert::co, CustomData_get_offset(), BMLoop::e, BMesh::edata, BMesh::elem_index_dirty, l, BMFace::len, M_PI, madd_v3_v3fl(), madd_v3_v3v3fl(), BMFace::mat_nr, MEM_freeN, MEM_mallocN, BMLoop::next, BMVert::no, NULL, offset, BMLoop::prev, shell_angle_to_dist(), BMesh::totvert, BMLoop::v, BMesh::vdata, VERT_DUPE_CLEAR, VERT_DUPE_TEST, and VERT_DUPE_TEST_ORIG.
Referenced by bmo_wireframe_exec(), and WireframeModifier_do().
|
static |
Definition at line 37 of file bmesh_wireframe.c.
References add_v3_v3(), add_v3_v3v3(), BM_edge_calc_face_tangent(), BM_edge_other_vert(), bm_edge_tag_faceloop(), BM_EDGES_OF_VERT, BM_elem_flag_test, BM_ELEM_TAG, BM_ITER_ELEM, BMVert::co, copy_v3_v3(), cross_v3_v3v3(), dot_v3v3(), BMLoop::f, l_b, negate_v3(), BMFace::no, normalize_v3(), NULL, sub_v3_v3v3(), and v.
Referenced by BM_mesh_wireframe().