patch from Shawn Zilbert (enigmatic)
This patch adds the camera data block type to the oops schematic view of the outliner. It also includes a little bit of code cleanup in the oops files.
Snap to cage only in edit mode (respect the edit cage flag of modifiers).
Especially important for subsurf, otherwise, Andy's automerge + snap video doesn't work in current SVN.
This commit fix the following problem in the DPX code:
1) The code always assume a depth of 10 bits
2) The code don't check the file type (Log or Linear)
1. Updated selected restriction to not be so stingy. Snapping on edges and vertices work if they are part of a partially moving face
2. Change depth ordering (which didn't work all the time). Hits are sorted according to 2D distance and then depth, so for overlapping hits, it picks the one in front.
This patch re-assigns the mirrored data to use vertex groups with "mirrored"
names (e.g. L_arm -> R_arm, Leg.R -> Leg.L etc.). Vertex groups with the
"mirrored" names must already exist in the base mesh.
This means that it is no longer necessary to apply the mirror modifier in order
to rig the mirrored data independently.
Thanks to Michael Fox for the patch!
- duplicated script spaces would keep a pointer to the PyObject button list. (causing python errors with negative reference counts when freeing spaces)
- Exiting blender would crash when a UI was open because the ScriptSpaces button PyList was being free'd after python Py_Finalize was called.
---------------------------------------------------
Snappy stuff
* Align rotation with snapping target: rotate the object, aligning it with the target (object mode only - temporarily) (New icon in the header when snap is turned on)
* Snap to different mesh elements (face, edge, vertice): snapping target slide on faces and edge or use exact position of vertice. When using Align rotation with edge snapping, the normal is interpolated as you slide along.
Snaps correctly to derived mesh (sculpt, modifiers, ...) and duplis. In object and edit mode.
NOTE: The snapping code is now based on faces, so even if you're snapping to vertices or edges, it will not work on meshes without faces. This might change if needed.
(partial because I'll merge all snap code in one fell swoop after the libs are done)
----------------------------------
object: ray - boundbox intersection test
----------------------------------
Small fix to derivedmesh for snapping: don't create origindex for
editmesh derivedmesh since it's not being filled correct anyway.
----------------------------------
Arith:
- axis angle to quat conversion function
- short to float / float to short normals conversion function (eventually, we could go over the go and replace copy/pasted code everywhere)
- ray triangle intersection (to complement the line triangle intersection function)
View:
- viewray / viewline (get near plane point under mouse and ray normal/far point)
Particles:
- extract viewline from brush_add function
By Fabrice Tiercelin
This enables rotation angles of more than 180 degrees to result in the same rotation applied to the object (the result used to be clamps between -180 - 180 of the initial rotation).
The patch had to be modified to deal with IPO keys properly
Baking would split non-planer quads in an unpredictable way, which is fine for rending but game engines often use a fixed order (0,1,2), (0,2,3) or (1,2,3) (1,3,0).
Added an option to use a fixed order when baking.
view: noclip version of int and float projection. Also project from behind the view's position and return coherent values for near clipping
transform: use the above functions for 2d center and helpline drawing
NOTE: the result for centers behind the camera (in perspective) isn't 100% perfect in the case of rotations because they always use the centered view vector as rotation axis and not the one aligned with the 2d center. Changing this would not be desirable anyway. At least it's predictible now.