Commit Graph

17765 Commits

Author SHA1 Message Date
Thomas Dinges
db164d8849 Sequencer:
* It's now possible to set the scene for a scene strip.
2009-11-22 21:16:04 +00:00
Peter Schlaile
2c461af8a3 == Sequencer ==
Broad back SCENE-rendering. (Hopefully did everything right)

Still missing: UI part (one can't select a scene, neither on add nor
in N-keys dialog...)
2009-11-22 20:49:13 +00:00
Martin Poirier
4f21b1fcba Adding undo flag to the python run flag operator.
It's safer this way.
2009-11-22 20:26:54 +00:00
Andrea Weikert
c0a6d07212 filebrowser
* fix typo in operator property
* respect user setting for hide dot files
2009-11-22 20:24:36 +00:00
Peter Schlaile
42f99939f6 == Sequencer ==
This should make animations in sequencer work again at most
places.

It removes facf0 and facf1 and replaces them by

* effect_fader (the fader position for transition effects
  limited 0-1 value range)
* speed_fader (full range fader for speed effect)

Also: default transitions should work again.

Still not working: non-IPO-locked curves. (Don't really know,
if we can / want to bring them back in new animation system.)
2009-11-22 20:22:35 +00:00
Peter Schlaile
aa77377052 == Sequencer ==
seqUniqueName() call was missing for effect strips.
2009-11-22 17:58:33 +00:00
Brecht Van Lommel
1295a213a4 2.5: Emulate numpad works again. 2009-11-22 16:33:47 +00:00
Campbell Barton
20dc752e14 missing decref from patch #19258 2009-11-22 14:57:19 +00:00
Campbell Barton
c36f78dd41 [#19258] [patch] Adding drawing capabilities to BGE Python
patch from Mitchell Stokes (moguri)

simple use case
 scene.post_draw = [pyOpenGLFunc]

this only needs to be set once, then the funcion runs each redraw.

note, this patch also changes how python scripts run (not modules): Dont clear the namespace after running a script, since functions still use the namespace, BGE API is now better when dealing with stale data.

made some changes to this patch.
- assigning a list didnt decrement the existing list.
- initialize as NULL rather then a blank list
- dont use string comparisons for the callbacks, pass the python list to use instead.
- dont check the list items are callable. python will display an error if they are not.
- use python list macros that dont do any type checking sine blender does this when assigning the list

---- from tracker, edited since an updated patch changes some things.
Here is a patch to be able to draw to the screen with BGE Python. This will be very handy for GUI stuff. This patch
works by having the user register a callback in the scene. Two options are available KX_Scene.pre_draw
and KX_Scene.post_draw. The difference between these is when Python draws to the screen (before or after the BGE).
Each can take a list of functions. Here is an example that draws a blue semi-transparent
2009-11-22 14:42:22 +00:00
Matt Ebb
8be7b757e3 * New option on modifiers that don't change topology: Apply as Shape
Rather than applying the modifier to the object data, it will create a new shape 
with the deformed vertices in there. Only mesh at the moment, other object 
types on the todo.
2009-11-22 13:44:09 +00:00
Andrea Weikert
8fdaa263c0 MSVC 9 projectfiles
* Added GLEW_STATIC where necessary to make Blender compile again
* First attempt at compiling blenderplayer again - compiles, but doesn't link yet 
* removed deprecated SND_ functions from blenderplayer
2009-11-22 13:15:36 +00:00
Joshua Leung
0fe908181e Just a few compiler warnings... 2009-11-22 12:45:37 +00:00
Joshua Leung
220669d1fd Parenting and Deforms:
Parenting an object to some deformer (i.e. Armature, Curve, Lattice) now adds a new modifier if the object is deformable.

The advantages of this over setting PAR_SKEL mode are:
- instead of a hidden 'virtual' modifier, the user has direct feedback about what sort of modifier is being applied to deform
- most of the time in 2.4, whenever a virtual modifier was added, users would inevitably end up clicking "Make Real" on it

Of course, it's still possible to get 'virtual' modifiers by setting the parent type using the menu-property, but this just makes general setup easier.
2009-11-22 12:28:38 +00:00
Joerg Mueller
8e877c1f9f Added a first version of the Sound F-Curve Modifier, not really usable yet, but you can play around with it. 2009-11-22 12:10:45 +00:00
Joshua Leung
058454368a Small tweak to file-loading code for F-Curves so that F-Modifiers using library data get re-loaded correct 2009-11-22 11:15:38 +00:00
Campbell Barton
adb14a2247 remove template uiTemplate_view3d_select_faceselmenu 2009-11-22 10:02:32 +00:00
Matt Ebb
8f8d5d3bdc * Made particle painting use leftmouse, rather than actionmouse, consistent with other paint tools 2009-11-22 06:27:17 +00:00
Joshua Leung
6e5cf0f3ee Patch #19953: [2.5] repeated include entries in a number of SConscript files
Thanks for the patch Jeff Doyle (nfz)
2009-11-22 06:22:53 +00:00
Matt Ebb
8e76e2d09c * Re-implemented/refactored 3D View hooks menu.
Now shares the same operators as the modifier buttons, works context-sensitive, and uses Python menu too.

* Cleanups/tweaks in 3D View vertex group menu
2009-11-22 06:20:56 +00:00
Joshua Leung
bb43bee5f5 Missing Transform Menus + Buggy Object Operators:
* Added missing menus, 'Transform' and 'Mirror'
- mirror menu seems to be resulting in some memory leaks with RNA_enum_items_add len: 160 038832F8

* Apply Rotation operator for Objects now takes into account the different rotation modes
2009-11-22 06:19:30 +00:00
Joshua Leung
288a08849b Patch #19952: [2.5] repeated include entry in SConscript for blender/editors/armature
Second #/intern/guardedalloc include removed. Thanks Jeff Doyle (nfz) for the patch.
2009-11-22 02:59:52 +00:00
Joerg Mueller
e0e2c91879 Fixed minor sound UI errors. 2009-11-22 00:11:53 +00:00
Dalai Felinto
573be3e687 BGE: Removing OB prefix from object names - This will break scripts !!!! (also removing AC and ME :: internal changes only)
How it works now:
whenever you have to read/write object names you can do it without the prefix "OB". (it's not hard at all to fix scripts)

How it was before:
It was a mess :)
We had an inconsistent API where sometimes you had to input "OBname" and other "name" directly to assign object as data (usually in actuators).

Justification for the change:
Talking with Campbell we had since a while ago this feeling that this should be changed any time we were going to deprecate the API. So in order to deliver Blender 2.5beta0 with a more close-to-the-final API we decided that today was a good day to implement that.

Remaining issues:
1) VideoTexture uses IM or MA to identify the output material/texture. I haven't touched that, but it does look a bit off. (i.e. I didn't changed any MA, IM naming)
2) I didn't see the code of dynamic mesh. It may need to be edited as well.
2009-11-22 00:01:52 +00:00
Jens Ole Wund
7343de983e small fix
void SB_estimate_transform
no need for static now
2009-11-21 23:06:13 +00:00
Jens Ole Wund
70e38422d2 new property for soft bodies
sb->lcom   : Center Of Mass .. might be used to create loc IPO
sb_>lrot   : is a matrix[3] esitmates the roatation in world coordinates .. might be used to create rot IPO
sb_>lscale : is a matrix[3] esitmates the scaling   in world coordinates .. might be used to create scale IPO
(no python for that yet .. but may be matt has mercy on me )

