Commit Graph

1263 Commits

Author SHA1 Message Date
Sergej Reich
c82213359a rigidbody: Add motor constraint
It's implemented as a separate constraint instead of adding properties
to the existing constraints.
Motors only apply linear and angular impulses and don't limit the
movement of rigid bodies, so it's best to use them in conjunction with
other constraints to limit the degrees of freedom.

Thanks to Markus Kasten (markus111) for the initial patch.
2013-02-23 23:04:07 +00:00
Campbell Barton
a9e25ac433 Toggle-Drag UI Feature
Dragging on toggle buttons can now be used to press multiple buttons at once, especially useful for layer and outliner buttons.


notes:
- automatically enabled for all toggle buttons
  (may change this if it becomes a problem).
- only buttons of the same type are pressed
  (helps avoid annoyances eg; dragging past layer buttons onto other 3d header buttons and pressing by accident).
- automatic axis locking - dragging will lock to X/Y depending on the initial drag direction,
  makes swipe motions work better, especially with the outliner.


implementation details:
- may re-implement as a region handler (currently its a modal operator).
- checking buttons in-between cursor motion events could be more efficient (but currently works ok).
- button execution needs to be improved
  (currently executing a button thats not under the mouse needed a workaround for passing uiHandleButtonData),
  requires further changes to UI code, will do next.
2013-02-22 05:56:20 +00:00
Campbell Barton
b00c3b801b new weight paint draw option to display unweighted vertices with the option to check on the active group or all groups.
notes:
- vertices with zero weights are considered the same as vertices outside of a group.
- currently these show black but this can be made a theme color.
- multi-paint overrides this option (noted in description)
2013-02-22 04:09:04 +00:00
Joshua Leung
e663f24978 Expose a few more operators for curves on the toolbar. Some of these were
previously not available anywhere.
2013-02-22 02:10:41 +00:00
Joshua Leung
0215911a9b Animation Editors: Operators to Group/Ungroup Selected F-Curves
This commit introduces operators to customise the grouping of F-Curves. As
groups are only available in Actions, these grouping operators only work in the
Dopesheet, Action Editor, and Graph Editor (Animation) modes.

To Use:
* Ctrl-G = Group selected F-Curves
* Alt-G  = Ungroup selected F-Curves
* or find these tools from the Channels menu

