Commit Graph

53000 Commits

Author SHA1 Message Date
Joshua Leung
95207cec00 2.5
Added RNA wrapping for F-Curve colour settings
2009-02-15 23:28:30 +00:00
Nathan Letwory
c3d74547be SCons:
* giving compileflags, cc_compileflags and cxx_compileflags to BlenderLib() now actually overrides any other setting (so there's no unclarity when ie. conflicting options are being specified in REL_CFLAGS et al). These are set after either release or debug flags, but before any *_WARN flags (so those stay maintained).
* add cxx_compileflags for GE parts on win32-vc to have better performance.
* NOTE: if platform maintainers (OSX and Linux) could check and do the same for their systems. Not vital, but probably very, very much welcomed by GE users.
2009-02-15 23:26:00 +00:00
Benoit Bolsee
915baae622 BGE bug #18137 fixed: When two actors collide in this blend file the blender crashes. 2009-02-15 19:07:27 +00:00
Campbell Barton
e05742b64d added back sequencer RMB select Ctrl/Alt modifier keys. 2009-02-15 17:24:09 +00:00
Joseph Eagar
d71d78e40d another dissolve bugfix. commented out some code I put there for helping in debugging tracing, also added another case to conversion code. I think I got the pocket case Briggs has always talked about, e.g. a three-edged face where two edges share the same verts. So that at least shouldn't crash, though not really sure if simply ignoring such faces is a good idea. 2009-02-15 14:02:27 +00:00
Ton Roosendaal
121c8c2584 2.5
Accidentally closed comment twice, that doesnt compile!
2009-02-15 14:01:27 +00:00
Campbell Barton
b35092f03c thought the hashes were my own mistake from typing python in the wrong window but turns out the pre-processor uses them. 2009-02-15 13:53:26 +00:00
Ton Roosendaal
66d3dcf150 2.5
Anim playback now uses "Sync" option, skipping frames to match
real time (as set by the frames/sec button).

This is a quicky for tests with audio. Note that the real time
in seconds to update sound to in ED_update_for_newframe() would be:

(scene->r.cfra / FPS) + screen->animtimer->duration

Also this can have a slight inaccuracy, the time between the timer
handler and the ED_update_for_newframe() notifier is not known,
but in general nearly zero. A better implementation is possible, but
thats for later. :)
2009-02-15 13:09:19 +00:00
Ton Roosendaal
50f789e9e8 2.5
Graph editor: added refresh tagging on initialize; this is called
on browsing space types, as well on read files or switch screens.

(Makes the fancy fluorescent rainbow colors in channels appear!)
2009-02-15 11:41:22 +00:00
Joshua Leung
844db37559 Graph Editor: F-Curve Colouring
Now F-Curve channels in channels region are drawn with the same colour as their respective curve is drawn in the curves area. I've had to make a compromise to store such colour info in F-Curves themselves, which is not terribly ideal if the F-Curve gets reused in some way. However, for now, this will do (special tweaks can be made to make this work better though).

I've also added a colour-determination mode per curve which should in future allow more control over this. By default, all curves still use the old 'rainbow' style. The available types area:
* Old Rainbow - Colour is determined 'automatically' using a magic method which uses curve position + total curves to generate a colour.
* Auto RGB - Color is determined using the 'array index' stored in F-Curve for data-access. An unresolved issue with this is that all the curves with this will end up with exactly the same colour, leading to confusion (i.e. all location.x and scale.x properties could potentially all be the same red colour).
* Custom colour - self explanatory

Currently, there's a minor bug when loading old files where the colours don't get initialised yet. For now, just clicking in the Graph Editor after file-load will solve any of these problems.
Ton: it looks like area->refresh() isn't getting called after file read.
2009-02-15 10:58:24 +00:00
Joshua Leung
394b3fcede Keying Sets: Added 'remove selected from active set' (Alt-K) operator in Outliner
* Cleaned up the helper functions for the Outliner operators which deal with Keying Sets
* Fixed a few minor bugs in the Keying Sets API that won't show up with the current tools, but may crop up later
* Added a new method to find a 'matching' path in a Keying Set. Now adding a new path to a Keying Set will firstly check if there is any similar path already, and skip adding another path.
2009-02-15 07:00:13 +00:00
Joseph Eagar
0b3d60c39c Dissolve verts better cleans up two-edged faces, as much
as it can.

