db.h File Reference

GED Database Format v4. More...

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

union  record
struct  record::ident
struct  record::solidrec
struct  record::combination
struct  record::member
struct  record::material_rec
struct  record::B_solid
struct  record::b_surf
struct  record::polyhead
struct  record::polydata
struct  record::ars_rec
struct  record::ars_ext
struct  record::strsol
struct  record::arbn_rec
struct  record::pipewire_rec
struct  record::pipewire_rec::exported_pipept
struct  record::particle_rec
struct  record::nmg_rec
struct  record::extr_rec
struct  record::sketch_rec
struct  record::cline_rec
struct  record::bot_rec

Defines

#define DB_H   seen
#define NAMESIZE   16
#define NAMEMOVE(from, to)   (void)strncpy(to, from, NAMESIZE)
#define DB_MINREC   128
#define RECORD_DEFINED
#define ID_IDENT   'I'
#define ID_SOLID   'S'
#define ID_COMB   'C'
#define ID_MEMB   'M'
#define ID_ARS_A   'A'
#define ID_ARS_B   'B'
#define ID_FREE   'F'
#define ID_P_HEAD   'P'
#define ID_P_DATA   'Q'
#define ID_BSOLID   'b'
#define ID_BSURF   'D'
#define ID_MATERIAL   'm'
#define DBID_STRSOL   's'
#define DBID_ARBN   'n'
#define DBID_PIPE   'w'
#define DBID_PARTICLE   'p'
#define DBID_NMG   'N'
#define DBID_SKETCH   'd'
#define DBID_EXTR   'e'
#define DBID_CLINE   'c'
#define DBID_BOT   't'
#define ID_NO_UNIT   0
#define ID_MM_UNIT   1
#define ID_CM_UNIT   2
#define ID_M_UNIT   3
#define ID_IN_UNIT   4
#define ID_FT_UNIT   5
#define ID_UM_UNIT   6
#define ID_KM_UNIT   7
#define ID_YD_UNIT   8
#define ID_MI_UNIT   9
#define ID_VERSION   "v4"
#define ID_BY_UNKNOWN   0
#define ID_BY_VAX   1
#define ED_BY_IBM   2
#define ID_FT_UNKNOWN   0
#define ID_FT_VAX   1
#define ID_FT_IBM   2
#define ID_FT_IEEE   3
#define ID_FT_CRAY   4
#define GENTGC   18
#define GENELL   19
#define GENARB8   20
#define ARS   21
#define ARSCONT   22
#define HALFSPACE   24
#define SPLINE   25
#define RPC   26
#define RHC   27
#define EPA   28
#define EHY   29
#define ETO   30
#define GRP   31
#define SUPERELL   32
#define RPP   1
#define BOX   2
#define RAW   3
#define ARB4   4
#define ARB5   5
#define ARB6   6
#define ARB7   7
#define ARB8   8
#define ELL   9
#define ELL1   10
#define SPH   11
#define RCC   12
#define REC   13
#define TRC   14
#define TEC   15
#define TOR   16
#define TGC   17
#define ELLG   23
#define s_tgc_V   s_values[0]
#define s_tgc_H   s_values[3]
#define s_tgc_A   s_values[6]
#define s_tgc_B   s_values[9]
#define s_tgc_C   s_values[12]
#define s_tgc_D   s_values[15]
#define s_tor_V   s_values[0]
#define s_tor_H   s_values[3]
#define s_tor_A   s_values[6]
#define s_tor_B   s_values[9]
#define s_tor_C   s_values[12]
#define s_tor_D   s_values[15]
#define s_tor_E   s_values[18]
#define s_tor_F   s_values[21]
#define s_ell_V   s_values[0]
#define s_ell_A   s_values[3]
#define s_ell_B   s_values[6]
#define s_ell_C   s_values[9]
#define s_superell_V   s_values[0]
#define s_superell_A   s_values[3]
#define s_superell_B   s_values[6]
#define s_superell_C   s_values[9]
#define s_superell_n   s_values[12]
#define s_superell_e   s_values[13]
#define s_half_N   s_values[0]
#define s_half_d   s_values[3]
#define s_grip_C   s_values[0]
#define s_grip_N   s_values[3]
#define s_grip_m   s_values[6]
#define DBV4_NON_REGION   ' '
#define DBV4_NON_REGION_NULL   '\0'
#define DBV4_REGION   'R'
#define DBV4_REGION_FASTGEN_PLATE   'P'
#define DBV4_REGION_FASTGEN_VOLUME   'V'
#define DB_INH_LOWER   0
#define DB_INH_HIGHER   1
#define INTERSECT   '+'
#define SUBTRACT   '-'
#define UNION   'u'
#define DB_SS_NGRAN   8
#define DB_SS_LEN   (DB_SS_NGRAN*DB_MINREC-2*NAMESIZE-2)
#define DB_RECORD_NULL   ((union record *)0)
#define DB_ARGS(args)   ()

