From 19be92e0aff674b95bdae72fe7a2e409fd1bf77a Mon Sep 17 00:00:00 2001 From: Tim Redfern Date: Mon, 17 Apr 2023 19:44:00 +0100 Subject: add to archive --- FESgui/src/ofApp.h | 273 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 273 insertions(+) create mode 100644 FESgui/src/ofApp.h (limited to 'FESgui/src/ofApp.h') 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 use_beat; + ofParameter beat_duration; + ofParameter text_speed; + ofParameter text_scale; + ofParameter enable_anim; + ofParameter anim_rev; + ofParameter vert_pos; + ofParameter 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& 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 vScale; + ofParameter hScale; + ofParameter onset_threshold; + ofParameter use_onset; + ofParameter onset_duration; + + int onset_frame; + int onset_number; + + Buffer buffer; + +//--vector drawing------------------------------------- + + ofxPanel drawingpanel; + ofParameter lineWidth; + +//--perlin filter + + PerlinPhasingFilter *perlin; + ofxPanel perlinpanel; + ofParameter perlinEnable; + ofParameter perlinScale; + ofParameter perlinSpeed; + ofParameter perlinPixelWidth; + ofParameter perlinPixelWidthSpeed; + +//--video capture (automatic) + + bool useKinect; + ofxKinectV2 kinect; + ofImage texRGB; + ofVideoGrabber _video; + +//--preview and sources + + ofFbo preview; + + ofxPanel videoSourcePanel; + ofParameter captPreview; + ofParameter captEnable; + ofParameter videoOscEnable; + ofParameter playerEnable; + ofParameter contoursVideoDraw; + ofParameter SVGVideoDraw; + ofParameter textVideoDraw; + ofParameter video_speed; //move this + + + ofxPanel vectorSourcePanel; + ofParameter edit_safety; + ofParameter use_safety; + ofParameter vectorOscEnable; + ofParameter contoursLaserDraw; + ofParameter SVGLaserDraw; + ofParameter textLaserDraw; + + ofxPanel vectorTransforms; + ofParameter use_rotate; + ofParameter xf_rotate; + ofParameter use_scale; + ofParameter xf_scale_speed; + ofParameter xf_scale_min; + ofParameter 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 video_outlines; + ofParameter contour_adaptive; + ofParameter contour_threshold; + ofParameter contour_adaptive_window; + ofParameter contour_simplify; + ofParameter contour_useColour; + +//get colour somewhere else +// ofxIntSlider laser_R; +// ofxIntSlider laser_G; +// ofxIntSlider laser_B; + +//==//SVG player=================================== + + ofxSVG svg; + vector segmenters; + vector shape_selection_durations; + + set shape_selection; + float last_frame_time; + + //svg gui + ofxPanel svggui; + ofParameter shapes_randomise; + ofParameter shapes_amount; + ofParameter shapes_duration; + ofParameter use_mask; + ofParameter invert_mask; + + //segmenter + ofParameter use_segmenter; + ofParameter colour_segmenter; + ofParameter segmenter_speed; + ofParameter segmenter_length; + ofParameter segmenter_number; + + +//==/Mask clipping=================================== / + + + ofx::Clipper clipper; + +//==/text=================================== / + + textgui text; + +}; \ No newline at end of file -- cgit v1.2.3