mesh.vala 910 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. /*
  2. * Copyright (c) 2012-2025 Daniele Bartolini et al.
  3. * SPDX-License-Identifier: GPL-3.0-or-later
  4. */
  5. namespace Crown
  6. {
  7. public struct Mesh
  8. {
  9. public Gee.ArrayList<string> _nodes;
  10. public Mesh()
  11. {
  12. _nodes = new Gee.ArrayList<string>();
  13. }
  14. private void decode_node(Hashtable node)
  15. {
  16. foreach (var e in node.entries) {
  17. if (e.key == "matrix_local") {
  18. // Do nothing.
  19. } else if (e.key == "geometry") {
  20. // Do nothing.
  21. } else if (e.key == "children") {
  22. decode_nodes((Hashtable)e.value);
  23. }
  24. }
  25. }
  26. private void decode_nodes(Hashtable nodes)
  27. {
  28. foreach (var e in nodes.entries) {
  29. _nodes.add(e.key);
  30. decode_node((Hashtable)e.value);
  31. }
  32. }
  33. public void decode(Hashtable mesh)
  34. {
  35. foreach (var e in mesh.entries) {
  36. if (e.key == "nodes") {
  37. decode_nodes((Hashtable)e.value);
  38. } else if (e.key == "geometries") {
  39. // Do nothing.
  40. }
  41. }
  42. }
  43. }
  44. } /* namespace Crown */