36 #define MIN(x,y) (((x) < (y)) ? (x) : (y))
40 #define MAX(x,y) (((x) > (y)) ? (x) : (y))
44 #define TRPG_MAGIC 9480372
47 #define TRPG_VERSION_MAJOR 2
49 #define TRPG_VERSION_MINOR 2
53 #define TRPG_NOMERGE_VERSION_MAJOR 2
54 #define TRPG_NOMERGE_VERSION_MINOR 2
58 #define TRPG_NOTOKEN 0
66 #define TRPG_MINTOKEN 100
73 #define TRPGHEADER 200
75 #define TRPGHEAD_LODINFO 201
78 #define TRPGMATTABLE 300
81 #define TRPGMATTABLE2 301
84 #define TRPGSHORTMATTABLE 302
87 #define TRPGMATERIAL 400
89 #define TRPGMAT_BASIC 401
91 #define TRPGMAT_SHADE 402
94 #define TRPGMAT_SIZES 403
96 #define TRPGMAT_CULL 404
98 #define TRPGMAT_ALPHA 405
100 #define TRPGMAT_NORMAL 406
102 #define TRPGMAT_TEXTURE 407
104 #define TRPGMAT_BUMP 408
106 #define TRPGMAT_ATTR 409
108 #define TRPGMAT_HANDLE 410
111 #define TRPGMAT_TEXENV 500
113 #define TRPGMAT_TXENV_MODE 501
115 #define TRPGMAT_TXENV_FILTER 502
117 #define TRPGMAT_TXENV_WRAP 503
119 #define TRPGMAT_TXENV_BORDER 504
122 #define TRPGTEXTABLE 600
124 #define TRPGTEXTABLE2 601
126 #define TRPGTEXTURE 650
129 #define TRPGMODELREF 700
131 #define TRPGMODELREF2 701
133 #define TRPGMODELTABLE 800
136 #define TRPGTILETABLE 900
138 #define TRPG_TILE_ENTRY 901
140 #define TRPGTILETABLE2 902
143 #define TRPGTILEHEADER 1000
145 #define TRPG_TILE_MATLIST 1001
147 #define TRPG_TILE_MODELLIST 1002
149 #define TRPG_TILE_DATE 1003
151 #define TRPGLOCALMATERIAL 1004
153 #define TRPG_TILE_LOCMATLIST 1005
158 #define TRPGLIGHTTABLE 1100
160 #define TRPGLIGHTATTR 1150
162 #define TRPGLIGHTATTR_BASIC 1151
164 #define TRPGLIGHTATTR_RASCAL 1152
166 #define TRPGLIGHTATTR_CALLIGRAPHIC 1153
168 #define TRPGLIGHTATTR_PERFORMER 1154
170 #define TRPGLIGHTATTR_ANIMATION 1155
172 #define TRPGLIGHTATTR_COMMENT 1156
174 #define TRPGLIGHTATTR_HANDLE 1157
176 #define TRPGLIGHT 1160
178 #define TRPG_LIGHT 1160
181 #define TRPGRANGETABLE 1200
183 #define TRPG_RANGE 1201
187 #define TRPG_TEXT_STYLE_TABLE 1300
189 #define TRPG_TEXT_STYLE 1301
191 #define TRPG_TEXT_STYLE_BASIC 1302
194 #define TRPG_SUPPORT_STYLE_TABLE 1310
196 #define TRPG_SUPPORT_STYLE 1311
198 #define TRPG_SUPPORT_STYLE_BASIC 1312
201 #define TRPG_LABEL_PROPERTY_TABLE 1320
203 #define TRPG_LABEL_PROPERTY 1321
205 #define TRPG_LABEL_PROPERTY_BASIC 1322
209 #define TRPG_LABEL 1330
213 #define TRPG_GROUP 2001
215 #define TRPG_BILLBOARD 2002
217 #define TRPG_LOD 2003
219 #define TRPG_TRANSFORM 2004
221 #define TRPG_MODELREF 2005
223 #define TRPG_LAYER 2006
226 #define TRPG_GEOMETRY 3000
228 #define TRPG_GEOM_PRIM 3001
230 #define TRPG_GEOM_MATERIAL 3002
232 #define TRPG_GEOM_VERT32 3003
234 #define TRPG_GEOM_VERT64 3004
236 #define TRPG_GEOM_NORM32 3005
238 #define TRPG_GEOM_NORM64 3006
240 #define TRPG_GEOM_COLOR 3007
242 #define TRPG_GEOM_TEX32 3008
244 #define TRPG_GEOM_TEX64 3009
246 #define TRPG_GEOM_EFLAG 3010
249 #define TRPG_ATTACH 4000
252 #define TRPG_CHILDREF 5000
255 #define TRPG_MAXTOKEN 5000
271 if ( x != pt.
x )
return false;
272 if ( y != pt.
y )
return false;
289 trpg3dPoint(
double in_x,
double in_y,
double in_z) {x = in_x; y = in_y; z = in_z;}
291 if ( x != pt.
x )
return false;
292 if ( y != pt.
y )
return false;
293 if ( z != pt.
z )
return false;
304 if ( color.
red != red )
return false;
305 if ( color.
green != green )
return false;
306 if ( color.
blue != blue )
return false;
328 virtual void Add(
int32) = 0;
329 virtual void Add(
int64) = 0;
330 virtual void Add(
const char *) = 0;
334 virtual void Add(
bool) = 0;
336 virtual void Add(
uint8) = 0;
337 #if (trpgDiskRef != int64)
342 virtual void Reset(
void) = 0;
346 virtual void End(
void) = 0;
348 virtual void Push(
void) = 0;
350 virtual void Pop(
void) = 0;
357 virtual void Add(
const std::string &);
383 virtual int length(
void)
const;
385 virtual const char *getData(
void)
const;
387 virtual void setLength(
unsigned int);
396 virtual void Add(
const char *);
398 virtual void Add(std::string &);
405 virtual void Add(
bool);
409 #if (trpgDiskRef != int64)
416 virtual void Reset(
void);
423 virtual void End(
void);
426 virtual void Push(
void);
429 virtual void Pop(
void);
432 virtual bool UnPop();
435 virtual bool UnPush();
438 virtual void append(
unsigned int,
const char *);
439 virtual void set(
unsigned int pos,
unsigned int len,
const char *);
457 virtual bool Get(
int32 &);
458 virtual bool Get(
int64 &);
459 virtual bool Get(
char *,
int);
460 virtual bool Get(std::string &);
464 virtual bool Get(
bool &);
466 virtual bool Get(
uint8 &);
467 #if (trpgDiskRef != int64)
474 virtual bool GetArray(
int,
float32 **);
475 virtual bool GetArray(
int,
float64 **);
476 virtual bool GetArray(
int,
int32 **);
478 virtual bool GetArray(
int,
char **);
490 virtual void PushLimit(
int);
493 virtual void PopLimit(
void);
497 virtual bool SkipToLimit(
void);
500 virtual bool isEmpty(
void) = 0;
505 virtual bool TestLimit(
int);
512 virtual bool GetData(
char *,
int)=0;
517 virtual bool GetDataRef(
char **,
int)=0;
520 virtual bool Skip(
int) = 0;
523 virtual void UpdateLimits(
int);
546 char *GetDataPtr(
void);
566 bool isValid(
void)
const;
616 virtual void Reset(
void) = 0;
621 const char *
getErrMess()
const {
if(errMess[0] ==
'\0')
return 0;
else return &errMess[0];}
625 mutable char errMess[512];
658 virtual bool Append(
const char *,
int size);
659 virtual int64 Pos(
void)
const;
660 virtual int GetLengthWritten();
661 virtual bool Flush(
void);
662 virtual void Init(
trpgEndian,
const char *,
bool reuse=
false);
664 bool isValid(
void)
const;
685 virtual bool Read(
char *data,
int32 baseOffset,
int32 objOffset,
int32 dataSize);
687 bool isValid(
void)
const;
702 virtual void Init(
const char *prefix,
const char *ext,
int noFiles);
709 char baseName[1024],ext[20];