V-Gears 0
Free Final Fantasy VII engine.
VGearsWalkmeshFileXMLSerializer.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2022 The V-Gears Team
3 *
4 * This file is part of V-Gears
5 *
6 * V-Gears is free software: you can redistribute it and/or modify it under
7 * terms of the GNU General Public License as published by the Free Software
8 * Foundation, version 3.0 (GPLv3) of the License.
9 *
10 * V-Gears is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 */
15
16#pragma once
17
18#include "common/TypeDefine.h"
20#include "VGearsWalkmeshFile.h"
21
22namespace VGears{
23
28
29 public:
30
35
40
47 virtual void ImportWalkmeshFile(
48 Ogre::DataStreamPtr &stream, WalkmeshFile *dest
49 );
50
52
54
55 protected:
56
62 virtual void ReadHeader(TiXmlNode *node);
63
70 virtual void readObject(TiXmlNode &node, Triangle &dest);
71
79 template<typename ValueType> void ReadVector(
80 TiXmlNode &node, std::vector<ValueType> &dest, const String &tag
81 ){
82 dest.clear();
83 TiXmlNode* child(node.FirstChild());
84 while (child != NULL){
85 if (
86 child->Type() == TiXmlNode::TINYXML_ELEMENT
87 && child->ValueStr() == tag
88 ){
89 ValueType in_tmp;
90 readObject(*child, in_tmp);
91 dest.push_back(in_tmp);
92 }
93 child = child->NextSibling();
94 }
95 }
96
97 };
98}
Handles the serialization of walkmesh files.
Definition: VGearsWalkmeshFileXMLSerializer.h:27
virtual void ImportWalkmeshFile(Ogre::DataStreamPtr &stream, WalkmeshFile *dest)
Imports a walkmesh file.
Definition: VGearsWalkmeshFileXMLSerializer.cpp:36
void ReadVector(TiXmlNode &node, std::vector< ValueType > &dest, const String &tag)
Reads a XML node as a vector.
Definition: VGearsWalkmeshFileXMLSerializer.h:79
WalkmeshFile::Triangle Triangle
Definition: VGearsWalkmeshFileXMLSerializer.h:51
virtual void readObject(TiXmlNode &node, Triangle &dest)
Reads an XML node as a triangle.
Definition: VGearsWalkmeshFileXMLSerializer.cpp:47
WalkmeshFileXMLSerializer()
Constructor.
Definition: VGearsWalkmeshFileXMLSerializer.cpp:22
virtual ~WalkmeshFileXMLSerializer()
Destructor.
Definition: VGearsWalkmeshFileXMLSerializer.cpp:24
virtual void ReadHeader(TiXmlNode *node)
Reads a file header from an XML node and sets the instance data.
Definition: VGearsWalkmeshFileXMLSerializer.cpp:26
WalkmeshFile::TriangleList TriangleList
Definition: VGearsWalkmeshFileXMLSerializer.h:53
Handles walkmesh files.
Definition: VGearsWalkmeshFile.h:26
std::vector< Triangle > TriangleList
Definition: VGearsWalkmeshFile.h:67
Handles the serialization of XML files.
Definition: VGearsXMLSerializer.h:44
Definition: FF7NameLookup.h:24
Ogre::String String
Definition: TypeDefine.h:37
A triangle of a walkmesh.
Definition: Walkmesh.h:24