Typedefs

typedef float dbfloat_t

Functions

void rt_fastf_float DB_ARGS ((fastf_t *ff, const dbfloat_t *fp, int n))
void rt_mat_dbmat DB_ARGS ((fastf_t *ff, const dbfloat_t *dbp))
void rt_dbmat_mat DB_ARGS ((dbfloat_t *dbp, const fastf_t *ff))


Detailed Description

GED Database Format v4.

All records are rounded up to have a fixed length; each such database record is also known as a "granule", and is the smallest unit of database storage.

Every granule can be identified by the first byte, which can be accessed by the u_id name. Note that the u_id field is not valid when writing the actual data for splines.

Each granule is read into a "union record", and is then processed based on the value of u_id. Each granule will have one of these formats: A Free record An ID record A SOLID record A COMBINATION record, followed by multiple MEMBER records An ARS `A' (header) record, followed by multiple ARS `B' (data) records A Polygon header record, followed by multiple Polygon data records A B-spline solid header record, followed by multiple B-spline surface records, followed by d_kv_size[0] floats, d_kv_size[1] floats, padded to d_nknots granules, followed by ctl_size[0]*ctl_size[1]*geom_type floats, padded to d_nctls granules.

The records are stored as binary records corresponding to PDP-11 and VAX C structs, so padding must be supplied explicitly for alignment.

For the time being, the representation of the floating point numbers in the database is machine-specific, requiring conversion to ASCII (via g2asc) and back to binary (via asc2g) when exchanging between machines of dissimilar types. In time, an external representation for floats might be implemented.

Author:
Michael John Muuss
Source
SECAD/VLD Computing Consortium, Bldg 394
The U. S. Army Ballistic Research Laboratory
Aberdeen Proving Ground, Maryland 21005
Header
/cvsroot/brlcad/brlcad/include/db.h,v 14.7 2006/09/18 05:24:07 lbutler Exp

Definition in file db.h.


Define Documentation

#define ID_IDENT   'I'
 

Definition at line 99 of file db.h.

Referenced by db_fwrite_ident(), db_scan(), and db_update_ident().

#define ID_SOLID   'S'
 

Definition at line 100 of file db.h.

Referenced by db_scan(), rt_arb_export(), rt_arb_import(), rt_cline_export(), rt_ehy_export(), rt_ehy_import(), rt_ell_export(), rt_ell_import(), rt_epa_export(), rt_epa_import(), rt_eto_export(), rt_eto_import(), rt_grp_export(), rt_grp_import(), rt_hlf_export(), rt_hlf_import(), rt_id_solid(), rt_rhc_export(), rt_rhc_import(), rt_rpc_export(), rt_rpc_import(), rt_superell_export(), rt_superell_import(), rt_tgc_export(), rt_tgc_import(), rt_tor_export(), rt_tor_import(), rt_xxx_export(), and rt_xxx_import().

#define ID_COMB   'C'
 

Definition at line 101 of file db.h.

Referenced by db_scan(), rt_comb_export4(), and rt_comb_import4().

#define ID_MEMB   'M'
 

Definition at line 102 of file db.h.

Referenced by db_scan(), rt_comb_export4(), and rt_comb_import4().

#define ID_ARS_A   'A'
 

Definition at line 103 of file db.h.

