Commit Graph

11497 Commits

Author SHA1 Message Date
1adf750fc3 Cleanup of Armature 3d drawing.
- 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
2005-07-12 15:47:53 +00:00
1b466f7765 Hide .file blocks in databrowse/pop menu.
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.
2005-07-11 23:49:06 +00:00
01daf04ea6 - Object buttons, Hooks panel, clear offset didn't redraw correct
- Particle panel was drawing in wrong size
2005-07-11 19:31:15 +00:00
03c255ac1d New: Armature editmode/posemode now react correctly to HOME or Numpad-DOT
for viewing all or only selection nicely centered.

Fix: Poses without NLA or Action were reset to restposition on file read
or exit editmode.
2005-07-11 17:12:33 +00:00
7d80ffa538 - added bglVertex3f call (to match bglVertex3fv) 2005-07-11 17:06:03 +00:00
a17e21dfab SLightly altered rule for the new IpoCurve option "Keep horizontal on
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.
2005-07-11 12:31:15 +00:00
8301d7ad00 Bug fix #2762
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.
2005-07-11 11:01:06 +00:00
9cb84a662e Bug fix #2763
Depgraph missed proper relation from one armature bone to another armature
bone. Interesting rig setup for facial animation by Malefico! :)
http://projects.blender.org/tracker/index.php?func=detail&aid=2763&group_id=9&atid=125
2005-07-11 09:46:05 +00:00
11a8714e54 Cleaned up the old call to do_all_actions(). It only is supposed to do
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...
2005-07-11 08:04:34 +00:00
31f50d9247 For long on the wanna-have list;
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.
2005-07-10 12:50:14 +00:00
a7cd780ebf Armature;
- 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
2005-07-09 20:40:44 +00:00
d7bf5c0583 New! Pose-constraint Ipos now are integrated in NLA. ALso cleaned up the
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.
2005-07-09 19:37:38 +00:00
30f89a6db7 Armature drawing fixes;
- Dashed line to parent bone was drawn to wrong bone in Rest Position
- Dashed line had selection color of parent, not of own bone.
2005-07-09 14:08:09 +00:00
c8f195d00c - Fix for action constraints; for Bone targets (target is input bone
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
2005-07-09 13:41:01 +00:00
895c9a55d8 Two small fixes;
- ALT+R clear rotation on PoseMode didn't work when an Action was assigned
- 'Delete object' didn't set object pointers to NULL for Armature/Pose
  constraints (old bug)
2005-07-07 07:03:35 +00:00
22a18ecdb8 3D view orbit option: Around Active
This fixes the active object in place when orbiting the view.
	Choppy 15fps demo can be seen there: http://www.elysiun.com/~theeth/bf/around_active.html


Image Memory Grabage Collection
	This adds memory handling to the image code. An image is tagged each time it is used.
	During a collection cycle (frequency of cycles is user defined), if an image is older
	than a user defined limit, its buffer gets deallocated. This also applies to gl memory buffers.
	Images that are loading in GL memory needs to go through two time outs before being fully deallocated: the first time out deallocated the gl memorry, the second the buffer in ram.

	Notes:
		Image buffer loaded from python gets tagged as permanent upon load. That tag is removed when python stops using the image.
		I might have missed some tagging spots, especially in the rendering pipeline. Someone with more knowledge about this code should check to be careful.
		Tagging is done on every access, for rendering, this will probably be a performance hit. A scheme should be developped to only tag when the rendering is completed.
		Collecting is called in draw_object, most likely not the best place to do it.
		Safe from undo, since using undo deallocates memory anyway (like when loading a blend file with one currently opened)


Userpref DNA changes:
	I've changed a couple of flagging variables from short to int. Some because they needed more space, others to keep SDNA happy.


Info window changes:
	I've grouped a couple of buttons in aligned blocks and changed the color of mutually exclusive options to make them clearer.
	Matt didn't do any changes on that in tuhopuu, so hopefully I'm not stepping on anyone's feet with this.


Also changed double constants into floats with f in a couple of places (mostly space.c) to make compiler happier.
2005-07-06 00:33:41 +00:00
4fb314b809 Action constraint works again. Needs revision though... do that with
testfiles i get from Bassam. :)

