summaryrefslogtreecommitdiff
path: root/FESgui/src/ofApp.h
diff options
context:
space:
mode:
authorTim Redfern <tim@getdrop.com>2023-04-17 19:44:00 +0100
committerTim Redfern <tim@getdrop.com>2023-04-17 19:44:00 +0100
commit19be92e0aff674b95bdae72fe7a2e409fd1bf77a (patch)
tree079acfc11ffbff8f11b120649f5cb3a623e354d6 /FESgui/src/ofApp.h
parent5309ef89393aa56083d1c2238c517c3d576907ec (diff)
add to archive
Diffstat (limited to 'FESgui/src/ofApp.h')
-rw-r--r--FESgui/src/ofApp.h273
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