27#ifndef RT_RT_INSTANCE_H
28#define RT_RT_INSTANCE_H
132#define RTI_NULL ((struct rt_i *)0)
134#define RT_CHECK_RTI(_p) BU_CKMAG(_p, RTI_MAGIC, "struct rt_i")
135#define RT_CK_RTI(_p) RT_CHECK_RTI(_p)
144#define RT_VISIT_ALL_SOLTABS_START(_s, _rti) { \
145 struct bu_list *_head = &((_rti)->rti_solidheads[0]); \
146 for (; _head < &((_rti)->rti_solidheads[RT_DBNHASH]); _head++) \
147 for (BU_LIST_FOR(_s, soltab, _head)) {
149#define RT_VISIT_ALL_SOLTABS_END } }
180 const char **argv,
int ncpus);
284 int pr_name,
int lvl);
289 const struct rt_i *rtip,
325RT_EXPORT
extern void clt_init(
void);
328clt_db_store(
size_t count,
struct soltab *solids[]);
331clt_db_store_bvh(
size_t count,
struct clt_linear_bvh_node *nodes);
334clt_db_store_regions(
size_t sz_btree_array,
struct bit_tree *btp,
size_t nregions,
struct cl_bool_region *regions,
struct cl_region *mtls);
337clt_db_store_regions_table(cl_uint *regions_table,
size_t regions_table_size);
339RT_EXPORT
extern void clt_db_release(
void);
342RT_EXPORT
void clt_prep(
struct rt_i *rtip);
Header file for the BRL-CAD common definitions.
#define RT_DBNHASH
hash table is an array of linked lists with this many array pointer elements (Memory use for 32-bit: ...
#define ID_MAX_SOLID
Maximum defined ID_xxx for solids.
DEPRECATED int rt_load_attrs(struct rt_i *rtip, char **attrs)
void rt_pr_tree_val(const union tree *tp, const struct partition *partp, int pr_name, int lvl)
void rt_ck(struct rt_i *rtip)
int rt_gettrees_and_attrs(struct rt_i *rtip, const char **attrs, int argc, const char **argv, int ncpus)
int rt_del_regtree(struct rt_i *rtip, struct region *delregp, struct resource *resp)
void rt_clean_resource(struct rt_i *rtip, struct resource *resp)
int rt_plot_solid(FILE *fp, struct rt_i *rtip, const struct soltab *stp, struct resource *resp)
void rt_pr_partition_vls(struct bu_vls *v, const struct rt_i *rtip, const struct partition *pp)
struct rt_i * rt_new_rti(struct db_i *dbip)
void rt_clean_resource_basic(struct rt_i *rtip, struct resource *resp)
struct soltab * rt_find_solid(const struct rt_i *rtip, const char *name)
Find solid by leaf name.
void rt_regionfix(struct rt_i *rtip)
void rt_init_resource(struct resource *resp, int cpu_num, struct rt_i *rtip)
void rt_free_rti(struct rt_i *rtip)
int rt_gettree(struct rt_i *rtip, const char *node)
void rt_pr_partition(const struct rt_i *rtip, const struct partition *pp)
int rt_gettrees(struct rt_i *rtip, int argc, const char **argv, int ncpus)
void rt_clean(struct rt_i *rtip)
void rt_fr_cut(struct rt_i *rtip, union cutter *cutp)
void rt_prep_parallel(struct rt_i *rtip, int ncpu)
void rt_pr_partitions(const struct rt_i *rtip, const struct partition *phead, const char *title)
void rt_cut_it(struct rt_i *rtip, int ncpu)
void rt_clean_resource_complete(struct rt_i *rtip, struct resource *resp)
void rt_prep(struct rt_i *rtip)
double fastf_t
fastest 64-bit (or larger) floating point type
fastf_t point_t[ELEMENTS_PER_POINT]
3-tuple point
struct bu_hist rti_hist_cellsize
occupancy of cut cells
size_t rti_nsolids_with_pieces
# solids using pieces
double rti_radius
radius of model bounding sphere
int rti_cut_totobj
# objs in all bins, total
size_t nmiss
solid ft_shot() returned a miss
size_t rti_cutlen
goal for # solids per boxnode
int rti_ncut_by_type[CUT_MAXIMUM+1]
number of cuts by type
struct bn_tol rti_tol
Math tolerances for this model.
size_t nmiss_tree
shots missed sub-tree RPP
uint32_t rti_magic
magic # for integrity check
size_t nsolids
total # of solids participating
size_t rti_nrays
# calls to rt_shootray()
point_t mdl_min
min corner of model bounding RPP
fastf_t rti_max_beam_radius
Max threat radius for FASTGEN cline solid.
struct bu_hist rti_hist_cutdepth
depth of cut tree
struct bg_tess_tol rti_ttol
Tessellation tolerance defaults.
int rti_cut_maxdepth
max depth of cut tree
int needprep
needs rt_prep
size_t rti_uses
for rt_submodel
int rti_dont_instance
1=Don't compress instances of solids into 1 while prepping
union cutter * rti_CutFree
cut Freelist
int rti_save_overlaps
1=fill in pt_overlap_reg, change boolweave behavior
struct bu_hist rti_hist_cell_pieces
solid pieces per cell
union cutter rti_inf_box
List of infinite solids.
int rti_nsol_by_type[ID_MAX_SOLID+1]
point_t rti_pmax
for plotting, max RPP
int rti_space_partition
space partitioning method
struct bu_ptbl rti_cuts_waiting
void * Orca_hash_tbl
Hash table in matrices for ORCA.
size_t nmiss_solid
shots missed solid RPP
int rti_nlights
number of light sources
int rti_prismtrace
add support for pixel prism trace
struct region ** Regions
ptrs to regions [reg_bit]
int useair
1="air" regions are retained while prepping
struct bu_ptbl rti_resources
list of 'struct resource's encountered
size_t nempty_cells
number of empty spatial partition cells passed through
int rti_add_to_new_solids_list
point_t rti_pmin
for plotting, min RPP
size_t ndup
duplicate shots at a given solid
struct bu_list rti_solidheads[RT_DBNHASH]
active solid lists
int rti_hasty_prep
1=hasty prep, slower ray-trace
size_t nshots
# of calls to ft_shot()
struct soltab ** rti_sol_by_type[ID_MAX_SOLID+1]
char * rti_treetop
bu_strduped, for rt_submodel rti's only
int rti_cut_maxlen
max len RPP list in 1 cut bin
size_t rti_cutdepth
goal for depth of NUBSPT cut tree
char * rti_region_fix_file
rt_regionfix() file or NULL
int rti_air_discards
# of air regions discarded
point_t mdl_max
max corner of model bounding RPP
size_t nhits
solid ft_shot() returned a hit
size_t nmiss_model
rays missed model RPP
struct bu_list HeadRegion
ptr of list of regions in model
struct db_i * rti_dbip
prt to Database instance struct
union cutter rti_CutHead
Head of cut tree.
struct bu_ptbl delete_regs
list of region pointers to delete after light_init()
size_t nregions
total # of regions participating
struct bu_ptbl rti_new_solids
struct soltab ** rti_Solids
ptrs to soltab [st_bit]
struct bu_ptbl rti_busy_cutter_nodes
List of "cutter" mallocs.
fundamental vector, matrix, quaternion math macros