#pragma once #include "ofMain.h" #include "ofTrueTypeFont.h" #include #include #include #include "conversion.h" namespace ofxMsdfgen { struct AtlasSettings { float maxCornerAngle = 3.0; float scale = 256.0; float minimumScale = 24.0; float pixelRange = 2.0; float miterLimit = 1.0; string characters = "charset::ascii"; #ifdef TARGET_EMSCRIPTEN int threadCount = 1; #else int threadCount = 4; #endif }; class Atlas { public: Atlas(); ~Atlas(); void setup(string _fontPath); void setup(string _fontPath, AtlasSettings _settings); bool generate(); const ofImage & getAtlasImage(); const vector & getGlyphGeometries(); AtlasSettings settings; private: string fontPath; ofImage atlasImage; vector glyphGeometries; }; }