Blender
V3.3
source
blender
blenlib
intern
math_time.c
Go to the documentation of this file.
1
/* SPDX-License-Identifier: GPL-2.0-or-later
2
* Copyright 2021 Blender Foundation. All rights reserved. */
3
8
#include "
BLI_math.h
"
9
10
void
BLI_math_time_seconds_decompose
(
double
seconds,
11
double
*r_days,
12
double
*r_hours,
13
double
*r_minutes,
14
double
*r_seconds,
15
double
*r_milliseconds)
16
{
17
BLI_assert
(r_days !=
NULL
|| r_hours !=
NULL
|| r_minutes !=
NULL
|| r_seconds !=
NULL
||
18
r_milliseconds !=
NULL
);
19
20
if
(r_days !=
NULL
) {
21
seconds = modf(seconds /
SECONDS_IN_DAY
, r_days) *
SECONDS_IN_DAY
;
22
}
23
if
(r_hours !=
NULL
) {
24
seconds = modf(seconds /
SECONDS_IN_HOUR
, r_hours) *
SECONDS_IN_HOUR
;
25
}
26
if
(r_minutes !=
NULL
) {
27
seconds = modf(seconds /
SECONDS_IN_MINUTE
, r_minutes) *
SECONDS_IN_MINUTE
;
28
}
29
if
(r_seconds !=
NULL
) {
30
seconds = modf(seconds, r_seconds);
31
}
32
if
(r_milliseconds !=
NULL
) {
33
*r_milliseconds = seconds /
SECONDS_IN_MILLISECONDS
;
34
}
35
else
if
(r_seconds !=
NULL
) {
36
*r_seconds += seconds;
37
}
38
else
if
(r_minutes !=
NULL
) {
39
*r_minutes += seconds /
SECONDS_IN_MINUTE
;
40
}
41
else
if
(r_hours !=
NULL
) {
42
*r_hours += seconds /
SECONDS_IN_HOUR
;
43
}
44
else
if
(r_days !=
NULL
) {
45
*r_days = seconds /
SECONDS_IN_DAY
;
46
}
47
}
BLI_assert
#define BLI_assert(a)
Definition:
BLI_assert.h:46
BLI_math.h
SECONDS_IN_MILLISECONDS
#define SECONDS_IN_MILLISECONDS
Definition:
BLI_math_time.h:18
SECONDS_IN_MINUTE
#define SECONDS_IN_MINUTE
Definition:
BLI_math_time.h:19
SECONDS_IN_HOUR
#define SECONDS_IN_HOUR
Definition:
BLI_math_time.h:25
SECONDS_IN_DAY
#define SECONDS_IN_DAY
Definition:
BLI_math_time.h:24
NULL
return NULL
Definition:
bmesh_operator_api_inline.h:205
BLI_math_time_seconds_decompose
void BLI_math_time_seconds_decompose(double seconds, double *r_days, double *r_hours, double *r_minutes, double *r_seconds, double *r_milliseconds)
Definition:
math_time.c:10
Generated on Tue Oct 22 2024 13:18:25 for Blender by
doxygen
1.9.1