Commit Graph

2412 Commits

Author SHA1 Message Date
Martin Poirier a8f8bf1dc5 2.5
Transform editbones
2009-01-08 17:12:50 +00:00
Ton Roosendaal e4ce05dda7 2.5
Two more files, vpaint.c and editdeform.c
No functionality working related to this yet, tomorrow!

(Added editdeform.c in mesh after all, it's doing hardly no lattice
 stuff, and it seems out of place in anim_api)
2009-01-07 19:23:22 +00:00
Andrea Weikert 4ef6bb5559 2.5 filebrowser
fixes for crashes that seem to have been introduced by changes in context handling.
TODO: initialization for windowtype pupmenu if a previous SpaceFile was there.
2009-01-06 22:48:58 +00:00
Andrea Weikert fc28d3cf75 2.5 filebrowser
further cleanup:
- moved struct FileList* back to SpaceFile
- fix for memory related errors and freeing operator in file_free
- removed wmSubWindowSet, we're not doing OpenGL select in filebrowser
- removed drawing of load button when invoked from windowtype pupmenu
2.5 MSVC projectfiles:
- slipped in removal of multires_firstlevel.c in blenkernel
2009-01-06 19:22:29 +00:00
Nicholas Bishop 25e5765f47 Got rid of old multires code, brought in multires modifier from
soc-2008-nicholasbishop branch.

Note: any old code with multires_test() or multires_level1_test() can 
just be deleted, not needed by the multires modifier.
2009-01-06 18:59:03 +00:00
Ton Roosendaal 02003021a6 2.5
Made ED_screen api calls:
- ED_screen_full_newspace()
- ED_screen_full_prevspace()

Which now gets called by F1 operator, to move to 
full-screen-sized browser. For testing fun its default 
now. Might become user setting. Also have to check
on opening a temp window for this (and for render).
2009-01-06 18:52:18 +00:00
Ton Roosendaal 1c933cdb78 2.5
Cleaned area prevspace, and made exported API for it.
Also added operator-free on 'cancel' in filewindow.
2009-01-06 18:14:37 +00:00
Andrea Weikert b1cb844e05 2.5 - Start of filebrowser.
- basic drawing of list and thumbnail view (switchable through 'favourits' icon in header)
- selection of files and directories (bookmarks) works with the RMB (right mouse button)
- load operator for files still unstable (no check for correct file type) and incomplete. (WM_operator_free missing)
immediate TODOS:
- fix load file operator
- finish drawing of buttons in header
- drawing of detailed list with all file info.
- finish selection and execute operators (LMB and MMB execute)
later todos:
- parent dir
- keymap for all the shortcuts
- append/link and databrowse
- ...
2009-01-06 14:42:54 +00:00
Andrea Weikert fbd3eb99f2 2.5
small cleanup of header include guards.
2009-01-06 10:31:25 +00:00
Ton Roosendaal 833cc9c0c8 2.5
- Armature editmode back
- Armature pose and editmode selecting with mouse back
- Posemode only works with 3d window header now.
2009-01-05 19:32:04 +00:00
Ton Roosendaal c6d5604c82 2.5
More linking issues with armature commit, but we'll get there :)
2009-01-05 16:15:23 +00:00
Ton Roosendaal 1fe21f7e8f 2.5
Put back Armature/Pose code, including 'heat weight'.
I've added reeb.h to get things compile, but Martin will
cleanup files and put back?

Now where to put all vertexgroup code.... I guess mesh?

Note for msvc: yep, another new dir to add! :)
2009-01-05 15:19:31 +00:00
Joshua Leung df20a12728 2.5 - Animation Fixes + More Porting work in Action Editor
* Added crash fixes for loading old files with Actions/Armatures in them. Was caused by usage of some old globals still and the functions in question not performing NULL checks on the validity of the data they're given.

* Added back reorganise action channels tools (shift/ctrl-shif pageup/down) for Action Editor. These are only available in 'Action Mode' only.

* Tidied up Action Editor/Dopesheet tools code - removed various unused things, and also, added an API call in anim_deps.c to send the correct notifiers, since I anticipate that they're likely to require a few context checks which would be better to centralise than copy+paste everywhere.

