77 lines
1.6 KiB
C++
77 lines
1.6 KiB
C++
#pragma once
|
|
|
|
#include "ofMain.h"
|
|
|
|
#include "ofxGui.h"
|
|
|
|
#include "ofxAzureKinect.h"
|
|
|
|
#include "ofxShaderFilter.h"
|
|
|
|
#include "ofxGpuParticles.h"
|
|
|
|
#include "ofxV4L2.h"
|
|
|
|
class ofApp
|
|
: public ofBaseApp
|
|
{
|
|
public:
|
|
void setupKinect();
|
|
void setupThermal();
|
|
void setupParticles();
|
|
void setupGui();
|
|
void setup();
|
|
void exit();
|
|
|
|
ofVec3f getDepthAt(int x, int y);
|
|
void updateThermal();
|
|
void update();
|
|
void drawMain();
|
|
void drawDebug();
|
|
void draw();
|
|
|
|
void keyPressed(int key);
|
|
void keyReleased(int key);
|
|
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 gotMessage(ofMessage msg);
|
|
void onParticlesUpdate(ofxShader &shader);
|
|
void onParticlesDraw(ofxShader &shader);
|
|
|
|
private:
|
|
ofxAzureKinect::Device kinectDevice;
|
|
ofEasyCam cam;
|
|
ofxShaderFilter boundShader;
|
|
|
|
std::map<string, ofFbo> fbos;
|
|
std::map<string, ofFloatImage> gradients;
|
|
std::vector<std::string> gradientNames {"warm1", "warm2", "cold1", "cold2"};
|
|
|
|
ofxV4L2 v4l2Cam;
|
|
ofTexture v4l2Tex;
|
|
ofPixels v4l2Pixels;
|
|
|
|
ofxGpuParticles particles;
|
|
|
|
std::vector<std::vector<ofVec3f>> hotspots;
|
|
ofVec3f hotspot0, hotspot1;
|
|
ofVec3f hotspot3d0, hotspot3d1;
|
|
ofVec3f uBetween;
|
|
|
|
ofxVec2Slider registrationXY;
|
|
ofxFloatSlider registrationScale;
|
|
ofxInputField<std::string> captureDeviceName;
|
|
ofxPanel gui;
|
|
|
|
ofxToggle calibMode;
|
|
ofxToggle dummyMode;
|
|
ofxVec2Slider dummyXY;
|
|
ofxLabel debugFps;
|
|
ofxPanel debugGui;
|
|
};
|