actionsbuilder.main.ts 2.8 KB

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