Note to Ton: could you have a look at this notifier stuff here? I'm not sure which ones I should be sending...


* Also added a few assorted comments in various places
2009-01-05 09:54:39 +00:00
Joshua Leung 91be2ba9b5 2.5 - Various Cleanups/Fixes
* Animation channels - cleaned up the code for selecting channels (removed various TODO stuff that's going to be replaced by something better later). Also, added back the ctrl-shift select feature for groups, which should be extended for other channels too at some stage.
* Outliner - added missing flags to do-versions, and replaced the width calculations with the rna-width version for now, as that uses constant width of 100 with OL_X*indention
2009-01-05 00:38:17 +00:00
Ton Roosendaal 3aeb63cad2 2.5
WM: added area-listener, which can be used to tag refreshes for
either the drawing call, or use the new ED_area_tag_refresh() 
function which will automatically call, after all notifiers
were handled, an the spacetype->refresh() you provided.

Added for Joshua, after reviewing Action/Dopesheet requirements.

Joshua: I've made two dummy functions in space_action.c:
- action_listener()
- action_refresh()

Wich now does a printf on activating a new object.
2009-01-04 17:45:54 +00:00
Ton Roosendaal f7cb86df3a 2.5
Think global, act local!

The old favorite G.scene gone! Man... that took almost 2 days.
Also removed G.curscreen and G.edbo.

Not everything could get solved; here's some notes.
- modifiers now store current scene in ModifierData. This is not
  meant for permanent, but it can probably stick there until we
  cleaned the anim system and depsgraph to cope better with
  timing issues.
- Game engine G.scene should become an argument for staring it.
  Didn't solve this yet.
- Texture nodes should get scene cfra, but the current implementation
  is too tightly wrapped to do it easily.
2009-01-04 14:14:06 +00:00
Matt Ebb 74f9e98c82 * Enabled disabled drawing for 'locked' buttons
(made with uiBlockSetButLock())
2009-01-04 07:50:41 +00:00
Matt Ebb 475a64fc91 * Added support for displaying disabled RNA buttons
The functionality already existed via the RNA system, this
commit makes disabled buttons draw greyed out, and not respond to clicks
(previously, they would drag/edit/etc but then reset to the previous value)
2009-01-04 02:09:41 +00:00
Nathan Letwory 610a56843e 2.5 / Nodes / Transformations
- after talking with Martin P (theeth), I have now shuffled code around
  so that there is no more exception code for nodes in the wrong places.
  This means node editor now also use entirely common translation.
  As proof of concept, there is now also resize and rotate support. It already
  works, but there need to be a bit more thought in how those
  actions are initialised for node editor. Probably some way to tell
  what to use as pivot point, etc.
2009-01-04 01:08:01 +00:00
Matt Ebb 3817b1f018 Some tweaks to menu drawing 2009-01-04 00:05:40 +00:00
Martin Poirier ecc5f17e4d 2.5
Transform operator replay

Basic support working. Only saves mode and values, not constraint setup.

Removed event pointer from TransInfo (it's not available in operator exec). Replaced checks to event->modifiers to a functional modifier bitfield in TransInfo (that is, instead of checking for Shift, it checks for MOD_PRECISION) to make it remappable later.

Misc:
	X-Mirror for mesh now working with transform
2009-01-03 22:15:59 +00:00
Joshua Leung 7d5847defb 2.5
* Start of Action/Pose syncing code (in anim_deps.c) This is currently not hooked up yet, as we still need to figure out where these should get called (due to a few dependencies they have - i.e. visibility syncing of channels is turned on/off by setting in appropriate views).

* Also added assorted comments/changes to rna/dna
2009-01-03 11:35:39 +00:00
Joshua Leung 4b320c26a3 2.5 - Action Editor: IPO Curve Protect works now
* Added the relevant filtering necessary for this to work, into the animation-channel filtering code. 
* Updated most of the keyframe-editing tools to respect this
* Renamed keyframe-editing API loopers (added ANIM_ prefix) for consistency
* Added function for mapping keyframes to/from NLA-mapping for Ipo-Curves in addition to the one for IPO blocks. As a result, renamed the latter for consistency.
2009-01-03 06:01:11 +00:00
Nathan Letwory bdf6a002aa 2.5 / Nodes
* add Context accessor for selected nodes
* node translation uses transform code
* put transform defines in an enum (mode and numinput flags)
2009-01-02 23:58:03 +00:00
Joshua Leung e6838f621d 2.5 - Animation and View2D
* Added back deselect all (and invert all) tools for Animation Channels (i.e. channel list in Action Editor).

* Resolved all MSVC warnings (I came across) in View2d code. Also, added a new API method to get the coordinates (in 'view' space) of a listview 'cell' given the row + column the cell is in.

* Tidied up a few comments here and there
2009-01-02 00:56:48 +00:00
Ton Roosendaal 81243af057 2.5
- View3D backbuffer select is back ("occlusion select").
  It doesn't use the old 'afterqueue' yet, which ensured backbuffers
  to draw immediate after swapbuffers. Will with that.
2009-01-01 19:18:03 +00:00
Ton Roosendaal e2e282989e 2.5
- Put back vertex/edge/face select 
- Mode menu allows going in/out editmode

- Tested some tweak event stuff in WM, made tweak event follow
  user preset for 'action' or 'select' mouse.
  (Wanted to try this for transform, but better get advise from
  Martin first :)
2009-01-01 18:05:12 +00:00
Ton Roosendaal a1961436f5 2.5
- Made scrollwheel behave uniform for zooming. It uses the UserDef
  to map what's in our out. Use keymap entries WHEELINMOUSE and
  WHEELOUTMOUSE to trigger this. Also removed the feature to store
  in event->val the direction, it was conflicting with KM_ANY.

- Added more default poll callbacks, use for generic ops things
  like ED_operator_object_active.
2009-01-01 14:57:04 +00:00
Ton Roosendaal e9a3b4f85d 2.5
- Edit mode Mesh undo/redo back
  (undo for editmodes needed recode, todo for curve/lattice/etc)
- Added border select for edit mesh
- Added Akey (de)select all for edit mesh
- Added notifiers for mode changes.

This is also the first trial to dynamically add/remove
keymap handlers, based on modes. For that reason the Object
keymap was split in 2, modal and non-modal. On TABkey, the
view3d listener removes and adds maps.

The view3d keymap still handles generic mouse/border selection.
Internally it will verify modes.

The modes are not  re-implemented still... have to move this
to scene context.
2009-01-01 13:15:35 +00:00
Joshua Leung c0621a1b7e 2.5 - Action Editor
* Fixed 'mute' icons for IPO-Curve channels. Added define for icon-button widths instead of magic numbers there too.

* Restored View All (HomeKey) and Auto-Set Preview Range (Ctrl-Alt-P). These tools both use the max extents of the keyframes to determine their (time)range.
2009-01-01 01:47:36 +00:00
Joshua Leung c2de1373d1 2.5:
First commit for 2009!

Started of porting of Animation Editor Channels stuff.
This code will be used for both the Action and IPO editors, so any existing code involving this has now been moved to the Animation module.

* Added mouse-click operator for this channels view. Note: the selection stuff currently uses temporary toggling code only (i.e. it only toggles the selection of the channels in the editor, but does not update status of rest of database).
* Fixed bugs in View2D listview functions. Reduced the amount of code needed, and makes the code here simpler.
* Renamed action_edit_keyframes.c to action_edit.c, since channels are not handled there anymore.
* Dopesheet now refreshes correctly when object selection elsewhere changes.
2009-01-01 00:18:23 +00:00
Martin Poirier ea42e70cb9 2.5
- Transform for editmesh (including PET and editmesh snap) X-Mirror doesn't seem to work, but the option isn't accessible in the UI, so...

- Replacing G.obedit with obedit from context in view3d_header (other files will have to be done too, I just happened to stumble on that one while fixing other things).
2008-12-31 22:43:29 +00:00
Ton Roosendaal 471fc09479 2.5
My last one for 2008: global undo/redo back :)
Happy 2009 all!
2008-12-31 18:52:15 +00:00
Ton Roosendaal 0371e6cb21 2.5
Added extend-select for edit mesh.

Note for operator design; you cannot give operators hardcoded 
properties like "SHIFT" or "ALT", that conflicts with the idea
of keymaps. Instead the properties have to be functional, like
setting 'extend' on or off.

I also think mouse select could get these operators:

- activate/select, option 'extend'
- activate/select on object center, option 'extend'
- activate/select, with menu, option 'extend'

and of course loop-select, group-select, and so on.

BTW: border-select could also get 'extend' option :)
2008-12-31 17:50:00 +00:00
Ton Roosendaal c9b60a7b64 2.5
So, editmode mesh is back! :)
At the moment only TABkey works and mouse select, 1 vertex at a
time. More will follow of course.

