Changeset View
Changeset View
Standalone View
Standalone View
source/blender/editors/mesh/editmesh_select.c
| Context not available. | |||||
| #include "ED_transform.h" | #include "ED_transform.h" | ||||
| #include "ED_select_utils.h" | #include "ED_select_utils.h" | ||||
| #include "ED_view3d.h" | #include "ED_view3d.h" | ||||
| #include "ED_curve.h" | |||||
| #include "DNA_mesh_types.h" | #include "DNA_mesh_types.h" | ||||
| #include "DNA_meshdata_types.h" | #include "DNA_meshdata_types.h" | ||||
| Context not available. | |||||
| static int edbm_select_loop_invoke(bContext *C, wmOperator *op, const wmEvent *event) | static int edbm_select_loop_invoke(bContext *C, wmOperator *op, const wmEvent *event) | ||||
| { | { | ||||
| bool extend = RNA_boolean_get(op->ptr, "extend"); | |||||
| bool deselect = RNA_boolean_get(op->ptr, "deselect"); | |||||
| bool toggle = RNA_boolean_get(op->ptr, "toggle"); | |||||
| bool b_ring = RNA_boolean_get(op->ptr, "ring"); | |||||
| /* NURBS surfaces have their own loop selection code. */ | |||||
| Object *obedit = CTX_data_edit_object(C); | |||||
| if (ELEM(obedit->type, OB_CURVE, OB_SURF)) | |||||
| { | |||||
| int location[2]; | |||||
| RNA_int_get_array(op->ptr, "location", location); | |||||
| return ED_curve_editnurb_select_pick(C, location, extend, deselect, toggle, true); | |||||
| } | |||||
| /* end NURBS interception code */ | |||||
| view3d_operator_needs_opengl(C); | view3d_operator_needs_opengl(C); | ||||
| if (mouse_mesh_loop(C, | if (mouse_mesh_loop(C, event->mval, extend, deselect, toggle, b_ring)) | ||||
| event->mval, | { | ||||
| RNA_boolean_get(op->ptr, "extend"), | |||||
| RNA_boolean_get(op->ptr, "deselect"), | |||||
| RNA_boolean_get(op->ptr, "toggle"), | |||||
| RNA_boolean_get(op->ptr, "ring"))) { | |||||
| return OPERATOR_FINISHED; | return OPERATOR_FINISHED; | ||||
| } | } | ||||
| else { | else { | ||||
| Context not available. | |||||
| /* api callbacks */ | /* api callbacks */ | ||||
| ot->invoke = edbm_select_loop_invoke; | ot->invoke = edbm_select_loop_invoke; | ||||
| ot->poll = ED_operator_editmesh_region_view3d; | ot->poll = ED_operator_editmesh_or_editcurve_region_view3d; | ||||
| /* flags */ | /* flags */ | ||||
| ot->flag = OPTYPE_UNDO; | ot->flag = OPTYPE_UNDO; | ||||
| Context not available. | |||||