Commit Graph

653 Commits

Author SHA1 Message Date
Lukas Toenne
c2aca3b517 Fix for node transform offsets when adding new nodes: The transform operator was using the node->totr rect for defining the initial location of the node - but this is only defined after the node has been
drawn at least once, so nodes would jump to (0,0) after adding ... Use the locx/locy instead (including DPI factor), which is more reliable.
2013-11-07 09:15:29 +00:00
Lukas Toenne
7398600090 True grid snapping for nodes: This snaps nodes to the actual background grid instead of using incremental offset (which is not useful for nodes). Increment snapping has been disabled for nodes to avoid
confusion, grid snap is now the default as it seems to be the most wanted and easy to use mode.

Absolute grid snapping happens in a somewhat generic function 'applyGridAbsolute', which could also be used for objects and other transforms later on. It is conceptually similar to the 'project' snapping
option, in that it calculates a delta vector for each element on top of the overall transform, which places each node on the grid.

Node transform now uses the top-left node corner for TransformData->loc. The transform center is still the average of node centers, so that scaling and rotation works nicely.

snapGrid*** functions have been renamed to snapGridIncrement*** to distinguish better between incremental and absolute grid snapping.
2013-11-06 17:46:32 +00:00
7a10bacaf9 Bugfix [#36203] Transformation bone constraint breaks Track To / Dumped Track
Limited crazy-space constraint correction for Transform constraint to only get
applied when only rotating bones with such constraints.
2013-11-05 01:44:38 +00:00
bc5218a0f4 Code cleanup: more int->bool conversions mask module 2013-10-29 18:56:21 +00:00
16d13e0db9 Project Pampa request: FCurves normalized display
Added two options to a header of FCurve editor:

- Normalize which makes it so every individual
  curve is fit into -1..1 space.

- Auto-normalize, which probably is to be called
  "Lock" which "locks" curve normalization scale.
  This is useful to prevent curves from jumping
  around when tweaking it.

It's debatable whether it need to be a button to
normalize curves n purpose only, and it's fully
depends on animator's workflow.

Here during Project Pampa we've got Francesco
who get used to auto-renormalization and Hjalti
who prefers locked behavior.

Docs are to be ready soon by Francesco.
Thanks Brecht for the review!
2013-10-29 18:10:52 +00:00
f6e504cee9 Make anim system safer for threading
Remove usages of ANIM_unit_mapping_apply_fcurve in favor of
runtime scale factor apply.

There're still calls to ANIM_nla_mapping_apply_fcurve are
hanging around, they're the next t be cleaned up!
2013-10-29 18:10:48 +00: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
48c1e0c0fc spelling: use American spelling for canceled 2013-10-26 01:06:19 +00:00
0039b44d10 fix for negated normal being used when using individual centers & normal orientation in vertex select mode. 2013-10-23 10:35:49 +00:00
9b3e3f3e31 fix for bug own recent commit [#36904] Snap to Volume is broken with Armature
this is infact an older bug which was exposed by the recent change.
for now only use the change in behavior for scale/rotation.
2013-10-01 12:11:10 +00:00
aecb76b93e fix bug with vector handles in the graph editor when transforming 2 selected points of a bezt, the unselected handle wouldn't have its value restored on transform cancel. 2013-10-01 08:30:46 +00:00
f1f7648d4c fix for error setting vector handles to free when both vector handles were selected but not the mid-point.
only one of the handles would be changed to the HD_FREE.

effected curves and fcurves.
2013-10-01 08:18:43 +00:00
9550d05a1c fix [#36900] single spline handle can't be "scaled"
this works in the graph editor but didn't for curves, useful functionality to have.
2013-10-01 07:02:18 +00:00
fe9a64ad6f curve transform: scale handles around their knot when using individual centers. 2013-10-01 05:17:57 +00:00
fa16aeed2d postpone crazy-space changes until next release, causes issues with extrude which need further fixes. 2013-09-24 12:43:25 +00:00
9794c70f65 modifiers_isCorrectableDeformed now checks a modifier is enabled before returning true,
also check deformMatricesEM callback for modifier_isCorrectableDeformed() rather then checking modifier types.
2013-09-24 00:56:47 +00:00
Lukas Toenne
29b546fe7f Fix for #36739: Delete new nodes added via the Add menu or toolbar if the subsequent transform operator is cancelled. This prevents ugly situations where nodes stick "under" the toolbar after clicking a
wrong button.

Works by adding a flag to transform operators "remove_on_cancel". This is currently only used for node transforms, the idea is that if set, the operator will remove the transformed elements when it is
cancelled. It's not possible to do that in the original NODE_OT_add_node operator, because transform is modal and there is no way of reacting to a cancel outside of the transform itself (previous attempt
used a macro operator, but that also doesn't work because subsequent operators don't get executed if the previous transform cancels).
2013-09-17 13:07:48 +00:00
810000f2be use crazy-space when modifiers_isCorrectableDeformed() fails,
without this. warp modifier for eg didnt use crazy-space.
2013-09-15 11:51:38 +00:00
8f3552953a modify crazyspace_get_mapped_editverts to work like crazyspace_set_quats_mesh
- array of quats is now aligned with the vertices (over alloc, it simplifies things and removes need to set invalid index values).
- remove visit-bitmap from crazyspace_get_mapped_editverts(). setting coords multiple times isnt bad.
2013-09-15 11:38:48 +00:00
9b09af0dca Fix #36701: Mask pivioting doesnt honor parenting
Made mask transformation aware of parent matrix.
2013-09-11 10:06:54 +00:00
e72c6f191f Tweaks to plane track
- Do plane re-evaluation only when transform is actually done.
  Before this re-evaluation happened on every mouse move.

- Added a flag "Auto Keyframe" for the plane track, which does:

  * If Auto Keyframe is enabled, then every manual edit of the
    plane will create a new keyframe at current frame and update
    plane motion between current frame and previous/next keyframe.

    This now also implies blending detected motion with neighbor
    keyframes, so there's no jump happening.

    No automatic update on manual point tracks edit will happen.

  * If auto Keyframe is disabled, then no keyframes are adding
    to the plane and every plane tweak will re-evaluate in on
    the whole frame range.

    In this case manual tweaks to point tracks and re-tracking
    them implies plane re-evaluation.
2013-09-10 12:46:18 +00:00
347ba7f159 fix [#36517] You can edit a texture space (Shift-T) of a linked mesh
also enable other errors to show up which were previously commented.
2013-08-20 06:04:46 +00:00
d7cc2be2b7 add linklist stack macros, use where over allocating an array was previously done. 2013-08-17 05:33:55 +00:00
24ce60cfe4 Merge plane track feature from tomato branch
This commit includes all the changes made for plane tracker
in tomato branch.

Movie clip editor changes:

- Artist might create a plane track out of multiple point
  tracks which belongs to the same track (minimum amount of
  point tracks is 4, maximum is not actually limited).

  When new plane track is added, it's getting "tracked"
  across all point tracks, which makes it stick to the same
  plane point tracks belong to.

- After plane track was added, it need to be manually adjusted
  in a way it covers feature one might to mask/replace.

  General transform tools (G, R, S) or sliding corners with
  a mouse could be sued for this. Plane corner which
  corresponds to left bottom image corner has got X/Y axis
  on it (red is for X axis, green for Y).

- Re-adjusting plane corners makes plane to be "re-tracked"
  for the frames sequence between current frame and next
  and previous keyframes.

- Kayframes might be removed from the plane, using Shit-X
  (Marker Delete) operator. However, currently manual
  re-adjustment or "re-track" trigger is needed.

Compositor changes:

- Added new node called Plane Track Deform.

- User selects which plane track to use (for this he need
  to select movie clip datablock, object and track names).

- Node gets an image input, which need to be warped into
  the plane.

- Node outputs:
  * Input image warped into the plane.
  * Plane, rasterized to a mask.

Masking changes:

- Mask points might be parented to a plane track, which
  makes this point deforming in a way as if it belongs
  to the tracked plane.

Some video tutorials are available:
- Coder video: http://www.youtube.com/watch?v=vISEwqNHqe4
- Artist video: https://vimeo.com/71727578

This is mine and Keir's holiday code project :)
2013-08-16 09:46:30 +00:00
723eaa36ce fix own error in BM_mesh_calc_edge_groups() was clearning wrong dirty-index flag.
also remove unused transform defines.
2013-08-14 08:14:50 +00:00
00b39c4e5b code cleanup: more confusion with 0/NULL/false 2013-08-07 03:55:21 +00:00
298a03ee63 fix for error in own recent changes to transform initialization, proportional editmode needs to skip hidden faces. 2013-07-30 09:50:17 +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
e69fdfab30 adjust createSpaceNormalTangent so it can take values from a matrix without having to negate the plane first.
also add ED_armature_ebone_to_mat3/4 since there were quite a few places that did this inline.
2013-07-25 12:07:55 +00:00
b6f58d0ea1 - add individual origin support for curves and improve the orientation calculations for curve handles,
- add support for using the active point's orientation.
- add support for creating new custom orientations from curves.
- fix error where only the last selected curve handle was taken into account for manipulator orientations.
2013-07-24 13:56:36 +00:00
e50c37d90f code cleanup: remove deprecated bevel code (unused since 2.64) 2013-07-23 14:28:19 +00:00
57ce6d1470 old todo, rotate around individual origins now supports connected face/edge islands.
previously this gave very odd/annoying results, see bug reports [#36134], [#35419]
2013-07-22 14:50:38 +00:00
9634f8f115 transform was flushing the selection (inline), now skip this and use the selection as-is.
flush the selection on entering editmode instead (since the selection mode can be changed with another mesh).
is other tools leave the selection incorrectly flushed, those will need to be fixed so transform works as expected.
2013-07-22 10:44:24 +00:00
77e0709e48 Fix #35551: the topology mirror setting affected shape key and vertex group but
this was confusing as there was no setting visible for it. Now these menus
contain an entry to mirror without and with topology mirror.
2013-06-28 17:13:09 +00:00
28dd9c6a40 Fix #35767: transforming nodes in the node editor changed the wireframe color
of the active object in the 3D view. This was due to sharing a global G.moving
flag to indicate that transform is active, now it's only set per transform data
type so different editors don't influence each other.
2013-06-24 22:41:37 +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
2dc88ca338 support proportional editing with x-mirror enabled. 2013-06-20 18:19:42 +00:00
7021251043 transform: 2d option for proportional editmode,
Uses for view orientation for distance calculation, can give nicer results when you dont want twisting caused by changes in depth.
2013-06-20 13:24:07 +00:00
1ed8343d6d add axis option to EDBM_verts_mirror_cache_begin 2013-06-19 21:23:00 +00:00
6c6e8e43de fix [#35590] Connected proportional editing gives unexpected results 2013-06-17 18:57:18 +00:00
03b6653618 measure distance across faces when checking for proportional distance connectivity (gives smoother results) 2013-06-17 17:25:02 +00:00
60acf217f8 fix for editmesh transform connected,
the distance checks could get into a feedback loop so that the result depended on the order of verts/edges.

now you can randomize vert/edge/faces and get exactly the same results.

also made some internal improvements,
- used fixed sized arrays (no need to realloc).
- use vertex tag flags rather then a visit-hash.
- remove 'tots' array that did nothing (not sure why it was added).
2013-06-17 16:55:05 +00:00
d761b91b65 reduce sqrt's calls in set_prop_dist(). 2013-06-17 14:37:12 +00:00
72abfbfc95 fix automerge + mirror, previously only the selected verts would auto-merge. 2013-06-16 05:13:12 +00:00
eabb30a236 patch [#35631] Active element for Lattice
by Kevin Mackay (yakca)

Was one of our TODO's from the wiki.
2013-06-09 20:28:08 +00:00
f3a4eab751 jpbouza Feature Request: Transformation Constraint now allows applies rotation
offsets too (like for location)

This is useful in some cases when Copy Rotation constraints would otherwise be
used for this purpose but cannot be used for various reasons. Basically, this
works in practically the same way that the Copy Rotation offsets work, including
the same weirdness that you'll get when trying to manually rotate these in the
3D viewport using "global" space manipulations ("local/normal" spaces though
still seem to work really nicely).

WARNING: this may potentially break old files with transform constraint setups
involving rotation outputs. Please check whether this causes any problems on old
files, and report back if there are any issues.
2013-06-09 12:30:13 +00:00
666c8b51ca changes to mirror tools
- give feedback on how many mirror verts succeed/fail (for select mirror, shape key mirror, weight mirror)
... when a mirror failed it was confusing and not obvious what was going on.

- slight change to select mirror, now center vertices will remain selected.

- speedup to EDBM_verts_mirror_cache_begin, cache customdata layer offset.
2013-06-05 05:58:51 +00:00
225c5fee6b move BLO_sys_types.h -> BLI_sys_types.h (it had nothing todo with loading)
remove MEM_sys_types.h which was a duplicate.
2013-05-28 19:35:26 +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
5999aebe4e fix for glitch in object drawing, color of texspace was last used editmode draw color.
also disable BGE bounds drawing when outside of object mode.
2013-04-20 06:22:17 +00:00