#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 fbos; std::map gradients; std::vector gradientNames {"warm1", "warm2", "cold1", "cold2"}; ofxV4L2 v4l2Cam; ofTexture v4l2Tex; ofPixels v4l2Pixels; ofxGpuParticles particles; std::vector> hotspots; ofVec3f hotspot0, hotspot1; ofVec3f hotspot3d0, hotspot3d1; ofVec3f uBetween; ofxVec2Slider registrationXY; ofxFloatSlider registrationScale; ofxInputField captureDeviceName; ofxPanel gui; ofxToggle calibMode; ofxToggle dummyMode; ofxVec2Slider dummyXY; ofxLabel debugFps; ofxPanel debugGui; };