Add Timestamp class

This commit is contained in:
2020-10-30 20:47:11 +01:00
parent f84431d704
commit 1d05f97216

View File

@@ -0,0 +1,27 @@
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
#pragma once
#include <stdint.h>
namespace openVulkanoCpp::Math
{
class Timestamp final
{
static constexpr uint64_t SECONDS_TO_NANOS = 1'000'000'000ull;
static constexpr double NANOS_TO_SECONDS = 1 / SECONDS_TO_NANOS;
uint64_t timestamp;
public:
explicit Timestamp(uint64_t nanos = 0) : timestamp(nanos) {}
explicit Timestamp(double seconds) : timestamp(static_cast<uint64_t>(seconds * SECONDS_TO_NANOS)) {}
[[nodiscard]] uint64_t GetNanos() const { return timestamp; }
[[nodiscard]] double GetSeconds() const { return timestamp * NANOS_TO_SECONDS; }
};
}