<!DOCTYPE html>
<html lang="en">
	<head>
		<title>MetaVoxel</title>
		<meta charset="utf-8">
		<meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
		<!-- <link type="text/css" rel="stylesheet" href="main.css"> -->
		<style>
			body {
				background-color: #f0f0f0;
				color: #444;
				width: 100%;
    			height: 100%;
			}
			#webgl {
				width: 100px;
    			height: 100px;
			}
		</style>
	</head>
	<body >
		<div id="webgl">	</div>
		
		<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>

		<script type="text/javascript" src="https://files.mcneel.com/rhino3dm/js/latest/rhino3dm.js"></script>
		
		<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@1.0.0/dist/tf.min.js"></script>

		<!-- <script src="./lib/require.js"></script> -->

		<script src="../lib/three.min.js"></script>

        <script src="../lib/stats.js"></script>
        <script src="../lib/dat.gui.js"></script>

		<script src="../lib/SVGRenderer.js"></script>
		

        <script src="../lib/DragControls.js"></script>
        <script src="../lib/OrbitControls.js"></script>
		<script src="../lib/TransformControls.js"></script>
		
		<script src="../lib/js-colormaps.js"></script>
		<script src="../lib/LineSegments2.js"></script>
		<script src="../lib/LineSegmentsGeometry.js"></script>
		<script src="../lib/Line2.js"></script>
		<script src="../lib/LineMaterial.js"></script>
		<script src="../lib/LineGeometry.js"></script>
		<script src="../lib/GeometryUtils.js"></script>

		<script src="../visualization/utils.js"></script> 

		<!-- <script src="./beamFea.js"></script> 
		<script src="./geometry.js"></script>  -->
		<script src="../visualization/main.js"></script> 
		<script src="../visualization/geometry.js"></script> 

		<script src="../fea/parallelFea.js"></script> 

		<script type="text/javascript" src="./rhino3dm.js"></script>


		<script src="../json/parallelVoxel.js"></script> 
		<script src="../json/parallelCube.js"></script> 

		<script>
			
			
			// $.getJSON("../json/setupChiral.json", function(json) {
			// 	setup=json.setup;
			// 	setup.viz.colorMaps=[coolwarm,YlGnBu, winter ,jet];
			// 	init();
			// 	drawStructure();
			// 	colorEdges();
			// 	animate();
				
			// });

			// init();
			// drawStructure();
			// colorEdges();
			// animate();

			$.getJSON("../json/setupScaling.json", function(json) {
				setup=json.setup;
				setup.viz.colorMaps=[YlGnBu,coolwarm, winter ,jet];
				setup.viz.minStress=10e6;
				setup.viz.maxStress=-10e6;
				rhino3dm().then(async m => {
					console.log('Loaded rhino3dm.');

					_rhino3dm = m; // global

					

					var material={
						area:25.0,
						density:0.028,
						stiffness:10000000
					};

					var matB=new _rhino3dm.BoundingBox([-1000,-1000,-1000], [1000,1000,1000]);
					var diffMaterialBox=[[matB,material]];
					changeMaterialFromBox(setup,diffMaterialBox);


					three= new threejs(setup,"webgl","");
					three.init();
					// three.drawStructure();
					// three.colorEdges();
					// three.animate();

					var numTimeSteps=10;
					var dt=0.0251646; //?? todo change to recommended step
					// var dt=0.001; //?? todo change to recommended step
					initialize(setup);
					var tt0 = performance.now();
					for(var i=0;i<numTimeSteps;i++){
						var t0 = performance.now();
						doTimeStep(setup,dt);
						var t1 = performance.now();
						console.log("doTimeStep "+ i+" took " + (t1 - t0) + " milliseconds.");
						// console.log("")
						// console.log("")
					}
					var tt1 = performance.now();
					console.log("total time: "+ (tt1 - tt0) + " milliseconds.");
					three.colorEdges();
				});
				
				
			});
		</script>

		


    </body>
</html>