Blender
V3.3
|
#include "MEM_guardedalloc.h"
#include "BLI_math.h"
#include "BKE_editmesh.h"
#include "GPU_immediate.h"
#include "GPU_matrix.h"
#include "GPU_state.h"
#include "DNA_object_types.h"
#include "ED_mesh.h"
#include "ED_view3d.h"
Go to the source code of this file.
Classes | |
struct | EditMesh_PreSelElem |
eEditMesh_PreSelPreviewAction EDBM_preselect_action_get | ( | struct EditMesh_PreSelElem * | psel | ) |
Definition at line 79 of file editmesh_preselect_elem.c.
References EditMesh_PreSelElem::preview_action.
Referenced by EDBM_preselect_elem_update_preview(), and gizmo_preselect_elem_test_select().
void EDBM_preselect_action_set | ( | struct EditMesh_PreSelElem * | psel, |
eEditMesh_PreSelPreviewAction | action | ||
) |
Definition at line 73 of file editmesh_preselect_elem.c.
References EditMesh_PreSelElem::preview_action.
Referenced by gizmo_preselect_elem_test_select().
void EDBM_preselect_elem_clear | ( | struct EditMesh_PreSelElem * | psel | ) |
Definition at line 107 of file editmesh_preselect_elem.c.
References EditMesh_PreSelElem::edges, EditMesh_PreSelElem::edges_len, MEM_SAFE_FREE, EditMesh_PreSelElem::verts, and EditMesh_PreSelElem::verts_len.
Referenced by EDBM_preselect_elem_destroy(), EDBM_preselect_elem_update_from_single(), and gizmo_preselect_elem_test_select().
struct EditMesh_PreSelElem* EDBM_preselect_elem_create | ( | void | ) |
Definition at line 84 of file editmesh_preselect_elem.c.
References MEM_callocN, PRESELECT_ACTION_TRANSFORM, and EditMesh_PreSelElem::preview_action.
Referenced by gizmo_preselect_elem_setup().
void EDBM_preselect_elem_destroy | ( | struct EditMesh_PreSelElem * | psel | ) |
Definition at line 91 of file editmesh_preselect_elem.c.
References EDBM_preselect_elem_clear(), EDBM_preselect_preview_clear(), and MEM_freeN.
Referenced by gizmo_preselect_elem_free().
void EDBM_preselect_elem_draw | ( | struct EditMesh_PreSelElem * | psel, |
const float | matrix[4][4] | ||
) |
Definition at line 116 of file editmesh_preselect_elem.c.
References EditMesh_PreSelElem::edges, EditMesh_PreSelElem::edges_len, GPU_COMP_F32, GPU_DEPTH_LESS_EQUAL, GPU_DEPTH_NONE, GPU_depth_test(), GPU_FETCH_FLOAT, GPU_line_width(), GPU_matrix_mul, GPU_matrix_pop(), GPU_matrix_push(), GPU_point_size(), GPU_PRIM_LINES, GPU_PRIM_POINTS, GPU_PRIM_TRIS, GPU_SHADER_3D_UNIFORM_COLOR, GPU_vertformat_attr_add(), immBegin(), immBindBuiltinProgram(), immEnd(), immUnbindProgram(), immUniformColor4ub(), immVertex3fv(), immVertexFormat(), pos, PRESELECT_ACTION_DELETE, PRESELECT_ACTION_TRANSFORM, EditMesh_PreSelElem::preview_action, EditMesh_PreSelElem::preview_lines, EditMesh_PreSelElem::preview_lines_len, EditMesh_PreSelElem::preview_tris, EditMesh_PreSelElem::preview_tris_len, EditMesh_PreSelElem::verts, and EditMesh_PreSelElem::verts_len.
Referenced by gizmo_preselect_elem_draw().
void EDBM_preselect_elem_update_from_single | ( | struct EditMesh_PreSelElem * | psel, |
BMesh * | bm, | ||
BMElem * | ele, | ||
const float(*) | coords[3] | ||
) |
Definition at line 350 of file editmesh_preselect_elem.c.
References BLI_assert, bm, BM_EDGE, BM_FACE, BM_mesh_elem_index_ensure(), BM_VERT, EDBM_preselect_elem_clear(), BMElem::head, BMHeader::htype, view3d_preselect_mesh_elem_update_from_edge(), view3d_preselect_mesh_elem_update_from_face(), and view3d_preselect_mesh_elem_update_from_vert().
Referenced by gizmo_preselect_elem_test_select().
void EDBM_preselect_elem_update_preview | ( | struct EditMesh_PreSelElem * | psel, |
struct ViewContext * | vc, | ||
struct BMesh * | bm, | ||
struct BMElem * | ele, | ||
const int | mval[2] | ||
) |
Definition at line 376 of file editmesh_preselect_elem.c.
References BLI_assert, bm, BM_EDGE, BM_FACE, BM_VERT, EDBM_preselect_action_get(), EDBM_preselect_preview_clear(), BMElem::head, BMHeader::htype, PRESELECT_ACTION_CREATE, view3d_preselect_update_preview_triangle_from_edge(), view3d_preselect_update_preview_triangle_from_face(), and view3d_preselect_update_preview_triangle_from_vert().
Referenced by gizmo_preselect_elem_test_select().
void EDBM_preselect_preview_clear | ( | struct EditMesh_PreSelElem * | psel | ) |
Definition at line 98 of file editmesh_preselect_elem.c.
References MEM_SAFE_FREE, EditMesh_PreSelElem::preview_lines, EditMesh_PreSelElem::preview_lines_len, EditMesh_PreSelElem::preview_tris, and EditMesh_PreSelElem::preview_tris_len.
Referenced by EDBM_preselect_elem_destroy(), EDBM_preselect_elem_update_preview(), and gizmo_preselect_elem_test_select().
Definition at line 34 of file editmesh_preselect_elem.c.
References BM_elem_index_get, BMVert::co, copy_v3_v3(), and v.
Referenced by view3d_preselect_mesh_elem_update_from_vert().
Definition at line 44 of file editmesh_preselect_elem.c.
References BM_elem_index_get, copy_v3_v3(), and v.
Referenced by view3d_preselect_mesh_elem_update_from_edge(), view3d_preselect_mesh_elem_update_from_face(), and view3d_preselect_update_preview_triangle_from_face().
|
static |
Definition at line 207 of file editmesh_preselect_elem.c.
References EditMesh_PreSelElem::edges, EditMesh_PreSelElem::edges_len, float(), MEM_mallocN, BMEdge::v1, and vcos_get_pair().
Referenced by EDBM_preselect_elem_update_from_single().
|
static |
Definition at line 334 of file editmesh_preselect_elem.c.
References BM_FACE_FIRST_LOOP, BMLoop::e, EditMesh_PreSelElem::edges, EditMesh_PreSelElem::edges_len, float(), BMFace::len, MEM_mallocN, BMLoop::next, BMEdge::v1, and vcos_get_pair().
Referenced by EDBM_preselect_elem_update_from_single().
|
static |
Definition at line 196 of file editmesh_preselect_elem.c.
References float(), MEM_mallocN, vcos_get(), EditMesh_PreSelElem::verts, verts, and EditMesh_PreSelElem::verts_len.
Referenced by EDBM_preselect_elem_update_from_single().
|
static |
Definition at line 304 of file editmesh_preselect_elem.c.
References center, BMVert::co, copy_v3_v3(), ED_view3d_win_to_3d_int(), Object::imat, MEM_mallocN, mid_v3_v3v3(), mul_m4_v3(), ViewContext::obedit, Object::obmat, EditMesh_PreSelElem::preview_lines, EditMesh_PreSelElem::preview_lines_len, EditMesh_PreSelElem::preview_tris, EditMesh_PreSelElem::preview_tris_len, ViewContext::region, BMEdge::v1, BMEdge::v2, and ViewContext::v3d.
Referenced by EDBM_preselect_elem_update_preview().
|
static |
Definition at line 287 of file editmesh_preselect_elem.c.
References BM_FACE_FIRST_LOOP, BMLoop::e, EditMesh_PreSelElem::edges, float(), BMFace::len, MEM_mallocN, BMLoop::next, NULL, EditMesh_PreSelElem::preview_lines, EditMesh_PreSelElem::preview_lines_len, BMEdge::v1, and vcos_get_pair().
Referenced by EDBM_preselect_elem_update_preview().
|
static |
Definition at line 218 of file editmesh_preselect_elem.c.
References BM_DISK_EDGE_NEXT, BM_edge_is_boundary(), BM_edge_is_wire(), BM_elem_flag_test, BM_ELEM_HIDDEN, center, BMVert::co, copy_v3_v3(), BMVert::e, ED_view3d_win_to_3d_int(), Object::imat, MEM_mallocN, mul_m4_v3(), mul_v3_m4v3(), NULL, ViewContext::obedit, Object::obmat, EditMesh_PreSelElem::preview_lines, EditMesh_PreSelElem::preview_lines_len, EditMesh_PreSelElem::preview_tris, EditMesh_PreSelElem::preview_tris_len, ViewContext::region, BMEdge::v1, v1, BMEdge::v2, and ViewContext::v3d.
Referenced by EDBM_preselect_elem_update_preview().