add support for mempool/linklist functions.


git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk/blender@59171 954f8c5b-7b00-dc11-b283-0030488c597c
Add Procrustes PNP ("PPnP") resection algorithm to libmv

This adds a new Euclidean resection method, used to create the
initial reconstruction in the motion tracker, to libmv. The method
is based on the Procrustes PNP algorithm (aka "PPnP"). Currently
the algorithm is not connected with the motion tracker, but it
will be eventually since it supports initialization.

Having an initial guess when doing resection is important for
ambiguous cases where potentially the user could offer extra
guidance to the solver, in the form of "this point is in front of
that point".

--
svn merge -r58821:58822 ^/branches/soc-2011-tomato



git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk/blender@59174 954f8c5b-7b00-dc11-b283-0030488c597c
This was merged by acident, sorry

git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk/blender@59175 954f8c5b-7b00-dc11-b283-0030488c597c
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 :)

git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk/blender@59176 954f8c5b-7b00-dc11-b283-0030488c597c
Remove unused and unfinished py bindings

git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk/blender@59177 954f8c5b-7b00-dc11-b283-0030488c597c
Make byte-float conversion threaded in compositor

In fact, there's no need to get float buffer at all,
conversion could be done in pixel processor level
after interpolation.

It might give slightly worse interpolation results
(which i'm not sure would be visible by eye) but
it gives more than 2x speedup on my laptop on node
setups used for warping image.

--
svn merge -r58988:58989 ^/branches/soc-2011-tomato



git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk/blender@59180 954f8c5b-7b00-dc11-b283-0030488c597c
* Compile fix, so disabling libmw works again. 

git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk/blender@59184 954f8c5b-7b00-dc11-b283-0030488c597c
new bmesh queries BM_face_exists_overlap, BM_face_exists_overlap_subset
the subset version of the function checks if any faces has all its verts in the given array.

also made some additions to linklist functions (arena and pool versions of append).


git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk/blender@59186 954f8c5b-7b00-dc11-b283-0030488c597c
replace calls to BLI_linklist_append with BLI_linklist_prepend where order us unimportant, since append steps over the whole list each time.


git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk/blender@59187 954f8c5b-7b00-dc11-b283-0030488c597c
Fix for #36468, "Buffer Groups" option changes compositing output.

Problem is that the read/write buffer operations only work with actual
image inputs. If a singular value is used as group input no actual
buffer will be created, the write operation does not schedule any chunks
and the ReadBufferOperation subsequently returns zero
(MemoryBuffer::read).

The fix uses the (0,0) resolution to detect single value input of the
WriteBufferOperation. The actual resolution is then clamped to (1,1) to
ensure we have a single pixel to store the value in. A m_single_value
flag is also set, so we can reliably distinguish this from genuine image
resolutions without having to check m_width/m_height later on.

The ReadBufferOperation copies this flag from the associated
WriteBufferOperation and if set will always return the single value from
pixel (0,0).

git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk/blender@59188 954f8c5b-7b00-dc11-b283-0030488c597c
Tweaks to MapUV and PlaneTrack nodes to make results less doggy

This disables crazy adaptive sampling happening in diagonal direction.

This still gives some doggyness, but it's much less dramatic now,
and behavior is pretty damn the same as EWA filtering when rendering
textures with Blender Internal.

git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk/blender@59190 954f8c5b-7b00-dc11-b283-0030488c597c
Remove ifdef-ed code, it's still in SVn anyway.

git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk/blender@59191 954f8c5b-7b00-dc11-b283-0030488c597c
rewrite edgenet fill bmesh operator.

previous code created faces with mixed face-flipping and could get very slow,
test with ~60,000 edges here hung my system for over 2min (didnt wait for it to finish), new code executes in about 1 second.

new code doesn't attempt to flip faces correctly, its quite involved to do so, especially when the new faces are not created adjacent to eachother.
so simpler to calculate normals afterwards.


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