Note for the devs:
- G.editMesh has been removed, be careful with old code.
- EditMesh now is property of Mesh itself
  Although it means unlimited editmodes, for migration purposes we
  better stick to 1 "obedit" per scene, which is in Context too
- G.obedit will get removed soon, so use CTX_data_edit_object(C)
  Or if you can't, just scene->obedit for now
- Also removed the CTX_data_edit_mesh(), this has no meaning 
  anymore. EditMesh is not context senstitive anymore, only the
  edit-object for time being is.
- Martin: I've already tucked some EditMesh pointer in T and
  removed all G.editMesh there.
2008-12-31 17:11:42 +00:00
Joshua Leung 28d0bab8ed View2D:
Added methods for easier checking of visiblity/position of items arranged in some regular table format (i.e. columns and/or rows).

Last commit from me for 2008!
2008-12-31 10:44:00 +00:00
Matt Ebb de52934331 * Added different icon types to the outliner 'datablocks' view
Brecht, please let me know if I haven't done the right thing with the RNA stuff - I thought it was easier to ask for forgiveness than approval in this case :)

* Added a cute 'RNA' icon
2008-12-31 03:05:08 +00:00
Ton Roosendaal 47796b75ff 2.5
Undo editmode and global undo code back. 
It's now called ED_undo_push() btw, but don't worry, for operators
this is going to be a simple operator flag, so you can remove the
old calls from all tools (but keep them when you directly change
data outide modifiers).

