#include "ofMain.h" #include "ofxJSON.h" #include "chainImage.h" #include "threadedChainImageLoader.h" #include "threadedSystemDialogs.h" #define ZOOM_FUDGE_FACTOR 5 class chainImageSet{ public: chainImageSet(){ } void init(){ currentDefaultImageRatio=0.3; filename=""; outputSize=ofPoint(1024,576); decayFactor=.9999; additive=false; intensity=1.0f; fitFactor=0.9f; dragScale=0.0f; dragRotate=0.0f; dragPoint=ofPoint(0,0); zoomMultiplier=1.0f; } chainImageSet(const chainImageSet& mom){ chainImageSet(); } void drawGui(int x,int y,bool is_selected); void drawOutput(); void drawGpu(); void updateOutput(); bool addfiles(std::vector &filenames); bool add(std::string filename,ofPoint pos=ofPoint(0,0),float ratio=0.3,float rotation=0.0); void keyPressed(ofKeyEventArgs &keyargs); void mouseDragged(int x, int y, int button); void mousePressed(int x, int y, int button); void mouseReleased(int x, int y, int button); bool saveJson(std::string filename); bool loadJson(std::string filename); ofPoint outputSize; std::list > images; float currentDefaultImageRatio; //how to make selected and currentimage work if images is a list of unique_ptr? //req: //A: a container for images //B: a temporary container for images that are loading //be able to transfer images from B to A //C: an iterator to A //be able to loop through C and identify an element which is pointed to by C std::list >::iterator selected; ofPoint clickPoint; ofPoint dragPoint; float dragScale; float dragRotate; float fitFactor; float zoomMultiplier; std::string filename; std::list >::iterator currentImage; float decayFactor; bool additive; float intensity; std::vector > loadingImages; std::vector loadingIndexes; threadedChainImageLoader loader; //threadedSystemLoadDialog loadDialog; };