9 years agoFix camera curve in clip editor not being remapped by a clip's start frame
Sergey Sharybin [Tue, 12 Jun 2012 21:07:14 +0000 (21:07 +0000)]
Fix camera curve in clip editor not being remapped by a clip's start frame

9 years agoyse BLI_math for the compositor in more places.
Campbell Barton [Tue, 12 Jun 2012 20:04:55 +0000 (20:04 +0000)]
yse BLI_math for the compositor in more places.

9 years agofix: Collada build warning about inconsistent usage of Camera structure/class
Gaia Clary [Tue, 12 Jun 2012 19:37:30 +0000 (19:37 +0000)]
fix: Collada build warning about inconsistent usage of Camera structure/class

9 years agoCycles:
Thomas Dinges [Tue, 12 Jun 2012 19:04:12 +0000 (19:04 +0000)]
* Add back a break, which was deleted in r47773.

9 years agoremove input socket of mask node, this wasnt used.
Campbell Barton [Tue, 12 Jun 2012 18:36:49 +0000 (18:36 +0000)]
remove input socket of mask node, this wasnt used.

9 years agoMinor fix [#31798] [minor] simpledeform modifier tooltip
Bastien Montagne [Tue, 12 Jun 2012 18:35:36 +0000 (18:35 +0000)]
Minor fix [#31798] [minor] simpledeform modifier tooltip

9 years agoAdded Selected Only and Show Hidden flags to clip editor's curve view
Sergey Sharybin [Tue, 12 Jun 2012 17:11:16 +0000 (17:11 +0000)]
Added Selected Only and Show Hidden flags to clip editor's curve view

9 years agoSome Clip Editor interface clean-ups:
Sergey Sharybin [Tue, 12 Jun 2012 17:11:00 +0000 (17:11 +0000)]
Some Clip Editor interface clean-ups:

- Display track's reprojection error in dopesheet
- Make sure track is selected when clicking on dopesheet channel
- Attempt to make headers a bit cleaner without long labels which
  doesn't actually make sense.

9 years agoAdded options to display only selected tracks and show hidden tracks
Sergey Sharybin [Tue, 12 Jun 2012 17:10:47 +0000 (17:10 +0000)]
Added options to display only selected tracks and show hidden tracks
in motion tracking dopesheet view.

By default all channels are displaying now.

9 years agoMake dopesheet settings per-tracking data
Sergey Sharybin [Tue, 12 Jun 2012 17:10:24 +0000 (17:10 +0000)]
Make dopesheet settings per-tracking data

It was a bit confusing to synchronize settings used in pre-calculated
dopesheet channels which was storing in tracking data with settings
used for display which is in space data.

This was initially done by converting one flags to other and checking
if space's settings matches pre-calculated one, but that had several
issues if two different dopesheet are using different settings:

- Channels would be re-calculated on every redraw for each of spaces
- Dopesheet operators could fail due to the could be using  channels
  calculated for other space.

That was also quite nasty code checking if requested settings matches
pre-calculated one.

9 years agoTracking dopesheet's scrollbat now updates to channels number nicely.
Sergey Sharybin [Tue, 12 Jun 2012 14:59:36 +0000 (14:59 +0000)]
Tracking dopesheet's scrollbat now updates to channels number nicely.

9 years agoNaming + Style tweaks for newly added flag for Action Constraint
Joshua Leung [Tue, 12 Jun 2012 11:54:31 +0000 (11:54 +0000)]
Naming + Style tweaks for newly added flag for Action Constraint

Old names used could conflict with other things too easily in future

9 years agoDecrease frequency of mallocs during multires sculpt smoothing
Nicholas Bishop [Tue, 12 Jun 2012 11:22:10 +0000 (11:22 +0000)]
Decrease frequency of mallocs during multires sculpt smoothing

Patch from Jason Wilkins.

Creates a pool of allocations (one for each OpenMP thread) rather than
allocating every time do_multires_smooth_brush() is called.

9 years agoMasking support for motion tracks
Sergey Sharybin [Tue, 12 Jun 2012 11:13:53 +0000 (11:13 +0000)]
Masking support for motion tracks

Added option to use Grease Pencil datablock as a mask for pattern
when doing motion tracking. Option could be found in Tracking Settings

All strokes would be rasterized separately from each other and every
stroke is treating as a closed spline.

Also added option to apply a mask on track preview which is situated
just after B/B/W channel button under track preview.

9 years agooptimize jpeg2000 loading.
Campbell Barton [Tue, 12 Jun 2012 08:50:40 +0000 (08:50 +0000)]
optimize jpeg2000 loading.

9 years agoModification of node groups by adding/removing nodes is not possible yet. This patch...
Lukas Toenne [Tue, 12 Jun 2012 08:44:46 +0000 (08:44 +0000)]
Modification of node groups by adding/removing nodes is not possible yet. This patch extends the 'Make Group' operator and adds a new 'Separate' operator to add such functionality.

1) For inserting into existing groups:
  The 'Make Group from selected' (CTRL+g) operator shows a selection popup (like the object parenting operator), with options depending on the type of the active node (last selected):
  * "New" -> regular operator, creates new group type with all selected nodes inside.
  * "Insert" (only if active node is a group) -> adds all other selected nodes into the group.

  Currently still prohibits groups inside groups in general, though would be technically possible as long as no actual recursion occurs (group containing itself).

2) For extracting from an existing group:
  New 'Separate from group' operator (p), works similar to separating vertices/edges/faces from mesh. Two modes:
  * "Copy" makes a copy of the nodes in the parent tree, but keeps the original group intact.
  * "Move" removes selected nodes from the node group and adds them to the parent tree

