function size( cu ){ split(cu, c, ",") return (c[2]-c[1]+1)*(c[4]-c[3]+1)*(c[6]-c[5]+1) } function cubestate( cu ){ return substr(cu,length(cu)) } function intersect(cube1, cube2){ split(cube1,c1,",") split(cube2,c2,",") difx = (c1[1]0 && dify>0 && difz>0) return difx*dify*difz else return 0 } { state = ($1=="on") ? 1 : 0 split($2,arr,",") split(arr[1],x,/\.\./) split(arr[2],y,/\.\./) split(arr[3],z,/\.\./) sub(/^.=/,"",x[1]) sub(/^.=/,"",y[1]) sub(/^.=/,"",z[1]) x[1] = strtonum(x[1]) y[1] = strtonum(y[1]) z[1] = strtonum(z[1]) cube[NR] = x[1] "," x[2] "," y[1] "," y[2] "," z[1] "," z[2] "," state print cube[NR], size(cube[NR]), cubestate(cube[NR]) } END{ print "" for(i=1;i