// // 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 &points,ofColor colour,int intensity){ return 0; } int ofxHelios::draw(ofPolyline &line,ofColor colour,int intensity){ colourPolyline col=colourPolyline(line,colour); return draw(col); } int ofxHelios::draw(colourPolyline &line, 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 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 }); } if (HELIOS_ERROR==dac.WriteFrame(device, pps, HELIOS_FLAGS_DEFAULT, points, line.size())){ printf("ofxHelios: write error (%i,%i,%i,%i)\n",device, pps, HELIOS_FLAGS_DEFAULT, (int)line.size()); return -1; } } return 0; } void ofxHelios::threadedFunction(){ while(isThreadRunning()) { } }