Ton has been pushing me to get this in and finish it up with help, so here is a run down of the commit
Revised Features
Subdivide now is Edge based, allows for multicut
Loopcut was recoded, now has multi option
Knife tool now has multi option
New Features
Edgeslide
Edgering select
Removed Features
Alt-B Edgeloop selection (use alt-RMB in edgemode)
Shift-R Faceloop selection (use alt-RMB in facemode)
Old Subdivide (Except for smooth which is left in until new one works)
Todo
Subdivide Smooth Math is broken - could use some help here (look for alter_co in editmesh_tools.c)
Tweak mouse control of Edgeslide is hackish ATM
Add Non-proportional movement to edgeslide
Add smooth option to new loopcut
I probably left something out.
See here for more info
http://wiki.blender.org/bin/view.pl/Blenderdev/EdgeSubdivision
- cleaned up 'version correction' a bit. There was code slowing down
current files even (armatures were evaluated all, even when not in
current layer, was added to make sure they get converted OK).
Send me old files that crash now! :)
- on reading older files with path-constraints, a fix had to be added.
- error "badd call to addqueue' found when using header-less window for
filewindow
Seems to give issues in MSVC, and wasn't needed after all.
Further fixed dependencies in constraints between armatures and armatures.
It didn't update the other armature when the armature-object itself moved.
- Solid armature drawing didn't do well for negative scaled armatures
- Layer Ipos were not evaluated for invisible objects (there goes another
exception bypassing dependency...!)
- In Solid drawmode, bones get drawn solid too now. Including Outline-
selection color, if that's set.
Disable it by setting Object-buttons "drawtype" for the Armature.
Color used for solid bones is in Theme editor.
- EditMode armature now follows (Mesh edit) theme colors (Vertex, Edge)
- PoseMode armature has ThemeColor for selection, and draws three extra
colors now;
- blue shade for bones with action Ipos
- yellow for bones with IK
- green for bones with a constraint
- "X ray" now only works for PoseMode... needs review, can be done better
- "Draw Names" option uses theme color too, also indicates selection.
Fixes;
- In Armature EditMode, the deformed Mesh goes to rest-position
- Border select didn't clear 'active' flag in Bones in PoseMode
- Mouse-click select didn't work when a dashed line was close to Bone
This is mainly useful for scripts that generate/load datablocks for their own use and don't want to burry the user under an avalanche of datablocks he/she doesn't care about.
This adds a user pref "Hide .data" which now acts as a default value when opening a new fileselector.
It is also used when creating data select pop menus.
The "ghost" button in a fileselect window is independant from the userpref. It can be turned on/off individually without affecting
Note: When turning the option on/off, it sometimes take a couple of times before the pop menu registers it. Probably some caching thing. Will have to look at it.
Default value is Off.
extrema". It now also keeps auto-handles horizontal when the Y coordinate
is exactly identical.
And; made this option default on inserting new curve/keys.
Knife cut in edge selection mode can cause crashes, since it uses subdivide
which isn't edge-select aware yet.
Quickly patched it by making knife checking on vertex selection.
Johnny: undo this change when you add the new subdiv code, good test for if
it works as well! :)
Changed selectprojektie (and renamed to view3d_opengl_select as suggested by Ton) to accept a buffer size, so boundbox can adapt it's buffer size to the number of object in scene.
Also, the loop is done more smartly, since glSelect fills the buffer in the same order as the drawing order, so we save lops of looping on unselected object (which used to go through all the buffer before finding that they weren't selected).
This scheme could probably be applied to all the other loops using glSelect. (good project for newbie coders)
Quite harmless, but was lazy code...
When you choosed "Vertex Color Paint" material, the init_render_material()
also set the "Vertex color Light" option, because that flag was checked on
during render to detect vertex colors.
Now it has proper checks in render code.
coordinates.
Known problem: Pin status bleeds a bit, so new subdivided UVs around
points that were original pinned can end up pinned in the end. Could be
fixed, or could just drop pinned status entirely.
Also, when gathering meshes, it doesn't add materials twice, so it's harder to bust the 16 materials limit.
a single object, but was still called outside of that scope. Caused crashes
for example when editing Ipo curves of action keys.
editaction.c and editnla.c still need to be tackled...
- Jean-Michel Soler: paths import -- ai and svg modules;
- Jean-Baptiste PERIN: bvh to armatures (note: should not work until we re-wrap armatures in bpython);
- Campbell Barton: obj importer.
Thanks guys, excuse me the delay.
- tiny doc update.
Ipocurves with "Auto" handles now have option to remain horizontal on the
extrema (tops & valleys). Use ALT+H to set this per selected curve.
Note this is a per-curve feature, not per-handle.
If it works satisfying I can check on making this the default new added
curve.
Using linked library files with relative paths, didn't set the correct
relative root... so it only worked with files in the same directory.
ALso fixed the button-lock in material buttons, it didn't allow to see
which materials were linked to the mesh/object.
Editmesh SHIFT+F "Fill" used an unsigned char to count amount of selected
edges linking to vertices, but also subtracted... causing the char to
become 255. Gave crashes (or infinite loops) when using "Fill" on random
input of solid meshes.
Transparent shadow could accidentally intersect first with a face being
farther away, due to the fact larger faces can fill up multiple octree
nodes. Had to use the same exception handling as for raytracing mirror or
glass.
Please note that the "long" should be avoided in dna structs... it is a
reserved type for use in our code for pointer storage. It is 32 or 64 bits,
depending CPU architecture (pointer size).
The "long" type currently is in the makesdna.c code, and interpreted as 32
bits only, which is actually wrong yes... I should remove it or code it
correct.
BTW; this gave a warning in space.c, another case where MSVC forgives you?
:)
- IK constraint now uses Ipo from action again
- Bug in last commit; the object action was ignored... did NLA always
Editmesh:
- when there are edges in mesh, it now only copies selection in edges
when you have selectmode edge
weird disabled code that was hanging out there for ages.
Also cleaned up NLA blending itself, it was copying far too much data
around. Should be three times faster or so... need good test!
And restored Action Baking.
actually) only the relative rotation is used.
- Added scale=1.0 initializer in saving files, this fixes a little bit
better upward compatibility
- Still there are cases where bones flip 180 degrees when you read it with
older Blenders... not sure what it is caused by
- update_for_new_frame() (on frame advance, alt+a) crashed when no 3d view
was opened ever (NULL pointer)
- using proportional mode on Curve editing wrote beyond end of a malloced
block. Just a minus one needed here...