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
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
|
#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 <lineSegmenter> segmenters;
set <int> shape_selection;
int framecounter;
//======================================= //Mask clipping
vector <ofPolyline> mask;
ofx::Clipper clipper;
//======================================= //positioning interface
bool bShowPositionInterface;
bool bOutputSelected;
ofPoint outputSelectionPoint;
ofPoint outputPosition;
ofPoint outputOffset;
float outputScale;
float outputOffsetScale;
//======================================= //saving settings
ofxXmlSettings XML;
};
|