Commit Graph

6129 Commits

Author SHA1 Message Date
Campbell Barton
551d1a1ed5 Code cleanup: style 2014-03-24 13:14:19 +11:00
Antony Riakiotakis
e732c5809c Detail sampling operator
Located on topology panel.

To use just click on button and click on mesh.
Operator will just use the dimensions of the triangles below to set the
constant detail setting.

Also changed pair of scale/detail size with nice separate float
percentage value.
2014-03-22 23:35:41 +02:00
Antony Riakiotakis
0ef416722e Flood fill for dyntopo constant detail mode.
Nothing spectacular here, fill tools are easy. Just take the dyntopo
code and repeat until nothing more to do.

The tool can be located in the dyntopo panel when the dyntopo constant
detail is on.

Also added scale factor for constant detail. This may change when detail
sampling gets in, I am not very happy with having two numbers here,
still it will give some more control for now.
2014-03-22 17:47:18 +02:00
Joshua Leung
daccaa713b Patch T22084: Robert Penner Easing Equations for FCurves
This commit introduces support for a number of new interpolation types
which are useful for motion-graphics work. These define a number of
"easing equations" (basically, equations which define some preset
ways that one keyframe transitions to another) which reduce the amount
of manual work (inserting and tweaking keyframes) to achieve certain
common effects. For example, snappy movements, and fake-physics such
as bouncing/springing effects.

The additional interpolation types introduced in this commit can be found
in many packages and toolkits (notably Qt and all modern web browsers).
For more info and a few live demos, see [1] and [2].


Credits:
* Dan Eicher (dna)              - Original patch
* Thomas Beck (plasmasolutions) - Porting/updating patch to 2.70 codebase
* Joshua Leung (aligorith)      - Code review and a few polishing tweaks

Additional Resources:
[1] http://easings.net
[2] http://www.robertpenner.com/easing/
2014-03-22 03:00:27 +13:00
Campbell Barton
27e86ed832 Code cleanup: use bools 2014-03-20 22:56:28 +11:00
Sergey Sharybin
9767ff8916 Code cleanup: use true/false in sequencer functions 2014-03-20 15:46:38 +06:00
Campbell Barton
30fdfc37dd Fix for crash generating docs (enums with only callbacks) 2014-03-20 19:17:47 +11:00
Bastien Montagne
7698322846 Usual UI messages fixes... 2014-03-19 15:25:32 +01:00
Bastien Montagne
1f63b0807b Fix bpy.types.Operator.bl_rna.foobar not working since rBfe094eaf20.
When path to resolve "finishes" on a collection prop, do not erase the returned prop!

This caused py's path_resolve to return same PointerRNA as the one passed as parameter, leading to
inifinte recursion in Operator's accessor func (__getattribute__)...
2014-03-19 12:50:17 +01:00
Bastien Montagne
74d98115ca Cleanup: factorize RNA accessor code of modifiers (saves over 160 lines of dummy code!)
Reviewers: campbellbarton

Reviewed By: campbellbarton

Differential Revision: https://developer.blender.org/D364
2014-03-18 19:23:12 +01:00
Antony Riakiotakis
06de5be90e Fix T39228 Gamma/lift/gain are burned out in the circular color pickers
and value/lightness slider stops midway.

Issue here is manyfold:

Color wheel does not support properties with different soft min/max
values than 1.0 (which after experimenting a little I left as is), and
also color management is completely destroying the mapping between the
value slider and the RNA property value range. To solve this I have
disabled color management by setting the property to gamma corrected
(only in RNA, Sequence editor coders please check!), otherwise it will
just become a big mess of tracking where color comes from and what kind
of color transforms it needs in different color pickers (if property has
non normalized range etc). HSL is not really meant to represent colors
outside a normalized space so I have disabled setting lightness above
1.0 in this model.

This will work, however it is hacking a color picker to do something
other than what it is supposed to do: pick a color from the screen
accurately. Which means normalized values always. The non normalized
colors picked for lift/gain/gamma through the pickers do not correspond
to any accurate colors; they are rather a user friendly way to 'sort of'
choose a color and a gamma with an indication of maximum value.

I think that lift/gamma/gain nodes need a dedicated widget for this
(besides it is quite clear that some options are written for that use
case) -or- a separate gamma multiplier for the picked color (which
should itself be in a normalized space)
2014-03-18 01:08:36 +02:00
Campbell Barton
a861e5572a UI: Add theme color for viewport overlay
Was using wire or black in many places, this color is used for cursor,
camera guides, transform helper lines. So its possible to have a dark
background with light overlay color.

