index.html 9.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207
  1. <!-- saved from url=(0014)about:internet -->
  2. <!DOCTYPE html>
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <head>
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  6. <title>Actions Builder</title>
  7. <!-- GLOBAL CSS -->
  8. <link href="./index.css" rel="stylesheet" />
  9. <!-- FONTS CSS -->
  10. <link href="./fonts.css" rel="stylesheet" />
  11. </head>
  12. <body>
  13. <!-- START DIV: CONTAINER -->
  14. <div class="container">
  15. <!-- END DIV: CONTAINER -->
  16. <ul>
  17. <li>save action graph</li>
  18. <li>reset action graph</li>
  19. <li>test action graph</li>
  20. </ul>
  21. <!-- START DIV: LIST -->
  22. <div id="List">
  23. <div id="ListTriggers"></div>
  24. <div id="ListActions"></div>
  25. <div id="ListFlowActions"></div>
  26. </div>
  27. <!-- END DIV: LIST -->
  28. <!-- START DIV: GRAPHCONTAINER -->
  29. <div class="GraphContainer" id="GraphContainerID">
  30. <!-- START DIV: GRAPH -->
  31. <div id="Graph">
  32. </div>
  33. <!-- END DIV: GRAPH -->
  34. <!-- START DIV: TOOLBAR -->
  35. <div id="Toolbar">
  36. <ul id="ToolbarList">
  37. <li>reduce all</li>
  38. <li>expand all</li>
  39. <li>diconnect all</li>
  40. <li>reconnect all</li>
  41. <li class="border">-</li>
  42. <li class="border">+</li>
  43. </ul>
  44. </div>
  45. <!-- END DIV: TOOLBAR -->
  46. </div>
  47. <!-- END DIV: PARAMETERSCONTAINER -->
  48. <!-- START DIV: PARAMETERS -->
  49. <div id="Parameters">
  50. </div>
  51. <!-- END DIV: PARAMETERS -->
  52. <!-- START DIV: FORMSEND -->
  53. <div class="formSend">
  54. <button class="grey">Cancel</button>
  55. <button class="blue">Validate</button>
  56. </div>
  57. <!-- END DIV: FORMSEND -->
  58. <canvas id="renderCanvas" style="display:none;"></canvas>
  59. <input id="ActionsBuilderObjectName" type="hidden" />
  60. <input id="ActionsBuilderJSON" type="hidden" />
  61. </div>
  62. <!-- END DIV: CONTAINER -->
  63. <canvas id="renderCanvas" style="display:none;"></canvas>
  64. <input id="ActionsBuilderObjectName" type="hidden" />
  65. <input id="ActionsBuilderJSON" type="hidden" />
  66. <script src="babylon.max.js" type="text/javascript"></script>
  67. <script src="raphael.js" type="text/javascript"></script>
  68. <script src="actionKinds.js" type="text/javascript"></script>
  69. <script src="action.js" type="text/javascript"></script>
  70. <script src="utils.js" type="text/javascript"></script>
  71. <script src="viewer.js" type="text/javascript"></script>
  72. <script src="viewserToolbar.js" type="text/javascript"></script>
  73. <script src="parametersManager.js" type="text/javascript"></script>
  74. <script src="list.js" type="text/javascript"></script>
  75. <script src="contextMenu.js" type="text/javascript"></script>
  76. <script type="text/javascript">
  77. var graph = new AB.Graph();
  78. var list = new AB.List(graph);
  79. list.createListElements();
  80. graph.update();
  81. function resetList(type) {
  82. list.objectType = type;
  83. list.clearList();
  84. list.createListElements();
  85. }
  86. function updateObjectName() {
  87. var name = document.getElementById("ActionsBuilderObjectName").value;
  88. if (list.objectType == AB.ActionsBuilder.Type.SCENE)
  89. name += " - Scene";
  90. else
  91. name += " - Mesh";
  92. graph.root.text.attr("text", name);
  93. graph.objectName = name;
  94. }
  95. function setIsScene() {
  96. resetList(AB.ActionsBuilder.Type.SCENE);
  97. }
  98. function setIsObject() {
  99. resetList(AB.ActionsBuilder.Type.OBJECT);
  100. }
  101. function updateJSONFromGraph() {
  102. var json = graph.createJSON();
  103. json.name = graph.objectName;
  104. document.getElementById("ActionsBuilderJSON").value = JSON.stringify(json);
  105. }
  106. function updateGraphFromJSON() {
  107. var value = document.getElementById("ActionsBuilderJSON").value;
  108. if (value == null || value == "")
  109. return;
  110. graph.loadFromJSON(JSON.parse(value));
  111. graph.update();
  112. }
  113. function setMeshesNames(names) {
  114. for (var i = 0; i < arguments.length; i++) {
  115. AB.ActionsBuilder.MeshesList.push(arguments[i]);
  116. }
  117. }
  118. function setLightsNames(names) {
  119. for (var i = 0; i < arguments.length; i++) {
  120. AB.ActionsBuilder.LightsList.push(arguments[i]);
  121. }
  122. }
  123. function setCamerasNames(names) {
  124. for (var i = 0; i < arguments.length; i++) {
  125. AB.ActionsBuilder.CamerasList.push(arguments[i]);
  126. }
  127. }
  128. function setSoundsNames(names) {
  129. for (var i = 0; i < arguments.length; i++) {
  130. var soundName = arguments[i];
  131. if (soundName != "" && AB.ActionsBuilder.SoundsList.indexOf(arguments[i]) == -1) {
  132. AB.ActionsBuilder.SoundsList.push(arguments[i]);
  133. }
  134. }
  135. }
  136. // Manage color theme
  137. graph.graph.canvas.style.background = "-ms-linear-gradient(top, rgba(38, 38, 38,1) 0%, rgba(125, 126, 125, 1) 100%)";
  138. graph.graph.canvas.style.background = "linear-gradient(top, rgba(38, 38, 38,1) 0%, rgba(125, 126, 125, 1) 100%)";
  139. graph.graph.canvas.style.background = "-webkit-linear-gradient(top, rgba(38, 38, 38,1) 0%, rgba(125, 126, 125, 1) 100%)";
  140. graph.graph.canvas.style.background = "-o-linear-gradient(top, rgba(38, 38, 38,1) 0%, rgba(125, 126, 125, 1) 100%)";
  141. list.setColorTheme("rgb(64, 64, 64)");
  142. graph.parametersManager.parametersElement.style.backgroundColor = "rgb(64, 64, 64)"; //graph.parametersManager.parametersElement.style.backgroundColor = "#565656";
  143. function createDebugElements() {
  144. setMeshesNames("1", "2", "3", "4");
  145. setCamerasNames("1", "2", "3", "4");
  146. setLightsNames("1", "2", "3", "4");
  147. document.getElementById("ActionsBuilderObjectName").value = "Unnamed";
  148. updateObjectName();
  149. var structure = '{"type":3,"name":"Jeffrey - Mesh","detached":false,"children":[{"type":0,"name":"OnLeftPickTrigger","detached":false,"children":[{"type":1,"name":"CombineAction","detached":false,"children":[{"type":2,"name":"ValueCondition","detached":false,"children":[{"type":1,"name":"SwitchBooleanAction","detached":false,"children":[],"combine":[],"properties":[{"name":"target","value":"Jeffrey","targetType":"MeshProperties"},{"name":"propertyPath","value":"isVisible"}]}],"combine":[],"properties":[{"name":"target","value":"Jeffrey","targetType":"MeshProperties"},{"name":"propertyPath","value":"position.x"},{"name":"value","value":"0"},{"name":"operator","value":"IsEqual"}]}],"combine":[{"type":1,"name":"InterpolateValueAction","detached":false,"children":[],"combine":[],"properties":[{"name":"target","value":"Jeffrey","targetType":"MeshProperties"},{"name":"propertyPath","value":"position.x"},{"name":"value","value":"0"},{"name":"duration","value":"3000"},{"name":"stopOtherAnimations","value":"false"}]},{"type":1,"name":"InterpolateValueAction","detached":false,"children":[],"combine":[],"properties":[{"name":"target","value":"Jeffrey","targetType":"MeshProperties"},{"name":"propertyPath","value":"position.y"},{"name":"value","value":"20"},{"name":"duration","value":"3000"},{"name":"stopOtherAnimations","value":"false"}]}],"properties":[]},{"type":1,"name":"InterpolateValueAction","detached":false,"children":[],"combine":[],"properties":[{"name":"target","value":"Jeffrey","targetType":"MeshProperties"},{"name":"propertyPath","value":"scaling.x"},{"name":"value","value":"4"},{"name":"duration","value":"1000"},{"name":"stopOtherAnimations","value":"false"}]}],"combine":[],"properties":[]},{"type":0,"name":"OnIntersectionEnterTrigger","detached":false,"children":[{"type":1,"name":"SetValueAction","detached":false,"children":[],"combine":[],"properties":[{"name":"target","value":"Jeffrey","targetType":"MeshProperties"},{"name":"propertyPath","value":"scaling.y"},{"name":"value","value":"10"}]}],"combine":[],"properties":[{"name":"parameter","value":"Deltakosh","targetType":"MeshProperties"}]},{"type":0,"name":"OnIntersectionExitTrigger","detached":false,"children":[{"type":1,"name":"SetValueAction","detached":false,"children":[],"combine":[],"properties":[{"name":"target","value":"Jeffrey","targetType":"MeshProperties"},{"name":"propertyPath","value":"scaling.y"},{"name":"value","value":"1"}]}],"combine":[],"properties":[{"name":"parameter","value":"Deltakosh","targetType":"MeshProperties"}]}],"combine":[],"properties":[]}';
  150. graph.loadFromJSON(JSON.parse(structure));
  151. graph.update();
  152. }
  153. //createDebugElements();
  154. var onResize = function (event) {
  155. var graphContainer = document.getElementById("GraphContainerID");
  156. var graphElement = document.getElementById("Graph");
  157. graphElement.style.height = window.innerHeight - graphContainer.clientTop - 80 + "px";
  158. var parametersElement = document.getElementById("Parameters");
  159. var listElement = document.getElementById("List");
  160. parametersElement.style.height = listElement.getBoundingClientRect().height + "px";
  161. };
  162. onResize();
  163. window.addEventListener("resize", onResize);
  164. </script>
  165. </body>
  166. </html>