Commit Graph

484 Commits

Author SHA1 Message Date
b6e967be63 Code cleanup: const args and arrays 2014-04-27 08:56:54 +10:00
c67bd49e56 Code cleanup: use 'const' for arrays (editors) 2014-04-27 00:25:15 +10:00
e4a2df9fec View2d: check UI_view2d_view_to_region_clip succeeds before using the result 2014-04-21 18:11:47 +10:00
9ae0e585b0 View2d: API Cleanup for view<->region conversion
View2D had some inconsistencies making it error prone in some cases.

- Inconstant checking for NULL x/y args.
  Disallow NULL args for x/y destination pointers, instead add:
  - UI_view2d_region_to_view_x/y
  - UI_view2d_view_to_region_x/y

- '_no_clip' suffix wasn't always used for non-clipping conversion,
  switch it around and use a '_clip' suffix for all funcs that clip.

- UI_view2d_text_cache_add now clips before adding cache.

- '_clip' funcs return a bool to quickly check if its in the view.

- add conversion for rectangles, since this is a common task:
  - UI_view2d_view_to_region_rcti
  - UI_view2d_region_to_view_rctf
2014-04-21 16:59:40 +10:00
a15b3c4d11 Code cleanup: use bool 2014-04-11 11:33:29 +10:00
617557b08e Code cleanup: remove TRUE/FALSE & WITH_BOOL_COMPAT define 2014-04-01 15:22:28 +11:00
f0ca40f9c1 Code cleanup: function calls 2014-03-25 10:10:00 +11:00
2097e621ed Code cleanup: use r_ prefix for return args 2014-03-16 03:26:23 +11:00
b5b1ce9d21 BMesh: add overwrite option to BM_mesh_elem_hflag_enable/disable_test 2014-02-26 23:42:47 +11:00
d900f5be55 Code cleanup: use bools where possible 2014-02-03 19:35:44 +11:00
a5c35fb27f Code cleanup: use booleans where appropriate 2014-01-28 04:00:04 +11:00
4ae7ae6f2e Code Cleanup: use bool for return values and correct comments
also remove CDDM_Check, theres no need for it.
2014-01-22 02:53:48 +11:00
af93ebcb50 Code Cleanup: style and redundant casts 2014-01-16 19:15:53 +11:00
e23f77b935 Code Cleanup: move mesh mapping functions into their own file/header 2013-12-12 16:28:52 +11:00
63caaa2b12 Code Cleanup: rename vars for detecting change to be more consistent
rename change/is_change/is_changed/modified -> changed
also use bools over int/short/char and once accidental float.
2013-11-26 06:39:14 +11:00
3264461598 move bmesh array lookup data and utility functions from editmesh into bmesh,
since enough bmesh operations can also take advantage of direct index lookups on verts/edges/faces.

developers note:
- EDBM_index_arrays_init/ensure/free -> BM_mesh_elem_table_ensure/init/free
- EDBM_vert/edge/face_at_index -> BM_vert/edge/face_at_index
- EDBM_uv_element_map_create/free -> BM_uv_element_map_create/free
- ED_uv_element_get -> BM_uv_element_get
2013-10-28 02:05:33 +00:00
03dbae07d3 Mask primitives
Currently only circle and square, might be easily
extended in the future.

New primitives are creating at cursor location.
This also implied adding 2d cursor to space clip.

Also fix set 2D cursor location which didn't work
in image editor's mask mode since 2.67.

TODO: draw_image_cursor better be moved to some
      more generic file, but it's not so much
      important for now and might be solved later.

Thanks Campbell for the review!
2013-08-26 20:23:26 +00:00
4982f200fa move alloca define into its own header since its not related to BLI_array 2013-07-28 10:38:25 +00:00
4d47f5fe05 snap to cursor (offset option) added for UV's too. 2013-07-21 16:45:38 +00:00
781184562b add api calls for BM_mesh_active_vert/edge_get.
inspecting the edit-selection inline was cumbersome.
2013-06-24 04:51:56 +00:00
2df82a2a2b Code cleanup: fix some vs2012 compiler warnings 2013-06-21 12:33:19 +00:00
8683006143 Attempt to fix #35548:
Use nearest edge instead of nearest vertex for UV island selection, or
you may get a far away UV island that happens to have a vertex nearby.
2013-06-16 17:07:07 +00:00
a8c55a612b remove duplicate operator,
select-split and unlink-selection did the same thing,
keep select split since it fits closer to mesh editmode and single key access (Ykey).
2013-06-02 00:29:30 +00:00
51f04bf7b8 code cleanup: remove unneeded elements in uv NearestHit. 2013-05-19 18:05:34 +00:00
7e3b06da6d code cleanup: bmesh/uv
- uv_mouse_select() move from BLI_array to alloca
- was unnecessarily looping over faces for an index lookup when an array is already created.
2013-05-19 17:45:42 +00:00
12eb88788d code cleanup: remove some kludge from uv loop select 2013-05-19 17:20:10 +00:00
c47bbae8f0 code cleanup: uv_find_nearest_vert
was doing unneeded lookups on face uv's when the adjacent uv's are known.
2013-05-19 16:52:44 +00:00
359edc27d3 style cleanup 2013-05-11 01:06:01 +00:00
7a547e441b avoid customdata lookups for selection test/enable disable.
also add uvedit_face_select_set, uvedit_edge_select_set, uvedit_uv_select_set - since quite a few areas where setting based on a boolean.
2013-05-10 06:46:32 +00:00
27d19aaaf4 minor fixes
- build with netbsd works again.
- select uv more/less was crashing when called outside image space.
- node RNA property update was crashing when not called in node space.
2013-04-24 20:19:01 +00:00
6e6d00604d revision r56196 adding uv select more/less used 4 nested 'for' loops,
rewrite to use only 2.