Will put undo back functional tomorrow
2008-12-30 19:01:12 +00:00
Ton Roosendaal 1402534ebc 2.5
EditMesh: further cleanup, made derivedmesh itterator functions
work by gathering all related data in local ViewContext struct.
(scene, editmesh, region, view3d, obedit).
Also removed bad inclusion of view3d_intern.h in mesh module.
2008-12-30 16:03:29 +00:00
Ton Roosendaal 25fac7b001 2.5
Editmesh code cleaned and compiling/linking. A whopping
20k lines back! :)
Not that it does stuff... editmode in/out has to be done,
and loads of operators. Also linking/exporting editmesh
calls has to be reviewed.

Also: added a blender_test_break() mechanism in BKE.
2008-12-30 13:16:14 +00:00
Joshua Leung 2629095828 2.5 - Transform Code for Animation Editors (Part 1)
Remove context pointer from transform code. Solved the need for this by modifying the code that needed it.
2008-12-30 00:28:11 +00:00
Brecht Van Lommel 0a8a00cd10 2.5: Error reporting
* Added a report list to operator, to which they can report errors and
  warnings. When the operator ends, it will display them with a popup. For
  python these should become exceptions when calling operators.
* Added a function to make a popup menu from a report list.
* Also added a utility function to prepend a string before the reports to
  indicate what they relates to. Also made the report functions used
  BLI_dynstr to simplify the code.
* Made file reading and writing report errors to the user again using this
  system, also replacing the left over uncommented bad level error() calls.
2008-12-29 13:38:08 +00:00
Willian Padovani Germano d51bc24384 The 'struct' keyword was missing, breaking compilation here (scons). 2008-12-29 13:02:18 +00:00
Ton Roosendaal 1580b6bc17 2.5
More notifier cleanups: 

NC_SCENE|ND_OB_SELECT : scene level object selections changed
NC_SCENE|ND_OB_ACTIVE : scene level, new active object

NC_OBJECT|ND_BONE_SELECT : object level, bone selection changed
NC_OBJECT|ND_BONE_ACTIVE: object level, new active bone

