class Plane{ float px, py, pz, pw, ph; Cube ccA; Cube ccB; ArrayList cc; ArrayList ccNew = new ArrayList(); int count = 0; char letter = '@' + 26; boolean clickedOn; Plane(float x, float y, float z, float w, float h){ this.px = x; this.py = y; this.pz = z; this.pw = w; this.ph = h; declareCubes(); } void declareCubes(){ cc = new ArrayList(); for(int i = 0; i < numb; i++){ Cube c = new Cube(pw/numb); cc.add(cc.size(), c); Cube pos = (Cube) cc.get(i); pos.position(px+pw, py + (i*pw/numb), pz ); } } void createPlane(){ noFill(); stroke(255); strokeWeight(0.3); rectMode(CORNERS); pushMatrix(); translate(px+pw, py+pw, pz); Cube planeCube = new Cube(pw); planeCube.create(px, py, pz, pw); popMatrix(); for (int i = 0; i < cc.size(); i++){ Cube cSel = (Cube) cc.get(i); if(cSel.selected == true){ count++; if(cSel.bw > p.pw - 0.8){ update(); }else if (count ==1){ // declareNewCubes(cSel); } // newCubesToPlane(cSel); addNewCubes(cSel); updateParentCube(cSel); } } } void addCubesToPlane(){ int count = 0; for(int i = 0; i < cc.size(); i++){ Cube cCre = (Cube) cc.get(i); cCre.create(px, py, pz, pw); cCre.addLetter(cCre, letter); if(letter > '@' ){ letter--; println(letter); if(letter == '@'){ letter = '@' + 26; } } } for(int i=0; i 0){ Cube ccAmin = (Cube) cc.get(i-1); ccAmin.by -=2; } } } } } /* void declareNewCubes(Cube sCube){ Cube cSelParent = sCube; for( int i = 0; i < numb; i++){ Cube cNew = new Cube(cSelParent.w/numb); ccNew.add(ccNew.size(), cNew); Cube posNew = (Cube) ccNew.get(i); posNew.position(cSelParent.bx, (cSelParent.by + (i*cSelParent.bw/numb))-cSelParent.bw, cSelParent.bz); } } void newCubesToPlane(Cube sCube){ Cube cSelParent = sCube; for( int i = 0; i < numb; i++){ Cube posNew = (Cube) ccNew.get(i); posNew.create(cSelParent.bx, cSelParent.by, cSelParent.bz, cSelParent.bw); } }*/ void addNewCubes(Cube sCube){ Cube cSelParent = sCube; for( int i = 0; i < numb; i++){ Cube cNew = new Cube(cSelParent.w/numb); ccNew.add(ccNew.size(), cNew); cSelParent.addLetter2(cSelParent, letter); if(letter > '@' ){ letter--; println(letter); if(letter == '@'){ letter = '@' + 26; } } Cube posNew = (Cube) ccNew.get(i); posNew.position(cSelParent.bx, (cSelParent.by + (i*cSelParent.bw/numb))-cSelParent.bw, cSelParent.bz); posNew.create(cSelParent.bx, cSelParent.by, cSelParent.bz, cSelParent.bw); println(ccNew.size()); } } void update(){ for( int i = 0; i < cc.size(); i++){ Cube cSel = (Cube) cc.get(i); cSel.bw = pw/26; cSel.s = 12; cSel.s2 = 12; if(cSel.clickedOn == true){ popLetter(cSel); } } for(int i = 0; i < cc.size(); i++){ Cube newCube = (Cube) cc.get(i); newCube.position(p.px+p.pw, p.py+p.pw/2, p.pz); } } void updateParentCube(Cube parentCube){ for( int i = 0; i < ccNew.size(); i++){ Cube cSel = (Cube) ccNew.get(i); cSel.bw = parentCube.bw/26; } for(int i = 0; i < ccNew.size(); i++){ Cube newCube = (Cube) ccNew.get(i); newCube.position(parentCube.bx+parentCube.bw, parentCube.by+parentCube.bw/2, parentCube.bz); } } void popLetter(Cube parentCube){ Cube poppingCube = new Cube(parentCube.w/2); poppingCube.position(parentCube.bx, parentCube.by, parentCube.bz); poppingCube.create(parentCube.bx, parentCube.by, parentCube.bz, parentCube.bw); poppingCube.addLetter(poppingCube, parentCube.letter); poppingCube.z++; } }