because Martin recoded the Mirror().
- removed old globals like 'tottrans' or 'centre' or 'centroid' as used
by old transform
- removed a lot of code from editobject.c
- moved all transform related code to transform_conversions.c
(Note for Martin; sorry that's a mess... it now has all the weird
functions for finding posemode dependencies... thats for the depgraph
phase to remove)
on using Apple command keys. For example; starting a TextEdit from the
Dock, Command+Q, caused Blender to treat all LMB events as a RMB.
The commandqual variable was replaced with normal 'qualifier' key already
long ago, should have been removed back then.
Updated the menus to work with that too.
Of course, this doesn't work in object mode right now, because resize I haven't fixed negative resize (yet).
Again, this would have easily benefited of a stand alone init and post Transform functions. When I have time... :|
Proportional edit:
- Proportional mode added to header as button/menu. Including new option
to have only connected geometry influenced.
- Added icons for proportional & proportional modes
- Make proportional edit data part of Scene, so all gets saved.
The Global flag G_PROPORTIONAL was removed
- Made sure #defines get used properly, also tweaked order for proportional
so it starts with regular 'smooth' by default.
- Use ALT+O in editmode to switch to new proportional 'connected' mode
Other UI stuff:
- in EditMode, the layer buttons get hidden... the amount of icons in
3d header grows to fast. :)
- made less ugly icons for the Manipulators. Still can be better.
- Added alpha-filter for pre-processing Icon-image, giving nicer display
of icon-antialising on dark or bright backdrops
- disabled Manipulators when in editmode, and current layers don't show
the edited data.
- Added the value used to define Normal size (editmode draw) in Scene too,
so it gets saved.
While doing a viewmove/rotate, the queue was not emptied nor read...
so after a while the entire queue gets full, not registering a modifier
key-release anymore. Fixed :)
Reported error confirmed in windows and OSX.
Works as follows;
- press the 'show bake settings' button (no space left... :)
- define start/end frame for bake, and an interval step.
The baked result interpolates nicely (Bspline, 4 keys) so in general a
step size of 2 or 3 still gives OK results.
- Press "BAKE". This will do a full animation + playback. Press ESC if it
you don't want it.
Once Baked, the BAKE button becomes a FREE BAKE. As reminder the softbody
buttons get blocked with error() menu.
This saves OK in a file. Renders any frame, including fields and moblur.
You can also set a "Timeoffs" for the softbody. And yes, this should be
in the NLA once... :)
NOTE! With this commit, files saved with the old (first commit) version by
Jens Ole won't read the settings back... he stored all sofbody variables in
Object, which was moved to a new struct when I did my first commit on SB
(over a month ago)
Also note that I moved particle deflecting & softbody to a new include.
Push/Pull had a problem with constraints enabling/disabling. Fixed
Restablished infinite line for constraint draw (when not using manipulator) as discussed in meeting.
fixed some *includes*
with
#ifdef WIN32
#elif
#include <sys/time.h>
#endif
looks like MSVC6 does not need that include .. donno if cygwin builds will
so thats why i kept that *ifdef overhead*
Works like a charm... well it now replaces the old base-sorting hack. :)
Next stage will be to define how to further integrate it. Plus some
minor code cleanups... static/internal functions versus external, etc.
- added in new transform the (not so useful but yah) old feature that
does scrollwheel zoom during transform
- had to change transform call arguments for uv-window/sequence/oops to
match new transform for mouse callback
TODO (for martin?)
- pulldown menu support to call with local axes compliant as for pressing
it with hotkey
- mirrormenu() still uses old transform stuff...
.getPixel( x, y ) returns float list of [r, g, b, a] for pixel
.getMaxXY() returns image size as float list [x, y]
Contributed by Austin Benesh (mchs3d). Thanks!
also ran code thru indent.
still was using int for calculus... made it using 64 bits ints.
- The "disk free" indicator in the header didn't work for OSX, due to
a missing #ifdef __APPLE_
selected) and to vertex normals. Only issue is that vertexnormals are not
updated on each editing command (it's a bit too much overhead...) so use
a TAB+TAB for now to enforce proper vertexnormals.
Added in Nkey panel (transform properties) option to show in editmode
at choice the global or local coordinate values.
Same option works for the "Tech draw" options. :)
- The ortho render recode had a weak method to calculate the Z value of the
render coordinate (shi.co[2]). Worked OK for normal render, but not in
unified, giving big errors in Ortho Unfied render.
Solved with proper math, using face equation a*x+b*y+c*y=d. Dunno why I
didn't do it in first place. :)
- Bug fix#2493. Edge render gave much different result for Ortho. This
was due to overflows in the integer math filtering zbuffer values.
Cleaned it op properly, preventing any integer overflow now.
values that change during transform().
For the rest drawing sticks to actual selection, making the view quite
less cluttered. Hope this gets approval. :)
softbody.c I removed an unused var.
text.c added return values to 2 return statements that didn't have anything.
Makefile added $(FIX_STUBS_WARNINGS) to CFLAGS for the stub.
source/blender/src/editface.c fixed up int vs unsigned int stuff
source/blender/src/resources.c had two vars declared as unsigned char *
and then inputs to them were cast as char * so updated the casts.
Kent
of previous code which slanted after a while.
Patch provided by John Aughey, thanks!
(John will send me the additional diff for a correction when going from
trackball to turntable)
source/creator/creator.c
changed ifdef's around fpe_handler to match when its actually used.
intern/SoundSystem/intern/SND_AudioDevice.cpp
Changed: SND_SoundObject* oldobject = oldobject = pIdObject->GetSoundObject();
to: SND_SoundObject* oldobject = pIdObject->GetSoundObject();
intern/SoundSystem/openal/SND_OpenALDevice.cpp
removed unused var.
source/blender/blenkernel/intern/mball.c
initalized a couple of vars that might have been used uninitalized.
The rest were changing types to match, most of them were something like
was short * should have been unsigned short *.
Kent
Wrong referencing of Materials created when importing DXF caused crashes.
Note for the person who coded it: the use of Blender internals (database)
is quite confusing... most of exotic.c isn't really OK code to reuse
from.
There's also a lot of redundant code there... with many chunks adding
objects or mesh data being copied completely. This can be structured much
better! :)
done for lattices... these keep calling this during transform, causing
the lattice itself and its children (if soft) to remain static on same
position.
Real solution has to be 2-fold:
- store deformed lattice points in Lattice, as a "DispList"
- usage of proper depgraph :)
There's also the idea to keep simulating softbody during a transform, to
give feedback on what softbody does... later.
Apparently DXF allows layers to be read too... this went wrong in 2 ways;
- object->lay was not equal to base->lay
- if DXF has layer info, but not readable, it set object->lay to 1 instead
of using 'current layer'.
SoftBodyDetectCollision() is handeling the case
'user wants to prevent self intersection by declaring SB object a deflection target'
ahh .. yeah .. i can see the bug reports on that
(me shrugs .. never promised that to work)
For non-uniform scaled + rotated objects, the normal aligned Manipulator
got deformed (on multiple selected faces) or pointed wrong. Needed the
famous Transpose of Inverted Matrix trick here.