BRL-CAD
Collaboration diagram for Pointer Tables:

Files

file  ptbl.c
 

Data Structures

struct  bu_ptbl
 

Macros

#define BU_PTBL_NULL   ((struct bu_ptbl *)0)
 
#define BU_CK_PTBL(_p)   BU_CKMAG(_p, BU_PTBL_MAGIC, "bu_ptbl")
 
#define BU_PTBL_INIT(_p)
 
#define BU_PTBL_INIT_ZERO   { {BU_PTBL_MAGIC, BU_LIST_NULL, BU_LIST_NULL}, 0, 0, NULL }
 
#define BU_PTBL_IS_INITIALIZED(_p)   (((struct bu_ptbl *)(_p) != BU_PTBL_NULL) && LIKELY((_p)->l.magic == BU_PTBL_MAGIC))
 
#define BU_PTBL_BASEADDR(ptbl)   ((ptbl)->buffer)
 
#define BU_PTBL_LASTADDR(ptbl)   ((ptbl)->buffer + (ptbl)->end - 1)
 
#define BU_PTBL_END(ptbl)   ((ptbl)->end)
 
#define BU_PTBL_LEN(ptbl)   ((size_t)(ptbl)->end)
 
#define BU_PTBL_GET(ptbl, i)   ((ptbl)->buffer[(i)])
 
#define BU_PTBL_SET(ptbl, i, val)   ((ptbl)->buffer[(i)] = (long*)(val))
 
#define BU_PTBL_TEST(ptbl)   ((ptbl)->l.magic == BU_PTBL_MAGIC)
 
#define BU_PTBL_CLEAR_I(_ptbl, _i)   ((_ptbl)->buffer[(_i)] = (long *)0)
 
#define BU_PTBL_FOR(ip, cast, ptbl)   ip = cast BU_PTBL_LASTADDR(ptbl); ip >= cast BU_PTBL_BASEADDR(ptbl); ip--
 

Typedefs

typedef struct bu_ptbl bu_ptbl_t
 

Functions

void bu_ptbl_init (struct bu_ptbl *b, size_t len, const char *str)
 
void bu_ptbl_reset (struct bu_ptbl *b)
 
int bu_ptbl_ins (struct bu_ptbl *b, long *p)
 
int bu_ptbl_locate (const struct bu_ptbl *b, const long *p)
 
void bu_ptbl_zero (struct bu_ptbl *b, const long *p)
 
int bu_ptbl_ins_unique (struct bu_ptbl *b, long *p)
 
int bu_ptbl_rm (struct bu_ptbl *b, const long *p)
 
void bu_ptbl_cat (struct bu_ptbl *dest, const struct bu_ptbl *src)
 
void bu_ptbl_cat_uniq (struct bu_ptbl *dest, const struct bu_ptbl *src)
 
void bu_ptbl_free (struct bu_ptbl *b)
 
void bu_pr_ptbl (const char *title, const struct bu_ptbl *tbl, int verbose)
 
void bu_ptbl_trunc (struct bu_ptbl *tbl, int end)
 

Detailed Description

Macro Definition Documentation

#define BU_PTBL_NULL   ((struct bu_ptbl *)0)

Definition at line 69 of file ptbl.h.

Referenced by db_search().

#define BU_CK_PTBL (   _p)    BU_CKMAG(_p, BU_PTBL_MAGIC, "bu_ptbl")
#define BU_PTBL_INIT (   _p)
Value:
{ \
(_p)->end = 0; \
(_p)->blen = 0; \
(_p)->buffer = NULL; \
}
#define BU_LIST_INIT_MAGIC(_hp, _magic)
Definition: list.h:156
#define BU_PTBL_MAGIC
Definition: magic.h:59

initialize a bu_ptbl struct without allocating any memory. this macro is not suitable for initializing a list head node.

Definition at line 80 of file ptbl.h.

