Blender V4.3
bmesh_wireframe.cc File Reference
#include <algorithm>
#include "MEM_guardedalloc.h"
#include "bmesh.hh"
#include "BLI_math_geom.h"
#include "BLI_math_vector.h"
#include "BKE_customdata.hh"
#include "BKE_deform.hh"
#include "bmesh_wireframe.hh"

Go to the source code of this file.

Macros

#define VERT_DUPE_TEST_ORIG(v)   (verts_neg[BM_elem_index_get(v)] != nullptr)
 
#define VERT_DUPE_TEST(v)   (verts_pos[BM_elem_index_get(v)] != nullptr)
 
#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 int mat_max, const bool use_tag)
 

Detailed Description

Creates a solid wireframe from connected faces.

Definition in file bmesh_wireframe.cc.

Macro Definition Documentation

◆ VERT_DUPE_CLEAR

#define VERT_DUPE_CLEAR ( v)
Value:
{ \
verts_pos[BM_elem_index_get(v)] = nullptr; \
} \
(void)0
#define BM_elem_index_get(ele)
ATTR_WARN_UNUSED_RESULT const BMVert * v

Referenced by BM_mesh_wireframe().

◆ VERT_DUPE_TEST

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

Referenced by BM_mesh_wireframe().

◆ VERT_DUPE_TEST_ORIG

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

Referenced by BM_mesh_wireframe().

Function Documentation

◆ bm_edge_tag_faceloop()

static BMLoop * bm_edge_tag_faceloop ( BMEdge * e)
static

Definition at line 25 of file bmesh_wireframe.cc.

References BM_elem_flag_test, BM_ELEM_TAG, e, BMLoop::f, l, 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 127 of file bmesh_wireframe.cc.

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,
int mat_max,
bool use_tag )

◆ bm_vert_boundary_tangent()