Patch D331 by Brita, with some edits.
2014-03-18 05:40:18 +11:00
Campbell Barton
2097e621ed Code cleanup: use r_ prefix for return args 2014-03-16 03:26:23 +11:00
Antony Riakiotakis
f19899b474 Disable color picker template cubic parameter by default.
This is mostly useful for precision in lift/gamma/gain nodes. Display of
those values is done with linear interpolation while saturation is
interpolated cubically. This will lead to color inconsistency between
selected and displayed color on color pickers for instance, which should
be avoided on those use cases.
2014-03-14 02:11:34 +02:00
Campbell Barton
032b42d48d Code cleanup: de-duplicate switch statement, style edits 2014-03-13 06:31:06 +11:00
IRIE Shinsuke
fbf859518a Followup for fix T38318: Add back previous fix and fix a glitch.
The previous fix 162d6c73e3 has been cancelled because it caused a
problem that mesh deform cages and so on mess up the preview. To avoid
the problem, viewport doesn't show mesh object if its draw type is
bounding box or wireframe.

Reviewers: brecht

Reviewed By: brecht

Differential Revision: https://developer.blender.org/D375
2014-03-13 03:46:44 +09:00
Campbell Barton
d7824e435f Fix possible (unlikely) use of uninitialized pointer in RNA resolving 2014-03-13 04:18:50 +11:00
Antony Riakiotakis
bce924b43c HSL color wheel implementation.
This is a standard Hue - Saturation - Lightness model
(see for instance entry on wikipedia here: https://en.wikipedia.org/wiki/HSL_and_HSV)
Note though the difference between HSV and HSL saturation, which are not the same.

The advantage of having this color selection scheme is that artists can select
shades and tints of a color easily by using the lightness slider. Also colors
are arranged on (approximated) perceived lightness on the color wheel.

Beware, Old files opened with this preference saved will crash!

Reviewers: sergey, brecht, campbellbarton

Differential Revision: https://developer.blender.org/D385
2014-03-12 18:58:50 +02:00
Bastien Montagne
a2ffd8e423 Fix T39028: Quadview views inaccessible with python except bottom right view.
Expose all four quadviews in a collection in RNA API.

Note the region returned by old region_quadview property is now region_quadviews[2].
2014-03-11 15:22:09 +01:00
Lukas Tönne
a6bdad699c Fix T39080: copy-to-selected operator fails for pointer properties.
The copy-to-selected operator for RNA buttons uses paths for copying
object pointer properties. Copying other ID data blocks is deliberately
disabled:
https://developer.blender.org/diffusion/B/browse/master/source/blender/editors/interface/interface_ops.c$274

However, the RNA_path_resolve_full function is not properly working for
retrieving pointer properties: it always will dereference pointer
properties in anticipation of further path elements.

In fact the return value of RNA_path_resolve_full has a conflicting
double meaning. It returns `false` when
* the RNA path is invalid
* any of the pointer properties is NULL

This means that it is not capable of returning pointer properties at all.
To make this possible, there is now an internal function for path
parsing, which returns false //only// if the the path is invalid.
On top of this there are 4 wrapper functions for retrieving either
actual property values (RNA_path_resolve, RNA_path_resolve_full) and for
retrieving pointer+property pairs (RNA_path_resolve_property,
RNA_path_resolve_property_full). The latter 2 variants will **not**
dereference pointer properties at the end of the path, so callers can
actually get the property itself. The `***_full` variants include an
array index return value.

Differential Revision: https://developer.blender.org/D396
2014-03-11 14:58:53 +01:00
Lukas Tönne
658f37acd7 Minor cleanup: use rna_ prefix for path_resolve_* functions for
consistency.
2014-03-10 12:46:01 +01:00
Lukas Tönne
fe094eaf20 Cleanup for RNA_path_resolve_full.
* Moved collection key parsing and array index parsing into their own
functions, to make the main path loop easier to follow.
* Unified boolean return values.
2014-03-10 12:26:50 +01:00
Tamito Kajiyama
6fdbab4366 Minor code cleanup. 2014-03-09 22:25:37 +09:00
Thomas Dinges
36279afbd3 Cycles: Compile fix and some cleanup for the Image interpolation commit. 2014-03-08 00:23:45 +01:00
Martijn Berger
dd2dca2f7e Add support for multiple interpolation modes on cycles image textures
All textures are sampled bi-linear currently with the exception of OSL there texture sampling is fixed and set to smart bi-cubic.

This patch adds user control to this setting.

Added:
- bits to DNA / RNA in the form of an enum for supporting multiple interpolations types
- changes to the image texture node drawing code ( add enum)
- to ImageManager (this needs to know to allocate second texture when interpolation type is different)
- to node compiler (pass on interpolation type)
- to device tex_alloc this also needs to get the concept of multiple interpolation types
- implementation for doing non interpolated lookup for cuda and cpu
- implementation where we pass this along to osl ( this makes OSL also do linear untill I add smartcubic to the interface / DNA/ RNA)

Reviewers: brecht, dingto

Reviewed By: brecht

CC: dingto, venomgfx

Differential Revision: https://developer.blender.org/D317
2014-03-07 23:16:33 +01:00
Joshua Leung
84bed52ac3 Some initial tooltips for FModifiers
These are quite rough and could use some more attention to read better
2014-03-08 02:16:03 +13:00
Joshua Leung
bea5ad517c Added tooltips for various F-Curve RNA defines 2014-03-08 02:16:02 +13:00
Joshua Leung
3e26a7a594 Fix T38774: Changing extrapolation type via RNA doesn't update FCurve
- Added update callback to perform on-update validation when changing the
  extrapolation mode on F-Curves
- There was a patch in the tracker for adding an "update()" method to F-Curves
  which does a similar thing when manually called by scripts. Since we've added
  a function for this in RNA anyways, we might as well add this too while we're
  at it. (NOTE: upon closer inspection, the original patch by Tom Edwards had a
  number of issues, so I ended up reimplementing here)
2014-03-08 02:16:01 +13:00
Joshua Leung
6e7ce9770f Fix T38774: Added missing notifier flags for updating F-Curve after changing extrapolation from RNA 2014-03-08 02:16:00 +13:00
Joshua Leung
5e18eea02c Code cleanup - Extra comments + Reshuffling a few methods 2014-03-08 02:16:00 +13:00
Joshua Leung
c31c8fa14e Fix T39015: NLA Clip Auto Blend In/Out Check Box Not Working
Fix for regression accidentally introduced in 5f18d863a9 (affecting current 2.70 rc-1)
which means that this setting wasn't working anymore at all.
2014-03-07 19:11:53 +13:00
Campbell Barton
03af4cbf91 Code cleanup: style 2014-03-07 13:28:39 +11:00
Antony Riakiotakis
03afa6f9e7 Experimental dyntopo feature:
Dyntopo detail in object space. This allows to set the detail in
percentage of blender units and sculpt in this detail constantly,
regardless of the distance to the mesh.

This commit just enables the functionality, which is really trivial.
There will be some more commits like detail flood fill and
detail sampling in the future.
2014-03-06 20:15:44 +02:00
Campbell Barton
46682d8812 Icon for LineStyle
patch T37008 from Michael P.
2014-03-04 04:22:32 +11:00
Sergey Sharybin
d971c5785e Fix root of the issue of bad_cast bug in localization
No need to call l10n stuff when it's disabled in the preferences.

Reviewed by @mont29, thanks!
2014-02-27 15:07:25 +06:00
Antony Riakiotakis
b9f14ea56b Fix T36654.
There is a key conflict between grease pencil shortcuts and sculpt
shortcuts (D and ctrl D were taken by draw brush and dyntopo toggle,
respectively). Based on feedback, change dyntopo toggle to ctrl-T and
draw brush to X.

Also add missing property update for dyntopo detail size.
2014-02-27 09:39:39 +02:00
Campbell Barton
5e7f995b08 Fix: 'F-Curve Editor' popup text was truncated. 2014-02-27 16:18:42 +11:00
Campbell Barton
8af2ed80a4 RNA: rename matrix_for_frame -> matrix_from_frame 2014-02-27 08:39:25 +11:00
Brecht Van Lommel
0fa832bed2 Fix T38855: DIRECTORY_PATH vs. DIR_PATH inconsistency in python API docs. 2014-02-26 18:56:00 +01:00
IRIE Shinsuke
49e8cfd809 Further work to fix T38726: signal viewport to update when adding/removing render layers.
Reviewers: brecht

Differential Revision: https://developer.blender.org/D346
2014-02-26 18:41:06 +01:00
Sergey Sharybin
3b44ca08a9 Fix 3D tracks to mesh not aligning mesh properly
Also fixed wrong frame number used for reconstructed object
visualization in 3D viewport.
2014-02-26 19:40:04 +06:00
Sergey Sharybin
70924a7b2e Fix T38548: Edit externally always uses first frame only 2014-02-26 10:58:14 +11:00
Brecht Van Lommel
593d856217 Fix T38836: change screencast timer limits so you can record with higher FPS.
Note that the screencast implementation is quite poor and that you may not even
get the requested FPS, the timing system here is not reliable.
2014-02-25 21:49:38 +01:00
Sergey Sharybin
f2309ba579 Fix T38824: curve which is constrained on a hidden layer causes cycles crash
Issue was caused by cycles setting scene frame which will update scene for
all the layers (not just visible ones) which confuses depsgraph making
objects which are needed as dependency are not really evaluated.

Made it so setting frame via scene.frame_set() which check whether update
need to be flushed to an invisible objects and do this if so.

Not ideal solution but seems to be safest at this point.
2014-02-25 15:52:56 +06:00
Sergey Sharybin
bf547a1983 Fix T38806: Proxy file changes don't update until Blender's restart 2014-02-25 13:50:01 +06:00
Campbell Barton
44e53c82d2 Object disable negative object dimensions
these would become positive on update
2014-02-25 18:35:55 +11:00
Brecht Van Lommel
7ef1ed15f1 Fix T38766: blender material transparency setting not taken into account for viewport. 2014-02-24 15:44:22 +01:00
Campbell Barton
7078fb936a Fix T38800: Setting UV projector caused zero user objects
Don't change user count when setting modifier objects
2014-02-24 21:36:16 +11:00
Campbell Barton
cb1b6b549e Fix T38769: Python missing access to text materials 2014-02-23 18:38:08 +11:00
Campbell Barton
b7fa08f88a Code cleanup: style 2014-02-22 11:14:15 +11:00