9 years agoFew minors style and type fixes (and a nice, harmless copy/paste error! ;) )
Bastien Montagne [Tue, 12 Jun 2012 08:32:06 +0000 (08:32 +0000)]
Few minors style and type fixes (and a nice, harmless copy/paste error! ;) )

9 years agoReroute node socket types update automatically from connections when possible. This...
Lukas Toenne [Tue, 12 Jun 2012 08:28:25 +0000 (08:28 +0000)]
Reroute node socket types update automatically from connections when possible. This prevents unnecessary conversions and breaking connections when linking incompatible types to the reroute color sockets (point in case: cycles shaders).

9 years agooptimize jpeg2000 saving
Campbell Barton [Tue, 12 Jun 2012 08:10:34 +0000 (08:10 +0000)]
optimize jpeg2000 saving
- expand loops to avoid checks for each iteration
- use unsigned ints for looping over pixels
- use inline functions for color conversion

9 years agoFix #31675 Reroute nodes aren't working for cycles.
Lukas Toenne [Tue, 12 Jun 2012 07:27:50 +0000 (07:27 +0000)]
Fix #31675 Reroute nodes aren't working for cycles.

Note that currently the reroute nodes are hardcoded to color values, which means they will not work for shader type connections (and possibly cause overhead for float and vector conversion). Looking into a solution.