also use generic, reusable functions for selection flushing so each operator doesn't need to implement its own.
and merge more-less operation into the same function, just call the selection flush function with select/deselect arg.
2013-04-22 06:02:30 +00:00
fa103d391e remove unneeded null checks from commit r56194, also minor style cleanup. 2013-04-22 03:08:56 +00:00
edab815137 Add Select More (ctrl np+) and Select Less (ctrl np-) to UV editor
These tools allow to extend or shrink uv selection like in edit mode, but also take selection mode, sync mode and sticky mode into account.
2013-04-21 19:04:04 +00:00
37e73aa368 code cleanup: use BKE naming conventions for functions in BKE_editmesh.h and BKE_editmesh_bvh.h 2013-04-16 05:59:48 +00:00
ceb61eb14d Fix #34978: for cycles, images displayed in the UV editor where coupled to the
active image texture node in the material, now this is removed and the image in
the image editor is decoupled and not changed upon entering edit mode.

This system caused more confusion then it's worth, changing or removing textures
would modify the material but users would often not be aware of this.
2013-04-15 18:05:53 +00:00
6da961775f code cleanup: rename BKE_tessmesh -> BKE_editmesh, rename EditDerivedBMesh.tc -> em. ('tc' is odd name which isn't used elsewhere). 2013-04-13 20:31:52 +00:00
97a6965da9 fix for various crashes from incorrect poll functions.
- bevel had incorrect cancel when initialization failed which could crash (own mistake).
- main particle poll function didnt check if the area/region were NULL.
- some uv operators needed space image but didnt check for it. also use uv_ prefix for most operator functions.
2013-04-08 10:03:51 +00:00
e7c15beaf6 code cleanup: use booleans for mesh and selection code. 2013-03-19 23:17:44 +00:00
Lukas Toenne
4638e5f99a Merge of the PyNodes branch (aka "custom nodes") into trunk.
PyNodes opens up the node system in Blender to scripters and adds a number of UI-level improvements.

=== Dynamic node type registration ===
Node types can now be added at runtime, using the RNA registration mechanism from python. This enables addons such as render engines to create a complete user interface with nodes.

Examples of how such nodes can be defined can be found in my personal wiki docs atm [1] and as a script template in release/scripts/templates_py/custom_nodes.py [2].

=== Node group improvements ===
Each node editor now has a tree history of edited node groups, which allows opening and editing nested node groups. The node editor also supports pinning now, so that different spaces can be used to edit different node groups simultaneously. For more ramblings and rationale see (really old) blog post on code.blender.org [3].

The interface of node groups has been overhauled. Sockets of a node group are no longer displayed in columns on either side, but instead special input/output nodes are used to mirror group sockets inside a node tree. This solves the problem of long node lines in groups and allows more adaptable node layout. Internal sockets can be exposed from a group by either connecting to the extension sockets in input/output nodes (shown as empty circle) or by adding sockets from the node property bar in the "Interface" panel. Further details such as the socket name can also be changed there.

[1] http://wiki.blender.org/index.php/User:Phonybone/Python_Nodes
[2] http://projects.blender.org/scm/viewvc.php/trunk/blender/release/scripts/templates_py/custom_nodes.py?view=markup&root=bf-blender
[3] http://code.blender.org/index.php/2012/01/improving-node-group-interface-editing/
2013-03-18 16:34:57 +00:00
aaa8a13c49 code cleanup: use const events for modal and invoke operators. 2013-03-13 09:03:46 +00:00
68f9226d5b code cleanup: unused arg 2013-02-27 01:43:48 +00:00
4e14fe4509 Bug fix #34384
Border select in UV Image window crashed, if used when Image Window shows a render.
Made operators for UV vertex manipulations having a more strict check for this mode.
(Similar to other UV tools there).
2013-02-24 14:42:21 +00:00
6e0cedd61c code cleanup: operator/function mismatch 2013-02-17 07:17:04 +00:00
889a940cef reduce customdata lookups for UV drawing and tools. 2013-01-12 19:39:03 +00:00
7c64109bce bmesh todo: uv stretch area draw mode wasn't calculating ngon area - added area_poly_v2(). 2013-01-10 08:16:19 +00:00
44b634bcb1 make EDBM_index_arrays's stay in memory, blender was allocating an array and filling it for verts/edges/faces on every redraw.
this may introduce bugs which I didn't catch, but they are very easy to identify in a debug build which has asserts to ensure the arrays are valid before use.

in my own test drawing ~98,304 quads - this gave an overall ~16% drawing speedup.
2012-12-12 06:53:39 +00:00
cf723e5e7c use htype flags as arguments to EDBM_index_arrays_init(), no functional changes. 2012-12-12 05:27:52 +00:00
233e0b2472 fix uv lasso and circle select - both were not working with uv-face-select mode.
now face select with/without sync-select work, with sticky options too.
2012-11-26 16:55:44 +00:00
3509dd9d7f fix for changing images in UV editmode with sync-selection enabled, this was switching all images even those from unselected faces. 2012-11-26 15:12:17 +00:00
b1904e411a Minor spellchaeck in UI message. 2012-11-19 19:26:23 +00:00