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