From ccf1034333ce0ac2ac5c9f927a57e7df142261de Mon Sep 17 00:00:00 2001 From: Tim Redfern Date: Sat, 1 Dec 2018 01:46:20 +0000 Subject: crawling switching --- gui/src/ofApp.cpp | 79 ++++++++++++++++++++++++++++++++++++++++++++++++------- gui/src/ofApp.h | 7 +++-- 2 files changed, 75 insertions(+), 11 deletions(-) diff --git a/gui/src/ofApp.cpp b/gui/src/ofApp.cpp index 6227686..6d90c47 100644 --- a/gui/src/ofApp.cpp +++ b/gui/src/ofApp.cpp @@ -84,11 +84,12 @@ void ofApp::setup(){ drawgui.add(laser_B.setup("blue", 140, 0, 255)); drawgui.add(video_speed.setup("playback speed", 1.0, 0.0, 3.0)); drawgui.add(shapes_randomise.setup("randomise shapes", true)); - drawgui.add(shapes_amount.setup("shapes amount", 0.2, 0.0, 0.8)); - drawgui.add(shapes_duration.setup("shape duration", 5, 0, 25)); + drawgui.add(shapes_amount.setup("shapes amount", 0.2, 0.0, 1.0)); + drawgui.add(shapes_duration.setup("shape duration", 5.0, 0, 10.0)); drawgui.add(use_mask.setup("use mask", true)); drawgui.add(invert_mask.setup("invert mask", false)); drawgui.add(use_segmenter.setup("use segmenter", false)); + drawgui.add(colour_segmenter.setup("colour segmenter", false)); drawgui.add(segmenter_speed.setup("segmenter speed", 0.2, -1.0, 1.0)); drawgui.add(segmenter_length.setup("segmenter length", 0.2, 0.0, 1.0)); drawgui.add(segmenter_number.setup("segmenter number", 1, 1, 8)); @@ -751,10 +752,11 @@ void ofApp::drawOutput(ofEventArgs & args){ } case SVG_outlines:{ if (shapes_randomise){ - if (framecounter==0){ - select_random_shapes(); - framecounter=shapes_duration; - } + //if (framecounter==0){ + // select_random_shapes(); + // framecounter=shapes_duration; + //} + select_random_shapes(shapes_duration); for (auto s:shape_selection){ if (use_segmenter){ auto segments=segmenters[s].getSegments(segmenter_number,segmenter_length,phase); @@ -1072,7 +1074,48 @@ void ofApp::windowResized(int w, int h){ } -void ofApp::select_random_shapes(){ +float last_frame_time=0.0f; + +void ofApp::select_random_shapes(float duration){ + float timedelta=ofGetElapsedTimef()-last_frame_time; + last_frame_time=ofGetElapsedTimef(); + //track how long each shape has been selected + for (int i=0;i0.0f){ + shape_selection_durations[i]=shape_selection_durations[i]-timedelta; + } + } + + shape_selection.clear(); + + for (int i=0;i0.0f){ + shape_selection.insert(i); + } + } + std::stringstream strom; + for (auto& s:shape_selection){ + strom << s <<":"< segmenters; + vector shape_selection_durations; + set shape_selection; int framecounter; float phase,prev_time; //to calculate phase -- cgit v1.2.3