Commit Graph

485 Commits

Author SHA1 Message Date
d07dccc386 Found some time do sanitize the big Transform call:
- Splited off the event treatment into a fonction of its own
- Splited off the initialisation phase into a function of its own (will have to do it for the manipulator function too)
	Calling transform now works like this:
		initTransform(mode, context)
		- possible post init calls, constraints mostly
		Transform()
		- eventually, the postTransform function, so that Transform is just a simple big loop which could in the end just be tied in the blender event system instead.
- Added a state variable in TransInfo to replace the ret_val local variable. Possible values are: TRANS_RUNNING, TRANS_CANCEL, TRANS_CONFIRM
- Tied MMB and the hotkey select for constraint together, so selecting an axis with MMB and pressing the axis key after that goes to local mode on that axis. Much less confusing.
2005-05-10 04:21:11 +00:00
eec4e32714 Another Transform todo: correct Undo names for using Transform.
Martin; I've added calls like:
	BIF_TransformSetUndo("Add Duplicate");
In advance of calling transform itself, to indicate that this is the
string name to be used for Undo, and also has to be done on ESC.
To make that possible I had to add a memset() to zero the global struct
TransInfo. Nicely done with if(Trans.mode==TRANS_INIT)

Not sure how this relates to setting constraints in advance... I always
found it tricky to work a non-initalized global struct. :)
2005-05-08 12:00:28 +00:00
71c2d1e9d6 Added two UI level warnings on using Softbody;
- On leaving editmode, it deleted the Baked result automatically. Since
  that's an invisible and destructive ction, I've inserted an "OK?" menu
  here for it.
- Particle Deflectors themselves cannot be a Softbody (or viceversa).
  Added a LABEL button to denote this when a user tries to set that.
2005-05-07 12:31:43 +00:00
3b2c30dae4 Another big cleanup, thanks to transform recode. Could do this stage
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)
2005-05-04 12:53:35 +00:00
e05e85523f Mirror function reuses new Transform (basicly calls the split off ElementResize function on the data).
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... :|
2005-05-04 00:37:11 +00:00
422b69fe1e UI cleanup work;
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.
2005-05-03 10:54:42 +00:00
42126cb5fc Added baking for softbodies.
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.
2005-05-02 13:28:13 +00:00
42ae9128fa Removal of old transform() <sob> part one.
- 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...
2005-04-30 21:19:19 +00:00
6fd281c14d Made "Centre" in mesh editmode listen to the "Around" setting, so it can
now use centroid as well (instead of only bounbox-centre)
It doesn't do "cursor" though... it's centering for object center, right?
2005-04-28 18:46:35 +00:00
3dbae624d3 * Brought over a 'mode' parameter to drawcircball to prevent
further loss of Hos' hair during tuhopuu merges.

This doesn't change any user functionality. 'Mode' can be
GL_LINE_LOOP for a circle outline (as it currently is), GL_POLYGON
for a filled circle, or whatever gl mode you like.
2005-04-20 08:26:22 +00:00
07ef51cdb1 More SoftBody stuff:
- after grab/duplicate the softbody didn't get a reset signal
- added 'copy properties' for softbody settings
- duplicate object didn't copy softbody yet
2005-04-16 15:06:02 +00:00
Chris Want
4741ad101a Having come to understand the nature of bug #1576 a little better,
I can now say that I declared it fixed erroneously before, and
I hope that when I call it fixed now it can really, truly be laid
to rest.

Sometimes when you escape a transform on an object that is the
target of an IK constraint on an armature bone, the rotations were
not restored correctly on the bones in the IK chain. This commit
fixes this problem in a rather brute force manner.
2005-04-14 03:11:41 +00:00
bdb86d7c67 Integration stage of Softbody project
User level notes are in Wiki here;
http://wiki.blender.org/bin/view.pl/Blenderdev/Softbodies
And will be added in blender3d.org CMS later.

Tech level notes are still pending, but here's the most relevant ones;

- made ob->soft struct SoftBody to hold all settings, and read/save in
  files
- added (temporal!) conversion for the old settings. So: read old files
  with softbody experiments now, and save over!
