MCPcopy Create free account
hub / github.com/AcademySoftwareFoundation/MaterialX / loadStandardLibraries

Method loadStandardLibraries

source/MaterialXView/Viewer.cpp:1847–1893  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1845}
1846
1847void Viewer::loadStandardLibraries()
1848{
1849 // Initialize the standard library.
1850 try
1851 {
1852 _stdLib = mx::createDocument();
1853 _xincludeFiles = mx::loadLibraries(_libraryFolders, _searchPath, _stdLib);
1854 if (_xincludeFiles.empty())
1855 {
1856 std::cerr << "Could not find standard data libraries on the given search path: " << _searchPath.asString() << std::endl;
1857 }
1858 }
1859 catch (std::exception& e)
1860 {
1861 std::cerr << "Failed to load standard data libraries: " << e.what() << std::endl;
1862 return;
1863 }
1864
1865 // Initialize unit management.
1866 mx::UnitTypeDefPtr distanceTypeDef = _stdLib->getUnitTypeDef("distance");
1867 _distanceUnitConverter = mx::LinearUnitConverter::create(distanceTypeDef);
1868 _unitRegistry->addUnitConverter(distanceTypeDef, _distanceUnitConverter);
1869 mx::UnitTypeDefPtr angleTypeDef = _stdLib->getUnitTypeDef("angle");
1870 mx::LinearUnitConverterPtr angleConverter = mx::LinearUnitConverter::create(angleTypeDef);
1871 _unitRegistry->addUnitConverter(angleTypeDef, angleConverter);
1872
1873 // Create the list of supported distance units.
1874 auto unitScales = _distanceUnitConverter->getUnitScale();
1875 _distanceUnitOptions.resize(unitScales.size());
1876 for (const auto& unitScale : unitScales)
1877 {
1878 int location = _distanceUnitConverter->getUnitAsInteger(unitScale.first);
1879 _distanceUnitOptions[location] = unitScale.first;
1880 }
1881
1882 // Initialize the generator contexts.
1883 initContext(_genContext);
1884#ifndef MATERIALXVIEW_METAL_BACKEND
1885 initContext(_genContextEssl);
1886#endif
1887#if MATERIALX_BUILD_GEN_OSL
1888 initContext(_genContextOsl);
1889#endif
1890#if MATERIALX_BUILD_GEN_MDL
1891 initContext(_genContextMdl);
1892#endif
1893}
1894
1895bool Viewer::keyboard_event(int key, int scancode, int action, int modifiers)
1896{

Callers 2

initializeMethod · 0.45

Calls 11

initContextFunction · 0.85
addUnitConverterMethod · 0.80
resizeMethod · 0.80
getUnitAsIntegerMethod · 0.80
createDocumentFunction · 0.50
loadLibrariesFunction · 0.50
createFunction · 0.50
emptyMethod · 0.45
asStringMethod · 0.45
whatMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected