28#ifndef RT_APPLICATION_H
29#define RT_APPLICATION_H
190#define RT_APPLICATION_NULL ((struct application *)0)
191#define RT_AFN_NULL ((int (*)(struct application *, struct partition *, struct region *, struct region *, struct partition *))NULL)
192#define RT_CK_AP(_p) BU_CKMAG(_p, RT_AP_MAGIC, "struct application")
193#define RT_CK_APPLICATION(_p) BU_CKMAG(_p, RT_AP_MAGIC, "struct application")
194#define RT_APPLICATION_INIT(_p) { \
195 memset((char *)(_p), 0, sizeof(struct application)); \
196 (_p)->a_magic = RT_AP_MAGIC; \
200#ifdef NO_BOMBING_MACROS
201# define RT_AP_CHECK(_ap) (void)(_ap)
203# define RT_AP_CHECK(_ap) \
204 {if ((_ap)->a_zero1||(_ap)->a_zero2) \
205 bu_bomb("corrupt application struct"); }
Header file for the BRL-CAD common definitions.
fastf_t vect_t[ELEMENTS_PER_VECT]
3-tuple vector
double fastf_t
fastest 64-bit (or larger) floating point type
Global registry of recognized magic numbers.
int(* b_hit)(struct application_bundle *, struct partition_bundle *)
called when bundle hits model
void * b_uptr
application_bundle-specific pointer
int b_user
application_bundle-specific value
struct xrays b_rays
Actual bundle of rays to be shot.
struct application b_ap
application setting to be applied to each ray
int(* b_miss)(struct application_bundle *)
called when entire bundle misses
char ** attrs
null terminated list of attributes This list should be the same as passed to rt_gettrees_and_attrs()
struct seg * a_finished_segs_hdp
int a_user
application-specific value
void(* a_multioverlap)(struct application *, struct partition *, struct bu_ptbl *, struct partition *)
called to resolve overlaps
int a_zero2
must be zero (sanity check)
struct partition * a_Final_Part_hdp
fastf_t a_diverge
slope of beam divergence/mm
int a_y
Screen Y of ray, if applicable.
struct resource * a_resource
dynamic memory resources
int a_zero1
must be zero (sanity check)
int a_no_booleans
1= partitions==segs, no booleans
int a_level
recursion level (for printing)
vect_t a_uvec
application-specific vector
int(* a_overlap)(struct application *, struct partition *, struct region *, struct region *, struct partition *)
DEPRECATED.
vect_t a_vvec
application-specific vector
fastf_t a_cumlen
cumulative length of ray
fastf_t a_dist
application-specific distance
void(* a_logoverlap)(struct application *, const struct partition *, const struct bu_ptbl *, const struct partition *)
called to log overlaps
int(* a_miss)(struct application *)
called when shot misses
fastf_t a_ray_length
distance from ray start to end intersections
struct xray a_ray
Actual ray to be shot.
struct bn_tabdata * a_spectrum
application-specific bn_tabdata pointer
struct rt_i * a_rt_i
this librt instance
fastf_t a_refrac_index
current index of refraction
const char * a_purpose
Debug string: purpose of ray.
void * a_uptr
application-specific pointer
int a_onehit
flag to stop on first hit
struct pixel_ext * a_pixelext
locations of pixel corners
int a_bot_reverse_normal_disabled
1= no bot normals get reversed in BOT_UNORIENTED_NORM
fastf_t a_color[3]
application-specific color
vect_t a_inv_dir
filled in by rt_shootray(), inverse of ray direction cosines
int a_x
Screen X of ray, if applicable.
fastf_t a_rbeam
initial beam radius (mm)
int a_flag
application-specific flag
int a_return
Return of a_hit()/a_miss()
int(* a_hit)(struct application *, struct partition *, struct seg *)
called when shot hits model
Primary ray data structure.
fundamental vector, matrix, quaternion math macros