- cleaned API calls for softbody, which are only 5 of them now:
  sbNew()
  sbFree()
  sbObjectStep()          (animation steps)
  sbObjectToSoftbody()    (full re-initialize data)
  sbObjectReset()         (only reset motion)
- API calls accepts time in frames now, within softbody.c it converts

Further, internally code was cleaned some (missing tabs etc). Also tried
to keep a well defined structure with hints how to add support for more
objects. Can write notes about that...
2005-04-02 13:57:23 +00:00
70687a2e84 - removed dlm->flag 2005-03-29 17:20:28 +00:00
e229722d5b - added Mesh->derived and Mesh->decimated DerivedMesh pointers
- removed DL_MESH displist type!!!! Now store a DerivedMesh directly.
 - May still be some issues left having to do with releasing this
   at the right time (old code just splashed free_displist all
   over the place).
2005-03-29 16:43:39 +00:00
cdd7e93566 - subsurf creation no longer needs extverts argument... removed 2005-03-28 08:43:24 +00:00
05685e6ca7 Context parameter for Transform.
For tex space edit, crease (soon) and future use.


Manipulator assumes no context.
2005-03-27 21:25:15 +00:00
5348fcd293 Function std_rmouse_transform() works with function pointer to denote
what todo. With the new Transform(), using different args, it's not
easy to do it with single function pointer.

For the time being, the function pointer isn't used for the 3d window.
2005-03-24 13:13:00 +00:00
d02b83cf66 - Fix for CTRL (and possible ALT, SHIFT) as hotkey; now also works while
moving mouse around :)
- Shift+D duplicate uses new transform
2005-03-23 18:50:03 +00:00
5412cab522 Bug fix #2349
Outliner click on mesh in screen without 3d window crashed. NULL pointer!
2005-03-23 15:40:50 +00:00
8e92ee8684 - remove all obsolete inclusions of BLI_winstuff.h (due to recent changes)
NOTE: BLI_winstuff.h was meant to be a wrapper around windows.h to handle
undefining various crap that windows.h defines. Platform specific headers
should only have to be included in a few places. This reduces the number
of inclusions of BLI_winstuff.h to 16 which is a much more reasonable
number (than the 144 or whatever it used to be)
2005-03-19 21:08:13 +00:00
1f284bb583 Bug fix as reported by Fish-Face/Chris Le Sueur on IRC
After deleting an object, the call free_and_unlink_base() takes care of
NULLifying object pointers. But, with exception of constraints. Silly!!!

So, in the end of a function additionally the test_scene_constraints()
has to be called to prevent crashes. This was missing in join_mesh and
convert_object.
2005-03-12 12:10:07 +00:00
c78e44cdc5 big warning hunt commit
lot of casts, added prototypes, missing includes and some true errors
2005-03-09 19:45:59 +00:00
c48fcd1f00 New menu option: When converting a subsurf or metaball to mesh, the option to delete the original is added, along with code to make it work :) 2005-03-03 19:45:37 +00:00
b334be110d New transform:
- added texture space grab/scale (TKEY objectmode)
- made new transform work with menus (meaning, dropping dreaded while-hold)

To Martin & other while-hold lovers: this needs to be carefully thought over
and designed. I prefer to look on this within context of making transform
fully tablet/pen friendly, as option. Aim now for me is still: get transform
back to work! :)
2005-02-25 17:40:03 +00:00
91fbe72115 Transform project.
Brought back functionality to work with "Ipo Keys" (Kkey in 3d window). New
transform code is looking more messy now... its design was not purposed to
clean on this level. Acceptable for this stage however.

Also renamed old variables *tob into *td.
2005-02-25 11:35:24 +00:00
7ad68dd4a6 Daily commit for transform() project, to prevent conflicts with Martin's
work. :)

- added static and (void) and some style stuff  in transform.c
- first additions in code for posemode (do not even try now!)
- fixed warnings in previous commit martin (gcc only)