Referenced by _db_search_full_paths(), _ged_results_init(), db_search(), diff_init_result(), ged_get_selection_set(), ged_search(), main(), rt_brep_find_selections(), and rt_joint_find_selections().

#define BU_PTBL_INIT_ZERO   { {BU_PTBL_MAGIC, BU_LIST_NULL, BU_LIST_NULL}, 0, 0, NULL }

macro suitable for declaration statement initialization of a bu_ptbl struct. does not allocate memory. not suitable for initializing a list head node.

Definition at line 92 of file ptbl.h.

Referenced by characterize_dp(), comb_flatten(), comb_lift_region(), create_solid_nodes(), full_assembly_node(), full_comb_node(), full_region_node(), ged_lc(), nmg_to_arb(), and rt_fastgen_vol_vol_overlap().

#define BU_PTBL_IS_INITIALIZED (   _p)    (((struct bu_ptbl *)(_p) != BU_PTBL_NULL) && LIKELY((_p)->l.magic == BU_PTBL_MAGIC))

returns truthfully whether a bu_ptbl has been initialized via BU_PTBL_INIT() or BU_PTBL_INIT_ZERO.

Definition at line 98 of file ptbl.h.

Referenced by _ged_results_add(), and db_search().

#define BU_PTBL_LASTADDR (   ptbl)    ((ptbl)->buffer + (ptbl)->end - 1)
#define BU_PTBL_END (   ptbl)    ((ptbl)->end)

Definition at line 106 of file ptbl.h.

Referenced by db_comb_mvall(), Eplot(), fix_halfs(), ged_nmg_simplify(), ged_xpush(), move_all_func(), nmg_2_vrml(), nmg_break_all_es_on_v(), nmg_break_edge_at_verts(), nmg_break_edges(), nmg_calc_face_plane(), nmg_calc_new_v(), nmg_check_radial_angles(), nmg_ck_geometry(), nmg_ck_vu_ptbl(), nmg_classify_s_vs_s(), nmg_close_shell(), nmg_complex_vertex_solve(), nmg_crackshells(), nmg_cut_lu_into_coplanar_and_non(), nmg_decompose_shell(), nmg_disconnect_shells(), nmg_dup_shell(), nmg_edge_collapse(), nmg_edge_fuse(), nmg_enlist_one_vu(), nmg_enlist_vu(), nmg_extrude_shell(), nmg_face_cutjoin(), nmg_face_rs_init(), nmg_faces_can_be_intersected(), nmg_fcut_face(), nmg_find_isect_faces(), nmg_find_outer_and_void_shells(), nmg_find_path(), nmg_find_zero_length_edges(), nmg_fix_crossed_loops(), nmg_fix_overlapping_loops(), nmg_fuse_inters(), nmg_get_edge_lines(), nmg_get_max_edge_inters(), nmg_hollow_shell(), nmg_intersect_loops_self(), nmg_isect_eu_fu(), nmg_isect_eu_verts(), nmg_isect_fu_jra(), nmg_isect_line2_face2pNEW(), nmg_isect_shell_self(), nmg_kill_anti_loops(), nmg_kill_cracks_at_vertex(), nmg_loop_split_at_touching_jaunt(), nmg_make_connect_faces(), nmg_make_faces_at_vert(), nmg_make_faces_within_tol(), nmg_mark_edges_real(), nmg_mirror_model(), nmg_mk_model_from_region(), nmg_model_face_fuse(), nmg_move_edge_thru_pt(), nmg_onon_fix(), nmg_open_shells_connect(), nmg_plot_open_edges(), nmg_pop_eu(), nmg_pr_inter(), nmg_ptbl_vfuse(), nmg_region_both_vfuse(), nmg_region_v_unique(), nmg_remove_short_eus_inter(), nmg_simple_vertex_solve(), nmg_simplify_inter(), nmg_split_edges_at_pts(), nmg_split_loops_handler(), nmg_translate_face(), nmg_unlist_v(), rt_ars_tess(), rt_cline_tess(), rt_ehy_tess(), rt_extrude_tess(), rt_hyp_tess(), rt_new_rti(), rt_nmg_mirror(), rt_rebuild_overlaps(), rt_submodel_prep(), rt_submodel_shot(), rt_tgc_tess(), Shell_is_arb(), shoot_and_plot(), and tables_new().

