MCPcopy Create free account
hub / github.com/RenderKit/embree / loadMaterialParms

Method loadMaterialParms

tutorials/common/scenegraph/xml_loader.cpp:859–889  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

857 }
858
859 Parms XMLLoader::loadMaterialParms(const Ref<XML>& parms)
860 {
861 Parms material;
862 for (size_t i=0; i<parms->size(); i++)
863 {
864 Ref<XML> entry = parms->children[i];
865 std::string name = entry->parm("name");
866 if (entry->name == "int" ) { material.add(name, load<int> (entry)); }
867 else if (entry->name == "int2" ) { material.add(name, load<Vec2i>(entry)); }
868 else if (entry->name == "int3" ) { material.add(name, load<Vec3i>(entry)); }
869 else if (entry->name == "int4" ) { material.add(name, load<Vec4i>(entry)); }
870 else if (entry->name == "float" ) { material.add(name, load<float>(entry)); }
871 else if (entry->name == "float2" ) { material.add(name, load<Vec2f>(entry)); }
872 else if (entry->name == "float3" ) { material.add(name, load<Vec3f>(entry)); }
873 else if (entry->name == "float4" ) { material.add(name, load<Vec4f>(entry)); }
874 else if (entry->name == "texture3d") { material.add(name, loadTextureParm(entry)); }
875 else if (entry->name == "param") {
876 const std::string type = entry->parm("type");
877 if (type == "int" ) { material.add(name, load<int> (entry)); }
878 else if (type == "int2" ) { material.add(name, load<Vec2i>(entry)); }
879 else if (type == "int3" ) { material.add(name, load<Vec3i>(entry)); }
880 else if (type == "int4" ) { material.add(name, load<Vec4i>(entry)); }
881 else if (type == "float" ) { material.add(name, load<float>(entry)); }
882 else if (type == "float2" ) { material.add(name, load<Vec2f>(entry)); }
883 else if (type == "float3" ) { material.add(name, load<Vec3f>(entry)); }
884 else if (type == "float4" ) { material.add(name, load<Vec4f>(entry)); }
885 else THROW_RUNTIME_ERROR(entry->loc.str()+": invalid param type: "+type);
886 }
887 }
888 return material;
889 }
890
891 Ref<SceneGraph::MaterialNode> XMLLoader::loadMaterial(const Ref<XML>& xml)
892 {

Callers

nothing calls this directly

Calls 4

parmMethod · 0.80
sizeMethod · 0.45
addMethod · 0.45
strMethod · 0.45

Tested by

no test coverage detected