VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
c4bReader.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2003 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 /*******************************************************************************
6 ** $RCSfile: c4b.h,v $ $Revision: 1.21 $ $State: Exp $
7 *******************************************************************************/
8 
9 #ifndef c4b_H
10 #define c4b_H
11 
12 #include "ctdb/ctdbDefines.h"
13 #include <vlutil/vlNetTypes.h>
14 
15 #include <vlutil/vlPrint.h>
16 
17 #include "geometry/point.h"
18 #include "gdb/gdbNode.h"
19 #include "gdb/group.h"
20 #include "gdb/feature.h"
21 #include "gdb/gridPostList.h"
22 #include "gdb/surfaceManager.h"
23 #include "geometry/surface.h"
24 #include "gdb/terrainReader.h"
25 
26 #include "gdb/terrainDatabase.h"
27 
28 #define DO_CANOPIES
29 #define DO_TREES
30 #define DO_TREELINES
31 #define DO_LINEAR_FEATURES
32 #define DO_BUILDINGS
33 #define DO_GRID_POSTS
34 #define DO_TINS
35 #define DO_MICRO_TERRAIN
36 
37 
38 static const int CTDB_N_SOILS = 16;
39 
40 static const int DATUM_ED50 = 0;
41 static const int DATUM_ED79 = 1;
42 static const int DATUM_WGS72 = 2;
43 static const int DATUM_WGS84 = 3;
44 static const int DATUM_CONUSNAD27 = 4;
45 static const int DATUM_NASBNAD27 = 5;
46 static const int DATUM_NASANAD27 = 6;
47 static const int DATUM_NAD83 = 7;
48 static const int DATUM_ADINDAN = 8;
49 static const int DATUM_ARC50 = 9;
50 static const int DATUM_AUSTRALIAN = 10;
51 static const int DATUM_BUKITRIMPAH = 11;
52 static const int DATUM_CAMPAREAASTRO = 12;
53 static const int DATUM_DJAKARTA = 13;
54 static const int DATUM_GEOD49 = 14;
55 static const int DATUM_GUAM63 = 15;
56 static const int DATUM_GUNUNGSEGARA = 16;
57 static const int DATUM_HERATNORTH = 17;
58 static const int DATUM_HJORSEY55 = 18;
59 static const int DATUM_INDIAN = 19;
60 static const int DATUM_IRELAND65 = 20;
61 static const int DATUM_KERTAU48 = 21;
62 static const int DATUM_LIBERIA64 = 22;
63 static const int DATUM_LUZON = 23;
64 static const int DATUM_MERCHICH = 24;
65 static const int DATUM_NIGERIA = 25;
66 static const int DATUM_ALASKACANADA27 = 26;
67 static const int DATUM_MAUI = 27;
68 static const int DATUM_OAHU = 28;
69 static const int DATUM_KAUAI = 29;
70 static const int DATUM_GREATBRITAIN36 = 30;
71 static const int DATUM_QORNOQ = 31;
72 static const int DATUM_SACAMPOINCHAUSPE = 32;
73 static const int DATUM_SACHUAASTRO = 33;
74 static const int DATUM_SACORREGOALEGRE = 34;
75 static const int DATUM_SAPROVISIONAL56 = 35;
76 static const int DATUM_SAYACARE = 36;
77 static const int DATUM_TAMANARIVEOBSV25 = 37;
78 static const int DATUM_TIMBOLAI48 = 38;
79 static const int DATUM_TOKYO = 39;
80 
81 static const int CTDB_PATCH_CACHES = 16;
82 static const int CTDB_NAME_LENGTH = 14;
83 static const int CTDB_DATE_LENGTH = 28;
84 static const int CTDB_HEADER_RESERVED = 10;
85 
86 class DtC4bReader;
87 
88 DT_DLL_ctdb double scale_to_patch(double bar);
89 
90 /*
91  * Class definitions.
92  */
93 
95 {
96  public:
97 
98  bool is_curved();
99  bool is_sw_ne();
100  bool is_gridded();
101  bool is_tinned();
102  void describe();
103 
104  private:
105 
106  DtNetU32 raw_bits;
107 };
108 
109 
110 /*
111  * These values were determined from a combination of s1000 and modsaf rdr files.
112  */
113 
114 typedef enum
115 {
116  C4B_SOIL_NON_C4B_SOIL = 0, // Unknown type of soil
117  C4B_SOIL_ROAD = 1, // Asphalt or other hard surface
118  C4B_SOIL_RCI250 = 2, // Packed soil or dirt road
119  C4B_SOIL_RCI050 = 3, // Soft sandy soil
120  C4B_SOIL_DEEP_WATER = 4, // Impassable deep water
121  C4B_SOIL_SHALLOW_WATER = 5, // Passable shallow water
122  C4B_SOIL_MUD = 6, // Muddy soil
123  C4B_SOIL_MUDDY_ROAD = 7, // Wet dirt road
124  C4B_SOIL_ICE = 8, // Slick ice surface
125  C4B_SOIL_SWAMP = 9, // Very soft surface
126  C4B_SOIL_FORRESTED = 10, // Canopy or forrested area
127  C4B_SOIL_US_RAILROAD = 11, // Railroad w/ US specifications
128  C4B_SOIL_EURO_RAILROAD = 12, // Railroad w/ European specs.
129  C4B_SOIL_ROCKY = 13, // Small rocks <= 18 inches
130  C4B_SOIL_BOULDERS = 14, // Large boulders 6 ft. high
131 
132  // Weird, eh? (What a kludge.)
133 
134  C4B_SOIL_FLIMSY = 15, // Indoor surface for DI
135  C4B_SOIL_NO_GO = 15 // General No Go Terrain for NTC
136 
138 
139 
140 
141 
143 {
144  public:
145 
146  bool is_water();
147  bool is_no_go();
148  bool is_slow_go();
149  bool is_road();
150  unsigned int CCTT_constant();
151  c4b_s1000_soil_type SIMNET_constant();
152  void describe();
153 
154  private:
155 
156  DtNetU32 raw_bits;
157 };
158 
159 
161 {
162  public:
163  bool read(FILE *fp);
164  void describe();
165 
166  DtNetInt32 format;
168  DtNetFloat64 fixed_point_basis;
170  DtNetInt32 post_increment;
172  DtNetInt32 pages_wide;
173  DtNetInt32 pages_high;
174  DtNetInt32 min_x;
175  DtNetInt32 max_x;
176  DtNetInt32 min_y;
177  DtNetInt32 max_y;
178  DtNetInt32 num_features; // physical features
179  DtNetInt32 patch_cache_size_map[CTDB_PATCH_CACHES];
180  DtNetInt32 pad2;
181  DtNetFloat64 origin_northing;
182  DtNetFloat64 origin_easting;
183  DtNetInt32 origin_zone_number;
184  DtNetInt32 origin_zone_letter;
185  DtNetInt32 datum;
186  DtNetU8 name[CTDB_NAME_LENGTH];
187  DtNetInt16 version;
188  DtNetU8 date[CTDB_DATE_LENGTH];
189  DtNetInt32 num_nodes;
190  DtNetInt32 node_size;
191  DtNetInt32 num_edges;
192  DtNetInt32 edge_size;
193  DtNetInt32 num_quad_data; // abstract features
194  DtNetInt32 n_patch_bytes;
195  DtNetInt32 reserved[CTDB_HEADER_RESERVED];
196 };
197 
198 
199 /*
200  * Patch group headers.
201  */
203 {
204  public:
205 
206  unsigned int cache();
207  bool mapped();
208  bool contains_tins();
209  bool patch0_occupied();
210  bool patch0_dyn_terr();
211  bool patch0_ta16();
212  bool patch0_no_tas();
213  bool patch1_occupied();
214  bool patch1_dyn_terr();
215  bool patch1_ta16();
216  bool patch1_no_tas();
217  bool patch2_occupied();
218  bool patch2_dyn_terr();
219  bool patch2_ta16();
220  bool patch2_no_tas();
221  bool patch3_occupied();
222  bool patch3_dyn_terr();
223  bool patch3_ta16();
224  bool patch3_no_tas();
225  unsigned int unused();
226 
227  bool read(FILE* fp);
228  void describe();
229 
230  unsigned int offset();
231 
232  private:
233 
234  DtNetU32 data_start; // byte offset for patch group's data fromstart of all patch group data
235  DtNetU32 raw_bits;
236 };
237 
238 
240 {
241  public:
242 
243  c4b_patch_group_headers(unsigned int num_patch_groups);
244 
245  int num_in_x;
246  int num_in_y;
248 
250 
251  bool read(FILE* fp, bool debug = false);
252 };
253 
254 
255 
256 /*
257  * Topology -- Nodes.
258  */
260 {
261  public:
262 
263  bool is_bridge();
264  unsigned int padding();
265  DtU8 num_connections();
266 
267  void describe();
268 
269  private:
270  DtNetU32 raw_bits;
271 };
272 
274 {
275  public:
276 
277  int Node();
278  int Edge();
279 
280  bool read(FILE* fp);
281  void describe();
282 
283  private:
284 
285  DtNetInt32 node;
286  DtNetInt32 edge;
287 };
288 
290 {
291  public:
292 
293  DtFloat32 X();
294  DtFloat32 Y();
295  bool read(FILE* fp);
296  void describe();
297 
300 
301  private:
302 
303  DtNetFloat32 x;
304  DtNetFloat32 y;
305 };
306 
307 
308 /*
309  * Topology -- Edges.
310  */
312 {
313  public:
314 
315  unsigned int patch_offset();
316  unsigned int quad_offset();
317  bool reverse();
318  unsigned int padding();
319  bool is_abstract_feature();
320 
321  bool read(FILE *fp);
322  void describe();
323 
324  private:
325 
326  DtNetU32 patch_number;
327  DtNetU32 raw_bits;
328 };
329 
331 {
332  public:
333 
334  bool read(FILE *fp);
335  void describe();
336 
337  private:
338 
339  DtNetInt32 distance;
340  DtNetInt32 first_node;
341  DtNetInt32 last_node;
342  DtNetInt32 num_features;
343 
345 };
346 
347 
348 /*
349  * Abstract features.
350  */
352 {
353  public:
354 
355  bool read(FILE *fp);
356  void describe();
357 
358  private:
359 
360  DtNetU8 type_code;
361  DtNetU8 data_size; // 4 byte units
362  DtNetU16 num_vertices;
363 };
364 
365 
366 /*
367  * Feature data.
368  */
370 {
371  public:
372 
373  void describe();
374 
375  void SetVec(DtPoint &v);
376  double X();
377  double Y();
378 
379  private:
380 
381  DtNetU16 x;
382  DtNetU16 y;
383 };
384 
386 {
387  public:
388 
389  DtU16 Size();
390  void describe();
391 
392  private:
393 
394  DtNetU16 size; // number of CTDB_FEATURE_DATA things in this patch (incl this hdr)
395  DtNetU16 pad;
396 };
397 
398 
399 static const int FT_MICRO = 0;
400 static const int FT_BUILDING = 1;
401 static const int FT_TREE = 2;
402 static const int FT_CANOPY = 3;
403 static const int FT_LINEAR = 4;
404 
406 {
407  public:
408 
409  DtU8 FeatureType();
410  DtU8 Vertices();
411  unsigned int PostMask();
412  DtU8 MicroTerrainType();
413 
414  void describe();
415 
416  private:
417 
418  DtNetU32 raw_bits;
419 };
420 
421 
422 static const int CTDB_EDGE_KEY = 4096;
423 
425 {
426  public:
427 
428  double Width();
429  DtU8 Soil();
430  DtU16 EdgeKey();
431 
432  void describe();
433 
434  private:
435 
436  DtNetU16 width;
438 };
439 
440 
442 {
443  public:
444 
445  double Radius();
446  bool First();
447  bool Last();
448  double Height();
449  void describe();
450 
451  private:
452 
453  DtNetU16 radius;
455 };
456 
457 
459 {
460  public:
461 
462  DtU8 Soil0();
463  DtU8 Soil1();
464  DtU8 Vert0();
465  DtU8 Vert1();
466  DtU8 Vert2();
467 
468  void describe();
469 
470  private:
472  DtNetU8 vert0;
473  DtNetU8 vert1;
474  DtNetU8 vert2;
475 };
476 
477 
478 /*
479  * Grid post.
480  */
482 {
483  public:
484 
485  DtU8 soil_of_northern_tri();
486  DtU8 soil_of_southern_tri();
487  bool either_tri_has_features();
488  bool either_tri_has_buildings();
489  bool either_tri_has_trees_or_treelines();
490  bool either_tri_has_microterrain();
491  int scaled_elevation();
492 
493  bool read(FILE* fp);
494  void describe();
495 
496  private:
497 
498  DtNetU32 raw_bits;
499 };
500 
501 
502 /*
503  * Patch Terrain Elements.
504  */
506 {
507  public:
508 
509  void describe();
510 
511  DtU8 Blank1() { return((bvp&0xc0) >> 6); };
512  DtU8 Vertices() { return((bvp&0x30) >> 4); };
513  DtU8 PatchAdj() { return((bvp&0x0f)); };
514 
515  DtU8 Soil0() { return(soil0); };
516  DtU8 Soil1() { return(soil1); };
517  DtU8 AdjSides() { return(adj_sides); };
518 
519  private:
520 
521  DtNetU8 bvp;
522  DtNetU8 soil0;
523  DtNetU8 soil1;
524  DtNetU8 adj_sides;
525 };
526 
527 
528 
529 static const int TE_VERT_DIMENSION = 3;
530 static const int TE_ADJ_TRI_MAP_DIMENSION = 4;
531 template<class Type>class c4b_terrain_element
532 {
533  public:
534 
535  void describe()
536  {
537  DtInfo("template c4b_terrain_element::describe\n");
538 
539  DtInfo(" ");
540  pt.describe();
541 
542  double native_z = (double)z;
543  DtInfo(" ");DtInfo("z=%lf\n", native_z);
544 
545  DtInfo(" ");
546  vert.describe();
547 
548  DtInfo(" ");
549  info.describe();
550  }
551 
553  {
554  public:
555 
556  void describe()
557  {
558  DtInfo("c4b_assoc_vertex: ");
559 
560  for (int i = 0; i < TE_VERT_DIMENSION; i++)
561  {
562  DtInfo(" index[%d]=%u,", i, (DtU16) index[i]);
563  }
564  DtInfo("\n");
565  }
566 
568  Type padding1;
569  };
570 
572  DtNetFloat32 z;
576 };
577 
580 
581 
582 static const int CTDB_PATCHES_PER_GROUP = 4;
583 static const int CTDB_MAX_POSTS_PER_PATCH = 16;
584 /*
585  *
586  */
588 {
589 public:
590 
591  DtU16 Patch1Offset();
592  DtU16 Patch2Offset();
593  DtU16 Patch3Offset();
594  void describe();
595 
596 // private:
597 
598  DtNetFloat32 max_elev[CTDB_PATCHES_PER_GROUP];
599  // In 32-bit words.
600  DtNetU16 patch1_offset;
601  DtNetU16 patch2_offset;
602  DtNetU16 patch3_offset;
603  DtNetU16 unused;
604  DtNetU8 feature_present[CTDB_MAX_POSTS_PER_PATCH * 2];
605  DtNetU16 num_te[CTDB_PATCHES_PER_GROUP];
606  DtNetU32 te_offset[CTDB_PATCHES_PER_GROUP];
607  DtNetU8 te_vgrid_dim[CTDB_PATCHES_PER_GROUP];
608  DtNetU32 te_vgrid_offset[CTDB_PATCHES_PER_GROUP];
609 };
610 
611 
613 {
614 public:
615 
616  DtU16 Patch1Offset();
617  DtU16 Patch2Offset();
618  DtU16 Patch3Offset();
619  void describe();
620 
621 private:
622 
623  DtNetFloat32 max_elev[CTDB_PATCHES_PER_GROUP];
624  // In 32-bit words.
625  DtNetU16 patch1_offset;
626  DtNetU16 patch2_offset;
627  DtNetU16 patch3_offset;
628  DtNetU16 unused;
629 };
630 
631 
632 class C4B;
633 class DtC4bPatchGroup;
634 
636 {
637 public:
638 
639  void parse(C4B &c4b,
640  progressCallbackStartFunction *prog_start_fcnp,
641  progressCallbackSetValueFunction *prog_set_value_fcnp,
642  progressCallbackEndFunction *prog_end_fcnp);
643  void parse_soil_types(C4B &c4b);
644  void parse_grid_posts(C4B &c4b);
645  void xlate(C4B &c4b,
646  DtC4bReader* tdb,
647  progressCallbackStartFunction *prog_start_fcnp,
648  progressCallbackSetValueFunction *prog_set_value_fcnp,
649  progressCallbackEndFunction *prog_end_fcnp);
650  void xlate_soil_types(c4b_file_header &hdr);
651 
652  virtual DtC4bReader* reader() const;
653  virtual void setReader(DtC4bReader* reader);
654 
655  // increment the feature count of the terrain database as each new feature
656  // is created, and return the updated count.
657  int incrementTdbFeatureCount();
658 
661 
665 
668 
670  int myTdbFeatureCount; // feature count in terrain database.
671 };
672 
673 
674 inline DtC4bReader* DtC4b::reader() const
675 {
676  return myReader;
677 }
678 
679 
680 inline void DtC4b::setReader(DtC4bReader* reader)
681 {
682  assert(reader != 0);
683  myReader = reader;
684 }
685 
686 
688 {
689  return(++myTdbFeatureCount);
690 }
691 
692 
693 /*
694  *
695  */
697 {
698  public:
699 
700  bool read(FILE* fp,
701  progressCallbackStartFunction* prog_start_fcnp,
702  progressCallbackSetValueFunction* prog_set_value_fcnp,
703  progressCallbackEndFunction* prog_end_fcnp);
704  void describe();
705 
706  void xlate(DtC4bReader* tdb,
707  progressCallbackStartFunction* prog_start_fcnp,
708  progressCallbackSetValueFunction* prog_set_value_fcnp,
709  progressCallbackEndFunction* prog_end_fcnp);
710 
711  unsigned int patch0_number_from_patch_group_number(unsigned int patch_group_num);
712 
713  bool read_patch_group_headers(bool debug = false);
714  bool read_nodes(bool debug = false);
715  bool read_edges(bool debug = false);
716  bool read_feature_data();
717  bool read_grid_posts(bool debug = false);
718  bool read_all_patch_data(bool debug = false);
719 
720  // returns a pointer to a memory manager class that handles
721  // allocations of a group of objects (polygons, groups, grids,
722  // features, etc.)
723  virtual DtC4bReader* reader() const;
724 
725  FILE* fp;
726 
731 
733 
734  unsigned int num_grid_posts;
735 
736  DtU8* patch_data;
737 
738  // Derived stuff.
739  void unpack();
740  unsigned int num_pages;
741  unsigned int num_patches;
742  unsigned int num_patch_groups;
743  unsigned int num_patches_wide;
744  unsigned int num_patches_high;
745  unsigned int num_posts_wide;
746 
748 };
749 
750 
751 inline DtC4bReader* C4B::reader() const
752 {
753  return(parsed_c4b.reader());
754 }
755 
756 
757 
758 /*
759  * Compact Terrain Database Format 4
760  */
761 class DtMetafileRecord;
762 
764 {
765 public:
766 
767  DtC4bReader();
768 
769  virtual ~DtC4bReader();
770 
771  // Override to set ourselves as the reader in my_ctdb, after calling
772  // down to base class version.
773  virtual void init(const DtFilename& filename,
774  DtTerrainDatabase* terrain);
775 
776  // Loads terrain database file named filename, returning the data in
777  // terrain. The terrain pointer passed in must be initialized before calling
778  // loadTerrain.
779  virtual bool loadTerrain(const DtFilename& filename,
780  DtTerrainDatabase* terrain);
781 
782  // Loads terrain database file named filename, returning the data in
783  // terrain. The initializer object is used to pass in additional information
784  // about the terrain to be loaded. The terrain pointer passed in must be
785  // initialized before calling loadTerrain.
786  virtual bool loadTerrain(const DtFilename& filename,
787  DtTerrainDatabase* terrain,
788  const DtTerrainInitializer* initializer);
789 
790  // Returns "c4b"
791  virtual const DtString dataType() const;
792 
794 
795  static DtTerrainReader* create();
796 
797  // Returns only the coordinate system that would define this database. Should not load
798  // any polygonal or vector information
799  virtual Coordinate_System* coordinateSystem(const DtFilename& filename);
800 
801  virtual int optionalFileFlags(const DtFilename& filename)
802  {
803  return 0;
804  }
805 
806 protected:
807 
808  bool read(const DtFilename& filename);
809  bool import();
810 };
811 
812 #endif
813 
int num_patch_groups
Definition: c4bReader.h:247
DtNetInt32 node_size
Definition: c4bReader.h:190
DtNetU8 vert1
Definition: c4bReader.h:473
unsigned int num_pages
Definition: c4bReader.h:740
DtNetU32 raw_bits
Definition: c4bReader.h:270
Definition: c4bReader.h:763
c4b_te_info info
Definition: c4bReader.h:575
static const int CTDB_N_SOILS
Definition: c4bReader.h:38
DtNetU32 raw_bits
Definition: c4bReader.h:327
static const int DATUM_WGS72
Definition: c4bReader.h:42
virtual void setReader(DtC4bReader *reader)
Definition: c4bReader.h:680
c4b_assoc_vertex vert
Definition: c4bReader.h:574
DtNetFloat64 origin_easting
Definition: c4bReader.h:182
Definition: c4bReader.h:259
DtNetInt16 version
Definition: c4bReader.h:187
Definition: c4bReader.h:273
DtSurface * myBuilding_surface
Definition: c4bReader.h:664
Definition: c4bReader.h:424
static const int DATUM_KAUAI
Definition: c4bReader.h:69
static const int DATUM_CAMPAREAASTRO
Definition: c4bReader.h:52
DtNetU32 raw_bits
Definition: c4bReader.h:106
DtNetU16 size
Definition: c4bReader.h:394
Type padding1
Definition: c4bReader.h:568
static const int DATUM_DJAKARTA
Definition: c4bReader.h:53
DtNetInt32 min_y
Definition: c4bReader.h:176
DtNetU8 adj_sides
Definition: c4bReader.h:524
unsigned int num_patches_high
Definition: c4bReader.h:744
DtNetU16 x
Definition: c4bReader.h:381
Definition: c4bReader.h:94
DtNetInt32 edge
Definition: c4bReader.h:286
DtNetU16 patch3_offset
Definition: c4bReader.h:602
void describe()
Definition: c4bReader.h:535
static const int DATUM_NASBNAD27
Definition: c4bReader.h:45
static const int DATUM_KERTAU48
Definition: c4bReader.h:61
virtual DtC4bReader * reader() const
Definition: c4bReader.h:674
FILE * fp
Definition: c4bReader.h:725
DtNetInt32 num_quad_data
Definition: c4bReader.h:193
c4b_s1000_soil_type
Definition: c4bReader.h:114
Definition: c4bReader.h:612
int num_in_y
Definition: c4bReader.h:246
static const int CTDB_DATE_LENGTH
Definition: c4bReader.h:83
DtNetInt32 max_x
Definition: c4bReader.h:175
Definition: c4bReader.h:635
Definition: c4bReader.h:119
c4b_node_flags flags
Definition: c4bReader.h:298
static const int DATUM_TOKYO
Definition: c4bReader.h:79
Definition: c4bReader.h:123
DtNetU16 patch1_offset
Definition: c4bReader.h:625
static const int DATUM_ED50
Definition: c4bReader.h:40
static const int FT_TREE
Definition: c4bReader.h:401
static const int DATUM_CONUSNAD27
Definition: c4bReader.h:44
Definition: c4bReader.h:118
static const int FT_BUILDING
Definition: c4bReader.h:400
static const int DATUM_OAHU
Definition: c4bReader.h:68
unsigned int num_posts_wide
Definition: c4bReader.h:745
Definition: c4bReader.h:481
static const int DATUM_MAUI
Definition: c4bReader.h:67
static const int DATUM_NIGERIA
Definition: c4bReader.h:65
Definition: c4bReader.h:405
c4b_node * nodes
Definition: c4bReader.h:729
DtNetU32 raw_bits
Definition: c4bReader.h:498
Definition: c4bReader.h:134
static const int DATUM_SACAMPOINCHAUSPE
Definition: c4bReader.h:72
DtNetU16 first_last_height
Definition: c4bReader.h:454
Definition: c4bReader.h:385
Definition: c4bReader.h:126
int incrementTdbFeatureCount()
Definition: c4bReader.h:687
DtNetInt32 last_node
Definition: c4bReader.h:341
static const int DATUM_ED79
Definition: c4bReader.h:41
c4b_terrain_element< DtNetU16 > c4b_terrain_element_16
Definition: c4bReader.h:579
static const int TE_ADJ_TRI_MAP_DIMENSION
Definition: c4bReader.h:530
Definition: surface.h:181
DtNetFloat64 origin_northing
Definition: c4bReader.h:181
Definition: gridPostList.h:51
static const int DATUM_GUNUNGSEGARA
Definition: c4bReader.h:56
DtGridPostList * grid_post_vertex_list
Definition: c4bReader.h:660
DtNetU16 patch1_offset
Definition: c4bReader.h:600
c4b_patch_group_entry * entry
Definition: c4bReader.h:249
unsigned int num_patch_groups
Definition: c4bReader.h:742
DtNetU16 patch2_offset
Definition: c4bReader.h:601
DtNetU16 patch2_offset
Definition: c4bReader.h:626
unsigned int num_patches_wide
Definition: c4bReader.h:743
Definition: c4bReader.h:120
Definition: c4bReader.h:552
DtNetInt32 distance
Definition: c4bReader.h:339
virtual void init(const DtFilename &filename, DtTerrainDatabase *terrain)
static const int DATUM_SAYACARE
Definition: c4bReader.h:76
#define DT_DLL_ctdb
Definition: ctdbDefines.h:23
virtual const DtString dataType() const =0
int num_in_x
Definition: c4bReader.h:245
DtNetInt32 origin_zone_letter
Definition: c4bReader.h:184
DtNetInt32 num_features
Definition: c4bReader.h:178
Definition: c4bReader.h:587
DtNetInt32 num_nodes
Definition: c4bReader.h:189
static const int DATUM_ALASKACANADA27
Definition: c4bReader.h:66
virtual bool loadTerrain(const DtFilename &filename, DtTerrainDatabase *terrain)=0
static const int DATUM_LIBERIA64
Definition: c4bReader.h:62
Definition: c4bReader.h:311
DtNetU32 raw_bits
Definition: c4bReader.h:156
void progressCallbackSetValueFunction(int value)
Definition: terrainDatabase.h:132
unsigned int num_patches
Definition: c4bReader.h:741
DtNetInt32 first_node
Definition: c4bReader.h:340
Definition: c4bReader.h:117
Type adj[TE_ADJ_TRI_MAP_DIMENSION]
Definition: c4bReader.h:573
void progressCallbackEndFunction()
Definition: terrainDatabase.h:134
static const int FT_MICRO
Definition: c4bReader.h:399
static const int DATUM_SAPROVISIONAL56
Definition: c4bReader.h:75
Definition: c4bReader.h:239
static const int DATUM_HERATNORTH
Definition: c4bReader.h:57
DtNetU8 soil0_and_soil1
Definition: c4bReader.h:471
Definition: c4bReader.h:531
DtNetU16 unused
Definition: c4bReader.h:628
c4b_file_header_format db_format
Definition: c4bReader.h:167
DtC4b parsed_c4b
Definition: c4bReader.h:747
DtU8 Blank1()
Definition: c4bReader.h:511
Definition: c4bReader.h:160
static const int DATUM_SACORREGOALEGRE
Definition: c4bReader.h:74
DtNetInt32 posts_per_patch_side
Definition: c4bReader.h:171
static const int DATUM_ADINDAN
Definition: c4bReader.h:48
Definition: coordSystem.h:54
float DtFloat32
Definition: vrvControlStructTypes.h:35
DtNetU16 patch3_offset
Definition: c4bReader.h:627
DtNetInt32 post_increment
Definition: c4bReader.h:170
int myTdbFeatureCount
Definition: c4bReader.h:670
static const int CTDB_MAX_POSTS_PER_PATCH
Definition: c4bReader.h:583
DtNetInt32 pages_high
Definition: c4bReader.h:173
c4b_file_header my_ctdb
Definition: c4bReader.h:727
DtC4bReader * myReader
Definition: c4bReader.h:669
Definition: c4bReader.h:129
DtNetU32 data_start
Definition: c4bReader.h:234
Definition: c4bReader.h:441
DtNetU8 soil1
Definition: c4bReader.h:523
DtU8 PatchAdj()
Definition: c4bReader.h:513
static const int DATUM_NASANAD27
Definition: c4bReader.h:46
Definition: c4bReader.h:116
Definition: c4bReader.h:142
static const int CTDB_NAME_LENGTH
Definition: c4bReader.h:82
static const int CTDB_HEADER_RESERVED
Definition: c4bReader.h:84
static const int DATUM_GEOD49
Definition: c4bReader.h:54
Definition: c4bReader.h:124
DtNetU16 soil_and_edge_key
Definition: c4bReader.h:437
DtNetInt32 origin_zone_number
Definition: c4bReader.h:183
DtNetFloat32 z
Definition: c4bReader.h:572
c4b_xyo_coord2d pt
Definition: c4bReader.h:571
c4b_edge_ctdb_feature_reference * feature
Definition: c4bReader.h:344
DtSurface * myTree_surface
Definition: c4bReader.h:663
DtNetInt32 max_y
Definition: c4bReader.h:177
DtNetInt32 min_x
Definition: c4bReader.h:174
Definition: c4bReader.h:135
c4b_grid_post * grid_posts
Definition: c4bReader.h:732
DtU8 Vertices()
Definition: c4bReader.h:512
DtU8 Soil0()
Definition: c4bReader.h:515
static const int DATUM_BUKITRIMPAH
Definition: c4bReader.h:51
Definition: c4bReader.h:127
DtU8 * patch_data
Definition: c4bReader.h:736
DtNetFloat32 y
Definition: c4bReader.h:304
Definition: surfaceManager.h:30
static const int DATUM_LUZON
Definition: c4bReader.h:63
c4b_edge * edges
Definition: c4bReader.h:730
DtNetInt32 datum
Definition: c4bReader.h:185
c4b_patch_group_headers * patch_group_headers
Definition: c4bReader.h:728
Definition: terrainReader.h:41
DtNetInt32 pad2
Definition: c4bReader.h:180
DtNetU16 radius
Definition: c4bReader.h:453
DtNetU32 raw_bits
Definition: c4bReader.h:235
DtNetU16 num_vertices
Definition: c4bReader.h:362
void describe()
Definition: c4bReader.h:556
static const int DATUM_MERCHICH
Definition: c4bReader.h:64
Definition: c4bReader.h:202
DtNetU32 raw_bits
Definition: c4bReader.h:418
DtNetFloat64 fixed_point_basis
Definition: c4bReader.h:168
virtual DtC4bReader * reader() const
Definition: c4bReader.h:751
c4b_node_ctdb_connection * connection
Definition: c4bReader.h:299
DtNetU32 patch_number
Definition: c4bReader.h:326
DtU8 Soil1()
Definition: c4bReader.h:516
DtNetInt32 format
Definition: c4bReader.h:166
Definition: c4bReader.h:505
static const int DATUM_GREATBRITAIN36
Definition: c4bReader.h:70
static const int DATUM_NAD83
Definition: c4bReader.h:47
Definition: c4bReader.h:369
Definition: metafileRecord.h:28
DtNetInt32 node
Definition: c4bReader.h:285
DtNetInt32 num_features
Definition: c4bReader.h:342
DtC4bPatchGroup * patch_group
Definition: c4bReader.h:659
DtNetU8 data_size
Definition: c4bReader.h:361
void describe()
DtNetU8 type_code
Definition: c4bReader.h:360
DT_DLL_ctdb double scale_to_patch(double bar)
Definition: terrainInitializer.h:16
static const int DATUM_IRELAND65
Definition: c4bReader.h:60
virtual Coordinate_System * coordinateSystem(const DtFilename &filename)=0
static const int FT_LINEAR
Definition: c4bReader.h:403
int * tri2_soil_type
Definition: c4bReader.h:667
Definition: c4bReader.h:458
static const int DATUM_QORNOQ
Definition: c4bReader.h:71
void progressCallbackStartFunction(const char *label, int range)
Definition: terrainDatabase.h:131
static const int DATUM_SACHUAASTRO
Definition: c4bReader.h:73
Definition: c4bReader.h:696
Definition: c4bReader.h:130
C4B my_ctdb
Definition: c4bReader.h:793
DtNetU8 soil0
Definition: c4bReader.h:522
static const int CTDB_PATCHES_PER_GROUP
Definition: c4bReader.h:582
Type index[TE_VERT_DIMENSION]
Definition: c4bReader.h:567
Definition: terrainDatabase.h:148
Definition: c4bReader.h:121
static const int DATUM_ARC50
Definition: c4bReader.h:49
Definition: c4bReader.h:351
DtNetU16 pad
Definition: c4bReader.h:395
Definition: c4bReader.h:128
DtNetU8 vert2
Definition: c4bReader.h:474
static const int DATUM_GUAM63
Definition: c4bReader.h:55
Definition: c4bReader.h:125
DtNetU16 y
Definition: c4bReader.h:382
static const int CTDB_EDGE_KEY
Definition: c4bReader.h:422
static const int DATUM_WGS84
Definition: c4bReader.h:43
voidpf uLong offset
Definition: ioapi.h:42
virtual int optionalFileFlags(const DtFilename &filename)
Definition: c4bReader.h:801
static const int FT_CANOPY
Definition: c4bReader.h:402
static const int DATUM_AUSTRALIAN
Definition: c4bReader.h:50
static const int DATUM_TAMANARIVEOBSV25
Definition: c4bReader.h:77
DtNetInt32 n_patch_bytes
Definition: c4bReader.h:194
#define X(a)
Definition: DtSharedSimulationSettings.h:51
static const int DATUM_HJORSEY55
Definition: c4bReader.h:58
static const int CTDB_PATCH_CACHES
Definition: c4bReader.h:81
DtNetInt32 edge_size
Definition: c4bReader.h:192
int * tri1_soil_type
Definition: c4bReader.h:666
DtNetU16 width
Definition: c4bReader.h:436
DtSurfaceManager * mySurfaces
Definition: c4bReader.h:662
DtNetInt32 pages_wide
Definition: c4bReader.h:172
DtNetU8 vert0
Definition: c4bReader.h:472
static const int DATUM_INDIAN
Definition: c4bReader.h:59
Definition: c4bReader.h:122
DtNetU16 unused
Definition: c4bReader.h:603
static const int TE_VERT_DIMENSION
Definition: c4bReader.h:529
Definition: c4bReader.h:330
Definition: point.h:34
Definition: c4bPatchGroup.h:19
static const int DATUM_TIMBOLAI48
Definition: c4bReader.h:78
DtNetFloat32 x
Definition: c4bReader.h:303
DtNetInt32 num_edges
Definition: c4bReader.h:191
Definition: c4bReader.h:289
c4b_terrain_element< DtNetU8 > c4b_terrain_element_8
Definition: c4bReader.h:578
unsigned int num_grid_posts
Definition: c4bReader.h:734

Document ID: Generated on Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)