Blender V4.3
editmesh_preselect_edgering.cc File Reference
#include "MEM_guardedalloc.h"
#include "DNA_userdef_types.h"
#include "BLI_stack.h"
#include "BKE_editmesh.hh"
#include "GPU_immediate.hh"
#include "GPU_matrix.hh"
#include "GPU_state.hh"
#include "ED_mesh.hh"
#include "UI_resources.hh"

Go to the source code of this file.

Classes

struct  EditMesh_PreSelEdgeRing
 

Functions

Mesh Edge Ring Pre-Select
static void edgering_vcos_get (BMVert *v[2][2], float r_cos[2][2][3], const Span< float3 > vert_positions)
 
static void edgering_vcos_get_pair (BMVert *v[2], float r_cos[2][3], const Span< float3 > vert_positions)
 
static void edgering_find_order (BMEdge *eed_last, BMEdge *eed, BMVert *eve_last, BMVert *v[2][2])
 
EditMesh_PreSelEdgeRingEDBM_preselect_edgering_create ()
 
void EDBM_preselect_edgering_destroy (EditMesh_PreSelEdgeRing *psel)
 
void EDBM_preselect_edgering_clear (EditMesh_PreSelEdgeRing *psel)
 
void EDBM_preselect_edgering_draw (EditMesh_PreSelEdgeRing *psel, const float matrix[4][4])
 
static void view3d_preselect_mesh_edgering_update_verts_from_edge (EditMesh_PreSelEdgeRing *psel, BMesh *, BMEdge *eed_start, int previewlines, const Span< float3 > vert_positions)
 
static void view3d_preselect_mesh_edgering_update_edges_from_edge (EditMesh_PreSelEdgeRing *psel, BMesh *bm, BMEdge *eed_start, int previewlines, const Span< float3 > vert_positions)
 
void EDBM_preselect_edgering_update_from_edge (EditMesh_PreSelEdgeRing *psel, BMesh *bm, BMEdge *eed_start, int previewlines, const Span< float3 > vert_positions)
 

Function Documentation

◆ EDBM_preselect_edgering_clear()

◆ EDBM_preselect_edgering_create()

EditMesh_PreSelEdgeRing * EDBM_preselect_edgering_create ( )

Definition at line 131 of file editmesh_preselect_edgering.cc.

References MEM_callocN.

Referenced by gizmo_preselect_edgering_setup(), and ringsel_init().

◆ EDBM_preselect_edgering_destroy()

void EDBM_preselect_edgering_destroy ( EditMesh_PreSelEdgeRing * psel)

◆ EDBM_preselect_edgering_draw()

◆ EDBM_preselect_edgering_update_from_edge()

◆ edgering_find_order()

static void edgering_find_order ( BMEdge * eed_last,
BMEdge * eed,
BMVert * eve_last,
BMVert * v[2][2] )
static

Given two opposite edges in a face, finds the ordering of their vertices so that cut preview lines won't cross each other.

Definition at line 84 of file editmesh_preselect_edgering.cc.

References BM_edge_in_face(), BM_ITER_ELEM, BM_loop_other_edge_loop(), BM_LOOPS_OF_LOOP, ELEM, BMLoop::f, BMEdge::l, l, BMLoop::next, BMLoop::prev, BMLoop::v, v, BMEdge::v1, and BMEdge::v2.

Referenced by view3d_preselect_mesh_edgering_update_edges_from_edge().

◆ edgering_vcos_get()

static void edgering_vcos_get ( BMVert * v[2][2],
float r_cos[2][2][3],
const Span< float3 > vert_positions )
static

◆ edgering_vcos_get_pair()

static void edgering_vcos_get_pair ( BMVert * v[2],
float r_cos[2][3],
const Span< float3 > vert_positions )
static

◆ view3d_preselect_mesh_edgering_update_edges_from_edge()

◆ view3d_preselect_mesh_edgering_update_verts_from_edge()

static void view3d_preselect_mesh_edgering_update_verts_from_edge ( EditMesh_PreSelEdgeRing * psel,
BMesh * ,
BMEdge * eed_start,
int previewlines,
const Span< float3 > vert_positions )
static