#pragma once #include "../shape/OsciPoint.h" #include #include "../shape/Shape.h" #include "../svg/SvgParser.h" #include "../shape/Line.h" class LineArtParser { public: LineArtParser(juce::String json); LineArtParser(char* data, int dataLength); ~LineArtParser(); void setFrame(int fNum); std::vector> draw(); static std::vector> parseJsonFrames(juce::String jsonStr); static std::vector> parseBinaryFrames(char* data, int dataLength); static std::vector generateFrame(juce::Array < juce::var> objects, double focalLength); private: static std::vector> epicFail(); static double makeDouble(int64_t data); static void makeChars(int64_t data, char* chars); static std::vector> reorderVertices(std::vector> vertices); static std::vector assembleFrame(std::vector>> allVertices, std::vector> allMatrices, double focalLength); int frameNumber = 0; std::vector> frames; int numFrames = 0; };