Skip to content
Snippets Groups Projects
voxelDesigner_symmetry.html 3.39 KiB
Newer Older
<head>
    <style> body { margin: 0; } </style>
    <title>Domain Viewer Symmetry</title>
    <script src="//unpkg.com/three"></script>
    <script type="text/javascript" src="https://files.mcneel.com/rhino3dm/js/latest/rhino3dm.js"></script>
    <script src="../lib/dat.gui.js"></script>
  
    <script src="../lib/js-colormaps.js"></script>
  
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
    <script src="//unpkg.com/3d-force-graph"></script>
    <!-- <script src="../lib/3d-force-graph.js"></script> -->
    <script src="//unpkg.com/three-spritetext"></script>

    <script src="../visualization/geometry.js"></script>
    <script src="../visualization/utils.js"></script>
    <script src="../visualization/drawGraph.js"></script>
    <script src="./voxelDesigner_symmetry.js"></script>


  </head>
  
  <body>
    <div id="3d-graph"></div>
  
    <script>
        var setup;
        
  

  
        rhino3dm().then(async m => {
            console.log('Loaded rhino3dm.');
        
            _rhino3dm = m; // global
            var name="twist_symmetry";
            var size=10;
            var truss={
                name:name,
                nnx:3,
                nny:5,
                nnz:3,
                dx:size/2,
                dy:size/2,
                dz:size/2,
                setup:{},

                // nnx:5,
                // nny:3,
                // nnz:1,
                // dx:size*2/3,
                // dy:size/2,
                // dz:size,


                // nnx:3,
                // nny:3,
                // nnz:1,
                // dx:size*2/3,
                // dy:size/2,
                // dz:size,

                localConnections:true,
                equals : function(other) {
                    return other.localConnections == this.localConnections && 
                    other.nnx == this.nnx &&
                    other.nny == this.nny &&
                    other.nnz == this.nnz;
                },
                save:function(){
                    var fileName = this.name+'.json';
                    this.setup.viz.colorMaps=[]
                    saveJSON(this.setup, fileName);

                }

            }
            var prevTruss=JSON.parse(JSON.stringify(truss));
            setup=createTruss(truss);

            scale=10.0;

            var container='3d-graph';

            var Graph=drawGraph(container,setup,scale,false);
            var gui = new dat.GUI();
            var params=[];
            params.push(gui.add(truss, 'name').listen());
            params.push(gui.add(truss, 'nnx', 1, 5.0).step(1).listen());
            params.push(gui.add(truss, 'nny', 1, 5.0).step(1).listen());
            params.push(gui.add(truss, 'nnz', 1, 5.0).step(1).listen());
            params.push(gui.add(truss, 'localConnections').listen());
            gui.add(truss,'save');
            for (var i=0;i<params.length;i++) {
                params[i].onChange(function(value) {
                    if(truss.equals(prevTruss)){
                        

                    }else{
                        prevTruss=JSON.parse(JSON.stringify(truss));
                        setup=createTruss(truss);
                        updateGraph(Graph,setup,scale);

                    }
                    
                    
                });
            }
            
            

            
        });



    
  
  
    </script>
  </body>