Note; posemode old transform had complex dependencies on redraw (Hos' home
grown dep graph), which is first being restored. Including old style
set_base_flags_for_editing. Tomorrow!
2005-02-20 19:00:00 +00:00
4e39c4361f Making transform's code more Blenderish with a proper extern include file (BIF_transform.h) and extern function calls (BIF_*).
On a side note, Shear was fixed in last commit, just forgot to mention it. It wasn't acting correctly in Edit Mode (and Desoto was poking me about it every sunday).
2005-02-20 01:25:10 +00:00
09f21e45d7 First commit for the transform coding for me!
- fixed warnings in compile (transform.h struct defines)
- drawPropCircle was on wrong location in editmode
- removed prop circle drawing for old transform (sorry, but we're going to
  move soon anyway!)
- removed spaces from transform.c
2005-02-19 16:37:48 +00:00
d2f4ba4549 Initial new transform commit.
Disabled behind defines. Uncomment //#define NEWTRANSFORM in transform.h to enable.

Use at your own risk

For more info, see Wiki: http://wiki.blender.org/bin/view.pl/Blenderdev/TransformRefactoring
And tuhopuu mailing list: http://projects.blender.org/pipermail/tuhopuu-devel/

Notes for Ton (things that could need bulldozing:
- TransData conversions. Objects is ok, but others could be rechecked. (some still use totsel). Need to add pose mode support.
- Need more icons in the PET mode dropdown (in the 3D view header) for the new modes
- Add new transform calls to Toolbox and Menus and the one right after Extrude.

That's pretty much all I can think of now.
2005-02-14 02:53:36 +00:00
912ef80bdc big softbody commit
some vertex group , weight painting stuff too
/me crosses fingers it does not break anything
2005-01-12 22:28:13 +00:00
fcb00bf294 Object Constraints weren't relinked correctly when duplicating both the target and the owner.
Bug since 2.35.

Was lost when bug #1307 was fixed in this commit: http://projects.blender.org/viewcvs/viewcvs.cgi/blender/source/blender/src/editobject.c.diff?r1=1.121&r2=1.122&cvsroot=bf-blender&diff_format=h
This doesn't seem to bring back the bug (copy full scene didn't update links in constraints).
2004-12-29 20:44:54 +00:00
610cec55c7 Biiig commit! Thanks to 2-3 weeks of cvs freeze...
Render:
- New; support for dual CPU render (SDL thread)
  Currently only works with alternating scanlines, but gives excellent
  performance. For both normal render as unified implemented.
  Note the "mutex" locks on z-transp buffer render and imbuf loads.
- This has been made possible by major cleanups in render code, especially
  getting rid of globals (example Tin Tr Tg Tb Ta for textures) or struct
  OSA or using Materials or Texture data to write to.
- Made normal render fully 4x32 floats too, and removed all old optimizes
  with chars or shorts.
- Made normal render and unified render use same code for sky and halo
  render, giving equal (and better) results for halo render. Old render
  now also uses PostProcess options (brightness, mul, gamma)
- Added option ("FBuf") in F10 Output Panel, this keeps a 4x32 bits buffer
  after render. Using PostProcess menu you will note an immediate re-
  display of image too (32 bits RGBA)
- Added "Hue" and "Saturation" sliders to PostProcess options

- Render module is still not having a "nice" API, but amount of dependencies
  went down a lot. Next todo: remove abusive "previewrender" code.
  The last main global in Render (struct Render) now can be re-used for fully
  controlling a render, to allow multiple "instances" of render to open.

- Renderwindow now displays a smal bar on top with the stats, and keeps the
  stats after render too. Including "spare" page support.
  Not only easier visible that way, but also to remove the awkward code that
  was drawing stats in the Info header (extreme slow on some ATIs too)

- Cleaned up blendef.h and BKE_utildefines.h, these two had overlapping
  defines.

- I might have forgotten stuff... and will write a nice doc on the architecture!
2004-12-27 19:28:52 +00:00
deb64cc37c Another last minute bug... (thanks aphex)
Add text, TAB, CTR+Z, TAB -> crash... :/
Just forgot 1 if()... was there for weeks! So...
2004-12-22 20:30:13 +00:00
c8e4dd0e3a Fix in hook menu; "select" option only worked in vertex selectmode. 2004-12-19 18:38:17 +00:00
bc76f088bb Bugfix #1981
Pad-minus key didn't work in typemode transform().
Very easy, just flipping an && with || :)
2004-12-07 18:06:13 +00:00
6c52311ee4 Reported on IRC;
Converting subsurf to mesh didn't display new Mesh object in correct wire,
when susurf was optimal.
2004-12-05 12:05:28 +00:00
aad31875d7 Special bf-committers request; Lamp/World/Material now each have 10
channels to link texture to.