Some design notes:

* BM_Dissolve_Disk is now more like a
  BM_Dissolve_Vert function (e.g. there's logic
  to remove verts if there's not surrounding faces).
  I kindof like this idea better (if we decide to
  go this way we should call it BM_Dissolve_Vert)
  but will have to discuss it further with Briggs.
  It seems more intuitive to have a "destroy this
  vert" function then a "just destroy it in this
  specific situation" function.

* Joining two two-edged faces does not work, so
  dissolve vert cannot clean all of them up.  Until
  this is fixed, I've added checks in the conversion
  code so at least things don't crash.
2009-02-15 02:14:40 +00:00
Joseph Eagar
6ad0c2078c dissolve verts (which can be executed with xkey btw) now cleans up any two-edged faces that may result. 2009-02-15 01:02:51 +00:00
Joseph Eagar
aac8daa177 extrude uses dupe/delete rather then split, and it detects when to not delete geometry (though this could be smarter in the future). also BMO_pop had two lines out of order, which was causing flags layer to not always be freed when they should. 2009-02-15 00:47:19 +00:00
Michael Fox
c56d635318 2.5
*******
- made the armature selection ops use the new editbone/pchan context loops and a little house cleaning
2009-02-14 23:21:39 +00:00
Shaul Kedem
a0fada6f18 added error reporting to edit mesh 2009-02-14 21:31:34 +00:00
Ton Roosendaal
aba3c36e33 2.5
Test: making screencast movies inside Blender!
Hotkey: CTRL+F3. Stop with ESC

Keep in mind it's unfinished :)

Just nice to see how simple cleaner code with the new event 
system and job manager can be put to work!

- it uses currently output directory and image/movie 
  settings from scene. No buttons for this yet.
- Framerate is hardcoded 10 fps
- Thread job takes care of open/write/close movie
  or save image files.
- For speed it uses glReadPixels from backbuffer. Have
  to consult Brecht for nifty triple buffer trick.
- On file reads it stops now.
2009-02-14 18:31:19 +00:00
Ton Roosendaal
7dce015c90 2.5
Making screenshots back. CTRL+F3 does full window now.
Filewindow doesn't show image type, nor does single-area
work now. Need this commit for test in render crashes... :)
2009-02-14 16:43:02 +00:00
Ton Roosendaal
05cdff9bf1 2.5
FileWindow:

It appeared all load/save went via 1 call, so the 'OK save over' menu
popped up on loading files too.
Added check in the function for saving... bit weak, could become an
argument for ED_fileselect.

Also renamed file operators to conform to others.
2009-02-14 14:25:48 +00:00
Ton Roosendaal
3f425dfc71 2.5
Node editor: adding node sends proper redraw now, and calls
the old 'auto connect' to make it link to active node.
2009-02-14 13:18:18 +00:00
Ton Roosendaal
891a2022c5 2.5
View3D: snap menu (SHIFT+S) back.

All options are own operators, a (temp?) menu collects them all.
Note that the operators have a full name, for the menu it seems
too much; still I'd prefer a way to name operators in a way
it fits everywhere. That will make a unified translation system
possible for example.

Also: this code was needed to get 'center view' (numpad dot) in
editmode to work.

Last note; it uses old transform code to gather vertex info.
This is fully local to this C file, and quite simple to replace 
in future with new transform.
2009-02-14 13:07:09 +00:00
Joseph Eagar
84b7ebd764 extrude handles loop customdata properly, also added a BM_Face_CopyShared function to copy loop customdata in a face from adjacent faces. it's not used (didn't work in this case) but it seemed fairly useful. may remove if it turns out to not be necassary. 2009-02-14 11:58:52 +00:00
Ton Roosendaal
699f8fe104 2.5
- Localview in 3d window back.
  Note: it puts entire area on localview, so it works nice for
  4-split views as well.

- Added 'save over' menu in filewindow F2 operator. Mostly to
  comply to 2.48... such things can be on the review list.
