> show canvas only <


/* built with Studio Sketchpad: 
 *   https://sketchpad.cc
 * 
 * observe the evolution of this sketch: 
 *   https://designuniandes.sketchpad.cc/sp/pad/view/ro.3fT-pPjiyH9/rev.23
 * 
 * authors: 
 *   Natalia Garcia

 * license (unless otherwise specified): 
 *   creative commons attribution-share alike 3.0 license.
 *   https://creativecommons.org/licenses/by-sa/3.0/ 
 */ 



// This sketch builds on a prior work, "Assignment 2: Repetition", created by Hernando Barragan
// http://designuniandes.sketchpad.cc/sp/pad/view/ro.BpKiLNJl5Fs183/rev.1
/* @pjs preload="/static/uploaded_resources/p.15834/8151.jpg"; */
/* @pjs preload="/static/uploaded_resources/p.15834/1231.jpg"; */

Mask fig1;
Mask fig2;
Maske fig3;
Maske fig4;
PImage img;
PImage img2;

public void setup(){
  size(400,400);
  background(200);

  img = loadImage("/static/uploaded_resources/p.15834/8151.jpg");
  img2 = loadImage("/static/uploaded_resources/p.15834/1231.jpg");


  for (int i = -13; i < 78; i=i+26){
      for (int j = 0; j < 80; j=j+26){
 
  fig1 = new Mask(img,i,j);
  fig2 = new Mask(img2,i+13,j);
  
      }
  }
  
  for (int i = 220; i < 300; i=i+26){
      for (int j = 0; j < 80; j=j+26){
 
  fig1 = new Mask(img,i,j);
  fig2 = new Mask(img2,i+13,j);
  
      }
  }
  
  
for (int i = 103; i < 200; i=i+26){
      for (int j = 103; j < 200; j=j+26){
 
  fig1 = new Mask(img,i,j);
  fig2 = new Mask(img2,i+13,j);
  
      }
  }



  for (int i = 338; i < 420; i=i+26){
      for (int j = 103; j < 200; j=j+26){
 
  fig1 = new Mask(img,i,j);
  fig2 = new Mask(img2,i+13,j);
  
      }
  }
  
    for (int i = -13; i < 78; i=i+26){
      for (int j = 206; j < 300; j=j+26){
 
  fig1 = new Mask(img,i,j);
  fig2 = new Mask(img2,i+13,j);
  
      }
  }
  
  for (int i = 220; i < 320; i=i+26){
      for (int j = 206; j < 300; j=j+26){
 
  fig1 = new Mask(img,i,j);
  fig2 = new Mask(img2,i+13,j);
  
      }
  }
  
  for (int i = 103; i < 200; i=i+26){
      for (int j = 310; j < 420; j=j+26){
 
  fig1 = new Mask(img,i,j);
  fig2 = new Mask(img2,i+13,j);
  
      }
  }

  for (int i = 338; i < 420; i=i+26){
      for (int j = 310; j < 420; j=j+26){
 
  fig1 = new Mask(img,i,j);
  fig2 = new Mask(img2,i+13,j);
  
      }
  }
  
  
  
  
  
  
 for (int i = 116; i < 220; i=i+26){
    for (int j = 0; j < 100; j=j+26){ 
    fig3 = new Maske(img,i,j);
  fig4 = new Maske(img2,i+13,j);
    }
  }
 
 
  for (int i = 350; i < 420; i=i+26){
    for (int j = 0; j < 100; j=j+26){ 
    fig3 = new Maske(img,i,j);
  fig4 = new Maske(img2,i+13,j);
    }
  }

  
   for (int i = 0; i < 91; i=i+26){
    for (int j = 103; j < 200; j=j+26){ 
    fig3 = new Maske(img,i,j);
  fig4 = new Maske(img2,i+13,j);
    }
  }
 
 
  for (int i = 233; i < 313; i=i+26){
    for (int j = 103; j < 200; j=j+26){ 
    fig3 = new Maske(img,i,j);
  fig4 = new Maske(img2,i+13,j);
    }
  }
  
  
  for (int i = 116; i < 220; i=i+26){
    for (int j = 206; j < 300; j=j+26){ 
    fig3 = new Maske(img,i,j);
  fig4 = new Maske(img2,i+13,j);
    }
  }
 
 
  for (int i = 350; i < 420; i=i+26){
    for (int j = 206; j < 300; j=j+26){ 
    fig3 = new Maske(img,i,j);
  fig4 = new Maske(img2,i+13,j);
    }
  }
  
     for (int i = 0; i < 91; i=i+26){
    for (int j = 310; j < 420; j=j+26){ 
    fig3 = new Maske(img,i,j);
  fig4 = new Maske(img2,i+13,j);
    }
  }
 
 
  for (int i = 233; i < 313; i=i+26){
    for (int j = 310; j < 420; j=j+26){ 
    fig3 = new Maske(img,i,j);
  fig4 = new Maske(img2,i+13,j);
    }
  }
  

  
}



class Mask {


Mask( PImage img, float xpos, float ypos){

  PGraphics maskImage;
  maskImage = createGraphics(img.width, img.height, JAVA2D);
  maskImage.beginDraw();
  maskImage.fill(200);
  maskImage.noStroke();
  maskImage.quad(xpos, ypos, xpos+13, ypos,xpos+26,ypos+26,xpos+13,ypos+26);
  maskImage.endDraw();
  
  PImage imgCopy = img; // if the mask changes every frame, we need to use a copy of it, keeping the original intact
  imgCopy.mask(maskImage);
  image(imgCopy, 0, 0);
}


  void display(float xpos, float ypos) {
    image(img, xpos, ypos);
  }

}






class Maske {

Maske( PImage img, float xpos, float ypos){

  PGraphics maskImage;
  maskImage = createGraphics(img.width, img.height, JAVA2D);
  maskImage.beginDraw();
  maskImage.fill(200);
  maskImage.noStroke();
  maskImage.quad(xpos, ypos, xpos+13, ypos,xpos,ypos+26,xpos-13,ypos+26);
  maskImage.endDraw();
  
  PImage imgCopy = img; // if the mask changes every frame, we need to use a copy of it, keeping the original intact
  imgCopy.mask(maskImage);
  image(imgCopy, 0, 0);
}


  void display(float xpos, float ypos) {
    image(img, xpos, ypos);
  }

}