MCPcopy Create free account
hub / github.com/Redot-Engine/redot-engine / _parse_material

Method _parse_material

editor/import/3d/collada.cpp:337–366  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

335}
336
337void Collada::_parse_material(XMLParser &p_parser) {
338 if (!(state.import_flags & IMPORT_FLAG_SCENE)) {
339 if (!p_parser.is_empty()) {
340 p_parser.skip_section();
341 }
342 return;
343 }
344
345 Material material;
346
347 String id = p_parser.get_named_attribute_value("id");
348 if (p_parser.has_attribute("name")) {
349 material.name = p_parser.get_named_attribute_value("name");
350 }
351
352 if (state.version < State::Version(1, 4, 0)) {
353 /* <1.4 */
354 ERR_PRINT("Collada Materials < 1.4 are not supported (yet)");
355 } else {
356 while (p_parser.read() == OK) {
357 if (p_parser.get_node_type() == XMLParser::NODE_ELEMENT && p_parser.get_node_name() == "instance_effect") {
358 material.instance_effect = _uri_to_id(p_parser.get_named_attribute_value("url"));
359 } else if (p_parser.get_node_type() == XMLParser::NODE_ELEMENT_END && p_parser.get_node_name() == "material") {
360 break; //end of <asset>
361 }
362 }
363 }
364
365 state.material_map[id] = material;
366}
367
368Vector<float> Collada::_read_float_array(XMLParser &p_parser) {
369 if (p_parser.is_empty()) {

Callers

nothing calls this directly

Calls 9

_uri_to_idFunction · 0.85
skip_sectionMethod · 0.80
has_attributeMethod · 0.80
VersionClass · 0.70
is_emptyMethod · 0.45
readMethod · 0.45
get_node_typeMethod · 0.45
get_node_nameMethod · 0.45

Tested by

no test coverage detected