2009-02-14 10:03:24 +00:00
Joshua Leung
d875386b06 2.5 Bugfixes:
* Removed unnecessary define for context loop (editable posechannels)

* Fixed crash in animation-channel filtering - missing check for no world animation.
2009-02-14 07:52:25 +00:00
Joshua Leung
f3fac33688 2.5 - Adding context iterators for visible/editable (selection is irrelevant) for bones and pose-channels.
I'm not totally sure that these are needed, though it does make some tools simpler.
2009-02-14 07:27:12 +00:00
Joshua Leung
11d96459cf Bugfix: 'Legacy' Insert Keyframe operator works again... It's future is still uncertain though. 2009-02-13 21:40:07 +00:00
Brecht Van Lommel
47b9a44063 2.5: Curve edit mode add vertex and add menus now work. Also
fixed an issue where sublevel menus did not get right operator
context.
2009-02-13 17:37:01 +00:00
Brecht Van Lommel
62494990e6 2.5: update cmake for rna_animation.c. 2009-02-13 16:05:42 +00:00
Brecht Van Lommel
09547c508e 2.5: Keyingsets now can construct rna paths including pointers
and collections, which means keying for example object game
settings or constraint properties should work.
2009-02-13 14:48:38 +00:00
Campbell Barton
d2b1febce1 select left/right of active sequence strip 2009-02-13 14:16:56 +00:00
Ton Roosendaal
023ea476fd 2.5
Bugfix: menus in "screen space" could go wrong because the code
accidentally used window->winid instead of screen->mainwin id.
(the first is window id, the 2nd wm subwindow id. On start both
are one, which made it not appear immediately).
2009-02-13 13:55:57 +00:00
Ton Roosendaal
1d5115c251 2.5
feature restored: window title shows file name, 
if saved/loaded.
2009-02-13 13:33:01 +00:00
Ton Roosendaal
4d0f30f475 2.5
Feature restored: save file for the first time automatically names it
untitled.blend, prevents to accidentally save over last saved
file.
2009-02-13 13:04:48 +00:00
Joshua Leung
8817fb93c4 Keying Sets: Insert/Delete Keyframe Operator Buttons
* Insert/Delete keyframe buttons in the TimeLine work again. These now use two new operators which only insert keyframes for the active Keying Set. 
* Renamed the old insert/delete keyframe operators. These now have the "*_old" postfix on their names. What happens with these temp operators is yet to be seen.
* Added insert/delete keyframe buttons beside the operator buttons for Keying Sets in the Outliner->Datablocks view
2009-02-13 09:46:08 +00:00
Joshua Leung
c8f04eba48 Animato: Various improvements
* Scene and World AnimDatas are now included in animation editors
 
* Keyframes for integer-value settings now get the FCURVE_INT_VALUES flag set for their F-Curves, which restricts those curves to only having integer-values. F-Curve displays have been altered accordingly, but some editing tools may still need tweaks to work with this.

