|
|
|
import processing.core.*;
|
|
|
|
|
|
|
|
public class EuglenaApplet extends PApplet {
|
|
|
|
final int cameraMode = 77;
|
|
|
|
final int whichArduino = 0;
|
|
|
|
|
|
|
|
// Hardware
|
|
|
|
ProjectorApplet projectorApplet;
|
|
|
|
Camera camera;
|
|
|
|
LEDControl ledControl;
|
|
|
|
|
|
|
|
// Software components
|
|
|
|
Menu menu;
|
|
|
|
Calibrator calibrator;
|
|
|
|
|
|
|
|
public static void main(String args[]) {
|
|
|
|
PApplet.main("EuglenaApplet");
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void settings() {
|
|
|
|
size(1920, 1200, P2D);
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void setup() {
|
|
|
|
clear();
|
|
|
|
smooth();
|
|
|
|
|
|
|
|
camera = new Camera(this, cameraMode);
|
|
|
|
ledControl = new LEDControl(this, whichArduino);
|
|
|
|
|
|
|
|
menu = new Menu(this);
|
|
|
|
|
|
|
|
// Start up projectorApplet window
|
|
|
|
// Do this last, in case ProjectorApplet wants to use the camera, arduino, etc.
|
|
|
|
projectorApplet = new ProjectorApplet(this);
|
|
|
|
String[] args = {"Euglena projector"};
|
|
|
|
PApplet.runSketch(args, projectorApplet);
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void draw() {
|
|
|
|
menu.draw(this, ledControl);
|
|
|
|
|
|
|
|
//Update webcam and draw the updated image to the screen
|
|
|
|
camera.updateImage();
|
|
|
|
imageMode(PApplet.CORNER);
|
|
|
|
image(camera.getImage(), 0, 0, width - menu.width, height);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void drawArrow(int cx, int cy, int len, float angle){
|
|
|
|
pushMatrix();
|
|
|
|
translate(cx, cy);
|
|
|
|
rotate(radians(angle));
|
|
|
|
line(0,0,len, 0);
|
|
|
|
line(len, 0, len - 8, -8);
|
|
|
|
line(len, 0, len - 8, 8);
|
|
|
|
popMatrix();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|