Further removed old code that was ifdeffed hanging around still.
2005-07-04 20:09:32 +00:00
28a1e8277b Result of 2 weeks of quiet coding work in Greece :)
Aim was to get a total refresh of the animation system. This
is needed because;
- we need to upgrade it with 21st century features
- current code is spaghetti/hack combo, and hides good design
- it should become lag-free with using dependency graphs

A full log, with complete code API/structure/design explanation
will follow, that's a load of work... so here below the list with
hot changes;

- The entire object update system (matrices, geometry) is now
  centralized. Calls to where_is_object and makeDispList are
  forbidden, instead we tag objects 'changed' and let the
  depgraph code sort it out
- Removed all old "Ika" code
- Depgraph is aware of all relationships, including meta balls,
  constraints, bevelcurve, and so on.
- Made depgraph aware of relation types and layers, to do smart
  flushing of 'changed' events. Nothing gets calculated too often!
- Transform uses depgraph to detect changes
- On frame-advance, depgraph flushes animated changes

Armatures;

Almost all armature related code has been fully built from scratch.
It now reveils the original design much better, with a very clean
implementation, lag free without even calculating each Bone more than
once. Result is quite a speedup yes!

Important to note is;

1) Armature is data containing the 'rest position'
2) Pose is the changes of rest position, and always on object level.
   That way more Objects can use same Pose. Also constraints are in Pose
3) Actions only contain the Ipos to change values in Poses.

- Bones draw unrotated now
- Drawing bones speedup enormously (10-20 times)
- Bone selecting in EditMode, selection state is saved for PoseMode,
  and vice-versa
- Undo in editmode
- Bone renaming does vertexgroups, constraints, posechannels, actions,
  for all users of Armature in entire file
- Added Bone renaming in NKey panel
- Nkey PoseMode shows eulers now
- EditMode and PoseMode now have 'active' bone too (last clicked)
- Parenting in EditMode' CTRL+P, ALT+P, with nice options!
- Pose is added in Outliner now, with showing that constraints are in
  the Pose, not Armature
- Disconnected IK solving from constraints. It's a separate phase now,
  on top of the full Pose calculations
- Pose itself has a dependency graph too, so evaluation order is lag free.

TODO NOW;

- Rotating in Posemode has incorrect inverse transform (Martin will fix)
- Python Bone/Armature/Pose API disabled... needs full recode too
  (wait for my doc!)
- Game engine will need upgrade too
- Depgraph code needs revision, cleanup, can be much faster!
  (But, compliments for Jean-Luc, it works like a charm!)
- IK changed, it now doesnt use previous position to advance to next
  position anymore. That system looks nice (no flips) but is not well
  suited for NLA and background render.

TODO LATER;

We now can do loadsa new nifty features as well; like:

- Kill PoseMode (can be option for armatures itself)
- Make B-Bones (Bezier, Bspline, like for spines)
- Move all silly button level edit to 3d window (like CTRL+I = add
  IK)
- Much better & informative drawing
- Fix action/nla editors
- Put all ipos in Actions (object, mesh key, lamp color)
- Add hooks
- Null bones
- Much more advanced constraints...


Bugfixes;

- OGL render (view3d header) had wrong first frame on anim render
- Ipo 'recording' mode had wrong playback speed
- Vertex-key mode now sticks to show 'active key', until frame change

-Ton-
2005-07-03 17:35:38 +00:00
99a8747e82 Warning hunt:
INIT_MINMAX and INIT_MINMAX2 are always used on floats but use doubles for initializing, giving countless warnings.
Added the nice 'f' to tell compilers that we want floats.
2005-06-30 04:11:41 +00:00
Alexander Ewering
08169d7fba The overlapping curves/material indices problem got a bit out of control.
- For avoiding the 'overlapping character problem' in Text objects, I had
   changed the sorting code for filling nurbs to use nu->charidx (a new
   variable incremented with each new character) instead of nu->mat_nr
   (which used to work for material indices inside a 2D Curve).

 - This broke material indices in normal 2D Curves completely, thus:

 - nu->charidx is now not only used for seperating
   characters in text objects for filling, but also for normal 2D curves
   when they contain material indices. In fact, charidx is just set to
   the material index.

 - There's compatibility code in readfile.c that sets nu->charidx to nu->mat_nr
   when reading curves from files that are not text objects

 - So, the big conclusion: Instead of using material indices for creating
   'filling groups', filldisplist() now uses nu->charidx, which is set
   appropriately when reading old files and assigning/deleting material
   indices in curves.

 - This is all pretty obscure and hard to explain. If I haven't been clear,
   ask.

 - If it breaks anything, complain!
