Changeset View
Changeset View
Standalone View
Standalone View
source/blender/editors/space_view3d/view3d_gizmo_preselect_type.c
| Show First 20 Lines • Show All 298 Lines • ▼ Show 20 Lines | if (((gz_ring->bases)) == NULL || (gz_ring->bases[0] != view_layer->basact)) { | ||||
| view_layer, v3d, &gz_ring->bases_len); | view_layer, v3d, &gz_ring->bases_len); | ||||
| } | } | ||||
| } | } | ||||
| ViewContext vc; | ViewContext vc; | ||||
| em_setup_viewcontext(C, &vc); | em_setup_viewcontext(C, &vc); | ||||
| copy_v2_v2_int(vc.mval, mval); | copy_v2_v2_int(vc.mval, mval); | ||||
| for (uint base_index = 0; base_index < gz_ring->bases_len; base_index++) { | uint base_index; | ||||
| Object *ob_iter = gz_ring->bases[base_index]->object; | BMEdge *eed_test = EDBM_edge_find_nearest_ex( | ||||
| ED_view3d_viewcontext_init_object(&vc, ob_iter); | &vc, &best.dist, NULL, false, false, NULL, gz_ring->bases, gz_ring->bases_len, &base_index); | ||||
| BMEdge *eed_test = EDBM_edge_find_nearest_ex(&vc, &best.dist, NULL, false, false, NULL); | |||||
| if (eed_test) { | if (eed_test) { | ||||
| best.ob = ob_iter; | best.ob = gz_ring->bases[base_index]->object; | ||||
| best.eed = eed_test; | best.eed = eed_test; | ||||
| best.base_index = base_index; | best.base_index = base_index; | ||||
| } | } | ||||
| } | |||||
| BMesh *bm = NULL; | BMesh *bm = NULL; | ||||
| if (best.eed) { | if (best.eed) { | ||||
| gz_ring->base_index = best.base_index; | gz_ring->base_index = best.base_index; | ||||
| bm = BKE_editmesh_from_object(gz_ring->bases[gz_ring->base_index]->object)->bm; | bm = BKE_editmesh_from_object(gz_ring->bases[gz_ring->base_index]->object)->bm; | ||||
| BM_mesh_elem_index_ensure(bm, BM_EDGE); | BM_mesh_elem_index_ensure(bm, BM_EDGE); | ||||
| gz_ring->edge_index = BM_elem_index_get(best.eed); | gz_ring->edge_index = BM_elem_index_get(best.eed); | ||||
| } | } | ||||
| ▲ Show 20 Lines • Show All 152 Lines • Show Last 20 Lines | |||||