261f4a3b1c
email comments from Andew Sampson, "I've contacted Terrex, and obtained the 2.2 version of their trpage library. The library included a fork of OSG 0.9.8's txp plugin, modified to load 2.1+ txp DBs. I've done the work of incorporating the changes made to OSG's txp plugin since 0.9.8 into Terrex's fork. The forked version is now up-to-date with the changes made to OSG 0.9.9 and 1.0. Terrex made a lot of changes (especially differences in whitespace), so the diff between the forked version and OSG 1.0's txp plugin is yucky. I did my best, but keep in mind that this is the result of a 4-way merge (kinda... terrex-0.9.8, stock-0.9.8, stock-0.9.9, stock-1.0). I really want to see this forked version merged back into the main OSG branch. The new features offered by this version of the plugin (2.1+ support, variable LOD support, bug fixes) are worth the trouble." -- Don Tidrow then took this code and added his work. -- Robert Osfield then fixed all the warnings that abound in the trpage code base.
97 lines
2.7 KiB
C++
97 lines
2.7 KiB
C++
/* ************************
|
|
Copyright Terrain Experts Inc.
|
|
Terrain Experts Inc (TERREX) reserves all rights to this source code
|
|
unless otherwise specified in writing by the President of TERREX.
|
|
This copyright may be updated in the future, in which case that version
|
|
supercedes this one.
|
|
-------------------
|
|
Terrex Experts Inc.
|
|
4400 East Broadway #314
|
|
Tucson, AZ 85711
|
|
info@terrex.com
|
|
Tel: (520) 323-7990
|
|
************************
|
|
*/
|
|
|
|
#ifndef _trpage_compat_h_
|
|
#define _trpage_compat_h_
|
|
|
|
/* trpage_compat.h
|
|
This file and the accompanying trpage_compat.cpp contain objects and procedures
|
|
used to maintain compatibility between versions of TerraPage. In particular, the
|
|
ability to read older versions of TerraPage and newer applications.
|
|
*/
|
|
|
|
/* Material Table 1.0.
|
|
This class is used to read old 1.0 material tables and convert them
|
|
into the 2.0 material table we're inheriting from. Users should
|
|
never directly interact with this class.
|
|
{secret}
|
|
*/
|
|
class trpgMatTable1_0 : public trpgMatTable {
|
|
public:
|
|
trpgMatTable1_0() { };
|
|
trpgMatTable1_0(const trpgMatTable &);
|
|
|
|
/* This read method overrides the one from trpgMatTable and knows
|
|
how to read the old school material tables.
|
|
*/
|
|
bool Read(trpgReadBuffer &);
|
|
/* This write method can write a 2.0 material table as 1.0
|
|
style for backward compatibility.
|
|
*/
|
|
bool Write(trpgWriteBuffer &);
|
|
protected:
|
|
};
|
|
|
|
/* Texture Table 1.0.
|
|
This class is used to read old 1.0 texture tables and convert them
|
|
into 2.0 texture tables. Users should never directly interact with
|
|
this class.
|
|
{secret}
|
|
*/
|
|
class trpgTexTable1_0 : public trpgTexTable {
|
|
public:
|
|
trpgTexTable1_0() { };
|
|
trpgTexTable1_0(const trpgTexTable &);
|
|
|
|
/* This read method overrides the one from trpgTexTable and
|
|
knows how to read the old style texture table.
|
|
*/
|
|
bool Read(trpgReadBuffer &);
|
|
/* The write method can write a 2.0 texture table as 1.0
|
|
style for backward compatibility.
|
|
*/
|
|
bool Write(trpgWriteBuffer &);
|
|
protected:
|
|
};
|
|
|
|
/* Texture 1.0.
|
|
Knows how to read an old style texture.
|
|
{secret}
|
|
*/
|
|
class trpgTexture1_0 : public trpgTexture {
|
|
public:
|
|
// Assignment operator from a regular trpgTexture
|
|
trpgTexture1_0 operator = (const trpgTexture &);
|
|
|
|
// Knows how to read old style textures
|
|
bool Read(trpgReadBuffer &);
|
|
// Can write old style textures
|
|
bool Write(trpgWriteBuffer &);
|
|
protected:
|
|
};
|
|
|
|
/* Tile Table 1.0
|
|
Knows how to write an old style tile table.
|
|
{secret}
|
|
*/
|
|
class trpgTileTable1_0 : public trpgTileTable {
|
|
public:
|
|
trpgTileTable1_0(const trpgTileTable &);
|
|
// Can write old style tile table
|
|
bool Write(trpgWriteBuffer &);
|
|
};
|
|
|
|
#endif
|