2005-06-25 22:51:51 +00:00
eb41fcdf23 - bug fix, crash with edges with no face in subsurf 2005-06-24 05:30:41 +00:00
83f988c279 - bug fix, vertex normal calculation during incremental update was not
correct (although fairly unnoticable).
 - bug fix, vertex normal calculation didn't normalize face normals before
   summing... silly mistake

p.s. perhaps the Crystal Space bla bla naming conversation is not most
appropriate for the commit list?
2005-06-23 23:44:22 +00:00
0a92e159d9 Segfault waiting to happen. This is way old code that I did, I blame my rusty C skills from back then (and the fact that lazy evaluation would make it work correctly). :) 2005-06-22 05:45:23 +00:00
Alexander Ewering
9020455429 Removed a debug print 2005-06-21 15:10:49 +00:00
Alexander Ewering
e7e61ba489 Attempt at providing the best possible flexibility and usefulness with
"Flush":

- There are now two modes, "Flush" and "Justify". Justify only flushes
  a line when it is *terminated* either by wordwrap or by Enter.

- "Flush" *always* flushes the line, also when it's still being entered.

  This mode can be used for things like this:

  http://pub.intrr.org/flush.png

  ..while "Justify" would not flush the second line.

- Fixed "Flush" squeezing all characters on the same spot if the textframe
  was set to 0 width
2005-06-18 00:52:25 +00:00
Alexander Ewering
ad8ff9762b - Fix a few warnings
- Improved text editing for justified ('Flush') text: Line will not
  be filled up until it is completed (wordwrap or Enter)

- Fixed waitcursor flickering in displist.c
2005-06-17 22:52:11 +00:00
Alexander Ewering
97df61a7e5 Initial commit for new text object.
Important notes:

 - Full compatibility with old text objects not fully restored
   (word spacing will be 0.0, need to set it manually to 1.0), will
   either need version upgrade to 238 or a hack. Will check.

 - lorem.c (about to be committed) contains BF copyright notice, but as
   BF did not exist a few hundred years ago, probably best to remove it :)

 - If you notice any cross-platform issues (especially beloved windows),
   please report

 - A few tiny warnings left, I will fix those issues still.

The rest has been said already - so have fun testing. And please do!

=== Reminder:
=== Documentation at http://blender.instinctive.de/docs/textobject.txt ===
2005-06-17 21:04:27 +00:00
Alexander Ewering
70c9f9b319 Typo in fastshade() giving wrong colors for shadeless objects with
Vertex colours
2005-06-11 17:57:34 +00:00
Nathan Letwory
c91355f3b6 Rollback of http://projects.blender.org/pipermail/bf-blender-cvs/2005-June/003769.html (which I in my commithappyness did before properly checking) 2005-06-11 16:30:36 +00:00
Nathan Letwory
07fb86d355 * fix for bug #2733 2005-06-10 13:55:09 +00:00
f5b011592a uninitalized variable caught with valgrind.
Kent
2005-06-09 18:42:43 +00:00
91b5992b49 Fix for # 2655
Now triangles and quads of _any_ shape collide nicly with softbodies.
Some tricks don't work in a non euclidian geometry !
Had to brush up that dusty knowlege a bit :)

thanks efbie & ton
2005-06-06 18:52:07 +00:00
88fa58c437 Changed test for (me->flag&ME_SUBSURF) into
((me->flag&ME_SUBSURF) && me->subdiv)

In build_mesh_data(). This because meshes with subdiv==0 were calling a
MakeDisplist() for each redraw otherwise, disabling for example the
posemode "delay deform" feature. (bug #2700)

Daniel; it would help if you would add comments in the code, for example
to understand the difference between;

mesh_get_base_derived()
mesh_get_derived()

and how it relates to

build_mesh_data()

I realize most of the mess is in displist code... and confusing use
of features while editing, posemode, & render. Nevertheless, it's not
clear at first sight which parts of derivedmesh is design, and which
part reflects the hacks to make it work. :)
2005-06-06 09:52:44 +00:00
f38e0686d9 new round of warning fixes. we are now down to 24 with Xcode on blender
alone with the following flags :
-Wall -Wno-char-subscripts -Wno-missing-braces.

the only one still worrying me is in rand.c line 57 :

rand.c:57: integer constant is too large for "long" type

