|
Blender
V2.93
|
#include "MEM_guardedalloc.h"#include "BLI_math.h"#include "BLI_stack.h"#include "BKE_editmesh.h"#include "GPU_immediate.h"#include "GPU_matrix.h"#include "GPU_state.h"#include "ED_mesh.h"#include "UI_resources.h"Go to the source code of this file.
Classes | |
| struct | EditMesh_PreSelEdgeRing |
| void EDBM_preselect_edgering_clear | ( | struct EditMesh_PreSelEdgeRing * | psel | ) |
Definition at line 147 of file editmesh_preselect_edgering.c.
References EditMesh_PreSelEdgeRing::edges, EditMesh_PreSelEdgeRing::edges_len, MEM_SAFE_FREE, EditMesh_PreSelEdgeRing::verts, and EditMesh_PreSelEdgeRing::verts_len.
Referenced by EDBM_preselect_edgering_destroy(), EDBM_preselect_edgering_update_from_edge(), gizmo_preselect_edgering_test_select(), and ringsel_find_edge().
| struct EditMesh_PreSelEdgeRing* EDBM_preselect_edgering_create | ( | void | ) |
Definition at line 135 of file editmesh_preselect_edgering.c.
References MEM_callocN.
Referenced by gizmo_preselect_edgering_setup(), and ringsel_init().
| void EDBM_preselect_edgering_destroy | ( | struct EditMesh_PreSelEdgeRing * | psel | ) |
Definition at line 141 of file editmesh_preselect_edgering.c.
References EDBM_preselect_edgering_clear(), and MEM_freeN.
Referenced by gizmo_preselect_edgering_free(), and ringsel_exit().
| void EDBM_preselect_edgering_draw | ( | struct EditMesh_PreSelEdgeRing * | psel, |
| const float | matrix[4][4] | ||
| ) |
Definition at line 156 of file editmesh_preselect_edgering.c.
References EditMesh_PreSelEdgeRing::edges, EditMesh_PreSelEdgeRing::edges_len, GPU_COMP_F32, GPU_DEPTH_LESS_EQUAL, GPU_DEPTH_NONE, GPU_depth_test(), GPU_FETCH_FLOAT, GPU_matrix_mul, GPU_matrix_pop(), GPU_matrix_push(), GPU_point_size(), GPU_PRIM_LINES, GPU_PRIM_POINTS, GPU_SHADER_3D_UNIFORM_COLOR, GPU_vertformat_attr_add(), immBegin(), immBindBuiltinProgram(), immEnd(), immUnbindProgram(), immUniformThemeColor3(), immVertex3fv(), immVertexFormat(), pos, TH_GIZMO_PRIMARY, EditMesh_PreSelEdgeRing::verts, and EditMesh_PreSelEdgeRing::verts_len.
Referenced by gizmo_preselect_edgering_draw(), and ringsel_draw().
| void EDBM_preselect_edgering_update_from_edge | ( | struct EditMesh_PreSelEdgeRing * | psel, |
| BMesh * | bm, | ||
| BMEdge * | eed_start, | ||
| int | previewlines, | ||
| const float(*) | coords[3] | ||
| ) |
Definition at line 334 of file editmesh_preselect_edgering.c.
References bm, BM_edge_is_any_face_len_test(), BM_mesh_elem_index_ensure(), BM_VERT, EDBM_preselect_edgering_clear(), view3d_preselect_mesh_edgering_update_edges_from_edge(), and view3d_preselect_mesh_edgering_update_verts_from_edge().
Referenced by gizmo_preselect_edgering_test_select(), and ringsel_find_edge().
|
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 88 of file editmesh_preselect_edgering.c.
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().
|
static |
Definition at line 48 of file editmesh_preselect_edgering.c.
References BM_elem_index_get, copy_v3_v3(), and v.
Referenced by view3d_preselect_mesh_edgering_update_edges_from_edge().
|
static |
Definition at line 68 of file editmesh_preselect_edgering.c.
References BM_elem_index_get, copy_v3_v3(), and v.
Referenced by view3d_preselect_mesh_edgering_update_verts_from_edge().
|
static |
Definition at line 228 of file editmesh_preselect_edgering.c.
References BLI_stack_count(), BLI_stack_free(), BLI_stack_is_empty(), BLI_stack_new, BLI_stack_peek(), BLI_stack_pop(), BLI_stack_push(), bm, BM_edge_share_face_check(), BM_edge_share_quad_check(), BMW_begin(), BMW_EDGERING, BMW_end(), BMW_FLAG_TEST_HIDDEN, BMW_init(), BMW_MASK_NOP, BMW_NIL_LAY, BMW_step(), edgering_find_order(), edgering_vcos_get(), EditMesh_PreSelEdgeRing::edges, EditMesh_PreSelEdgeRing::edges_len, float(), interp_v3_v3v3(), MEM_mallocN, NULL, v, BMEdge::v1, and BMEdge::v2.
Referenced by EDBM_preselect_edgering_update_from_edge().
|
static |
Definition at line 203 of file editmesh_preselect_edgering.c.
References edgering_vcos_get_pair(), float(), interp_v3_v3v3(), MEM_mallocN, BMEdge::v1, EditMesh_PreSelEdgeRing::verts, verts, and EditMesh_PreSelEdgeRing::verts_len.
Referenced by EDBM_preselect_edgering_update_from_edge().