diff options
Diffstat (limited to 'ofxHelios/example-circles/src/ofApp.cpp')
| -rw-r--r-- | ofxHelios/example-circles/src/ofApp.cpp | 139 |
1 files changed, 139 insertions, 0 deletions
diff --git a/ofxHelios/example-circles/src/ofApp.cpp b/ofxHelios/example-circles/src/ofApp.cpp new file mode 100644 index 0000000..9ae4f23 --- /dev/null +++ b/ofxHelios/example-circles/src/ofApp.cpp @@ -0,0 +1,139 @@ +#include "ofApp.h" + +int MAX_POINTS=40000; +int NUM_POINTS=128; +int LASER_INTENSITY=37; +int CIRCLE_RADIUS=256; + +//-------------------------------------------------------------- +void testApp::setup(){ + laser.set_pts(MAX_POINTS); + laser.set_intensity(LASER_INTENSITY); +} + +//-------------------------------------------------------------- +void testApp::update(){ + + +} + +//-------------------------------------------------------------- +void testApp::draw(){ + ofBackground(0); + ofSetColor(255,255,255); +/* + if (line.size()){ + current++; + } + ofPolyline todraw; + for (int i=max(0,min(current,(int)line.size())) ;i<line.size();i++){ + todraw.addVertex(line[i]); + } + + what should the default coordinate system be? + centred? + + the coordinate system goes from 0-4096 in X and Y + It's preferable that drawing is centred around 2000 + + Let's offset the centre of the screen to 0 and draw natively from there + Let's apply a scaling factor which can increase coords + And a calibration/ warp + + The aim is to be able to preview in any size window + + + todraw.draw(); + */ + + float pfactor=(PI*2)/NUM_POINTS; + + vector <colourPolyline> lines; + + for (int k=0;k<2;k++){ + for (int j=0;j<2;j++){ + + colourPolyline line; + + for (int i=0;i<NUM_POINTS+1;i++){ + line.addVertex( + ((cos(float(i)*pfactor)+1)*CIRCLE_RADIUS)+(ofGetWidth()/2)+(-(CIRCLE_RADIUS+200)+(k*400)), + ((sin(float(i)*pfactor)+1)*CIRCLE_RADIUS)+(ofGetHeight()/2)+(-(CIRCLE_RADIUS+200)+(j*400)), + (sin(float(i+(ofGetElapsedTimef()*30*j))*pfactor)+1)*128, + (sin(float(i+(ofGetElapsedTimef()*57*k))*pfactor)+1)*128, + (sin(float(i+(ofGetElapsedTimef()*101*(j+k)))*pfactor)+1)*128 + ); + } + lines.push_back(line); + line.draw(); + } + } + + int num = laser.draw(lines); + + if (num>0){ + ofSetWindowTitle(ofToString(ofGetFrameRate(), 2)+" fps laser points: "+ofToString(num)); + } + else { + ofSetWindowTitle("laser error "); + } + + + +} + +//-------------------------------------------------------------- +void testApp::keyPressed(int key){ + +} + +//-------------------------------------------------------------- +void testApp::keyReleased(int key){ + +} + +//-------------------------------------------------------------- +void testApp::mouseMoved(int x, int y ){ + + + + /// int i = 1; + /// while ( i<bounds.size()) { + /// float angle = atan2(line[i-1].y - line[i].y, line[i-1].x - line[i].x); + /// bounds[i].set(bounds[i-1].x - cos(angle) * 20, bounds[i-1].y - sin(angle) * 20); + /// i++; + /// } + +} + +//-------------------------------------------------------------- +void testApp::mouseDragged(int x, int y, int button){ + //line.addVertex(x, y); +} + +//-------------------------------------------------------------- +void testApp::mousePressed(int x, int y, int button){ + + //line.clear(); + //current=-100; +} + +//-------------------------------------------------------------- +void testApp::mouseReleased(int x, int y, int button){ + +} + +//-------------------------------------------------------------- +void testApp::windowResized(int w, int h){ + +} + +//-------------------------------------------------------------- +void testApp::gotMessage(ofMessage msg){ + +} + +//-------------------------------------------------------------- +void testApp::dragEvent(ofDragInfo dragInfo){ + +} |