The amount of code changes seems large, but is mostly getting rind of
hardcoded values (6 and 8) for channels, replacing it with MAX_MTEX.

Further did some fixes;
- Ipo for Lamp showed too many mapping channels
- Texture MapTo buttons for lamp missed the slider to blend texture color
- Lamp texture mapping "View" only worked for Spot, now it uses lamp-
  view vector for all types. (Nice for projections!)
2004-12-04 21:49:02 +00:00
792c5334f8 - added undo pushes for buttons invoking file window in scene buttons
(set directory, backbuf, scene)
- small annoyance; after extrude the transform() didn't react to the
  "midtog" feature (middlemouse constraint)
2004-12-03 22:04:28 +00:00
1fc26457f4 Bug fix #1952
When rotating camera itself in camera view, and choose local axis rotate,
the camera flipped around. Was due to using viewmat[][] while it changes...

Solved in the simplest elegant way; hope Martin will cope with this in new
transform!
2004-12-03 21:25:56 +00:00
ded466b0c2 Bug fix #1945
Undo push missing after "ALT/SHIFT+D and ESC".
2004-12-03 20:41:53 +00:00
8fc85d9c8f Three little fixes as reported by Campbell;
- Mesh editmode; SHIFT+F fill didnt set default vertex color
- Parented spotlight had wrong (black) dashed line to parent when selected
- Constraint line draw while transform wasn't reset, causing sometimes to
  draw when using the (ugly) G.moving flag...
2004-12-01 22:35:42 +00:00
4ef448cc51 Small tweaks to make 3d drawing a tad more interactive, and; something
for our interactive 3d artists!

- AL+Z (potato) texture view now draws objects without Texture Faces
  compliant with (new) default in engine. Meaning lit faces, using
  Material RGB for diffuse and specular. It used to draw these as 'shaded'
  which is quite useless.
  Per definition, Potato mode is supposed to show what engine draws.
  (Note; this only for Mesh objects)

- Added a couple of more calls to ensure Shaded drawmode updates on
  changing RGB sliders, moving lamps to layers, or switch layers

This based on feedback from Mal, who'll also give it all good tests.
2004-11-25 21:52:07 +00:00
f3c8c47adb Fix for #1839
On large changes of the Lattice resolution button, the undopush crashed.
Reason was that the push happened for buttons before the actual event for
buttons was executed.
Solved by creating new event UNDOPUSH that's being added to the queue by
by buttons now.

- Made button undo texts for number buttons more clear
- Added undo push for missing Add lamp/empty/lattice/camera
2004-11-22 22:41:07 +00:00
9b9f9fc038 Fix for #1864
In transform code the old global G.totvertsel was still used to define
centroid (editmesh). Replaced with nice local variable.
2004-11-21 12:23:21 +00:00
32c95ccae4 Three bugfixes, as reported on release;
- loopselect doesnt work proper with vertices outside window
- outliner crash on script select (potential showstopper...)
- make curve parent menu, press ESC, crashed blender

All minimal changes in code. no new development, promised!
2004-11-16 15:08:42 +00:00
f5a9209f28 Headerprint for extrude along face normal was sometimes wrong, because of
invalid pointer.
2004-11-12 15:30:37 +00:00
1c632c40c0 Fix for error found by aphex;
Some extrusions still use proportional mode when thats on. Was due to
adding transfrom('g') for non-normal extrude. Made it new code 'h'
2004-11-11 23:56:56 +00:00
5f5445ddbe Tsk tsk! Using a short to count vertices amount in Mirror menu doesnt
work when there are a lot, eh :)
2004-11-11 16:00:43 +00:00
11fe49227b Proper fix for Ton's commit.
Original commit message:
"Cosmetic change (after bugreport), scaling in axis (press X,Y,Z) now prints in header "local" too, this to indicate it only does local scales."

The solution was half good, since only object mode is restricted to local axis constraints. Fixed by checking for the Local flag (which was properly set).
2004-11-10 21:27:54 +00:00