Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-06-06Refactor: Snap-related. Clarified attribute names and refactored #defines ↵jon denning
into enums The transformation snapping code contains a bunch of `#define`s, some ambiguously or incorrectly named attributes. This patch contains refactored code to improve this. This patch does (should) not change functionality of snapping. Clarified ambiguously / incorrectly named attributes. - "Target" is used to refer to the part of the source that is to be snapped (Active, Median, Center, Closest), but several other areas of Blender use the term "target" to refer to the thing being snapped to and "source" to refer to the thing getting snapped. Moreover, the implications of the previous terms do not match the descriptions. For example: `SCE_SNAP_TARGET_CENTER` does not snap the grabbed geometry to the center of the target, but instead "Snap transforamtion center onto target". - "Select" refers to the condition for an object to be a possible target for snapping. - `SCE_SNAP_MODE_FACE` is renamed to `SCE_SNAP_MODE_FACE_RAYCAST` to better describe its affect and to make way for other face snapping methods (ex: nearest). Refactored related `#define` into `enum`s. In particular, constants relating to... - `ToolSettings.snap_flag` are now in `enum eSnapFlag` - `ToolSettings.snap_mode` are now in `enum eSnapMode` - `ToolSettings.snap_source` (was `snap_target`) are now in `enum eSnapSourceSelect` - `ToolSettings.snap_flag` (`SCE_SNAP_NO_SELF`) and `TransSnap.target_select` are now in `enum eSnapTargetSelect` As the terms became more consistent and the constants were packed together into meaningful enumerations, some of the attribute names seemed ambiguous. For example, it is unclear whether `SnapObjectParams.snap_select` referred to the target or the source. This patch also adds a small amount of clarity. This patch also swaps out generic types (ex: `char`, `short`, `ushort`) and unclear hard coded numbers (ex: `0`) used with snap-related enumerations with the actual `enum`s and values. Note: I did leave myself some comments to follow-up with further refactoring. Specifically, using "target" and "source" consistently will mean the Python API will need to change (ex: `ToolSettings.snap_target` is not `ToolSettings.snap_source`). If the API is going to change, it would be good to make sure that the used terms are descriptive enough. For example, `bpy.ops.transform.translate` uses a `snap` argument to determine if snapping should be enabled while transforming. Perhaps `use_snap` might be an improvement that's more consistent with other conventions. This patch is (mostly) a subset of D14591, as suggested by @mano-wii. Task T69342 proposes to separate the `Absolute Grid Snap` option out from `Increment` snapping method into its own method. Also, there might be reason to create additional snapping methods or options. (Indeed, D14591 heads in this direction). This patch can work along with these suggestions, as this patch is trying to clarify the snapping code and to prompt more work in this area. Reviewed By: mano-wii Differential Revision: https://developer.blender.org/D15037
2022-04-28Snap Cursor: split 'ED_view3d_cursor_snap_data_get'Germano Cavalcante
Split 'ED_view3d_cursor_snap_data_get' into 'update' and 'get' functions Sometimes we just want to update and sometimes we just get the result. Make it clear.
2022-04-22Fix (unreported): Placement Tool not orienting the Object to normalGermano Cavalcante
Regression introduced in {rB721335553ccb5ce4f7a374b958b7d65befa319df}. `plane_omat` is only computed if `snap_state->draw_plane` is `true`.
2022-03-11Fix out of order event handling when calling operators from gizmosCampbell Barton
Activating a gizmo used the windows eventstate which may have values newer than the event used to activate the gizmo. This meant transforms check for the key that activated transform could be incorrect. Support passing an event when calling operators to avoid this problem.
2022-03-09Event System: drag events no longer default to the drag start locationCampbell Barton
This avoids transform jumping which is a problem when tweaking values a small amount. A fix for T40549 was made box-select used the location when the key was pressed. While it's important for box-select or any operator where it's expected the drag-start location is used, this is only needed in some cases. Since the event stores the click location and the current location, no longer overwrite the events real location. Operators that depend on using the drag-start can use this location if they need. In some cases the region relative cursor location (Event.mval) now needs to be calculated based on the click location. - Added `WM_event_drag_start_mval` for convenient access to the region relative drag-start location (for drag events). - Added `WM_event_drag_start_xy` for window relative coordinates. - Added Python property Event.mouse_prev_click_x/y Resolves T93599. Reviewed By: Severin Ref D14213
2022-03-02Add Object Tool: use the drag-start location for initial placementCampbell Barton
2022-02-11File headers: SPDX License migrationCampbell Barton
Use a shorter/simpler license convention, stops the header taking so much space. Follow the SPDX license specification: https://spdx.org/licenses - C/C++/objc/objc++ - Python - Shell Scripts - CMake, GNUmakefile While most of the source tree has been included - `./extern/` was left out. - `./intern/cycles` & `./intern/atomic` are also excluded because they use different header conventions. doc/license/SPDX-license-identifiers.txt has been added to list SPDX all used identifiers. See P2788 for the script that automated these edits. Reviewed By: brecht, mont29, sergey Ref D14069
2021-11-12Cleanup: unify snap modes to geometry in a single flagGermano Cavalcante
This combination was being repeated in some places.
2021-11-08Cleanup: compiler warningsCampbell Barton
2021-11-08Fix snap cursor not active even if gizmo is availableGermano Cavalcante
Error introduced in rB69d6222481b4 and partially fixed in rB24310441ddc8. When gizmo was turned on but the scene has more than one 3D viewport, one of them the snap cursor did not appear.
2021-11-02Fix snap cursor still active even when gizmo is not availableGermano Cavalcante
The snap cursor continued to appear even when the workspace is changed for example. So add the region to check in the cursor pool.
2021-10-26View3D Snap Cursor: sanitize and increase the maximum amount of statesGermano Cavalcante
3 is a small amount as each viewport creates a gizmo that creates its own state Now if the state is not created, the gizmos use the last state.
2021-10-22Cleanup: spelling in comments, use C style commentsCampbell Barton
2021-10-21Cleanup: unused functuion warningsCampbell Barton
2021-10-21Fix failing 'script_validate_keymap' after recent changesGermano Cavalcante
Properties with `_funcs_runtime` are always saved when exporting keymaps. This is an error since changing one changes all others. For now, work around the problem by setting the `PROP_IDPROPERTY` flag.
2021-10-20Cleanup: silence WarningsGermano Cavalcante
Warning C4100 unreferenced formal parameter Warning C4242 conversion from 'int' to 'short', possible loss of data
2021-10-20Cleanup: unused parameters, `nullptr` instead of `NULL` in cpp code...Bastien Montagne
2021-10-20View3D: Cursor Snap RefactorGermano Cavalcante
Make the snap system consistent with the placement tool and leak-safe. **Changes:** - Store `SnapCursorDataIntern` in a `static` variable; - Initialize (lazily) `SnapCursorDataIntern` only once (for the keymap). - Move setup members of `V3DSnapCursorData` to a new struct `V3DSnapCursorState` - Merge `ED_view3d_cursor_snap_activate_point` and `ED_view3d_cursor_snap_activate_plane` into `state = ED_view3d_cursor_snap_active()` - Merge `ED_view3d_cursor_snap_deactivate_point` and `ED_view3d_cursor_snap_deactivate_plane` into `ED_view3d_cursor_snap_deactive(state)` - Be sure to free the snap context when closing via `ED_view3d_cursor_snap_exit` - Use RNA properties callbacks to update the properties of the `"Add Primitive Object"` operator
2021-10-18Snap and Placement Gizmo RefactorGermano Cavalcante
Move most of the gizmo snap and placement code to `view_cursor_snap.c`. Simplify and extend the snap API. Differential Revision: https://developer.blender.org/D12868
2021-10-13Cleanup: Snap Context RefactorGermano Cavalcante
Move runtime parameters out of context creation. Not being able to choose another region and v3d limits the use of the snap API.
2021-07-03Cleanup: consistent use of tags: NOTE/TODO/FIXME/XXXCampbell Barton
Also use doxy style function reference `#` prefix chars when referencing identifiers.
2021-06-28Cleanup: repeated terms in code comments & error messagesCampbell Barton
2021-06-24Cleanup: comment blocks, trailing space in commentsCampbell Barton
2021-06-22Cleanup: Spelling MistakesLeon Zandman
This patch fixes many minor spelling mistakes, all in comments or console output. Mostly contractions like can't, won't, don't, its/it's, etc. Differential Revision: https://developer.blender.org/D11663 Reviewed by Harley Acheson
2021-05-21Cleanup: spellingLeon Zandman
Includes fixes to misspelled function names. Ref D11280
2021-04-22Fix too big grid plane for Add Object tool on Retina displaysJulian Eisel
The grid plane was drawn too big on retina displays compared to other screens, because the factor was multiplied by the native pixel-size, which is 2 for Retina displays.
2021-04-21Merge branch 'blender-v2.93-release'Philipp Oeser
2021-04-21Fix T87677: Add primitive tools produce wrong sized objects after changing ↵Philipp Oeser
values in 'Adjust Last Operation' Always use the defaults here (radius, depth etc), since desired bounds have been set interactively, it does not make sense to use a different value from a previous command. The Cube tool has already seen a fix for this in rB26e5718e29a7, but Cone/UVSphere/Cylinder/IcoSphere havent. Maniphest Tasks: T87677 Differential Revision: https://developer.blender.org/D11038
2021-04-17Transform Snap Refactor: Use enum for cage snap optionsGermano Cavalcante
This allows the addition of the `SNAP_GEOM_CAGE` option. Currently unused.
2021-04-01Cleanup/Refactor: Use flags instead of bool to configure the snap gizmoGermano Cavalcante
This simplifies the addition of future improvements. Also make it more practical to expose as a parameter of gizmo for Python.
2021-03-29Gizmo: Use a utility function to read snap gizmo valuesGermano Cavalcante
No functional changes. This makes the `ED_gizmotypes_snap_3d_update` function more specialized.
2021-03-08Fix T86347: Add Primitive Tool fails for 1x1x1 scalePhilipp Oeser
The Tool stores desired dimensions as `scale` and thus had to half the scale again in `make_prim_init()` because by default all primitives are created at a size of 2 in blender. This worked, but: - [1] it logged something like size=2, scale=2,2,2 for a 2x2x2 cube [which does not sound right, it should be size=2 scale=1,1,1] - [2] it had to make an exception for the case scale is exactly 1x1x1 [this happens when the property is not set specifically, e.g. adding primitives from the menu] -- this exception led to double sized primitives being created when the tool asked for exact dimensions of 1x1x1 Now - instead of compensating in `make_prim_init()` - do this earlier in the tool itself, see `view3d_interactive_add_modal`, this fixes the bug and now also correctly logs size=2 scale 0.5,0.5,0.5 for a 1x1x1 cube. Maniphest Tasks: T86347 Differential Revision: https://developer.blender.org/D10632
2021-01-31Cleanup: use switch for Add Object Tool event handlingCampbell Barton
2021-01-31Add Object Tool: make automatic axis selection an optionCampbell Barton
While useful in some cases, this meant it wasn't possible to use the "Floor" for object placement without looking top-down or bottom up.
2021-01-20Add Object Tool: minor improvements to tool-tipsCampbell Barton
2021-01-20Add Object Tool: adjust cursor alpha when near view alignedCampbell Barton
The cursor-plane was too dense/bright when approaching view alignment.
2021-01-19Fix T84824: Incorrect height using interactive add toolFalk David
When using the interactive add tool for primitives with a fixed height and base aspect ratio, the height of the created primitive would be incorrect (two times too small or two times too big). When the base origin was centered, the `fixed_aspect_dimension` was not changed even though the base length was doubled. Additionally, when the height origin was centered but the height aspect ratio was fixed, the height was doubled leading to an incorrect size. The fix doubles `fixed_aspect_dimension` when the base origin is centered and correctly calculates the height of the primitive when the aspect ratio is set to fixed. Ref D10140
2021-01-17Add Object Tool: scale the cursor plane based on the depthCampbell Barton
Draw the cursor plane smaller then further away from the view. This makes the plane being drawn onto easier to perceive.
2021-01-17Add Object Tool: split aspect & origin options for base/heightCampbell Barton
In practice it's common these settings shouldn't be linked for drawing the initial (base) plane, compared with the height.
2021-01-16Add Object Tool: add initial "Fixed Aspect" optionCampbell Barton
This makes it more convent to add many objects with a fixed aspect ratio.
2021-01-16Add Object Tool: make UI more compactCampbell Barton
Move some of the more obscure options into a popover, so they don't take up so much room in the top-bar.
2021-01-16Add Object Tool: support incremental snappingCampbell Barton
This adds a "Snap to" option that allows using all the scenes snap settings which includes incremental & absolute grid snapping options. This is optional because always following scene snapping would not snap to geometry by default (which seems to be the most useful default).
2021-01-16Add Object Tool: workaround non-orthogonal orientation matricesCampbell Barton
2021-01-16Add Object Tool: quiet warning setting sizeCampbell Barton
The size property was only used for the cube
2021-01-16Add Object Tool: rename keymap, expose in keymap editorCampbell Barton
Make the name follow the convention of other View3D keymaps.
2021-01-14Fix add-object tool snap placement when activated from tweak eventCampbell Barton
When activating add-object from from a tweak event (default keymap), the snap gizmo could snap to a new location while dragging. Workaround this by re-calculating the snap position where the tweak event starts. Reported T57210#1077747
2021-01-04Cleanup: correct array size in argumentCampbell Barton
2020-12-09Fix T83460: Regression in snap for measure toolGermano Cavalcante
Now the gizmo is drawn only when the eventstate located in `wm->winactive->eventstate` has not changed. So it doesn't matter if it's "selected" or not. This commit also removes the use of the private header "wm.h" Reviewed By: campbellbarton Differential Revision: https://developer.blender.org/D9539
2020-12-08Cleanup: use static declarationsCampbell Barton
2020-11-20Fix add-object cursor plane failing to update on zoomCampbell Barton
Zoom with an orthographic view wasn't refreshing the preview plane.