#define BU_PTBL_GET (   ptbl,
 
)    ((ptbl)->buffer[(i)])

Definition at line 108 of file ptbl.h.

Referenced by _db_search_full_paths(), _db_walk_dispatcher(), _ged_free_search_set(), _ged_search_localized_obj_list(), comb_lift_region(), create_solid_nodes(), db_comb_mvall(), db_search(), db_search_free(), db_walk_tree(), diff_free_result(), Eplot(), f_above(), fix_halfs(), full_assembly_node(), full_comb_node(), full_region_node(), ged_draw_guts(), ged_erase(), ged_lc(), ged_ls(), ged_nmg_simplify(), ged_results_clear(), ged_results_get(), ged_search(), ged_xpush(), joint_selection(), main(), make_hole_in_prepped_regions(), move_all_func(), nmg_2_vrml(), nmg_assoc_void_shells(), nmg_bot(), nmg_break_all_es_on_v(), nmg_break_edge_at_verts(), nmg_break_edges(), nmg_calc_face_plane(), nmg_calc_new_v(), nmg_check_radial_angles(), nmg_ck_geometry(), nmg_ck_vu_ptbl(), nmg_classify_s_vs_s(), nmg_close_shell(), nmg_complex_vertex_solve(), nmg_crackshells(), nmg_cut_lu_into_coplanar_and_non(), nmg_decompose_shell(), nmg_disconnect_shells(), nmg_edge_collapse(), nmg_edge_fuse(), nmg_edge_g_fuse(), nmg_extrude_shell(), nmg_face_cutjoin(), nmg_face_rs_init(), nmg_faces_can_be_intersected(), nmg_fcut_face(), nmg_find_isect_faces(), nmg_find_outer_and_void_shells(), nmg_find_path(), nmg_find_zero_length_edges(), nmg_fix_crossed_loops(), nmg_fix_overlapping_loops(), nmg_get_edge_lines(), nmg_get_max_edge_inters(), nmg_hollow_shell(), nmg_intersect_loops_self(), nmg_isect_eu_fu(), nmg_isect_eu_verts(), nmg_isect_fu_jra(), nmg_isect_line2_face2pNEW(), nmg_isect_shell_self(), nmg_kill_anti_loops(), nmg_kill_cracks_at_vertex(), nmg_loop_split_at_touching_jaunt(), nmg_make_connect_faces(), nmg_make_faces_at_vert(), nmg_make_faces_within_tol(), nmg_mark_edges_real(), nmg_mirror_model(), nmg_mk_model_from_region(), nmg_model_face_fuse(), nmg_onon_fix(), nmg_open_shells_connect(), nmg_plot_open_edges(), nmg_pop_eu(), nmg_pr_inter(), nmg_ptbl_vfuse(), nmg_region_both_vfuse(), nmg_region_v_unique(), nmg_remove_short_eus_inter(), nmg_simple_vertex_solve(), nmg_simplify_inter(), nmg_split_edges_at_pts(), nmg_split_loops_handler(), nmg_to_arb(), nmg_translate_face(), nmg_unlist_v(), nmg_vertex_fuse(), order_tbl(), print_diff_summary(), rt_ars_tess(), rt_boolfinal(), rt_cell_n_on_ray(), rt_cline_tess(), rt_comb_import5(), rt_cut_optimize_parallel(), rt_default_logoverlap(), rt_default_multioverlap(), rt_ehy_tess(), rt_extrude_tess(), rt_hyp_tess(), rt_init_resource(), rt_nmg_get(), rt_nmg_mirror(), rt_plot_solid(), rt_prep_parallel(), rt_rebuild_overlaps(), rt_reprep(), rt_shootray(), rt_shootray_bundle(), rt_submodel_a_hit(), rt_submodel_shot(), rt_tgc_tess(), rt_unprep(), shoot_and_plot(), subbreps_boolean_tree(), tables_new(), to_rt_gettrees_application(), and unprep_leaf().

