BRL-CAD
db4.h
Go to the documentation of this file.
1/* D B 4 . H
2 * BRL-CAD
3 *
4 * Copyright (c) 1985-2023 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
72__BEGIN_DECLS
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#define DB_INH_LOWER 0 /* Lower nodes override */
216#define DB_INH_HIGHER 1 /* Higher nodes override */
217}; /* struct combination */
218
219struct member {
220 char m_id; /* ID_MEMB */
221 char m_relation; /* boolean operation as u,-,+ char */
222 char m_brname[NAMESIZE]; /* DEPRECATED: name of this branch */
223 char m_instname[NAMESIZE]; /* name of referred-to obj. */
224 short m_pad1;
225 dbfloat_t m_mat[16]; /* homogeneous trans matrix */
226 short m_pad2; /* was m_num, DEPRECATED: COMGEOM solid # ref */
227}; /* struct member */
228
229struct material_rec { /* whole record is DEPRECATED */
230 char md_id; /* = ID_COLORTAB color override */
231 char md_flags; /* UNUSED */
232 short md_low; /* lower end of region IDs affected */
233 short md_hi; /* upper end of region IDs affected */
234 unsigned char md_r;
235 unsigned char md_g; /* color of these regions: 0..255 */
236 unsigned char md_b;
237 char md_material[100]; /* UNUSED now */
238}; /* struct material_rec */
239
240struct B_solid {
241 char B_id; /* = ID_BSOLID */
242 char B_pad;
244 short B_nsurf; /* # of surfaces in this solid */
245 dbfloat_t B_unused; /* UNUSED (was resolution of flatness) */
246}; /* struct B_solid */
247
248struct b_surf {
249 char d_id; /* = ID_BSURF */
250 short d_order[2]; /* order of u and v directions */
251 short d_kv_size[2]; /* knot vector size (u and v) */
252 short d_ctl_size[2]; /* control mesh size ( u and v) */
253 short d_geom_type; /* geom type 3 or 4 */
254 short d_nknots; /* # granules of knots */
255 short d_nctls; /* # granules of ctls */
256}; /* struct b_surf */
257
258struct polyhead {
259 char p_id; /* = POLY_HEAD */
260 char p_pad1;
262}; /* struct polyhead */
263
264struct polydata {
265 char q_id; /* = POLY_DATA */
266 char q_count; /* # of vertices <= 5 */
267 dbfloat_t q_verts[5][3]; /* Actual vertices for this polygon */
268 dbfloat_t q_norms[5][3]; /* Normals at each vertex */
269}; /* struct polydata */
270
271struct ars_rec {
272 char a_id; /* ID_ARS_A */
273 char a_type; /* primitive type */
274 char a_name[NAMESIZE]; /* unique name */
275 /* these cannot be size_t due to v4 compatibility */
276 short a_m; /* # of curves */
277 short a_n; /* # of points per curve */
278 short a_curlen; /* # of granules per curve */
279 short a_totlen; /* # of granules for ARS */
280 /* Remainder are unused, and exist for ?compatibility */
281 short a_pad;
282 dbfloat_t a_xmax; /* max x coordinate */
283 dbfloat_t a_xmin; /* min x coordinate */
284 dbfloat_t a_ymax; /* max y coordinate */
285 dbfloat_t a_ymin; /* min y coordinate */
286 dbfloat_t a_zmax; /* max z coordinate */
287 dbfloat_t a_zmin; /* min z coordinate */
288}; /* struct ars_rec */
289
290struct ars_ext {
291 char b_id; /* ID_ARS_B */
292 char b_type; /* primitive type */
293 short b_n; /* current curve # */
294 short b_ngranule; /* curr. granule for curve */
295 short b_pad;
296 dbfloat_t b_values[8*3]; /* vectors */
297}; /* struct ars_ext */
298
299struct strsol {
300 char ss_id; /* ID_STRSOL */
301 char ss_pad;
302 char ss_name[NAMESIZE]; /* solid name */
303#define DB_SS_NGRAN 8 /* All STRSOL's have this many granules */
304#define DB_SS_LEN (DB_SS_NGRAN*DB_MINREC-2*NAMESIZE-2)
305 char ss_keyword[NAMESIZE]; /* solid keyword */
306 char ss_args[4]; /* DB_SS_LEN bytes of str args */
307}; /* struct strsol */
308
309struct arbn_rec {
310 char n_id; /* DBID_ARBN */
311 char n_pad;
313 unsigned char n_neqn[4]; /* # equations which follow */
314 unsigned char n_grans[4]; /* # eqn granules to follow */
315 /* Note that eqn granules are in "network" byte order */
316}; /* struct arbn_rec */
317
319 unsigned char epp_coord[8*3];
320 unsigned char epp_bendradius[8];
321 unsigned char epp_id[8];
322 unsigned char epp_od[8];
323}; /* exported_pipe_pnt */
324
326 char pwr_id; /* DBID_PIPE */
329 unsigned char pwr_pt_count[4]; /* number of points in this pipe solid */
330 unsigned char pwr_count[4]; /* # additional granules */
331 struct exported_pipe_pnt pwr_data[1]; /* mach indep segments */
332}; /* struct pipewire_rec */
333
335 char p_id; /* DBID_PARTICLE */
336 char p_pad;
338 unsigned char p_v[8*3]; /* vertex (mach indep fmt) */
339 unsigned char p_h[8*3]; /* height vector */
340 unsigned char p_vrad[8]; /* radius at vertex */
341 unsigned char p_hrad[8]; /* radius at end of height */
342}; /* struct particle_rec */
343
344struct extr_rec {
345 char ex_id; /* DBID_EXTR */
346 char ex_pad;
348 unsigned char ex_V[8*3]; /* Vertex */
349 unsigned char ex_h[8*3]; /* extrusion vector */
350 unsigned char ex_uvec[8*3]; /* vector in U parameter direction */
351 unsigned char ex_vvec[8*3]; /* vector in V parameter direction */
352 unsigned char ex_key[4]; /* keypoint index */
353 unsigned char ex_count[4]; /* number of additional granules
354 * (for now, this will always be 1 ) */
355}; /* struct extr_rec */
356
358 char skt_id; /* DBID_SKETCH */
361 unsigned char skt_V[8*3]; /* vertex */
362 unsigned char skt_uvec[8*3]; /* vector in U parameter direction */
363 unsigned char skt_vvec[8*3]; /* vector in V parameter direction */
364 unsigned char skt_vert_count[4]; /* number of vertices in sketch */
365 unsigned char skt_seg_count[4]; /* number of segments in sketch */
366 unsigned char skt_count[4]; /* number of additional granules */
367}; /* struct sketch_rec */
368
369struct annot_rec {
370 char ant_id; /*DBID_ANNOT */
373 unsigned char ant_V[8*3]; /* origin map */
374 unsigned char ant_vert_count[4]; /* number of vertices in annotation */
375 unsigned char ant_seg_count[4]; /* number of segments in annotation */
376 unsigned char ant_count[4]; /* number of additional granules */
377}; /* struct annot_rec */
378
380 char script_id; /*DBID_SCRIPT */
383}; /* struct script_rec */
384
385struct cline_rec {
386 char cli_id; /* DBID_CLINE */
389 unsigned char cli_V[8*3]; /* vertex */
390 unsigned char cli_h[8*3]; /* height vector */
391 unsigned char cli_radius[8]; /* radius */
392 unsigned char cli_thick[8]; /* plate thickness (0 means volume mode) */
393}; /* struct cline_rec */
394
395struct bot_rec {
396 char bot_id;
399 unsigned char bot_nrec[4]; /* number of additional records required */
400 unsigned char bot_orientation; /* unoriented, ccw, or cw */
401 unsigned char bot_mode; /* surface or volume */
402 unsigned char bot_err_mode;
403 unsigned char bot_num_verts[4]; /* number of vertices */
404 unsigned char bot_num_triangles[4]; /* number of triangles */
405 unsigned char bot_data[1]; /* the start of the data:
406 * num_verts*3*8 for the vertex floats
407 * num_triangles*3*4 for the triangle ints
408 * if mode is RT_BOT_PLATE, then additional data is:
409 * num_triangles*8 for the face thicknesses
410 * followed by a null terminated hex digit string "face_mode" (bit vector) */
411}; /* struct bot_rec */
412
413union record {
414
415 char u_id; /* To differentiate record types */
416#define ID_IDENT 'I'
417#define ID_SOLID 'S'
418#define ID_COMB 'C'
419#define ID_MEMB 'M'
420#define ID_ARS_A 'A'
421#define ID_ARS_B 'B'
422#define ID_FREE 'F' /* Free record -- ignore */
423#define ID_P_HEAD 'P' /* Polygon header */
424#define ID_P_DATA 'Q' /* Polygon data record */
425#define ID_BSOLID 'b' /* B-spline solid. multiple surfs */
426#define ID_BSURF 'D' /* d_spline surface header */
427#define ID_COLORTAB 'm' /* Material "color table" record */
428#define DBID_STRSOL 's' /* String solid description */
429#define DBID_ARBN 'n' /* Convex polyhedron with N faces */
430#define DBID_PIPE 'w' /* pipe (wire) solid */
431#define DBID_PARTICLE 'p' /* a particle (lozenge) */
432#define DBID_NMG 'N' /* NMG solid */
433#define DBID_SKETCH 'd' /* 2D sketch */
434#define DBID_ANNOT 'a' /* 2D annotations */
435#define DBID_EXTR 'e' /* solid of extrusion */
436#define DBID_CLINE 'c' /* FASTGEN4 CLINE solid */
437#define DBID_BOT 't' /* Bag o' triangles */
438#define DBID_SCRIPT 'T' /* script */
439
440 char u_size[DB_MINREC]; /* Minimum record size */
441
442 struct ident i;
443 struct solidrec s;
445 struct member M;
447 struct B_solid B;
448 struct b_surf d;
449 /*
450 * The b_surf record is followed by
451 * d_nknots granules of knot vectors (first u, then v),
452 * and then by d_nctls granules of control mesh information.
453 * Note that neither of these have an ID field!
454 */
455 struct polyhead p;
456 struct polydata q;
457 struct ars_rec a;
458 struct ars_ext b;
459 /*
460 * All records below here are in machine-independent format.
461 */
462 struct strsol ss;
463 struct arbn_rec n;
464 /* new pipe solid */
467
468 /* Version 0 is Release 4.0 to 4.2, Version 1 is Release 4.4 */
469 struct nmg_rec nmg;
470
471 /* Solid of extrusion */
473
474 /* sketch */
476
477 /* annotation */
479
480 /* script */
482
483 /* FASTGEN4 CLINE element */
485
486 /* Bag o' triangles
487 * The vertices are stored in an array
488 * The faces are arrays of three ints each indexing into the array of vertices
489 */
490 struct bot_rec bot;
491
492}; /* union record */
493#define DB_RECORD_NULL ((union record *)0)
494
495
496/* DEPRECATED: do not use. */
497DEPRECATED void rt_fastf_float(fastf_t *ff, const dbfloat_t *fp, int n, int flip);
498
499/* DEPRECATED: do not use. */
500DEPRECATED void rt_mat_dbmat(fastf_t *ff, const dbfloat_t *dbp, int flip);
501
502/* DEPRECATED: do not use. */
504
505__END_DECLS
506
507#endif /* RT_DB4_H */
508
509/** @} */
510/*
511 * Local Variables:
512 * mode: C
513 * tab-width: 8
514 * indent-tabs-mode: t
515 * c-file-style: "stroustrup"
516 * End:
517 * ex: shiftwidth=4 tabstop=8
518 */
Header file for the BRL-CAD common definitions.
void float float int * n
Definition: tig.h:74
#define DEPRECATED
Definition: common.h:400
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:330
Main header file for the BRL-CAD Non-Manifold Geometry Library, LIBNMG.
Definition: db4.h:240
char B_pad
Definition: db4.h:242
short B_nsurf
Definition: db4.h:244
dbfloat_t B_unused
Definition: db4.h:245
char B_name[NAMESIZE]
Definition: db4.h:243
char B_id
Definition: db4.h:241
Definition: db4.h:369
char ant_pad
Definition: db4.h:371
char ant_id
Definition: db4.h:370
unsigned char ant_count[4]
Definition: db4.h:376
unsigned char ant_V[8 *3]
Definition: db4.h:373
char ant_name[NAMESIZE]
Definition: db4.h:372
unsigned char ant_seg_count[4]
Definition: db4.h:375
unsigned char ant_vert_count[4]
Definition: db4.h:374
Definition: db4.h:309
unsigned char n_grans[4]
Definition: db4.h:314
unsigned char n_neqn[4]
Definition: db4.h:313
char n_pad
Definition: db4.h:311
char n_id
Definition: db4.h:310
char n_name[NAMESIZE]
Definition: db4.h:312
Definition: db4.h:290
char b_id
Definition: db4.h:291
char b_type
Definition: db4.h:292
short b_n
Definition: db4.h:293
dbfloat_t b_values[8 *3]
Definition: db4.h:296
short b_ngranule
Definition: db4.h:294
short b_pad
Definition: db4.h:295
Definition: db4.h:271
dbfloat_t a_zmin
Definition: db4.h:287
short a_curlen
Definition: db4.h:278
dbfloat_t a_ymax
Definition: db4.h:284
dbfloat_t a_zmax
Definition: db4.h:286
dbfloat_t a_xmin
Definition: db4.h:283
dbfloat_t a_ymin
Definition: db4.h:285
short a_pad
Definition: db4.h:281
short a_n
Definition: db4.h:277
char a_id
Definition: db4.h:272
char a_name[NAMESIZE]
Definition: db4.h:274
short a_m
Definition: db4.h:276
char a_type
Definition: db4.h:273
dbfloat_t a_xmax
Definition: db4.h:282
short a_totlen
Definition: db4.h:279
Definition: db4.h:248
short d_order[2]
Definition: db4.h:250
short d_nknots
Definition: db4.h:254
short d_nctls
Definition: db4.h:255
short d_kv_size[2]
Definition: db4.h:251
short d_ctl_size[2]
Definition: db4.h:252
short d_geom_type
Definition: db4.h:253
char d_id
Definition: db4.h:249
Definition: db4.h:395
unsigned char bot_nrec[4]
Definition: db4.h:399
unsigned char bot_err_mode
Definition: db4.h:402
char bot_name[NAMESIZE]
Definition: db4.h:398
unsigned char bot_num_verts[4]
Definition: db4.h:403
unsigned char bot_orientation
Definition: db4.h:400
unsigned char bot_data[1]
Definition: db4.h:405
unsigned char bot_num_triangles[4]
Definition: db4.h:404
char bot_pad
Definition: db4.h:397
unsigned char bot_mode
Definition: db4.h:401
char bot_id
Definition: db4.h:396
Definition: db4.h:385
char cli_name[NAMESIZE]
Definition: db4.h:388
unsigned char cli_radius[8]
Definition: db4.h:391
unsigned char cli_thick[8]
Definition: db4.h:392
unsigned char cli_V[8 *3]
Definition: db4.h:389
unsigned char cli_h[8 *3]
Definition: db4.h:390
char cli_id
Definition: db4.h:386
char cli_pad
Definition: db4.h:387
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:321
unsigned char epp_coord[8 *3]
Definition: db4.h:319
unsigned char epp_od[8]
Definition: db4.h:322
unsigned char epp_bendradius[8]
Definition: db4.h:320
Definition: db4.h:344
unsigned char ex_h[8 *3]
Definition: db4.h:349
unsigned char ex_count[4]
Definition: db4.h:353
unsigned char ex_V[8 *3]
Definition: db4.h:348
char ex_name[NAMESIZE]
Definition: db4.h:347
char ex_pad
Definition: db4.h:346
unsigned char ex_uvec[8 *3]
Definition: db4.h:350
unsigned char ex_key[4]
Definition: db4.h:352
char ex_id
Definition: db4.h:345
unsigned char ex_vvec[8 *3]
Definition: db4.h:351
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:232
short md_hi
Definition: db4.h:233
unsigned char md_g
Definition: db4.h:235
char md_flags
Definition: db4.h:231
unsigned char md_b
Definition: db4.h:236
unsigned char md_r
Definition: db4.h:234
char md_material[100]
Definition: db4.h:237
char md_id
Definition: db4.h:230
Definition: db4.h:219
char m_relation
Definition: db4.h:221
char m_id
Definition: db4.h:220
char m_brname[NAMESIZE]
Definition: db4.h:222
short m_pad1
Definition: db4.h:224
short m_pad2
Definition: db4.h:226
dbfloat_t m_mat[16]
Definition: db4.h:225
char m_instname[NAMESIZE]
Definition: db4.h:223
Definition: io.h:39
char p_pad
Definition: db4.h:336
unsigned char p_vrad[8]
Definition: db4.h:340
unsigned char p_v[8 *3]
Definition: db4.h:338
char p_id
Definition: db4.h:335
char p_name[NAMESIZE]
Definition: db4.h:337
unsigned char p_hrad[8]
Definition: db4.h:341
unsigned char p_h[8 *3]
Definition: db4.h:339
unsigned char pwr_count[4]
Definition: db4.h:330
unsigned char pwr_pt_count[4]
Definition: db4.h:329
char pwr_id
Definition: db4.h:326
struct exported_pipe_pnt pwr_data[1]
Definition: db4.h:331
char pwr_name[NAMESIZE]
Definition: db4.h:328
char pwr_pad
Definition: db4.h:327
Definition: db4.h:264
dbfloat_t q_verts[5][3]
Definition: db4.h:267
char q_count
Definition: db4.h:266
dbfloat_t q_norms[5][3]
Definition: db4.h:268
char q_id
Definition: db4.h:265
Definition: db4.h:258
char p_id
Definition: db4.h:259
char p_name[NAMESIZE]
Definition: db4.h:261
char p_pad1
Definition: db4.h:260
char script_pad
Definition: db4.h:381
char script_id
Definition: db4.h:380
char script_name[NAMESIZE]
Definition: db4.h:382
unsigned char skt_count[4]
Definition: db4.h:366
char skt_id
Definition: db4.h:358
unsigned char skt_vert_count[4]
Definition: db4.h:364
unsigned char skt_vvec[8 *3]
Definition: db4.h:363
char skt_pad
Definition: db4.h:359
char skt_name[NAMESIZE]
Definition: db4.h:360
unsigned char skt_V[8 *3]
Definition: db4.h:361
unsigned char skt_seg_count[4]
Definition: db4.h:365
unsigned char skt_uvec[8 *3]
Definition: db4.h:362
Definition: db4.h:120
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:299
char ss_args[4]
Definition: db4.h:306
char ss_pad
Definition: db4.h:301
char ss_id
Definition: db4.h:300
char ss_keyword[NAMESIZE]
Definition: db4.h:305
char ss_name[NAMESIZE]
Definition: db4.h:302
Definition: db4.h:413
struct strsol ss
Definition: db4.h:462
struct member M
Definition: db4.h:445
struct nmg_rec nmg
Definition: db4.h:469
struct b_surf d
Definition: db4.h:448
struct material_rec md
Definition: db4.h:446
struct ars_rec a
Definition: db4.h:457
struct pipewire_rec pwr
Definition: db4.h:465
struct polyhead p
Definition: db4.h:455
struct B_solid B
Definition: db4.h:447
struct particle_rec part
Definition: db4.h:466
char u_id
Definition: db4.h:415
char u_size[DB_MINREC]
Definition: db4.h:440
struct script_rec scr
Definition: db4.h:481
struct polydata q
Definition: db4.h:456
struct ars_ext b
Definition: db4.h:458
struct extr_rec extr
Definition: db4.h:472
struct arbn_rec n
Definition: db4.h:463
struct annot_rec ant
Definition: db4.h:478
struct ident i
Definition: db4.h:442
struct solidrec s
Definition: db4.h:443
struct sketch_rec skt
Definition: db4.h:475
struct cline_rec cli
Definition: db4.h:484
struct combination c
Definition: db4.h:444
struct bot_rec bot
Definition: db4.h:490
fundamental vector, matrix, quaternion math macros