Blender
V3.3
|
#include "MEM_guardedalloc.h"
#include "DNA_userdef_types.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 135 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 123 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 129 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 144 of file editmesh_preselect_edgering.c.
References EditMesh_PreSelEdgeRing::edges, EditMesh_PreSelEdgeRing::edges_len, GPU_blend(), GPU_BLEND_ALPHA, GPU_BLEND_NONE, 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_PRIM_LINES, GPU_PRIM_POINTS, GPU_program_point_size(), GPU_SHADER_3D_POINT_UNIFORM_SIZE_UNIFORM_COLOR_AA, GPU_SHADER_3D_POLYLINE_UNIFORM_COLOR, GPU_vertformat_attr_add(), GPU_viewport_size_get_f(), immBegin(), immBindBuiltinProgram(), immEnd(), immUnbindProgram(), immUniform1f(), immUniform2fv(), immUniformThemeColor3(), immVertex3fv(), immVertexFormat(), M_SQRT2, max_ff(), pos, TH_GIZMO_PRIMARY, TH_VERTEX_SIZE, UI_GetThemeValuef(), 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 336 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 76 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 36 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 56 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 230 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 205 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().