diff options
-rw-r--r-- | include/tng_io.h | 13 | ||||
-rw-r--r-- | src/lib/tng_io.c | 26 |
2 files changed, 39 insertions, 0 deletions
diff --git a/include/tng_io.h b/include/tng_io.h index c31d8a2..e26089d 100644 --- a/include/tng_io.h +++ b/include/tng_io.h @@ -2142,6 +2142,19 @@ tng_function_status DECLSPECDLLEXPORT tng_util_trajectory_open */ tng_function_status DECLSPECDLLEXPORT tng_util_trajectory_close (tng_trajectory_t *tng_data_p); + +/** + * @brief High-level function for getting the time (in seconds) of a frame. + * @param tng_data is the trajectory containing the frame. + * @param frame_nr is the frame number of which to get the time. + * @param time is set to the time (in seconds) of the specified frame. + * @return TNG_SUCCESS (0) if successful or TNG_FAILURE (1) if a + * minor error has occured. + */ +tng_function_status DECLSPECDLLEXPORT tng_util_time_of_frame_get + (tng_trajectory_t tng_data, + const int64_t frame_nr, + double *time); /* // tng_function_status DECLSPECDLLEXPORT tng_util_trajectory_molecules_get // (tng_trajectory_t tng_data, diff --git a/src/lib/tng_io.c b/src/lib/tng_io.c index 69dbadd..dccbf03 100644 --- a/src/lib/tng_io.c +++ b/src/lib/tng_io.c @@ -14652,6 +14652,32 @@ tng_function_status DECLSPECDLLEXPORT tng_util_trajectory_close return(tng_trajectory_destroy(tng_data_p)); } +tng_function_status DECLSPECDLLEXPORT tng_util_time_of_frame_get + (tng_trajectory_t tng_data, + const int64_t frame_nr, + double *time) +{ + int64_t first_frame; + + tng_trajectory_frame_set_t frame_set; + tng_function_status stat; + + stat = tng_frame_set_of_frame_find(tng_data, frame_nr); + if(stat != TNG_SUCCESS) + { + printf("Cannot find frame nr %"PRId64". %s: %d\n", + frame_nr, __FILE__, __LINE__); + return(stat); + } + + frame_set = &tng_data->current_trajectory_frame_set; + first_frame = frame_set->first_frame; + + *time = frame_set->first_frame_time + (tng_data->time_per_frame * frame_nr - first_frame); + + return(TNG_SUCCESS); +} + tng_function_status DECLSPECDLLEXPORT tng_util_trajectory_molecules_get (tng_trajectory_t tng_data, int64_t *n_mols, |