Notes:
* When invoking the grouping operator from the Channels menu, the name popup
won't show up. Instead, the group(s) created will be created with the default
name. To fix, you can either use the F6 operator properties edit OR manually
edit the names (Ctrl-LMB on the relevant channel)
2013-02-22 01:49:51 +00:00
Sergej Reich
822a06920b rigidbody: Move "Enabled" checkbox out of rigid body panel header
Rename it to "Dynamic" to make it more obvious that it switches between
static and dynamic state.
Also don't show it for passive rigid bodies since it's redundant in that
case.
2013-02-21 19:04:34 +00:00
Howard Trickey
0a6e8a41b9 Enable new bevel tool code in bevel modifier.
Now modifier takes a segments parameter.
Bevel edge weights will multiply the overall amount.
For vertex-only, you can give a vertex group name,
and the weights in that will multiply the overall amount.
2013-02-21 17:29:35 +00:00
Thomas Dinges
442d16b468 Fix for [#34308] only half width of material list row is used for material name.
* Issue was caused in r54393.
2013-02-18 23:41:28 +00:00
Bastien Montagne
d7058f12e5 Make list_id mandatory when using default UI_UL_list class for a template_list. 2013-02-18 14:03:26 +00:00
Bastien Montagne
5c5b753779 Fix [#34300] Slider for list of particle systems (keyed particles) is not doing anything. Navigating a list of more than 5 elements requires keyboard.
Systematically adding some custom id to template_list using default UI_UL_list class, this one is commoly used more than once in an area, yielding collision issues if they do not have a custom id...
2013-02-18 13:30:40 +00:00
Bastien Montagne
c524b47912 Another huge bunch of UI translation fixes, mostly reported by Leon Cheung, Sv.Lockal, Gabriel Gazzán and Satoshi Yamasaki, thanks! 2013-02-17 13:56:49 +00:00
Monique Dewanchand
9cd01c6a5c Added option for group node buffering in the compositor.
Justa cluster did not have enough memory to handle all Mango 4k scenes.
Option is default disabled and can be enabled in the performance panel.

 - At Mind -
2013-02-16 20:21:41 +00:00
Bastien Montagne
313df262e3 Fix [#34253] UIList resize, resizes wrong list I/II
When using default UI_UL_list, one should always spully a custom ID, else collision inside an area are quite likely...
2013-02-15 08:32:25 +00:00
Bastien Montagne
43f4f807d9 Fix physics' name not translated in main physics panel (reported on bf-translations ML).
This also revealed another bug, as you could not explicitely set default context to text_ctxt UI func parameter (None is not accpeted by RNA string props), so I had to change default context from py POV to "*" instead of None.

Anyway, that physics UI translation remains weak, as the trick used here (helper func) prevents message extractor script to directly find them. Currently it works because specified labels are also defined elsewhere, but it would be nice to have some kind of "translation markers" in py code too (similar to our N_/CTX_N_ C macros, unfortunately python does not have preprocessing ;) )...
2013-02-13 11:52:01 +00:00
Bastien Montagne
027a426c4d Add translation of stats/info string. 2013-02-12 07:32:17 +00:00
Bastien Montagne
d0f4a2396b Actually, UI scripts should not use directly pgettext, but rather the iface or tooltip variants. Added those to bpy.app.translations, and used pgettext_iface.
(Did not add those when I created that module, because I did not thought we would actually need them in usual UI code, but turned out I was wrong).

Also made some optimizations in those py gettext funcs, when i18n is disabled at build time, no need to do pyobject -> cstring -> pyobject conversions!.
2013-02-10 10:29:38 +00:00
Campbell Barton
3b8a0f3d67 use import rather then assignment for loading '_' into scripts. 2013-02-10 09:56:05 +00:00
Bastien Montagne
c0fa16f2c9 Another fix for r54414 (cleaner to "import" pgettext once at top of files, also now using usual '_' shortcut). 2013-02-10 09:09:26 +00:00
Campbell Barton
5d4df1a999 pep8 cleanup 2013-02-10 08:54:10 +00:00
Campbell Barton
63af7068ad revert removal of ternary operators from r54414 2013-02-10 08:26:48 +00:00
Bastien Montagne
82c86af7f7 Bunch of fixes for py ui messages (all those using 'formating' were not translated previously, now they use bpy.app.translations.pgettext). Also pleas avoid complex py statements in 'text' values (like 'text="foo" if cond else "bar"'), thes make message extraction script fails!
And another "final point in UI message" removal!
2013-02-09 18:26:40 +00:00
Campbell Barton
d26c063121 disable translations for some python buttons. 2013-02-08 16:41:02 +00:00
Bastien Montagne
23aa0c9067 Fix uilists showing data names translated (reported on bf-translations ML by Satoshi Yamasaki aka yamyam, thanks!). 2013-02-08 16:01:21 +00:00
Ton Roosendaal
a3bd7de8a3 Added warning below MultiSample User Preference option for Linux systems.
(All 8 reports in tracker for selection failures were linux...)
2013-02-08 13:15:30 +00:00
Ton Roosendaal
1dfb6404b7 Release todo: added userpref for Mac users having "Natural Scroll" set.
As per discussion and analysis of all trackpad usage, we now
follow this convention:

- Blender follows system setting for trackpad direction preference.

- If you set your system to "natural" scroll, we need to invert a couple
  of cases in Blender we do "natural" already. Like:

   - view rotate (the inversed option just never feels ok)
   - scroll active items in list or pulldown menu (up/down is absolute)
   - ALT+scroll values in buttons (up/down is absolute)

The new User Preference setting "Trackpad Natural" handles this.

For 2.66 we only have trackpad handling for OS X... so this isn't
affecting trackpad usage in Windows and Linux, which stick to be mapped
to Scroll Wheel still.

(Note: viewrotate now is "natural" always, changing how it worked in the
past weeks).
2013-02-08 12:12:57 +00:00
Campbell Barton
08326778c5 use sys.platform for checking the OS. 2013-02-08 11:23:22 +00:00
Campbell Barton
26ee2a1f79 patch [#33886] Combine Dissolve Menu with Delete Menu 2013-01-30 05:19:27 +00:00
Brecht Van Lommel
df53f46065 Fix #34031: in the keymap editor, Timer and Text Input types did not show field
to edit the operator name.
2013-01-29 17:30:30 +00:00
Joshua Leung
cf9e619889 Skeleton Sketching bugfixes/tweaks
* Disabling Skeleton Sketching now refreshes the view properly, so that strokes
don't linger on even after being disabled
* Added the delete operator to the panel
2013-01-29 03:04:24 +00:00
Joshua Leung
d6b166d1a1 Bugfix [#34012] Skeleton Sketching settings unclear
Although the bug report here wasn't exactly clear about what exactly was wrong,
it soon became apparent that the UI stuff here was in need of some love.

Changes:
* Ported over missing tooltips from 2.49 (i.e. most of them)
* Fixed a few incorrect tooltips (mostly the subdivision length settings)
* Made the autonaming and number/side settings slightly clearer - number/side
are used to replace placeholders in the names of template bones (&N and &S
respectively) when autonaming is disabled. When it is enabled, these values are
determined automatically.
2013-01-29 02:00:33 +00:00
Pablo Vazquez
56f82655ed Window menu: Make Screencast (should be Save?, to match screenshot?) option.
Thought of setting the operator context before so it wouldnt invoke the confirmation dialog, but better leave it by default to confirm since it might be clicked by mistake and start dumping video/image-sequence and can get annoying.
2013-01-29 01:43:03 +00:00
Pablo Vazquez
12a4a84ee5 Info Editor: Adding Save Screenshot option to the Window menu, was only available through search or shortcut (CTRL+F3) 2013-01-28 23:06:27 +00:00
Bastien Montagne
6fdaa9c99a Fix [#34023] r54146 breaks name-display of default "UI_UL_list"
draw_item *is* optional (it then uses default C function), even though there is not much sense to register a class without it, except for our default UI_UL_list!
2013-01-28 18:46:04 +00:00
Lukas Toenne
0bf264f7ef Fix for errors caused by fixing RNA function register flags. Default UIList class now has a dummy draw_item callback. Panel draw_header is now optional (most panel classes don't define it). 2013-01-28 12:18:00 +00:00
Dalai Felinto
0976a780eb BGE UI: removing "use_occlusion_culling" from the ui
(and marking rna as deprecated)

I talked with Benoit Bolsee and Mitchell Stokes and they both agreed that
the feature should be removed.

In case someone was actually using it the rna is still available. But next
release we remove both the rna, the DNA and the flag in the code.

I did a simple benchmark with tons of cubes, and the DBVT culling (use_occlusion_culling=True)
always perform better than when it's off. Even when no occluder objects are in the scene.
2013-01-27 19:57:47 +00:00
Bastien Montagne
a2e55171fe Bunch of fixes for UI messages.
Also generate rigid body constraint types in py bullet code from RNA enum values (simpler than having to sync the code when something is changed here!).

Side note: RNA API about icons still needs to expose icons for enum values, and conversion funcs between icon_name and icon_value!
2013-01-27 18:14:24 +00:00
Ton Roosendaal
2545e832e2 Pack UI:
Oops! So there was an Unpack button, hidden in the Nkey properties of Image window.
This was drawn next to greyed-out buttons, didn't notice it well.

I also now found the unpack() menu in editors/util, and there's an Image unpack op.
Also the RNA api has an unpack!

Will remove the generic unpack op, and add a sound and vfont unpack instead.
2013-01-27 17:20:08 +00:00
Campbell Barton
296f91c4cc add 'deform - integrate' option to mesh-cache,
This means the deformation on the input to the modifier can be re-applied ontop of the mesh cache.

In practice this is most useful for using corrective shape-keys with mesh-cache.
2013-01-24 04:02:30 +00:00
Ton Roosendaal
17b1c19054 UI todo:
Added "Panel Title" style to Theme settings.
Allows to make these nice larger or draw differently.

Also tried to put hinting in Style, but this needs to be a per-font
setting. uiFont data is still not being saved (also not allowing
to set own font files for UI). That's a todo for 267 then.
2013-01-23 16:01:35 +00:00
Sergej Reich
90a97a4710 rigidbody: Fix constraint buttons only showing for mesh objects
Was silly indentation mistake.
2013-01-23 13:45:52 +00:00
Ton Roosendaal
3e6892e18f File Menu, "Save startup file" no asks for save-over confirm.
Being a destructive action (and there are no versions saved as backup) it's an
OK convention to prevent accidents.
2013-01-23 12:08:23 +00:00
Thomas Dinges
be21034ae4 UI / Layout scripts:
* Code cleanup for new Rigid Body panels. 
* Removed some unneeded split() calls.
* Remove redundant check for "ob.rigid_body_constraint" in the draw() function of the "Rigid Body Constraint" panel. The check is already made in the poll.
2013-01-23 11:40:35 +00:00
Campbell Barton
45fb9f9f09 scene panel for rigid body - remove operator isnt greyed out when rigidbody is disabled 2013-01-23 08:07:39 +00:00
Campbell Barton
6b51bb39c8 move rigidbody toggle into the header for scene and objects. 2013-01-23 07:42:28 +00:00
Sergej Reich
47c96081d0 rigidbody: Add rigid body constraints
Constraints connect two rigid bodies.
Depending on which constraint is used different degrees of freedom
are limited, e.g. a hinge constraint only allows the objects to rotate
around a common axis.

Constraints are implemented as individual objects and bahave similar to
rigid bodies in terms of adding/removing/validating.

The position and orientation of the constraint object is the pivot point
of the constraint.

Constraints have their own group in the rigid body world.

To make connecting rigid bodies easier, there is a "Connect" operator that
creates an empty objects with a rigid body constraint connecting the selected
objects to active.

Currently the following constraints are implemented:
* Fixed
* Point
* Hinge
* Slider
* Piston
* Generic

Note: constraint limits aren't animatable yet).
2013-01-23 05:56:56 +00:00
Sergej Reich
cdc8ed24bf rigidbody: Add "Copy Rigid Body Settings" and "Bake To Keyframes" operators
Based on a script by liero, thanks!
2013-01-23 05:56:49 +00:00
Sergej Reich
2d8637946b rigidbody: Add rigid body simulation
Add operators to add/remove rigid body world and objects.
Add UI scripts.

The rigid body simulation works on scene level and overrides the
position/orientation of rigid bodies when active.
It does not deform meshes or generate data so there is no modifier.

Usage:
* Add rigid body world in the scene tab
* Create a group
* Add objects to the group
* Assign group to the rigid body world
* Play animation
For convenience the rigid body tools operators in the tools panel of the 3d view
will add a world, group and add objects to the group automatically so you only have
to press one button to add/remove rigid bodies to the simulation.

Part of GSoC 2010 and 2012.
Authors: Joshua Leung (aligorith), Sergej Reich (sergof)
2013-01-23 05:56:44 +00:00
Sergej Reich
089cf12435 rigidbody: Add point cache support
Add read/write/interpolate functions.

In order to get rigid body point cache id from object it's now required to pass the
scene to BKE_ptcache_ids_from_object().

Rigid body cache is drawn in the orange color of the bullet logo.
2013-01-23 05:56:34 +00:00
Dalai Felinto
13f890a26c Game Engine UI: Image Sampling Texture Panel cleanup
removing non-GE supported features.

The idea of splitting the draw() function comes from Campbell Barton.
Review from him as well.

The main reason for not implement this in properties_games.py is to make sure the
panel is in the same order for both BI and BGE engines.
2013-01-22 18:42:16 +00:00
Ton Roosendaal
e11d22a6b7 Matcap support in 3D Viewport.
Full log is here:
http://wiki.blender.org/index.php/Dev:Ref/Release_Notes/2.66/Usability#Matcap_in_3D_viewport

Implementation notes:

- Matcaps are an extension of Solid draw mode, and don't show in other drawmodes.
  (It's mostly intended to aid modeling/sculpt)

- By design, Matcaps are a UI feature, and only stored locally for the UI itself, and
  won't affect rendering or materials.

- Currently a set of 16 (GPL licensed) Matcaps have been compiled into Blender. 
  It doesn't take memory or cpu time, until you use it.

- Brush Icons and Matcaps use same code now, and only get generated/allocated on
  actually using it (instead of on startup).

- The current set might get new or different images still, based on user feedback.

- Matcap images are 512x512 pixels, so each image takes 1 Mb memory. Unused matcaps get 
  freed immediately. The Matcap icon previews (128x128 pixels) stay in memory.

- Loading own matcap image files will be added later. That needs design and code work 
  to get it stable and memory-friendly.

- The GLSL code uses the ID PreviewImage for matcaps. I tested it using the existing
  Material previews, which has its limits... especially for textured previews the
  normal-mapped matcap won't look good.
2013-01-22 11:18:41 +00:00