BRL-CAD
Loading...
Searching...
No Matches
db4.h
Go to the documentation of this file.
1/* D B 4 . H
2 * BRL-CAD
3 *
4 * Copyright (c) 1985-2025 United States Government as represented by
5 * the U.S. Army Research Laboratory.
6 *
7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Lesser General Public License
9 * version 2.1 as published by the Free Software Foundation.
10 *
11 * This library is distributed in the hope that it will be useful, but
12 * WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
15 *
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this file; see the file named COPYING for more
18 * information.
19 */
20/** @addtogroup db4 */
21/** @{ */
22/** @file rt/db4.h
23 * @brief
24 * GED Database Format v4
25 *
26 * All records are rounded up to have a fixed length; each such
27 * database record is also known as a "granule", and is the smallest
28 * unit of database storage.
29 *
30 * Every granule can be identified by the first byte, which can
31 * be accessed by the u_id name. Note that the u_id field is not
32 * valid when writing the actual data for splines.
33 *
34 * Each granule is read into a "union record", and is then processed
35 * based on the value of u_id. Each granule will have one of these formats:
36 * A Free record
37 * An ID record
38 * A SOLID record
39 * A COMBINATION record, followed by multiple
40 * MEMBER records
41 * An ARS `A' (header) record, followed by multiple
42 * ARS `B' (data) records
43 * A Polygon header record, followed by multiple
44 * Polygon data records
45 * A B-spline solid header record, followed by multiple
46 * B-spline surface records, followed by
47 * d_kv_size[0] floats,
48 * d_kv_size[1] floats,
49 * padded to d_nknots granules, followed by
50 * ctl_size[0]*ctl_size[1]*geom_type floats,
51 * padded to d_nctls granules.
52 *
53 * The records are stored as binary records corresponding to PDP-11 and
54 * VAX C structs, so padding must be supplied explicitly for alignment.
55 *
56 * For the time being, the representation of the floating point numbers
57 * in the database is machine-specific, requiring conversion to ASCII
58 * (via g2asc) and back to binary (via asc2g) when exchanging between
59 * machines of dissimilar types. In time, an external representation
60 * for floats might be implemented.
61 *
62 */
63
64#ifndef RT_DB4_H
65#define RT_DB4_H
66
67#include "common.h"
68
69#include "vmath.h" /* Needed only for the deprecated functions below using fastf_t */
70#include "nmg.h" /* for struct nmg_rec */
71
73
74#define NAMESIZE 16
75
76/* don't use bu_strlcpy for NAMEMOVE */
77#define NAMEMOVE(from,to) (void)strncpy(to, from, NAMESIZE)
78
79/*
80 * Define the database format for storing binary floating point values.
81 * The ultimate intention is to store everything in 8 bytes, using
82 * IEEE double precision in network order.
83 */
84typedef float dbfloat_t;
85
86#define DB_MINREC 128
87
88
89struct ident {
90 char i_id; /* ID_IDENT */
91 char i_units; /* units */
92/* Values of 0..5 are fixed for file compat with Release 2.3 through 4.5 */
93#define ID_NO_UNIT 0 /* unspecified */
94#define ID_MM_UNIT 1 /* millimeters (preferred) */
95#define ID_CM_UNIT 2 /* centimeters */
96#define ID_M_UNIT 3 /* meters */
97#define ID_IN_UNIT 4 /* inches */
98#define ID_FT_UNIT 5 /* feet */
99/* These new values 6..9 added in Release 5.0 */
100#define ID_UM_UNIT 6 /* micrometers */
101#define ID_KM_UNIT 7 /* kilometers */
102#define ID_YD_UNIT 8 /* yards */
103#define ID_MI_UNIT 9 /* miles */
104 char i_version[6]; /* Version code of Database format */
105#define ID_VERSION "v4" /* Current Version */
106 char i_title[72]; /* Title or description */
107 /* For the future */
108 char i_byteorder; /* Byte ordering */
109#define ID_BY_UNKNOWN 0 /* unknown */
110#define ID_BY_VAX 1 /* VAX (Little Endian) */
111#define ED_BY_IBM 2 /* IBM (Big Endian) */
112 char i_floattype; /* Floating point type */
113#define ID_FT_UNKNOWN 0 /* unknown */
114#define ID_FT_VAX 1 /* VAX */
115#define ID_FT_IBM 2 /* IBM */
116#define ID_FT_IEEE 3 /* IEEE */
117#define ID_FT_CRAY 4 /* Cray */
118}; /* struct ident */
119
120struct solidrec {
121 char s_id; /* ID_SOLID */
122 char s_type; /* GED primitive type */
123#define RPP 1 /* axis-aligned rectangular parallelepiped */
124#define BOX 2 /* arbitrary rectangular parallelepiped */
125#define RAW 3 /* right-angle wedge */
126#define ARB4 4 /* tetrahedron */
127#define ARB5 5 /* pyramid */
128#define ARB6 6 /* extruded triangle */
129#define ARB7 7 /* weird 7-vertex shape */
130#define ARB8 8 /* hexahedron */
131#define ELL 9 /* ellipsoid */
132#define ELL1 10 /* another ellipsoid definition */
133#define SPH 11 /* sphere */
134#define RCC 12 /* right circular cylinder */
135#define REC 13 /* right elliptic cylinder */
136#define TRC 14 /* truncated regular cone */
137#define TEC 15 /* truncated elliptic cone */
138#define TOR 16 /* toroid */
139#define TGC 17 /* truncated general cone */
140#define GENTGC 18 /* supergeneralized TGC; internal form */
141#define GENELL 19 /* ready for drawing ELL: V, A, B, C */
142#define GENARB8 20 /* generalized ARB8: V, and 7 other vectors */
143#define ARS 21 /* HACK arbitrary triangular-surfaced polyhedron */
144#define ARSCONT 22 /* HACK extension record type for ARS solid */
145#define ELLG 23 /* comgeom version of GENELL ellipsoid */
146#define HALFSPACE 24 /* half-space */
147#define SPLINE 25 /* HACK and trouble */
148#define RPC 26 /* Right Parabolic Cylinder */
149#define RHC 27 /* Right Parabolic Cylinder */
150#define EPA 28 /* Elliptical Paraboloid */
151#define EHY 29 /* Elliptical Hyperboloid */
152#define ETO 30 /* Elliptical Torus */
153#define GRP 31 /* Grip pseudo solid */
154#define SUPERELL 32 /* Superquadratic Ellipsoid */
155#define HYP 33 /* Hyperboloid of one sheet */
156 char s_name[NAMESIZE]; /* unique name */
157 short s_cgtype; /* COMGEOM solid type */
158 dbfloat_t s_values[24]; /* parameters */
159#define s_tgc_V s_values[0]
160#define s_tgc_H s_values[3]
161#define s_tgc_A s_values[6]
162#define s_tgc_B s_values[9]
163#define s_tgc_C s_values[12]
164#define s_tgc_D s_values[15]
165
166#define s_tor_V s_values[0]
167#define s_tor_H s_values[3]
168#define s_tor_A s_values[6]
169#define s_tor_B s_values[9]
170#define s_tor_C s_values[12]
171#define s_tor_D s_values[15]
172#define s_tor_E s_values[18]
173#define s_tor_F s_values[21]
174
175#define s_ell_V s_values[0]
176#define s_ell_A s_values[3]
177#define s_ell_B s_values[6]
178#define s_ell_C s_values[9]
179
180#define s_superell_V s_values[0]
181#define s_superell_A s_values[3]
182#define s_superell_B s_values[6]
183#define s_superell_C s_values[9]
184#define s_superell_n s_values[12]
185#define s_superell_e s_values[13]
186
187#define s_half_N s_values[0]
188#define s_half_d s_values[3]
189
190#define s_grip_C s_values[0]
191#define s_grip_N s_values[3]
192#define s_grip_m s_values[6]
193}; /* struct solidrec */
194
196 char c_id; /* ID_COMB */
197 char c_flags; /* `R' if region, else ` ' */
198#define DBV4_NON_REGION ' '
199#define DBV4_NON_REGION_NULL '\0'
200#define DBV4_REGION 'R'
201#define DBV4_REGION_FASTGEN_PLATE 'P'
202#define DBV4_REGION_FASTGEN_VOLUME 'V'
203 char c_name[NAMESIZE]; /* unique name */
204 short c_regionid; /* region ID code */
205 short c_aircode; /* air space code */
206 short c_pad1; /* was c_length, DEPRECATED: # of members */
207 short c_pad2; /* was c_num, DEPRECATED */
208 short c_material; /* (GIFT) material code */
209 short c_los; /* equivalent LOS estimate */
210 char c_override; /* non-0 ==> c_rgb is color */
211 unsigned char c_rgb[3]; /* 0..255 color override */
212 char c_matname[32]; /* Reference: Material name */
213 char c_matparm[60]; /* String Material parms */
214 char c_inherit; /* Inheritance property */
215}; /* struct combination */
216
217struct member {
218 char m_id; /* ID_MEMB */
219 char m_relation; /* boolean operation as u,-,+ char */
220 char m_brname[NAMESIZE]; /* DEPRECATED: name of this branch */
221 char m_instname[NAMESIZE]; /* name of referred-to obj. */
222 short m_pad1;
223 dbfloat_t m_mat[16]; /* homogeneous trans matrix */
224 short m_pad2; /* was m_num, DEPRECATED: COMGEOM solid # ref */
225}; /* struct member */
226
227struct material_rec { /* whole record is DEPRECATED */
228 char md_id; /* = ID_COLORTAB color override */
229 char md_flags; /* UNUSED */
230 short md_low; /* lower end of region IDs affected */
231 short md_hi; /* upper end of region IDs affected */
232 unsigned char md_r;
233 unsigned char md_g; /* color of these regions: 0..255 */
234 unsigned char md_b;
235 char md_material[100]; /* UNUSED now */
236}; /* struct material_rec */
237
238struct B_solid {
239 char B_id; /* = ID_BSOLID */
240 char B_pad;
242 short B_nsurf; /* # of surfaces in this solid */
243 dbfloat_t B_unused; /* UNUSED (was resolution of flatness) */
244}; /* struct B_solid */
245
246struct b_surf {
247 char d_id; /* = ID_BSURF */
248 short d_order[2]; /* order of u and v directions */
249 short d_kv_size[2]; /* knot vector size (u and v) */
250 short d_ctl_size[2]; /* control mesh size ( u and v) */
251 short d_geom_type; /* geom type 3 or 4 */
252 short d_nknots; /* # granules of knots */
253 short d_nctls; /* # granules of ctls */
254}; /* struct b_surf */
255
256struct polyhead {
257 char p_id; /* = POLY_HEAD */
258 char p_pad1;
260}; /* struct polyhead */
261
262struct polydata {
263 char q_id; /* = POLY_DATA */
264 char q_count; /* # of vertices <= 5 */
265 dbfloat_t q_verts[5][3]; /* Actual vertices for this polygon */
266 dbfloat_t q_norms[5][3]; /* Normals at each vertex */
267}; /* struct polydata */
268
269struct ars_rec {
270 char a_id; /* ID_ARS_A */
271 char a_type; /* primitive type */
272 char a_name[NAMESIZE]; /* unique name */
273 /* these cannot be size_t due to v4 compatibility */
274 short a_m; /* # of curves */
275 short a_n; /* # of points per curve */
276 short a_curlen; /* # of granules per curve */
277 short a_totlen; /* # of granules for ARS */
278 /* Remainder are unused, and exist for ?compatibility */
279 short a_pad;
280 dbfloat_t a_xmax; /* max x coordinate */
281 dbfloat_t a_xmin; /* min x coordinate */
282 dbfloat_t a_ymax; /* max y coordinate */
283 dbfloat_t a_ymin; /* min y coordinate */
284 dbfloat_t a_zmax; /* max z coordinate */
285 dbfloat_t a_zmin; /* min z coordinate */
286}; /* struct ars_rec */
287
288struct ars_ext {
289 char b_id; /* ID_ARS_B */
290 char b_type; /* primitive type */
291 short b_n; /* current curve # */
292 short b_ngranule; /* curr. granule for curve */
293 short b_pad;
294 dbfloat_t b_values[8*3]; /* vectors */
295}; /* struct ars_ext */
296
297struct strsol {
298 char ss_id; /* ID_STRSOL */
299 char ss_pad;
300 char ss_name[NAMESIZE]; /* solid name */
301#define DB_SS_NGRAN 8 /* All STRSOL's have this many granules */
302#define DB_SS_LEN (DB_SS_NGRAN*DB_MINREC-2*NAMESIZE-2)
303 char ss_keyword[NAMESIZE]; /* solid keyword */
304 char ss_args[4]; /* DB_SS_LEN bytes of str args */
305}; /* struct strsol */
306
307struct arbn_rec {
308 char n_id; /* DBID_ARBN */
309 char n_pad;
311 unsigned char n_neqn[4]; /* # equations which follow */
312 unsigned char n_grans[4]; /* # eqn granules to follow */
313 /* Note that eqn granules are in "network" byte order */
314}; /* struct arbn_rec */
315
317 unsigned char epp_coord[8*3];
318 unsigned char epp_bendradius[8];
319 unsigned char epp_id[8];
320 unsigned char epp_od[8];
321}; /* exported_pipe_pnt */
322
324 char pwr_id; /* DBID_PIPE */
327 unsigned char pwr_pt_count[4]; /* number of points in this pipe solid */
328 unsigned char pwr_count[4]; /* # additional granules */
329 struct exported_pipe_pnt pwr_data[1]; /* mach indep segments */
330}; /* struct pipewire_rec */
331
333 char p_id; /* DBID_PARTICLE */
334 char p_pad;
336 unsigned char p_v[8*3]; /* vertex (mach indep fmt) */
337 unsigned char p_h[8*3]; /* height vector */
338 unsigned char p_vrad[8]; /* radius at vertex */
339 unsigned char p_hrad[8]; /* radius at end of height */
340}; /* struct particle_rec */
341
342struct extr_rec {
343 char ex_id; /* DBID_EXTR */
344 char ex_pad;
346 unsigned char ex_V[8*3]; /* Vertex */
347 unsigned char ex_h[8*3]; /* extrusion vector */
348 unsigned char ex_uvec[8*3]; /* vector in U parameter direction */
349 unsigned char ex_vvec[8*3]; /* vector in V parameter direction */
350 unsigned char ex_key[4]; /* keypoint index */
351 unsigned char ex_count[4]; /* number of additional granules
352 * (for now, this will always be 1 ) */
353}; /* struct extr_rec */
354
356 char skt_id; /* DBID_SKETCH */
359 unsigned char skt_V[8*3]; /* vertex */
360 unsigned char skt_uvec[8*3]; /* vector in U parameter direction */
361 unsigned char skt_vvec[8*3]; /* vector in V parameter direction */
362 unsigned char skt_vert_count[4]; /* number of vertices in sketch */
363 unsigned char skt_seg_count[4]; /* number of segments in sketch */
364 unsigned char skt_count[4]; /* number of additional granules */
365}; /* struct sketch_rec */
366
367struct annot_rec {
368 char ant_id; /*DBID_ANNOT */
371 unsigned char ant_V[8*3]; /* origin map */
372 unsigned char ant_vert_count[4]; /* number of vertices in annotation */
373 unsigned char ant_seg_count[4]; /* number of segments in annotation */
374 unsigned char ant_count[4]; /* number of additional granules */
375}; /* struct annot_rec */
376
378 char script_id; /*DBID_SCRIPT */
381}; /* struct script_rec */
382
383struct cline_rec {
384 char cli_id; /* DBID_CLINE */
387 unsigned char cli_V[8*3]; /* vertex */
388 unsigned char cli_h[8*3]; /* height vector */
389 unsigned char cli_radius[8]; /* radius */
390 unsigned char cli_thick[8]; /* plate thickness (0 means volume mode) */
391}; /* struct cline_rec */
392
393struct bot_rec {
394 char bot_id;
397 unsigned char bot_nrec[4]; /* number of additional records required */
398 unsigned char bot_orientation; /* unoriented, ccw, or cw */
399 unsigned char bot_mode; /* surface or volume */
400 unsigned char bot_err_mode;
401 unsigned char bot_num_verts[4]; /* number of vertices */
402 unsigned char bot_num_triangles[4]; /* number of triangles */
403 unsigned char bot_data[1]; /* the start of the data:
404 * num_verts*3*8 for the vertex floats
405 * num_triangles*3*4 for the triangle ints
406 * if mode is RT_BOT_PLATE, then additional data is:
407 * num_triangles*8 for the face thicknesses
408 * followed by a null terminated hex digit string "face_mode" (bit vector) */
409}; /* struct bot_rec */
410
411union record {
412
413 char u_id; /* To differentiate record types */
414#define ID_IDENT 'I'
415#define ID_SOLID 'S'
416#define ID_COMB 'C'
417#define ID_MEMB 'M'
418#define ID_ARS_A 'A'
419#define ID_ARS_B 'B'
420#define ID_FREE 'F' /* Free record -- ignore */
421#define ID_P_HEAD 'P' /* Polygon header */
422#define ID_P_DATA 'Q' /* Polygon data record */
423#define ID_BSOLID 'b' /* B-spline solid. multiple surfs */
424#define ID_BSURF 'D' /* d_spline surface header */
425#define ID_COLORTAB 'm' /* Material "color table" record */
426#define DBID_STRSOL 's' /* String solid description */
427#define DBID_ARBN 'n' /* Convex polyhedron with N faces */
428#define DBID_PIPE 'w' /* pipe (wire) solid */
429#define DBID_PARTICLE 'p' /* a particle (lozenge) */
430#define DBID_NMG 'N' /* NMG solid */
431#define DBID_SKETCH 'd' /* 2D sketch */
432#define DBID_ANNOT 'a' /* 2D annotations */
433#define DBID_EXTR 'e' /* solid of extrusion */
434#define DBID_CLINE 'c' /* FASTGEN4 CLINE solid */
435#define DBID_BOT 't' /* Bag o' triangles */
436#define DBID_SCRIPT 'T' /* script */
437
438 char u_size[DB_MINREC]; /* Minimum record size */
439
440 struct ident i;
441 struct solidrec s;
443 struct member M;
445 struct B_solid B;
446 struct b_surf d;
447 /*
448 * The b_surf record is followed by
449 * d_nknots granules of knot vectors (first u, then v),
450 * and then by d_nctls granules of control mesh information.
451 * Note that neither of these have an ID field!
452 */
453 struct polyhead p;
454 struct polydata q;
455 struct ars_rec a;
456 struct ars_ext b;
457 /*
458 * All records below here are in machine-independent format.
459 */
460 struct strsol ss;
461 struct arbn_rec n;
462 /* new pipe solid */
465
466 /* Version 0 is Release 4.0 to 4.2, Version 1 is Release 4.4 */
467 struct nmg_rec nmg;
468
469 /* Solid of extrusion */
471
472 /* sketch */
474
475 /* annotation */
477
478 /* script */
480
481 /* FASTGEN4 CLINE element */
483
484 /* Bag o' triangles
485 * The vertices are stored in an array
486 * The faces are arrays of three ints each indexing into the array of vertices
487 */
488 struct bot_rec bot;
489
490}; /* union record */
491#define DB_RECORD_NULL ((union record *)0)
492
493
494/* DEPRECATED: do not use. */
495DEPRECATED void rt_fastf_float(fastf_t *ff, const dbfloat_t *fp, int n, int flip);
496
497/* DEPRECATED: do not use. */
499
500/* DEPRECATED: do not use. */
502
504
505#endif /* RT_DB4_H */
506
507/** @} */
508/*
509 * Local Variables:
510 * mode: C
511 * tab-width: 8
512 * indent-tabs-mode: t
513 * c-file-style: "stroustrup"
514 * End:
515 * ex: shiftwidth=4 tabstop=8
516 */
Definition dvec.h:74
Header file for the BRL-CAD common definitions.
void float float int * n
Definition tig.h:74
#define DEPRECATED
Definition common.h:401
float dbfloat_t
Definition db4.h:84
DEPRECATED void rt_mat_dbmat(fastf_t *ff, const dbfloat_t *dbp, int flip)
#define DB_MINREC
Definition db4.h:86
DEPRECATED void rt_fastf_float(fastf_t *ff, const dbfloat_t *fp, int n, int flip)
#define NAMESIZE
Definition db4.h:74
DEPRECATED void rt_dbmat_mat(dbfloat_t *dbp, const fastf_t *ff)
double fastf_t
fastest 64-bit (or larger) floating point type
Definition vmath.h:334
Definition db4.h:238
char B_pad
Definition db4.h:240
short B_nsurf
Definition db4.h:242
dbfloat_t B_unused
Definition db4.h:243
char B_name[NAMESIZE]
Definition db4.h:241
char B_id
Definition db4.h:239
char ant_pad
Definition db4.h:369
char ant_id
Definition db4.h:368
unsigned char ant_count[4]
Definition db4.h:374
unsigned char ant_V[8 *3]
Definition db4.h:371
char ant_name[NAMESIZE]
Definition db4.h:370
unsigned char ant_seg_count[4]
Definition db4.h:373
unsigned char ant_vert_count[4]
Definition db4.h:372
unsigned char n_grans[4]
Definition db4.h:312
unsigned char n_neqn[4]
Definition db4.h:311
char n_pad
Definition db4.h:309
char n_id
Definition db4.h:308
char n_name[NAMESIZE]
Definition db4.h:310
Definition db4.h:288
char b_id
Definition db4.h:289
char b_type
Definition db4.h:290
short b_n
Definition db4.h:291
dbfloat_t b_values[8 *3]
Definition db4.h:294
short b_ngranule
Definition db4.h:292
short b_pad
Definition db4.h:293
Definition db4.h:269
dbfloat_t a_zmin
Definition db4.h:285
short a_curlen
Definition db4.h:276
dbfloat_t a_ymax
Definition db4.h:282
dbfloat_t a_zmax
Definition db4.h:284
dbfloat_t a_xmin
Definition db4.h:281
dbfloat_t a_ymin
Definition db4.h:283
short a_pad
Definition db4.h:279
short a_n
Definition db4.h:275
char a_id
Definition db4.h:270
char a_name[NAMESIZE]
Definition db4.h:272
short a_m
Definition db4.h:274
char a_type
Definition db4.h:271
dbfloat_t a_xmax
Definition db4.h:280
short a_totlen
Definition db4.h:277
Definition db4.h:246
short d_order[2]
Definition db4.h:248
short d_nknots
Definition db4.h:252
short d_nctls
Definition db4.h:253
short d_kv_size[2]
Definition db4.h:249
short d_ctl_size[2]
Definition db4.h:250
short d_geom_type
Definition db4.h:251
char d_id
Definition db4.h:247
Definition db4.h:393
unsigned char bot_nrec[4]
Definition db4.h:397
unsigned char bot_err_mode
Definition db4.h:400
char bot_name[NAMESIZE]
Definition db4.h:396
unsigned char bot_num_verts[4]
Definition db4.h:401
unsigned char bot_orientation
Definition db4.h:398
unsigned char bot_data[1]
Definition db4.h:403
unsigned char bot_num_triangles[4]
Definition db4.h:402
char bot_pad
Definition db4.h:395
unsigned char bot_mode
Definition db4.h:399
char bot_id
Definition db4.h:394
char cli_name[NAMESIZE]
Definition db4.h:386
unsigned char cli_radius[8]
Definition db4.h:389
unsigned char cli_thick[8]
Definition db4.h:390
unsigned char cli_V[8 *3]
Definition db4.h:387
unsigned char cli_h[8 *3]
Definition db4.h:388
char cli_id
Definition db4.h:384
char cli_pad
Definition db4.h:385
char c_id
Definition db4.h:196
char c_flags
Definition db4.h:197
short c_pad1
Definition db4.h:206
short c_los
Definition db4.h:209
char c_name[NAMESIZE]
Definition db4.h:203
char c_inherit
Definition db4.h:214
short c_aircode
Definition db4.h:205
char c_matname[32]
Definition db4.h:212
char c_override
Definition db4.h:210
char c_matparm[60]
Definition db4.h:213
unsigned char c_rgb[3]
Definition db4.h:211
short c_material
Definition db4.h:208
short c_regionid
Definition db4.h:204
short c_pad2
Definition db4.h:207
unsigned char epp_id[8]
Definition db4.h:319
unsigned char epp_coord[8 *3]
Definition db4.h:317
unsigned char epp_od[8]
Definition db4.h:320
unsigned char epp_bendradius[8]
Definition db4.h:318
unsigned char ex_h[8 *3]
Definition db4.h:347
unsigned char ex_count[4]
Definition db4.h:351
unsigned char ex_V[8 *3]
Definition db4.h:346
char ex_name[NAMESIZE]
Definition db4.h:345
char ex_pad
Definition db4.h:344
unsigned char ex_uvec[8 *3]
Definition db4.h:348
unsigned char ex_key[4]
Definition db4.h:350
char ex_id
Definition db4.h:343
unsigned char ex_vvec[8 *3]
Definition db4.h:349
Definition db4.h:89
char i_title[72]
Definition db4.h:106
char i_units
Definition db4.h:91
char i_id
Definition db4.h:90
char i_version[6]
Definition db4.h:104
char i_floattype
Definition db4.h:112
char i_byteorder
Definition db4.h:108
short md_low
Definition db4.h:230
short md_hi
Definition db4.h:231
unsigned char md_g
Definition db4.h:233
char md_flags
Definition db4.h:229
unsigned char md_b
Definition db4.h:234
unsigned char md_r
Definition db4.h:232
char md_material[100]
Definition db4.h:235
char md_id
Definition db4.h:228
Definition db4.h:217
char m_relation
Definition db4.h:219
char m_id
Definition db4.h:218
char m_brname[NAMESIZE]
Definition db4.h:220
short m_pad1
Definition db4.h:222
short m_pad2
Definition db4.h:224
dbfloat_t m_mat[16]
Definition db4.h:223
char m_instname[NAMESIZE]
Definition db4.h:221
Definition io.h:39
char p_pad
Definition db4.h:334
unsigned char p_vrad[8]
Definition db4.h:338
unsigned char p_v[8 *3]
Definition db4.h:336
char p_id
Definition db4.h:333
char p_name[NAMESIZE]
Definition db4.h:335
unsigned char p_hrad[8]
Definition db4.h:339
unsigned char p_h[8 *3]
Definition db4.h:337
unsigned char pwr_count[4]
Definition db4.h:328
unsigned char pwr_pt_count[4]
Definition db4.h:327
char pwr_id
Definition db4.h:324
struct exported_pipe_pnt pwr_data[1]
Definition db4.h:329
char pwr_name[NAMESIZE]
Definition db4.h:326
char pwr_pad
Definition db4.h:325
dbfloat_t q_verts[5][3]
Definition db4.h:265
char q_count
Definition db4.h:264
dbfloat_t q_norms[5][3]
Definition db4.h:266
char q_id
Definition db4.h:263
char p_id
Definition db4.h:257
char p_name[NAMESIZE]
Definition db4.h:259
char p_pad1
Definition db4.h:258
char script_pad
Definition db4.h:379
char script_id
Definition db4.h:378
char script_name[NAMESIZE]
Definition db4.h:380
unsigned char skt_count[4]
Definition db4.h:364
char skt_id
Definition db4.h:356
unsigned char skt_vert_count[4]
Definition db4.h:362
unsigned char skt_vvec[8 *3]
Definition db4.h:361
char skt_pad
Definition db4.h:357
char skt_name[NAMESIZE]
Definition db4.h:358
unsigned char skt_V[8 *3]
Definition db4.h:359
unsigned char skt_seg_count[4]
Definition db4.h:363
unsigned char skt_uvec[8 *3]
Definition db4.h:360
char s_type
Definition db4.h:122
short s_cgtype
Definition db4.h:157
char s_name[NAMESIZE]
Definition db4.h:156
dbfloat_t s_values[24]
Definition db4.h:158
char s_id
Definition db4.h:121
Definition db4.h:297
char ss_args[4]
Definition db4.h:304
char ss_pad
Definition db4.h:299
char ss_id
Definition db4.h:298
char ss_keyword[NAMESIZE]
Definition db4.h:303
char ss_name[NAMESIZE]
Definition db4.h:300
Definition db4.h:411
struct strsol ss
Definition db4.h:460
struct member M
Definition db4.h:443
struct nmg_rec nmg
Definition db4.h:467
struct b_surf d
Definition db4.h:446
struct material_rec md
Definition db4.h:444
struct ars_rec a
Definition db4.h:455
struct pipewire_rec pwr
Definition db4.h:463
struct polyhead p
Definition db4.h:453
struct B_solid B
Definition db4.h:445
struct particle_rec part
Definition db4.h:464
char u_id
Definition db4.h:413
char u_size[DB_MINREC]
Definition db4.h:438
struct script_rec scr
Definition db4.h:479
struct polydata q
Definition db4.h:454
struct ars_ext b
Definition db4.h:456
struct extr_rec extr
Definition db4.h:470
struct arbn_rec n
Definition db4.h:461
struct annot_rec ant
Definition db4.h:476
struct ident i
Definition db4.h:440
struct solidrec s
Definition db4.h:441
struct sketch_rec skt
Definition db4.h:473
struct cline_rec cli
Definition db4.h:482
struct combination c
Definition db4.h:442
struct bot_rec bot
Definition db4.h:488
fundamental vector, matrix, quaternion math macros