* Fixed notifiers for Insert Keyframe -> Active Keying Set.
2009-02-13 06:33:07 +00:00
Campbell Barton
b052ae4cdb [#18209] 3 VSE crash bugs with .blends (all left click and move mouse over Metastrip/Blend Mode related)
Workaround for a bug where dragging the playhead over a metastrip with blending on it could segfault blender.
Tried to figure out why the imbuf rect is not set, but for now a NULL check stops the crash.
2009-02-13 06:24:15 +00:00
Joseph Eagar
9ef65b444b missing free 2009-02-13 03:49:53 +00:00
Joseph Eagar
209db3a64c merge with 2.5 at r18948 2009-02-13 03:27:03 +00:00
Joshua Leung
cec4a29977 Keying Sets: Wrapped KeyingSets in RNA
* The settings of KeyingSets can now be viewed/modified through RNA. 
* Shuffled RNA wrapping for AnimData over to its own file 
* Moved insert-key flags to DNA_anim_types.h, as they're now used for KeyingSets.
2009-02-13 01:51:33 +00:00
Joshua Leung
ed7e211c2d KeyingSets: Fixing crash when adding KeyingSets and no group name is supplied 2009-02-12 23:25:36 +00:00
Joshua Leung
c5d8155aeb Compilation fix: added missing ; 2009-02-12 22:24:51 +00:00
Brecht Van Lommel
763a98f4c0 2.5: Most curve/surface editmode operators back:
* Hide, Reveal
* Separate, Duplicate, Delete
* Set Weight, Set Radius, Set Spline Type, Set Handle Type, Set Smooth
* Tilt, Clear Tilt
* Smooth, Smooth Radius
* De(select) First, De(select) Last, De(select) All, Select Inverse,
  Select Linked, Select Control Point Row, Select Next, Select Previous,
  Select More, Select Less, Select Random, Select Every Nth
* Switch Direction, Subdivide, Make Segment, Spin, Extrude, Toggle Cyclic
* Specials Menu

Not working correct yet:

* Add Vertex (ctrl click)
* Add Menu
2009-02-12 22:12:21 +00:00
Joseph Eagar
1773084201 made extrude properly delete unneeded geometry 2009-02-12 18:05:34 +00:00
Joseph Eagar
01a12fa553 Replaced unified extrude edges/faces code (the stuff specificaly for
edges/faces,extrudeflag_edgess, not the entire extrude system) with 
a bmesh version. This stress-tested the operator api, and I had to 
code some new stuff,including:

* An api to iterate over Mapping slots and array slots. It's modeled
  after the normal iterator api.
* The ability to copy mapping slots.
* More mapping functions.
* In addition to being able to flag elements in a buffer,
  you can now unflag them (much clearer then passing in ~flag
  I think).

The extrude edge/faces code has multiple layers.  At the top
level is a funtion in editmesh_lib.c, which takes care of selection,
handles mirror modifiers, etc.  It calls the extrude operator, which
in turns calls split, which calls dupe/del.  Note that split needed
a slot to exclude things from being deleting (e.g. when extruding
a single isolated face).

The basic idea (reflected in original design of split/dupe/del by Briggs)
is to use the split function to do the heavy work of extrude.  split spits
out new geometry and mappings from boundary edges, for extrude (it should
also spit out other mappings, but that's for later).

Briggs: you may want to look over this, hopefully I didn't do anything
too evil.

I probably should spend some time going over the 2.5 mesh operators and
cleaning them up, splitting ones that need splitting, etc, and in general
getting them to work properly.
2009-02-12 16:59:51 +00:00
Campbell Barton
64d2984aa0 add some more modifier types and access to shrink wrap target object (but no other shrink wrap settings) 2009-02-12 16:27:19 +00:00
Joshua Leung
cfa511ab9e Dummy commit...
* Added comment for what needs to be done to get KeyingSets fully functional
* In previous commit, also made group-locking be taken into account when drawing curves as locked
2009-02-12 11:04:08 +00:00
Joshua Leung
4075c60133 KeyingSets: First working prototype
To use KeyingSets, simply Outliner-select items in the Datablocks view and press K to add to the active KeyingSet. Then keyframes can be inserted by choosing the 'Active Keying Set' option when inserting keyframes.

Important notes on the current implementation:
* Only properties directly inside some ID-block that is close to the root (i.e. main -> objects -> "someobj" -> location, or main -> materials -> "somemat" -> colour) can be accessed for now, as I haven't got the code for building the inner-parts of the paths working yet. Help on getting this working is welcome (hint to Brecht).  
* Properties that can be safely included include simple properties "object -> Dupli Verts", entire arrays "object -> Location" or individual array elements "object -> Location -> y"

---

Also added typo fix for KeyingSet freeing. It was freeing the KeyingSet instead of it's paths.
2009-02-12 10:41:57 +00:00
Ton Roosendaal
517d9b882a 2.5
Bugfix: node editor crashed when using bitmap fonts, still had a 
call commented out, happened during migration to get things linked.
2009-02-12 09:18:35 +00:00
Campbell Barton
48594a3a70 own error in last commit. 2009-02-12 06:36:06 +00:00
Diego Borghetti
a150242f8e Commit to continue tomorrow from work. 2009-02-12 05:02:42 +00:00