remove redundant includes from cmake and scons.


git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk@57132 954f8c5b-7b00-dc11-b283-0030488c597c
Motion tracking: automatic keyframe selection

Implements an automatic keyframe selection algorithm which uses
couple of approaches to find out best keyframes candidates:

- First, slightly modifier Pollefeys's criteria is used, which
  limits correspondence ration from 80% to 100%. This allows to
  reject keyframe candidate early without doing heavy math in
  cases there're not much common features with first keyframe.

- Second step is based on Geometric Robust Information Criteria
  (aka GRIC), which checks whether features motion between
  candidate keyframes is better defined by homography or
  fundamental matrices.

  To be a good keyframe candidate, fundamental matrix need to
  define motion better than homography (in this case F-GRIC will
  be smaller than H-GRIC).

  This two criteria are well described in this paper:
  http://www.cs.ait.ac.th/~mdailey/papers/Tahir-KeyFrame.pdf

- Final step is based on estimating reconstruction error of
  a full-scene solution using candidate keyframes. This part
  is based on the following paper:

  ftp://ftp.tnt.uni-hannover.de/pub/papers/2004/ECCV2004-TTHBAW.pdf

  This step requires reconstruction using candidate keyframes
  and obtaining covariance matrix of 3D points positions.
  Reconstruction was done pretty much straightforward using
  other simple pipeline routines, and for covariance estimation
  pseudo-inverse of Hessian is used, which is in this case
  (J^T * J)+, where + denotes pseudo-inverse.

  Jacobian matrix is estimating using Ceres evaluate API.

  This is also crucial to get rid of possible gauge ambiguity,
  which is in our case made by zero-ing 7 (by gauge freedoms
  number) eigen values in pseudo-inverse.

  There're still room for improving and optimizing the code,
  but we need some point to start with anyway :)

  Thanks to Keir Mierle and Sameer Agarwal who assisted a lot
  to make this feature working.

git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk@57133 954f8c5b-7b00-dc11-b283-0030488c597c
UI: support 3 digit hex colors like HTML, e.g. #123 becomes #112233.

Patch #35359 by Forest Ka.

git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk@57135 954f8c5b-7b00-dc11-b283-0030488c597c
OSX/OSL: recommit 1.3 with exr header fix, fixes #35487

git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk@57136 954f8c5b-7b00-dc11-b283-0030488c597c
Cycles:
* Move some hair width related code into a dedicated branch.
* Don't calculate time/lens RNG when Motion Blur or Depth of Field are disabled

git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk@57137 954f8c5b-7b00-dc11-b283-0030488c597c
Patch #35464: Marker placement for motion tracker by clicking on a desired location

Now button in the toolshelf behaves this way:
- User clicks on "Add Marker"
- Then he clicks where the marker should get placed

Patch by Marcos Couto (ocf) with own modifications.

git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk@57138 954f8c5b-7b00-dc11-b283-0030488c597c
Fix #35570, old group nodes with empty socket name strings crash. The identifier assignment was not taking potentially empty name strings into account. In addition some of the BLI_uniquename calls were
not passing a valid defname parameter, also crashing.

git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk@57139 954f8c5b-7b00-dc11-b283-0030488c597c
Remove files unused by blender's tracker

They were giving compilation error with msvc2012,
and instead of having workaround in them let's
drop them away form blender (they're not used even).

git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk@57140 954f8c5b-7b00-dc11-b283-0030488c597c
Fixed compilation error after recent keyframes commit.

git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk@57141 954f8c5b-7b00-dc11-b283-0030488c597c
fix debug derived mesh print function, layers in the customdata that were NULL were not printed.


git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk@57142 954f8c5b-7b00-dc11-b283-0030488c597c
Backtrace for unfreed memory blocks

Added an option to show backtrace from where
non-freed datablock was allocated from.

To enable this feature, simply enable DEBUG_BACKTRACE
in mallocn.c file and all unfreed datablocks will
be followed up by a backtrace.

Currently works on linux and osx only,
windows support is on TODO.

This feature is for sure disabled by default,
so does not affect any builds which don't
explicitly define DEBUG_BACKTRACE.

git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk@57143 954f8c5b-7b00-dc11-b283-0030488c597c
modifier stack: lazy initialize normals

many modifiers were calculating normals, when those normals were ignored by the next modifier.
now flag normals as dirty and recalculate for modifiers that set use `dependsOnNormals()` callback.

Quick test on mesh with 12 modifiers (mostly build type), calculated normals 6 times, now it only runs once - so this will give some speedup too.


git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk@57145 954f8c5b-7b00-dc11-b283-0030488c597c
remove CD_MASK_NORMAL from CD_MASK_DERIVEDMESH, bmesh merge included this but its not needed.

Now add asserts to make sure this layer is only added once the modifier stack has been calculated.
this saves normal layer being calculated whenver vertex normals need updating.


git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk@57146 954f8c5b-7b00-dc11-b283-0030488c597c
fix for incorrect use of strncat in uiItemMenuEnumO


git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk@57147 954f8c5b-7b00-dc11-b283-0030488c597c
remove null checks for list functions, all hard asserts so we would have noticed problems already.


git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk@57148 954f8c5b-7b00-dc11-b283-0030488c597c
units: display 0.5mm rather then 500um, nicer when dealing with very small sizes but not microscopic.


git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk@57149 954f8c5b-7b00-dc11-b283-0030488c597c
tweak to edge-loop select, so loop selecting a side of a subdivided triangle selects all edges along one side.


git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk@57150 954f8c5b-7b00-dc11-b283-0030488c597c
correct cast to uintptr_t for smallhash use.


git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk@57151 954f8c5b-7b00-dc11-b283-0030488c597c
improve edgering subdivide curvature calculations (calculate length projected onto the normal plane).
also correct recely added asserts.


git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk@57152 954f8c5b-7b00-dc11-b283-0030488c597c
Made text datablock properties 'is_in_memory' and 'is_dirty' editable in Python.

The rationale of this revision is to provide an easy way to make text datablocks internal
from within Python (i.e., by setting these properties to True and the 'filepath' property
to empty string).

git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk@57153 954f8c5b-7b00-dc11-b283-0030488c597c