Photon Common Library 2.0.0-beta
A physically based renderer.
|
#include "Common/utility.h"
#include "Common/assertion.h"
#include "Common/exceptions.h"
#include <utility>
#include <climits>
#include <limits>
Go to the source code of this file.
Namespaces | |
namespace | ph |
The root for all renderer implementations. | |
namespace | ph::detail |
Implementation detail mainly for internal usages. | |
Functions | |
template<typename T , std::size_t... Is> | |
constexpr std::array< T, sizeof...(Is)> | ph::detail::make_array (T element, std::index_sequence< Is... >) |
template<typename T > | |
consteval std::size_t | ph::sizeof_in_bits () |
Calculates number of bits an instance of type T occupies. | |
template<typename T , std::size_t N> | |
constexpr std::array< T, N > | ph::make_array (const T &element) |
Creates an std::array filled with the same element. | |
template<std::integral DstType, std::integral SrcType> | |
DstType | ph::lossless_integer_cast (const SrcType &src) |
template<std::floating_point DstType, std::floating_point SrcType> | |
DstType | ph::lossless_float_cast (const SrcType &src) |
template<typename DstType , typename SrcType > | |
DstType | ph::lossless_cast (const SrcType &src) |
Cast numeric value to another type without any loss of information. If there is any possible overflow or numeric precision loss, exception is thrown. | |
template<typename DstType , typename SrcType > | |
DstType | ph::lossless_cast (const SrcType &src, DstType *const out_dst) |