but i have no clue about how correct cross-compiler and 32/64 bits friendly

see also my mail to commiter list for signed/unsigned issues
2005-06-04 16:22:50 +00:00
04ae33ba3a Bug fix #2660
When number of OSA samples is larger than number of AO samples, the AO
loop doesn't function well. Since rendering 16 OSA samples with only 9
AO samples isn't very useful, I've made the AO render level to become
at least equal or larger than amount of OSA samples.

Is first bug in 2.37 that worked in 2.36...
2005-06-02 10:32:54 +00:00
51640e61b6 Stricter check for setting posemode. It is possible to have armatures
linked around to more scenes, which confuses the POSEMODE object flag.

Now posemode is only entered on file read when it is also the active
object.
2005-05-30 13:20:13 +00:00
8a59480289 - last time commit. It fixes bug reported by Kent Mein. Polygonisation of Metaball was broken. Test file:
http://www.cs.umn.edu/~mein/blender/blend/metaball.blend
    http://www.cs.umn.edu/~mein/blender/blend/metaball.png

 - it should fill octal tree much more better ... polygonisation of MetaBalls is faster little bit now too
 - stiffness limit is 10.0
2005-05-30 06:37:33 +00:00
73ebc76fd5 2.37 Version code, new Splash! 2005-05-29 19:12:44 +00:00
dd79f7c8a8 Bug fix #2638
More derivedmesh culling confusement... it should be enabled when double-
sided shaded lighting is used...
2005-05-29 10:47:36 +00:00
61e22e99d4 Disabled GL_CULL_FACE in mesh drawing for vertex colors, weight paint.
This made faces hidden with normals pointing inside. Not nice for paint...
2005-05-28 12:23:40 +00:00
5dedd9306b Colorband didn't correctly compute with 2 entries being exactly on the
same spot. Was division by zero here... coded nice exception catching.

BTW: worked before june 2004... was part of commit for Ramp Shading.
2005-05-27 19:02:39 +00:00
12671f30bd Bug fix #2629
Aye... OpenGL cannot draw concave (C shaped) polygons... that screws up the
Lasso tool, when it uses backbuffer selection.
Examined for little while the GLU Tesselation library, but apart from its
nightmarish structure, it's even stupid (no builtin clock/counterclock).

So, instead coded a DispList based function using Blender's edgefill.
Works like a charm! :)
2005-05-27 09:51:07 +00:00
b30b8bdd08 Bug #2624
Typo in bspline interpolation code... a '1' should be '2', causing the
fourth key of interpolation always be equal to third.
Only shows error with larger key steps, like 5 frames or more. Nice it
was found before release!
2005-05-25 21:54:13 +00:00
524e411dbf rule OB_SB_GOAL flag over SOFTGOALSNAP optimization in all cases 2005-05-24 22:17:23 +00:00
b4dc14e088 Added init of 'postsat' to 1.0 in Scene, for the postprocess menu.
This only gave error in python. Added new scene in Blender itself copies
settings over of current scene. :)
2005-05-24 11:50:12 +00:00
e441c57d22 fix for bug #2588
objects with circular dependancies where not handled correctly
when sorting bases.

the fix is actually a workaround only and may evolve later

also add changes to xcode project for recent commits
2005-05-21 21:52:58 +00:00
244a1a71b3 Bug fix #2591
Dependency issue... could solve it by calling an extra where_is_object
when a displaylist is made for vertex-parenting on deformed objects.
2005-05-20 20:44:33 +00:00
Nathan Letwory
1071d4a16e This commit fixes two related issues:
1:
* when a blendfile gets loaded, paths are corrected with OS specific slashes (see blender.c)
* made available BLI_char_switch(char *string, char from, char to)
* made available BLI_clean(char *string);. This function should be called whenever you're doing path stuff, so paths are correctly saved, and thus avoiding other path functions stopping to work

2:
* relative paths work now in sequencer too (due to slash mess that didn't work all too well).
2005-05-20 12:18:11 +00:00
83792faa3f Two softbody thingies;
- fixed error in option "Enable Goal" which didn't work with Vertex groups
  assigned

- renamed some buttons & fixed tooltips. A doc online will be there soon
2005-05-20 12:15:50 +00:00
Stephen Swaney
615c2f40a1 text editor patch by antihc3.
fixes 'Memoryblock free: attempt to free NULL pointer' errors.
2005-05-19 03:15:49 +00:00