- fixed constraint popup menu (used icons)
- moved 'full' and 'View3d props' and 'background' items in menu to bottom
Hope Matt wont kill me for it, but these were about the only useful
ones there... :)
- little fix in interface.c for menus...
Instructions for how to add panels there:
- add a handler define code in BIF_space.h
- create a menu item that invokes a add_blockhandler()
- add to view3d_blockhandlers() the correct handler for it
- plus create a panel itself, just copy one... it needs some stuff
to get working, docs for that are for later
You now can adjust the way the default 'solid opengl' drawing happens.
It provides three lights now, all still located around your viewpoint.
In the UserSettings menu you can set them on/off, give location and
color / specularity.
Very nice to enhance modeling in solid drawmode :)
By default blender starts with 2 lights on now, but this is something we
can define in the default .b.blend later on.
(the first save didn't store paths or font settings!)
This is something I broke back at 2.28a :)
I'm suprised there were no bug reports on this, but it's fixed now! ;)
- subsurf also smoothed loose vertices, in a strange way that never showed
up until 'draw subsurf handles' was implemented.
fixed subsurf code not to include loose vertices anymore
- saving a file in editmode caused a new displaylist to made... fixed an
old bad hack from NaN period.
(displists are still lousy code...)
- fixed drawing vertices in frontbuffer on select.
the delay you see is because blender waits for 'rightmouse transform'.
Loop Select:
Selects a row (or loop) of faces in a mesh, keeps searching till it
finds a loop (End face == Start Face) or till it finds a dead end.
Loop Subdivide:
Searches for the same row/loop as loop select but inmediately
splits it in half.
Usage:
- Loop select:
Shift-R (or select->faceloop)
move mouse over mesh to see preview of selection
LMB to confirm selection, RMB or ESC to cancel
- Loop Subdivide:
Ctrl-R (or Mesh->Edges-> Loop Subdivide)
move mouse over mesh to see preview of the newly cut loop
LMB to confirm selection, RMB or ESC to cancel
Please test! (besides, it's fun to play with :)
Roel
- another click at pulldown menu doesnt close it anymore (annoying!)
- the order of Menus (from buttons) now is correctly flipped if needed
- had a LOAD of work on getting matrix code in interface.c cleaned up...
there was still a bug with automatic flipping of menus to prevent them
going outside the screen. should be solved now
- fixed crash: add new screen didnt work...
Aim was to find a simple & easy system, script alike, to add and configure
a toolbox system, so that others can experiment, but also of course Python.
Summary:
- spacebar calls it up. SHIFT+A still does old toolbox
- hold left or rightmouse for 0.4 second, and it pops up as well
this is experimental! Can be tweaked with Userdef var "ThresA"
- it is a little bit complete for Object mode only. Needs still work
at information desing/structure level
- the code works like an engine, interpreting structs like this:
static TBitem addmenu_curve[]= {
{ 0, "Bezier Curve", 0, NULL},
{ 0, "Bezier Circle", 1, NULL},
{ 0, "NURBS Curve", 2, NULL},
{ 0, "NURBS Circle", 3, NULL},
{ 0, "Path", 4, NULL},
{ -1, "", 0, do_info_add_curvemenu}};
- first value is ICON code,
- then name
- return value
- pointer to optional child
last row has -1 to indicate its the last...
plus a callback to event function.
I also built an old toolbox style callback for this:
static TBitem tb_object_select[]= {
{ 0, "Border Select|B", 'b', NULL},
{ 0, "(De)select All|A", 'a', NULL},
{ 0, "Linked...|Shift L", 'L', NULL},
{ 0, "Grouped...|Shift G", 'G', NULL},
{ -1, "", 0, tb_do_hotkey}};
here the return values are put back as hotkeys in mainqueue.
A mainloop can do all context switching, and build menus on the fly.
Meaning, it also allows other designs such as radials...
- removed draw rect from avi coded settings (should become label but)
- changing texture settings, now also updates lamp/material/world
preview when thats open
- uses callback mechanism to tell main drawing routine what to do
- for that reason it doesn't use frontbuffer drawing anymore
and it shows up in all 3d windows as well
- it uses the same colors as for the grid axes (I tweaked it a bit,
this is based at themecolors, and also should work in different
background and grid color)
- I disabled drawing lines through every object or every vertex.
The current display method is clear and not distracting
- when in 'local' transform (double press X/Y/Z), it displays a nice
axis in the center of transform for vertices.
In object-mode, local transform differs per object, so constraint lines
and axes are drawn for each individually...
Also:
- fixed an old bug in rotate transform(). Using a constraint for
rotation (X, Y, Z) didn't work for multiple objects at all!
chapter in 'opengl programming guide' you have to offset the matrix
with 0.375 for exact & predictable cross platform pixel drawing.
Blender used 0.5....
Committed for test among platforms... if you see weird drawing results
(like polygons not aligning good with lines) just notify me.
BTW: text colors don't work everywhere yet... but this state should
be save to store themes in your .B.blend (CTRL+X)
and some fixes:
- leftmouse click now works in NLA and Action window to select a
strip in the left part
- faceselect+vpaint mode didnt show both panels
This is done by disabling the object position refresh call when calculating these constraints. From the tests I did, this doesn't cause any problem at all.
The main point of this is to create pistons and the like.
For coders:
the detect_constraint_loop function now takes an additional parameter that determines the constraint type of the object it's looping from.
instead of the old 'septex' which only showed the active one
- rendering: the 'stencil' option now works to stencil out normals as well
(special requests from our manual master, s68)
lines not drawn (triangles in buttons for example)
- correct colors for channels in texture buttons
- fixed bug: using proportional editing, the extra wire draw had incorrect
matrix
- fixed bug: drawing in imagewindow didnt work anymore... was a very old
one! the wrong pointer was read, and it accidentally went OK, until now
- selecting vertices with multiple 3d wins open works again
- transparent faces in editmode don't write in zbuffer anymore (prevents
drawing errors) but still read (so behind the subsurf faces for example)
- improved drawing 'handles' for subsurf editing
- going in editmode to Solid view, will draw extra wire always, including
transparent faces when set
- works in all combos... http://www.blender.org/docs/ton/subsurf.html
- fixed error; padplus/padminus didnt work in buttonswindow anymore
- improved buttonswin: when dragging window edge, the buttons dont
rescale, but stay same size
Warp, Shear, Shrink/Fatten). It works with the transformations mode,
it doesn't replace them, so just enter grab, scale or rotate mode
as usual and start typing. Both numpad and non-numpad works for the
numbers.
Tab switches between axis (the axis that is being modified has
parenthesis)
Backspace clears the current axis. Twice clears all axis.
Minus (-) switches between positive and negative value.
The mouse is now disabled when you type (as soon as you use one of
the numerical keys). You can use Nkey to switch between numerical
and mouse driven mode.
The minus key on the numpad still affects the PET in mouse-driven
mode, but affects the sign of the number in numerical input.
was caused because i only tested the new cool 'draw wire extra'. :)
- by default, in solid draw mode & editmode, it does a 'draw wire extra'
now, giving nice clean editmesh drawing.
- there's still a few quirks, i do a test now... this commit is to have
a good working blender in cvs. the whole drawing system is such chaos...
Axis constraint in size mode
note: the original behavior when constraining with middle mouse in object mode is weird. I've leave it that way, but I think it would be a good time to fix it. Another thing: in object mode, you can only constrain size to local axis. Global axis would involve either screwing the matrix (which stinks) or modifying the vert coords directly (which is a no no)
Please also note that this breaks the mirroring combo.
I'll be commiting my edit mode mirror function soon to fix that.
Coder note:
You can now call the transform function with an additional parameter to constraint to an axis.
example:
transform('g'*'X')
transform('s'*'y')
transform('r'*'z')
Capital axis letter for global axis, lower case for local axis
- in zbuffer mode, vertices will be blended 50% in... and when you increase
vertex size larger than 2 pixels, it will draw them smaller
- removed all 'wire extra' calls (there were dozens!) and replaced it with
simple call where it belongs.
This drawing mode is becoming nice & stable... maybe something to make
default on for new objects? Makes selecting quite easier...
- Subsurf: in editmode, with new 'Optimal' option set, the mesh itself
will not draw, but instead it draws 'handles' to the vertices. Looks
extremely clean!
- matched drawing of default grid-floor (persp) to ortho grid
- killed drawing vertices outside of main drawing loop, apart from the
routine that uses mouse-selecting. (tekenvertices_ext()). It was an old
optimize routine which became quite useless.