#pragma once #include "ofMain.h" #include "lineTransformer.h" #include "ofxNDI.h" #include "ofxGui.h" #include "ofxHelios.h" #include "ofxOpenCv.h" #include "ofxSVG.h" #include "lineSegmenter.h" #include "ofxXmlSettings.h" #include "ofxClipper.h" #include "ofxMidi.h" enum Source{ TEST, NDI, Player, SVG_outlines, SVG_segmenters, Source_end }; class ofApp: public ofBaseApp, public ofxMidiListener { public: void setup(); void update(); void draw(); void exit(); void keyPressed(ofKeyEventArgs &keyargs); void keyReleased(ofKeyEventArgs & args); void mouseMoved(int x, int y ); void mouseDragged(int x, int y, int button); void mousePressed(int x, int y, int button); void mouseReleased(int x, int y, int button); void mouseEntered(int x, int y); void mouseExited(int x, int y); void windowResized(int w, int h); void dragEvent(ofDragInfo dragInfo); void newMidiMessage(ofxMidiMessage& eventArgs); void updateOutput(ofEventArgs & args); void drawOutput(ofEventArgs & args); void outputKeyPressed(ofKeyEventArgs & args); void outputKeyReleased(ofKeyEventArgs & args); void outputMouseDragged(ofMouseEventArgs & args); void outputMousePressed(ofMouseEventArgs & args); void outputMouseReleased(ofMouseEventArgs & args); void outputWindowResized(ofResizeEventArgs &resizeargs); void select_random_shapes(); void save_settings(); bool commandPressed; glm::vec2 warpframe[4]; int select_warpframe; bool bDrawFrame; ofxPanel gui; ofxHelios laser; int source; //======================================== //thresholding ofxCvColorImage colorImg; ofxCvGrayscaleImage grayImage; ofxCvContourFinder contourFinder; //======================================== //ofxNDI ofxNDIreceiver ndiReceiver; ofImage ndiImage; char senderName[256]; int nSenders; unsigned int senderWidth; unsigned int senderHeight; bool bNDIreceiver; // For received frame fps calculations double startTime, lastTime, frameTime, frameRate, fps; //====== gui ofxIntSlider contour_threshold; ofxFloatSlider contour_simplify; ofxToggle contour_useColour; ofxIntSlider laser_R; ofxIntSlider laser_G; ofxIntSlider laser_B; ofxIntSlider laser_intensity; ofxIntSlider laser_points; //====== video ofxFloatSlider video_speed; //svg gui ofxToggle shapes_randomise; ofxFloatSlider shapes_amount; ofxIntSlider shapes_duration; ofxToggle use_mask; ofxToggle invert_mask; //segmenter ofxToggle use_segmenter; ofxFloatSlider segmenter_speed; ofxFloatSlider segmenter_length; ofxIntSlider segmenter_number; //======================================= //MIDI ofxMidiIn midiIn; ofxMidiMessage midiMessage; //======================================= //video player ofVideoPlayer movie; //======================================= //SVG player ofxSVG svg; vector segmenters; set shape_selection; int framecounter; float phase,prev_time; //to calculate phase //======================================= //Mask clipping vector mask; ofx::Clipper clipper; //======================================= //positioning interface bool bShowPositionInterface; bool bOutputSelected; ofPoint outputSelectionPoint; ofPoint outputPosition; ofPoint outputOffset; float outputScale; float outputOffsetScale; //======================================= //saving settings ofxXmlSettings XML; };