This operator still had some built-in assumptions about the connectivity of input/output sockets (1-to-n in all current node systems). For future node systems (e.g. flow-based particles) and for general customizable nodes the operator is now fully symmetric and supports all kinds of connectivity limits (1:1, 1:n, m:1, m:n).
The operator data can also store a list of node links as opposed to a single link now, so that multiple links can be redirected at once. Holding the CTRL key when clicking a socket, all links from/to that socket are detached and can be moved to a different socket. This is useful for quickly appending a node without moving every individual link.
Actually it wasn't a bug -- currently curve/dopesheet view are in separated
spaces, so to keep displaying data in sync it's needed to update all visible
clip editors when changing displaying clip datablock.
Changed logic here a bit, so current clip wouldn't be changes for clip editors
where view is set to CLIP, only dopesheet/graph views are getting updated.
Also do not update displaying clip datablock when changing it from curve/dopesheet.
- Triangulate Cloth Mesh for collisions
- Speed up collisions
- Remove EL Topo code
- Prepare code to incooperate El Topo self collisions (TODO next commits)
TODO:
----------
- Triangulation: Is custom data/uv preserved correctly?
- Use MPoly not tessface?
This commits re-enables mouse sliding operator which behaves in the same
way as it used to for search area and marker position, but for pattern
it's now using individual corners. This allows to define affine transformation
which later would be used by tracker algorithm.
For non-affine tracking code is also ported but currently it's hardcoded to
use affine transformation. When real affine trackers and RNA/DNA changes would
be commited, easy to switch sliding operator to old-school behavior for
non-affine patterns.
Settings are shown in both the View3D toolbar and texture properties
panel; code is now in shared sculpt_brush_texture_settings() function
in properties_paint_common.py.
Also added a few new properties to the SculptCapabilities RNA to
replace "X in {Y, Z}" tests in the Python code.
* Renamed flip_coord as flip_v3_v3
* Added flip_v3 for same input/output
* Moved special case for grab brush's normal into calc_area_normal()
* Renamed 'fixed' texture mode as 'view plane', mirrors
Brush.sculpt_plane terminology
- reuses auto handle calculation
- keeps handle length relate to surrounding handles
todo
- only works well when cyclic is off
- isnt aspect aware (looks like other tools are not aspect aware too)
Added support of tracks to have their own grease pencil datablock.
This is controllable by Clip/Track toggle in Grease Pencil panel
in Clip Editor.
This toggle shows whether grease pencil stroke should go to movie clip's
datablock or to active track. As soon as this toggle is switched to Track,
all further strokes would be added to active track and only strokes which
belongs to active track would be displayed on the screen.
This strokes would be relative to track's position, which means if one
made some strokes to track and started moving it, stokes would be moved
together with track.
Different tracks might share the same grease pencil datablock.
Also hide draw modes which are not supported by space clip.
Initial idea why tracks should have grease pencil datablocks was to
support easy mask creation for tracking. This seemed fastest and
easiest way to achieve mask editing for tracks.
To get mask for specified track there's function BKE_tracking_track_mask_get
which requires MovieTracking structure, track for which mask is creating and
also width and height of current overall frame. it'll return ImBuf with
mask (probably it's more like overkill, because internally it works with
single-channel value buffer and probably that's one should be passing to
libmv).
Probably hacking grease pencil in such way is not ideal solution, but that
part of code might be cleaned up further and it seems to be straightforward
to use grease pencil for such a purpose.
Note: this is commit to tomato branch, not to trunk.
- Remove strict flags from files, which are using FFmpeg stuff
We're still using some symbols which are marked as deprecated.
Ideally, we shall switch to new API, but it's a bit larger challenge
because we don't want to break compatibility withotu actual need.
- Replace MAKE_ID with BT_MAKE_ID in bullet library.
This is needed to prevent re-definition of MAKE_ID in bullet library.
Seems it's only used to read blender files, so should be quite safe
change.
This starts converting markers in the movie clip editor / 2D
tracker from using pat_min and pat_max notation to using the
a more general, 4-corner representation. There is still
considerable porting work to do; in particular:
- The preview widget does not respect the new
representation
- The corners cannot yet be edited individually.
- The clamping does not do the right thing for general
corners; e.g. detecting a convex quad.
- The tracking code in Blender does not actually invoke the
corner tracking version of libmv's tracking API.
Next steps:
- Convert libmv's legacy ESM tracker and brute tracker to
work under the new TrackRegion() API.
- Make Blender use the new TrackRegion() API; this will
allow real planar tracking tests.
- Everything else (UI, etc).
This patch is mostly the work of Sergey Sharybin.
Have to use a ugly hack, as for pose bones, rotscale transform matrix is not always the same as translate one... :/
Adresses feature request [#30979] snapping: "align rotation with the snapping target" and pose-mode.