GUITab.ts 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. module INSPECTOR{
  2. export class GUITab extends PropertyTab {
  3. constructor(tabbar:TabBar, inspector:Inspector) {
  4. super(tabbar, 'GUI', inspector);
  5. }
  6. /* Overrides super */
  7. protected _getTree() : Array<TreeItem> {
  8. let arr = [];
  9. // Recursive method building the tree panel
  10. let createNode = (obj: BABYLON.GUI.Control) => {
  11. let descendants = (obj as BABYLON.GUI.Container).children;
  12. if (descendants && descendants.length > 0) {
  13. let node = new TreeItem(this, new GUIAdapter(obj));
  14. for (let child of descendants) {
  15. let n = createNode(child);
  16. node.add(n);
  17. }
  18. node.update();
  19. return node;
  20. } else {
  21. return new TreeItem(this, new GUIAdapter(obj));
  22. }
  23. };
  24. // get all textures from the first scene
  25. let instances = this._inspector.scene;
  26. for (let tex of instances.textures) {
  27. //only get GUI's textures
  28. if (tex instanceof BABYLON.GUI.AdvancedDynamicTexture) {
  29. let node = createNode(tex._rootContainer);
  30. arr.push(node);
  31. }
  32. }
  33. return arr;
  34. }
  35. }
  36. }