From 9329ca02ac2f58eff7ea2e149de85512dc51ce8d Mon Sep 17 00:00:00 2001 From: gered Date: Sat, 22 Dec 2012 19:12:26 -0500 Subject: [PATCH] add scale transformation support to the metadata file --- src/metadata/metadatafile.cpp | 18 ++++++++++++++++++ src/metadata/metadatafile.h | 2 ++ 2 files changed, 20 insertions(+) diff --git a/src/metadata/metadatafile.cpp b/src/metadata/metadatafile.cpp index 73e9f43..bbcfbb9 100644 --- a/src/metadata/metadatafile.cpp +++ b/src/metadata/metadatafile.cpp @@ -7,16 +7,19 @@ #include #include #include +#include #include MetadataFile::MetadataFile() { m_isLoaded = FALSE; + m_scale = 1.0f; } void MetadataFile::Release() { m_isLoaded = FALSE; + m_scale = 1.0f; } BOOL MetadataFile::Load(const std::string &file) @@ -109,6 +112,21 @@ BOOL MetadataFile::Load(const std::string &file) m_groupInfo.push_back(groupInfo); } + pugi::xml_node transformationsNode = rootNode.child("transformations"); + for (pugi::xml_node transformation = transformationsNode.first_child(); transformation; transformation = transformation.next_sibling()) + { + std::string name = transformation.name(); + if (name == "scale") + { + if (strlen(transformation.value()) == 0) + { + printf("Metadata XML error: no scale factor provided\n"); + return FALSE; + } + m_scale = atof(transformation.value()); + } + } + m_isLoaded = TRUE; return TRUE; } diff --git a/src/metadata/metadatafile.h b/src/metadata/metadatafile.h index e5a0925..d34321c 100644 --- a/src/metadata/metadatafile.h +++ b/src/metadata/metadatafile.h @@ -16,6 +16,7 @@ public: void Release(); BOOL Load(const std::string &file); + float GetScale() const { return m_scale; } uint32_t GetNumAnimations() const { return m_animations.size(); } const AnimationSequence* GetAnimations() const { return &m_animations[0]; } uint32_t GetNumGroupInfo() const { return m_groupInfo.size(); } @@ -26,6 +27,7 @@ public: private: BOOL m_isLoaded; + float m_scale; std::vector m_animations; std::vector m_groupInfo; };