// // ofxHelios.cpp // // // Created by Tim Redfern Nov 2017 // // #include "ofxHelios.h" /* draw a colourpolyline put in mid points draw a vector of lines put in dwell points */ 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,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 int xoffs=0x800-(ofGetWidth()/2); int yoffs=0x800-(ofGetHeight()/2); if (device!=OFXHELIOS_NODEVICE){ while (!dac.GetStatus(device)); //timeout for this? //assemble data 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