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

Function parse_geometry

src/resource/mesh_resource.cpp:283–313  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

281 }
282
283 s32 parse_geometry(Geometry &g, const char *sjson, CompileOptions &opts)
284 {
285 TempAllocator4096 ta;
286 JsonObject obj(ta);
287 RETURN_IF_ERROR(sjson::parse(obj, sjson));
288
289 s32 err = parse_float_array(g._positions, obj["position"]);
290 ENSURE_OR_RETURN(MESH_RESOURCE, err == 0, opts);
291
292 if (json_object::has(obj, "normal")) {
293 err = parse_float_array(g._normals, obj["normal"]);
294 ENSURE_OR_RETURN(MESH_RESOURCE, err == 0, opts);
295 }
296
297 if (json_object::has(obj, "tangent")) {
298 err = parse_float_array(g._tangents, obj["tangent"]);
299 ENSURE_OR_RETURN(MESH_RESOURCE, err == 0, opts);
300 }
301
302 if (json_object::has(obj, "bitangent")) {
303 err = parse_float_array(g._bitangents, obj["bitangent"]);
304 ENSURE_OR_RETURN(MESH_RESOURCE, err == 0, opts);
305 }
306
307 if (json_object::has(obj, "texcoord")) {
308 err = parse_float_array(g._uvs, obj["texcoord"]);
309 ENSURE_OR_RETURN(MESH_RESOURCE, err == 0, opts);
310 }
311
312 return parse_indices(g, obj["indices"], opts);
313 }
314
315 s32 parse_geometries(Mesh &m, const char *sjson, CompileOptions &opts)
316 {

Callers 1

parse_geometriesFunction · 0.70

Calls 4

parse_float_arrayFunction · 0.85
parse_indicesFunction · 0.85
parseFunction · 0.70
hasFunction · 0.50

Tested by

no test coverage detected