can be cropped direclty  in soft body module by function 
static void SB_estimate_transform(Object *ob,float lloc[3],float lrot[3][3],float lscale[3][3])

The targets lloc,lrot,lscale should work to be NULL, just in case you don't need it. 

However i'd prefer if they were accessed via properties 
which should be calculated automagically if
sb->solverflags & SBSO_ESTIMATEIPO
is set, like they do in draw_sb_motion(..) in drawobject.c 

added static void draw_sb_motion(Scene *scene, Object *ob) to drawobject.c 
for debuggering (had a hard time with destructive matrix operations )
if it causes any trouble with your build on any OS make sure to comment that away.
softbody.c and DNA should compile fine in any case.
2009-11-21 22:45:25 +00:00
Dalai Felinto
d875f4927e patch [#19796] GLEW update by Mitchell Stokes (Moguri)
GLEW update to version 1.5.1 [11-03-08]
this opens room for Geometry Shader support.

* - Brecht, Campbell told me you did some local changes in order to make it right in Linux. I get to you in order to know what those changes are (or feel free to commit them directly)
2009-11-21 20:36:03 +00:00
Martin Poirier
75e82b5349 More macro goodness.
Macros now return finished if at least one operator in the macro finished properly. This is done to correctly insert an undo point.

This means that all the macros that combine with transform (extrude, loopcut, rip, duplicate) will correctly insert an undo step when transform is cancelled.
2009-11-21 19:49:11 +00:00
Guillermo S. Romero
ae7286bbf0 Uncomment header. 2009-11-21 19:26:02 +00:00
Campbell Barton
c60f635ead made the merge limit show more precission and use a lower step. 2009-11-21 18:12:45 +00:00
Dalai Felinto
d594388a28 rna bge fix: using dynamode instead of mode for Dynamic Material option: Align to Normal (it was using Material->Shadow Receive) 2009-11-21 17:50:08 +00:00
Campbell Barton
0ed0773eff fix for [#19943] Selected object border color incorect 2009-11-21 17:21:46 +00:00
Campbell Barton
f9d8145abe fix for [#19940] Remove vertex color layer and remove texture layer operators don't work
- only when in mesh editmode.
2009-11-21 17:16:00 +00:00
Campbell Barton
6f38938a64 [#19930] Nurb CV select is failing because of view clipping
- the clipping test function was using the rv3d->viewmatob where it needed to use the object matrix.
- added a local clipping member to rv3d, the clipping planes in object-space, avoids many matrix multiplications when testing verts or clipping pixels when projection painting.
2009-11-21 16:44:05 +00:00
Campbell Barton
bd1f548d8e fix for [#19655] Curve is a disaster
when changing curve twist I assumed 2D curves would not need dir or quat values set, however these are used when getting a path from a curve.
also added interp_v3_v3v3v3v3
2009-11-21 14:35:28 +00:00
Campbell Barton
09cf011879 patch from Dave Plater which fixes some problems building the BGE with cmake 2009-11-21 13:47:16 +00:00
Campbell Barton
455866ecf9 - added back Shift+Tab to toggle snap
- added curve tilt and shrink/fatten buttons into the toolbar
- fix typo in last commit for view3d snap header button
2009-11-21 13:01:28 +00:00
Campbell Barton
3d4fff3bc2 only show normal snap option in object mode 2009-11-21 12:44:09 +00:00
Campbell Barton
684405e0fb id properties for editbones and pose channels were not being freed in a number of cases,
added free_pose_channel(pchan) and use this in all places that free pose bones
2009-11-21 11:26:09 +00:00
Matt Ebb
d91e6e2160 * Made 'set active' vgroup menu fold out, rather than pop up new 2009-11-20 22:53:39 +00:00
Joshua Leung
d552c0ea5e Nodes Editor: Restored 'Show Cyclic Dependencies' Operator (CKEY) 2009-11-20 21:17:17 +00:00
Joshua Leung
03cfcc6007 Node Editor - More Cleanups (Reshuffling):
- removing duplicate chunks of code -> hide unused sockets now works
- moving some functions to the files that they get called from -> view all/home
- made duplicate a macro operator like the other places that work like this, eliminating the unnecessary transform-related property there still
- removed a few chunks of unused code
2009-11-20 21:04:41 +00:00
Campbell Barton
acf0fbbf70 left in print 2009-11-20 21:00:09 +00:00
Campbell Barton
34e7eb1676 use a metaclass to have operator attributes register and display in the order defined. 2009-11-20 20:58:46 +00:00
Campbell Barton
19aa69f6f2 use negative boolean option no_zbuf -> use_zbuf 2009-11-20 20:53:23 +00:00
Thomas Dinges
b751bc5ef2 * More small modifier improvements by nudelZ.
* Code cleanup.
2009-11-20 20:40:29 +00:00
Roland Hess
86f02c1353 RNA doc update. the "no_zbuf" flag in Defocus node was incorrectly doc'ed as "Use Zbuffer" when it really should be "Ignore Zbuffer". 2009-11-20 19:18:48 +00:00
Willian Padovani Germano
525a4ec6a5 Improvements to tab -> spaces conversions and use in the Text Editor:
- A single undo removes all 4 inserted spaces at once.
- Indent and unindent now use spaces.

The number of spaces is still hardcoded as 4. PS: Campbell sharing a couple of the minor todo's with me, thanks :).
2009-11-20 19:15:57 +00:00
Campbell Barton
e9a8db6e73 - dont define properties in the global script namespace
- set __file__ when running scripts (filename or textblock name)
2009-11-20 16:07:10 +00:00
Brecht Van Lommel
9aa8d06259 Fix for unitialized variable and resulting render artifacts
when setting project x/y/z to none with a procedural texture.
2009-11-20 15:07:16 +00:00
Campbell Barton
854cc87a80 option to have scripts run on startup for per blendfile UI's 2009-11-20 15:01:09 +00:00
Joshua Leung
0cb20be29a Armature Editing Fixes:
* Restored WKEY Specials Menu. Had a few problems initially with the name of the menu being 1 character too long; this needs more comprehensive API warnings

* Made Extrude Forked work again as a macro operator. Added another extrude macro for this, but ideally would have worked with a single macro + setting properties for that macro (can't do so due to bug 19733)
2009-11-20 11:49:47 +00:00
Damien Plisson
68eaae8e0e Quicktime-qtkit : encoding settings now in blender ui (encoding panel)
- added "QuicktimeCodecSettings" struct in DNA
- old "QuicktimeCodecData" opaque struct is  nowdeprecated (read only use when QuicktimeCodecSettings is not set)
- fixed small bug when importing deep color movies

Note that you may need Final Cut Pro installed to be able to use the DVCPRO HD codecs
2009-11-20 10:37:50 +00:00
Joshua Leung
9672993bc1 Attempted fix for #19870 - Crash on Shift Numpad 1 based on the backtrace http://www.pasteall.org/9114 2009-11-20 10:34:31 +00:00
Joshua Leung
088c6d6666 Bugfix #19923: UVImage editor gets stuck in move/zoom mode 2009-11-20 10:21:31 +00:00
Campbell Barton
3119eaf284 - dir() now works for collection functions
- group.objects.link/unlink use exceptions rather then return values
- scene.add_object/remove_object --> scene.objects.link/unlink
2009-11-20 10:00:54 +00:00
Joshua Leung
e7413bf791 More Node Editor Fixups:
* Restored Mute and Hide Operators, M and H keys respectively
* Restored Make Links Operator (F). However, I can't figure out how to set the sockets so that this can be used
* Made Alt-RMB the new hotkey for breaking links by dragging, since Alt-LMB was taken for panning already
2009-11-20 06:31:49 +00:00
Matt Ebb
cb40583b90 * Added a quick little weight group 'Levels' operator, can interactively tweak overall weight value offset and gain in weight paint mode. 2009-11-20 05:09:57 +00:00
Joshua Leung
e6d382bd53 Node Editor: Various usability and code tidyups
* Fixed a nasty bug which meant that it was impossible to set an active node. Was caused by ntreeCopyTree() getting called when compo updates were done and clearing the active flags. The active flag clearing is only really needed for the "internal_select" case which is only used for duplicating selected nodes (from Shift-D duplicate).

* Recoded click-selection code. Was a mess of old code, bad exceptions from the old code half ported, duplicate operators, unnecessary flags/modes.

* Fixed bug #19927: compositing node groups can't be access via "tab" or ungrouped via "alt+g". Was probably related to the active group not being able to be set.

* Made resizing nodes work again. Again, this was due to the active node bug.

* Made adding a new group with Ctrl-G correctly update the views
2009-11-20 04:19:57 +00:00
Matt Ebb
3d1e618864 Simpler default smooth brush curve preset - less points, easier to tweak 2009-11-20 04:12:52 +00:00
Matt Ebb
38e1590fa7 * Removed tablet pressure sensitive number field widget scrubbing, wasn't that useful and I suspect it was the cause of a few bugs
* Added tablet pressure support (size/strength) for weight paint and vertex paint

* Added tablet eraser support for weight paint and vertex paint (inverts the effect of the current tool)

* Removed the old 'soft' option, now weight paint and vertex paint use the influence curve

* Made the default brush use a smooth influence curve, rather than sharp
2009-11-20 01:39:27 +00:00
Joshua Leung
605e6850c2 Vertex Groups Operators:
* Added Ctrl-G hotkey back for displaying a menu showing the available Vertex Group operators

* Added descriptions for a few Vertex Group operators. The difference between "normalize" and "clean" isn't that obvious from just reading the code, so perhaps some attention to this is needed.
2009-11-19 23:39:19 +00:00
Martin Poirier
7f42b10d0f Support for grab cursor in macro system (and vice versa).
This may result in cursor being grabbed twice (though we don't have any macro that can do this at the moment). If this is a problem, a check can be added.
2009-11-19 19:27:10 +00:00
Campbell Barton
512c06afdb - StructRNA's __dir__ was missing members from its classes __dict__
- property editor can now set button min/max values and edit the tooltip
- custom props tooltips were not displayed
- cleanup the property UI 
- remove hacks that were used for editing (edit is now a popup operator)
- object.children was broken
2009-11-19 18:22:21 +00:00
Campbell Barton
e61c90e416 operators were copying the properties from the rna operator into the class instance.
however this meant the invoke function could not modify properties for exec to use (unless it called exec directly after)
since the popup for eg would re-instance the python class each time.

now use the operator properties directly through rna without an automatic copy.

now an operator attribute is accessed like this...
self.path --> self.properties.path
2009-11-19 17:12:08 +00:00
Campbell Barton
ac8ff25b2d idprop.get(key, default=None)
matching pythons dict.get()

removed checks for a failed PyObject_New(), if python cant make a new object your probably going to crash anyway.
2009-11-19 17:04:28 +00:00
Campbell Barton
3f10b91235 operator properties were not the correct type 2009-11-19 16:15:22 +00:00
Thomas Dinges
fc502cf481 Indentation fix. :/ 2009-11-19 14:37:07 +00:00
Thomas Dinges
a51c7b5633 * Added Shift+Space hotkey for "Area Full Screen" as it is in 2.49.
Request by Pablo (venomgfx). :)
2009-11-19 14:33:28 +00:00
Campbell Barton
17013ca4ee added 'hidden' option for python defined rna props, means py operators can use hidden properties so the popup wont show
improved error message when bad args are given to propertyRNA funcs
2009-11-19 14:32:12 +00:00
Campbell Barton
3b4c9d9699 correcting ID property list was incorrect on porting 2009-11-19 11:56:13 +00:00
Campbell Barton
b895b2e48f - remove CPPFLAG XP_UNIX from CMake, Scons and Irix make, checked our own code and /usr/include, its only used in our netscape plugin.
- CMake on unix default OpenMP to enabled.
- Scons on linux default OpenMP to enabled.
- copying python is slow, for scons only copy if the directory has not been created.
2009-11-19 11:49:42 +00:00
Campbell Barton
55b3280355 missed render border in modal keymap 2009-11-19 10:48:59 +00:00
William Reynish
040c2affa6 Revert toolbar shading commit. 2009-11-19 09:57:04 +00:00
Matt Ebb
525fbb22d2 * Fix for texture->image node not working
+ a few cleanups
2009-11-19 04:50:00 +00:00
Matt Ebb
bf575a1c16 * Changed scroll bar scale handles back to scaling from either side, rather than to the center (ctrl-drag or mouse wheel works fine for that) 2009-11-19 04:13:18 +00:00
Matt Ebb
a1b39ac06c * Fix for RMB keyframe/data path/etc operators not working in sub-regions, was getting the wrong region context to operate on. 2009-11-19 04:11:24 +00:00
Matt Ebb
2c08e182c7 * Added control and animation of sound volume of sequence sound strips (found in properties pane)
To insert keys, use I key while hovering over the button for now, rmb clicking on the property to insert a key doesn't work (general bug for all regions except property editor - will investigate).

Doesn't convert over from old fac0 ipos on opening old files though for the time being.

* Made sequence strip names unique while I was at it, to allow strip properties to be animated properly.
2009-11-19 03:21:37 +00:00
Joshua Leung
bb3afc81fc Sequencer UI: Sequencer now uses the standard timeline cursor instead of a hacky custom one that used a hardcoded colour 2009-11-19 02:58:48 +00:00
Joshua Leung
abe6b4c0c4 Bugfix:
Adding drivers to single values was broken.
2009-11-19 00:37:47 +00:00
Joshua Leung
0c8b41e464 Fix crash on Windows when clicking anywhere in a window. Cursor grabbing code was missing checks for invalid tablet data. 2009-11-18 21:01:04 +00:00
Campbell Barton
ae5a814f26 ID properties that are displayed via RNA can now define their own UI settings,
only implimented min/max precision & step.

at the moment there is no way to edit these other then via python

example of setting UI limits...

>>> C.object['foo'] = 0.5
>>> C.object['_RNA_UI'] = {'foo': {'step': 0.5, 'soft_max': 10.0, 'soft_min': 0.0, 'precision': 2, 'description': 'Some setting'}}

Also fixed typo's: precission -> precision
2009-11-18 20:01:35 +00:00
Damien Plisson
5f6b9fd324 Quicktime-cocoa : fix file busy issue when rendering a second time with quicktime export 2009-11-18 19:35:03 +00:00
Guillermo S. Romero
ec6f00c1bb SVN maintenance. 2009-11-18 18:45:38 +00:00
William Reynish
0df9ea6cd5 Made toolbar buttons slightly brighter, to make them stand out from the background more. 2009-11-18 18:01:54 +00:00
William Reynish
b5797272d0 New B.Blend.
Fixes an issue with the clipping that was set back to 0.01 Made it 0.1 once again as this fixes Z buffer issues.
Put the Item panel at the top in the n-key region
Removed Properties and Quad View Screens
Cleaned up UV Editing Screen, removing Properties
2009-11-18 17:54:04 +00:00
Martin Poirier
7f151b0dc6 Custom Ratio mouse input didn't check for initialization properly, which could lead to NaN values with edge slide.
Also adding missing modal keymaps for some transform operators.
2009-11-18 17:14:56 +00:00
Martin Poirier
a90c770286 Correctly detect and use modal keymaps in macros 2009-11-18 17:08:29 +00:00
Damien Plisson
1f3ab7afd4 Disable continuous grab during tablet use (fixing tablet jerkiness issues) 2009-11-18 16:54:33 +00:00
Damien Plisson
5a4045ad7d Quicktime (non cocoa) crash upon export temporary fix
Removed the pop up of the codec settings dialog box that was causing the crash, as it was called from the render thread (and not the main one).

So qt export settings are now blocked on default settings:
codec=jpeg, quality=max, bitrate=5MBps

Complete fix will be done by replacing this dialog box by "encoding" settings in the render panel.
2009-11-18 16:38:22 +00:00
Martin Poirier
cee7d6ac4c Fix snap tooltip.
Make it a bit more generic to cover Ctrl hold or toggle.
2009-11-18 16:12:49 +00:00
Damien Plisson
a9e79d255d scons update to enable build with QTKit (Cocoa Quicktime)
Thx Jens Verwiebe for the patch
2009-11-18 15:54:25 +00:00
Damien Plisson
a57730875d Quicktime for Cocoa : export part
Following the quicktime import port, here is the movie export feature.

The codec selection remains to be implemented in the ui (render panel).
So the settings are now blocked on codec=jpeg, quality=max.
2009-11-18 15:01:59 +00:00
Campbell Barton
9e5305f67e own mistake meant bones could not drive eachother. 2009-11-18 14:36:23 +00:00
Thomas Dinges
8ddac2b6d5 Revert of ID Notifier, as requested by Matt. 2009-11-18 14:21:11 +00:00
Campbell Barton
34edfb9710 bone & object properties editing was broken. 2009-11-18 14:00:23 +00:00
Daniel Genrich
6a357cabbf Durian request: Cloth
* structural can be set to 0

* pre-roll now available through GUI and works like following:
a) Pre rolled frames are NOT cached
b) reset cache + cloth on pre roll setting change
2009-11-18 13:33:52 +00:00
Campbell Barton
a62b3a534b fix for own error in 24623, removed a memfree call,
printed lots of errors like this one exit
 dynstr_cstring len: 24 0x54c4cb0
2009-11-18 13:14:49 +00:00
Campbell Barton
d3794d9f94 fix for memory leak, use Key Errors for pyrna getitem access & idprops 2009-11-18 13:02:09 +00:00
Campbell Barton
67c295da9c rename pose_channels to bones
was: object.pose.pose_channels["Bone"]
now: object.pose.bones["Bone"]
2009-11-18 11:40:55 +00:00
Campbell Barton
28d1a35260 remove ID property lookups from rna..
ob["foo"] = 1
 print(ob.foo) # now raises an error
2009-11-18 10:59:17 +00:00