Referenced by db_scan(), rt_ars_export(), rt_ars_import(), and rt_id_solid().

#define ID_ARS_B   'B'
 

Definition at line 104 of file db.h.

Referenced by db_scan(), rt_ars_export(), and rt_ars_rd_curve().

#define ID_FREE   'F'
 

Definition at line 105 of file db.h.

Referenced by db_alloc(), db_scan(), and db_zapper().

#define ID_P_HEAD   'P'
 

Definition at line 106 of file db.h.

Referenced by db_scan(), rt_id_solid(), rt_pg_export(), and rt_pg_import().

#define ID_P_DATA   'Q'
 

Definition at line 107 of file db.h.

Referenced by db_scan(), rt_pg_export(), and rt_pg_import().

#define ID_BSOLID   'b'
 

Definition at line 108 of file db.h.

Referenced by db_scan(), rt_id_solid(), and rt_nurb_import().

#define ID_BSURF   'D'
 

Definition at line 109 of file db.h.

Referenced by db_scan(), and rt_nurb_import().

#define ID_MATERIAL   'm'
 

Definition at line 110 of file db.h.

Referenced by db_scan().

#define DBID_STRSOL   's'
 

Definition at line 111 of file db.h.

Referenced by db_scan(), rt_dsp_export(), rt_dsp_import(), rt_ebm_export(), rt_ebm_import(), rt_hf_export(), rt_hf_import(), rt_id_solid(), rt_submodel_export(), rt_submodel_import(), rt_vol_export(), and rt_vol_import().

#define DBID_ARBN   'n'
 

Definition at line 112 of file db.h.

Referenced by db_scan(), rt_arbn_export(), rt_arbn_import(), and rt_id_solid().

#define DBID_PIPE   'w'
 

Definition at line 113 of file db.h.

Referenced by db_scan(), rt_id_solid(), rt_pipe_export(), and rt_pipe_import().

#define DBID_PARTICLE   'p'
 

Definition at line 114 of file db.h.

Referenced by db_scan(), rt_id_solid(), rt_part_export(), and rt_part_import().

#define DBID_NMG   'N'
 

Definition at line 115 of file db.h.

Referenced by db_scan(), rt_id_solid(), rt_nmg_import(), and rt_nmg_import_internal().

#define DBID_SKETCH   'd'
 

Definition at line 116 of file db.h.

Referenced by db_scan(), rt_id_solid(), and rt_sketch_import().

#define DBID_EXTR   'e'
 

Definition at line 117 of file db.h.

Referenced by db_scan(), rt_extrude_export(), rt_extrude_import(), and rt_id_solid().

#define DBID_CLINE   'c'
 

Definition at line 118 of file db.h.

Referenced by db_scan(), rt_cline_export(), rt_cline_import(), and rt_id_solid().

#define DBID_BOT   't'
 

Definition at line 119 of file db.h.

Referenced by db_scan(), rt_bot_export(), rt_bot_import(), and rt_id_solid().

#define ID_NO_UNIT   0
 

Definition at line 127 of file db.h.

Referenced by db_conversions(), and db_v4_get_units_code().

#define ID_MM_UNIT   1
 

Definition at line 128 of file db.h.

Referenced by db_conversions(), db_update_ident(), and db_v4_get_units_code().

#define ID_CM_UNIT   2
 

Definition at line 129 of file db.h.

Referenced by db_conversions(), and db_v4_get_units_code().

#define ID_M_UNIT   3
 

Definition at line 130 of file db.h.

Referenced by db_conversions(), and db_v4_get_units_code().

#define ID_IN_UNIT   4
 

Definition at line 131 of file db.h.

Referenced by db_conversions(), and db_v4_get_units_code().

#define ID_FT_UNIT   5
 

Definition at line 132 of file db.h.

Referenced by db_conversions(), and db_v4_get_units_code().

#define ID_UM_UNIT   6
 

Definition at line 134 of file db.h.

Referenced by db_conversions(), and db_v4_get_units_code().

#define ID_KM_UNIT   7
 

Definition at line 135 of file db.h.

Referenced by db_conversions(), and db_v4_get_units_code().

