Some operators like curve presets, color sample and some more were using object's
mode to distinguish in which mode user is currently painting. Such approach fails
in cases when there's paint mode active in 3D viewport and Image Editor.
Changed logic here to use some context's state like active space which helps
distinguishing current paint mode more accurate.
Ported all areas which uses paint_get_active() to new paint_get_active_from_context().
There're still some calls to paint_get_active(), but that shouldn't be harmful due
to that places indeed have object's mode as priority when getting paint mode.
when the source and destination vectors were the same pointer, the X value would get overwritten.
now the rip tool uses the best side to grab as in trunk.
One function converts bounding boxes to screen space, the other
converts a screen-space rectangle to 3D clipping planes.
Also const-ified some parameters in the ED_view3d API.
Removed the drawSelectedVerts and added drawSelectedVertices, which uses dm->foreachMappedVert.
In calc_weightpaint_vert_color():
Made the weight paint color black and return instead of input=-1
Made the pose bone selection normal when multi-paint is inactive.
Name fix for functions using mv instead of mvert.
Used vector functions provided by the math lib.
Changed some MEM_callocN references to be stacks.
Changed dm_deform_clear to use ob->derivedDeform primarily
Made the variable "float **changes" into "float (*changes)[2]"
Used CTX_data_active_object() in place of CTX_data_pointer_get_type()
Added the invert selection hotkey "Ctrl+I" to weight paint's vertex mask.
Weight Paint Vertex Select tweaked to act like edit mode's select and Circle select was added, but clipping is not working properly for either.
Select all was added too, but to the Q key until I look into overriding A's select all bones.
The select vertices checkbox was moved to the header, but it does not force face select mask to turn off yet--and it doesn't have the correct icon.
There will definitely be an update tomorrow to fix the problems with all or most of the issues.
some functions had vague names, I even ended up re-writing some of these functions by accident!
also added doxy comments.
* ED_view3d_win_to_3d (was window_to_3d)
* ED_view3d_win_to_delta (was window_to_3d_delta)
* ED_view3d_win_to_vector (was window_to_3d_vector / viewvector)
* ED_view3d_win_to_segment_clip (was viewline)
* ED_view3d_win_to_ray (was viewray)