memoscan
← all memos

Memo 0x3bf528e0…074680 on Ethereum

function init(){scene=new THREE.Scene,renderer=new THREE.WebGLRenderer({antialias:!1}),renderer.setPixelRatio(devicePixelRatio);let e=document.getElementById("container");renderer.setClearColor(displayColors.background),e.appendChild(renderer.domElement),renderer.domElement.style.zIndex="-1",camera=new THREE.OrthographicCamera(-M.var.zoom,M.var.zoom,M.var.zoom,-M.var.zoom,1,1e3),camera.position.set(0,0,35),camera.lookAt(0,0,0),raycaster=new THREE.Raycaster,mouse=new THREE.Vector2,weave=new weavedraft,updateCamera(),createTableSnippet(formatTextforTable(),displayColors.ground),console.log(weave),onWindowResize(),window.addEventListener("resize",onWindowResize,!1)}function animate(){requestAnimationFrame(animate),render()}function render(){renderer.render(scene,camera)}function onWindowResize(){updateCamera(),styleSquareDiv(),styleTextUpdate(),render()}function updateCamera(){let e=new THREE.Box3,r=e.getSize(new THREE.Vector3),t=e.getCenter(new THREE.Vector3);r=new THREE.Vector3(58,59,10),t=new THREE.Vector3(1.5,-9,5),DIM.x=DIM.y=Math.min(window.innerWidth,window.innerHeight),renderer.setSize(DIM.x,DIM.y);let a,o=DIM.x/DIM.y,l=r.x/r.y,i=1.4;l>o?(a=r.x/i,camera.right=a,camera.top=a/o,camera.bottom=-a/o):(a=r.y/i,camera.top=a,camera.bottom=-a,camera.left=-a*o,camera.right=a*o),camera.position.set(t.x,t.y,35),camera.lookAt(t),camera.updateProjectionMatrix()}function saveCanvas(e=M.seed){let r=e+".png",t=renderer.domElement.toDataURL(),a=document.createElement("a");a.href=t,a.download=r,a.target="_blank",document.body.appendChild(a),a.click(),document.body.removeChild(a),console.log("saved Canvas")}function saveLargeCanvas(e,r){let t=document.createElement("canvas");t.width=r,t.height=r;let a=new THREE.WebGLRenderer({canvas:t,antialias:!1});a.setPixelRatio(devicePixelRatio),a.setPixelRatio(2),a.setSize(r,r),a.setClearColor(displayColors.background),a.render(scene,camera);let o=t.toDataURL("image/png"),l=document.createElement("a");l.href=o,l.download=e+".png",l.target="_blank",document.body.appendChild(l),l.click(),document.body.removeChild(l),a.dispose(),console.log("Saved large canvas")}function saveText(e=M.seed){var r=wPat_print,t=new Blob([r],{type:"text/plain"}),a=URL.createObjectURL(t),o=document.createElement("a");o.href=a,o.download=e+".txt",document.body.appendChild(o),o.click(),document.body.removeChild(o),console.log("Saved Image ")}function createText(){const e=document.querySelector("canvas"),r=e.parentElement;let t=document.getElementById("overlay");t||(t=document.createElement("div"),t.id="overlay",t.style.position="absolute",t.style.top=e.offsetTop+"px",t.style.left=e.offsetLeft+"px",t.style.width=e.offsetWidth+"px",t.style.height=e.offsetHeight+"px",r.appendChild(t));const a=document.createElement("div");a.id="table-wrapper";let o=["Pattern:","Colors:","Palette:","Bindings:","Spacing:","Instructions:"],l=0;const i=document.createElement("table");for(let e=0;e<3;e++){const e=document.createElement("tr");for(let r=0;r<2;r++){const r=document.createElement("td");r.textContent=`${o[l]} ${l}`,e.appendChild(r),l++}i.appendChild(e)}i.style.width="100%",i.style.height="100%",i.style.borderCollapse="collapse",a.appendChild(i),t.appendChild(a)}function formatJson(){delete M.var.warpColors,delete M.var.weftColors,delete M.var.theRules;for(let e=0;e<M.var.colorWarp.length;e++)M.var.colorWarp[e]="0x"+M.var.colorWarp[e].getHexString();for(let e=0;e<M.var.colorWeft.length;e++)M.var.colorWeft[e]="0x"+M.var.colorWeft[e].getHexString();M.var.activeColor=M.var.activeColor.getHexString(),M.var.inactiveColor=M.var.inactiveColor.getHexString(),M.var.backgroundColor=M.var.backgroundColor.getHexString(),delete M.var.activeColor,delete M.var.inactiveColor}function saveJson(e=M.seed){let r=e+".json",t=M;downloadFile(t,r),console.log("saved Json!")}function downloadFile(e,r){var t=r.split("."),a=t[t.length-1],o="json"==a?new Blob([JSON.stringify(e,null,2).replace(/\\n/g,"\n").replace(/\\"/g,'"')],{type:"application/json"}):new Blob([Papa.unparse(e)],{type:"text/plain"}),l=document.createElement("a");document.body.appendChild(l),l.download=r,l.href=window.URL.createObjectURL(o),l.click(),l.parentNode.removeChild(l)}function addGUI(){}function rand(e=0,r=1){return e+(r-e)*R.random_dec()}function rInt(e,r){return e<r?Math.floor(rand(e,r+1)):Math.floor(rand(r,e+1))}function randChoice(e){return e[rInt(0,e.length-1)]}function rWeightedItems(e,r){let t={select:rand(),index:null,sum:0,mode:null,tempMin:0,tempMax:0};for(let e=0;e<r.length;e++)t.sum+=r[e];for(let a=0;a<e.length;a++)t.tempMax=r[a]/t.sum+t.tempMin,t.tempMin<=t.select&&t.select<t.tempMax&&0!=r[a]&&(t.index=a),t.tempMin+=r[a]/t.sum;return e[t.index]}function genTokenData(e=0){let r={},t="0x";for(var a=0;a<64;a++)t+=Math.floor(16*seedRand()).toString(16);return r.hash=t,r.tokenId=(1e6*e+Math.floor(1e3*seedRand())).toString(),r}function sfc32(e,r,t,a){return function(){e>>>=0,r>>>=0,t>>>=0,a>>>=0;var o=e+r|0;return e=r^r>>>9,r=t+(t<<3)|0,t=t<<21|t>>>11,a=a+1|0,o=o+a|0,t=t+o|0,(o>>>0)/4294967296}}function cyrb128(e){let r=1779033703,t=3144134277,a=1013904242,o=2773480762;for(let l,i=0;i<e.length;i++)l=e.charCodeAt(i),r=t^Math.imul(r^l,597399067),t=a^Math.imul(t^l,2869860233),a=o^Math.imul(a^l,951274213),o=r^Math.imul(o^l,2716044179);return r=Math.imul(a^r>>>18,597399067),t=Math.imul(o^t>>>22,2869860233),a=Math.imul(r^a>>>17,951274213),o=Math.imul(t^o>>>19,2716044179),[(r^t^a^o)>>>0,(t^r)>>>0,(a^r)>>>0,(o^r)>>>0]}function triangleWave(e,r,t,a){if(t<=0)throw new Error("Height must be positive");const o=(e+a)*r,l=2*t-2,i=o%l;return t%2==0?i<t?i:i<l-t?t-1:i-l:i<t?i:l-i}function shuffleArray(e){for(let r=e.length-1;r>0;r--){const t=Math.floor(rand(0,r)),a=e[r];e[r]=e[t],e[t]=a}return e}function shuffleArrayRandom(e){for(let r=e.length-1;r>0;r--){const t=Math.floor(Math.random()*r),a=e[r];e[r]=e[t],e[t]=a}return e}function fetchColors(e,r,t,a){let o,l,i=M.var.displayMode;if("Original"==i)o=1===r[t][a]?M.var.activeColor:M.var.inactiveColor,l=M.var.activeColor;else if("Inverse"==i||"Grid"==i)1===r[t][a]?(o=displayColors[e].active.cell,l=displayColors[e].active.edge):(o=displayColors[e].inactive.cell,l=displayColors[e].inactive.edge);else if("Weave Colors"==i)if("tieUp"==e)1===r[t][a]?(o=displayColors[e].active.cell,l=displayColors[e].active.edge):(o=displayColors[e].inactive.cell,l=displayColors[e].inactive.edge);else{let i;"threading"==e?i=a%displayColors[e].active.cell.length:"treadling"==e&&(i=t%displayColors[e].active.cell.length);let n=displayColors[e].active.cell[i];1===r[t][a]?(o=n,l=n==displayColors.background&&displayColors.tieUp.inactive.cell):(o=displayColors[e].inactive.cell,l=displayColors[e].inactive.edge)}return{cell:o,edge:l}}function toggleText(){"block"==squareDiv.style.display?squareDiv.style.display="none":squareDiv.style.display="block"}function styleSquareDiv(){let e=DIM.x;M.var.textVisible?squareDiv.style.display="block":squareDiv.style.display="none",squareDiv.style.position="absolute",squareDiv.style.height=e+"px",squareDiv.style.width=e+"px",squareDiv.style.left="50%",squareDiv.style.top="50%",squareDiv.style.transform="translate(-50%, -50%)",styleInnerDiv()}function styleInnerDiv(){innerDiv.style.position="absolute",innerDiv.style.bottom="0",innerDiv.style.width="68.5%",innerDiv.style.height="14.8%",innerDiv.style.left="50%",innerDiv.style.transform="translateX(-50%)",innerDiv.style.zIndex="5"}function createTableSnippet(e=["","","","",""],r="black",t=innerDiv){let a=["Pattern: ","Warp Colors: ","Palette: ","Weft Colors: ","Spacing: ","Bindings: "];for(let r=0;r<e.length;r++)a[r]+=e[r];r instanceof THREE.Color&&(r=r.getHexString());let o=document.createElement("table"),l=document.createElement("tbody");o.appendChild(l),o.style.width="100%",o.style.tableLayout="fixed",o.style.zIndex="5";var i=[[a[0],a[1]],[a[2],a[3]],[a[4],a[5]]];i.forEach(function(e,t){let a=document.createElement("tr");e.forEach(function(e){let t=document.createElement("td");t.innerText=e,t.style.color="#"+r,t.style.whiteSpace="nowrap",a.appendChild(t),tabelCells.push(t)}),l.appendChild(a)}),t?t.appendChild(o):console.error("Parent element not found.")}function styleTextUpdate(){let e;e=DIM.x>1e3?"18px":DIM.x>600?"16px":DIM.x>450?"14px":"12px",tabelCells.forEach(function(r){r.style.fontSize=e,DIM.x<300?r.style.display="none":r.style.display="table-cell"})}function formatTextforTable(){M.var.colorWarpNames,M.var.colorWeftNames;let e="",r="",t=[];for(let r of M.var.colorWarpNames)e+=`${r}, `;e=e.slice(0,-1),e=e.slice(0,-1);for(let e of M.var.colorWeftNames)r+=`${e}, `;return r=r.slice(0,-1),r=r.slice(0,-1),t[0]=M.var.preset,t[1]=e,t[2]=M.var.colorSelectName,t[3]=r,t[4]=M.var.verticalSpacingType,t[5]=displayColors.backgroundName,t}let credits=shuffleArrayRandom(["Benjamin Aranda","Chris Lasch","Jesse Bassett","Joaquin Bonifaz"]);console.log("Drafting by ArandaLasch"),console.log(`${credits[0]}, ${credits[1]}, ${credits[2]}, ${credits[3]}`),console.log("");class Random{constructor(){this.useA=!1;let e=function(e){let r=parseInt(e.substr(0,8),16),t=parseInt(e.substr(8,8),16),a=parseInt(e.substr(16,8),16),o=parseInt(e.substr(24,8),16);return function(){r|=0,t|=0,a|=0,o|=0;let e=(r+t|0)+o|0;return o=o+1|0,r=t^t>>>9,t=a+(a<<3)|0,a=a<<21|a>>>11,a=a+e|0,(e>>>0)/4294967296}};this.prngA=new e(tokenData.hash.substr(2,32)),this.prngB=new e(tokenData.hash.substr(34,32));for(let e=0;e<1e6;e+=2)this.prngA(),this.prngB()}random_dec(){return this.useA=!this.useA,this.useA?this.prngA():this.prngB()}random_bool(e){return this.random_dec()<e}random_num(e,r){return e+(r-e)*this.random_dec()}random_int(e,r){return Math.floor(this.random_num(e,r+1))}}R=new Random;let gui,newDiv=document.createElement("div");newDiv.id="container",newDiv.style.display="inline-block",newDiv.style.margin="0",newDiv.style.width="100%",newDiv.style.height="100%",document.body.appendChild(newDiv),document.documentElement.style.overflow="hidden",document.body.style.overflow="hidden";let renderer,camera,scene,raycaster,mouse,myCa,devicePixelRatio=window.devicePixelRatio||1,wPat="",wPat_print="",DIM={x:Math.min(window.innerWidth,window.innerHeight)};DIM.y=DIM.x;let tabelCells=[],squareDiv=document.createElement("div"),innerDiv=document.createElement("div");squareDiv.appendChild(innerDiv),newDiv.appendChild(squareDiv);let weave,displayColors={treadling:{active:{cell:16777215,edge:0},inactive:{cell:16777215,edge:0}},tieUp:{active:{cell:16777215,edge:0},inactive:{cell:16777215,edge:0}},threading:{active:{cell:16777215,edge:0},inactive:{cell:16777215,edge:0}},background:0,backgroundName:"White"},druckerSatinColors={oliveGreen:3686464,tenderGreen:5335383,appleGreen:10141309,emeraldGreen:1206126,purpleMaroon:4859707,carminRed:4859707,scarletRed:10625597,rubyRed:5975353,terracotta:8929589,pink:10966369,lightPink:12019057,black:2171945,grey:6909033,blueGrey:12566711,white:14870756,royalBlue:2243701,ultraMarine:1648699,lavenderBlue:3489100,lagoonBlue:30409,softBlue:5604238,waterGreen:10663343,chocolate:3880760,weatheredGold:6246469,beige:10060646,taupe:10390910,ivory:14339747,orange:13128752,peach:14527854,yellowTumeric:13080618,brightYellow:14660864},colorNames={oliveGreen:{eng:"Olive Green",fr:"Vert Olive"},tenderGreen:{eng:"Tender Green",fr:"Vert Tendre"},appleGreen:{eng:"Apple Green",fr:"Vert Pomme"},emeraldGreen:{eng:"Emerald Green",fr:"Vert Emeraude"},purpleMaroon:{eng:"Purple Maroon",fr:"Bordeaux Violet"},carminRed:{eng:"Carmin Red",fr:"Rouge Carmin"},scarletRed:{eng:"Scarlet Red",fr:"Rouge Ecarlate"},rubyRed:{eng:"Ruby Red",fr:"Rouge Rubis"},terracotta:{eng:"Terracotta",fr:"Terracotta"},pink:{eng:"Pink",fr:"Rose"},lightPink:{eng:"Light Pink",fr:"Rose Pastel"},black:{eng:"Black",fr:"Noir"},grey:{eng:"Grey",fr:"Gris"},blueGrey:{eng:"Blue Grey",fr:"Gris Bleute"},white:{eng:"White",fr:"Blanc"},royalBlue:{eng:"Royal Blue",fr:"Bleu Royal"},ultraMarine:{eng:"Ultra Marine",fr:"Bleu Outrener"},lavenderBlue:{eng:"Lavender Blue",fr:"Bleu Lavande"},lagoonBlue:{eng:"Lagoon Blue",fr:"Bleu Lagon"},softBlue:{eng:"Soft Blue",fr:"Bleu Doux"},waterGreen:{eng:"Water Green",fr:"Vert D'Eau"},chocolate:{eng:"Chocolate",fr:"Chocolat"},weatheredGold:{eng:"Weathered Gold",fr:"Or Patine"},beige:{eng:"Beige",fr:"Beige"},taupe:{eng:"Taupe",fr:"Taupe"},ivory:{eng:"Ivory",fr:"Ivoire"},orange:{eng:"Orange",fr:"Orange"},peach:{eng:"Peach",fr:"Peche"},yellowTumeric:{eng:"Yellow Tumeric",fr:"Jaune Curcuma"},brightYellow:{eng:"BrightYellow",fr:"Jaune Vif"}},palettes={2:[{name:"Light",p:1,arr:["white","scarletRed"]},{name:"Dark",p:1,arr:["black","purpleMaroon"]},{name:"Warm",p:1,arr:["yellowTumeric","lagoonBlue"]},{name:"Warm",p:1,arr:["scarletRed","softBlue"]},{name:"Warm",p:1,arr:["terracotta","beige"]},{name:"Cool",p:1,arr:["waterGreen","black"]},{name:"Cool",p:1,arr:["waterGreen","royalBlue"]},{name:"Cool",p:1,arr:["emeraldGreen","waterGreen"]},{name:"Mix",p:1,arr:["oliveGreen","taupe"]},{name:"Mix",p:1,arr:["white","black"]},{name:"Mix",p:1,arr:["softBlue","rubyRed"]},{name:"Cool",p:1,arr:["tenderGreen","white"]},{name:"Mix",p:1,arr:["black","ivory"]},{name:"Mix",p:1,arr:["ultraMarine","ivory"]},{name:"Dark",p:1,arr:["black","weatheredGold"]},{name:"Mix",p:1,arr:["oliveGreen","lightPink"]},{name:"Warm",p:1,arr:["orange","peach"]},{name:"Cool",p:1,arr:["lagoonBlue","orange"]},{name:"Cool",p:1,arr:["waterGreen","softBlue"]},{name:"Light",p:1,arr:["grey","ivory"]},{name:"Light",p:1,arr:["pink","ivory"]},{name:"Light",p:1,arr:["white","grey"]}],3:[{name:"Light",p:1,arr:["white","weatheredGold","grey"]},{name:"Dark",p:1,arr:["carminRed","lavenderBlue","emeraldGreen"]},{name:"Warm",p:1,arr:["brightYellow","waterGreen","black"]},{name:"Warm",p:1,arr:["brightYellow","ultraMarine","peach"]},{name:"Warm",p:1,arr:["ultraMarine","orange","tenderGreen"]},{name:"Cool",p:1,arr:["royalBlue","taupe","blueGrey"]},{name:"Mix",p:1,arr:["terracotta","appleGreen","black"]},{name:"Mix",p:1,arr:["taupe","pink","emeraldGreen"]},{name:"Mix",p:1,arr:["oliveGreen","ivory","grey"]},{name:"Warm",p:1,arr:["orange","peach","brightYellow"]},{name:"Mix",p:1,arr:["oliveGreen","lightPink","appleGreen"]},{name:"Warm",p:1,arr:["oliveGreen","yellowTumeric","beige"]}],4:[{name:"Light",p:1,arr:["white","softBlue","emeraldGreen","scarletRed"]},{name:"Light",p:1,arr:["lagoonBlue","royalBlue","orange","white"]},{name:"Light",p:1,arr:["terracotta","ultraMarine","lightPink","lagoonBlue"]},{name:"Dark",p:1,arr:["weatheredGold","rubyRed","ultraMarine","lagoonBlue"]},{name:"Warm",p:1,arr:["ivory","taupe","blueGrey","appleGreen"]},{name:"Warm",p:1,arr:["scarletRed","rubyRed","purpleMaroon","white"]},{name:"Cool",p:1,arr:["waterGreen","tenderGreen","lightPink","purpleMaroon"]},{name:"Cool",p:1,arr:["lagoonBlue","ivory","brightYellow","purpleMaroon"]},{name:"Mix",p:1,arr:["black","weatheredGold","grey","appleGreen"]},{name:"Mix",p:1,arr:["emeraldGreen","scarletRed","taupe","chocolate"]},{name:"Mix",p:1,arr:["oliveGreen","waterGreen","beige","scarletRed"]},{name:"Mix",p:1,arr:["grey","carminRed","rubyRed","peach"]},{name:"Cool",p:1,arr:["tenderGreen","ivory","weatheredGold","oliveGreen"]},{name:"Warm",p:1,arr:["rubyRed","terracotta","yellowTumeric","peach"]},{name:"Mix",p:1,arr:["tenderGreen","terracotta","ivory","taupe"]}],5:[{name:"Light",p:1,arr:["waterGreen","white","beige","terracotta","ultraMarine"]},{name:"Dark",p:1,arr:["chocolate","grey","blueGrey","ivory","weatheredGold"]},{name:"Warm",p:1,arr:["peach","orange","tenderGreen","scarletRed","waterGreen"]},{name:"Warm",p:1,arr:["terracotta","pink","scarletRed","ivory","grey"]},{name:"Red",p:1,arr:["grey","orange","beige","ultraMarine","weatheredGold"]},{name:"Cool",p:1,arr:["royalBlue","ultraMarine","lavenderBlue","softBlue","waterGreen"]},{name:"Mix",p:1,arr:["emeraldGreen","scarletRed","taupe","chocolate","oliveGreen"]},{name:"Mix",p:1,arr:["oliveGreen","waterGreen","beige","scarletRed","lightPink"]},{name:"Cool",p:1,arr:["tenderGreen","ivory","weatheredGold","oliveGreen","lavenderBlue"]},{name:"Warm",p:1,arr:["rubyRed","terracotta","yellowTumeric","peach","pink"]},{name:"Mix",p:1,arr:["tenderGreen","terracotta","ivory","taupe","weatheredGold"]}]},spacingTypes=["Standard","Tight","Close"],threadingPatternTypes=["twill","triWave","vPattern","rand"],treadlingPatternTypes=["twill","triWave","vPattern","rand"],colorPalettes=["random","analogous","fromArray","fromSelected"],presetTypes=["None","Duochrome","Figure","Linear","Field"],colorArrayNames=["Red","Yellow","Blue","Mix","Light","Dark"],colorSelectNames=["Warm","Cool","Mix","Light","Dark"],layouts=["Original","Tight"],displayModes=["Original","Inverse","Grid","Weave Colors"],M={var:{}};if(M.var={zoom:30,cellSize:1,activeColor:new THREE.Color(9803157),inactiveColor:new THREE.Color(15658734),backgroundColor:new THREE.Color(15658734),warpColors:[],weftColors:[],theRules:[0,0,0,0,0,0,0,0,1,0,0,0,0,0],maxGen:2,NUM_SHAFTS:8,NUM_THREADS:50,NUM_TREADLES:0,NUM_PICKS:0,startX:-27,startY:22,verticalSpacingType:rWeightedItems(spacingTypes,[1,2,0]),verticalSpacing:rWeightedItems([1.25,1,1],[1,2,0]),threadingPattern:rWeightedItems(threadingPatternTypes,[1,1,0,.1]),threadingSlope:rWeightedItems([.5,1,2],[1,1,1]),threadingOffset:1,threadingTranslate:0,threadingMirrorPattern:!1,threadingMirrorColor:!1,treadlingPattern:rWeightedItems(treadlingPatternTypes,[1,1,0,.1]),treadlingSlope:rWeightedItems([.5,1,2],[1,1,1]),treadlingOffset:1,treadlingTranslate:0,treadlingMirrorPattern:!1,treadlingMirrorColor:!1,colorSelectName:rWeightedItems(colorSelectNames,[1,1,1,1,1]),colorArrayName:rWeightedItems(colorArrayNames,[1,1,1,1,1,1]),colorPalette:rWeightedItems(colorPalettes,[0,0,0,1]),colorWeftCount:rWeightedItems([1,2,3],[1,1,1]),colorWarpCount:rWeightedItems([1,2,3],[1,1,1]),colorWarp:[],colorWeft:[],colorWarpNames:[],colorWeftNames:[],colorMaterial:rWeightedItems(["Satin","Glossy"],[1,0]),drawEdges:!1,passedLengthTest:!0,maxRun:8,preset:rWeightedItems(presetTypes,[0,30,15,20,35]),displayMode:rWeightedItems(displayModes,[0,35,55,10]),layout:rWeightedItems(layouts,[0,1]),threadingPosX:0,threadingPosY:0,tieUpPosX:0,tieUpPosY:0,treadlingPosX:0,treadlingPosY:0,colorWarpPosX:0,colorWarpPosY:0,colorWeftPosX:0,colorWeftPosY:0,drawdownPosX:0,drawdownPosY:0,colorWarpVisible:!0,colorWeftVisible:!1,textVisible:!1},M.var.NUM_TREADLES=M.var.NUM_SHAFTS,M.var.NUM_PICKS=M.var.NUM_THREADS,"Duochrome"==M.var.preset?(M.var.colorWeftCount=1,M.var.colorWarpCount=1):"Figure"==M.var.preset?(R.random_bool(-1)?(M.var.colorWeftCount=1,M.var.colorWarpCount=rWeightedItems([2,3],[1.25,1])):(M.var.colorWeftCount=rWeightedItems([2,3],[1,0]),M.var.colorWarpCount=1),M.var.threadingPattern=rWeightedItems(["twill","triWave"],[1,3]),M.var.threadingSlope=rWeightedItems([.5,1],[1.5,.8]),M.var.treadlingPattern=rWeightedItems(["twill","triWave"],[1,3]),M.var.treadlingSlope=rWeightedItems([.5,1],[1.5,.8])):"Linear"==M.var.preset?R.random_bool(-1)?(M.var.colorWeftCount=1,M.var.colorWarpCount=rWeightedItems([2,3],[1.25,1]),M.var.treadlingPattern=rWeightedItems(["twill","triWave"],[1,1]),M.var.treadlingSlope=rWeightedItems([1,2],[.5,1.5]),M.var.verticalSpacingType=rWeightedItems(spacingTypes,[1.1,.5,0])):(M.var.colorWeftCount=rWeightedItems([2,3],[1,1.5]),M.var.colorWarpCount=1,M.var.verticalSpacingType=rWeightedItems(spacingTypes,[1.2,.5,0]),M.var.threadingPattern=rWeightedItems(["twill","triWave"],[1,1]),M.var.threadingSlope=2,M.var.treadlingPattern=rWeightedItems(["twill","triWave"],[1,1]),M.var.treadlingSlope=rWeightedItems([1,2],[.5,1.5])):"Field"==M.var.preset&&(M.var.colorWarpCount=rWeightedItems([2,3],[1.25,1]),M.var.colorWeftCount=rWeightedItems([2,3],[1.25,1]),M.var.threadingPattern=rWeightedItems(["twill","triWave","rand"],[1,1,1]),M.var.threadingSlope=rWeightedItems([.5,1,2],[1,1,1]),M.var.treadlingPattern=rWeightedItems(["twill","triWave","rand"],[1,1,1]),M.var.treadlingSlope=rWeightedItems([.5,1,2],[1,1,1]),M.var.colorWarpCount+M.var.colorWeftCount==6&&M.var.colorWeftCount--),"Close"==M.var.verticalSpacingType?M.var.verticalSpacing=1:"Tight"==M.var.verticalSpacingType?M.var.verticalSpacing=1.25:"Standard"==M.var.verticalSpacingType&&(M.var.verticalSpacing=1.5),"Original"==M.var.layout)M.var.threadingPosX=0,M.var.threadingPosY=0,M.var.tieUpPosX=0,M.var.tieUpPosY=0,M.var.treadlingPosX=0,M.var.treadlingPosY=0,M.var.colorWarpPosX=0,M.var.colorWarpPosY=0,M.var.colorWeftPosX=0,M.var.colorWeftPosY=0,M.var.drawdownPosX=0,M.var.drawdownPosY=0,M.var.colorWarpVisible=!0,M.var.colorWeftVisible=!0;else if("Tight"==M.var.layout){let e=2,r=0;M.var.threadingPosX=0,M.var.threadingPosY=-e,M.var.tieUpPosX=-e,M.var.tieUpPosY=-e,M.var.treadlingPosX=-e+r,M.var.treadlingPosY=0,M.var.colorWarpPosX=0,M.var.colorWarpPosY=-e-1,M.var.colorWeftPosX=-e-2+r,M.var.colorWeftPosY=0,M.var.drawdownPosX=r,M.var.drawdownPosY=0,M.var.colorWarpVisible=!1,M.var.colorWeftVisible=!1}console.log("M",M);class squareGrid{constructor(e,r,t,a,o,l,i){this.name=e,this.position=new THREE.Vector2(r,t),this.size=new THREE.Vector2(a,o),this.length=a*o,this.pattern=[[]],this.mesh=[[]],this.posOffset=[[]],this.offSet={x:l,y:i}}}class weavedraft{constructor(){this.threading=new squareGrid("threading",M.var.startX+M.var.threadingPosX,M.var.startY+M.var.threadingPosY,M.var.NUM_SHAFTS,M.var.NUM_THREADS,1,1),this.tieUp=new squareGrid("tieUp",M.var.NUM_THREADS*M.var.cellSize+2+M.var.startX+M.var.tieUpPosX,M.var.startY+M.var.tieUpPosY,M.var.NUM_SHAFTS,M.var.NUM_TREADLES,1,1),this.treadling=new squareGrid("treadling",M.var.NUM_THREADS*M.var.cellSize+2+M.var.startX+M.var.treadlingPosX,-M.var.NUM_SHAFTS*M.var.cellSize-2+M.var.startY+M.var.treadlingPosY,M.var.NUM_PICKS,M.var.NUM_TREADLES,1,M.var.verticalSpacing),this.colorWarp=new squareGrid("colorWarp",M.var.startX+M.var.colorWarpPosX,M.var.startY+2+M.var.colorWarpPosY,1,M.var.NUM_THREADS,1,1),this.colorWeft=new squareGrid("colorWeft",M.var.NUM_THREADS+2+M.var.NUM_TREADLES+2+M.var.startX+M.var.colorWeftPosX,-M.var.NUM_SHAFTS*M.var.cellSize-2+M.var.startY+M.var.colorWeftPosY,M.var.NUM_PICKS,1,1,M.var.verticalSpacing),this.drawdownWarp=new squareGrid("drawdownWarp",M.var.startX+M.var.drawdownPosX,-M.var.NUM_SHAFTS*M.var.cellSize-2+M.var.startY+M.var.drawdownPosY,M.var.NUM_PICKS,M.var.NUM_PICKS,1,M.var.verticalSpacing),this.drawdownWeft=new squareGrid("drawdownWeft",M.var.startX+M.var.drawdownPosX,-M.var.NUM_SHAFTS*M.var.cellSize-2+M.var.startY+M.var.drawdownPosY,M.var.NUM_PICKS,M.var.NUM_PICKS,1,M.var.verticalSpacing),this.drawdownCheckCount=0,this.resetPattern(this.threading),this.resetPattern(this.tieUp),this.resetPattern(this.treadling),this.managePattern(),this.getColorGridS(),this.getdisplayColors(),this.offsetPattern(this.threading),this.offsetPattern(this.tieUp),this.offsetPattern(this.treadling),this.offsetPattern(this.colorWarp),this.offsetPattern(this.colorWeft),this.offsetPattern(this.drawdownWarp),this.offsetPattern(this.drawdownWeft),this.theRules=M.var.theRules,this.caTieUpGrid(),this.visualizeGrid(this.threading),this.visualizeGrid(this.tieUp),this.visualizeGrid(this.treadli