Age | Commit message (Collapse) | Author |
|
In TweakMode, the keyframes of the Active Action are now shown (and can be edited) in NLA-mapped time, with appropriate corrections applied when editing. This works in the DopeSheet and Graph Editors :)
To do this, got rid of the old wrappers/API-methods, replacing them with new-style ones. A few methods previously (in this branch) used only for evaluation are now used for this purpose too. As the same code is used for editing + evaluation, this should now be much better to work with.
I've only done a few brief tests now, but I think I might've muddled the invert-flags on one or two cases which I'll need to check out tomorrow. So, beware that there may be some weird and critical bugs for the next few days here...
Also, added proper license headers to new NLA files.
TODO:
- testing + bugfixing due to this commit
- show range of keyframes in NLA Editor active-action line
|
|
21043 to 21072
(NOTE TO SELF: Campbell made a commit in 2.5 before this merge finished)
|
|
As with the DopeSheet, the names of operators in the Graph Editor have been cleaned up, and operators have been added to menus as appropriate to show their availability.
Tweaked a few DopeSheet operator names to be more in line with the Graph Editor equivalents, and vica versa.
TODO: now, the operator poll callbacks here need checking...
|
|
* Replaced old-style menu defines with the new-style Layout Engine ones. These are now much cleaner as a result :)
* Wrapped DopeSheet and Graph Editors in RNA to allow them to use the new Layout Engine for menu drawing
* Shortened the names of operators in the DopeSheet, removing the "keyframes" prefix since that's the only real context which can operate there.
* Standardised a few names, and renamed a confusingly named operator (cfrasnap -> jump to frame)
|
|
Fixed the Lock X/Y/Z buttons for sculpt, should work for all brushes now.
|
|
Some improvements to the layer brush; the displacement is now tied to brush size, like for draw and inflate.
Fixes for layer brush in subtract mode and anchor mode.
|
|
|
|
|
|
* removed radiosity render code, DNA and RNA (left in radio render pass options), we'll get GI to replace this probably, better allow baking to vertex colors for people who used this.
* removed deprecated solid physics library, sumo integrations and qhull, a dependency
* removed ODE, was no longer being build or supported
* remove BEOS and AMIGA defines and references in Makefiles.
|
|
Fixed bug where anchor brush would leave messed up normals (was related to using face normals, not vertex normals.)
|
|
* 2 new enums event_value_items and event_type_items in RNA_enum_types.h
* WM_key_event_string now uses an RNA enum lookup rather then its own switch statement.
* moved wmEvent from WM_types.h into DNA_windowmanager_types.h
* added RNA_enum_identifier and RNA_enum_name to get strings from an enum value.
|
|
* Allows moving, rotating & scaling of particle simulations.
* Setting in particle render options.
* Changes viewed & rendered particles from global space to parent space.
* Doesn't effect simulations at all.
|
|
* WIP Commit: Started wrapping the buttons header to python. Still disabled due to some display problems.
|
|
* Particles support larger than 1 frame changes, bigger frame changes can result in inaccurate results, but it's super fast and you get a nice feeling of how the particles behave!
* "Cache to current frame" button calculates the exact result of particles at current frame.
* Current state of cache can be protected by making it a bake.
* Cache is now in memory by default, disk cache is an option.
* Only "viewport %" number of particles are calculated and cached in viewport, baking and rendering calculate all particles.
* Info on cached frames and memory usage given in ui.
* Support for exact "autocaching" of changes and large frame changes(disabled for now until exact place in event system is decided)
* "Continue physics" is probably deprecated after this and should be removed once sb & cloth use the new cache code.
Todo:
* Make softbody & cloth use the new cache things.
Other changes:
* Some cleanup of particle buttons.
|
|
Fix for the poll used for the operator to set the brush curve to a preset. The 3 brush curve presets in the Sculpt menu are now functional.
|
|
* Clicking on NLA tracks while in TweakMode now works so that channels can be muted/protected/expanded as per usual. However, they cannot be selected, as changing the selection state can interfere with TweakMode state changes
* Operators for animation channel-lists now use proper poll callbacks, which also take into account TweakMode where appropriate (i.e. all selection operators are now allowed to operate in NLA while in TweakMode, and all other operators will only work in Animation Editors)
* Action Editor operators now use the poll callback for Action Editors/DopeSheet instead of the generic active-araa one.
|
|
Bugfix for loading older files with the pre-modifier multires.
|
|
To make TweakMode seem less modal/blocking, selection now works in TweakMode. The caveat though, is that TweakMode must be immediately exited as a result of this, or else the internal state could become rather inconsistent and confused.
All other operators will still continue to operate as per normal though, since in TweakMode, some operations are still very dangerous.
|
|
21021 to 21042
|
|
Added a clay brush. It behaves like a combination of the flatten and draw brushes.
Credit to Fredrik Hannson for the original patch (#18666)
|
|
|
|
Python dir(context) now gives the items from the data context
too, modified context callbacks to also return a list of items
in the context.
|
|
apparently needs its own va_start/va_end.
|
|
* Python apis iterator didnt work, for example [f for f in mesh.faces] # failed.
* Python apis collection.items(), collections without names now return (index,value) pairs, better then returning nothing.
* bpy.ui and bpy.props modules were incorrectly named
* Mesh vertex colors red/blue needed to be swapped on getting/setting.
* Mesh vertex colors were not clamped.
|
|
These fixes get the 'pathJumper.blend' file from our testing suite workable in 2.5 (with a few minor tweaks still needed *)
Changes required:
- Added a 'ctime' var to curve structs for storing the value that used to be obtained by specially evaluating the 'speed' curve when evaluating objects parented to the curve. This can now be animated as a 'proper' var as per normal.
- Added a special hack for detecting constraint blocks, as the old method resulted in paths for Objects instead...
(*) Issues:
- Unfortunately, the paths still don't work out of the box. For some reason, the constraint names in the paths are spelt incorrectly - "Ar" and "Br" instead of "Ap" and "Bp". I'm not sure where this problem is coming from, but changing the paths manually in the Datablocks viewer fixes this error...
- I noticed that in the buttons view, only 1st of the constraints gets shown. This seems a bit like some of the intermittent problems I've had with some arrays/lists not expanding properly in Datablocks view.
|
|
Old NLA-data now gets mostly ported converted over to the new system, with strips and their respective Actions being handled correctly in the test cases I've got.
The conversion procedure now tries to fit multiple strips into since tracks as it is assumed that quite a few old setups tried to do. However, some old setups may be adversely affected by this (i.e. if they depend on a certain order of holding adds for example).
For now, there are no complete replacements for the NLA-Modifier/Auto-Walking stuff yet, so that info is currently just ignored (but correctly freed). The current plan here is to get Armature-level pose-offset system + F-Modifiers where appropriate. This should be one of the major causes of file breakage now...
Also, I've yet to restore some patching for group instancing NLA stuff, since more trickery here is required. This is probably the second major cause of file breakage...
|
|
|
|
* Strips using the same action as the 'tweaking action' now get the error flag cleared after tweakmode is exited. (These strips draw with red shading)
* The direction in which strips get played (as a result of the 'reversed' option) now gets indicated on strips by the direction of the arrow text printed on each strip
* The active strip flag is now cleared after duplicating/splitting strips.
|
|
|
|
|
|
Updated Mathutils.Vector/Euler/Quaternion/Matrix so these are types rather then module methods, each type now has a tp_new function, matching python builtins float/int/str.
Also cleaned up float conversion and arg passing.
Changed buttons_objects.py...
if ob in groups.objects: # no longer works
if ob.name in groups.objects: # is the new syntax
...its more dict like and a lot faster (avoids python iterating over each item and comparing each, use a single rna lookup instead).
|
|
* Fix issue with panel header line not always being hidden
for the first panel.
* Fix graying out of aligned buttons being off by one pixel,
did not find a nice solution for it though, so just added
-1/+1 in the code.
|
|
* Optimized RNA property lookups and path resolving, still can be
much better, but now the 1000 IPO example on bf-taskforce25
runs at reasonable speed.
* Also an optimization in the depsgraph when dealing with many
objects, this was actually also a bottleneck here.
|
|
Made some improvements to how brush strength works.
* For the draw and inflate brushes, the brush's 3D radius is used to set the "goal" distance, towards which vertices move. A strength setting of 1.0 will move verts there immediately (with the usual exceptions of tablet pressure, texture/curve input, etc.)
* Also changed strength calculation to use the square of the strength slider, so that you don't have to be as finicky setting a low brush strength.
* For smooth brush, added an extra loop through the verts. So, a bit slower, but now verts take into account more than the immediate vertex ring.
TODO:
Still some magic numbers:
* Pinch limits the effect to moving vertices half of the way towards brush center. I see no use for a 100% pinch (it pretty much destroys the mesh.) Even half may be too high a limit, but this is hard to place an exact number on.
* Smooth has two magic numbers, the strength fudge factor and the number of smooth repetitions (currently 2.)
* The way the layer brush works is left unchanged for now.
|
|
game_blend_poses, the new animation system doesnt use it but doesnt have a replacement function so it can be kept for the BGE only.
|
|
* EditBone wrapped, using manual get/set function, and used
in the UI code. Makes the RNA wrapping code here more
complicated, but works.
|
|
* Duplicate operator now inits transform once strips have been created
* Muted strips now draw with a dotted outline
|
|
It is now possible to Duplicate Strips again. Strips are added into the first available space in the track above the original track (or a new track above the original if there wasn't any space).
Also, separated out the 'add' operators into their own menu. This might need to be changed later...
|
|
* Loading old Action Editors resulted in wrong view settings being used
* Wrong operator names used in previous commit...
|
|
Object actions are now converted before object ipo's so that if both of them exist, the Action can still preserve its name.
|
|
When an F-Curve doesn't contain any keyframes anymore but it still exists, the F-Curve's value is not recalculated and flushed anymore if the F-Curve's value will not change. That is, if the F-Curve doesn't have any other data, i.e. drivers or generator-modifiers, which would still change its value, it wouldn't be recalculated to have a value of zero.
This solves the problem of deleting all scale keyframes, whereby objects/bones would appear to 'vanish'
|
|
== Transitions ==
Transition strips are now able to be created + evaluated. Transitions allow for interpolation between the endpoints of two adjacent strips in the same track (i.e. two strips which occur in the same track one after the other, but with a gap between them).
- The current behaviour when only one endpoint affects some setting is non-optimal, since it appears somewhat inconsistently extend/replace values...
- Transform code needs a few fixes still to deal with these
== Strip Adding Operators ==
* New strips referencing Actions can be added using the Shift-A hotkey while in the strips-area. You must have a track selected first though.
The new strip will get added, starting from the current frame, in the selected track(s) only if there is enough space to do so. Otherwise, the new strip gets added at the top of the stack in a new track.
* New transition strips can be added with the Shift-T hotkey while in the strips area. You must have two adjacent strips selected for this to work.
== New Backend Methods ==
* Recoded the strip/track adding API to be more flexible
* Added a new method for testing whether F-Curve has any modifiers of with certain attributes. Will be used in a later bugfix...
== Bugfixes ==
- Fixed bug with strip-blending which caused the blending modes to be useless.
- NLA buttons now use proper poll callbacks instead of defining checks
- Commented out missing operator in menus, silencing warnings in console
- Removed obsolete/incorrect comments
|
|
* removed coercing types which has been removed from py3.
* matrix uses getset's rather then getset items.
* removed deprecated functions.
|
|
|
|
(or like before).
|
|
(you know which one I'm talking about).
|
|
Missing { when WITH_LCMS is defined.
|
|
Merging changes made by Arystanbek in the soc-2009-kazanbas branch,
plus some things modified and added by me.
* Operator exec is called execute in python now, due to conflicts
with python exec keyword.
* Operator invoke/execute now get context argument.
* Fix crash executing operators due to bpy_import_main_set not being
set with Main pointer.
* The bpy.props module now has the FloatProperty/IntProperty/
StringProperty/BoolProperty functions to define RNA properties for
operators.
* Operators now have an __operator__ property to get the actual RNA
operator pointers, this is only temporary though.
* bpy.ops.add now allows the operator to be already registered, it
will simply overwrite the existing one.
* Both the ui and io directories are now scanned and run on startup.
|
|
Merging changes made by Arystanbek in the soc-2009-kazanbas branch,
plus some things modified and added by me.
* The API files now all in the makesrna module, convention is to
call them e.g. rna_mesh_api.c for rna_mesh.c. Note for visual
studio build maintainers, the rna_*_api.c files are compiled as
part of "makesrna", but do not have rna_*_gen.c generated as part
of the library. SCons/cmake/make were updated.
* Added function flags FUNC_USE_CONTEXT and FUNC_USE_REPORTS, to
allow RNA functions to get context and error reporting parameters
optionally. Renamed FUNC_TYPESTATIC to FUNC_NO_SELF.
* RNA collections now have a pointer to add/remove FunctionRNA's, this
isn't actually used anywhere yet, purpose is to make an alias
main.meshes.add() for main.add_mesh() in python.
* Fixes to make autogenerating property set/get for multidimensional
arrays work, though a 4x4 matrix will be exposed as a length 16
one dimensional RNA array.
* Functions and properties added:
* Main.add_mesh()
* Main.remove_mesh()
* Object.matrix
* Object.create_render_mesh()
* WindowManager.add_fileselect()
|
|
* Update cmake and makefiles to link python generic.
* Fix game engine building for cmake and makefiles.
* Fix compile error with py 3.x, due to 2.x compat fix.
|