From ee4db4b804443bcad410c30be88bcdce7abf6008 Mon Sep 17 00:00:00 2001 From: Tim Redfern Date: Mon, 29 Jan 2018 00:50:32 +0000 Subject: multi shapes --- ofxHelios/src/ofxHelios.cpp | 64 +++++++++++++++++++++++++++++++++------------ ofxHelios/src/ofxHelios.h | 9 ++++--- 2 files changed, 53 insertions(+), 20 deletions(-) (limited to 'ofxHelios/src') diff --git a/ofxHelios/src/ofxHelios.cpp b/ofxHelios/src/ofxHelios.cpp index d05e062..7c934b5 100644 --- a/ofxHelios/src/ofxHelios.cpp +++ b/ofxHelios/src/ofxHelios.cpp @@ -19,18 +19,24 @@ put in dwell points */ -int ofxHelios::draw(vector &points,ofColor colour,int intensity){ +int ofxHelios::draw(vector &lines,ofColor colour,int intensity){ return 0; } int ofxHelios::draw(ofPolyline &line,ofColor colour,int intensity){ colourPolyline col=colourPolyline(line,colour); - return draw(col); + return draw(col,intensity); } int ofxHelios::draw(colourPolyline &line, int intensity){ + vector lines; + lines.push_back(line); + return draw(lines,intensity); +} + +int ofxHelios::draw(vector &lines, int intensity){ //todo: move to a thread //todo: add a transform //POC @@ -42,28 +48,52 @@ int ofxHelios::draw(colourPolyline &line, int intensity){ while (!dac.GetStatus(device)); //timeout for this? //assemble data - HeliosPoint points[line.size()]; - - for (int i=0;i>8), - (uint8_t)(((line.getColourAt(i).g)*laserintensity)>>8), - (uint8_t)(((line.getColourAt(i).b)*laserintensity)>>8), - (uint8_t)intensity - }); + vector points; + + ofPoint prev_point=lines[0][0]; + + for (auto& line:lines){ + float joindist=prev_point.distance(line[0]); + if (joindist>SUBDIVIDE){ + //printf("ofxHelios: creating %i join points\n",(int)joindist/SUBDIVIDE); + } + for (float j=0;j>8), + (uint8_t)(((line.getColourAt(i).g)*laserintensity)>>8), + (uint8_t)(((line.getColourAt(i).b)*laserintensity)>>8), + (uint8_t)intensity + )); + } + for (int k=0;k @@ -59,9 +61,10 @@ public: return pps; } int draw(colourPolyline &line, int intensity=255); - int draw(ofPolyline &points,ofColor colour=ofColor(255,255,255),int intensity=255); - int draw(vector &points,ofColor colour=ofColor(255,255,255),int intensity=255); - + int draw(ofPolyline &line,ofColor colour=ofColor(255,255,255),int intensity=255); + int draw(vector &lines,ofColor colour=ofColor(255,255,255),int intensity=255); + int draw(vector &lines, int intensity=255); + void threadedFunction(); //isReady() -- cgit v1.2.3