import deadpixel.keystone.*;
Keystone keyStone;
CornerPinSurface surface;
PGraphics offscreen;
float movX, movY;
float directionX, directionY;
float speedX, speedY;
void setup() {
size(1280, 800, P3D);
keyStone = new Keystone(this);
surface = keyStone.createCornerPinSurface(400, 400, 20);
offscreen = createGraphics(400, 400, P3D);
directionX = 1;
directionY = 1;
speedX = random(3, 7);
speedY = random(3, 7);
}
void draw() {
background(0);
movX = movX + directionX * speedX;
movY = movY + directionY * speedY;
if (movX>400) directionX = -1;
if (movX<0) directionX = 1;
if (movY>400) directionY = -1;
if (movY<0) directionY = 1;
PVector surfaceMouse = surface.getTransformedMouse();
offscreen.beginDraw();
offscreen.background(255);
offscreen.fill(0, 255, 0);
offscreen.ellipse(surfaceMouse.x, surfaceMouse.y, 75, 75);
offscreen.fill(0, 255, 0);
float _size = 40;
offscreen.ellipse(movX, movY, _size, _size);
offscreen.endDraw();
surface.render(offscreen);
}
void keyPressed() {
switch(key) {
case 'c':
// enter/leave calibration mode, where surfaces can be warped
// and moved
keyStone.toggleCalibration();
break;
case 'l':
// loads the saved layout
keyStone.load();
break;
case 's':
// saves the layout
keyStone.save();
break;
}
}