Esta función crea un rayo que emerge de un punto en el plano de la pantalla y perpendicular a él. Como el rayo comprende una posición de origen y una dirección de unidad, devuelve dos objetos PVector. Se puede pasar una matriz de PVector donde se almacenarán los dos vectores, y en ese caso la función devolverá la matriz como un valor de resultado. Si la matriz es nula, la función inicializará la matriz:
PVector[] ray;
void setup() {
fullScreen(P3D);
}
void draw() {
background(0);
ray = getRayFromScreen(mouseX, mouseY, ray);
// ...
}
Alternativamente, uno puede pasar dos objetos PVector no nulos donde se almacenará el origen y la dirección del rayo:
PVector origin = new PVector();
PVector direction = new PVector();
void setup() {
fullScreen(P3D);
}
void draw() {
background(0);
getRayFromScreen(mouseX, mouseY, origin, direction);
}