Blender  V3.3
Macros | Functions
bmesh_wireframe.c File Reference
#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 BMLoopbm_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)
 

Detailed Description

Creates a solid wireframe from connected faces.

Definition in file bmesh_wireframe.c.

Macro Definition Documentation

◆ VERT_DUPE_CLEAR

#define VERT_DUPE_CLEAR (   v)
Value:
{ \
verts_pos[BM_elem_index_get(v)] = NULL; \
} \
(void)0
#define BM_elem_index_get(ele)
Definition: bmesh_inline.h:110
ATTR_WARN_UNUSED_RESULT const BMVert * v
SyclQueue void void size_t num_bytes void

◆ VERT_DUPE_TEST

#define VERT_DUPE_TEST (   v)    (verts_pos[BM_elem_index_get(v)] != NULL)

◆ VERT_DUPE_TEST_ORIG

#define VERT_DUPE_TEST_ORIG (   v)    (verts_neg[BM_elem_index_get(v)] != NULL)

Function Documentation

◆ bm_edge_tag_faceloop()

static BMLoop* bm_edge_tag_faceloop ( BMEdge e)
static

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().

◆ bm_loop_is_radial_boundary()

static bool bm_loop_is_radial_boundary ( BMLoop l_first)
static

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().

◆ 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 
)

◆ bm_vert_boundary_tangent()

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