#include "common.h"
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <strings.h>
#include "machine.h"
#include "vmath.h"
#include "raytrace.h"
#include "nmg.h"
#include "plot3.h"
#include "./debug.h"
Include dependency graph for cut.c:
Go to the source code of this file.
Data Structures | |
struct | cmp_pair |
Defines | |
#define | AXIS(depth) ((depth)%3) |
#define | CMP(_p1, _p2, _memb, _ind) |
#define | USE_HIST 0 |
#define | PIECE_BLOCK 512 |
#define | PIECE_BLOCK 512 |
Functions | |
HIDDEN int rt_ck_overlap | BU_ARGS ((const vect_t min, const vect_t max, const struct soltab *stp, const struct rt_i *rtip)) |
HIDDEN int rt_ct_box | BU_ARGS ((struct rt_i *rtip, union cutter *cutp, int axis, double where, int force)) |
HIDDEN void rt_ct_optim | BU_ARGS ((struct rt_i *rtip, union cutter *cutp, int depth)) |
HIDDEN void rt_ct_free | BU_ARGS ((struct rt_i *rtip, union cutter *cutp)) |
HIDDEN void rt_ct_release_storage | BU_ARGS ((union cutter *cutp)) |
HIDDEN union cutter *rt_ct_get | BU_ARGS ((struct rt_i *rtip)) |
void rt_plot_cut | BU_ARGS ((FILE *fp, struct rt_i *rtip, union cutter *cutp, int lvl)) |
void | rt_pr_cut_info (const struct rt_i *rtip, const char *str) |
HIDDEN int | rt_ct_old_assess (register union cutter *, register int, double *, double *) |
cutter * | rt_cut_one_axis (struct bu_ptbl *boxes, struct rt_i *rtip, int axis, int min, int max, struct nugridnode *nuginfop) |
void | rt_cut_optimize_parallel (int cpu, genptr_t arg) |
HIDDEN int rt_projXmin_comp | BU_ARGS ((const void *p1, const void *p2)) |
HIDDEN int | rt_projXmin_comp (const void *p1, const void *p2) |
HIDDEN int | rt_projXmax_comp (const void *p1, const void *p2) |
HIDDEN int | rt_projYmin_comp (const void *p1, const void *p2) |
HIDDEN int | rt_projYmax_comp (const void *p1, const void *p2) |
HIDDEN int | rt_projZmin_comp (const void *p1, const void *p2) |
HIDDEN int | rt_projZmax_comp (const void *p1, const void *p2) |
void | rt_nugrid_cut (register struct nugridnode *nugnp, register struct boxnode *fromp, struct rt_i *rtip, int just_collect_info, int depth) |
int | rt_split_mostly_empty_cells (struct rt_i *rtip, union cutter *cutp) |
void | rt_cut_it (register struct rt_i *rtip, int ncpu) |
void | rt_cut_extend (register union cutter *cutp, struct soltab *stp, const struct rt_i *rtip) |
HIDDEN int | rt_ct_plan (struct rt_i *rtip, union cutter *cutp, int depth) |
HIDDEN int | rt_ct_assess (register union cutter *cutp, register int axis, double *where_p, double *offcenter_p) |
HIDDEN int | rt_ct_populate_box (union cutter *outp, const union cutter *inp, struct rt_i *rtip) |
HIDDEN int | rt_ct_box (struct rt_i *rtip, register union cutter *cutp, register int axis, double where, int force) |
HIDDEN int | rt_ck_overlap (register const fastf_t *min, register const fastf_t *max, register const struct soltab *stp, register const struct rt_i *rtip) |
HIDDEN int | rt_ct_piececount (const union cutter *cutp) |
HIDDEN void | rt_ct_optim (struct rt_i *rtip, register union cutter *cutp, int depth) |
HIDDEN union cutter * | rt_ct_get (struct rt_i *rtip) |
HIDDEN void | rt_ct_release_storage (register union cutter *cutp) |
HIDDEN void | rt_ct_free (struct rt_i *rtip, register union cutter *cutp) |
void | rt_pr_cut (register const union cutter *cutp, int lvl) |
void | rt_fr_cut (struct rt_i *rtip, register union cutter *cutp) |
HIDDEN void | rt_plot_cut (FILE *fp, struct rt_i *rtip, register union cutter *cutp, int lvl) |
HIDDEN void | rt_ct_measure (register struct rt_i *rtip, register union cutter *cutp, int depth) |
void | rt_cut_clean (struct rt_i *rtip) |
void | remove_from_bsp (struct soltab *stp, union cutter *cutp, struct bn_tol *tol) |
void | insert_in_bsp (struct soltab *stp, union cutter *cutp) |
void | fill_out_bsp (struct rt_i *rtip, union cutter *cutp, struct resource *resp, fastf_t bb[6]) |
Variables | |
HIDDEN struct cmp_pair | pairs [] |
Call tree for default path through the code: rt_cut_it() rt_cut_extend() for all solids in model rt_ct_optim() rt_ct_old_assess() rt_ct_box() rt_ct_populate_box() rt_ck_overlap()
Author - Michael John Muuss
Source - SECAD/VLD Computing Consortium, Bldg 394 The U. S. Army Ballistic Research Laboratory Aberdeen Proving Ground, Maryland 21005-5066
Definition in file cut.c.
|
Definition at line 97 of file cut.c. Referenced by rt_ct_optim(). |
|
Value: (*(const struct soltab **)(_p1))->_memb[_ind] < \ (*(const struct soltab **)(_p2))->_memb[_ind] ? -1 : \ (*(const struct soltab **)(_p1))->_memb[_ind] > \ (*(const struct soltab **)(_p2))->_memb[_ind] ? 1 : 0 Definition at line 193 of file cut.c. Referenced by rt_projXmax_comp(), rt_projXmin_comp(), rt_projYmax_comp(), rt_projYmin_comp(), rt_projZmax_comp(), and rt_projZmin_comp(). |
|
|
|
Definition at line 2359 of file cut.c. Referenced by insert_in_bsp(), and rt_ct_populate_box(). |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Definition at line 1623 of file cut.c. References bu_log(), MAX_FASTF, RT_G_DEBUG, and val. Referenced by rt_ct_plan(). Here is the call graph for this function: ![]() |
|
Definition at line 111 of file cut.c. References cutter::bn, cutter::boxnode::bn_len, cutter::boxnode::bn_list, cutter::boxnode::bn_max, cutter::boxnode::bn_maxlen, cutter::boxnode::bn_min, cutter::boxnode::bn_type, bu_calloc(), BU_CK_PTBL, bu_malloc(), bu_ptbl_ins(), cutter::cn, cutter::cutnode::cn_axis, cutter::cutnode::cn_l, cutter::cutnode::cn_point, cutter::cutnode::cn_r, cutter::cutnode::cn_type, CUT_BOXNODE, CUT_CUTNODE, rt_i::mdl_max, rt_i::mdl_min, rt_i::nsolids, RT_CHECK_SOLTAB, rt_ck_overlap(), RT_CK_RTI, RT_VISIT_ALL_SOLTABS_END, RT_VISIT_ALL_SOLTABS_START, and VMOVE. Referenced by rt_cut_it(). Here is the call graph for this function: ![]() |
|
Definition at line 171 of file cut.c. References BU_PTBL_GET, bu_semaphore_acquire(), bu_semaphore_release(), bu_ptbl::end, RT_CK_RTI, rt_ct_optim(), RT_SEM_WORKER, rt_i::rti_cuts_waiting, and Z. Referenced by rt_cut_it(). Here is the call graph for this function: ![]() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Definition at line 260 of file cut.c. References bu_hist_init(), bu_log(), CUT_NUGRIDNODE, DEBUG_CUT, int, rt_bomb(), RT_G_DEBUG, RT_NU_GFACTOR_DEFAULT, rt_i::rti_nu_gfactor, and rt_i::rti_nugrid_dimlimit. Referenced by rt_cut_it(). Here is the call graph for this function: ![]() |
|
Definition at line 714 of file cut.c. References cutter::bn, cutter::boxnode::bn_len, cutter::boxnode::bn_list, cutter::boxnode::bn_piecelen, cutter::boxnode::bn_piecelist, cutter::cn, cutter::cutnode::cn_l, cutter::cutnode::cn_r, CUT_BOXNODE, CUT_CUTNODE, cutter::cut_type, bound_rpp::max, MAX_FASTF, bound_rpp::min, rt_piecelist::npieces, rt_piecelist::pieces, soltab::st_max, soltab::st_min, soltab::st_piece_rpps, rt_piecelist::stp, VMAX, VMIN, VREVERSE, and VSETALL. Referenced by rt_cut_it(). |
|
Definition at line 836 of file cut.c. References cutter::bn, cutter::boxnode::bn_len, cutter::boxnode::bn_list, cutter::boxnode::bn_max, cutter::boxnode::bn_maxlen, cutter::boxnode::bn_min, bu_free(), BU_GETUNION, bu_log(), bu_malloc(), bu_parallel(), bu_ptbl_init(), CUT_BOXNODE, CUT_NUGRIDNODE, cutter::cut_type, DEBUG_CUTDETAIL, head, INFINITY, int, rt_bomb(), rt_ct_optim(), rt_cut_extend(), rt_cut_one_axis(), rt_cut_optimize_parallel(), rt_fr_cut(), RT_G_DEBUG, rt_nugrid_cut(), RT_PART_NUBSPT, RT_PART_NUGRID, rt_pr_cut(), rt_split_mostly_empty_cells(), RT_VISIT_ALL_SOLTABS_END, RT_VISIT_ALL_SOLTABS_START, soltab::st_aradius, VMOVE, and Y. Here is the call graph for this function: ![]() |
|
Definition at line 998 of file cut.c. References BU_ASSERT, bu_log(), bu_malloc(), bu_realloc(), CUT_BOXNODE, rt_piecelist::magic, rt_piecelist::npieces, rt_i::nsolids, NULL, rt_piecelist::pieces, RT_CK_RTI, RT_CK_SOLTAB, RT_G_DEBUG, RT_PIECELIST_MAGIC, rt_i::rti_cutlen, soltab::st_npieces, and rt_piecelist::stp. Here is the call graph for this function: ![]() |
|
Definition at line 1073 of file cut.c. References RT_CK_RTI, rt_ct_assess(), rt_ct_old_assess(), status, X, and Z. Referenced by rt_ct_optim(). Here is the call graph for this function: ![]() |
|
Definition at line 1132 of file cut.c. Referenced by rt_ct_plan(). |
|
Definition at line 1217 of file cut.c. References cutter::bn, cutter::boxnode::bn_len, cutter::boxnode::bn_list, cutter::boxnode::bn_max, cutter::boxnode::bn_maxlen, cutter::boxnode::bn_maxpiecelen, cutter::boxnode::bn_min, cutter::boxnode::bn_piecelen, cutter::boxnode::bn_piecelist, bu_free(), bu_malloc(), bu_realloc(), rt_piecelist::magic, bound_rpp::max, bound_rpp::min, rt_piecelist::npieces, NULL, PIECE_BLOCK, rt_piecelist::pieces, rt_ck_overlap(), RT_CK_PIECELIST, RT_CK_SOLTAB, RT_PIECELIST_MAGIC, rt_i::rti_tol, soltab::st_piece_rpps, rt_piecelist::stp, and V3RPP_OVERLAP_TOL. Referenced by rt_ct_box(). Here is the call graph for this function: ![]() |
|
Definition at line 1373 of file cut.c. References cutter::bn, cutter::boxnode::bn_max, cutter::boxnode::bn_min, cutter::boxnode::bn_type, bu_log(), cutter::cn, cutter::cutnode::cn_r, CUT_BOXNODE, CUT_CUTNODE, RT_CK_RTI, rt_ct_free(), rt_ct_get(), rt_ct_populate_box(), rt_ct_release_storage(), RT_G_DEBUG, and VMOVE. Here is the call graph for this function: ![]() |
|
Definition at line 1446 of file cut.c. References bu_log(), DEBUG_BOXING, INFINITY, RT_CHECK_SOLTAB, RT_CLASSIFY_OUTSIDE, RT_G_DEBUG, V3RPP_DISJOINT, and VPRINT. Referenced by rt_ct_populate_box(), and rt_cut_one_axis(). Here is the call graph for this function: ![]() |
|
Definition at line 1482 of file cut.c. References cutter::bn, cutter::boxnode::bn_len, cutter::boxnode::bn_piecelen, cutter::boxnode::bn_piecelist, BU_ASSERT, CUT_BOXNODE, cutter::cut_type, and rt_piecelist::npieces. Referenced by rt_ct_measure(), and rt_ct_optim(). |
|
Definition at line 1509 of file cut.c. References AXIS, bu_log(), CUT_BOXNODE, CUT_CUTNODE, rt_ct_piececount(), rt_ct_plan(), RT_G_DEBUG, rt_i::rti_cutdepth, X, and Z. Referenced by rt_cut_it(), and rt_cut_optimize_parallel(). Here is the call graph for this function: ![]() |
|
Definition at line 1738 of file cut.c. References bu_malloc(), bu_malloc_len_roundup(), bu_ptbl_init(), bu_ptbl_ins(), bu_semaphore_acquire(), bu_semaphore_release(), cutter::cut_forw, CUTTER_NULL, bu_ptbl::l, bu_list::magic, RT_CK_RTI, RT_SEM_MODEL, rt_i::rti_busy_cutter_nodes, and rt_i::rti_CutFree. Referenced by rt_ct_box(). Here is the call graph for this function: ![]() |
|
Definition at line 1775 of file cut.c. References bu_free(), CUT_BOXNODE, CUT_CUTNODE, and NULL. Referenced by rt_ct_box(), rt_ct_free(), and rt_fr_cut(). Here is the call graph for this function: ![]() |
|
Definition at line 1829 of file cut.c. References bu_semaphore_acquire(), bu_semaphore_release(), RT_CK_RTI, rt_ct_release_storage(), RT_SEM_MODEL, and rt_i::rti_CutFree. Referenced by rt_ct_box(), and rt_fr_cut(). Here is the call graph for this function: ![]() |
|
Definition at line 1848 of file cut.c. References bu_log(), and CUTTER_NULL. Here is the call graph for this function: ![]() |
|
Definition at line 1944 of file cut.c. References bu_log(), CUT_BOXNODE, CUT_NUGRIDNODE, cutter::cut_type, CUTTER_NULL, RT_CK_RTI, rt_ct_free(), rt_ct_release_storage(), rt_fr_cut(), X, Y, and Z. Here is the call graph for this function: ![]() |
|
Definition at line 1995 of file cut.c. References CUT_BOXNODE, CUT_NUGRIDNODE, cutter::cut_type, cutter::nugridnode::nu_grid, cutter::nugn, pd_3line(), pl_color(), RT_CK_RTI, X, Y, and Z. Here is the call graph for this function: ![]() |
|
Definition at line 2148 of file cut.c. References BU_HIST_TALLY, bu_log(), CUT_BOXNODE, CUT_NUGRIDNODE, cutter::nugridnode::nu_grid, cutter::nugn, RT_CK_RTI, rt_ct_piececount(), X, Y, and Z. Here is the call graph for this function: ![]() |
|
|