71#define RT_TOR_CK_MAGIC(_p) BU_CKMAG(_p, RT_TOR_INTERNAL_MAGIC, "rt_tor_internal")
88#define RT_TGC_CK_MAGIC(_p) BU_CKMAG(_p, RT_TGC_INTERNAL_MAGIC, "rt_tgc_internal")
103#define RT_ELL_CK_MAGIC(_p) BU_CKMAG(_p, RT_ELL_INTERNAL_MAGIC, "rt_ell_internal")
120#define RT_SUPERELL_CK_MAGIC(_p) BU_CKMAG(_p, RT_SUPERELL_INTERNAL_MAGIC, "rt_superell_internal")
159#define METABALL_METABALL 0
160#define METABALL_ISOPOTENTIAL 1
161#define METABALL_BLOB 2
168#define RT_METABALL_CK_MAGIC(_p) BU_CKMAG(_p, RT_METABALL_INTERNAL_MAGIC, "rt_metaball_internal")
177#define WDB_METABALLPT_TYPE_POINT 0x0
178#define WDB_METABALLPT_TYPE_LINE 0x1
179#define WDB_METABALL_PNT_NULL ((struct wdb_metaball_pnt *)0)
195#define RT_ARB_CK_MAGIC(_p) BU_CKMAG(_p, RT_ARB_INTERNAL_MAGIC, "rt_arb_internal")
209#define RT_ARS_CK_MAGIC(_p) BU_CKMAG(_p, RT_ARS_INTERNAL_MAGIC, "rt_ars_internal")
221#define RT_HALF_CK_MAGIC(_p) BU_CKMAG(_p, RT_HALF_INTERNAL_MAGIC, "rt_half_internal")
236#define RT_GRIP_CK_MAGIC(_p) BU_CKMAG(_p, RT_GRIP_INTERNAL_MAGIC, "rt_grip_internal")
255#define RT_JOINT_CK_MAGIC(_p) BU_CKMAG(_p, RT_JOINT_INTERNAL_MAGIC, "rt_joint_internal")
275#define RT_PG_CK_MAGIC(_p) BU_CKMAG(_p, RT_PG_INTERNAL_MAGIC, "rt_pg_internal")
289#define RT_NURB_CK_MAGIC(_p) BU_CKMAG(_p, RT_NURB_INTERNAL_MAGIC, "rt_nurb_internal");
290#define RT_NURB_GET_CONTROL_POINT(_s, _u, _v) ((_s)->ctl_points[ \
291 ((_v)*(_s)->s_size[0]+(_u))*RT_NURB_EXTRACT_COORDS((_s)->pt_type)])
304#define RT_BREP_CK_MAGIC(_p) BU_CKMAG(_p, RT_BREP_INTERNAL_MAGIC, "rt_brep_internal");
305#define RT_BREP_TEST_MAGIC(_p) ((_p) && (*((uint32_t *)(_p)) == (uint32_t)(RT_BREP_INTERNAL_MAGIC)))
323#define RT_EBM_NAME_LEN 256
337#define RT_EBM_SRC_FILE 'f'
338#define RT_EBM_SRC_OBJ 'o'
341#define RT_EBM_CK_MAGIC(_p) BU_CKMAG(_p, RT_EBM_INTERNAL_MAGIC, "rt_ebm_internal")
349#define RT_VOL_NAME_LEN 128
364#define RT_VOL_SRC_FILE 'f'
365#define RT_VOL_SRC_OBJ 'o'
370#define RT_VOL_CK_MAGIC(_p) BU_CKMAG(_p, RT_VOL_INTERNAL_MAGIC, "rt_vol_internal")
400#define RT_HF_CK_MAGIC(_p) BU_CKMAG(_p, RT_HF_INTERNAL_MAGIC, "rt_hf_internal")
413#define RT_ARBN_CK_MAGIC(_p) BU_CKMAG(_p, RT_ARBN_INTERNAL_MAGIC, "rt_arbn_internal")
427#define RT_PIPE_CK_MAGIC(_p) BU_CKMAG(_p, RT_PIPE_INTERNAL_MAGIC, "rt_pipe_internal")
452#define RT_PART_CK_MAGIC(_p) BU_CKMAG(_p, RT_PART_INTERNAL_MAGIC, "rt_part_internal")
454#define RT_PARTICLE_TYPE_SPHERE 1
455#define RT_PARTICLE_TYPE_CYLINDER 2
456#define RT_PARTICLE_TYPE_CONE 3
471#define RT_RPC_CK_MAGIC(_p) BU_CKMAG(_p, RT_RPC_INTERNAL_MAGIC, "rt_rpc_internal")
487#define RT_RHC_CK_MAGIC(_p) BU_CKMAG(_p, RT_RHC_INTERNAL_MAGIC, "rt_rhc_internal")
503#define RT_EPA_CK_MAGIC(_p) BU_CKMAG(_p, RT_EPA_INTERNAL_MAGIC, "rt_epa_internal")
520#define RT_EHY_CK_MAGIC(_p) BU_CKMAG(_p, RT_EHY_INTERNAL_MAGIC, "rt_ehy_internal")
536#define RT_HYP_CK_MAGIC(_p) BU_CKMAG(_p, RT_HYP_INTERNAL_MAGIC, "rt_hyp_internal")
552#define RT_ETO_CK_MAGIC(_p) BU_CKMAG(_p, RT_ETO_INTERNAL_MAGIC, "rt_eto_internal")
560#define DSP_NAME_LEN 128
563#define dsp_file dsp_name
572#define DSP_CUT_DIR_ADAPT 'a'
573#define DSP_CUT_DIR_llUR 'l'
574#define DSP_CUT_DIR_ULlr 'L'
584#define RT_DSP_SRC_V4_FILE '4'
585#define RT_DSP_SRC_FILE 'f'
586#define RT_DSP_SRC_OBJ 'o'
589#define RT_DSP_CK_MAGIC(_p) BU_CKMAG(_p, RT_DSP_INTERNAL_MAGIC, "rt_dsp_internal")
655#define SKETCH_NAME_LEN 16
673#define RT_SKETCH_CK_MAGIC(_p) BU_CKMAG(_p, RT_SKETCH_INTERNAL_MAGIC, "rt_sketch_internal")
691#define RT_SUBMODEL_CK_MAGIC(_p) BU_CKMAG(_p, RT_SUBMODEL_INTERNAL_MAGIC, "rt_submodel_internal")
717#define RT_EXTRUDE_CK_MAGIC(_p) BU_CKMAG(_p, RT_EXTRUDE_INTERNAL_MAGIC, "rt_extrude_internal")
738#define RT_REVOLVE_CK_MAGIC(_p) BU_CKMAG(_p, RT_REVOLVE_INTERNAL_MAGIC, "rt_revolve_internal")
757#define RT_CLINE_CK_MAGIC(_p) BU_CKMAG(_p, RT_CLINE_INTERNAL_MAGIC, "rt_cline_internal")
840#define RT_BOT_UNORIENTED 1
845#define RT_BOT_SURFACE 1
846#define RT_BOT_SOLID 2
853#define RT_BOT_PLATE 3
859#define RT_BOT_PLATE_NOCOS 4
862#define RT_BOT_HAS_SURFACE_NORMALS 0x01
863#define RT_BOT_USE_NORMALS 0x02
864#define RT_BOT_USE_FLOATS 0x04
865#define RT_BOT_HAS_TEXTURE_UVS 0x08
866#define RT_BOT_HAS_UNUSED1 0x10
867#define RT_BOT_HAS_UNUSED2 0x20
868#define RT_BOT_HAS_UNUSED3 0x40
869#define RT_BOT_HAS_UNUSED4 0x80
871#define RT_BOT_CK_MAGIC(_p) BU_CKMAG(_p, RT_BOT_INTERNAL_MAGIC, "rt_bot_internal")
959#define RT_PNTS_CK_MAGIC(_p) BU_CKMAG(_p, RT_PNTS_INTERNAL_MAGIC, "rt_pnts_internal")
1000#define RT_TXT_POS_BL 1
1001#define RT_TXT_POS_BC 2
1002#define RT_TXT_POS_BR 3
1003#define RT_TXT_POS_ML 4
1004#define RT_TXT_POS_MC 5
1005#define RT_TXT_POS_MR 6
1006#define RT_TXT_POS_TL 7
1007#define RT_TXT_POS_TC 8
1008#define RT_TXT_POS_TR 9
1029#define RT_ANNOT_CK_MAGIC(_p) BU_CKMAG(_p, RT_ANNOT_INTERNAL_MAGIC, "rt_annot_internal")
1077#define RT_DATUM_CK_MAGIC(_p) BU_CKMAG(_p, RT_DATUM_INTERNAL_MAGIC, "rt_datum_internal")
1091#define RT_HRT_CK_MAGIC(_p) BU_CKMAG(_p, RT_HRT_INTERNAL_MAGIC, "rt_hrt_internal")
1100#define RT_SCRIPT_CK_MAGIC(_p) BU_CKMAG(_p, RT_SCRIPT_INTERNAL_MAGIC, "rt_script_internal")
Header file for the BRL-CAD common definitions.
int rt_txt_pos_flag(int *pos_flag, int horizontal, int vertical)
@ RT_PNT_TYPE_COL_SCA_NRM
fastf_t vect_t[ELEMENTS_PER_VECT]
3-tuple vector
double fastf_t
fastest 64-bit (or larger) floating point type
fastf_t mat_t[ELEMENTS_PER_MAT]
4x4 matrix
fastf_t point2d_t[ELEMENTS_PER_POINT2D]
2-tuple point
fastf_t plane_t[ELEMENTS_PER_PLANE]
Definition of a plane equation.
fastf_t point_t[ELEMENTS_PER_POINT]
3-tuple point
fastf_t vect2d_t[ELEMENTS_PER_VECT2D]
2-tuple vector
int * ctl_points
array of indices for control points
int degree
degree of curve (number of control points - 1)
fastf_t radius
radius < 0.0 -> full circle with start point on circle and "end" at center
int center_is_left
flag indicating where center of curvature is. If non-zero, then center is to left of vector from star...
int orientation
0 -> ccw, !0 -> cw
int center
index of vertex at center of arc (only used by rt_extrude_prep and rt_extrude_shot)
Face NURBS surface geometry.
Definition of a knot vector.
int end
indices into sketch's array of vertices
int * ctl_points
array of indices for control points
struct knot_vector k
knot vector for NURB curve
int c_size
number of control points
int order
order of NURB curve (degree - 1)
int pt_type
type of NURB curve
fastf_t * weights
array of weights for control points (NULL if non_rational)
point2d_t * verts
array of vertices that serve as control points
point_t V
vertex, maps to the origin in the 2D system
size_t vert_count
number of vertices
struct rt_ant ant
segments in the annotation
size_t count
number of segments in the annotation
void ** segments
array of annotation segment pointer
unsigned char bot_flags
flags, (indicates surface normals available, for example)
fastf_t * normals
array of unit surface normals [num_normals*3]
size_t num_face_normals
current size of the face_normals array below (number of faces in the array)
struct bu_bitv * face_mode
a flag for each face indicating thickness is appended to hit point in ray direction (if bit is set),...
int * face_normals
array of indices into the "normals" array, one per face vertex [num_face_normals*3]
fastf_t * uvs
array of floats for uv texturing coordinates [num_uvs*3]
unsigned char orientation
int * faces
array of ints for faces [num_faces*3]
size_t num_face_uvs
current size of the face_uvs array below (number of faces in the array)
fastf_t * thickness
array of plate mode thicknesses (corresponds to array of faces) NULL for modes RT_BOT_SURFACE and RT_...
size_t num_uvs
current size of the vertex uv mappings (corresponds to number of vertices)
int * face_uvs
array of indices into the "uvs" array, one per face vertex [num_uvs*3]
fastf_t * vertices
array of floats for vertices [num_vertices*3]
struct rt_bot_internal * bot
ON_Brep * brep
An openNURBS brep object containing the solid.
fastf_t thickness
zero thickness means volume mode
struct rt_datum_internal * next
unsigned short * dsp_buf
actual data
struct rt_db_internal * dsp_bip
db object for data
char dsp_datasrc
which type of data source
unsigned char dsp_cuttype
type of cut to make
mat_t dsp_stom
solid to model space computed from dsp_mtos
uint32_t dsp_xcnt
# samples in row of data
mat_t dsp_mtos
model to solid space
unsigned short dsp_smooth
bool: surf normal interp
uint32_t dsp_ycnt
# of columns in data
struct bu_mapped_file * dsp_mp
mapped file for data
char name[RT_EBM_NAME_LEN]
struct bu_mapped_file * mp
mapped file for data
uint32_t xdim
X dimension (w cells)
uint32_t ydim
Y dimension (n cells)
char datasrc
which type of data source
fastf_t tallness
Z dimension (mm)
mat_t mat
convert local coords to model space
unsigned char * buf
actual data
struct rt_db_internal * bip
db object for data
vect_t ehy_Au
unit vector along semi-major axis
fastf_t ehy_r1
scalar semi-major axis length
fastf_t ehy_r2
scalar semi-minor axis length
vect_t ehy_H
height vector
fastf_t ehy_c
dist from hyperbola to vertex of asymptotes
vect_t a
axis a radial length
vect_t c
axis c radial length
vect_t b
axis b radial length
vect_t epa_Au
unit vector along semi-major axis
fastf_t epa_r2
scalar semi-minor axis length
vect_t epa_H
height vector
fastf_t epa_r1
scalar semi-major axis length
vect_t eto_N
vector normal to plane of torus
fastf_t eto_rd
scalar length of semi-minor of ellipse
vect_t eto_C
vector along semi-major axis of ellipse
fastf_t eto_r
scalar radius of rotation
vect_t u_vec
vector in U parameter direction
struct rt_sketch_internal * skt
pointer to referenced sketch
char * sketch_name
name of sketch object that defines the curve to be extruded
vect_t h
extrusion vector, may not be in (u_vec X v_vec) plane
point_t V
vertex, start and end point of loop to be extruded
int keypoint
DEPRECATED (UNUSED): index of keypoint vertex.
vect_t v_vec
vector in V parameter direction
fastf_t ylen
model len of HT rpp in "n" dir
char cfile[128]
name of control file (optional)
char dfile[128]
name of data file
fastf_t xlen
model len of HT rpp in "w" dir
uint32_t n
nlines of data file. ("j", "y")
struct bu_mapped_file * mp
actual data
char fmt[8]
CV style file format descriptor.
vect_t v
origin of HT in model space
fastf_t file2mm
scale factor to cvt file units to mm
uint32_t w
# samples wide of data file. ("i", "x")
fastf_t zscale
scale of data in ''up'' dir (after file2mm is applied)
vect_t x
model vect corresponding to "w" dir (will be unitized)
uint32_t shorts
!0 --> memory array is short, not float
vect_t y
model vect corresponding to "n" dir (will be unitized)
vect_t ydir
unit vector in y direction
fastf_t d
distance to cusps
vect_t xdir
unit vector in x direction
vect_t zdir
unit vector in z direction
fastf_t hyp_bnr
ratio of minimum neck width to base width
vect_t hyp_A
semi-major axis
vect_t hyp_Hi
full height vector
fastf_t hyp_b
scalar semi-minor axis length
struct bu_vls reference_path_2
struct bu_vls reference_path_1
int nsrf
number of surfaces
struct face_g_snurb ** srfs
The surfaces themselves.
int part_type
sphere, cylinder, cone
size_t npts
number of points for this polygon
fastf_t * verts
has 3*npts elements
fastf_t * norms
has 3*npts elements
size_t max_npts
maximum value of npts in poly[]
struct rt_pg_face_internal * poly
has npoly elements
struct bu_list pipe_segs_head
point2d_t v2d
vertex in 2d sketch
struct bu_vls sketch_name
name of sketch
struct rt_sketch_internal * skt
pointer to sketch
fastf_t ang
angle to revolve
vect_t r
vector in start plane, x axis
vect2d_t axis2d
revolve axis in 2d sketch
vect_t axis3d
revolve axis in 3d space, y axis
point_t v3d
vertex in 3d space
vect_t rhc_B
breadth vector
vect_t rhc_H
height vector
fastf_t rhc_c
dist from hyperbola to vertex of asymptotes
fastf_t rhc_r
scalar half-width of rectangular face
vect_t rpc_B
breadth vector
vect_t rpc_H
height vector
fastf_t rpc_r
scalar half-width of rectangular face
struct bu_vls file
.g filename, 0-len --> this database.
int meth
space partitioning method
struct bu_vls treetop
one treetop only
fastf_t r_b
radius in B direction (typ == r_a)
vect_t h
normal, unit length
fastf_t r_a
radius in A direction (r1)
fastf_t r_h
radius in H direction (r2)
uint32_t zdim
Z dimension.
vect_t cellsize
ideal coords: size of each cell
uint32_t xdim
X dimension.
uint32_t ydim
Y dimension.
char datasrc
which type of data source
char name[RT_VOL_NAME_LEN]
uint32_t hi
High threshold.
mat_t mat
convert local coords to model space
uint32_t lo
Low threshold.
struct rt_db_internal * bip
fastf_t pp_bendradius
bend radius to use for a bend at this point
point_t pp_coord
"control" point for pipe solid
fastf_t pp_id
inner diam, <=0 if solid (wire)
struct bu_list l
doubly linked list support
fastf_t pp_od
pipe outer diam
fundamental vector, matrix, quaternion math macros