#define ID_YD_UNIT   8
 

Definition at line 136 of file db.h.

Referenced by db_conversions(), and db_v4_get_units_code().

#define ID_MI_UNIT   9
 

Definition at line 137 of file db.h.

Referenced by db_conversions(), and db_v4_get_units_code().

#define ID_VERSION   "v4"
 

Definition at line 139 of file db.h.

Referenced by db_fwrite_ident(), and db_scan().

#define ID_BY_UNKNOWN   0
 

Definition at line 143 of file db.h.

#define ID_BY_VAX   1
 

Definition at line 144 of file db.h.

#define ED_BY_IBM   2
 

Definition at line 145 of file db.h.

#define ID_FT_UNKNOWN   0
 

Definition at line 147 of file db.h.

#define ID_FT_VAX   1
 

Definition at line 148 of file db.h.

#define ID_FT_IBM   2
 

Definition at line 149 of file db.h.

#define ID_FT_IEEE   3
 

Definition at line 150 of file db.h.

#define ID_FT_CRAY   4
 

Definition at line 151 of file db.h.

#define GENTGC   18
 

Definition at line 158 of file db.h.

Referenced by rt_tgc_export().

#define GENELL   19
 

Definition at line 159 of file db.h.

Referenced by rt_ell_export().

#define GENARB8   20
 

Definition at line 160 of file db.h.

Referenced by rt_arb_export().

#define ARS   21
 

Definition at line 161 of file db.h.

Referenced by rt_ars_export().

#define ARSCONT   22
 

Definition at line 162 of file db.h.

Referenced by rt_ars_export().

#define HALFSPACE   24
 

Definition at line 163 of file db.h.

Referenced by rt_hlf_export().

#define SPLINE   25
 

Definition at line 164 of file db.h.

#define RPC   26
 

Definition at line 165 of file db.h.

Referenced by rt_rpc_export().

#define RHC   27
 

Definition at line 166 of file db.h.

Referenced by rt_rhc_export().

#define EPA   28
 

Definition at line 167 of file db.h.

Referenced by rt_epa_export().

#define EHY   29
 

Definition at line 168 of file db.h.

Referenced by rt_ehy_export().

#define ETO   30
 

Definition at line 169 of file db.h.

Referenced by rt_eto_export().

#define GRP   31
 

Definition at line 170 of file db.h.

Referenced by rt_grp_export().

#define SUPERELL   32
 

Definition at line 171 of file db.h.

Referenced by rt_superell_export().

#define RPP   1
 

Definition at line 174 of file db.h.

#define BOX   2
 

Definition at line 175 of file db.h.

#define RAW   3
 

Definition at line 176 of file db.h.

#define ARB4   4
 

Definition at line 177 of file db.h.

Referenced by rt_arb_edit(), and wdb_move_arb_edge_cmd().

#define ARB5   5
 

Definition at line 178 of file db.h.

Referenced by rt_arb_edit(), and wdb_move_arb_edge_cmd().

#define ARB6   6
 

Definition at line 179 of file db.h.

Referenced by rt_arb_edit(), and wdb_move_arb_edge_cmd().

#define ARB7   7
 

Definition at line 180 of file db.h.

Referenced by rt_arb_edit(), and wdb_move_arb_edge_cmd().

#define ARB8   8
 

Definition at line 181 of file db.h.

Referenced by rt_arb_edit(), and wdb_move_arb_edge_cmd().

#define ELL   9
 

Definition at line 182 of file db.h.

#define ELL1   10
 

Definition at line 183 of file db.h.

#define SPH   11
 

Definition at line 184 of file db.h.

#define RCC   12
 

Definition at line 185 of file db.h.

#define REC   13
 

Definition at line 186 of file db.h.

#define TRC   14
 

Definition at line 187 of file db.h.

#define TEC   15
 

Definition at line 188 of file db.h.

#define TOR   16
 

Definition at line 189 of file db.h.

Referenced by rt_tor_export().

#define TGC   17
 

Definition at line 190 of file db.h.

#define ELLG   23
 

Definition at line 191 of file db.h.

#define s_tgc_V   s_values[0]
 

