Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2012-05-28 20:06:38 +0400
committerCampbell Barton <ideasman42@gmail.com>2012-05-28 20:06:38 +0400
commit9ffb1c1dd85965612e09284e87642c2d6e1c09e1 (patch)
tree760ab6fbdce9d6aa691637302588546a768368fb /release/scripts/modules/bpy
parente9d6b4db964ce98f04ecb23dbfbe8a11ee64d27b (diff)
bpy.utils.time_to_frame() and frame_to_time() utility functions.
Diffstat (limited to 'release/scripts/modules/bpy')
-rw-r--r--release/scripts/modules/bpy/utils.py55
1 files changed, 55 insertions, 0 deletions
diff --git a/release/scripts/modules/bpy/utils.py b/release/scripts/modules/bpy/utils.py
index 2824d6245e5..2e6d1bf8fbc 100644
--- a/release/scripts/modules/bpy/utils.py
+++ b/release/scripts/modules/bpy/utils.py
@@ -391,6 +391,11 @@ def smpte_from_frame(frame, fps=None, fps_base=None):
Returns an SMPTE formatted string from the frame: "HH:MM:SS:FF".
If *fps* and *fps_base* are not given the current scene is used.
+
+ :arg time: time in seconds.
+ :type time: number or timedelta object
+ :return: the frame.
+ :rtype: float
"""
if fps is None:
@@ -402,6 +407,56 @@ def smpte_from_frame(frame, fps=None, fps_base=None):
return smpte_from_seconds((frame * fps_base) / fps, fps)
+def time_from_frame(frame, fps=None, fps_base=None):
+ """
+ Returns the time from a frame number .
+
+ If *fps* and *fps_base* are not given the current scene is used.
+
+ :arg frame: number.
+ :type frame: the frame number
+ :return: the time in seconds.
+ :rtype: timedate.timedelta
+ """
+
+ if fps is None:
+ fps = _bpy.context.scene.render.fps
+
+ if fps_base is None:
+ fps_base = _bpy.context.scene.render.fps_base
+
+ from datetime import timedelta
+
+ return timedelta((frame * fps_base) / fps)
+
+
+def time_to_frame(time, fps=None, fps_base=None):
+ """
+ Returns a float frame number from a time given in seconds or
+ as a timedate.timedelta object.
+
+ If *fps* and *fps_base* are not given the current scene is used.
+
+ :arg time: time in seconds.
+ :type time: number or a timedate.timedelta object
+ :return: the frame.
+ :rtype: float
+ """
+
+ if fps is None:
+ fps = _bpy.context.scene.render.fps
+
+ if fps_base is None:
+ fps_base = _bpy.context.scene.render.fps_base
+
+ from datetime import timedelta
+
+ if isinstance(time, timedelta):
+ time = time.total_seconds()
+
+ return (time / fps_base) * fps
+
+
def preset_find(name, preset_path, display_name=False, ext=".py"):
if not name:
return None