/* ----------------------------------------------------------------------------- GSFramework Copyright 2001-2013 Emmanuel Julien. All Rights Reserved. ----------------------------------------------------------------------------- */ #ifndef __NVECTORNML__ #define __NVECTORNML__ #include "metafile/nml.h" #include "math/vector.h" namespace GS { //------------------------------------------------------------------------------ template NML::Tag *tVectorAsMetaTag(const tVector2 &v, const char *id) { NML::Tag *root = id ? new NML::Tag(id) : new NML::Tag("Vector2"); if (root) { root->AddChild("X", v.x); root->AddChild("Y", v.y); } return root; } template bool tVectorFromMetaTag(tVector2 &v, NML::Tag &tag) { NML::Tag *t; List ::Iterator i(tag.GetTags().GetRoot()); if ((t = i.ObjectPtr()) == NULL) return false; v.x = t->GetReal(); ++i; if ((t = i.ObjectPtr()) == NULL) return false; v.y = t->GetReal(); return true; } //------------------------------------------------------------------------------ } // GS #endif // __NVECTORNML__