#define BU_PTBL_SET (   ptbl,
  i,
  val 
)    ((ptbl)->buffer[(i)] = (long*)(val))
#define BU_PTBL_TEST (   ptbl)    ((ptbl)->l.magic == BU_PTBL_MAGIC)

Definition at line 110 of file ptbl.h.

Referenced by rt_res_pieces_clean().

#define BU_PTBL_CLEAR_I (   _ptbl,
  _i 
)    ((_ptbl)->buffer[(_i)] = (long *)0)

Definition at line 111 of file ptbl.h.

Referenced by rt_default_multioverlap(), and rt_rebuild_overlaps().

#define BU_PTBL_FOR (   ip,
  cast,
  ptbl 
)    ip = cast BU_PTBL_LASTADDR(ptbl); ip >= cast BU_PTBL_BASEADDR(ptbl); ip--

Typedef Documentation

typedef struct bu_ptbl bu_ptbl_t

Definition at line 68 of file ptbl.h.

Function Documentation

void bu_ptbl_init ( struct bu_ptbl b,
size_t  len,
const char *  str 
)

This collection of routines implements a "pointer table" data structure providing a convenient mechanism for managing a collection of pointers to objects. This is useful where the size of the array is not known in advance and may change with time. It's convenient to be able to write code that can say "remember this object", and then later on iterate through the collection of remembered objects.

When combined with the concept of placing "magic numbers" as the first field of each data structure, the pointers to the objects become automatically typed. Initialize struct & get storage for table. Recommend 8 or 64 for initial len.

Definition at line 32 of file ptbl.c.

References bu_ptbl::blen, bu_calloc(), bu_debug, BU_DEBUG_PTBL, BU_LIST_INIT_MAGIC, bu_log(), BU_PTBL_MAGIC, bu_ptbl::buffer, bu_ptbl::end, bu_ptbl::l, and UNLIKELY.

Referenced by _db_search_full_paths(), _rt_find_identical_solid(), bu_ptbl_ins(), check_hitstate(), chull3d_data_init(), chull3d_intermediate_set(), comb_lift_region(), db_lookup_by_attr(), db_open(), db_open_inmem(), db_search_unique_objects(), Eplot(), find_subbreps(), gcv_fastgen4_read(), ged_E(), ged_open(), ged_search(), ged_tables(), ged_xpush(), make_hole_in_prepped_regions(), move_all_func(), nmg_break_e_on_v(), nmg_break_edge_at_verts(), nmg_check_radial_angles(), nmg_ck_geometry(), nmg_ck_vs_in_region(), nmg_close_shell(), nmg_complex_vertex_solve(), nmg_crackshells(), nmg_cut_lu_into_coplanar_and_non(), nmg_decompose_shell(), nmg_dup_shell(), nmg_e_and_v_tabulate(), nmg_edge_fuse(), nmg_edge_g_tabulate(), nmg_edge_tabulate(), nmg_edgeuse_on_line_tabulate(), nmg_edgeuse_tabulate(), nmg_edgeuse_with_eg_tabulate(), nmg_extrude_shell(), nmg_face_tabulate(), nmg_find_outer_and_void_shells(), nmg_find_path(), nmg_find_zero_length_edges(), nmg_fix_normals(), nmg_fix_overlapping_loops(), nmg_get_touching_jaunts(), nmg_gluefaces(), nmg_hollow_shell(), nmg_in_vert(), nmg_intersect_loops_self(), nmg_isect_eu_fu(), nmg_isect_shell_self(), nmg_kill_anti_loops(), nmg_kill_cracks_at_vertex(), nmg_make_faces_within_tol(), nmg_move_edge_thru_pt(), nmg_open_shells_connect(), nmg_plot_open_edges(), nmg_propagate_normals(), nmg_radial_join_eu_NEW(), nmg_split_loops_handler(), nmg_tabulate_face_g_verts(), nmg_translate_face(), nmg_vertex_tabulate(), nmg_vertexuse_normal_tabulate(), rt_alloc_seg_block(), rt_ars_tess(), rt_cline_tess(), rt_comb_import5(), rt_ct_get(), rt_cut_it(), rt_extrude_tess(), rt_get_region_seglist_for_partition(), rt_init_resource(), rt_new_rti(), rt_nmg_get(), rt_rebuild_overlaps(), rt_reprep(), rt_shootray(), rt_shootray_bundle(), rt_tgc_tess(), rt_unprep(), rt_vshootray(), and subbrep_object_init().

