summaryrefslogtreecommitdiff
path: root/gui
diff options
context:
space:
mode:
authorTim Redfern <tim@getdrop.com>2018-12-01 18:38:19 +0000
committerTim Redfern <tim@getdrop.com>2018-12-01 18:38:19 +0000
commit80863dd23b2c3e2ae1b26a366e1adc956911c747 (patch)
tree62afc3dac76b14ee3c0111dcbd6b6e59ba0fef05 /gui
parentccf1034333ce0ac2ac5c9f927a57e7df142261de (diff)
colour clipped output
Diffstat (limited to 'gui')
-rw-r--r--gui/bin/data/settings.xml18
-rw-r--r--gui/src/ofApp.cpp49
-rw-r--r--gui/src/ofApp.h2
3 files changed, 40 insertions, 29 deletions
diff --git a/gui/bin/data/settings.xml b/gui/bin/data/settings.xml
index 7b8d2a5..ced1c18 100644
--- a/gui/bin/data/settings.xml
+++ b/gui/bin/data/settings.xml
@@ -1,27 +1,27 @@
<?xml version="1.0" ?>
<WARP>
<p0>
- <X>0.000000000</X>
- <Y>0.000000000</Y>
+ <X>2.000000000</X>
+ <Y>-3.000000000</Y>
</p0>
<p1>
- <X>1200.000000000</X>
+ <X>1199.996093750</X>
<Y>0.000000000</Y>
</p1>
<p2>
- <X>1200.000000000</X>
- <Y>900.000000000</Y>
+ <X>1199.996093750</X>
+ <Y>897.011718750</Y>
</p2>
<p3>
<X>0.000000000</X>
- <Y>900.000000000</Y>
+ <Y>899.843750000</Y>
</p3>
</WARP>
<POSITION>
- <X>0.000000000</X>
- <Y>0.000000000</Y>
+ <X>-3.514287949</X>
+ <Y>-202.628555298</Y>
</POSITION>
-<SCALE>1.000000000</SCALE>
+<SCALE>2.863990068</SCALE>
<laser>
<power>0</power>
<intensity>30</intensity>
diff --git a/gui/src/ofApp.cpp b/gui/src/ofApp.cpp
index 6d90c47..689048c 100644
--- a/gui/src/ofApp.cpp
+++ b/gui/src/ofApp.cpp
@@ -53,7 +53,7 @@ void ofApp::setup(){
soundStream.setup(this,0, 1, sampleRate, bufferSize, 1);
//loadSong("12 Ferric Appetite.aiff");
- loadSong("passades/1 The Ninth Set-sector1:sector2pt.1.aiff");
+ loadSong("12 Ferric Appetite.aiff");
//============================ gui
@@ -76,7 +76,11 @@ void ofApp::setup(){
chaosgui.update_sliders();
drawgui.setup("drawing","",10,0);
+
+ drawgui.add(contour_adaptive.setup("adaptive", true));
drawgui.add(contour_threshold.setup("threshold", 140, 0, 255));
+ drawgui.add(contour_adaptive_window.setup("window", 0.5, 0, 1.0));
+
drawgui.add(contour_simplify.setup("simplify", 0.8, 0.0, 10.0));
drawgui.add(contour_useColour.setup("use colour", true));
drawgui.add(laser_R.setup("red", 140, 0, 255));
@@ -110,7 +114,7 @@ void ofApp::setup(){
audiogui.add(plotter.bars.set("bars",true));
audiogui.add(plotter.mirror.set("mirror",false));
audiogui.add(plotter.width.set("point width", 2, 1, 256));
- audiogui.add(plotter.num_points.set("num points", 50, 1, 64));
+ audiogui.add(plotter.num_points.set("num points", 50, 1, 255));
audiogui.add(plotter.history_size.set("num plots", 5, 1, 64));
audiogui.add(plotter.translate.set("translate",ofVec2f(0,0),ofVec2f(-50,-50),ofVec2f(50,50)));
audiogui.add(plotter.rotate.set("rotate",0.0f,-10.0f,10.0f));
@@ -733,8 +737,12 @@ void ofApp::drawOutput(ofEventArgs & args){
grayImage.clear();
}
grayImage=colorImg;
- //grayImage.threshold(contour_threshold);
- grayImage.adaptiveThreshold(grayImage.getWidth()/8, contour_threshold,false,true);
+ if(contour_adaptive){
+ grayImage.adaptiveThreshold(grayImage.getWidth()*contour_adaptive_window, contour_threshold,false,true);
+ }
+ else {
+ grayImage.threshold(contour_threshold);
+ }
contourFinder.findContours(grayImage, 20, (grayImage.getWidth()*grayImage.getHeight())/3, 10, true);
for (int i = 0; i < contourFinder.nBlobs; i++){
colourPolyline shape;
@@ -832,24 +840,25 @@ void ofApp::drawOutput(ofEventArgs & args){
vector <colourPolyline> clippedOutput;
if (mask.size()&&use_mask){
- clipper.Clear();
- clipper.addPolylines(mask, ClipperLib::ptClip);
- vector <ofPolyline> shapes; //TODO make clipper clip colourpolylines
+
for (auto& poly: transformedOutput)
- {
+ {
+ clipper.Clear();
+ clipper.addPolylines(mask, ClipperLib::ptClip);
+ vector <ofPolyline> shapes; //TODO make clipper clip colourpolylines
shapes.push_back(poly);
- }
- clipper.addPolylines(shapes,ClipperLib::ptSubject);
- vector <ofPolyline> clipped;
- if (invert_mask){
- clipped = clipper.getClippedLines(ClipperLib::ctDifference);
- }else {
- clipped = clipper.getClippedLines(ClipperLib::ctIntersection);
- }
- for (auto& clip: clipped)
- {
- clip.simplify(contour_simplify);
- clippedOutput.push_back(colourPolyline(clip,ofColor(laser_R,laser_G,laser_B)));
+ clipper.addPolylines(shapes,ClipperLib::ptSubject);
+ vector <ofPolyline> clipped;
+ if (invert_mask){
+ clipped = clipper.getClippedLines(ClipperLib::ctDifference);
+ }else {
+ clipped = clipper.getClippedLines(ClipperLib::ctIntersection);
+ }
+ for (auto& clip: clipped)
+ {
+ clip.simplify(contour_simplify);
+ clippedOutput.push_back(colourPolyline(clip,poly.getColourAt(0)));
+ }
}
}
else {
diff --git a/gui/src/ofApp.h b/gui/src/ofApp.h
index 9098bef..838b7f8 100644
--- a/gui/src/ofApp.h
+++ b/gui/src/ofApp.h
@@ -181,7 +181,9 @@ class ofApp: public ofBaseApp, public ofxMidiListener {
ofxPanel drawgui;
+ ofxToggle contour_adaptive;
ofxIntSlider contour_threshold;
+ ofxFloatSlider contour_adaptive_window;
ofxFloatSlider contour_simplify;
ofxToggle contour_useColour;
ofxIntSlider laser_R;