diff options
author | Yann Herklotz <ymherklotz@gmail.com> | 2017-10-31 22:11:18 +0000 |
---|---|---|
committer | Yann Herklotz <ymherklotz@gmail.com> | 2017-10-31 22:11:18 +0000 |
commit | f776df6076725d14679b31168e3ede53c966182e (patch) | |
tree | b843d7ef0d0722a1b3571ee09aa1345d19c60e7f /yage/base/spritesheet.cpp | |
parent | 1bb0ef8960c71ef505a351702bec54c01ba15e22 (diff) | |
download | YAGE-f776df6076725d14679b31168e3ede53c966182e.tar.gz YAGE-f776df6076725d14679b31168e3ede53c966182e.zip |
renaming base folder
Diffstat (limited to 'yage/base/spritesheet.cpp')
-rw-r--r-- | yage/base/spritesheet.cpp | 85 |
1 files changed, 0 insertions, 85 deletions
diff --git a/yage/base/spritesheet.cpp b/yage/base/spritesheet.cpp deleted file mode 100644 index 5c3499cc..00000000 --- a/yage/base/spritesheet.cpp +++ /dev/null @@ -1,85 +0,0 @@ -/* ---------------------------------------------------------------------------- - * spritesheet.cpp - * - * Copyright (c) 2017 Yann Herklotz Grave <ymherklotz@gmail.com> - * MIT License, see LICENSE file for more details. - * ---------------------------------------------------------------------------- - */ - -/** @file - */ - -#include "spritesheet.h" - -#include <cassert> -#include <fstream> -#include <sstream> -#include <stdexcept> - -#include <rapidjson/document.h> -#include <yage/base/imageloader.h> - -using namespace std; -using namespace rapidjson; -using namespace yage::details; - -namespace yage -{ - -SpriteSheet::SpriteSheet(string pngFileName, string jsonFileName) -{ - int jsonWidth, jsonHeight; - fileLocations_ = - parseJson(jsonWidth, jsonHeight, fileContent(jsonFileName)); - texture_ = ImageLoader::loadPng(pngFileName); - - if (texture_.width != jsonWidth) - throw runtime_error("JSON width does not match texture width"); - if (texture_.height != jsonHeight) - throw runtime_error("JSON height does not match texture height"); -} - -string SpriteSheet::fileContent(string jsonFileName) const -{ - ifstream inputFile(jsonFileName); - - stringstream stream; - stream << inputFile.rdbuf(); - - return stream.str(); -} - -SpriteMap SpriteSheet::parseJson(int &width, int &height, - string jsonContent) const -{ - SpriteMap spriteMap; - Document jsonAtlas; - jsonAtlas.Parse(jsonContent.c_str()); - - width = jsonAtlas["width"].GetInt(); - height = jsonAtlas["height"].GetInt(); - - for (auto &texture : jsonAtlas["sprites"].GetObject()) { - Coordinate coord; - for (auto &value : texture.value.GetObject()) { - string keyName{value.value.GetString()}; - int keyValue{value.value.GetInt()}; - if (keyName == "x") { - coord.x = keyValue; - } else if (keyName == "y") { - coord.y = keyValue; - } else if (keyName == "width") { - coord.width = keyValue; - } else if (keyName == "height") { - coord.height = keyValue; - } else { - throw runtime_error("JSON key incorrect: " + keyName); - } - } - spriteMap[texture.name.GetString()] = coord; - } - - return spriteMap; -} - -} // namespace yage |