Here is the call graph for this function:

int bu_ptbl_ins ( struct bu_ptbl b,
long *  p 
)

Append/Insert a (long *) item to/into the table.

Referenced by _db_search_full_paths(), _ged_results_add(), _rt_gettree_leaf(), add_solid(), chull3d_collect_hull_pnts(), comb_lift_region(), db_alloc_directory_block(), db_comb_mvall(), db_diff(), db_diff3(), db_fullpath_list_subtree(), db_lookup_by_attr(), db_search(), diff3_dp_attr_add(), diff3_dp_attr_chgd(), diff3_dp_attr_conflict(), diff3_dp_attr_del(), diff3_dp_attr_unchgd(), diff_dp_attr_add(), diff_dp_attr_chgd(), diff_dp_attr_del(), diff_dp_attr_unchgd(), f_print(), find_subbreps(), ged_search(), ged_xpush(), joint_selection(), make_hole_in_prepped_regions(), move_all_func(), nmg_assoc_void_shells(), nmg_break_e_on_v(), nmg_break_edge_at_verts(), nmg_ck_vu_ptbl(), nmg_close_shell(), nmg_cut_lu_into_coplanar_and_non(), nmg_decompose_shell(), nmg_dup_shell(), nmg_extrude_shell(), nmg_find_isect_faces(), nmg_find_outer_and_void_shells(), nmg_find_path(), nmg_fix_normals(), nmg_follow_free_edges_to_vertex(), nmg_get_edge_lines(), nmg_get_touching_jaunts(), nmg_gluefaces(), nmg_hollow_shell(), nmg_intersect_loops_self(), nmg_isect_shell_self(), nmg_kill_anti_loops(), nmg_make_faces_within_tol(), nmg_open_shells_connect(), nmg_split_loops_handler(), rt_alloc_seg_block(), rt_ars_tess(), rt_brep_find_selections(), rt_cline_tess(), rt_comb_import5(), rt_ct_get(), rt_cut_one_axis(), rt_extrude_tess(), rt_find_paths(), rt_joint_find_selections(), rt_rebuild_overlaps(), rt_solid_bitfinder(), rt_tgc_tess(), subbrep_split(), and tables_new().

int bu_ptbl_locate ( const struct bu_ptbl b,
const long *  p 
)

locate a (long *) in an existing table

Returns
index of first matching element in array, if found
-1 if not found

We do this a great deal, so make it go as fast as possible. this is the biggest argument I can make for changing to an ordered list. Someday....

Referenced by comb_flatten(), comb_lift_region(), common_topo(), gauss_render(), nmg_2_vrml(), nmg_bot(), nmg_ck_vu_ptbl(), nmg_enlist_one_vu(), nmg_enlist_vu(), nmg_find_path(), nmg_fix_normals(), nmg_follow_free_edges_to_vertex(), nmg_make_faces_within_tol(), and rt_nmg_get().

