2
0
mirror of https://github.com/Laupetin/OpenAssetTools.git synced 2025-09-07 01:07:25 +00:00

chore: get rid of now unused AssetLoading classes

This commit is contained in:
Jan
2024-12-31 16:34:39 +01:00
parent e11e8a361e
commit 9852f52a15
27 changed files with 8 additions and 233 deletions

View File

@@ -0,0 +1,144 @@
#include "AbstractGdtEntryReader.h"
#include <sstream>
GdtReadingException::GdtReadingException(std::string message)
: m_message(std::move(message))
{
}
const char* GdtReadingException::what() const noexcept
{
return m_message.c_str();
}
AbstractGdtEntryReader::AbstractGdtEntryReader(const GdtEntry& entry)
: m_entry(entry)
{
}
std::string AbstractGdtEntryReader::ReadStringProperty(const std::string& propertyName, std::string defaultValue) const
{
const auto foundProperty = m_entry.m_properties.find(propertyName);
if (foundProperty == m_entry.m_properties.end())
return defaultValue;
return foundProperty->second;
}
bool AbstractGdtEntryReader::ReadBoolProperty(const std::string& propertyName, const bool defaultValue) const
{
const auto foundProperty = m_entry.m_properties.find(propertyName);
if (foundProperty == m_entry.m_properties.end())
return defaultValue;
char* endPtr = nullptr;
const auto result = std::strtol(foundProperty->second.c_str(), &endPtr, 10);
if (endPtr != &foundProperty->second[foundProperty->second.size()])
{
std::ostringstream ss;
ss << "\"" << foundProperty->second << "\" is not a valid boolean value";
throw GdtReadingException(ss.str());
}
return result != 0;
}
int AbstractGdtEntryReader::ReadIntegerProperty(const std::string& propertyName, const int defaultValue) const
{
const auto foundProperty = m_entry.m_properties.find(propertyName);
if (foundProperty == m_entry.m_properties.end())
return defaultValue;
char* endPtr = nullptr;
const auto result = std::strtol(foundProperty->second.c_str(), &endPtr, 10);
if (endPtr != &foundProperty->second[foundProperty->second.size()])
{
std::ostringstream ss;
ss << "\"" << foundProperty->second << "\" is not a valid integer value";
throw GdtReadingException(ss.str());
}
return result;
}
float AbstractGdtEntryReader::ReadFloatProperty(const std::string& propertyName, const float defaultValue) const
{
const auto foundProperty = m_entry.m_properties.find(propertyName);
if (foundProperty == m_entry.m_properties.end())
return defaultValue;
char* endPtr = nullptr;
const auto result = std::strtof(foundProperty->second.c_str(), &endPtr);
if (endPtr != &foundProperty->second[foundProperty->second.size()])
{
std::ostringstream ss;
ss << "\"" << foundProperty->second << "\" is not a valid float value";
throw GdtReadingException(ss.str());
}
return result;
}
GdtVec2 AbstractGdtEntryReader::ReadVec2Property(const std::string& propertyName, const GdtVec2 defaultValue) const
{
const auto foundProperty = m_entry.m_properties.find(propertyName);
if (foundProperty == m_entry.m_properties.end())
return defaultValue;
std::istringstream iss(foundProperty->second);
GdtVec2 result;
iss >> result.x >> result.y;
if (iss.fail())
{
std::ostringstream oss;
oss << "\"" << foundProperty->second << "\" is not a valid vec2 value";
throw GdtReadingException(oss.str());
}
return result;
}
GdtVec3 AbstractGdtEntryReader::ReadVec3Property(const std::string& propertyName, const GdtVec3 defaultValue) const
{
const auto foundProperty = m_entry.m_properties.find(propertyName);
if (foundProperty == m_entry.m_properties.end())
return defaultValue;
std::istringstream iss(foundProperty->second);
GdtVec3 result;
iss >> result.x >> result.y >> result.z;
if (iss.fail())
{
std::ostringstream oss;
oss << "\"" << foundProperty->second << "\" is not a valid vec3 value";
throw GdtReadingException(oss.str());
}
return result;
}
GdtVec4 AbstractGdtEntryReader::ReadVec4Property(const std::string& propertyName, const GdtVec4 defaultValue) const
{
const auto foundProperty = m_entry.m_properties.find(propertyName);
if (foundProperty == m_entry.m_properties.end())
return defaultValue;
std::istringstream iss(foundProperty->second);
GdtVec4 result;
iss >> result.x >> result.y >> result.z >> result.w;
if (iss.fail())
{
std::ostringstream oss;
oss << "\"" << foundProperty->second << "\" is not a valid vec4 value";
throw GdtReadingException(oss.str());
}
return result;
}

View File

@@ -0,0 +1,53 @@
#pragma once
#include "Obj/Gdt/GdtEntry.h"
#include "Utils/ClassUtils.h"
#include <exception>
class GdtReadingException : public std::exception
{
public:
explicit GdtReadingException(std::string message);
_NODISCARD const char* what() const noexcept override;
private:
std::string m_message;
};
struct GdtVec2
{
float x;
float y;
};
struct GdtVec3
{
float x;
float y;
float z;
};
struct GdtVec4
{
float x;
float y;
float z;
float w;
};
class AbstractGdtEntryReader
{
protected:
explicit AbstractGdtEntryReader(const GdtEntry& entry);
_NODISCARD std::string ReadStringProperty(const std::string& propertyName, std::string defaultValue = std::string()) const;
_NODISCARD bool ReadBoolProperty(const std::string& propertyName, bool defaultValue = false) const;
_NODISCARD int ReadIntegerProperty(const std::string& propertyName, int defaultValue = 0) const;
_NODISCARD float ReadFloatProperty(const std::string& propertyName, float defaultValue = 0.0f) const;
_NODISCARD GdtVec2 ReadVec2Property(const std::string& propertyName, GdtVec2 defaultValue = {}) const;
_NODISCARD GdtVec3 ReadVec3Property(const std::string& propertyName, GdtVec3 defaultValue = {}) const;
_NODISCARD GdtVec4 ReadVec4Property(const std::string& propertyName, GdtVec4 defaultValue = {}) const;
const GdtEntry& m_entry;
};