1 /*******************************************************************************
2 Copyright (c) 2012, Jonathan Hiller
3 
4 This file is part of the AMF Tools suite. http://amf.wikispaces.com/
5 AMF Tools is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
6 AMF Tools is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
7 See <http://www.opensource.org/licenses/lgpl-3.0.html> for license details.
8 *******************************************************************************/
9 
10 #ifndef NINSTANCE_H
11 #define NINSTANCE_H
12 
13 #include <string>
14 
15 class CXmlStreamWrite;
16 class CXmlStreamRead;
17 
18 class nAmf;
19 
20 class nInstance
21 {
22 public:
23 	nInstance(void);
24 	~nInstance(void);
nInstance(int ObjectIDIn)25 	nInstance(int ObjectIDIn) {Clear(); aObjectID = ObjectIDIn;}
nInstance(const nInstance & In)26 	nInstance(const nInstance& In) {*this = In;} //copy constructor
27 	nInstance& operator=(const nInstance& In); //overload Equals
28 	void Clear(void); //clears all data
29 
30 	//XML read/write
31 	bool WriteXML(CXmlStreamWrite* pXML, std::string* pMessage = 0);
32 	bool ReadXML(CXmlStreamRead* pXML, nAmf* pAmf, bool StrictLoad=true, std::string* pMessage = 0);
33 	bool CheckValid(nAmf* pAmf, bool FixNode=true, std::string* pMessage = 0);
34 
35 	//required attibutes
36 	int aObjectID;
37 
38 	//optional tags (although without one this would be useless...)
39 	double DeltaX, DeltaY, DeltaZ, rX, rY, rZ;
40 };
41 
42 #endif //NINSTANCE_H
43