void bu_ptbl_zero ( struct bu_ptbl b,
const long *  p 
)

Set all occurrences of "p" in the table to zero. This is different than deleting them.

Referenced by nmg_edge_collapse(), and rt_default_multioverlap().

int bu_ptbl_ins_unique ( struct bu_ptbl b,
long *  p 
)

Append item to table, if not already present. Unique insert.

Returns
index of first matching element in array, if found. (table unchanged)
-1 if table extended to hold new element

We do this a great deal, so make it go as fast as possible. this is the biggest argument I can make for changing to an ordered list. Someday....

Referenced by build_topo_list(), comb_lift_region(), db_clone_dbi(), db_search_unique_objects(), f_print(), nmg_decompose_shell(), nmg_edgeuse_with_eg_tabulate(), nmg_enlist_one_vu(), nmg_enlist_vu(), nmg_isect_2colinear_edge2p(), nmg_isect_eu_eu(), nmg_isect_eu_fu(), nmg_isect_eu_verts(), nmg_isect_fu_jra(), nmg_isect_line2_face2pNEW(), nmg_kill_cracks_at_vertex(), nmg_radial_build_list(), nmg_tabulate_face_g_verts(), rt_boolfinal(), rt_boolweave(), rt_get_region_seglist_for_partition(), rt_shootray(), rt_weave0seg(), unprep_leaf(), and visitor().

int bu_ptbl_rm ( struct bu_ptbl b,
const long *  p 
)

Remove all occurrences of an item from a table

Returns
Number of copies of 'p' that were removed from the table.
0 if none found.

we go backwards down the table looking for occurrences of p to delete. We do it backwards to reduce the amount of data moved when there is more than one occurrence of p in the table. A pittance savings, unless you're doing a lot of it.

Referenced by comb_lift_region(), db_close_client(), db_comb_mvall(), joint_selection(), move_all_func(), nmg_break_edge_at_verts(), nmg_close_shell(), nmg_cut_lu_into_coplanar_and_non(), nmg_decompose_shell(), nmg_follow_free_edges_to_vertex(), nmg_fuse_inters(), nmg_kill_anti_loops(), nmg_onon_fix(), nmg_open_shells_connect(), nmg_pop_eu(), rt_boolfinal(), rt_default_multioverlap(), rt_shootray(), and unprep_leaf().

void bu_ptbl_cat ( struct bu_ptbl dest,
const struct bu_ptbl src 
)

Catenate one table onto end of another. There is no checking for duplication.

Definition at line 183 of file ptbl.c.

References bu_ptbl::blen, BU_CK_PTBL, bu_debug, BU_DEBUG_PTBL, bu_log(), bu_realloc(), bu_ptbl::buffer, bu_ptbl::end, and UNLIKELY.

Here is the call graph for this function:

void bu_ptbl_cat_uniq ( struct bu_ptbl dest,
const struct bu_ptbl src 
)

Catenate one table onto end of another, ensuring that no entry is duplicated. Duplications between multiple items in 'src' are not caught. The search is a nasty n**2 one. The tables are expected to be short.

Definition at line 203 of file ptbl.c.

References bu_ptbl::blen, BU_CK_PTBL, bu_debug, BU_DEBUG_PTBL, bu_log(), BU_PTBL_FOR, bu_ptbl_ins_unique(), bu_realloc(), bu_ptbl::buffer, bu_ptbl::end, and UNLIKELY.

Referenced by rt_boolfinal(), and rt_rebuild_overlaps().

Here is the call graph for this function:

void bu_ptbl_free ( struct bu_ptbl b)

Deallocate dynamic buffer associated with a table, and render this table unusable without a subsequent bu_ptbl_init().

Definition at line 226 of file ptbl.c.

References BU_CK_PTBL, bu_debug, BU_DEBUG_PTBL, bu_free(), bu_log(), bu_ptbl::buffer, memset(), and UNLIKELY.

