You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
euglena/src/ProjectorApplet.java

67 lines
1.5 KiB
Java

import processing.core.PApplet;
import java.util.ArrayDeque;
import java.util.function.*;
class ProjectorApplet extends PApplet {
final int projectorScreenNumber = 2;
final static int centerX = 860;
final static int centerY = 540;
EuglenaApplet parent;
Calibrator calibrator;
ArrayDeque<ProjectorCommand> commandQueue;
ProjectorApplet(EuglenaApplet parent) {
this.parent = parent;
calibrator = new Calibrator(this);
commandQueue = new ArrayDeque<>();
}
public void settings() {
fullScreen(P2D, this.projectorScreenNumber);
}
@Override
public void setup() {
clear();
// calibrator.activate(); //for testing
}
@Override
public void draw() {
// background(50);
// fill(255);
// ellipse(mouseX, mouseY, 10, 10);
calibrator.draw(parent);
while (!commandQueue.isEmpty()) {
ProjectorCommand command = commandQueue.getFirst();
if (command.run(this)) {
commandQueue.removeFirst();
} else {
break;
}
}
}
public float convertXCoord(float x) {
return (x / calibrator.magx + width * calibrator.offsetx);
}
public float convertYCoord(float y) {
return (y / calibrator.magy + height * calibrator.offsety);
}
public float convertXDistance(float dx) {
return (dx / calibrator.magx);
}
public float convertYDistance(float dy) {
return (dy / calibrator.magy);
}
}