16 #ifndef _txpage_write_h_
17 #define _txpage_write_h_
60 inline void AddStripStat(
int val) { stripStat[
MIN(14,val)]++; totalStripTri += val; totalTri += val; numStrip++;}
61 inline void AddFanStat(
int val) { fanStat[
MIN(14,val)]++; totalFanTri += val; totalTri += val; numFan++;}
62 inline void AddBagStat(
int val) { totalBagTri += val; totalTri += val;}
79 enum {UseDouble,UseFloat};
82 virtual void SetMode(
int);
83 virtual void Reset(
void);
85 virtual void StartPolygon(
void);
86 virtual void EndPolygon(
void);
87 virtual void ResetPolygon(
void);
94 virtual void SetMaterial(
int32);
95 virtual void AddMaterial(
int32);
100 virtual void FlushGeom(
void);
103 virtual void GetZMinMax(
double &min,
double &max);
122 virtual void Optimize(
void);
125 virtual void ResetTri(
void);
132 std::vector<trpg2dPoint>
tex;
133 std::vector<trpg3dPoint> norm,
vert;
165 virtual bool AddExternal(
char *name,
int &texID,
bool lookForExisting=
true);
171 virtual bool AddLocal(
char *name,
trpgTexture::ImageType type,
int sizeX,
int sizeY,
bool isMipmap,
char *data,
int &texID,
bool deferWrite);
178 virtual bool ReplaceLocal(
char *data,
int &texID);
191 virtual void SetMaxTexFileLength(
int len);
198 virtual trpgwAppFile * IncrementTextureFile(
bool geotyp);
203 virtual bool DesignateTextureFile(
int);
206 virtual bool Flush(
void);
237 enum TileMode {TileLocal,TileExternal,TileExternalSaved};
252 virtual void SetMaxTileFileLength(
int len);
278 virtual bool IncrementTileFile(
void);
279 virtual bool DesignateTileFile(
int);
284 virtual bool OpenFile(
const char *,
const char *);
285 virtual void CloseFile(
void);
286 virtual bool WriteHeader(
void);
287 virtual bool CheckpointHeader(
void);
288 virtual bool WriteTile(
unsigned int,
unsigned int,
unsigned int,
float zmin,
float zmax,
293 const char *getErrMess()
const;
298 virtual int32 WriteHeaderData(
const char *dataPtr,
int32 length,FILE *filehandle);
356 mutable char errMess[512];
Definition: trpage_write.h:155
Definition: trpage_geom.h:2076
trpgEndian ness
Merge block textable into a master.
Definition: trpage_write.h:218
Definition: trpage_geom.h:2951
trpgWriteBuffer * buf
Definition: trpage_write.h:110
trpgwArchive(int)
dummy constructor, does nothing so subclasses can have more control
Definition: trpage_write.h:247
int stripGeom
Fan length stats.
Definition: trpage_write.h:53
int totalBagTri
triangles in fans
Definition: trpage_write.h:45
trpgGeometry strips
Collections of geometry.
Definition: trpage_write.h:128
double zmin
Keeps track of min and max z values.
Definition: trpage_write.h:147
trpgEndian
Used to specify machine endianess.
Definition: trpage_io.h:314
Definition: trpage_write.h:75
trpgwImageHelper()
Definition: trpage_write.h:157
#define DT_DLL_osgdb_vrftxp
Contains DLL export macros.
Definition: osgdb_vrftxpDefines.h:25
int mode
Definition: trpage_write.h:108
Definition: trpage_io.h:314
trpgwAppFile * geotypFile
Definition: trpage_write.h:224
int maxTexFileLen
Definition: trpage_write.h:226
trpgwGeomStats * GetStats(void)
Get statistics for whatever we built.
Definition: trpage_write.h:106
std::vector< trpg2dPoint > polyTex
Definition: trpage_write.h:136
trpgMatTable matTable
Definition: trpage_write.h:325
trpg3dPoint tmpNorm
Definition: trpage_write.h:140
{secret}
Definition: trpage_write.h:33
std::vector< int32 > matPoly
Data arrays for a polygon.
Definition: trpage_write.h:135
int stateChanges
Same for bags.
Definition: trpage_write.h:57
Definition: trpage_geom.h:1438
int fanGeom
Number of seperate trpgGeometry nodes for strips.
Definition: trpage_write.h:54
trpgwGeomStats stats
Geometry status built up as we go.
Definition: trpage_write.h:144
int totalFanTri
triangles in strips
Definition: trpage_write.h:44
#define MIN(x, y)
Macros we may need.
Definition: trpage_io.h:36
trpgTextStyleTable textStyleTable
Definition: trpage_write.h:330
char * getDir(void)
Definition: trpage_write.h:294
trpgTileTable tileTable
Definition: trpage_write.h:335
TileMode tileMode
Definition: trpage_write.h:338
#define TRPG_VERSION_MAJOR
Current TerraPage major version.
Definition: trpage_io.h:47
Definition: trpage_geom.h:1055
std::vector< trpg3dPoint > vert
Definition: trpage_write.h:133
trpgLabelPropertyTable labelPropertyTable
Definition: trpage_write.h:332
std::vector< trpg2dPoint > tex
Definition: trpage_write.h:132
virtual trpgr_Archive * GetArchiveReader()
Definition: trpage_write.h:297
int totalStripTri
Total # of quads.
Definition: trpage_write.h:43
trpg2iPoint addOffset
This offset is used when we're adding to an existing archive.
Definition: trpage_write.h:350
int32 offset
Definition: trpage_write.h:309
int y
Definition: trpage_write.h:307
Definition: trpage_geom.h:1616
trpgTexTable texTable
Definition: trpage_write.h:326
Definition: trpage_io.h:652
Definition: trpage_geom.h:1226
int numLod
Definition: trpage_write.h:337
int id
Definition: trpage_write.h:313
trpgwAppFile * tileFile
Definition: trpage_write.h:340
trpgSupportStyleTable supportStyleTable
Definition: trpage_write.h:331
Definition: trpage_io.h:376
std::vector< int > geotypFileIDs
Definition: trpage_write.h:223
int numFan
Number of distinct strips.
Definition: trpage_write.h:48
Definition: trpage_io.h:265
Definition: trpage_read.h:185
void AddStripStat(int val)
Number of distinct material switches.
Definition: trpage_write.h:60
int maxTileFileLen
Definition: trpage_write.h:347
Definition: trpage_io.h:561
Definition: trpage_io.h:299
Definition: trpage_geom.h:2862
std::vector< int32 > matTri
Temporary data arrays for triangles/quads.
Definition: trpage_write.h:131
trpgRangeTable rangeTable
Definition: trpage_write.h:329
bool firstHeaderWrite
Definition: trpage_write.h:354
int totalTri
Definition: trpage_write.h:38
void AddFanStat(int val)
Definition: trpage_write.h:61
float zmin
Identifying info for tile.
Definition: trpage_write.h:308
trpgEndian ness
Definition: trpage_write.h:317
std::vector< trpg2dPoint > tmpTex
Single points.
Definition: trpage_write.h:139
Definition: trpage_io.h:632
void AddBagStat(int val)
Definition: trpage_write.h:62
std::vector< int > texFileIDs
Definition: trpage_write.h:221
int bagGeom
Same for fans.
Definition: trpage_write.h:55
#define TRPG_MAGIC
File header Magic Number.
Definition: trpage_io.h:44
#define TRPG_VERSION_MINOR
Current TerraPage minor version.
Definition: trpage_io.h:49
std::vector< TileFile > tileFiles
Definition: trpage_write.h:343
bool separateGeoTypical
Definition: trpage_write.h:225
bool isValid(void) const
Returns the state of the valid flag, or can be overriden by a subclass to do a more complex check...
Definition: trpage_geom.h:3045
Definition: trpage_geom.h:903
Definition: trpage_io.h:323
Definition: trpage_geom.h:1680
Definition: trpage_io.h:278
trpgModelTable modelTable
Definition: trpage_write.h:327
int tileFileCount
Definition: trpage_write.h:341
std::vector< TileFileEntry > tiles
Definition: trpage_write.h:314
ImageType
Definition: trpage_geom.h:1252
std::vector< trpg3dPoint > polyVert
Definition: trpage_write.h:137
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
int numStrip
loose triangles
Definition: trpage_write.h:47
trpgLightTable lightTable
Definition: trpage_write.h:328
Definition: trpage_write.h:234
void AddQuadStat(int val)
Definition: trpage_write.h:63
trpgHeader header
Directory where we're doing all this.
Definition: trpage_write.h:324
TileMode
Tiles can be stored as individual files (External) or grouped together (Local)
Definition: trpage_write.h:237
Definition: trpage_geom.h:1119
#define TX_EXDECL
Goes before "class" to handle DLL export in windows.
Definition: trdll.h:69
FILE * fp
Definition: trpage_write.h:352
std::vector< TileFileEntry > externalTiles
Definition: trpage_write.h:345
trpgTexTable * texTable
Definition: trpage_write.h:220
trpgColor tmpCol
Definition: trpage_write.h:141
int minorVersion
Definition: trpage_write.h:318
Definition: trpage_write.h:311
trpgwAppFile * texFile
Definition: trpage_write.h:222
int dataType
Definition: trpage_write.h:109
int totalQuad
Total # of triangles.
Definition: trpage_write.h:40
Definition: trpage_io.h:285
Used to keep track of which tiles are in which file.
Definition: trpage_write.h:305