Core
Core library of the framework. More...
Namespaces | |
SurfaceInteraction | |
Generalized BSDF type. BSDF types of the surface interaction. | |
Classes | |
class | Aligned< Align > |
class | SIMDAlignedType |
SIMD aligned type. Inherited class automatically supports aligned version of operator new and delete for SIMD types. More... | |
class | aligned_allocator< T, Alignment > |
Aligned allocator for STL containers. More... | |
struct | aligned_allocator< T, Alignment >::rebind< U > |
struct | boost_pool_aligned_allocator< Align > |
Aligned allocator for boost::pool. More... | |
class | Configurable |
Configurable components. More... | |
class | DebugUtils |
Debug helper functions. More... | |
class | SEHUtils |
SEH utilility. More... | |
struct | Intersection |
Intersection. More... | |
class | IntersectionUtils |
Intersection utilities. More... | |
class | Logger |
Logger. More... | |
struct | LogIndenter |
struct | Ray |
Ray. More... | |
class | RenderUtils |
Utility functions for rendering. More... | |
struct | DiscreteSPD< N > |
struct | DiscreteSPD< 3 > |
class | DynamicLibrary |
Dynamic library. More... | |
struct | InternalPolicy |
struct | ExternalPolicy |
class | StaticInit< InitPolicy > |
Static initialization. More... | |
class | StaticInit< InternalPolicy > |
class | StaticInit< ExternalPolicy > |
struct | SurfaceGeometry |
Surface geometry information. More... | |
class | TriangleUtils |
Utility function for triangle meshes. More... | |
Macros | |
#define | LM_ENUM_TYPE_MAP(EnumType) |
#define | LM_ENUM_TO_STRING(EnumType, EnumValue) EnumType##_String[(int)(EnumValue)] |
#define | LM_STRING_TO_ENUM(EnumType, EnumString) EnumTypeMap<EnumType>::ToEnum(EnumString) |
#define | LM_LOG_ERROR(message) Logger::Log(LogType::Error, message, __FILE__, __LINE__, false, false) |
#define | LM_LOG_WARN(message) Logger::Log(LogType::Warn, message, __FILE__, __LINE__, false, false) |
#define | LM_LOG_INFO(message) Logger::Log(LogType::Info, message, __FILE__, __LINE__, false, false) |
#define | LM_LOG_DEBUG(message) Logger::Log(LogType::Debug, message, __FILE__, __LINE__, false, false) |
#define | LM_LOG_ERROR_SIMPLE(message) Logger::Log(LogType::Error, message, __FILE__, __LINE__, false, true) |
#define | LM_LOG_WARN_SIMPLE(message) Logger::Log(LogType::Warn, message, __FILE__, __LINE__, false, true) |
#define | LM_LOG_INFO_SIMPLE(message) Logger::Log(LogType::Info, message, __FILE__, __LINE__, false, true) |
#define | LM_LOG_DEBUG_SIMPLE(message) Logger::Log(LogType::Debug, message, __FILE__, __LINE__, false, true) |
#define | LM_LOG_INPLACE(message) Logger::Log(LogType::Info, message, __FILE__, __LINE__, true, false) |
#define | LM_LOG_INPLACE_END() std::cout << std::endl |
#define | LM_LOG_INDENTER() LogIndenter LM_TOKENPASTE2(logIndenter_, __LINE__) |
#define | LM_USE_SPECTRUM_RGB |
#define | LM_SPECTRUM_RGB 1 |
#define | LM_EXPORTED_F(Func, ...) |
Typedefs | |
using | SPD = DiscreteSPD< 3 > |
using | InitPolicy = ExternalPolicy |
Enumerations | |
enum | LogType { LogType::Error, LogType::Warn, LogType::Info, LogType::Debug } |
enum | TransportDirection { TransportDirection::LE, TransportDirection::EL } |
Transport directioin. The direction of light transport. More... | |
Functions | |
LM_INLINE auto | operator+ (const DiscreteSPD< 3 > &spd1, const DiscreteSPD< 3 > &spd2) -> DiscreteSPD< 3 > |
LM_INLINE auto | operator- (const DiscreteSPD< 3 > &spd1, const DiscreteSPD< 3 > &spd2) -> DiscreteSPD< 3 > |
LM_INLINE auto | operator* (const DiscreteSPD< 3 > &spd1, const DiscreteSPD< 3 > &spd2) -> DiscreteSPD< 3 > |
LM_INLINE auto | operator/ (const DiscreteSPD< 3 > &spd1, const DiscreteSPD< 3 > &spd2) -> DiscreteSPD< 3 > |
LM_INLINE auto | operator/ (const DiscreteSPD< 3 > &spd, Float s) -> DiscreteSPD< 3 > |
Detailed Description
Core library of the framework.
Macro Definition Documentation
#define LM_ENUM_TYPE_MAP | ( | EnumType | ) |
Value:
template <typename T> \
class EnumTypeMap; \
template <> \
class EnumTypeMap<EnumType> { \
public: \
EnumTypeMap() { \
for (size_t i = 0; i < sizeof(EnumType##_String) / sizeof(EnumType##_String[0]); i++) \
TypeMap[EnumType##_String[i]] = (EnumType)(i); \
} \
static EnumType ToEnum(const std::string& s) { return Instance().TypeMap[s]; } \
static EnumTypeMap<EnumType>& Instance() { static EnumTypeMap<EnumType> instance; return instance; } \
private: \
std::unordered_map<std::string, EnumType> TypeMap; \
}
#define LM_EXPORTED_F | ( | Func, | |
... | |||
) |
Value:
[&]() { \
using FuncPtrType = decltype(&Func); \
static auto func = []() -> FuncPtrType { \
const auto* lib = StaticInit<ExternalPolicy>::Instance().Library(); \
const FuncPtrType f = reinterpret_cast<FuncPtrType>(lib->GetFuncPointer(#Func)); \
if (!f) std::exit(EXIT_FAILURE); \
return f; \
}(); \
return func(__VA_ARGS__); \
}()
Enumeration Type Documentation
|
strong |
Log message type.
Defines the types of log messages. The user wants to choose the appropriate types according to the severity of the log message. For some environment, the output message is colored according to the types, e.g., red for the Error
type.
Enumerator | |
---|---|
Error |
Error. |
Warn |
Warning. |
Info |
Information. |
Debug |
Debugging (used only for the debug mode). |
|
strong |