MCPcopy Create free account
hub / github.com/Bloom-Engine/engine / parse_node

Function parse_node

native/watchos/src/models.rs:323–359  ·  view source on GitHub ↗
(n: &JVal)

Source from the content-addressed store, hash-verified

321}
322
323fn parse_node(n: &JVal) -> Node {
324 let mut node = Node::identity();
325 if let Some(t) = n.get("translation").and_then(|v| v.arr()) {
326 for (i, v) in t.iter().take(3).enumerate() {
327 if let Some(f) = v.num() { node.translation[i] = f as f32; }
328 }
329 }
330 if let Some(r) = n.get("rotation").and_then(|v| v.arr()) {
331 for (i, v) in r.iter().take(4).enumerate() {
332 if let Some(f) = v.num() { node.rotation[i] = f as f32; }
333 }
334 }
335 if let Some(s) = n.get("scale").and_then(|v| v.arr()) {
336 for (i, v) in s.iter().take(3).enumerate() {
337 if let Some(f) = v.num() { node.scale[i] = f as f32; }
338 }
339 }
340 if let Some(m) = n.get("matrix").and_then(|v| v.arr()) {
341 let mut arr = [0.0f32; 16];
342 for (i, v) in m.iter().take(16).enumerate() {
343 if let Some(f) = v.num() { arr[i] = f as f32; }
344 }
345 node.matrix = Some(arr);
346 }
347 if let Some(mi) = n.get("mesh").and_then(|v| v.num()) {
348 node.mesh = Some(mi as usize);
349 }
350 if let Some(si) = n.get("skin").and_then(|v| v.num()) {
351 node.skin = Some(si as usize);
352 }
353 if let Some(kids) = n.get("children").and_then(|v| v.arr()) {
354 for v in kids {
355 if let Some(i) = v.num() { node.children.push(i as usize); }
356 }
357 }
358 node
359}
360
361fn parse_primitive(
362 prim: &JVal, root: &JVal,

Callers 1

parse_glbFunction · 0.85

Calls 5

arrMethod · 0.80
iterMethod · 0.80
numMethod · 0.80
getMethod · 0.45
pushMethod · 0.45

Tested by

no test coverage detected