16 #ifndef _trpage_managers_h_
17 #define _trpage_managers_h_
66 bool SetTileLoc(
int x,
int y,
int lod);
68 bool GetTileLoc(
int &x,
int &y,
int &lod)
const;
89 const std::vector<trpgLocalMaterial> *GetLocMatList(
void)
const;
100 void SetLocalData(
void *);
104 void *GetLocalData(
void)
const;
114 bool SetMatData(
int id,
void *);
119 void *GetMatData(
int id)
const;
130 const std::vector<int> *GetGroupIDs(
void)
const;
140 return (
unsigned int)childLocationInfo.size();
142 bool SetChildLocationInfo(
int childIdx,
int x,
int y,
const trpgwAppAddress& addr);
145 bool GetChildTileLoc(
int childIdx,
int &x,
int &y,
int &lod)
const;
196 virtual bool SetPageDistFactor(
double);
222 virtual void AckLoad(std::vector<TileLocationInfo>
const& children);
225 virtual void AckLoad();
241 virtual void *GetGroupData(
int groupID);
254 virtual void AckUnload(
void);
261 virtual bool Stop(
void);
310 virtual bool Stop(
void);
349 virtual void Clean(
void);
350 virtual void Update(
void);
359 void AddChildrenToLoadList(std::vector<trpgManagedTile*>& parentList);
366 void GetLoadedTileWithin(
double pagingDistance, std::vector<trpgManagedTile*>& tileList);
403 std::deque<trpgManagedTile *>
load;
466 unsigned int GetNbChildren()
const;
469 const trpgChildRef& GetChildRef(
unsigned int idx)
const;
502 void Fly_LL_to_UR(
double dist=100.0);
507 void RandomTest(
int no=100,
int seed=-1);
512 void ProcessChanges();
Definition: trpage_managers.h:487
virtual void Print(trpgPrintBuffer &)
Print current status and content information.
bool valid
Definition: trpage_managers.h:368
std::vector< void * > localMatData
Data to keep associated with each individual local material index.
Definition: trpage_managers.h:158
std::vector< bool > tmpCurrent
Used by Update. Here because we want to avoid memory allocs, if possible.
Definition: trpage_managers.h:410
virtual bool SetLocation(trpg2dPoint &)
trpgr_ChildRefCB childRefCB
Definition: trpage_managers.h:518
ChildList childList
Definition: trpage_managers.h:481
Definition: trpage_managers.h:432
#define DT_DLL_osgdb_vrftxp
Contains DLL export macros.
Definition: osgdb_vrftxpDefines.h:25
std::deque< trpgManagedTile * > load
List of tiles to load.
Definition: trpage_managers.h:403
virtual trpgManagedTile * GetNextLoad(void)
trpg2dPoint pagePt
Center of paging.
Definition: trpage_managers.h:270
Definition: trpage_geom.h:1763
std::vector< LodPageInfo > pageInfo
Per terrain lod paging information.
Definition: trpage_managers.h:429
std::deque< trpgManagedTile * > current
List of currently loaded tiles.
Definition: trpage_managers.h:407
trpgr_Archive * archive
Definition: trpage_managers.h:267
void * localData
Local data (probably the top of the local scene graph)
Definition: trpage_managers.h:162
std::vector< int > groupIDs
Used to keep track of group IDs in this tile.
Definition: trpage_managers.h:160
trpgr_Archive * archive
Definition: trpage_managers.h:515
trpg2iPoint aoiSize
Definition: trpage_managers.h:395
Definition: trpage_read.h:60
int minorVersion
Definition: trpage_managers.h:450
trpg2dPoint cellSize
Size of a single cell. Copied from the archive.
Definition: trpage_managers.h:387
int minorVersion
Definition: trpage_managers.h:522
trpgManagedTile * lastTile
Tile to be loaded/unloaded.
Definition: trpage_managers.h:440
const trpg2iPoint & GetCellPagingLocation() const
The middle of this cell correspond to our paging location.
Definition: trpage_managers.h:343
virtual void AddGroupID(trpgManagedTile *, int groupID, void *data)
bool activeLoad
Set if a load is in progress Load w/o ACK.
Definition: trpage_managers.h:414
unsigned int GetNbChildren() const
Children info, will throw exception if child index is out of bound.
Definition: trpage_managers.h:138
trpgPrintBuffer * printBuf
Definition: trpage_managers.h:516
double GetPageDistance() const
Definition: trpage_managers.h:324
bool valid
Definition: trpage_managers.h:452
TileLocationInfo(int gx, int gy, int glod, const trpgwAppAddress &gaddr)
Definition: trpage_managers.h:35
int x
Definition: trpage_managers.h:36
int GetLod() const
Definition: trpage_managers.h:319
Definition: trpage_geom.h:2476
virtual void AckUnload(void)
std::vector< trpgChildRef > ChildList
typedef std::vector<const trpgChildRef> ChildList; The const in the template parameter was removed be...
Definition: trpage_managers.h:480
trpg2iPoint cell
Definition: trpage_managers.h:400
LoadType lastLoad
Definition: trpage_managers.h:436
int lod
Definition: trpage_managers.h:36
Definition: trpage_io.h:265
Definition: trpage_managers.h:432
Definition: trpage_read.h:185
For Version 2.1 an over, the tile table only contains tiles of lod 0. To get access the other tiles...
Definition: trpage_managers.h:461
{secret}
Definition: trpage_read.h:32
double pageDist
Definition: trpage_managers.h:378
double scale
Optional scaling factor.
Definition: trpage_managers.h:443
int y
Definition: trpage_managers.h:36
int lod
Terrain LOD we're responsible for.
Definition: trpage_managers.h:371
LoadType
Enumerated type for lastLoad.
Definition: trpage_managers.h:432
Definition: trpage_print.h:28
Definition: trpage_io.h:632
const trpg2dPoint & GetCellSize() const
Definition: trpage_managers.h:329
const trpg2iPoint & GetLodSize() const
Definition: trpage_managers.h:314
Definition: trpage_managers.h:180
int minorVersion
Definition: trpage_managers.h:423
std::vector< TileLocationInfo > childLocationInfo
What are the children: this to be used for version 2.1 and up. Both vector should have the same size...
Definition: trpage_managers.h:166
Definition: trpage_geom.h:1680
int maxNumTiles
Definition: trpage_managers.h:384
trpg2iPoint lodSize
Number of tiles (cells) in each direction.
Definition: trpage_managers.h:390
Definition: trpage_io.h:278
ManageGroupMap groupMap
Definition: trpage_managers.h:447
bool isLoaded
Set if a tile is currently loaded.
Definition: trpage_managers.h:151
Definition: trpage_managers.h:44
virtual void Init(trpgr_Archive *)
Initialize with an archive.
int lastLod
LOD for the pending load/unload requested operation.
Definition: trpage_managers.h:438
virtual void AckLoad()
Using this call with version 2.1 and over will only page lod 0 tiles.
int majorVersion
Terrapge Version.
Definition: trpage_managers.h:450
std::deque< trpgManagedTile * > freeList
List of tile pointers we can reuse.
Definition: trpage_managers.h:420
const trpg2iPoint & GetAreaOfInterest() const
The unit are cellSize.
Definition: trpage_managers.h:335
trpgPageManager * manager
Definition: trpage_managers.h:514
#define TX_EXDECL
Goes before "class" to handle DLL export in windows.
Definition: trdll.h:69
trpgTileHeader tileHead
Tile Header associated with this tile.
Definition: trpage_managers.h:156
trpgr_Parser tileParser
Definition: trpage_managers.h:519
Definition: trpage_io.h:452
voidpf uLong offset
Definition: ioapi.h:42
bool activeUnload
Set if an unload is in progress Unload w/o ACK.
Definition: trpage_managers.h:417
virtual trpgManagedTile * GetNextUnload(void)
const trpgTileTable * tileTable
Definition: trpage_managers.h:425
TileLocationInfo()
Definition: trpage_managers.h:34
Definition: trpage_managers.h:432
Definition: trpage_managers.h:275
std::deque< trpgManagedTile * > unload
List of tiles to unload.
Definition: trpage_managers.h:405
short trpgToken
16 bit token definition value. These are values such as TRPGTEXTABLE or TRPG_ATTACH, etc...
Definition: trpage_io.h:61
trpgwAppAddress addr
Definition: trpage_managers.h:37
Grid and file location of a tile.
Definition: trpage_managers.h:32
TileLocationInfo location
Tile location info.
Definition: trpage_managers.h:153
std::map< int, void * > ManageGroupMap
Mapping from group IDs to user defined data.
Definition: trpage_managers.h:446
virtual void * Parse(trpgToken, trpgReadBuffer &)
Definition: trpage_read.h:36