6 #ifndef MATERIALX_LIBRARY_H 
    7 #define MATERIALX_LIBRARY_H 
   19 #include <unordered_map> 
   24 #define MATERIALX_GENERATE_INDEX(major, minor, build) \ 
   25     ((((uint32_t)(major)) << 22U) | (((uint32_t)(minor)) << 12U) | ((uint32_t)(build))) 
   26 #define MATERIALX_VERSION_INDEX \ 
   27     MATERIALX_GENERATE_INDEX(MATERIALX_MAJOR_VERSION, MATERIALX_MINOR_VERSION, MATERIALX_BUILD_VERSION) 
   30 #if defined(MATERIALX_BUILD_SHARED_LIBS) 
   32         #pragma warning(disable : 4251) 
   33         #pragma warning(disable : 4275) 
   34         #pragma warning(disable : 4661) 
   35         #define MATERIALX_SYMBOL_EXPORT __declspec(dllexport) 
   36         #define MATERIALX_SYMBOL_IMPORT __declspec(dllimport) 
   37         #define MATERIALX_EXPORT_EXTERN_TEMPLATE(...) template class MATERIALX_SYMBOL_EXPORT __VA_ARGS__ 
   38         #define MATERIALX_IMPORT_EXTERN_TEMPLATE(...) extern template class MATERIALX_SYMBOL_IMPORT __VA_ARGS__ 
   40         #define MATERIALX_SYMBOL_EXPORT __attribute__((__visibility__("default"))) 
   41         #define MATERIALX_SYMBOL_IMPORT __attribute__((__visibility__("default"))) 
   42         #define MATERIALX_EXPORT_EXTERN_TEMPLATE(...) template class MATERIALX_SYMBOL_EXPORT __VA_ARGS__ 
   43         #define MATERIALX_IMPORT_EXTERN_TEMPLATE(...) extern template class MATERIALX_SYMBOL_IMPORT __VA_ARGS__ 
   46     #define MATERIALX_SYMBOL_EXPORT 
   47     #define MATERIALX_SYMBOL_IMPORT 
   48     #define MATERIALX_EXPORT_EXTERN_TEMPLATE(...) 
   49     #define MATERIALX_IMPORT_EXTERN_TEMPLATE(...) 
   56 using std::shared_ptr;
 
   62 using StringMap = std::unordered_map<string, string>;
 
#define MATERIALX_NAMESPACE_BEGIN
 
vector< string > StringVec
A vector of strings. 
 
std::unordered_map< string, string > StringMap
An unordered map with strings as both keys and values. 
 
std::set< string > StringSet
A set of strings. 
 
#define MATERIALX_NAMESPACE_END