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 NMAP_H
11 #define NMAP_H
12 
13 #include <string>
14 
15 class CXmlStreamWrite;
16 class CXmlStreamRead;
17 
18 class nAmf;
19 
20 class nTexmap
21 {
22 public:
23 	nTexmap(void);
24 	~nTexmap(void);
nTexmap(int RTexIdIn,int GTexIdIn,int BTexIdIn,double U1In,double U2In,double U3In,double V1In,double V2In,double V3In)25 	nTexmap(int RTexIdIn, int GTexIdIn, int BTexIdIn, double U1In, double U2In, double U3In, double V1In, double V2In, double V3In) {Clear(); RTexID = RTexIdIn; GTexID = GTexIdIn; BTexID = BTexIdIn; uTex1 = U1In; uTex2 = U2In; uTex3 = U3In; vTex1 = V1In; vTex2 = V2In; vTex3 = V3In;}
nTexmap(const nTexmap & In)26 	nTexmap(const nTexmap& In) {*this = In;} //copy constructor
27 	nTexmap& operator=(const nTexmap& 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 RTexID, GTexID, BTexID;
37 
38 	//optional attributes
39 	int ATexID;
40 	bool ATexIDExists;
41 
42 	//required tags
43 	double uTex1, uTex2, uTex3, vTex1, vTex2, vTex3;
44 
45 	//optional tags
46 	double wTex1, wTex2, wTex3;
47 	bool WExists;
48 };
49 
50 #endif //NMAP_H
51