actionsbuilder.main.ts 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. /*
  2. Global functions called by the plugins (3ds Max, etc.)
  3. */
  4. // Elements
  5. var list: ActionsBuilder.List = null;
  6. var viewer: ActionsBuilder.Viewer = null;
  7. var actionsBuilderJsonInput: HTMLInputElement = <HTMLInputElement>document.getElementById("ActionsBuilderJSON");
  8. this.getList = () => {
  9. return list;
  10. };
  11. this.getViewer = () => {
  12. return viewer;
  13. };
  14. this.createJSON = () => {
  15. var structure = viewer.utils.createJSON(viewer.root);
  16. var asText = JSON.stringify(structure);
  17. actionsBuilderJsonInput.value = asText;
  18. console.log(asText);
  19. };
  20. this.loadFromJSON = () => {
  21. var json = actionsBuilderJsonInput.value;
  22. if (json !== "") {
  23. var structure = JSON.parse(json);
  24. viewer.utils.loadFromJSON(structure, null);
  25. }
  26. };
  27. this.updateObjectName = () => {
  28. var element = <HTMLInputElement>document.getElementById("ActionsBuilderObjectName");
  29. var name = element.value;
  30. viewer.objectName = name;
  31. if (viewer.root.type === ActionsBuilder.Type.OBJECT) {
  32. name += " - Mesh";
  33. }
  34. else {
  35. name += " - Scene";
  36. }
  37. viewer.root.node.text.attr("text", name);
  38. };
  39. this.resetList = () => {
  40. list.clearLists();
  41. list.createListsElements();
  42. };
  43. this.setMeshesNames = (...args: string[]) => {
  44. for (var i = 0; i < args.length; i++) {
  45. ActionsBuilder.SceneElements.MESHES.push(args[i]);
  46. }
  47. };
  48. this.setLightsNames = (...args: string[]) => {
  49. for (var i = 0; i < args.length; i++) {
  50. ActionsBuilder.SceneElements.LIGHTS.push(args[i]);
  51. }
  52. };
  53. this.setCamerasNames = (...args: string[]) => {
  54. for (var i = 0; i < args.length; i++) {
  55. ActionsBuilder.SceneElements.CAMERAS.push(args[i]);
  56. }
  57. };
  58. this.setSoundsNames = (...args: string[]) => {
  59. for (var i = 0; i < args.length; i++) {
  60. var sound = args[i];
  61. if (sound !== "" && ActionsBuilder.SceneElements.SOUNDS.indexOf(sound) === -1) {
  62. ActionsBuilder.SceneElements.SOUNDS.push(args[i]);
  63. }
  64. }
  65. };
  66. this.hideButtons = () => {
  67. // Empty
  68. };
  69. this.setIsObject = () => {
  70. viewer.root.type = ActionsBuilder.Type.OBJECT;
  71. };
  72. this.setIsScene = () => {
  73. viewer.root.type = ActionsBuilder.Type.SCENE;
  74. };
  75. this.run = () => {
  76. // Configure viewer
  77. viewer = new ActionsBuilder.Viewer(ActionsBuilder.Type.OBJECT);
  78. viewer.setColorTheme("-ms-linear-gradient(top, rgba(38, 38, 38,1) 0%, rgba(125, 126, 125, 1) 100%)");
  79. viewer.setColorTheme("linear-gradient(top, rgba(38, 38, 38,1) 0%, rgba(125, 126, 125, 1) 100%)");
  80. viewer.setColorTheme("-webkit-linear-gradient(top, rgba(38, 38, 38,1) 0%, rgba(125, 126, 125, 1) 100%)");
  81. viewer.setColorTheme("-o-linear-gradient(top, rgba(38, 38, 38,1) 0%, rgba(125, 126, 125, 1) 100%)");
  82. viewer.onResize();
  83. viewer.update();
  84. // Configure list
  85. list = new ActionsBuilder.List(viewer);
  86. list.setColorTheme("rgb(64, 64, 64)");
  87. list.createListsElements();
  88. list.onResize();
  89. // 3ds Max fix
  90. viewer.onResize();
  91. };