Definition at line 193 of file db.h.

#define s_tgc_H   s_values[3]
 

Definition at line 194 of file db.h.

#define s_tgc_A   s_values[6]
 

Definition at line 195 of file db.h.

#define s_tgc_B   s_values[9]
 

Definition at line 196 of file db.h.

#define s_tgc_C   s_values[12]
 

Definition at line 197 of file db.h.

#define s_tgc_D   s_values[15]
 

Definition at line 198 of file db.h.

#define s_tor_V   s_values[0]
 

Definition at line 200 of file db.h.

#define s_tor_H   s_values[3]
 

Definition at line 201 of file db.h.

#define s_tor_A   s_values[6]
 

Definition at line 202 of file db.h.

#define s_tor_B   s_values[9]
 

Definition at line 203 of file db.h.

#define s_tor_C   s_values[12]
 

Definition at line 204 of file db.h.

#define s_tor_D   s_values[15]
 

Definition at line 205 of file db.h.

#define s_tor_E   s_values[18]
 

Definition at line 206 of file db.h.

#define s_tor_F   s_values[21]
 

Definition at line 207 of file db.h.

#define s_ell_V   s_values[0]
 

Definition at line 209 of file db.h.

#define s_ell_A   s_values[3]
 

Definition at line 210 of file db.h.

#define s_ell_B   s_values[6]
 

Definition at line 211 of file db.h.

#define s_ell_C   s_values[9]
 

Definition at line 212 of file db.h.

#define s_superell_V   s_values[0]
 

Definition at line 214 of file db.h.

#define s_superell_A   s_values[3]
 

Definition at line 215 of file db.h.

#define s_superell_B   s_values[6]
 

Definition at line 216 of file db.h.

#define s_superell_C   s_values[9]
 

Definition at line 217 of file db.h.

#define s_superell_n   s_values[12]
 

Definition at line 218 of file db.h.

#define s_superell_e   s_values[13]
 

Definition at line 219 of file db.h.

#define s_half_N   s_values[0]
 

Definition at line 221 of file db.h.

#define s_half_d   s_values[3]
 

Definition at line 222 of file db.h.

#define s_grip_C   s_values[0]
 

Definition at line 224 of file db.h.

#define s_grip_N   s_values[3]
 

Definition at line 225 of file db.h.

#define s_grip_m   s_values[6]
 

Definition at line 226 of file db.h.

#define DBV4_NON_REGION   ' '
 

Definition at line 232 of file db.h.

Referenced by db_scan(), and rt_comb_export4().

#define DBV4_NON_REGION_NULL   '\0'
 

Definition at line 233 of file db.h.

#define DBV4_REGION   'R'
 

Definition at line 234 of file db.h.

Referenced by db_scan(), and rt_comb_export4().

#define DBV4_REGION_FASTGEN_PLATE   'P'
 

Definition at line 235 of file db.h.

Referenced by db_scan(), and rt_comb_export4().

#define DBV4_REGION_FASTGEN_VOLUME   'V'
 

Definition at line 236 of file db.h.

Referenced by db_scan(), and rt_comb_export4().

#define DB_INH_LOWER   0
 

Definition at line 249 of file db.h.

#define DB_INH_HIGHER   1
 

Definition at line 250 of file db.h.

#define INTERSECT   '+'
 

Definition at line 255 of file db.h.

#define SUBTRACT   '-'
 

Definition at line 256 of file db.h.

#define UNION   'u'
 

Definition at line 257 of file db.h.

#define DB_SS_NGRAN   8
 

Definition at line 343 of file db.h.

Referenced by db_scan(), rt_dsp_export(), rt_ebm_export(), rt_hf_export(), rt_submodel_export(), and rt_vol_export().

#define DB_SS_LEN   (DB_SS_NGRAN*DB_MINREC-2*NAMESIZE-2)
 

Definition at line 344 of file db.h.

Referenced by rt_dsp_export(), rt_ebm_export(), rt_hf_export(), rt_submodel_export(), and rt_vol_export().


Generated on Mon Sep 18 01:24:59 2006 for BRL-CAD by  doxygen 1.4.6