#pragma once #include "ofMain.h" #include "ofxJSON.h" #define THUMB_BORDER_RATIO 0.8 #define THUMB_SIZE 160 #define DEFAULT_FADEIN 1.0 #define BEZIER_OUT 0.2 #define BEZIER_IN 0.5 #define SWITCH_NONE 0 #define SWITCH_FORWARD 1 #define SWITCH_REVERSE 2 class chainImage : public ofImage{ //todo: threaded image loader public: chainImage(){ link=NULL; ofImage(); isLoaded=false; } void init(ofPoint _linkPos,float _linkScale,float _linkRot); void start(bool reverse=false); bool tload(std::string _filename){ printf("tload : %s\n",_filename.c_str()); filename=_filename; if (ofImage::load(filename)){ makeThumbnail(); //could there be a way to load without committing the texture //setUseTexture(false); setAnchorPoint(getWidth()/2,getHeight()/2); isLoaded=true; return true; } else printf("could not load : %s\n",_filename.c_str()); return false; } int updateOutput(float decayRatio); ofVec3f getTransform(); float getScale(); float getRotation(); void drawChain(float fadeIn=DEFAULT_FADEIN,bool additive =false, float intensity=1.0f); ofImage thumbnail; void makeThumbnail(); void setupTextures(); Json::Value toJson(); bool fromJson(Json::Value json); chainImage *link; ofPoint linkPos; float linkScale; float linkRot; std::string filename; float transition; float fadeIn; float speed; float time; float scale; ofPolyline path; bool isLoaded; //int totalframes,framecount; };