Cleanup!

Also fixed a nasty (but inofensive for now) stuff, we had both MOD_UVPROJECT_MAX and MOD_UVPROJECT_MAXPROJECTORS (the former used in RNA code, the later in modifier code)! Kept MOD_UVPROJECT_MAXPROJECTORS.

git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk/blender@59720 954f8c5b-7b00-dc11-b283-0030488c597c
support for vertex parenting in object mode for object types which support it (mesh, lattice, curve, surface)
previously this had to be done one by one.

both single and triagle vertex parents can be made, selected based on distance to the verts.

Developer notes:
- looks like this was old TODO, enums existed but weren't used.
- only meshes currently support using.
- added BKE_object_as_kdtree(), may come in handy for similar cases.


git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk/blender@59721 954f8c5b-7b00-dc11-b283-0030488c597c
fix odd (intentional) behavior with vertex parent,
curve children of a triangle vertex parent would only display their relationship line to the first vertex. (confusing)

also added OB_TYPE_SUPPORT_PARVERT macro.


git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk/blender@59722 954f8c5b-7b00-dc11-b283-0030488c597c
add attributes to ghash and edgehash functions.


git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk/blender@59723 954f8c5b-7b00-dc11-b283-0030488c597c
text editor cursor motion (left/right arrows) with selected text typically jumps to either side of the selection previously the cursor would move and loose the selection too.
text button fields already did this.


git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk/blender@59724 954f8c5b-7b00-dc11-b283-0030488c597c
add hash iterator functions to access the pointer to the value.


git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk/blender@59725 954f8c5b-7b00-dc11-b283-0030488c597c
bmesh: internal api change, remove BMOElemMapping, its not needed since the values can be stored in the ghash directly.
saves 24 bytes per element (per vertex/edge/face on a 64bit system), for bmesh operators.


git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk/blender@59726 954f8c5b-7b00-dc11-b283-0030488c597c
fix [#36412] Pivot of active element switches to last selected face after duplicating vertices.


git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk/blender@59728 954f8c5b-7b00-dc11-b283-0030488c597c
Removed some unused old function declarations for loop node register, awkward that this is still there ...

git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk/blender@59729 954f8c5b-7b00-dc11-b283-0030488c597c
Some function didn't match their declaration

git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk/blender@59730 954f8c5b-7b00-dc11-b283-0030488c597c
Fix crash when adjusting plane track after re-tracking point tracks

Issue was caused by tacks map merge re-allocating the tracks and this
didn't update plane tracks.

Ideally tracks_map_merge shall not re-allocate tracks, but for now
just update plane tracks. Shouldn't be too much slow anyway and could
always be tweaked without affecting any artists.

git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk/blender@59731 954f8c5b-7b00-dc11-b283-0030488c597c
Fix for the BKE_image_walk_all_users function: This included a check for movie/sequence image types meant for the original use to set IMA_NEED_FRAME_RECALC flag. But the function name suggests it should be generic, so better move this filter into the callback.

git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk/blender@59733 954f8c5b-7b00-dc11-b283-0030488c597c
Fix #36124: VSE - Input Color option does not work for video files

Byte images and movies will now fully follow input color space.
Before this non-sRGB input colorspace for byte images and movies
behave really doggy (results in preview and final render were
totally different).

To prevent data loss, if byte image is set not stored in sequencer's
space it'll be internally converted to float buffer.

In theory some setups might be rendering a bit different now, but
new behavior is totally expected and someone used non-sRGB input
space for byte images/movies had Convert Float enabled anyway.

git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk/blender@59734 954f8c5b-7b00-dc11-b283-0030488c597c
Fix #36640: node editor header with world nodes not drawing correct after recent bugfix.

git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk/blender@59736 954f8c5b-7b00-dc11-b283-0030488c597c
Fix #36639, textures not reloaded after fixing paths.
The BKE_bpath_traverse_id method updates path variables of image data blocks, but did not cause the image to be reloaded (or rather, tagged so it gets reloaded on next use). This requires also updating
all the ImageUser "ok" tags, which happens in some odd places in other cases where reload happens (e.g. the reload operator and the image path button handler function in image template).

git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk/blender@59737 954f8c5b-7b00-dc11-b283-0030488c597c
Cycles:
* Document the members of the Ray struct. 

git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk/blender@59739 954f8c5b-7b00-dc11-b283-0030488c597c
Related to #36632: cycles textured draw mode now shows the image from an image
texture node even if it's not active, in case there is no active texture node.

git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk/blender@59740 954f8c5b-7b00-dc11-b283-0030488c597c
Fix #36628, Muting bump node alters material visibility.
The internal connections used for muted nodes are a "best guess" only. The algorithm would connect linked input/output sockets first, regardless of sensible connections. Replaced this by a more strict
connection method now which only uses matching types, so that Normal outputs won't get input from values, etc.

This is still far from perfect though. Eventually it may be necessary to implement dedicated methods for certain types of nodes to respect different semantics - using the plain socket type is just not
enough information. Also the value used for connections from muted nodes with no matching input will currently be the hidden(!) socket input values, this can lead to unexpected results. Needs further
thought ...

git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk/blender@59742 954f8c5b-7b00-dc11-b283-0030488c597c
Fix [#36636] Incorrect assignment of Smoothing Groups on export

In fact, smooth groups are supposed to be bitflags, not simply integer values (would be far too much simple!). This adds quite a bit of work, as with only 32 values, we can't just assign one to each group. Somewhat related to the "Four colors theorem"! ;)

Here we simply use the first available bit for current smooth group (i.e. first bit not used by any of the already defined contiguous groups).

git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk/blender@59743 954f8c5b-7b00-dc11-b283-0030488c597c
Make strict compiler happy for release builds.



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