This allows different markers has different size of search area which
makes it possible to scale search area when doing planar tracking.
Made changes to all related areas such as transformation, tracking,
finally ported marker clamping function, added python bindings for
changed search area and added python API for pattern corners.
TODO: It's still possible to make marker's center go outside of pattern
corners when translating pattern area or rotating it around median
point.
Implemented general transformation tool Rotation for motion tracking data.
Mainly used to rotate pattern of markers.
To achieve most of usability, added configurable pivot point which is in fact
was median point before, but now can be chosen from boundbox center, median point
or individual centers. Individual centers means transformation would be performed
around marker's position, which is useful for rotation and scale.
Also implemented alternative scaling transformation -- hit S, S leads to
scaling of pattern area only.
TODO:
- clamping in some cases isn't working well, but that's easier to be resolved
after moving search are to marker.
- Update startup.blend so clip editor in Motion Tracking screen would be set to
Individual Centers by default.
- Added new dtaablock called Mask which might be re-used in any area.
Currently editing of masks happens in clip editor and they might be used in
compositor nodes only.
- Added new mode to clip clip editor to interact with masks.
Implemented basic tools to create shapes, splines and points. Also implemented
idea of UW points for feather which means feather points are have got U
coordinate along spline (which is measured from 0 to 1) and W is it's weight
meaning distance from main spline.
- Spline points might be parented to movie tracks.
Interface for this isn't best yet.
- Rasterisaztion of masks happens in compositor node (Input -> Mask)
Input image of this ode is used as reference for mask resolution.
Currently all splines of all shapes are rasterizing independently which
means shapes with holes are not supported.
Also feather rasterization is not implemented.
Rasterized was implemented by Pete Larbell, thanks!
Do not consider this is something finished, there's still lots of things to
be done (especially from interface and usability points of view).
- Make sure functions are named in way BKE_<object>_<action> (same way as RNA callbacks)
- Make functions which are used by mball.c only static and remove their prototypes
from public header file.
Further cleanup is coming.
- spelling - turns out we had tessellation spelt wrong all over.
- use \directive for doxy (not @directive)
- remove BLI_sparsemap.h - was from bmesh merge IIRC but entire file commented and not used.
Curve points of tracks curves now can be selected for X and Y channels
separately and can be moved along Y axis of curve viewer, points currently
can't change frame they belong to. This allows to smooth spikes caused by
unwanted marker jump.
Also fixed some mistakes in cancel transform in cases when locked tracks
were being trying to be moved; fixed incorrect calculation of marker speed
for curve drawing.
inconsistent with similar functions & math notation:
mul_m4_m4m4(R, B, A) => mult_m4_m4m4(R, A, B)
mul_m3_m3m4(R, B, A) => mult_m3_m3m4(R, A, B)
For branch maintainers, it should be relatively simple to fix things manually,
it's also possible run this script after merging to do automatic replacement:
http://www.pasteall.org/27459/python
This commit implements basis stuff needed for object tracking,
use case isn't perfect now, interface also should be cleaned a bit.
- Added list of objects to be tracked. Default there's only one object called
"Camera" which is used for solving camera motion. Other objects can be added
and each of them will have it;s own list of tracks. Only one object can be used
for camera solving at this moment.
- Added new constraint called "Object Tracking" which makes oriented object be
moving in the save way as solved object motion.
- Scene orientation tools can be used for orienting object to bundles.
- All tools which works with list of tracks or reconstruction data now
gets that lists from active editing object.
- All objects and their tracking data are available via python api.
- some merges added lines in multiple times
- removed some NULL checks that were only in bmesh
- enable cycles by default (was disabled because it used not to work)
- make formatting match