class Console extends AbstractLayer { // Draws debugging console // Properties ----------------------------------------------------------------- PFont consoleFont; float lastFPS; boolean visiblePreview = true; // Constructor ---------------------------------------------------------------- Console() { consoleFont = loadFont("console/LucidaConsole-12.vlw"); lastFPS = 30; visiblePreview = false; } // Metodos--------------------------------------------------------------------- void draw() { // Draws textFont(consoleFont, 12); fill (255, 255, 255, 128); noSmooth(); pushMatrix(); translate (1000, 1670); text(videoIn.faceReader.lastNumFaces, 0, 0); popMatrix(); if (visible) { innerDraw(); } //super.draw(); // Calculate FPS float newFPS = 1000/(currentTime - lastTime); lastFPS -= (lastFPS-newFPS)/20; } void innerDraw() { // Draws textFont(consoleFont, 12); fill (255, 255, 255, 128); noSmooth(); pushMatrix(); translate (10, 20); String msg = ""; msg += "PROJECT\n"; msg += "-------\n"; msg += "\n"; /* msg += "C = Liga/desliga console\n"; msg += "P = Liga/desliga preview do console " + (visiblePreview ? "[ON]" : "[--]") + "\n"; msg += "V = Muda origem do vídeo: " + (videoIn.sourceIsCamera ? "[CÂMERA REAL]" : " câmera real ") + (videoIn.sourceIsCamera ? " vídeo de teste " : "[VÍDEO DE TESTE]") + "\n"; msg += "S = Salva imagem (preview) no diretório 'screenshots'\n"; msg += "X = Salva imagem (input+output) no diretório 'screenshots_real'\n"; msg += "Z = Reseta estado de entrada (face state = 0)\n"; msg += "\n"; msg += "W = Liga/desliga detalhes [" + details.visibleAsString() + "]\n"; msg += "Q = Liga/desliga moscas [" + moscas.visibleAsString() + "]\n"; msg += "0 = Liga/desliga olhos [" + faceEyes.visibleAsString() + "]\n"; msg += "9 = Liga/desliga miolo [" + miolo.visibleAsString() + "]\n"; msg += "8 = Liga/desliga narizes [" + faceNose.visibleAsString() + "]\n"; msg += "7 = Liga/desliga flufys [" + flufys.visibleAsString() + "]\n"; msg += "6 = Liga/desliga macarrão [" + macarrao.visibleAsString() + "]\n"; msg += "5 = Liga/desliga chão [" + ground.visibleAsString() + "]\n"; msg += "4 = Liga/desliga patterns (base) [" + patternsDown.visibleAsString() + "]\n"; msg += "3 = Liga/desliga bocas [" + faceMouth.visibleAsString() + "]\n"; msg += "2 = Liga/desliga patterns (topo) [" + patternsUp.visibleAsString() + "]\n"; msg += "1 = Liga/desliga fundo [" + sky.visibleAsString() + "]\n"; msg += "\n"; msg += "Faces (safe): " + videoIn.faceReader.numFaces + "\n"; msg += "Faces (real): " + videoIn.faceReader.lastNumFaces + "\n"; msg += "Faces (available): " + videoIn.faceReader.numFacesAvailable + "\n"; msg += "Face state: " + videoIn.faceReader.faceState + "\n"; msg += "\n"; */ msg += "FPS (native): " + round(frameRate) + "\n"; msg += "FPS (real): " + round(lastFPS) + "\n"; text(msg, 0, 0); popMatrix(); if (visiblePreview) videoIn.drawSource(stageWidth(1) - stageWidthPixels(410 * STAGE_SCALE), stageHeightPixels(10 * STAGE_SCALE), stageWidthPixels(400 * STAGE_SCALE), stageHeightPixels(300 * STAGE_SCALE)); } }