2002-03-09 18:52:01 +08:00
|
|
|
/* ************************
|
|
|
|
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
|
From Terrex and Andrew Sampsom and Don Tidrow and Robert Osfield,
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.
2006-06-27 18:07:42 +08:00
|
|
|
how to read the old school material tables.
|
2002-03-09 18:52:01 +08:00
|
|
|
*/
|
From Terrex and Andrew Sampsom and Don Tidrow and Robert Osfield,
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.
2006-06-27 18:07:42 +08:00
|
|
|
bool Read(trpgReadBuffer &);
|
2002-03-09 18:52:01 +08:00
|
|
|
/* This write method can write a 2.0 material table as 1.0
|
From Terrex and Andrew Sampsom and Don Tidrow and Robert Osfield,
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.
2006-06-27 18:07:42 +08:00
|
|
|
style for backward compatibility.
|
2002-03-09 18:52:01 +08:00
|
|
|
*/
|
From Terrex and Andrew Sampsom and Don Tidrow and Robert Osfield,
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.
2006-06-27 18:07:42 +08:00
|
|
|
bool Write(trpgWriteBuffer &);
|
2002-03-09 18:52:01 +08:00
|
|
|
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
|
From Terrex and Andrew Sampsom and Don Tidrow and Robert Osfield,
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.
2006-06-27 18:07:42 +08:00
|
|
|
knows how to read the old style texture table.
|
2002-03-09 18:52:01 +08:00
|
|
|
*/
|
From Terrex and Andrew Sampsom and Don Tidrow and Robert Osfield,
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.
2006-06-27 18:07:42 +08:00
|
|
|
bool Read(trpgReadBuffer &);
|
2002-03-09 18:52:01 +08:00
|
|
|
/* The write method can write a 2.0 texture table as 1.0
|
From Terrex and Andrew Sampsom and Don Tidrow and Robert Osfield,
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.
2006-06-27 18:07:42 +08:00
|
|
|
style for backward compatibility.
|
2002-03-09 18:52:01 +08:00
|
|
|
*/
|
From Terrex and Andrew Sampsom and Don Tidrow and Robert Osfield,
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.
2006-06-27 18:07:42 +08:00
|
|
|
bool Write(trpgWriteBuffer &);
|
2002-03-09 18:52:01 +08:00
|
|
|
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
|
From Terrex and Andrew Sampsom and Don Tidrow and Robert Osfield,
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.
2006-06-27 18:07:42 +08:00
|
|
|
bool Read(trpgReadBuffer &);
|
2002-03-09 18:52:01 +08:00
|
|
|
// Can write old style textures
|
From Terrex and Andrew Sampsom and Don Tidrow and Robert Osfield,
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.
2006-06-27 18:07:42 +08:00
|
|
|
bool Write(trpgWriteBuffer &);
|
2002-03-09 18:52:01 +08:00
|
|
|
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
|
From Terrex and Andrew Sampsom and Don Tidrow and Robert Osfield,
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.
2006-06-27 18:07:42 +08:00
|
|
|
bool Write(trpgWriteBuffer &);
|
2002-03-09 18:52:01 +08:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif
|