diff options
| author | Tim Redfern <tim@getdrop.com> | 2023-04-17 19:44:00 +0100 |
|---|---|---|
| committer | Tim Redfern <tim@getdrop.com> | 2023-04-17 19:44:00 +0100 |
| commit | 19be92e0aff674b95bdae72fe7a2e409fd1bf77a (patch) | |
| tree | 079acfc11ffbff8f11b120649f5cb3a623e354d6 /FESgui/src/ofApp.h | |
| parent | 5309ef89393aa56083d1c2238c517c3d576907ec (diff) | |
add to archive
Diffstat (limited to 'FESgui/src/ofApp.h')
| -rw-r--r-- | FESgui/src/ofApp.h | 273 |
1 files changed, 273 insertions, 0 deletions
diff --git a/FESgui/src/ofApp.h b/FESgui/src/ofApp.h new file mode 100644 index 0000000..8519f01 --- /dev/null +++ b/FESgui/src/ofApp.h @@ -0,0 +1,273 @@ +#pragma once + +#include "ofMain.h" +#include "ofxGui.h" +#include "ofxXmlSettings.h" +#include "ofxKinectV2.h" +#include "ofxOpenCv.h" +#include "ofxClipper.h" +#include "ofxSVG.h" +#include "ofxGist.h" +#include "ofxOpenALSoundPlayer.h" + +#include "PerlinPhasingFilter.h" +#include "lasergui.h" +#include "audiobuffer.h" +#include "linetransformer.h" +#include "linesegmenter.h" +#include "selectpanel.h" +#include "vectortext.h" + +#define SAMPLERATE 48000 + +const ofPoint outputWindowSize=ofPoint(1024,768); +const float guiScale=560.0f/4096.0f; +const ofPoint sourceframesize=ofPoint(320,240); +const ofPoint previewframesize=ofPoint(640,480); + +class textgui : public ofxPanel{ + public: + ofParameter<bool> use_beat; + ofParameter<float> beat_duration; + ofParameter<float> text_speed; + ofParameter<float> text_scale; + ofParameter<bool> enable_anim; + ofParameter<bool> anim_rev; + ofParameter<float> vert_pos; + ofParameter<float> vert_spread; + glyphbanner text; + int onset_frame; + void loadfile(const string & f){ + if (!strcmp(strchr(f.c_str(), '\0') - 4, ".plt")){ + text.loadPalette(f); + } + else { + text.load(f); + } + } + void setup(int x, int y){ + //text.loadFont("fonts/EMSSpaceRocks.svg"); + text.loadFont("fonts/EMSOsmotron.svg"); + + ofxPanel::setup("text","",x,y); + ofxPanel::add(use_beat.set("use beat", false)); + ofxPanel::add(beat_duration.set("duration factor", 0.5f, 0.0f, 1.0f)); + ofxPanel::add(text_speed.set("speed", 5.0f, 0.0f, 25.0f)); + ofxPanel::add(text_scale.set("scale", 0.1f, 0.0f, 0.5f)); + ofxPanel::add(enable_anim.set("animate", false)); + ofxPanel::add(anim_rev.set("reverse", false)); + ofxPanel::add(vert_pos.set("vert_pos", 0.0f, -0.3f, 0.3f)); + ofxPanel::add(vert_spread.set("vert_spread", 0.0f, -0.3f, 0.3f)); + + } + void update(int oframe=0){ + onset_frame=oframe; + text.update(text_speed,true); + } + void drawgui(int oframe=0){ + onset_frame=oframe; + ofxPanel::draw(); + } + void createWords(string t){ + text.createWords(t); + } + vector<colourPolyline>& getOutlines(float x=0, float y=0){ + return text.getOutlines(text_scale,STYLE_OVERLAPPING,x,y+(ofGetHeight()*vert_pos),enable_anim,anim_rev,vert_spread,use_beat,beat_duration); + } + +}; + +class ofApp: public ofBaseApp { + + 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 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); +//--laser interface and settings------------------------------------------------ + lasergui laser; + + ofxXmlSettings XML; + void default_settings(); + void save_settings(); + + void setup_lasergui(int x, int y); + + void select_random_shapes(float duration,bool generate); + + bool commandPressed; + + glm::vec2 warpframe[4]; + int select_warpframe; + bool bDrawFrame; + + bool bShowPositionInterface; + bool bOutputSelected; + ofPoint outputSelectionPoint; + ofPoint outputPosition; + ofPoint outputOffset; + float outputScale; + float outputOffsetScale; + + glm::vec3 safety_frame[4]; + int select_safetyframe; +//--audio------------------------------------------------ + + ofSoundStream soundStream; + int blockSize; + + void audioIn(float * input, int blockSize, int nChannels); + + ofxGist gist; + void onNoteOn(GistEvent &e); + void onNoteOff(GistEvent &e); + + ofxPanel audiopanel; + ofParameter<float> vScale; + ofParameter<float> hScale; + ofParameter<float> onset_threshold; + ofParameter<bool> use_onset; + ofParameter<int> onset_duration; + + int onset_frame; + int onset_number; + + Buffer buffer; + +//--vector drawing------------------------------------- + + ofxPanel drawingpanel; + ofParameter<float> lineWidth; + +//--perlin filter + + PerlinPhasingFilter *perlin; + ofxPanel perlinpanel; + ofParameter<bool> perlinEnable; + ofParameter<float> perlinScale; + ofParameter<float> perlinSpeed; + ofParameter<float> perlinPixelWidth; + ofParameter<float> perlinPixelWidthSpeed; + +//--video capture (automatic) + + bool useKinect; + ofxKinectV2 kinect; + ofImage texRGB; + ofVideoGrabber _video; + +//--preview and sources + + ofFbo preview; + + ofxPanel videoSourcePanel; + ofParameter<bool> captPreview; + ofParameter<bool> captEnable; + ofParameter<bool> videoOscEnable; + ofParameter<bool> playerEnable; + ofParameter<bool> contoursVideoDraw; + ofParameter<bool> SVGVideoDraw; + ofParameter<bool> textVideoDraw; + ofParameter<float> video_speed; //move this + + + ofxPanel vectorSourcePanel; + ofParameter<bool> edit_safety; + ofParameter<bool> use_safety; + ofParameter<bool> vectorOscEnable; + ofParameter<bool> contoursLaserDraw; + ofParameter<bool> SVGLaserDraw; + ofParameter<bool> textLaserDraw; + + ofxPanel vectorTransforms; + ofParameter<bool> use_rotate; + ofParameter<float> xf_rotate; + ofParameter<bool> use_scale; + ofParameter<float> xf_scale_speed; + ofParameter<float> xf_scale_min; + ofParameter<float> xf_scale_max; + + int framecounter; + float phase,prev_time; //to calculate phase + float rotate_amt; + float scale_phase,scale_amt; + +//--video player + + ofVideoPlayer _player; + float videostart; + +//--contours + + ofxCvColorImage colorImg; + ofxCvGrayscaleImage grayImage; + ofxCvContourFinder contourFinder; + + ofxPanel contourgui; + ofParameter<bool> video_outlines; + ofParameter<bool> contour_adaptive; + ofParameter<int> contour_threshold; + ofParameter<float> contour_adaptive_window; + ofParameter<float> contour_simplify; + ofParameter<bool> contour_useColour; + +//get colour somewhere else +// ofxIntSlider laser_R; +// ofxIntSlider laser_G; +// ofxIntSlider laser_B; + +//==//SVG player=================================== + + ofxSVG svg; + vector <colourLineSegmenter> segmenters; + vector <float> shape_selection_durations; + + set <int> shape_selection; + float last_frame_time; + + //svg gui + ofxPanel svggui; + ofParameter<bool> shapes_randomise; + ofParameter<float> shapes_amount; + ofParameter<float> shapes_duration; + ofParameter<bool> use_mask; + ofParameter<bool> invert_mask; + + //segmenter + ofParameter<bool> use_segmenter; + ofParameter<bool> colour_segmenter; + ofParameter<float> segmenter_speed; + ofParameter<float> segmenter_length; + ofParameter<int> segmenter_number; + + +//==/Mask clipping=================================== / + + + ofx::Clipper clipper; + +//==/text=================================== / + + textgui text; + +};
\ No newline at end of file |
