#include "FileParser.h" #include "../shape/Line.h" #include "../shape/Arc.h" #include FileParser::FileParser() {} void FileParser::parse(juce::String extension, std::unique_ptr stream) { object = nullptr; camera = nullptr; svg = nullptr; if (extension == ".obj") { object = std::make_shared(stream->readEntireStreamAsString().toStdString()); camera = std::make_shared(1.0, 0, 0, 0.0); camera->findZPos(*object); } else if (extension == ".svg") { svg = std::make_shared(stream->readEntireStreamAsString()); } else if (extension == ".txt") { text = std::make_shared(stream->readEntireStreamAsString(), juce::Font(1.0f)); } } std::vector> FileParser::next() { auto tempObject = object; auto tempCamera = camera; auto tempSvg = svg; auto tempText = text; if (tempObject != nullptr && tempCamera != nullptr) { return tempCamera->draw(*tempObject); } else if (tempSvg != nullptr) { return tempSvg->draw(); } else if (tempText != nullptr) { return tempText->draw(); } auto tempShapes = std::vector>(); tempShapes.push_back(std::make_unique(0, 0, 0.5, 0.5, std::numbers::pi / 4.0, 2 * std::numbers::pi)); return tempShapes; } bool FileParser::isActive() { return active; } void FileParser::disable() { active = false; } void FileParser::enable() { active = true; }