9 years ago"Fix" for [#30704] Action Constraint mapping bug
Bastien Montagne [Tue, 12 Jun 2012 06:22:23 +0000 (06:22 +0000)]
"Fix" for [#30704] Action Constraint mapping bug

Feature request rather than a real bug: allow constrained bone to use "object" part of the linked action, in addition to "same-named bone" part.

9 years ago * FIX for
Jeroen Bakker [Tue, 12 Jun 2012 04:23:21 +0000 (04:23 +0000)]
 * FIX for
   - [#31777] Border Crop gives black
   - [#31768] Crash when connecting a Math node to a translate node in Tiles comp
   - [#31638] View node in new node compo system crashes when inside a group
 * make sure a very fast vignette can be made by using a EliipseMask + Fast Gaussian blur

9 years agofix for using freed memory with mask point slide
Campbell Barton [Mon, 11 Jun 2012 20:58:16 +0000 (20:58 +0000)]
fix for using freed memory with mask point slide
-- This line, and those below, will be ignored--

M    source/blender/editors/mask/mask_ops.c

9 years agofix for crash drawing grease pencil attached to a tracking marker.
Campbell Barton [Mon, 11 Jun 2012 20:50:57 +0000 (20:50 +0000)]
fix for crash drawing grease pencil attached to a tracking marker.
also fix for use of uninitialized variable for ED_clip_point_undistorted_pos().

9 years agosafety check when making a node local- make sure its already in the node tree.
Campbell Barton [Mon, 11 Jun 2012 19:12:45 +0000 (19:12 +0000)]
safety check when making a node local- make sure its already in the node tree.

9 years agoFixing first part of [#31760] Assignments not working properly for Object.dimensions
Bastien Montagne [Mon, 11 Jun 2012 18:58:34 +0000 (18:58 +0000)]
Fixing first part of [#31760] Assignments not working properly for Object.dimensions

Problem was in fact that non-linear-contiguous axis assignement was broken (i.e. location.xy would work as expected, but location.xz would only affect .x part)... Now all possibilities should work fine.

Did not try to fix the problem specific to obj.dimension (when assigning multiple times to this array, only the last one is taken into account - in fact, a simple print() shows that assigning to dimension is not taken into account immediately), not sure whether this is normal behavior, or if we need a specific "update" of some kind for this prop?

9 years agorna read/write access to ...
Campbell Barton [Mon, 11 Jun 2012 18:43:48 +0000 (18:43 +0000)]
rna read/write access to ...

9 years agominor changes to jpeg2k saving based on reading v1.5 source examples.
Campbell Barton [Mon, 11 Jun 2012 18:43:16 +0000 (18:43 +0000)]
minor changes to jpeg2k saving based on reading v1.5 source examples.

9 years agoadd missing node RNA booleans.
Campbell Barton [Mon, 11 Jun 2012 18:16:26 +0000 (18:16 +0000)]
add missing node RNA booleans.

9 years agoAdd user preference "GPU Mipmap Generation" under the System/OpenGL
Antony Riakiotakis [Mon, 11 Jun 2012 16:23:10 +0000 (16:23 +0000)]
Add user preference "GPU Mipmap Generation" under the System/OpenGL
subpanel to calculate image mipmapping on the GPU, saving upload and
calculation time. Default is off just in case.

9 years agoFix for node 'make group' operator in combination with frame nodes. When a selected...
Lukas Toenne [Mon, 11 Jun 2012 15:28:45 +0000 (15:28 +0000)]
Fix for node 'make group' operator in combination with frame nodes. When a selected node is attached to an unselected frame, the parent pointer would end up pointing to a different ID data block.

9 years agoFix compilation of new tracker for MinGW/MinGW64
Antony Riakiotakis [Mon, 11 Jun 2012 13:00:35 +0000 (13:00 +0000)]
Fix compilation of new tracker for MinGW/MinGW64

9 years agominor fixes
Campbell Barton [Mon, 11 Jun 2012 12:13:41 +0000 (12:13 +0000)]
minor fixes
- new compositor could use uninitialized var
- profile conversion could use uninitialized var
- set better warnings for clang+cmake.
- remove picky warnings from sphinx doc gen shell script.

9 years agoDraw grease pencil after masks
Sergey Sharybin [Mon, 11 Jun 2012 11:54:16 +0000 (11:54 +0000)]
Draw grease pencil after masks

Looks like drawing grease pencil before masks was affecting projection matrix
somehow which made masks invisible

Anyway, drawing GP actually shall happen after masks to match how it works
in other areas.

9 years agoScale search area when doing planar tracking
Sergey Sharybin [Mon, 11 Jun 2012 11:40:54 +0000 (11:40 +0000)]
Scale search area when doing planar tracking

Helps keeping features tracked when there's large scale happens
without need to manually re-adjust search area.

Currently using factor of pattern's boundbox scale, but probably
could be done in more accurate way?

9 years agoFixed issue with disappearing Clip/Track menu from GP panel in Clip Editor
Sergey Sharybin [Mon, 11 Jun 2012 11:40:36 +0000 (11:40 +0000)]
Fixed issue with disappearing Clip/Track menu from GP panel in Clip Editor
caused by switching to Track GP without having active track.

9 years agoCosmetic fixes
Joshua Leung [Mon, 11 Jun 2012 11:11:11 +0000 (11:11 +0000)]
Cosmetic fixes
* PoseBone struct didn't have an icon
* Comment fixes (stil referenced IPO's)

9 years agoFix invalid array index in armature_deform_verts().
Nicholas Bishop [Mon, 11 Jun 2012 11:00:58 +0000 (11:00 +0000)]
Fix invalid array index in armature_deform_verts().

Check that the def_nr is non-negative before using as index.

Fixes bug [#31700] Crash when opening .blend file on 64bit environment

9 years agoAdd missing/incorrect selection flushes.
Nicholas Bishop [Mon, 11 Jun 2012 10:14:46 +0000 (10:14 +0000)]
Add missing/incorrect selection flushes.

Added selection flush after loop cut, changed select_linked_pick's
flush to use the em selection flag.

Fixes bug [#31715] Cases where verts and edges are selected but not
relevant faces

9 years agotemplate for python node operators
Campbell Barton [Mon, 11 Jun 2012 10:11:31 +0000 (10:11 +0000)]
template for python node operators

9 years agoFix incorrectly deleted elements in array modifier caps.
Nicholas Bishop [Mon, 11 Jun 2012 09:41:08 +0000 (09:41 +0000)]
Fix incorrectly deleted elements in array modifier caps.

Add check for merging vertices into vertices that are themselves
marked for merge, was already done for array eleements but not end

Fixes bug [#31695] Array Modifier: End Cap fails if all vertices are merged

Also corrected some reversed assert arguments.

9 years agoupdates to context docs and add missing member to node context 'node_context_dir'.
Campbell Barton [Mon, 11 Jun 2012 09:24:25 +0000 (09:24 +0000)]
updates to context docs and add missing member to node context 'node_context_dir'.

9 years agoUI messages fixes...
Bastien Montagne [Mon, 11 Jun 2012 09:05:17 +0000 (09:05 +0000)]
UI messages fixes...

9 years agoFix applying object transform to multires objects.
Nicholas Bishop [Mon, 11 Jun 2012 08:37:35 +0000 (08:37 +0000)]
Fix applying object transform to multires objects.

Bug [#31785] Applying a transform to an object with multires weird result

Was reading interleaved coord/mask data incorrectly since paint mask
merge. Fixed by using two separate CCGKeys.

Some additional code cleanup: deduplicate multires tangent matrix

9 years ago * Blur node had some irregularities at the edge of the screen
Jeroen Bakker [Mon, 11 Jun 2012 08:28:04 +0000 (08:28 +0000)]
 * Blur node had some irregularities at the edge of the screen
 only visible when doing large size blurs.
 also solved the catcom/mitch filter that didn't work at low/medium quality

 PS never use BokehBlur Gausian filter as it is 99%+ identicat as non bokeh <= top for sergey- :)

9 years agofix for crashes in smooth-curves and clean-curves fcurve operators - missing NULL...
Campbell Barton [Mon, 11 Jun 2012 08:15:37 +0000 (08:15 +0000)]
fix for crashes in smooth-curves and clean-curves fcurve operators - missing NULL checks.

9 years agoMove all marker placement into a single omp critical section
Sergey Sharybin [Mon, 11 Jun 2012 08:06:42 +0000 (08:06 +0000)]
Move all marker placement into a single omp critical section
Could give small speadup.

9 years agoquiet 'unused' warning.
Campbell Barton [Mon, 11 Jun 2012 06:51:01 +0000 (06:51 +0000)]
quiet 'unused' warning.

9 years agoBugfix [#27886] Transform constraint maps wrongly with negative scale
Joshua Leung [Mon, 11 Jun 2012 05:05:05 +0000 (05:05 +0000)]
Bugfix [#27886] Transform constraint maps wrongly with negative scale

AFAIK, it is impossible to determine exactly which axes may have negative
scaling values from a 4x4 matrix (which is the underlying cause of this bug).
However, we can figure out if there is some negative scaling going on in that
matrix (i.e. one of the axes has negative scale). So, the fix here is to
negatively scale everything if we detect this happening.

WARNING: do not rely on being able to accurately detecting positive/negative
values for more than a single axis per bone controller. Weird results may occur.
You have been warned.

9 years agoBugfix [#31766] Mouseover Label reads 'Alt Left Arrow' when over the right
Joshua Leung [Mon, 11 Jun 2012 04:34:59 +0000 (04:34 +0000)]
Bugfix [#31766] Mouseover Label reads 'Alt Left Arrow' when over the right

Patch by Philipp Oeser

9 years agoBugfix [#28962] Changing actions via undo/delete all keyframes lacks UI refresh
Joshua Leung [Mon, 11 Jun 2012 04:13:39 +0000 (04:13 +0000)]
Bugfix [#28962] Changing actions via undo/delete all keyframes lacks UI refresh

Slightly hacky fix to get updates working for Action Editor header when there
are changes of the active action (via undo and/or deleting all keyframes at
once). Since the action referenced by the editor only gets updated when anim
channel filtering (e.g. as a result of the channel syncing operation) is
invoked. Added comments noting where these updates actually occur

9 years agoBugfix: Crash in Sequencer when trying to undo after using Grease Pencil
Joshua Leung [Mon, 11 Jun 2012 03:03:36 +0000 (03:03 +0000)]
Bugfix: Crash in Sequencer when trying to undo after using Grease Pencil

Grease Pencil data was not getting correctly relinked after file reload (for

9 years agoSVN maintenance.
Guillermo S. Romero [Mon, 11 Jun 2012 02:29:25 +0000 (02:29 +0000)]
SVN maintenance.

9 years agoCommented out expand_bones(), as this wasn't actually doing anything other than
Joshua Leung [Mon, 11 Jun 2012 02:23:26 +0000 (02:23 +0000)]
Commented out expand_bones(), as this wasn't actually doing anything other than
wasting time traversing the list of bones in the Armature

9 years agoBuild-system fix (for r.47710)
Joshua Leung [Mon, 11 Jun 2012 02:01:48 +0000 (02:01 +0000)]
Build-system fix (for r.47710)

Need add blenfont to list of include directories for sequence editor buildfiles.
Was causing build errors on OSX. Thanks Zavigny (IRC report)

9 years agoGrease Pencil Eraser - Numpad +/- and Scrollwheel Up/Down to change radius of
Joshua Leung [Mon, 11 Jun 2012 01:27:56 +0000 (01:27 +0000)]
Grease Pencil Eraser - Numpad +/- and Scrollwheel Up/Down to change radius of
brush while erasing

This makes it easier to change the size of the brush without having to jump out
to the User Preferences and back

9 years agoGrease Pencil - Eraser is drawn with the circle/brush indicator again
Joshua Leung [Mon, 11 Jun 2012 01:09:25 +0000 (01:09 +0000)]
Grease Pencil - Eraser is drawn with the circle/brush indicator again

9 years agoCode cleanup - Removing/commenting out various bits of legacy cruft related to
Joshua Leung [Mon, 11 Jun 2012 00:46:22 +0000 (00:46 +0000)]
Code cleanup - Removing/commenting out various bits of legacy cruft related to
old Grease Pencil stuff

9 years agoGrease Pencil - Support for Grease Pencil in the Sequence Editor preview/image
Joshua Leung [Mon, 11 Jun 2012 00:21:50 +0000 (00:21 +0000)]
Grease Pencil - Support for Grease Pencil in the Sequence Editor preview/image
space works again

This commit restores the support for using Grease Pencil in the Sequence Editor
image preview region, making it possible to scribble on footage for review
purposes again. Due to internal changes in how the Sequencer handles the image
drawing for this stuff (i.e. it is now fully based on View2D instead of trying
to implement its own little crazy offset+zoom stuff), a lot of the old code for
handling those offsets is no longer needed. Instead, one of the "standard" cases
is now used, and works quite well.

* View-space Grease Pencil drawing was done in wrong place (before view2d
* Grease Pencil entry in RNA had wrong/missing type

* DingTo - initial patch/attempt at restoring support
* Aligorith - solved the "offset problems"

9 years agoOUTLINER_OT_material_drop -- Drag & Drop materials onto objects in the outliner
Dan Eicher [Sun, 10 Jun 2012 22:22:26 +0000 (22:22 +0000)]
OUTLINER_OT_material_drop -- Drag & Drop materials onto objects in the outliner

Adds the material at materials + 1 unlike the DnD view3d one which replaces the first one

9 years agostyle cleanup
Campbell Barton [Sun, 10 Jun 2012 22:13:17 +0000 (22:13 +0000)]
style cleanup

9 years agofix [#31712] User prefs Input: Filter searches for names starting with entered phrase...
Campbell Barton [Sun, 10 Jun 2012 21:38:24 +0000 (21:38 +0000)]
fix [#31712] User prefs Input: Filter searches for names starting with entered phrase only

9 years agocorrect float vector sizes
Campbell Barton [Sun, 10 Jun 2012 20:31:01 +0000 (20:31 +0000)]
correct float vector sizes

9 years agoquiet warning
Campbell Barton [Sun, 10 Jun 2012 20:20:37 +0000 (20:20 +0000)]
quiet warning

9 years agocorrect freeing C++ arrays.
Campbell Barton [Sun, 10 Jun 2012 20:14:15 +0000 (20:14 +0000)]
correct freeing C++ arrays.

9 years agostyle cleanup
Campbell Barton [Sun, 10 Jun 2012 19:59:02 +0000 (19:59 +0000)]
style cleanup

9 years agoCommitting patch [#31704] "Patch to fix keyboard sensor from blocking quit game key...
Mitchell Stokes [Sun, 10 Jun 2012 19:32:57 +0000 (19:32 +0000)]
Committing patch [#31704] "Patch to fix keyboard sensor from blocking quit game key binding" by Jay Parker. This patch fixes [#31671] "Keyboard Sensor blocks Quit Game Key Binding"

9 years agoAlso fix cache line in clip editor which didn't take start frame into account.
Sergey Sharybin [Sun, 10 Jun 2012 17:24:05 +0000 (17:24 +0000)]
Also fix cache line in clip editor which didn't take start frame into account.

9 years agoFixed curves and dopeseet views of motion tracking data not taking clip's
Sergey Sharybin [Sun, 10 Jun 2012 17:09:35 +0000 (17:09 +0000)]
Fixed curves and dopeseet views of motion tracking data not taking clip's
start frame into account.

9 years agoForce multires update when changing subdivision type.
Nicholas Bishop [Sun, 10 Jun 2012 17:06:26 +0000 (17:06 +0000)]
Force multires update when changing subdivision type.

Fixes bug [#31050] Changing multires subdivision algorithm can ruin mesh

9 years agoCode cleanups for the PBVH, no functional changes.
Nicholas Bishop [Sun, 10 Jun 2012 16:37:22 +0000 (16:37 +0000)]
Code cleanups for the PBVH, no functional changes.

* Use the PBVHType consistently in pbvh_update_draw_buffers().

* Split the raycast function up, mesh and grid raycast get their own
  functions now.

* Replace duplicated code in BLI_pbvh_node_add_proxy() with call to

9 years agoBugfix for autosmooth in sculpt mode.
Nicholas Bishop [Sun, 10 Jun 2012 16:22:58 +0000 (16:22 +0000)]
Bugfix for autosmooth in sculpt mode.

This option was broken for non-multires meshes (not sure for how
long), as the pmap was not getting calculated.

Added a more general check for whether the pmap is needed, also added
an assert to warn about this in future.

9 years agoFix compilation without libmv
Sergey Sharybin [Sun, 10 Jun 2012 16:16:02 +0000 (16:16 +0000)]
Fix compilation without libmv

9 years agoBump subversion so iteration through all markers would happen
Sergey Sharybin [Sun, 10 Jun 2012 15:28:37 +0000 (15:28 +0000)]
Bump subversion so iteration through all markers would happen
only for old files which actually needs to be ported to 4 corners

9 years agoCommit patch from Stephan Kassemeyer sent to ML
Sergey Sharybin [Sun, 10 Jun 2012 15:28:29 +0000 (15:28 +0000)]
Commit patch from Stephan Kassemeyer sent to ML

This patch aims to solve unaligned operation assert
happens in Eigen library.

This is short-term solution which in fact shall be reverted
as soon as real solution would be added to Ceres. Meanwhile
this should be acceptable to have for a while.

9 years agoPlanar tracking support for motion tracking
Sergey Sharybin [Sun, 10 Jun 2012 15:28:19 +0000 (15:28 +0000)]
Planar tracking support for motion tracking

Major list of changes done in tomato branch:

- Add a planar tracking implementation to libmv
  This adds a new planar tracking implementation to libmv. The
  tracker is based on Ceres[1], the new nonlinear minimizer that
  myself and Sameer released from Google as open source. Since
  the motion model is more involved, the interface is
  different than the RegionTracker interface used previously
  in Blender.

  The start of a C API in libmv-capi.{cpp,h} is also included.

- Migrate from pat_{min,max} for markers to 4 corners representation

  Convert markers in the movie clip editor / 2D tracker from using
  pat_min and pat_max notation to using the a more general, 4-corner

  There is still considerable porting work to do; in particular
  sliding from preview widget does not work correct for rotated

  All other areas should be ported to new representation:

  * Added support of sliding individual corners. LMB slide + Ctrl
    would scale the whole pattern
  * S would scale the whole marker, S-S would scale pattern only
  * Added support of marker's rotation which is currently rotates
    only patterns around their centers or all markers around median,

    Rotation or other non-translation/scaling transformation of search
    area doesn't make sense.

  * Track Preview widget would display transformed pattern which
    libmv actually operates with.

- "Efficient Second-order Minimization" for the planar tracker

  This implements the "Efficient Second-order Minimization"
  scheme, as supported by the existing translation tracker.
  This increases the amount of per-iteration work, but
  decreases the number of iterations required to converge and
  also increases the size of the basin of attraction for the

- Remove the use of the legacy RegionTracker API from Blender,
  and replaces it with the new TrackRegion API. This also
  adds several features to the planar tracker in libmv:

  * Do a brute-force initialization of tracking similar to "Hybrid"
    mode in the stable release, but using all floats. This is slower
    but more accurate. It is still necessary to evaluate if the
    performance loss is worth it. In particular, this change is
    necessary to support high bit depth imagery.

  * Add support for masks over the search window. This is a step
    towards supporting user-defined tracker masks. The tracker masks
    will make it easy for users to make a mask for e.g. a ball.

    Not exposed into interface yet/

  * Add Pearson product moment correlation coefficient checking (aka
    "Correlation" in the UI. This causes tracking failure if the
    tracked patch is not linearly related to the template.

  * Add support for warping a few points in addition to the supplied
    points. This is useful because the tracking code deliberately
    does not expose the underlying warp representation. Instead,
    warps are specified in an aparametric way via the correspondences.

- Replace the old style tracker configuration panel with the
  new planar tracking panel. From a users perspective, this means:

  * The old "tracking algorithm" picker is gone. There is only 1
    algorithm now. We may revisit this later, but I would much
    prefer to have only 1 algorithm. So far no optimization work
    has been done so the speed is not there yet.

  * There is now a dropdown to select the motion model. Choices:

        * Translation
        * Translation, rotation
        * Translation, scale
        * Translation, rotation, scale
        * Affine
        * Perspective

  * The old "Hybrid" mode is gone; instead there is a toggle to
    enable or disable translation-only tracker initialization. This
    is the equivalent of the hyrbid mode before, but rewritten to work
    with the new planar tracking modes.

  * The pyramid levels setting is gone. At a future date, the planar
    tracker will decide to use pyramids or not automatically. The
    pyramid setting was ultimately a mistake; with the brute force
    initialization it is unnecessary.

- Add light-normalized tracking

  Added the ability to normalize patterns by their average value while
  tracking, to make them invariant to global illumination changes.

Additional details could be found at wiki page [2]


9 years agoInitial Ceres integration into Blender
Sergey Sharybin [Sun, 10 Jun 2012 15:27:41 +0000 (15:27 +0000)]
Initial Ceres integration into Blender

Currently only put sources of Ceres library into extern/libmv/third_party and
setup CMake and SCons building systems.

Integration details:

- Even CMake build files are not re-used from Ceres's trunk: they're using some
  automatic stuff detection like glog, pthreads, protobuf and so and it's not
  so clear how to re-use that files without modifications.
  And IMO it's easier if build files are getting re-generated automatically to
  match Blender-specific setup rather than keeping changes made locally in
  Blender in sync when re-bundling Ceres library. Especially in case when it's
  already needed to support SCons build system.
- Integrated only actual sources, all tests were stripped. Probably it'll be nice
  to have them, but they'll need clear integration with current module test stuff
  in Blender.
- Suitesparse was disabled. It'll help a lot having it, but there are some difficulties
  making cholmod working fine on windows. Would be added in future
- was also stripped. It's not used by Ceres's upstream and
  it gives compilation error (undefined uint32 -- looks like namespace issue).
- Currently all schur eliminators are included. Not sure if it makes sense,
  also not sure if it makes sense having them switchable on and off -- IMO better
  to have single configuration which works and does not require special tweaks
  after everything was set up.

To bundle updated version of Ceres:
- Go to extern/libmv/third_party/ceres folder
- Run ./

This will checkout fresh Ceres snapshot of Windows branch (which is currently
most interesting from integration into Blender POV), apply all patches listed
in patches/series and copy needed files into Blender's working copy. This will
also re-generate CMake/SCons build rules.

If you'll need extra files from Ceres repository which are not present in
Blender, you'll need to copy them manually and then run ./ from
extern/libmv/third_party/ceres folder which will update list of files used
by Blender.

Thanks to Leir Mierle and Sameer Agarwal (and all others who helped developing
Ceres) this library and thanks to Keir Mierle with help integrating it into Blender!

9 years agoSupport for per-track Grease Pencil datablocks for motion tracking
Sergey Sharybin [Sun, 10 Jun 2012 15:26:50 +0000 (15:26 +0000)]
Support for per-track Grease Pencil datablocks for motion tracking

Originally was needed to reach easy way of defining masks used for tracking
(do eliminate textures which doesn't belong to feature when tracking.

Implemented as alternative to GP datablock for clip and added switch between
per-clip and per-track GP datablocks -- internal limitations of GP doesn't
allow to display all GP datablocks easily.  So either you see.edit GP associated
with clip or with track.

GP strokes associated with track are relative to track's position, following
tracks during tracking and could be shared between several tracks.

Masking code presents in libmv and there's rasterizer of GP datablocks for
masks in blender's tracking module, but they still need to be glued together.

Some documentation cound be found at this page:

9 years agostyle cleanup: use capital camel case names for typedef's
Campbell Barton [Sun, 10 Jun 2012 15:20:10 +0000 (15:20 +0000)]
style cleanup: use capital camel case names for typedef's

9 years agoFix #31778. BKE_image_user_frame_calc can be called with iuser==NULL in some circumst...
Lukas Toenne [Sun, 10 Jun 2012 15:07:08 +0000 (15:07 +0000)]
Fix #31778. BKE_image_user_frame_calc can be called with iuser==NULL in some circumstances now, so needs to check that.

9 years agochange RNA_struct_find_function to accept a type rather then a PointerRNA, add a...
Campbell Barton [Sun, 10 Jun 2012 13:34:59 +0000 (13:34 +0000)]
change RNA_struct_find_function to accept a type rather then a PointerRNA, add a check duplicate functions are not defined.

9 years agomango request - add alpha to histogram & sample line.
Campbell Barton [Sun, 10 Jun 2012 12:33:27 +0000 (12:33 +0000)]
mango request - add alpha to histogram & sample line.

9 years agoSynchronize changes with tomato branch
Sergey Sharybin [Sun, 10 Jun 2012 12:30:47 +0000 (12:30 +0000)]
Synchronize changes with tomato branch

9 years agoApplied and completed a compositor patch by Brecht to use signalling and waiting...
Lukas Toenne [Sun, 10 Jun 2012 12:26:33 +0000 (12:26 +0000)]
Applied and completed a compositor patch by Brecht to use signalling and waiting in scheduling and worker threads instead of continuous loops with sleep times. This should help reduce unnecessary wait times in Tile.

9 years agomango request
Campbell Barton [Sun, 10 Jun 2012 12:09:25 +0000 (12:09 +0000)]
mango request
- optionally display the histogram as lines (not filled areas).
- expand the enum for faster access.
- keep the sample line displayed after doing the line sample (running again clears).

9 years agocode cleanup: rename flag --> dflag (draw flag), since this is overly generic name...
Campbell Barton [Sun, 10 Jun 2012 10:15:49 +0000 (10:15 +0000)]
code cleanup: rename flag --> dflag (draw flag), since this is overly generic name and was passed about to many functions.

9 years agoFix for Tile group nodes with internally unconnected outputs, this was crashing due...
Lukas Toenne [Sun, 10 Jun 2012 09:30:31 +0000 (09:30 +0000)]
Fix for Tile group nodes with internally unconnected outputs, this was crashing due to missing constant value operations for such outputs. The SocketProxyNode now checks connection of the input socket on conversion, so this also simplifies usage of proxy nodes quite a bit.

9 years agofix for un-initialized memory use for modal inset/bevel.
Campbell Barton [Sun, 10 Jun 2012 09:05:49 +0000 (09:05 +0000)]
fix for un-initialized memory use for modal inset/bevel.

9 years agoMissed NULL-pointer checks in poll some functions
Sergey Sharybin [Sun, 10 Jun 2012 09:04:49 +0000 (09:04 +0000)]
Missed NULL-pointer checks in poll some functions

9 years agoFix for compositor image node draw function. The image user pointer needs to be const...
Lukas Toenne [Sun, 10 Jun 2012 07:51:57 +0000 (07:51 +0000)]
Fix for compositor image node draw function. The image user pointer needs to be constructed explicitly from the node storage pointer.

9 years agoFix #31747, broken image sequence loading after r47432.
Lukas Toenne [Sun, 10 Jun 2012 07:35:45 +0000 (07:35 +0000)]
Fix #31747, broken image sequence loading after r47432.

The image file name function was updating the iuser->framenr using a supposed cfra parameter. However, the actual cfra is unknown when loading movies or sequences, so the iuser->framenr value itself was passed in its place, leading to incremental addition of the iuser frame offset. Removed the cfra parameter altogether from the image path function. This should instead be done separately if necessary, it's not an inherent part of constructing the image file name.

9 years agoremove duplicate import
Campbell Barton [Sun, 10 Jun 2012 00:22:18 +0000 (00:22 +0000)]
remove duplicate import

9 years agoOBJECT_OT_drop_named_material -- missing notifier for material panel UI update
Dan Eicher [Sat, 9 Jun 2012 21:43:22 +0000 (21:43 +0000)]
OBJECT_OT_drop_named_material -- missing notifier for material panel UI update

9 years agocode cleanup: reduce float/double promotion
Campbell Barton [Sat, 9 Jun 2012 19:57:14 +0000 (19:57 +0000)]
code cleanup: reduce float/double promotion

9 years agostyle cleanup: assignment & indentation.
Campbell Barton [Sat, 9 Jun 2012 18:56:12 +0000 (18:56 +0000)]
style cleanup: assignment & indentation.

9 years agocode cleanup: removed/renamed shadow & duplicate variable definitions.
Campbell Barton [Sat, 9 Jun 2012 18:20:40 +0000 (18:20 +0000)]
code cleanup: removed/renamed shadow & duplicate variable definitions.

9 years agocode cleanup: quiet all warnings about double promotion (either by changing the type...
Campbell Barton [Sat, 9 Jun 2012 17:45:22 +0000 (17:45 +0000)]
code cleanup: quiet all warnings about double promotion (either by changing the type or explicitly casting).

9 years agostyle cleanup: block comments
Campbell Barton [Sat, 9 Jun 2012 17:22:52 +0000 (17:22 +0000)]
style cleanup: block comments

9 years agofix for un-handled exception when entering in multiple values to a button, floats...
Campbell Barton [Sat, 9 Jun 2012 16:45:42 +0000 (16:45 +0000)]
fix for un-handled exception when entering in multiple values to a button, floats were not correctly checked for.

9 years agocode cleanup: doxy comment filename corrections
Campbell Barton [Fri, 8 Jun 2012 23:43:11 +0000 (23:43 +0000)]
code cleanup: doxy comment filename corrections