Changeset View
Changeset View
Standalone View
Standalone View
source/blender/editors/space_view3d/view3d_placement.c
| Show First 20 Lines • Show All 317 Lines • ▼ Show 20 Lines | static bool idp_poject_surface_normal(SnapObjectContext *snap_context, | ||||
| Object *ob_snap; | Object *ob_snap; | ||||
| float obmat[4][4]; | float obmat[4][4]; | ||||
| if (ED_transform_snap_object_project_view3d_ex(snap_context, | if (ED_transform_snap_object_project_view3d_ex(snap_context, | ||||
| depsgraph, | depsgraph, | ||||
| SCE_SNAP_MODE_FACE, | SCE_SNAP_MODE_FACE, | ||||
| &(const struct SnapObjectParams){ | &(const struct SnapObjectParams){ | ||||
| .snap_select = SNAP_ALL, | .snap_select = SNAP_ALL, | ||||
| .use_object_edit_cage = true, | .edit_mode_type = SNAP_GEOM_EDIT, | ||||
| }, | }, | ||||
| mval_fl, | mval_fl, | ||||
| NULL, | NULL, | ||||
| NULL, | NULL, | ||||
| co_dummy, | co_dummy, | ||||
| normal, | normal, | ||||
| NULL, | NULL, | ||||
| &ob_snap, | &ob_snap, | ||||
| ▲ Show 20 Lines • Show All 601 Lines • ▼ Show 20 Lines | else { | ||||
| } | } | ||||
| else if (plane_depth == PLACE_DEPTH_SURFACE) { | else if (plane_depth == PLACE_DEPTH_SURFACE) { | ||||
| if ((snap_context != NULL) && | if ((snap_context != NULL) && | ||||
| ED_transform_snap_object_project_view3d(snap_context, | ED_transform_snap_object_project_view3d(snap_context, | ||||
| CTX_data_ensure_evaluated_depsgraph(C), | CTX_data_ensure_evaluated_depsgraph(C), | ||||
| SCE_SNAP_MODE_FACE, | SCE_SNAP_MODE_FACE, | ||||
| &(const struct SnapObjectParams){ | &(const struct SnapObjectParams){ | ||||
| .snap_select = SNAP_ALL, | .snap_select = SNAP_ALL, | ||||
| .use_object_edit_cage = true, | .edit_mode_type = SNAP_GEOM_EDIT, | ||||
| }, | }, | ||||
| mval_fl, | mval_fl, | ||||
| NULL, | NULL, | ||||
| NULL, | NULL, | ||||
| r_co_src, | r_co_src, | ||||
| NULL)) { | NULL)) { | ||||
| use_depth_fallback = false; | use_depth_fallback = false; | ||||
| } | } | ||||
| ▲ Show 20 Lines • Show All 514 Lines • ▼ Show 20 Lines | if (ELEM(event->type, ipd->launch_event, LEFTMOUSE)) { | ||||
| WM_toolsystem_ref_properties_init_for_keymap(tref, &temp_props, &op_props, ot); | WM_toolsystem_ref_properties_init_for_keymap(tref, &temp_props, &op_props, ot); | ||||
| SWAP(PointerRNA, temp_props, op_props); | SWAP(PointerRNA, temp_props, op_props); | ||||
| WM_operator_properties_free(&temp_props); | WM_operator_properties_free(&temp_props); | ||||
| } | } | ||||
| RNA_float_set_array(&op_props, "rotation", rotation); | RNA_float_set_array(&op_props, "rotation", rotation); | ||||
| RNA_float_set_array(&op_props, "location", location); | RNA_float_set_array(&op_props, "location", location); | ||||
| RNA_float_set_array(&op_props, "scale", scale); | RNA_float_set_array(&op_props, "scale", scale); | ||||
| /* Always use default size here. */ | |||||
| /* Always use the defaults here since desired bounds have been set interactively, it does | |||||
| * not make sense to use a different values from a previous command. */ | |||||
| if (ipd->primitive_type == PLACE_PRIMITIVE_TYPE_CUBE) { | if (ipd->primitive_type == PLACE_PRIMITIVE_TYPE_CUBE) { | ||||
| RNA_float_set(&op_props, "size", 2.0f); | RNA_float_set(&op_props, "size", 2.0f); | ||||
| } | } | ||||
| if (ELEM(ipd->primitive_type, | |||||
| PLACE_PRIMITIVE_TYPE_CYLINDER, | |||||
| PLACE_PRIMITIVE_TYPE_SPHERE_UV, | |||||
| PLACE_PRIMITIVE_TYPE_SPHERE_ICO)) { | |||||
| RNA_float_set(&op_props, "radius", 1.0f); | |||||
| } | |||||
| if (ELEM( | |||||
| ipd->primitive_type, PLACE_PRIMITIVE_TYPE_CYLINDER, PLACE_PRIMITIVE_TYPE_CONE)) { | |||||
| RNA_float_set(&op_props, "depth", 2.0f); | |||||
| } | |||||
| if (ipd->primitive_type == PLACE_PRIMITIVE_TYPE_CONE) { | |||||
| RNA_float_set(&op_props, "radius1", 1.0f); | |||||
| RNA_float_set(&op_props, "radius2", 0.0f); | |||||
| } | |||||
| WM_operator_name_call_ptr(C, ot, WM_OP_EXEC_DEFAULT, &op_props); | WM_operator_name_call_ptr(C, ot, WM_OP_EXEC_DEFAULT, &op_props); | ||||
| WM_operator_properties_free(&op_props); | WM_operator_properties_free(&op_props); | ||||
| } | } | ||||
| else { | else { | ||||
| BLI_assert(0); | BLI_assert(0); | ||||
| } | } | ||||
| view3d_interactive_add_exit(C, op); | view3d_interactive_add_exit(C, op); | ||||
| ▲ Show 20 Lines • Show All 552 Lines • ▼ Show 20 Lines | if (pixel_size > FLT_EPSILON) { | ||||
| /* Setup viewport & matrix. */ | /* Setup viewport & matrix. */ | ||||
| wmViewport(®ion->winrct); | wmViewport(®ion->winrct); | ||||
| GPU_matrix_push_projection(); | GPU_matrix_push_projection(); | ||||
| GPU_matrix_push(); | GPU_matrix_push(); | ||||
| GPU_matrix_projection_set(rv3d->winmat); | GPU_matrix_projection_set(rv3d->winmat); | ||||
| GPU_matrix_set(rv3d->viewmat); | GPU_matrix_set(rv3d->viewmat); | ||||
| const float scale_mod = U.gizmo_size * 2 * U.dpi_fac; | const float scale_mod = U.gizmo_size * 2 * U.dpi_fac / U.pixelsize; | ||||
| float final_scale = (scale_mod * pixel_size); | float final_scale = (scale_mod * pixel_size); | ||||
| const int lines_subdiv = 10; | const int lines_subdiv = 10; | ||||
| int lines = lines_subdiv; | int lines = lines_subdiv; | ||||
| float final_scale_fade = final_scale; | float final_scale_fade = final_scale; | ||||
| final_scale = ceil_power_of_10(final_scale); | final_scale = ceil_power_of_10(final_scale); | ||||
| ▲ Show 20 Lines • Show All 61 Lines • Show Last 20 Lines | |||||