#include "ofApp.h" //-------------------------------------------------------------- void ofApp::setup(){ if (show.loadFont("fonts/EMSQwandry.svg")){ show.load("show.csv"); } textgui.setup("text","",5,10); textgui.add(laser_scale.set("scale", 1.0f, 0.5f, 3.0f)); textgui.add(laser_pos_x.set("x", 0.0f, -1000.0f, 1000.0f)); textgui.add(laser_pos_y.set("y", 0.0f, -1000.0f, 1000.0f)); textgui.add(text_speed.set("speed", 1.0f, 0.0f, 2.0f)); lasergui.setup("laser","",5,110); lasergui.add(laser_power.set("power", true)); lasergui.add(laser_intensity.set("intensity", 30, 0, 255)); lasergui.add(laser_points.set("points", 30000, 0, 40000)); lasergui.add(laser_subdivide.set("subdivide", 15, 1, 100)); lasergui.add(laser_blank_num.set("blank points", 8, 0, 32)); lasergui.add(laser_max_angle.set("max angle", 15.0f, 1.0f, 90.0f)); } //-------------------------------------------------------------- void ofApp::update(){ laser.set_pts(laser_points); laser.set_subdivide(laser_subdivide); laser.set_blanknum(laser_blank_num); laser.set_maxangle(laser_max_angle); laser.set_intensity(laser_intensity); show.update(); } //-------------------------------------------------------------- void ofApp::draw(){ ofBackground(0); textgui.draw(); lasergui.draw(); if (show.isPlaying()){ vector& outlines=show.getOutlines(); ofMatrix4x4 rm = ofMatrix4x4::newIdentityMatrix(); rm.translate(laser_pos_x,laser_pos_y,0); rm.scale(laser_scale,laser_scale,laser_scale); rm.translate(ofGetWidth()/2,ofGetHeight()/2,0); vector scaledOutput; for (auto s:outlines){ scaledOutput.push_back(lineTransformer::polyLineTransform(rm,s)); } int num = 0; if (laser_power) num=laser.draw(scaledOutput); ofPushMatrix(); ofTranslate(ofGetWidth()/2,ofGetHeight()/2); for (auto o:outlines){ o.draw(); } ofPopMatrix(); ofSetWindowTitle(ofToString(ofGetFrameRate(), 2)+"fps, laser points: "+ofToString(num)); } else { ofSetWindowTitle("idle"); } } //-------------------------------------------------------------- void ofApp::exit() { } //-------------------------------------------------------------- void ofApp::keyPressed(ofKeyEventArgs &args){ } //-------------------------------------------------------------- void ofApp::keyReleased(int key){ switch(key){ case OF_KEY_LEFT:{ show.previous(); break; } case OF_KEY_RIGHT:{ show.next(); break; } case ' ':{ if (show.isPlaying()){ show.stop(); } else show.play(); break; } default:{ break; } } } //-------------------------------------------------------------- void ofApp::mouseMoved(int x, int y ){ } //-------------------------------------------------------------- void ofApp::mouseDragged(int x, int y, int button){ } //-------------------------------------------------------------- void ofApp::mousePressed(int x, int y, int button){ } //-------------------------------------------------------------- void ofApp::mouseReleased(int x, int y, int button){ } //-------------------------------------------------------------- void ofApp::mouseEntered(int x, int y){ } //-------------------------------------------------------------- void ofApp::mouseExited(int x, int y){ } //-------------------------------------------------------------- void ofApp::windowResized(int w, int h){ } //-------------------------------------------------------------- void ofApp::dragEvent(ofDragInfo dragInfo){ }