Lightway::Lightway(QWidget *parent, Qt::WFlags flags) : QMainWindow(parent, flags) { ui.setupUi(this); viewport = new Viewport(this); setPreviewWidget(viewport); historyViewer = new SampleHistoryViewer(this); setSampleViewWidget(historyViewer); renderCore_ = unique_ptr<RenderCore>(new RenderCore()); viewport->renderCore = renderCore_.get(); scene = unique_ptr<RTScene>(new RTScene()); //scene->scene = load_scene("../../../assets/sponza.obj", float3(0, 0, 0), 1); scene->scene = load_scene("../../../assets/validation/diffuse_validation5.obj", float3(0, 0, 0), 1); //scene->scene = load_scene("../../../assets/validation/spec_validation3.obj", float3(0, 0, 0), 1); //scene->scene = load_scene("../../../assets/validation/t_validation1.obj", float3(0, 0, 0), 1); //scene->scene = load_scene("../../../assets/bunny.obj", float3(0, 0, 0), 5); scene->make_accl(); renderCore_->scene = scene.get(); historyViewer->syncTo(&renderCore_->sampleDebugger().shr); connect(ui.actionRecord_10, SIGNAL(triggered()), this, SLOT(record10())); connect(ui.actionRecord_50, SIGNAL(triggered()), this, SLOT(record50())); connect(&renderCore_->sampleDebugger().shr, SIGNAL(finishedRecording()), this, SLOT(recordingFinished())); }
//-------------------------------------------------------------- void testApp::update(){ if(clearAllVideos) { carousel.clearVideos(); clearAllVideos = false; } if(saveAllVideos) { carousel.saveVideos(); saveAllVideos = false; } ofBackground(0); carousel.checkForSize(); doVision(); doCompositing(); activityMonitor.update(threshImg); presenceDetector.update(threshImg, false);// mouseIsDown); // if there's been no movement for a while, (and we're not recording) // start spinning the carousel if(!carousel.isScrolling() && activityMonitor.getTimeSinceLastMove()>carouselDelay && !recording) { printf("Activating carousel\n"); carousel.autoScroll(); } else { // decide whether to go back to the video feed if(activityMonitor.getTimeSinceLastMove()<carouselDelay && carousel.isScrolling() && // allow the video to play for a while after recording. ofGetElapsedTimef() - lastTimeFinishedRecording>minRecordingInterval ) { carousel.scrollToVideoFeed(); //printf("Creating space and going to end\n"); } if(!presenceDetector.present()) { holdCount = 0; } if(!recording && presenceDetector.present() && carousel.isOnVideoFeed()) { holdCount++; if(holdCount>HOLD_COUNT) { video->clear(); recording = true; } } // if we're still recording, but the user has lost touch, // stop recording if(recording && !presenceDetector.eitherHandPresent() && video->getLength()>MIN_VIDEO_LENGTH) { printf("Recording finished because user stepped away\n"); finishedRecording(); } if(recording) { // assemble composite bool stillCanRecord = video->record(videoFeedData); if(!stillCanRecord) { printf("Recording finished becasue it's maxed length\n"); finishedRecording(); } } } ofSetWindowTitle(ofToString(ofGetFrameRate(), 2)); }