I've made view3d listen to these, so operators that change
selections don't have to tag own region for redraw anymore.

Also enabled selecting/activating in outliner again.

BTW: Added it in space_action, but Joshua has to code the
proper refresh still :)
2008-12-29 12:15:42 +00:00
Martin Poirier b6b61681ef 2.5
Transform:
First working port of the transform code:
- Object mode only (other conversions need to be ported)
- Contraints (global and local only) working
- Snap (no edit mode, obviously) working
- Numinput working
- Gears (Ctrl and Shift) working
- Only grap, rotate, scale, shear, warp and to sphere have been added as hotkey, but the rest should work too once accessible
- No manipulator
- No drawn feedback other than moving stuff and header print (no constraint line, snap circle, ...)
- No NDOF support

I've only tested Scons support, though Makefil *should* work, I *think*.

Misc:
-QuatIsNull function in arith
-Exporting project_* and view[line|ray] functions from view3d
2008-12-29 01:41:28 +00:00
Joshua Leung 97a82102d4 2.5 - Action Editor / Animation Stuff:
* Brought back clean (OKEY), sample (Shift-OKEY), and delete (XKEY/DELKEY) tools for the Action Editor. 
Currently clean uses a predefined threshold (as a rna-prop, though it's still lacking the popup to set this when it is called)

* Added new file for 'destructive' keyframe operations/tools. 

* Got keyframing.c compiling. Now, some of these tools need to be operatorised. Also, the API there might change when enough of the system is stable for RNA-IPO work to take place (so that it can be tested).
2008-12-29 01:19:25 +00:00
Joshua Leung 1e463b22eb 2.5 - Action Editor:
* Added set-extrapolation operator. For now, this uses the Shift-E hotkey.
* Removed some unused code from keyframes_edit.c
2008-12-28 11:51:41 +00:00
Joshua Leung 61b3c4fefc 2.5 - Action Editor: Bringing back more operators
* Added 'set handle-type' operator. Currently, all possible handle types are all set using a menu and HKEY. This will need to be reviewed at some point, but I think it should be easier for users to remember 1 hotkey for this, rather than 4 scattered around the place.

* Added 'set interpolation' operator. This uses the Shift-T hotkey as before (for now). As in AnimSys2, this sets per-keyframe interpolation.

* Remapped toggle frames/time-codes operator to Ctrl-T key. This may still change, but the TKEY needs to be free for transform tool here.
2008-12-28 08:15:29 +00:00
Matt Ebb fb32420330 2.5 - Reworked the icon system a bit
* After several hours of manual dragging and typing the icon file is now 
enlarged and completely reorganised logically, rather than scattered 
throughout. This should provide a lot more room for growth, and is  a 
lot easier to work with (also allowing more space for toggle buttons 
that require two icon slots next to each other). The icon grid has now 
25 x 24 icons - hopefully this might last us for a couple more years :)

Some of the naming of icon defines is a bit ancient and can be cleaned 
up a bit further. Other devs, if when bringing spaces back, it's 
finding the wrong icon, or missing a define, try and look to see if 
it's already existing in the new icon file, or drop me a note and I'll 
fix it up.

Note: after these changes, older custom blender 2.4 icon 
files won't work and will need to be updated to the new layout.

* Enlarged the icons themselves from 15x16 pixels to 16x16 pixels (icon 
designer request). This is a more standard size, and is easier to fit 
stuff in proportionally.

* Added a bunch more of jendrzych's icons that weren't added previously 
since there wasn't space in the icon file (including a few more 
modifier icons)

* Tweaked the outliner somewhat, so that instead of just showing a 
generic 'object' icon for all objects, it shows 'object type' icons, 
per object type. This makes the outliner a lot more useful for browsing 
at a glance - a huge row of identical 'object' icons doesn't really 
give much useful information. See here:

http://mke3.net/blender/devel/2.5/outliner_obtypes.png
2008-12-28 07:39:23 +00:00
Ton Roosendaal b97ee36f8d 2.5
Anim playback part 1 (needs more test, will do after commit)

- added the update_for_new_frame() back
- proper evaluation of time change notifier in WM level
- fixed redraw flushes for menus while animation plays.
2008-12-27 17:43:05 +00:00