actionsbuilder.main.ts 2.8 KB

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