summaryrefslogtreecommitdiff
path: root/gui/src/ofApp.h
blob: 5ecbe61c9ecbed96ca00af0f1e1cc2482b1926dc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
#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"

enum Source{
	TEST,
	NDI,
	Player,
	SVG_outlines,
	SVG_segmenters,
	Source_end
};

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);	

		void select_random_shapes();

		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;

		//====== video input 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;
		ofxToggle	 shapes_randomise;
		ofxFloatSlider	 shapes_amount;
		ofxIntSlider shapes_duration;

		//======================================= //video player

		ofVideoPlayer 		movie;

		//======================================= //SVG player

		ofxSVG svg;
		vector <lineSegmenter> segmenters;
		set <int> shape_selection;
		int framecounter;

		//======================================= //positioning interface

		bool bShowPositionInterface;
		bool bOutputSelected;
		ofPoint outputSelectionPoint;
		ofPoint outputPosition;
		ofPoint outputOffset;
		float outputScale;
		float outputOffsetScale;

};