Add BMesh and WM symmetrize operators

* The symmetrize operation makes the input mesh elements symmetrical,
  but unlike mirroring it only copies in one direction. The edges and
  faces that cross the plane of symmetry are split as needed to
  enforce symmetry.

* The symmetrize operator can be controlled with the "direction"
  property, which combines the choices of symmetry plane and
  positive-negative/negative-positive. The enum for this is
  BMO_SymmDirection.

* Added menu items in the top-level Mesh menu and the WKEY specials
  menu.

* Documentation:
  http://wiki.blender.org/index.php/User:Nicholasbishop/Symmetrize

* Reviewed by Brecht:
  https://codereview.appspot.com/6618059

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


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


git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk/blender@51358 954f8c5b-7b00-dc11-b283-0030488c597c
MESH_OT_vert_connect was missing select flush (newly created edges were not selected).
also <120 line length for cycles property descriptions.


git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk/blender@51359 954f8c5b-7b00-dc11-b283-0030488c597c
More UI messages and BKE_reportf<->BKE_report fixes...

git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk/blender@51360 954f8c5b-7b00-dc11-b283-0030488c597c
fix for 2 cases BM_disk_dissolve() could fail/assert.
- when there was a vertex with 2 boundary edges and one manifold edge (vert at the boundary between 2 quads) it could assert.
- when there is a vertex with 2 boundary verts connected that both use the same face, it would do nothing.


git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk/blender@51361 954f8c5b-7b00-dc11-b283-0030488c597c
Fix #32819: Crash when starting CUDA kernel compilation if UI translation is not "Default"

Issue was caused by some boost filesystem routines accessing current locale
and such an access failed in cases code page isn't specified for the current
locale.

Made it so UTF-8 locale name would be tried to be used first.

git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk/blender@51362 954f8c5b-7b00-dc11-b283-0030488c597c
Cycles: object motion blur enabled, so in addition to camera motion, moving
objects in the scene will also cause motion blur.

This change does come with a bit of a slow down to the CPU rendering kernel even
with motion blur disabled, due to extra overhead in handling of object matrices.
It's a few percentages on simpler scenes, not so noticeable on more complex ones.
With motion blur enabled rendering is of course also slower as would be expected,
though from testing especially GPU rendering handles it quite well.

This does not support motion blur from deforming objects yet, only translation,
scale and rotation. Deformation blur is probably for another release.

git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk/blender@51363 954f8c5b-7b00-dc11-b283-0030488c597c
Fix for (camera) motion blur changes in Cycles OSL. Compilation was broken due to changed object transform functions. Also added a few missing renderer service implementations for matrix callbacks.

git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk/blender@51364 954f8c5b-7b00-dc11-b283-0030488c597c
Cycles: non-camera viewport render border support

This makes it possible to do a border render inside a viewport even
when not looking through the camera.

Render border could be defined by Ctrl-B shortcut (works for both
camera render border and viewport render border).

Camera render border could still be defined using Shift-B (so no
muscule memory would be broken). Currently used a special flag of
operator to do this, otherwise you'll need to either two operators
with different poll callback or it could go into conflict with a
border zoom,

Border render of a viewport could be enabled/disabled in View
panel using "Render Border" option.

git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk/blender@51365 954f8c5b-7b00-dc11-b283-0030488c597c
Fix object motion blur crash with lamp sampling(?), missed a check.

Motion blur documentation is here:
http://wiki.blender.org/index.php/Dev:Ref/Release_Notes/2.65/Cycles#Motion_Blur

git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk/blender@51366 954f8c5b-7b00-dc11-b283-0030488c597c
fix for free NULL pointer in BM_vert_splice() and BM_iter_as_arrayN() failed with BM_VERTS_OF_MESH/BM_EDGES_OF_MESH/BM_FACES_OF_MESH.


git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk/blender@51367 954f8c5b-7b00-dc11-b283-0030488c597c
Fix/workaround #32846, dupli group + particle instances gets messed up in Cycles viewport rendering.

Caused by modifier updates during dupli-list generation. The dupli-list generation temporarily changes the ob->obmat matrix, which in turn leads to wrong particle states if used for reset. Skip the particle update if no timestep is performed or initialization required.

Proper solution for this problem would be to avoid changing the object data (= particles) state altogether in modifiers, which are usually only writing to DM data and not touching the object or base mesh. This would require a well designed physics framework and integrating it into current particles is close to impossible.

git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk/blender@51368 954f8c5b-7b00-dc11-b283-0030488c597c
Fix #32891: Bake to Texture didn't use color management flag properly

git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk/blender@51369 954f8c5b-7b00-dc11-b283-0030488c597c
Color Management: texture baking should be correct when color management is disabled

git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk/blender@51370 954f8c5b-7b00-dc11-b283-0030488c597c
Fix for second bug reported in #32846: Particle emitters are still shown for secondary instances with "show emitter" disabled. This requires checking the duplicator visibility on dupli objects themselves after generating the dupli-list.

The emitter visibility option is messy design, it makes such checks unnecessarily complicated. A better approach would be to allow non-mesh objects to carry particle data, these objects would just be invisible anyway without having to care about extra settings. However, this conflicts with the simplistic particle design of "owner is the emitter" ...

git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk/blender@51371 954f8c5b-7b00-dc11-b283-0030488c597c
un-subdivide bmesh operator, useful for making lower polygon versions of models, can give nicer results then edge collapsing which tends to give a lot of sharp triangles.

works on edges and faces, has iteration option to further reduce the poly count.

access from the edge menu, under subdivide.

example: http://www.graphicall.org/ftp/ideasman42/bmesh_unsubdivide.png


git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk/blender@51372 954f8c5b-7b00-dc11-b283-0030488c597c
Smoke: Animated collision objects do no longer block smoke. Smoke gets transfered velocity from moving collision object.

Result:
http://www.youtube.com/watch?v=KRtc8eAgaZA

Part of my Blender Development Project Phase III, merged from Smoke2 branch

WIP docs:
http://wiki.blender.org/index.php/User:Genscher/Smoke_Development_Project_2012

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