Эх сурвалжийг харах

List all required board sizes.

Lee Morgan 1 жил өмнө
parent
commit
a243bb5f6e

+ 49 - 2
views/objects/setup.js

@@ -47,8 +47,55 @@ function render(time){
 renderer.render(scene, camera);
 requestAnimationFrame(render);
 
-export function compute(data){
-    console.log(data);
+export function compute(boards){
+    console.time("thing");
+    let specs = document.getElementById("specs");
+    let data = {};
+    for(let i = 0; i < boards.length; i++){
+        if(data[boards[i].type]){
+            data[boards[i].type].totalLength += boards[i].length;
+            data[boards[i].type].lengths.push(boards[i].length);
+        }else{
+            data[boards[i].type] = {
+                totalLength: boards[i].length,
+                lengths: [boards[i].length]
+            }
+        }
+    }
+
+    let keys = Object.keys(data);
+    //Create board list
+    let boardList = [["", ""]];
+    for(let i = 0; i < keys.length; i++){
+        boardList.push([keys[i], ""]);
+        for(let j = 0; j < data[keys[i]].lengths.length; j++){
+            boardList.push(["", `${data[keys[i]].lengths[j]}"`]);
+        }
+    }
+
+    const boardListTable = createTable(boardList);
+    specs.appendChild(boardListTable);
+}
+
+function createTable(data){
+    const table = document.createElement("table");
+
+    const header = document.createElement("tr");
+    table.appendChild(header);
+
+    for(let i = 0; i < data.length; i++){
+        const rowType = i === 0 ? "th" : "tr";
+        const row = document.createElement(rowType);
+        table.appendChild(row);
+
+        for(let j = 0; j < data[i].length; j++){
+            const td = document.createElement("td");
+            td.textContent = data[i][j];
+            row.appendChild(td);
+        }
+    }
+
+    return table;
 }
 
 export const Group = three.Group;

+ 2 - 2
views/workbench/index.html

@@ -7,7 +7,7 @@
         *{margin:0;padding:0;box-sizing:border-box;}
         #canvas{height:100vh;width:100vw;display:block;}
         .label{color: #ffffff;font-family:sans-serif;padding:2px;background:rgba(0,0,0,0.6);font-size:10px;}
-        #specs{height:250px;width:250px;position:fixed;top:0;left:0;background:rgb(200,200,200);overflow:auto;}
+        #specs{height:100%;width:250px;position:fixed;top:0;left:0;background:rgb(200,200,200);overflow:auto;}
         h3{text-align:center;}
     </style>
     <script type="importmap">
@@ -25,7 +25,7 @@
 <body>
     <canvas id="canvas"></canvas>
     <div id="specs">
-        <h3>Specs</h3> 
+        <h3>Materials</h3> 
     </div>
     <script type="module" src="/workbench.js"></script>
 </body>

+ 0 - 3
views/workbench/workbench.js

@@ -1,9 +1,6 @@
 import {scene, Group, compute} from "setup";
 import Board from "board";
 
-const container = new Group();
-scene.add(container);
-
 const boards = [];
 
 createLegs();