library.alc 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. include "primitives.alh"
  2. Element function export_node(model_name : String, model_reference : Element):
  3. Element splitted
  4. splitted = string_split(model_name, "/")
  5. Integer length
  6. length = list_len(splitted) - 1
  7. Integer counter_i
  8. counter_i = 0
  9. Element current
  10. current = dict_read(read_root(), "__hierarchy")
  11. while(counter_i < length):
  12. if (bool_not(dict_in(current, splitted[counter_i]))):
  13. // Create the new node
  14. dict_add(current, splitted[counter_i], create_node())
  15. dict_add(current[splitted[counter_i]], "__hierarchy_node", create_node())
  16. // Read out newly created element
  17. current = current[splitted[counter_i]]
  18. counter_i = counter_i + 1
  19. // current now contains the place where we should add the element
  20. if (bool_not(dict_in(current, splitted[length]))):
  21. dict_add(current, splitted[length], model_reference)
  22. return model_reference!
  23. Element function import_node(model_name : String):
  24. Element splitted
  25. splitted = string_split(model_name, "/")
  26. Integer length
  27. length = list_len(splitted)
  28. Integer counter_i
  29. counter_i = 0
  30. Element current
  31. current = dict_read(read_root(), "__hierarchy")
  32. while (counter_i < length):
  33. if dict_in(current, splitted[counter_i]):
  34. current = current[splitted[counter_i]]
  35. counter_i = counter_i + 1
  36. else:
  37. return read_root()!
  38. return current!