Referenced by _db_search_full_paths(), _ged_free_search_set(), _ged_search_localized_obj_list(), check_hitstate(), chull3d_data_free(), chull3d_intermediate_set(), comb_lift_region(), db_close(), db_search_free(), diff_free_result(), free_etree(), ged_draw_guts(), ged_E(), ged_erase(), ged_ls(), ged_nmg_collapse(), ged_nmg_simplify(), ged_results_free(), ged_search(), ged_tables(), ged_xpush(), joint_selection(), main(), move_all_func(), nmg_bot(), nmg_break_all_es_on_v(), nmg_break_e_on_v(), nmg_break_edge_at_verts(), nmg_break_edges(), nmg_break_eg_on_v(), nmg_brep_face(), nmg_calc_face_plane(), nmg_check_radial_angles(), nmg_ck_geometry(), nmg_ck_vs_in_region(), nmg_classify_s_vs_s(), nmg_close_shell(), nmg_complex_vertex_solve(), nmg_crackshells(), nmg_cut_lu_into_coplanar_and_non(), nmg_decompose_shell(), nmg_dup_shell(), nmg_edge_collapse(), nmg_edge_fuse(), nmg_edge_g_fuse(), nmg_extrude_shell(), nmg_faces_can_be_intersected(), nmg_fcut_face(), nmg_find_eg_on_line(), nmg_find_outer_and_void_shells(), nmg_find_zero_length_edges(), nmg_fix_normals(), nmg_fix_overlapping_loops(), nmg_gluefaces(), nmg_hollow_shell(), nmg_in_vert(), nmg_intersect_loops_self(), nmg_isect_eu_fu(), nmg_isect_fu_jra(), nmg_isect_line2_face2pNEW(), nmg_isect_shell_self(), nmg_kill_anti_loops(), nmg_kill_cracks_at_vertex(), nmg_loop_split_at_touching_jaunt(), nmg_make_faces_within_tol(), nmg_mark_edges_real(), nmg_mirror_model(), nmg_mk_model_from_region(), nmg_model_face_fuse(), nmg_move_edge_thru_pt(), nmg_open_shells_connect(), nmg_plot_open_edges(), nmg_propagate_normals(), nmg_radial_join_eu_NEW(), nmg_region_v_unique(), nmg_s_radial_check(), nmg_s_radial_harmonize(), nmg_split_loops_handler(), nmg_to_arb(), nmg_translate_face(), nmg_vertex_fuse(), rt_clean_resource_basic(), rt_clean_resource_complete(), rt_cline_tess(), rt_comb_import5(), rt_cut_clean(), rt_ehy_tess(), rt_extrude_tess(), rt_fastgen_vol_vol_overlap(), rt_free_rti(), rt_free_soltab(), rt_hyp_tess(), rt_nmg_get(), rt_nmg_mirror(), rt_rebuild_overlaps(), rt_reprep(), rt_res_pieces_clean(), rt_tgc_tess(), rt_unprep(), Shell_is_arb(), and subbrep_object_free().

Here is the call graph for this function:

void bu_pr_ptbl ( const char *  title,
const struct bu_ptbl tbl,
int  verbose 
)

Print a bu_ptbl array for inspection.

Definition at line 241 of file ptbl.c.

References BU_CK_PTBL, bu_identify_magic(), bu_log(), BU_PTBL_BASEADDR, BU_PTBL_LASTADDR, and bu_ptbl::end.

Referenced by rt_pr_soltab(), and rt_prep_parallel().

Here is the call graph for this function:

void bu_ptbl_trunc ( struct bu_ptbl tbl,
int  end 
)

truncate a bu_ptbl

Definition at line 267 of file ptbl.c.

References BU_CK_PTBL, and bu_ptbl::end.

Referenced by rt_comb_import5(), rt_rebuild_overlaps(), and tables_new().