MCPcopy Create free account
hub / github.com/crownengine/crown / parse_geometries

Function parse_geometries

src/resource/mesh_resource.cpp:315–341  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

313 }
314
315 s32 parse_geometries(Mesh &m, const char *sjson, CompileOptions &opts)
316 {
317 TempAllocator4096 ta;
318 JsonObject geometries(ta);
319 RETURN_IF_ERROR(sjson::parse(geometries, sjson));
320
321 auto cur = json_object::begin(geometries);
322 auto end = json_object::end(geometries);
323 for (; cur != end; ++cur) {
324 JSON_OBJECT_SKIP_HOLE(geometries, cur);
325
326 Geometry geo(default_allocator());
327 s32 err = mesh::parse_geometry(geo, cur->second, opts);
328 ENSURE_OR_RETURN(MESH_RESOURCE, err == 0, opts);
329
330 DynamicString geometry_name(ta);
331 geometry_name = cur->first;
332 RETURN_IF_FALSE(MESH_RESOURCE, !hash_map::has(m._geometries, geometry_name)
333 , opts
334 , "Geometry redefined: '%s'"
335 , geometry_name.c_str()
336 );
337 hash_map::set(m._geometries, geometry_name, geo);
338 }
339
340 return 0;
341 }
342
343 s32 parse_nodes(Mesh &m, const char *sjson, CompileOptions &opts)
344 {

Callers 1

parseFunction · 0.70

Calls 7

setClass · 0.85
parseFunction · 0.70
parse_geometryFunction · 0.70
beginFunction · 0.50
endFunction · 0.50
hasFunction · 0.50
c_strMethod · 0.45

Tested by

no test coverage detected