Collaboration diagram for librt geometry, raytracing:
![]() |
Files | |
file | light.h |
Declarations related to light sources. | |
file | mater.h |
Information about mapping between region IDs and material information (colors and outboard database "handles"). | |
file | photonmap.h |
Declarations related to Photon Mapping. | |
file | raytrace.h |
file | solid.h |
file | bomb.c |
file | bundle.c |
file | dg_obj.c |
file | fixpt.h |
file | global.c |
file | htbl.c |
file | importFg4Section.c |
file | many.c |
file | mater.c |
file | memalloc.c |
file | mkbundle.c |
file | nirt.c |
file | oslo_calc.c |
file | parse.c |
file | plane.h |
file | pmalloc.c |
file | pr.c |
file | qray.c |
file | regionfix.c |
file | roots.c |
file | rt_dspline.c |
file | spectrum.c |
file | storage.c |
file | tcl.c |
file | track.c |
file | tree.c |
file | vdraw.c |
file | view_obj.c |
file | vlist.c |
Modules | |
Database IO | |
Primitives | |
Ray Tracing | |
Timer | |
Fortran | |
Data Structures | |
struct | light_pt |
struct | light_specific |
struct | mater |
struct | Photon |
struct | PSN |
struct | PhotonSearch |
struct | NearestPhotons |
struct | PNode |
struct | PhotonMap |
struct | IrradNode |
struct | IrradCache |
struct | rt_tess_tol |
struct | rt_db_internal |
struct | db_full_path |
struct | xray |
struct | hit |
struct | curvature |
struct | uvcoord |
struct | seg |
struct | bound_rpp |
struct | soltab |
struct | mater_info |
struct | region |
struct | partition |
union | cutter |
struct | mem_map |
struct | db_i |
struct | directory |
struct | rt_comb_internal |
struct | rt_binunif_internal |
struct | db_tree_state |
struct | db_traverse |
struct | combined_tree_state |
union | tree |
struct | rt_tree_array |
struct | rt_wdb |
struct | vd_curve |
struct | run_rt |
struct | dg_qray_color |
struct | dg_qray_fmt |
struct | dg_obj |
struct | view_obj |
struct | anim_mat |
struct | rt_anim_property |
struct | rt_anim_color |
struct | animate |
struct | rt_htbl |
struct | rt_piecestate |
struct | rt_piecelist |
struct | resource |
struct | rt_reprep_obj_list |
struct | pixel_ext |
struct | application |
This structure is the only parameter to rt_shootray(). The entire structure should be zeroed (e.g. by memset(,0,) ) before it is used the first time. More... | |
struct | rt_g |
struct | rt_i |
struct | command_tab |
struct | rt_point_labels |
struct | rt_pt_node |
struct | line_seg |
line segment More... | |
struct | carc_seg |
circular arc segment More... | |
struct | nurb_seg |
NURB curve segment. More... | |
struct | bezier_seg |
Bezier curve segment. More... | |
struct | rt_functab |
struct | rt_shootray_status |
struct | hitmiss |
struct | ray_data |
struct | nmg_radial |
struct | nmg_inter_struct |
struct | solid |
struct | dg_client_data |
struct | dg_rt_client_data |
struct | rtcheck |
struct | rtcheck_output |
Defines | |
#define | SEEN_LIGHT_H seen |
#define | OPTICAL_EXPORT |
#define | LPT_MAGIC 0x327649 |
#define | SOME_LIGHT_SAMPLES 128 |
#define | LIGHT_NULL ((struct light_specific *)0) |
#define | LIGHT_MAGIC 0xdbddbdb7 |
#define | RT_CK_LIGHT(_p) BU_CKMAG((_p), LIGHT_MAGIC, "light_specific") |
#define | RT_EXPORT |
#define | MATER_NULL ((struct mater *)0) |
#define | MATER_NO_ADDR (-1L) |
invalid mt_daddr | |
#define | PM_MAPS 4 |
#define | PM_GLOBAL 0 |
#define | PM_CAUSTIC 1 |
#define | PM_SHADOW 2 |
#define | PM_IMPORTANCE 3 |
#define | PM_SEM RT_SEM_LAST-1 |
#define | PM_SEM_INIT RT_SEM_LAST |
#define | RAYTRACE_H seen |
#define | RT_EXPORT |
#define | RAYTRACE_H_VERSION "@(#)$Header: /cvsroot/brlcad/brlcad/include/raytrace.h,v 14.45 2006/09/18 05:24:07 lbutler Exp $ (BRL)" |
#define | DEBUG_OFF 0 |
No debugging. | |
#define | DEBUG_ALLRAYS 0x00000001 |
1 Print calls to rt_shootray() | |
#define | DEBUG_ALLHITS 0x00000002 |
2 Print partitions passed to a_hit() | |
#define | DEBUG_SHOOT 0x00000004 |
3 Info about rt_shootray() processing | |
#define | DEBUG_INSTANCE 0x00000008 |
4 regionid instance revectoring | |
#define | DEBUG_DB 0x00000010 |
5 Database debugging | |
#define | DEBUG_SOLIDS 0x00000020 |
6 Print prep'ed solids | |
#define | DEBUG_REGIONS 0x00000040 |
7 Print regions & boolean trees | |
#define | DEBUG_ARB8 0x00000080 |
8 Print voluminus ARB8 details | |
#define | DEBUG_SPLINE 0x00000100 |
9 Splines | |
#define | DEBUG_ANIM 0x00000200 |
10 Animation | |
#define | DEBUG_ANIM_FULL 0x00000400 |
11 Animation matrices | |
#define | DEBUG_VOL 0x00000800 |
12 Volume & opaque Binary solid | |
#define | DEBUG_ROOTS 0x00001000 |
13 Print rootfinder details | |
#define | DEBUG_PARTITION 0x00002000 |
14 Info about bool_weave() | |
#define | DEBUG_CUT 0x00004000 |
15 Print space cutting statistics | |
#define | DEBUG_BOXING 0x00008000 |
16 Object/box checking details | |
#define | DEBUG_MEM 0x00010000 |
17 -->> BU_DEBUG_MEM_LOG | |
#define | DEBUG_MEM_FULL 0x00020000 |
18 -->> BU_DEBUG_MEM_CHECK | |
#define | DEBUG_FDIFF 0x00040000 |
19 bool/fdiff debugging | |
#define | DEBUG_PARALLEL 0x00080000 |
20 -->> BU_DEBUG_PARALLEL | |
#define | DEBUG_CUTDETAIL 0x00100000 |
21 Print space cutting details | |
#define | DEBUG_TREEWALK 0x00200000 |
22 Database tree traversal | |
#define | DEBUG_TESTING 0x00400000 |
23 One-shot debugging flag | |
#define | DEBUG_ADVANCE 0x00800000 |
24 Cell-to-cell space partitioning | |
#define | DEBUG_MATH 0x01000000 |
25 nmg math routines | |
#define | DEBUG_EBM 0x02000000 |
26 Extruded bit-map solids | |
#define | DEBUG_HF 0x04000000 |
27 Height Field solids | |
#define | DEBUG_PLOTSOLIDS 0x40000000 |
31 plot all solids | |
#define | DEBUG_PLOTBOX 0x80000000 |
32 Plot(3) bounding boxes and cuts | |
#define | DEBUG_FORMAT "\020\040PLOTBOX\\037PLOTSOLIDS\\033HF\032EBM\031MATH\030ADVANCE\\027TESTING\026TREEWALK\025CUTDETAIL\024PARALLEL\023FDIFF\022MEM_FULL\\021MEM\020BOXING\017CUTTING\016PARTITION\015ROOTS\014VOL\\013ANIM_FULL\012ANIM\011SPLINE\010ARB8\7REGIONS\6SOLIDS\5DB\\4INSTANCE\3SHOOT\2ALLHITS\1ALLRAYS" |
#define | INFINITY (1.0e40) |
#define | RT_BADNUM(n) (!((n) >= -INFINITY && (n) <= INFINITY)) |
#define | RT_BADVEC(v) (RT_BADNUM((v)[X]) || RT_BADNUM((v)[Y]) || RT_BADNUM((v)[Z])) |
#define | RT_LEN_TOL (1.0e-8) |
#define | RT_DOT_TOL (0.001) |
#define | RT_PCOEF_TOL (1.0e-10) |
#define | RT_TESS_TOL_MAGIC 0xb9090dab |
#define | RT_CK_TESS_TOL(_p) BU_CKMAG(_p, RT_TESS_TOL_MAGIC, "rt_tess_tol") |
#define | idb_type idb_minor_type |
#define | RT_DB_INTERNAL_MAGIC 0x0dbbd867 |
#define | RT_INIT_DB_INTERNAL(_p) |
#define | RT_CK_DB_INTERNAL(_p) BU_CKMAG(_p, RT_DB_INTERNAL_MAGIC, "rt_db_internal") |
#define | DB_FULL_PATH_POP(_pp) {(_pp)->fp_len--;} |
#define | DB_FULL_PATH_CUR_DIR(_pp) ((_pp)->fp_names[(_pp)->fp_len-1]) |
#define | DB_FULL_PATH_GET(_pp, _i) ((_pp)->fp_names[(_i)]) |
#define | DB_FULL_PATH_MAGIC 0x64626670 |
#define | RT_CK_FULL_PATH(_p) BU_CKMAG(_p, DB_FULL_PATH_MAGIC, "db_full_path") |
#define | RAY_NULL ((struct xray *)0) |
#define | RT_RAY_MAGIC 0x78726179 |
"xray" | |
#define | RT_CK_RAY(_p) BU_CKMAG(_p,RT_RAY_MAGIC,"struct xray"); |
#define | HIT_NULL ((struct hit *)0) |
#define | RT_HIT_MAGIC 0x20686974 |
" hit" | |
#define | RT_CK_HIT(_p) BU_CKMAG(_p,RT_HIT_MAGIC,"struct hit") |
#define | RT_HIT_NORM(_hitp, _stp, _unused) |
#define | RT_HIT_NORMAL(_normal, _hitp, _stp, _unused, _flipflag) |
#define | CURVE_NULL ((struct curvature *)0) |
#define | RT_CURVATURE(_curvp, _hitp, _flipflag, _stp) |
#define | RT_HIT_UVCOORD(ap, _stp, _hitp, uvp) |
#define | RT_SEG_NULL ((struct seg *)0) |
#define | RT_SEG_MAGIC 0x98bcdef1 |
#define | RT_CHECK_SEG(_p) BU_CKMAG(_p, RT_SEG_MAGIC, "struct seg") |
#define | RT_CK_SEG(_p) BU_CKMAG(_p, RT_SEG_MAGIC, "struct seg") |
#define | RT_GET_SEG(p, res) |
#define | RT_FREE_SEG(p, res) |
#define | RT_FREE_SEG_LIST(_segheadp, _res) |
#define | st_name st_dp->d_namep |
#define | RT_SOLTAB_NULL ((struct soltab *)0) |
#define | SOLTAB_NULL RT_SOLTAB_NULL |
backwards compat | |
#define | RT_SOLTAB_MAGIC 0x92bfcde0 |
l.magic | |
#define | RT_SOLTAB2_MAGIC 0x92bfcde2 |
l2.magic | |
#define | RT_CHECK_SOLTAB(_p) BU_CKMAG( _p, RT_SOLTAB_MAGIC, "struct soltab") |
#define | RT_CK_SOLTAB(_p) BU_CKMAG( _p, RT_SOLTAB_MAGIC, "struct soltab") |
#define | ID_NULL 0 |
Unused. | |
#define | ID_TOR 1 |
Toroid. | |
#define | ID_TGC 2 |
Generalized Truncated General Cone. | |
#define | ID_ELL 3 |
Ellipsoid. | |
#define | ID_ARB8 4 |
Generalized ARB. V + 7 vectors. | |
#define | ID_ARS 5 |
ARS. | |
#define | ID_HALF 6 |
Half-space. | |
#define | ID_REC 7 |
Right Elliptical Cylinder [TGC special]. | |
#define | ID_POLY 8 |
Polygonal facted object. | |
#define | ID_BSPLINE 9 |
B-spline object. | |
#define | ID_SPH 10 |
Sphere. | |
#define | ID_NMG 11 |
n-Manifold Geometry solid | |
#define | ID_EBM 12 |
Extruded bitmap solid. | |
#define | ID_VOL 13 |
3-D Volume | |
#define | ID_ARBN 14 |
ARB with N faces. | |
#define | ID_PIPE 15 |
Pipe (wire) solid. | |
#define | ID_PARTICLE 16 |
Particle system solid. | |
#define | ID_RPC 17 |
Right Parabolic Cylinder. | |
#define | ID_RHC 18 |
Right Hyperbolic Cylinder. | |
#define | ID_EPA 19 |
Elliptical Paraboloid. | |
#define | ID_EHY 20 |
Elliptical Hyperboloid. | |
#define | ID_ETO 21 |
Elliptical Torus. | |
#define | ID_GRIP 22 |
Pseudo Solid Grip. | |
#define | ID_JOINT 23 |
Pseudo Solid/Region Joint. | |
#define | ID_HF 24 |
Height Field. | |
#define | ID_DSP 25 |
Displacement map. | |
#define | ID_SKETCH 26 |
2D sketch | |
#define | ID_EXTRUDE 27 |
Solid of extrusion. | |
#define | ID_SUBMODEL 28 |
Instanced submodel. | |
#define | ID_CLINE 29 |
FASTGEN4 CLINE solid. | |
#define | ID_BOT 30 |
Bag o' triangles. | |
#define | ID_MAX_SOLID 37 |
Maximum defined ID_xxx for solids. | |
#define | ID_COMBINATION 31 |
Combination Record. | |
#define | ID_BINEXPM 32 |
Experimental binary. | |
#define | ID_BINUNIF 33 |
Uniform-array binary. | |
#define | ID_BINMIME 34 |
MIME-typed binary. | |
#define | ID_SUPERELL 35 |
Superquadratic ellipsoid. | |
#define | ID_METABALL 36 |
Metaball. | |
#define | ID_MAXIMUM 37 |
Maximum defined ID_xxx value. | |
#define | REGION_NULL ((struct region *)0) |
#define | RT_REGION_MAGIC 0xdffb8001 |
#define | RT_CK_REGION(_p) BU_CKMAG(_p,RT_REGION_MAGIC,"struct region") |
#define | PT_NULL ((struct partition *)0) |
#define | PT_MAGIC 0x87687681 |
#define | PT_HD_MAGIC 0x87687680 |
#define | RT_CHECK_PT(_p) RT_CK_PT(_p) |
compat | |
#define | RT_CK_PT(_p) BU_CKMAG(_p,PT_MAGIC, "struct partition") |
#define | RT_CK_PARTITION(_p) BU_CKMAG(_p,PT_MAGIC, "struct partition") |
#define | RT_CK_PT_HD(_p) BU_CKMAG(_p,PT_HD_MAGIC, "struct partition list head") |
#define | RT_PT_MIDDLE_START pt_inseg |
1st elem to copy | |
#define | RT_PT_MIDDLE_END pt_seglist.l.magic |
copy up to this elem (non-inclusive) | |
#define | RT_PT_MIDDLE_LEN(p) (((char *)&(p)->RT_PT_MIDDLE_END) - ((char *)&(p)->RT_PT_MIDDLE_START)) |
#define | RT_DUP_PT(ip, new, old, res) |
#define | GET_PT_INIT(ip, p, res) |
#define | GET_PT(ip, p, res) |
#define | FREE_PT(p, res) |
#define | RT_FREE_PT_LIST(_headp, _res) |
#define | INSERT_PT(_new, _old) BU_LIST_INSERT((struct bu_list *)_old,(struct bu_list *)_new) |
#define | APPEND_PT(_new, _old) BU_LIST_APPEND((struct bu_list *)_old,(struct bu_list *)_new) |
#define | DEQUEUE_PT(_cur) BU_LIST_DEQUEUE((struct bu_list *)_cur) |
#define | CUTTER_NULL ((union cutter *)0) |
#define | MAP_NULL ((struct mem_map *) 0) |
#define | RT_DBNHASH 1024 |
size of hash table | |
#define | RT_DBHASH(sum) ((unsigned)(sum) & ((RT_DBNHASH)-1)) |
#define | DBI_NULL ((struct db_i *)0) |
#define | DBI_MAGIC 0x57204381 |
#define | RT_CHECK_DBI(_p) BU_CKMAG(_p,DBI_MAGIC,"struct db_i") |
#define | RT_CHECK_DBI_TCL(_interp, _p) BU_CKMAG_TCL(_interp,_p,DBI_MAGIC,"struct db_i") |
#define | RT_CK_DBI(_p) RT_CHECK_DBI(_p) |
#define | RT_CK_DBI_TCL(_interp, _p) RT_CHECK_DBI_TCL(_interp,_p) |
#define | DIR_NULL ((struct directory *)0) |
#define | RT_DIR_MAGIC 0x05551212 |
Directory assistance. | |
#define | RT_CK_DIR(_dp) BU_CKMAG(_dp, RT_DIR_MAGIC, "(librt)directory") |
#define | d_addr d_un.file_offset |
#define | RT_DIR_PHONY_ADDR (-1L) |
Special marker for d_addr field. | |
#define | DIR_SOLID 0x1 |
this name is a solid | |
#define | DIR_COMB 0x2 |
combination | |
#define | DIR_REGION 0x4 |
region | |
#define | DIR_HIDDEN 0x8 |
object name is hidden | |
#define | DIR_NON_GEOM 0x10 |
object is not geometry (e.g. binary object) | |
#define | DIR_USED 0x80 |
One bit, used similar to d_nref. | |
#define | RT_DIR_INMEM 0x100 |
object is in memory (only) Args to db_lookup() | |
#define | LOOKUP_NOISY 1 |
#define | LOOKUP_QUIET 0 |
#define | FOR_ALL_DIRECTORY_START(_dp, _dbip) |
#define | FOR_ALL_DIRECTORY_END }}} |
#define | RT_DIR_SET_NAMEP(_dp, _name) |
#define | RT_DIR_FREE_NAMEP(_dp) |
#define | RT_GET_DIRECTORY(_p, _res) |
#define | RT_COMB_MAGIC 0x436f6d49 |
"ComI" | |
#define | RT_CHECK_COMB(_p) BU_CKMAG( _p , RT_COMB_MAGIC , "rt_comb_internal" ) |
#define | RT_CK_COMB(_p) RT_CHECK_COMB(_p) |
#define | RT_CHECK_COMB_TCL(_interp, _p) BU_CKMAG_TCL(interp,_p,RT_COMB_MAGIC, "rt_comb_internal" ) |
#define | RT_CK_COMB_TCL(_interp, _p) RT_CHECK_COMB_TCL(_interp,_p) |
#define | RT_BINUNIF_INTERNAL_MAGIC 0x42696e55 |
#define | RT_CHECK_BINUNIF(_p) BU_CKMAG( _p , RT_BINUNIF_INTERNAL_MAGIC , "rt_binunif_internal" ) |
#define | RT_CK_BINUNIF(_p) RT_CHECK_BINUNIF(_p) |
#define | RT_CHECK_BINUNIF_TCL(_interp, _p) BU_CKMAG_TCL(interp,_p,RT_BINUNIF_MAGIC, "rt_binunif_internal" ) |
#define | RT_CK_BINUNIF_TCL(_interp, _p) RT_CHECK_BINUNIF_TCL(_interp,_p) |
#define | TS_SOFAR_MINUS 1 |
Subtraction encountered above. | |
#define | TS_SOFAR_INTER 2 |
Intersection encountered above. | |
#define | TS_SOFAR_REGION 4 |
Region encountered above. | |
#define | RT_DBTS_MAGIC 0x64627473 |
"dbts" | |
#define | RT_CK_DBTS(_p) BU_CKMAG(_p, RT_DBTS_MAGIC, "db_tree_state") |
#define | RT_DBTR_MAGIC 0x64627472 |
"dbtr" | |
#define | RT_INIT_DBTR(_p) |
#define | RT_CK_DBTR(_p) BU_CKMAG(_p, RT_DBTR_MAGIC, "db_traverse") |
#define | RT_CTS_MAGIC 0x98989123 |
#define | RT_CK_CTS(_p) BU_CKMAG(_p, RT_CTS_MAGIC, "combined_tree_state") |
#define | MKOP(x) (x) |
#define | OP_SOLID MKOP(1) |
Leaf: tr_stp -> solid. | |
#define | OP_UNION MKOP(2) |
Binary: L union R. | |
#define | OP_INTERSECT MKOP(3) |
Binary: L intersect R. | |
#define | OP_SUBTRACT MKOP(4) |
Binary: L subtract R. | |
#define | OP_XOR MKOP(5) |
Binary: L xor R, not both. | |
#define | OP_REGION MKOP(6) |
Leaf: tr_stp -> combined_tree_state. | |
#define | OP_NOP MKOP(7) |
Leaf with no effect. | |
#define | OP_NOT MKOP(8) |
Unary: not L. | |
#define | OP_GUARD MKOP(9) |
Unary: not L, or else! | |
#define | OP_XNOP MKOP(10) |
Unary: L, mark region. | |
#define | OP_NMG_TESS MKOP(11) |
Leaf: tr_stp -> nmgregion. | |
#define | OP_DB_LEAF MKOP(12) |
Leaf of combination, db fmt. | |
#define | OP_FREE MKOP(13) |
Unary: L has free chain. | |
#define | tr_op tr_a.tu_op |
#define | tr_regionp tr_a.tu_regionp |
#define | TREE_NULL ((union tree *)0) |
#define | RT_TREE_MAGIC 0x91191191 |
#define | RT_CK_TREE(_p) BU_CKMAG(_p, RT_TREE_MAGIC, "union tree") |
#define | TREE_LIST_NULL ((struct tree_list *)0) |
#define | RT_MAXARGS 9000 |
#define | RT_MAXLINE 10240 |
#define | RT_WDB_MAGIC 0x5f576462 |
#define | RT_CHECK_WDB(_p) BU_CKMAG(_p,RT_WDB_MAGIC,"rt_wdb") |
#define | RT_CHECK_WDB_TCL(_interp, _p) BU_CKMAG_TCL(_interp,_p,RT_WDB_MAGIC,"rt_wdb") |
#define | RT_CK_WDB(_p) RT_CHECK_WDB(_p) |
#define | RT_CK_WDB_TCL(_interp, _p) RT_CHECK_WDB_TCL(_interp,_p) |
#define | RT_WDB_NULL ((struct rt_wdb *)NULL) |
#define | RT_WDB_TYPE_DB_DISK 2 |
#define | RT_WDB_TYPE_DB_DISK_APPEND_ONLY 3 |
#define | RT_WDB_TYPE_DB_INMEM 4 |
#define | RT_WDB_TYPE_DB_INMEM_APPEND_ONLY 5 |
#define | RT_VDRW_PREFIX "_VDRW" |
#define | RT_VDRW_PREFIX_LEN 6 |
#define | RT_VDRW_MAXNAME 31 |
#define | RT_VDRW_DEF_COLOR 0xffff00 |
#define | VD_CURVE_NULL ((struct vd_curve *)NULL) |
#define | RT_DGO_NULL ((struct dg_obj *)NULL) |
#define | RT_VIEW_OBJ_NULL ((struct view_obj *)NULL) |
#define | RT_MINVIEWSIZE 0.0001 |
#define | RT_MINVIEWSCALE 0.00005 |
#define | ANM_RSTACK 1 |
Replace stacked matrix. | |
#define | ANM_RARC 2 |
Replace arc matrix. | |
#define | ANM_LMUL 3 |
Left (root side) mul. | |
#define | ANM_RMUL 4 |
Right (leaf side) mul. | |
#define | ANM_RBOTH 5 |
Replace stack, arc=Idn. | |
#define | RT_ANP_REPLACE 1 |
Replace shader string. | |
#define | RT_ANP_APPEND 2 |
Append to shader string. | |
#define | RT_ANP_MAGIC 0x41507270 |
'APrp' | |
#define | RT_CK_ANP(_p) BU_CKMAG((_p), RT_ANP_MAGIC, "rt_anim_property") |
#define | RT_AN_MATRIX 1 |
Matrix animation. | |
#define | RT_AN_MATERIAL 2 |
Material property anim. | |
#define | RT_AN_COLOR 3 |
Material color anim. | |
#define | RT_AN_SOLID 4 |
Solid parameter anim. | |
#define | RT_AN_TEMPERATURE 5 |
Region temperature. | |
#define | ANIM_NULL ((struct animate *)0) |
#define | ANIMATE_MAGIC 0x414e4963 |
#define | RT_CK_ANIMATE(_p) BU_CKMAG((_p), ANIMATE_MAGIC, "animate") |
#define | RT_HTBL_MAGIC 0x6874626c |
"htbl" | |
#define | RT_CK_HTBL(_p) BU_CKMAG(_p, RT_HTBL_MAGIC, "rt_htbl") |
#define | RT_PIECESTATE_MAGIC 0x70637374 |
pcst | |
#define | RT_CK_PIECESTATE(_p) BU_CKMAG(_p, RT_PIECESTATE_MAGIC, "struct rt_piecestate") |
#define | RT_PIECELIST_MAGIC 0x70636c73 |
pcls | |
#define | RT_CK_PIECELIST(_p) BU_CKMAG(_p, RT_PIECELIST_MAGIC, "struct rt_piecelist") |
#define | RT_DEFAULT_MINPIECES 32 |
#define | RT_DEFAULT_TRIS_PER_PIECE 4 |
#define | RESOURCE_NULL ((struct resource *)0) |
#define | RESOURCE_MAGIC 0x83651835 |
#define | RT_CK_RESOURCE(_p) BU_CKMAG(_p, RESOURCE_MAGIC, "struct resource") |
#define | RT_GET_TREE(_tp, _res) |
#define | RT_FREE_TREE(_tp, _res) |
#define | CORNER_PTS 4 |
#define | PIXEL_EXT_MAGIC 0x50787400 |
#define | BU_CK_PIXEL_EXT(_p) BU_CKMAG(_p, PIXEL_EXT_MAGIC, "struct pixel_ext") |
#define | RT_AFN_NULL ((int (*)())0) |
#define | RT_AP_MAGIC 0x4170706c |
"Appl" | |
#define | RT_CK_AP(_p) BU_CKMAG(_p,RT_AP_MAGIC,"struct application") |
#define | RT_CK_APPLICATION(_p) BU_CKMAG(_p,RT_AP_MAGIC,"struct application") |
#define | RT_CK_AP_TCL(_interp, _p) BU_CKMAG_TCL(_interp,_p,RT_AP_MAGIC,"struct application") |
#define | RT_APPLICATION_INIT(_p) |
#define | RT_AP_CHECK(_ap) |
#define | RT_G_DEBUG rt_g.debug |
#define | RT_SEM_TREE0 (BU_SEM_LAST) |
#define | RT_SEM_TREE1 (RT_SEM_TREE0+1) |
#define | RT_SEM_TREE2 (RT_SEM_TREE1+1) |
#define | RT_SEM_TREE3 (RT_SEM_TREE2+1) |
#define | RT_SEM_WORKER (RT_SEM_TREE3+1) |
#define | RT_SEM_STATS (RT_SEM_WORKER+1) |
#define | RT_SEM_RESULTS (RT_SEM_STATS+1) |
#define | RT_SEM_MODEL (RT_SEM_RESULTS+1) |
#define | RT_SEM_LAST (RT_SEM_MODEL+1) |
Call bu_semaphore_init( RT_SEM_LAST );. | |
#define | RT_NU_GFACTOR_DEFAULT 1.5 |
see rt_cut_it() for a description of this | |
#define | RTI_NULL ((struct rt_i *)0) |
#define | RTI_MAGIC 0x99101658 |
magic # for integrity check | |
#define | RT_CHECK_RTI(_p) BU_CKMAG(_p,RTI_MAGIC,"struct rt_i") |
#define | RT_CHECK_RTI_TCL(_interp, _p) BU_CKMAG_TCL(_interp,_p,RTI_MAGIC,"struct rt_i") |
#define | RT_CK_RTI(_p) RT_CHECK_RTI(_p) |
#define | RT_CK_RTI_TCL(_interp, _p) RT_CHECK_RTI_TCL(_interp,_p) |
#define | RT_PART_NUBSPT 0 |
#define | RT_PART_NUGRID 1 |
#define | RT_VISIT_ALL_SOLTABS_START(_s, _rti) |
#define | RT_VISIT_ALL_SOLTABS_END } } |
#define | RT_GET_VLIST(p) BN_GET_VLIST(&rt_g.rtg_vlfree, p) |
#define | RT_FREE_VLIST(hd) BN_FREE_VLIST(&rt_g.rtg_vlfree, hd) |
#define | RT_ADD_VLIST(hd, pnt, draw) BN_ADD_VLIST(&rt_g.rtg_vlfree,hd,pnt,draw) |
#define | V2PRINT(a, b) bu_log("%s (%g, %g)\n", a, (b)[0], (b)[1] ); |
#define | VPRINT(a, b) bu_log("%s (%g, %g, %g)\n", a, (b)[0], (b)[1], (b)[2]) |
#define | HPRINT(a, b) bu_log("%s (%g, %g, %g, %g)\n", a, (b)[0], (b)[1], (b)[2], (b)[3]) |
#define | CURVE_LSEG_MAGIC 0x6c736567 |
lseg | |
#define | CURVE_CARC_MAGIC 0x63617263 |
carc | |
#define | CURVE_NURB_MAGIC 0x6e757262 |
nurb | |
#define | CURVE_BEZIER_MAGIC 0x62657a69 |
bezi | |
#define | RT_FUNCTAB_MAGIC 0x46754e63 |
#define | RT_CK_FUNCTAB(_p) BU_CKMAG(_p, RT_FUNCTAB_MAGIC, "functab" ); |
#define | RT_CLASSIFY_UNIMPLEMENTED BN_CLASSIFY_UNIMPLEMENTED |
#define | RT_CLASSIFY_INSIDE BN_CLASSIFY_INSIDE |
#define | RT_CLASSIFY_OVERLAPPING BN_CLASSIFY_OVERLAPPING |
#define | RT_CLASSIFY_OUTSIDE BN_CLASSIFY_OUTSIDE |
#define | NUGRID_T_SETUP(_ax, _cval, _cno) |
#define | NUGRID_T_ADV(_ax, _cno) |
#define | BACKING_DIST (-2.0) |
mm to look behind start point | |
#define | OFFSET_DIST 0.01 |
mm to advance point into box | |
#define | FAST_NMG 1 |
#define | NMG_HIT_LIST 0 |
#define | NMG_MISS_LIST 1 |
#define | NMG_RT_HIT_MAGIC 0x48697400 |
"Hit" | |
#define | NMG_RT_HIT_SUB_MAGIC 0x48696d00 |
"Him" | |
#define | NMG_RT_MISS_MAGIC 0x4d697300 |
"Mis" | |
#define | HMG_INBOUND_STATE(_hm) (((_hm)->in_out & 0x0f0) >> 4) |
#define | HMG_OUTBOUND_STATE(_hm) ((_hm)->in_out & 0x0f) |
#define | NMG_RAY_STATE_INSIDE 1 |
#define | NMG_RAY_STATE_ON 2 |
#define | NMG_RAY_STATE_OUTSIDE 4 |
#define | NMG_RAY_STATE_ANY 8 |
#define | HMG_HIT_IN_IN 0x11 |
hit internal structure | |
#define | HMG_HIT_IN_OUT 0x14 |
breaking out | |
#define | HMG_HIT_OUT_IN 0x41 |
breaking in | |
#define | HMG_HIT_OUT_OUT 0x44 |
edge/vertex graze | |
#define | HMG_HIT_IN_ON 0x12 |
#define | HMG_HIT_ON_IN 0x21 |
#define | HMG_HIT_ON_ON 0x22 |
#define | HMG_HIT_OUT_ON 0x42 |
#define | HMG_HIT_ON_OUT 0x24 |
#define | HMG_HIT_ANY_ANY 0x88 |
hit on non-3-mainifold | |
#define | NMG_VERT_ENTER 1 |
#define | NMG_VERT_ENTER_LEAVE 0 |
#define | NMG_VERT_LEAVE -1 |
#define | NMG_VERT_UNKNOWN -2 |
#define | NMG_HITMISS_SEG_IN 0x696e00 |
"in" | |
#define | NMG_HITMISS_SEG_OUT 0x6f757400 |
"out" | |
#define | NMG_CK_HITMISS(hm) |
#define | NMG_CK_HITMISS_LISTS(a_hit, rd) |
#define | NMG_PCA_EDGE 1 |
#define | NMG_PCA_EDGE_VERTEX 2 |
#define | NMG_PCA_VERTEX 3 |
#define | NMG_RAY_DATA_MAGIC 0x1651771 |
#define | NMG_CK_RD(_rd) NMG_CKMAG(_rd, NMG_RAY_DATA_MAGIC, "ray data"); |
#define | GET_HITMISS(_p, _ap) |
#define | NMG_FREE_HITLIST(_p, _ap) |
#define | HIT 1 |
a hit on a face | |
#define | MISS 0 |
a miss on the face | |
#define | nmg_rt_bomb(rd, str) |
#define | NMG_RADIAL_MAGIC 0x52614421 |
RaD! | |
#define | NMG_CK_RADIAL(_p) NMG_CKMAG(_p, NMG_RADIAL_MAGIC, "nmg_radial") |
#define | NMG_INTER_STRUCT_MAGIC 0x99912120 |
#define | NMG_CK_INTER_STRUCT(_p) NMG_CKMAG(_p, NMG_INTER_STRUCT_MAGIC, "nmg_inter_struct") |
#define | rt_fwrite_internal5 +++__deprecated_rt_fwrite_internal5__+++ |
#define | db_ident(a, b, c) +++error+++ |
#define | nmg_moveeu(a, b) nmg_je(a,b) |
#define | nmg_mev(_v, _u) nmg_me((_v), (struct vertex *)NULL, (_u)) |
#define | UP 0 |
#define | DOWN 1 |
#define | SOLID_NULL ((struct solid *)0) |
#define | GET_SOLID(p, fp) |
#define | LAST_SOLID(_sp) DB_FULL_PATH_CUR_DIR( &(_sp)->s_fullpath ) |
#define | FIRST_SOLID(_sp) ((_sp)->s_fullpath.fp_names[0]) |
#define | FREE_SOLID(p, fp) |
#define | FOR_ALL_SOLIDS(p, hp) for(BU_LIST_FOR(p,solid,hp)) |
#define | FOR_REST_OF_SOLIDS(p1, p2, hp) for(BU_LIST_PFOR(p1,p2,solid,hp)) |
#define | BU_LIST_PFOR(p1, p2, structure, hp) |
#define | DGO_WIREFRAME 0 |
#define | DGO_SHADED_MODE_BOTS 1 |
#define | DGO_SHADED_MODE_ALL 2 |
#define | DGO_BOOL_EVAL 3 |
#define | DGO_CHECK_WDBP_NULL(_dgop, _interp) |
#define | PLATE_MODE 1 |
#define | VOLUME_MODE 2 |
#define | POS_CENTER 1 |
#define | POS_FRONT 2 |
#define | END_OPEN 1 |
#define | END_CLOSED 2 |
#define | GRID_BLOCK 256 |
#define | CLINE 'l' |
#define | CHEX1 'p' |
#define | CHEX2 'b' |
#define | CTRI 't' |
#define | CQUAD 'q' |
#define | CCONE1 'c' |
#define | CCONE2 'd' |
#define | CCONE3 'e' |
#define | CSPHERE 's' |
#define | NMG 'n' |
#define | BOT 't' |
#define | COMPSPLT 'h' |
#define | FIND_NEWLINE(_cp, _eosFlag) |
#define | AMAX(i, j) ( (i) > (j) ? (i) : (j) ) |
#define | AMIN(i, j) ( (i) < (j) ? (i) : (j) ) |
Functions | |
OPTICAL_EXPORT void | light_cleanup (void) |
OPTICAL_EXPORT void | light_maker (int num, mat_t v2m) |
OPTICAL_EXPORT int | light_init (struct application *ap) |
OPTICAL_EXPORT void | light_obs (struct application *ap, struct shadework *swp, int have) |
RT_EXPORT void | rt_insert_color (struct mater *newp) |
OPTICAL_EXPORT void | BuildPhotonMap (struct application *ap, point_t eye_pos, int cpus, int width, int height, int Hypersample, int GlobalPhotons, double CausticsPercent, int Rays, double AngularTolerance, int RandomSeed, int ImportanceMapping, int IrradianceHypersampling, int VisualizeIrradiance, double LightIntensity, char pmfile[255]) |
OPTICAL_EXPORT void | IrradianceEstimate (struct application *ap, vect_t irrad, point_t pos, vect_t normal, fastf_t rad, int np) |
RT_EXPORT struct rt_i * | rt_dirbuild (const char *filename, char *buf, int len) |
RT_EXPORT struct rt_i * | rt_new_rti (struct db_i *dbip) |
RT_EXPORT void | rt_free_rti (struct rt_i *rtip) |
RT_EXPORT void | rt_prep (struct rt_i *rtip) |
RT_EXPORT void | rt_prep_parallel (struct rt_i *rtip, int ncpu) |
RT_EXPORT int | rt_overlap_quietly (struct application *ap, struct partition *pp, struct region *reg1, struct region *reg2, struct partition *pheadp) |
RT_EXPORT void | rt_default_multioverlap (struct application *ap, struct partition *pp, struct bu_ptbl *regiontable, struct partition *InputHdp) |
RT_EXPORT void | rt_silent_logoverlap (struct application *ap, const struct partition *pp, const struct bu_ptbl *regiontable, const struct partition *InputHdp) |
RT_EXPORT void | rt_default_logoverlap (struct application *ap, const struct partition *pp, const struct bu_ptbl *regiontable, const struct partition *InputHdp) |
RT_EXPORT int | rt_shootray (struct application *ap) |
RT_EXPORT const char * | rt_basename (const char *str) |
RT_EXPORT void | rt_free_soltab (struct soltab *stp) |
RT_EXPORT int | rt_gettree (struct rt_i *rtip, const char *node) |
RT_EXPORT int | rt_gettrees (struct rt_i *rtip, int argc, const char **argv, int ncpus) |
RT_EXPORT int | rt_gettrees_and_attrs (struct rt_i *rtip, const char **attrs, int argc, const char **argv, int ncpus) |
RT_EXPORT int | rt_gettrees_muves (struct rt_i *rtip, const char **attrs, int argc, const char **argv, int ncpus) |
RT_EXPORT int | rt_load_attrs (struct rt_i *rtip, char **attrs) |
RT_EXPORT void | rt_pr_seg (const struct seg *segp) |
RT_EXPORT void | rt_pr_partitions (const struct rt_i *rtip, const struct partition *phead, const char *title) |
RT_EXPORT struct soltab * | rt_find_solid (const struct rt_i *rtip, const char *name) |
RT_EXPORT void | rt_prep_timer (void) |
RT_EXPORT double | rt_get_timer (struct bu_vls *vp, double *elapsed) |
RT_EXPORT double | rt_read_timer (char *str, int len) |
int | rt_plot_solid (FILE *fp, struct rt_i *rtip, const struct soltab *stp, struct resource *resp) |
RT_EXPORT void | rt_clean (struct rt_i *rtip) |
RT_EXPORT int | rt_del_regtree (struct rt_i *rtip, struct region *delregp, struct resource *resp) |
RT_EXPORT void | rt_ck (struct rt_i *rtip) |
RT_EXPORT void | rt_pr_library_version () |
RT_EXPORT int | rt_matrix_transform (struct rt_db_internal *output, const mat_t matrix, struct rt_db_internal *input, int free, struct db_i *dbip, struct resource *resource) |
RT_EXPORT void | rt_boolweave (struct seg *out_hd, struct seg *in_hd, struct partition *PartHeadp, struct application *ap) |
RT_EXPORT int | rt_boolfinal (struct partition *InputHdp, struct partition *FinalHdp, fastf_t startdist, fastf_t enddist, struct bu_ptbl *regionbits, struct application *ap, const struct bu_bitv *solidbits) |
RT_EXPORT void | rt_grow_boolstack (struct resource *res) |
RT_EXPORT int | rt_fdiff (double a, double b) |
RT_EXPORT double | rt_reldiff (double a, double b) |
RT_EXPORT void | rt_pr_soltab (const struct soltab *stp) |
RT_EXPORT void | rt_pr_region (const struct region *rp) |
RT_EXPORT void | rt_pr_tree (const union tree *tp, int lvl) |
RT_EXPORT void | rt_pr_tree_val (const union tree *tp, const struct partition *partp, int pr_name, int lvl) |
RT_EXPORT void | rt_pr_pt (const struct rt_i *rtip, const struct partition *pp) |
RT_EXPORT void | rt_pr_hit (const char *str, const struct hit *hitp) |
RT_EXPORT void | rt_get_seg (struct resource *res) |
RT_EXPORT void | rt_cut_it (struct rt_i *rtip, int ncpu) |
RT_EXPORT void | rt_pr_cut (const union cutter *cutp, int lvl) |
RT_EXPORT void | rt_fr_cut (struct rt_i *rtip, union cutter *cutp) |
RT_EXPORT void | rt_rebuild_overlaps (struct partition *PartHdp, struct application *ap, int rebuild_fastgen_plates_only) |
RT_EXPORT int | rt_partition_len (const struct partition *partheadp) |
RT_EXPORT int | rt_defoverlap (struct application *ap, struct partition *pp, struct region *reg1, struct region *reg2, struct partition *pheadp) |
RT_EXPORT void | rt_region_color_map (struct region *regp) |
RT_EXPORT void | rt_color_addrec (int low, int hi, int r, int g, int b, long addr) |
RT_EXPORT void | rt_color_free () |
RT_EXPORT void | rt_pr_cut_info (const struct rt_i *rtip, const char *str) |
RT_EXPORT void | remove_from_bsp (struct soltab *stp, union cutter *cutp, struct bn_tol *tol) |
RT_EXPORT void | insert_in_bsp (struct soltab *stp, union cutter *cutp) |
RT_EXPORT void | fill_out_bsp (struct rt_i *rtip, union cutter *cutp, struct resource *resp, fastf_t bb[6]) |
RT_EXPORT void | rt_cut_extend (union cutter *cutp, struct soltab *stp, const struct rt_i *rtip) |
RT_EXPORT int | rt_rpp_region (struct rt_i *rtip, const char *reg_name, fastf_t *min_rpp, fastf_t *max_rpp) |
RT_EXPORT void | rt_bomb (const char *s) |
RT_EXPORT int | rt_in_rpp (struct xray *rp, const fastf_t *invdir, const fastf_t *min, const fastf_t *max) |
RT_EXPORT const union cutter * | rt_cell_n_on_ray (struct application *ap, int n) |
RT_EXPORT void | rt_cut_clean (struct rt_i *rtip) |
RT_EXPORT char * | rt_read_cmd (FILE *fp) |
RT_EXPORT int | rt_split_cmd (char **argv, int lim, char *lp) |
RT_EXPORT int | rt_do_cmd (struct rt_i *rtip, const char *ilp, const struct command_tab *tp) |
RT_EXPORT struct rt_wdb * | wdb_fopen (const char *filename) |
RT_EXPORT struct rt_wdb * | wdb_fopen_v (const char *filename, int version) |
RT_EXPORT struct rt_wdb * | wdb_dbopen (struct db_i *dbip, int mode) |
RT_EXPORT int | wdb_import (struct rt_wdb *wdbp, struct rt_db_internal *internp, const char *name, const mat_t mat) |
RT_EXPORT int | wdb_export_external (struct rt_wdb *wdbp, struct bu_external *ep, const char *name, int flags, unsigned char minor_type) |
RT_EXPORT int | wdb_put_internal (struct rt_wdb *wdbp, const char *name, struct rt_db_internal *ip, double local2mm) |
RT_EXPORT int | wdb_export (struct rt_wdb *wdbp, const char *name, genptr_t gp, int id, double local2mm) |
RT_EXPORT void | wdb_close (struct rt_wdb *wdbp) |
RT_EXPORT struct animate * | db_parse_1anim (struct db_i *dbip, int argc, const char **argv) |
RT_EXPORT int | db_parse_anim (struct db_i *dbip, int argc, const char **argv) |
RT_EXPORT int | db_add_anim (struct db_i *dbip, struct animate *anp, int root) |
RT_EXPORT int | db_do_anim (struct animate *anp, mat_t stack, mat_t arc, struct mater_info *materp) |
RT_EXPORT void | db_free_anim (struct db_i *dbip) |
RT_EXPORT void | db_write_anim (FILE *fop, struct animate *anp) |
RT_EXPORT void | db_free_1anim (struct animate *anp) |
RT_EXPORT void | db_full_path_init (struct db_full_path *pathp) |
RT_EXPORT void | db_add_node_to_full_path (struct db_full_path *pp, struct directory *dp) |
RT_EXPORT void | db_dup_full_path (struct db_full_path *newp, const struct db_full_path *oldp) |
RT_EXPORT void | db_extend_full_path (struct db_full_path *pathp, int incr) |
RT_EXPORT void | db_append_full_path (struct db_full_path *dest, const struct db_full_path *src) |
RT_EXPORT void | db_dup_path_tail (struct db_full_path *newp, const struct db_full_path *oldp, int start) |
RT_EXPORT char * | db_path_to_string (const struct db_full_path *pp) |
RT_EXPORT void | db_path_to_vls (struct bu_vls *str, const struct db_full_path *pp) |
RT_EXPORT void | db_pr_full_path (const char *msg, const struct db_full_path *pathp) |
RT_EXPORT int | db_string_to_path (struct db_full_path *pp, const struct db_i *dbip, const char *str) |
RT_EXPORT int | db_argv_to_path (register struct db_full_path *pp, struct db_i *dbip, int argc, const char *const *argv) |
RT_EXPORT void | db_free_full_path (struct db_full_path *pp) |
RT_EXPORT int | db_identical_full_paths (const struct db_full_path *a, const struct db_full_path *b) |
RT_EXPORT int | db_full_path_subset (const struct db_full_path *a, const struct db_full_path *b) |
RT_EXPORT int | db_full_path_search (const struct db_full_path *a, const struct directory *dp) |
RT_EXPORT void | db_sync (struct db_i *dbip) |
RT_EXPORT struct db_i * | db_open (const char *name, const char *mode) |
RT_EXPORT struct db_i * | db_create (const char *name, int version) |
RT_EXPORT void | db_close_client (struct db_i *dbip, long *client) |
RT_EXPORT void | db_close (struct db_i *dbip) |
RT_EXPORT int | db_dump (struct rt_wdb *wdbp, struct db_i *dbip) |
RT_EXPORT struct db_i * | db_clone_dbi (struct db_i *dbip, long *client) |
RT_EXPORT int | db5_write_free (struct db_i *dbip, struct directory *dp, long length) |
RT_EXPORT int | db5_realloc (struct db_i *dbip, struct directory *dp, struct bu_external *ep) |
RT_EXPORT void | db5_export_object3 (struct bu_external *out, int dli, const char *name, const unsigned char hidden, const struct bu_external *attrib, const struct bu_external *body, int major, int minor, int a_zzz, int b_zzz) |
RT_EXPORT int | rt_db_cvt_to_external5 (struct bu_external *ext, const char *name, const struct rt_db_internal *ip, double conv2mm, struct db_i *dbip, struct resource *resp, const int major) |
RT_EXPORT int | db_wrap_v5_external (struct bu_external *ep, const char *name) |
RT_EXPORT int | rt_db_get_internal5 (struct rt_db_internal *ip, const struct directory *dp, const struct db_i *dbip, const mat_t mat, struct resource *resp) |
RT_EXPORT int | rt_db_put_internal5 (struct directory *dp, struct db_i *dbip, struct rt_db_internal *ip, struct resource *resp, const int major) |
RT_EXPORT void | db5_make_free_object_hdr (struct bu_external *ep, long length) |
RT_EXPORT void | db5_make_free_object (struct bu_external *ep, long length) |
RT_EXPORT int | db5_decode_signed (long *lenp, const unsigned char *cp, int format) |
RT_EXPORT int | db5_decode_length (long *lenp, const unsigned char *cp, int format) |
RT_EXPORT int | db5_select_length_encoding (long len) |
RT_EXPORT void | db5_import_color_table (char *cp) |
RT_EXPORT int | db5_import_attributes (struct bu_attribute_value_set *avs, const struct bu_external *ap) |
RT_EXPORT void | db5_export_attributes (struct bu_external *ap, const struct bu_attribute_value_set *avs) |
RT_EXPORT int | db5_get_raw_internal_fp (struct db5_raw_internal *rip, FILE *fp) |
RT_EXPORT int | db5_header_is_valid (const unsigned char *hp) |
RT_EXPORT int | db5_fwrite_ident (FILE *, const char *, double) |
RT_EXPORT int | db5_put_color_table (struct db_i *dbip) |
RT_EXPORT int | db5_update_ident (struct db_i *dbip, const char *title, double local2mm) |
RT_EXPORT int | db_put_external5 (struct bu_external *ep, struct directory *dp, struct db_i *dbip) |
RT_EXPORT int | db5_update_attributes (struct directory *dp, struct bu_attribute_value_set *avsp, struct db_i *dbip) |
RT_EXPORT int | db5_update_attribute (const char *obj_name, const char *aname, const char *value, struct db_i *dbip) |
RT_EXPORT int | db5_replace_attributes (struct directory *dp, struct bu_attribute_value_set *avsp, struct db_i *dbip) |
RT_EXPORT int | db5_get_attributes (const struct db_i *dbip, struct bu_attribute_value_set *avs, const struct directory *dp) |
RT_EXPORT int | db_tree_nleaves (const union tree *tp) |
RT_EXPORT struct rt_tree_array * | db_flatten_tree (struct rt_tree_array *rt_tree_array, union tree *tp, int op, int avail, struct resource *resp) |
RT_EXPORT int | rt_comb_import4 (struct rt_db_internal *ip, const struct bu_external *ep, const mat_t matrix, const struct db_i *dbip, struct resource *resp) |
RT_EXPORT int | rt_comb_export4 (struct bu_external *ep, const struct rt_db_internal *ip, double local2mm, const struct db_i *dbip, struct resource *resp) |
RT_EXPORT void | db_tree_flatten_describe (struct bu_vls *vls, const union tree *tp, int indented, int lvl, double mm2local, struct resource *resp) |
RT_EXPORT void | db_tree_describe (struct bu_vls *vls, const union tree *tp, int indented, int lvl, double mm2local) |
RT_EXPORT void | db_comb_describe (struct bu_vls *str, const struct rt_comb_internal *comb, int verbose, double mm2local, struct resource *resp) |
RT_EXPORT void | rt_comb_ifree (struct rt_db_internal *ip, struct resource *resp) |
RT_EXPORT int | rt_comb_describe (struct bu_vls *str, const struct rt_db_internal *ip, int verbose, double mm2local, struct resource *resp, struct db_i *db_i) |
RT_EXPORT void | db_wrap_v4_external (struct bu_external *op, const char *name) |
RT_EXPORT int | db_ck_left_heavy_tree (const union tree *tp, int no_unions) |
RT_EXPORT int | db_ck_v4gift_tree (const union tree *tp) |
RT_EXPORT union tree * | db_mkbool_tree (struct rt_tree_array *rt_tree_array, int howfar, struct resource *resp) |
RT_EXPORT union tree * | db_mkgift_tree (struct rt_tree_array *trees, int subtreecount, struct resource *resp) |
RT_EXPORT void | rt_pt_sort (register fastf_t t[], int npts) |
RT_EXPORT void | rt_ell_16pts (register fastf_t *ov, register fastf_t *V, fastf_t *A, fastf_t *B) |
RT_EXPORT int | rt_poly_roots (bn_poly_t *eqn, bn_complex_t roots[], const char *name) |
RT_EXPORT int | db_write (struct db_i *dbip, const genptr_t addr, long count, long offset) |
RT_EXPORT int | db_fwrite_external (FILE *fp, const char *name, struct bu_external *ep) |
RT_EXPORT genptr_t | db_getmrec (const struct db_i *, const struct directory *dp) |
RT_EXPORT int | db_get (const struct db_i *, const struct directory *dp, genptr_t where, int offset, int len) |
RT_EXPORT int | db_put (const struct db_i *, const struct directory *dp, genptr_t where, int offset, int len) |
RT_EXPORT int | db_get_external (struct bu_external *ep, const struct directory *dp, const struct db_i *dbip) |
RT_EXPORT int | db_put_external (struct bu_external *ep, struct directory *dp, struct db_i *dbip) |
RT_EXPORT void | db_free_external (struct bu_external *ep) |
RT_EXPORT int | db_scan (struct db_i *, int(*handler)(), int do_old_matter, genptr_t client_data) |
RT_EXPORT int | db_update_ident (struct db_i *dbip, const char *title, double local2mm) |
RT_EXPORT int | db_fwrite_ident (FILE *fp, const char *title, double local2mm) |
RT_EXPORT void | db_conversions (struct db_i *, int units) |
RT_EXPORT int | db_v4_get_units_code (const char *str) |
RT_EXPORT int | db_dirbuild (struct db_i *dbip) |
RT_EXPORT struct directory * | db5_diradd (struct db_i *dbip, const struct db5_raw_internal *rip, long laddr, genptr_t client_data) |
RT_EXPORT int | db_get_version (struct db_i *dbip) |
RT_EXPORT int | db5_scan (struct db_i *dbip, void(*handler)(struct db_i *, const struct db5_raw_internal *, long addr, genptr_t client_data), genptr_t client_data) |
RT_EXPORT int | rt_comb_import5 (struct rt_db_internal *ip, const struct bu_external *ep, const mat_t mat, const struct db_i *dbip, struct resource *resp, const int minor_type) |
RT_EXPORT int | rt_extrude_import5 (struct rt_db_internal *ip, const struct bu_external *ep, register const mat_t mat, const struct db_i *dbip, struct resource *resp, const int minor_type) |
RT_EXPORT struct db_i * | db_open_inmem (void) |
RT_EXPORT struct db_i * | db_create_inmem (void) |
RT_EXPORT void | db_inmem (struct directory *dp, struct bu_external *ext, int flags, struct db_i *dbip) |
RT_EXPORT int | db_get_directory_size (const struct db_i *dbip) |
RT_EXPORT void | db_ck_directory (const struct db_i *dbip) |
RT_EXPORT int | db_is_directory_non_empty (const struct db_i *dbip) |
RT_EXPORT int | db_dirhash (const char *str) |
RT_EXPORT int | db_dircheck (struct db_i *dbip, struct bu_vls *ret_name, int noisy, struct directory ***headp) |
RT_EXPORT struct directory * | db_lookup (const struct db_i *, const char *name, int noisy) |
RT_EXPORT struct bu_ptbl * | db_lookup_by_attr (struct db_i *dbip, int dir_flags, struct bu_attribute_value_set *avs, int op) |
RT_EXPORT struct directory * | db_diradd (struct db_i *, const char *name, long laddr, int len, int flags, genptr_t ptr) |
RT_EXPORT struct directory * | db_diradd5 (struct db_i *dbip, const char *name, long laddr, unsigned char major_type, unsigned char minor_type, unsigned char name_hidden, long object_length, struct bu_attribute_value_set *avs) |
RT_EXPORT int | db_dirdelete (struct db_i *, struct directory *dp) |
RT_EXPORT void | db_pr_dir (const struct db_i *dbip) |
RT_EXPORT int | db_rename (struct db_i *, struct directory *, const char *newname) |
RT_EXPORT void | db_update_nref (struct db_i *dbip, struct resource *resp) |
RT_EXPORT int | db_regexp_match (const char *pattern, const char *string) |
RT_EXPORT int | db_regexp_match_all (struct bu_vls *dest, struct db_i *dbip, const char *pattern) |
RT_EXPORT int | db_flags_internal (const struct rt_db_internal *intern) |
RT_EXPORT int | db_flags_raw_internal (const struct db5_raw_internal *intern) |
RT_EXPORT int | db_alloc (struct db_i *, struct directory *dp, int count) |
RT_EXPORT int | db_delrec (struct db_i *, struct directory *dp, int recnum) |
RT_EXPORT int | db_delete (struct db_i *, struct directory *dp) |
RT_EXPORT int | db_zapper (struct db_i *, struct directory *dp, int start) |
RT_EXPORT void | db_dup_db_tree_state (struct db_tree_state *otsp, const struct db_tree_state *itsp) |
RT_EXPORT void | db_free_db_tree_state (struct db_tree_state *tsp) |
RT_EXPORT void | db_init_db_tree_state (struct db_tree_state *tsp, struct db_i *dbip, struct resource *resp) |
RT_EXPORT struct combined_tree_state * | db_new_combined_tree_state (const struct db_tree_state *tsp, const struct db_full_path *pathp) |
RT_EXPORT struct combined_tree_state * | db_dup_combined_tree_state (const struct combined_tree_state *old) |
RT_EXPORT void | db_free_combined_tree_state (struct combined_tree_state *ctsp) |
RT_EXPORT void | db_pr_tree_state (const struct db_tree_state *tsp) |
RT_EXPORT void | db_pr_combined_tree_state (const struct combined_tree_state *ctsp) |
RT_EXPORT int | db_apply_state_from_comb (struct db_tree_state *tsp, const struct db_full_path *pathp, const struct rt_comb_internal *comb) |
RT_EXPORT int | db_apply_state_from_memb (struct db_tree_state *tsp, struct db_full_path *pathp, const union tree *tp) |
RT_EXPORT int | db_apply_state_from_one_member (struct db_tree_state *tsp, struct db_full_path *pathp, const char *cp, int sofar, const union tree *tp) |
RT_EXPORT union tree * | db_find_named_leaf (union tree *tp, const char *cp) |
RT_EXPORT union tree * | db_find_named_leafs_parent (int *side, union tree *tp, const char *cp) |
RT_EXPORT void | db_tree_del_lhs (union tree *tp, struct resource *resp) |
RT_EXPORT void | db_tree_del_rhs (union tree *tp, struct resource *resp) |
RT_EXPORT int | db_tree_del_dbleaf (union tree **tp, const char *cp, struct resource *resp) |
RT_EXPORT void | db_tree_mul_dbleaf (union tree *tp, const mat_t mat) |
RT_EXPORT void | db_tree_funcleaf (struct db_i *dbip, struct rt_comb_internal *comb, union tree *comb_tree, void(*leaf_func)(), genptr_t user_ptr1, genptr_t user_ptr2, genptr_t user_ptr3) |
RT_EXPORT int | db_follow_path (struct db_tree_state *tsp, struct db_full_path *total_path, const struct db_full_path *new_path, int noisy, int depth) |
RT_EXPORT int | db_follow_path_for_state (struct db_tree_state *tsp, struct db_full_path *pathp, const char *orig_str, int noisy) |
RT_EXPORT union tree * | db_recurse (struct db_tree_state *tsp, struct db_full_path *pathp, struct combined_tree_state **region_start_statepp, genptr_t client_data) |
RT_EXPORT union tree * | db_dup_subtree (const union tree *tp, struct resource *resp) |
RT_EXPORT void | db_free_tree (union tree *tp, struct resource *resp) |
RT_EXPORT void | db_left_hvy_node (union tree *tp) |
RT_EXPORT void | db_non_union_push (union tree *tp, struct resource *resp) |
RT_EXPORT int | db_count_tree_nodes (const union tree *tp, int count) |
RT_EXPORT int | db_is_tree_all_unions (const union tree *tp) |
RT_EXPORT int | db_count_subtree_regions (const union tree *tp) |
RT_EXPORT int | db_tally_subtree_regions (union tree *tp, union tree **reg_trees, int cur, int lim, struct resource *resp) |
RT_EXPORT int | db_walk_tree (struct db_i *dbip, int argc, const char **argv, int ncpu, const struct db_tree_state *init_state, int(*reg_start_func)(struct db_tree_state *, struct db_full_path *, const struct rt_comb_internal *, genptr_t client_data), union tree *(*reg_end_func)(struct db_tree_state *, struct db_full_path *, union tree *, genptr_t client_data), union tree *(*leaf_func)(struct db_tree_state *, struct db_full_path *, struct rt_db_internal *, genptr_t client_data), genptr_t client_data) |
RT_EXPORT int | db_path_to_mat (struct db_i *dbip, struct db_full_path *pathp, mat_t mat, int depth, struct resource *resp) |
RT_EXPORT void | db_apply_anims (struct db_full_path *pathp, struct directory *dp, mat_t stck, mat_t arc, struct mater_info *materp) |
RT_EXPORT int | db_region_mat (mat_t m, struct db_i *dbip, const char *name, struct resource *resp) |
RT_EXPORT int | db_shader_mat (mat_t model_to_shader, const struct rt_i *rtip, const struct region *rp, point_t p_min, point_t p_max, struct resource *resp) |
RT_EXPORT int | rt_db_get_internal (struct rt_db_internal *ip, const struct directory *dp, const struct db_i *dbip, const mat_t mat, struct resource *resp) |
RT_EXPORT int | rt_db_put_internal (struct directory *dp, struct db_i *dbip, struct rt_db_internal *ip, struct resource *resp) |
RT_EXPORT int | rt_fwrite_internal (FILE *fp, const char *name, const struct rt_db_internal *ip, double conv2mm) |
RT_EXPORT void | rt_db_free_internal (struct rt_db_internal *ip, struct resource *resp) |
RT_EXPORT int | rt_db_lookup_internal (struct db_i *dbip, const char *obj_name, struct directory **dpp, struct rt_db_internal *ip, int noisy, struct resource *resp) |
RT_EXPORT void | rt_optim_tree (register union tree *tp, struct resource *resp) |
RT_EXPORT void | db_get_directory (register struct resource *resp) |
RT_EXPORT void | db_functree (struct db_i *dbip, struct directory *dp, void(*comb_func)(struct db_i *, struct directory *, genptr_t), void(*leaf_func)(struct db_i *, struct directory *, genptr_t), struct resource *resp, genptr_t client_data) |
RT_EXPORT int | rt_arb_get_cgtype () |
RT_EXPORT int | rt_arb_std_type (const struct rt_db_internal *ip, const struct bn_tol *tol) |
RT_EXPORT void | rt_arb_centroid () |
RT_EXPORT int | rt_arb_calc_points () |
RT_EXPORT int | rt_arb_3face_intersect (point_t point, const plane_t planes[6], int type, int loc) |
RT_EXPORT void | rt_ell (fastf_t *ov, const fastf_t *V, const fastf_t *A, const fastf_t *B, int sides) |
RT_EXPORT void | rt_vls_pipept (struct bu_vls *vp, int seg_no, const struct rt_db_internal *ip, double mm2local) |
RT_EXPORT void | rt_pipept_print () |
RT_EXPORT int | rt_pipe_ck (const struct bu_list *headp) |
RT_EXPORT int | rt_mk_parabola (struct rt_pt_node *pts, fastf_t r, fastf_t b, fastf_t dtol, fastf_t ntol) |
RT_EXPORT struct rt_pt_node * | rt_ptalloc () |
RT_EXPORT unsigned long | rt_memalloc (struct mem_map **pp, unsigned size) |
RT_EXPORT struct mem_map * | rt_memalloc_nosplit (struct mem_map **pp, unsigned size) |
RT_EXPORT unsigned long | rt_memget (struct mem_map **pp, unsigned int size, unsigned int place) |
RT_EXPORT void | rt_memfree (struct mem_map **pp, unsigned size, unsigned long addr) |
RT_EXPORT void | rt_mempurge (struct mem_map **pp) |
RT_EXPORT void | rt_memprint (struct mem_map **pp) |
RT_EXPORT void | rt_memclose () |
RT_EXPORT struct bn_vlblock * | rt_vlblock_init () |
RT_EXPORT void | rt_vlblock_free (struct bn_vlblock *vbp) |
RT_EXPORT struct bu_list * | rt_vlblock_find (struct bn_vlblock *vbp, int r, int g, int b) |
RT_EXPORT void | rt_hitsort (struct hit h[], int nh) |
RT_EXPORT int | rt_pg_to_bot (struct rt_db_internal *ip, const struct bn_tol *tol, struct resource *resp0) |
RT_EXPORT int | rt_pg_plot (struct bu_list *vhead, struct rt_db_internal *ip, const struct rt_tess_tol *ttol, const struct bn_tol *tol) |
RT_EXPORT int | rt_pg_plot_poly (struct bu_list *vhead, struct rt_db_internal *ip, const struct rt_tess_tol *ttol, const struct bn_tol *tol) |
RT_EXPORT int | rt_hf_to_dsp (struct rt_db_internal *db_intern, struct resource *resp) |
RT_EXPORT int | dsp_pos (point_t out, struct soltab *stp, point_t p) |
RT_EXPORT void | rt_pr_pt_vls (struct bu_vls *v, const struct rt_i *rtip, const struct partition *pp) |
RT_EXPORT void | rt_pr_seg_vls (struct bu_vls *, const struct seg *) |
RT_EXPORT void | rt_pr_hit_vls (struct bu_vls *v, const char *str, const struct hit *hitp) |
RT_EXPORT void | rt_pr_hitarray_vls (struct bu_vls *v, const char *str, const struct hit *hitp, int count) |
RT_EXPORT void | rt_pr_tree_vls (struct bu_vls *vls, const union tree *tp) |
RT_EXPORT char * | rt_pr_tree_str (const union tree *tree) |
RT_EXPORT void | rt_pr_fallback_angle (struct bu_vls *str, const char *prefix, const double angles[5]) |
RT_EXPORT void | rt_find_fallback_angle (double angles[5], const vect_t vec) |
RT_EXPORT void | rt_pr_tol (const struct bn_tol *tol) |
RT_EXPORT void | rt_regionfix (struct rt_i *rtip) |
RT_EXPORT int | rt_id_solid (struct bu_external *ep) |
RT_EXPORT const struct rt_functab * | rt_get_functab_by_label (const char *label) |
RT_EXPORT int | rt_generic_xform (struct rt_db_internal *op, const mat_t mat, struct rt_db_internal *ip, int avail, struct db_i *dbip, struct resource *resp) |
RT_EXPORT void | rt_nul_make (const struct rt_functab *ftp, struct rt_db_internal *intern, double diameter) |
RT_EXPORT void | rt_plot_all_bboxes (FILE *fp, struct rt_i *rtip) |
RT_EXPORT void | rt_plot_all_solids (FILE *fp, struct rt_i *rtip, struct resource *resp) |
RT_EXPORT void | rt_init_resource (struct resource *resp, int cpu_num, struct rt_i *rtip) |
RT_EXPORT void | rt_clean_resource (struct rt_i *rtip, struct resource *resp) |
RT_EXPORT int | rt_unprep (struct rt_i *rtip, struct rt_reprep_obj_list *objs, struct resource *resp) |
RT_EXPORT int | rt_reprep (struct rt_i *rtip, struct rt_reprep_obj_list *objs, struct resource *resp) |
RT_EXPORT int | re_prep_solids (struct rt_i *rtip, int num_solids, char **solid_names, struct resource *resp) |
RT_EXPORT int | rt_find_paths (struct db_i *dbip, struct directory *start, struct directory *end, struct bu_ptbl *paths, struct resource *resp) |
RT_EXPORT struct bu_bitv * | get_solidbitv (long nbits, struct resource *resp) |
RT_EXPORT void | rt_add_res_stats (struct rt_i *rtip, struct resource *resp) |
RT_EXPORT void | rt_zero_res_stats (struct resource *resp) |
RT_EXPORT void | rt_res_pieces_clean (struct resource *resp, struct rt_i *rtip) |
RT_EXPORT void | rt_res_pieces_init (struct resource *resp, struct rt_i *rtip) |
RT_EXPORT void | rt_vstub (struct soltab *stp[], struct xray *rp[], struct seg segp[], int n, struct application *ap) |
RT_EXPORT int | rt_bound_tree (const union tree *tp, vect_t tree_min, vect_t tree_max) |
RT_EXPORT int | rt_tree_elim_nops (union tree *, struct resource *resp) |
RT_EXPORT struct bn_vlblock * | bn_vlblock_init (struct bu_list *free_vlist_hd, int max_ent) |
RT_EXPORT int | rt_ck_vlist (const struct bu_list *vhead) |
RT_EXPORT void | rt_vlist_copy (struct bu_list *dest, const struct bu_list *src) |
RT_EXPORT void | bn_vlist_cleanup (struct bu_list *hd) |
RT_EXPORT void | rt_vlist_cleanup () |
RT_EXPORT void | bn_vlist_rpp (struct bu_list *hd, const point_t minn, const point_t maxx) |
RT_EXPORT void | rt_vlist_export (struct bu_vls *vls, struct bu_list *hp, const char *name) |
RT_EXPORT void | rt_vlist_import (struct bu_list *hp, struct bu_vls *namevls, const unsigned char *buf) |
RT_EXPORT void | rt_plot_vlblock (FILE *fp, const struct bn_vlblock *vbp) |
RT_EXPORT void | rt_vlist_to_uplot (FILE *fp, const struct bu_list *vhead) |
RT_EXPORT int | rt_process_uplot_value (struct bu_list **vhead, struct bn_vlblock *vbp, FILE *fp, int c, double char_size, int mode) |
RT_EXPORT int | rt_uplot_to_vlist (struct bn_vlblock *vbp, FILE *fp, double char_size, int mode) |
RT_EXPORT void | rt_label_vlist_verts (struct bn_vlblock *vbp, struct bu_list *src, mat_t mat, double sz, double mm2local) |
RT_EXPORT void | rt_htbl_init (struct rt_htbl *b, int len, const char *str) |
RT_EXPORT void | rt_htbl_reset (struct rt_htbl *b) |
RT_EXPORT void | rt_htbl_free (struct rt_htbl *b) |
RT_EXPORT struct hit * | rt_htbl_get (struct rt_htbl *b) |
RT_EXPORT struct model * | nmg_mm () |
RT_EXPORT struct model * | nmg_mmr () |
RT_EXPORT struct nmgregion * | nmg_mrsv (struct model *m) |
RT_EXPORT struct shell * | nmg_msv (struct nmgregion *r_p) |
RT_EXPORT struct faceuse * | nmg_mf (struct loopuse *lu1) |
RT_EXPORT struct loopuse * | nmg_mlv (long *magic, struct vertex *v, int orientation) |
RT_EXPORT struct edgeuse * | nmg_me (struct vertex *v1, struct vertex *v2, struct shell *s) |
RT_EXPORT struct edgeuse * | nmg_meonvu (struct vertexuse *vu) |
RT_EXPORT struct loopuse * | nmg_ml (struct shell *s) |
RT_EXPORT int | nmg_keg (struct edgeuse *eu) |
RT_EXPORT int | nmg_kvu (struct vertexuse *vu) |
RT_EXPORT int | nmg_kfu (struct faceuse *fu1) |
RT_EXPORT int | nmg_klu (struct loopuse *lu1) |
RT_EXPORT int | nmg_keu (struct edgeuse *eu) |
RT_EXPORT int | nmg_ks (struct shell *s) |
RT_EXPORT int | nmg_kr (struct nmgregion *r) |
RT_EXPORT void | nmg_km (struct model *m) |
RT_EXPORT void | nmg_vertex_gv (struct vertex *v, const point_t pt) |
RT_EXPORT void | nmg_vertex_g (struct vertex *v, fastf_t x, fastf_t y, fastf_t z) |
RT_EXPORT void | nmg_vertexuse_nv (struct vertexuse *vu, const vect_t norm) |
RT_EXPORT void | nmg_vertexuse_a_cnurb (struct vertexuse *vu, const fastf_t *uvw) |
RT_EXPORT void | nmg_edge_g (struct edgeuse *eu) |
RT_EXPORT void | nmg_edge_g_cnurb (struct edgeuse *eu, int order, int n_knots, fastf_t *kv, int n_pts, int pt_type, fastf_t *points) |
RT_EXPORT void | nmg_edge_g_cnurb_plinear (struct edgeuse *eu) |
RT_EXPORT int | nmg_use_edge_g (struct edgeuse *eu, long *eg) |
RT_EXPORT void | nmg_loop_g (struct loop *l, const struct bn_tol *tol) |
RT_EXPORT void | nmg_face_g (struct faceuse *fu, const plane_t p) |
RT_EXPORT void | nmg_face_new_g (struct faceuse *fu, const plane_t pl) |
RT_EXPORT void | nmg_face_g_snurb (struct faceuse *fu, int u_order, int v_order, int n_u_knots, int n_v_knots, fastf_t *ukv, fastf_t *vkv, int n_rows, int n_cols, int pt_type, fastf_t *mesh) |
RT_EXPORT void | nmg_face_bb (struct face *f, const struct bn_tol *tol) |
RT_EXPORT void | nmg_shell_a (struct shell *s, const struct bn_tol *tol) |
RT_EXPORT void | nmg_region_a (struct nmgregion *r, const struct bn_tol *tol) |
RT_EXPORT int | nmg_demote_lu (struct loopuse *lu) |
RT_EXPORT int | nmg_demote_eu (struct edgeuse *eu) |
RT_EXPORT void | nmg_movevu (struct vertexuse *vu, struct vertex *v) |
RT_EXPORT void | nmg_je (struct edgeuse *eudst, struct edgeuse *eusrc) |
RT_EXPORT void | nmg_unglueedge (struct edgeuse *eu) |
RT_EXPORT void | nmg_jv (struct vertex *v1, struct vertex *v2) |
RT_EXPORT void | nmg_jfg (struct face *f1, struct face *f2) |
RT_EXPORT void | nmg_jeg (struct edge_g_lseg *dest_eg, struct edge_g_lseg *src_eg) |
RT_EXPORT void | nmg_merge_regions (struct nmgregion *r1, struct nmgregion *r2, const struct bn_tol *tol) |
RT_EXPORT void | nmg_shell_coplanar_face_merge (struct shell *s, const struct bn_tol *tol, const int simplify) |
RT_EXPORT int | nmg_simplify_shell (struct shell *s) |
RT_EXPORT void | nmg_rm_redundancies (struct shell *s, const struct bn_tol *tol) |
RT_EXPORT void | nmg_sanitize_s_lv (struct shell *s, int orient) |
RT_EXPORT void | nmg_s_split_touchingloops (struct shell *s, const struct bn_tol *tol) |
RT_EXPORT void | nmg_s_join_touchingloops (struct shell *s, const struct bn_tol *tol) |
RT_EXPORT void | nmg_js (struct shell *s1, struct shell *s2, const struct bn_tol *tol) |
RT_EXPORT void | nmg_invert_shell (struct shell *s, const struct bn_tol *tol) |
RT_EXPORT struct faceuse * | nmg_cmface (struct shell *s, struct vertex **vt[], int n) |
RT_EXPORT struct faceuse * | nmg_cface (struct shell *s, struct vertex **vt, int n) |
RT_EXPORT struct faceuse * | nmg_add_loop_to_face (struct shell *s, struct faceuse *fu, struct vertex **verts, int n, int dir) |
RT_EXPORT int | nmg_fu_planeeqn (struct faceuse *fu, const struct bn_tol *tol) |
RT_EXPORT void | nmg_gluefaces (struct faceuse *fulist[], int n, const struct bn_tol *tol) |
RT_EXPORT int | nmg_simplify_face (struct faceuse *fu) |
RT_EXPORT void | nmg_reverse_face (struct faceuse *fu) |
RT_EXPORT void | nmg_mv_fu_between_shells (struct shell *dest, struct shell *src, struct faceuse *fu) |
RT_EXPORT void | nmg_jf (struct faceuse *dest_fu, struct faceuse *src_fu) |
RT_EXPORT struct faceuse * | nmg_dup_face (struct faceuse *fu, struct shell *s) |
RT_EXPORT void | nmg_jl (struct loopuse *lu, struct edgeuse *eu) |
RT_EXPORT struct vertexuse * | nmg_join_2loops (struct vertexuse *vu1, struct vertexuse *vu2) |
RT_EXPORT struct vertexuse * | nmg_join_singvu_loop (struct vertexuse *vu1, struct vertexuse *vu2) |
RT_EXPORT struct vertexuse * | nmg_join_2singvu_loops (struct vertexuse *vu1, struct vertexuse *vu2) |
RT_EXPORT struct loopuse * | nmg_cut_loop (struct vertexuse *vu1, struct vertexuse *vu2) |
RT_EXPORT struct loopuse * | nmg_split_lu_at_vu (struct loopuse *lu, struct vertexuse *vu) |
RT_EXPORT struct vertexuse * | nmg_find_repeated_v_in_lu (struct vertexuse *vu) |
RT_EXPORT void | nmg_split_touchingloops (struct loopuse *lu, const struct bn_tol *tol) |
RT_EXPORT int | nmg_join_touchingloops (struct loopuse *lu) |
RT_EXPORT int | nmg_get_touching_jaunts (const struct loopuse *lu, struct bu_ptbl *tbl, int *need_init) |
RT_EXPORT void | nmg_kill_accordions (struct loopuse *lu) |
RT_EXPORT int | nmg_loop_split_at_touching_jaunt (struct loopuse *lu, const struct bn_tol *tol) |
RT_EXPORT void | nmg_simplify_loop (struct loopuse *lu) |
RT_EXPORT int | nmg_kill_snakes (struct loopuse *lu) |
RT_EXPORT void | nmg_mv_lu_between_shells (struct shell *dest, struct shell *src, struct loopuse *lu) |
RT_EXPORT void | nmg_moveltof (struct faceuse *fu, struct shell *s) |
RT_EXPORT struct loopuse * | nmg_dup_loop (struct loopuse *lu, long *parent, long **trans_tbl) |
RT_EXPORT void | nmg_set_lu_orientation (struct loopuse *lu, int is_opposite) |
RT_EXPORT void | nmg_lu_reorient (struct loopuse *lu) |
RT_EXPORT struct edgeuse * | nmg_eusplit (struct vertex *v, struct edgeuse *oldeu, int share_geom) |
RT_EXPORT struct edgeuse * | nmg_esplit (struct vertex *v, struct edgeuse *eu, int share_geom) |
RT_EXPORT struct edgeuse * | nmg_ebreak (struct vertex *v, struct edgeuse *eu) |
RT_EXPORT struct edgeuse * | nmg_ebreaker (struct vertex *v, struct edgeuse *eu, const struct bn_tol *tol) |
RT_EXPORT struct vertex * | nmg_e2break (struct edgeuse *eu1, struct edgeuse *eu2) |
RT_EXPORT int | nmg_unbreak_edge (struct edgeuse *eu1_first) |
RT_EXPORT int | nmg_unbreak_shell_edge_unsafe (struct edgeuse *eu1_first) |
RT_EXPORT struct edgeuse * | nmg_eins (struct edgeuse *eu) |
RT_EXPORT void | nmg_mv_eu_between_shells (struct shell *dest, struct shell *src, struct edgeuse *eu) |
RT_EXPORT void | nmg_mv_vu_between_shells (struct shell *dest, struct shell *src, struct vertexuse *vu) |
RT_EXPORT struct model * | nmg_find_model (const long *magic_p) |
RT_EXPORT void | nmg_model_bb (point_t min_pt, point_t max_pt, const struct model *m) |
RT_EXPORT int | nmg_shell_is_empty (const struct shell *s) |
RT_EXPORT struct shell * | nmg_find_s_of_lu (const struct loopuse *lu) |
RT_EXPORT struct shell * | nmg_find_s_of_eu (const struct edgeuse *eu) |
RT_EXPORT struct shell * | nmg_find_s_of_vu (const struct vertexuse *vu) |
RT_EXPORT struct faceuse * | nmg_find_fu_of_eu (const struct edgeuse *eu) |
RT_EXPORT struct faceuse * | nmg_find_fu_of_lu (const struct loopuse *lu) |
RT_EXPORT struct faceuse * | nmg_find_fu_of_vu (const struct vertexuse *vu) |
RT_EXPORT struct faceuse * | nmg_find_fu_with_fg_in_s (const struct shell *s1, const struct faceuse *fu2) |
RT_EXPORT double | nmg_measure_fu_angle (const struct edgeuse *eu, const vect_t xvec, const vect_t yvec, const vect_t zvec) |
RT_EXPORT struct loopuse * | nmg_find_lu_of_vu (const struct vertexuse *vu) |
RT_EXPORT int | nmg_loop_is_a_crack (const struct loopuse *lu) |
RT_EXPORT int | nmg_loop_is_ccw (const struct loopuse *lu, const plane_t norm, const struct bn_tol *tol) |
RT_EXPORT const struct vertexuse * | nmg_loop_touches_self (const struct loopuse *lu) |
RT_EXPORT int | nmg_2lu_identical (const struct edgeuse *eu1, const struct edgeuse *eu2) |
RT_EXPORT struct edgeuse * | nmg_find_matching_eu_in_s (const struct edgeuse *eu1, const struct shell *s2) |
RT_EXPORT struct edgeuse * | nmg_findeu (const struct vertex *v1, const struct vertex *v2, const struct shell *s, const struct edgeuse *eup, int dangling_only) |
RT_EXPORT struct edgeuse * | nmg_find_eu_in_face (const struct vertex *v1, const struct vertex *v2, const struct faceuse *fu, const struct edgeuse *eup, int dangling_only) |
RT_EXPORT struct edgeuse * | nmg_find_e (const struct vertex *v1, const struct vertex *v2, const struct shell *s, const struct edge *ep) |
RT_EXPORT struct edgeuse * | nmg_find_eu_of_vu (const struct vertexuse *vu) |
RT_EXPORT struct edgeuse * | nmg_find_eu_with_vu_in_lu (const struct loopuse *lu, const struct vertexuse *vu) |
RT_EXPORT const struct edgeuse * | nmg_faceradial (const struct edgeuse *eu) |
RT_EXPORT const struct edgeuse * | nmg_radial_face_edge_in_shell (const struct edgeuse *eu) |
RT_EXPORT const struct edgeuse * | nmg_find_edge_between_2fu (const struct faceuse *fu1, const struct faceuse *fu2, const struct bn_tol *tol) |
RT_EXPORT struct edge * | nmg_find_e_nearest_pt2 (long *magic_p, const point_t pt2, const mat_t mat, const struct bn_tol *tol) |
RT_EXPORT void | nmg_eu_2vecs_perp (vect_t xvec, vect_t yvec, vect_t zvec, const struct edgeuse *eu, const struct bn_tol *tol) |
RT_EXPORT int | nmg_find_eu_leftvec (vect_t left, const struct edgeuse *eu) |
RT_EXPORT int | nmg_find_eu_left_non_unit (vect_t left, const struct edgeuse *eu) |
RT_EXPORT struct edgeuse * | nmg_find_ot_same_eu_of_e (const struct edge *e) |
RT_EXPORT struct vertexuse * | nmg_find_v_in_face (const struct vertex *, const struct faceuse *) |
RT_EXPORT struct vertexuse * | nmg_find_v_in_shell (const struct vertex *v, const struct shell *s, int edges_only) |
RT_EXPORT struct vertexuse * | nmg_find_pt_in_lu (const struct loopuse *lu, const point_t pt, const struct bn_tol *tol) |
RT_EXPORT struct vertexuse * | nmg_find_pt_in_face (const struct faceuse *fu, const point_t pt, const struct bn_tol *tol) |
RT_EXPORT struct vertex * | nmg_find_pt_in_shell (const struct shell *s, const point_t pt, const struct bn_tol *tol) |
RT_EXPORT struct vertex * | nmg_find_pt_in_model (const struct model *m, const point_t pt, const struct bn_tol *tol) |
RT_EXPORT int | nmg_is_vertex_in_edgelist (const struct vertex *v, const struct bu_list *hd) |
RT_EXPORT int | nmg_is_vertex_in_looplist (const struct vertex *v, const struct bu_list *hd, int singletons) |
RT_EXPORT struct vertexuse * | nmg_is_vertex_in_face (const struct vertex *v, const struct face *f) |
RT_EXPORT int | nmg_is_vertex_a_selfloop_in_shell (const struct vertex *v, const struct shell *s) |
RT_EXPORT int | nmg_is_vertex_in_facelist (const struct vertex *v, const struct bu_list *hd) |
RT_EXPORT int | nmg_is_edge_in_edgelist (const struct edge *e, const struct bu_list *hd) |
RT_EXPORT int | nmg_is_edge_in_looplist (const struct edge *e, const struct bu_list *hd) |
RT_EXPORT int | nmg_is_edge_in_facelist (const struct edge *e, const struct bu_list *hd) |
RT_EXPORT int | nmg_is_loop_in_facelist (const struct loop *l, const struct bu_list *fu_hd) |
RT_EXPORT void | nmg_vertex_tabulate (struct bu_ptbl *tab, const long *magic_p) |
RT_EXPORT void | nmg_vertexuse_normal_tabulate (struct bu_ptbl *tab, const long *magic_p) |
RT_EXPORT void | nmg_edgeuse_tabulate (struct bu_ptbl *tab, const long *magic_p) |
RT_EXPORT void | nmg_edge_tabulate (struct bu_ptbl *tab, const long *magic_p) |
RT_EXPORT void | nmg_edge_g_tabulate (struct bu_ptbl *tab, const long *magic_p) |
RT_EXPORT void | nmg_face_tabulate (struct bu_ptbl *tab, const long *magic_p) |
RT_EXPORT void | nmg_edgeuse_with_eg_tabulate (struct bu_ptbl *tab, const struct edge_g_lseg *eg) |
RT_EXPORT void | nmg_edgeuse_on_line_tabulate (struct bu_ptbl *tab, const long *magic_p, const point_t pt, const vect_t dir, const struct bn_tol *tol) |
RT_EXPORT void | nmg_e_and_v_tabulate (struct bu_ptbl *eutab, struct bu_ptbl *vtab, const long *magic_p) |
RT_EXPORT int | nmg_2edgeuse_g_coincident (const struct edgeuse *eu1, const struct edgeuse *eu2, const struct bn_tol *tol) |
RT_EXPORT void | nmg_translate_face (struct faceuse *fu, const vect_t Vec, const struct bn_tol *tol) |
RT_EXPORT int | nmg_extrude_face (struct faceuse *fu, const vect_t Vec, const struct bn_tol *tol) |
RT_EXPORT struct vertexuse * | nmg_find_vertex_in_lu (const struct vertex *v, const struct loopuse *lu) |
RT_EXPORT void | nmg_fix_overlapping_loops (struct shell *s, const struct bn_tol *tol) |
RT_EXPORT void | nmg_break_crossed_loops (struct shell *is, const struct bn_tol *tol) |
RT_EXPORT struct shell * | nmg_extrude_cleanup (struct shell *is, const int is_void, const struct bn_tol *tol) |
RT_EXPORT void | nmg_hollow_shell (struct shell *s, const fastf_t thick, const int approximate, const struct bn_tol *tol) |
RT_EXPORT struct shell * | nmg_extrude_shell (struct shell *s, const fastf_t dist, const int normal_ward, const int approximate, const struct bn_tol *tol) |
RT_EXPORT char * | nmg_orientation (int orientation) |
RT_EXPORT void | nmg_pr_orient (int orientation, const char *h) |
RT_EXPORT void | nmg_pr_m (const struct model *m) |
RT_EXPORT void | nmg_pr_r (const struct nmgregion *r, char *h) |
RT_EXPORT void | nmg_pr_sa (const struct shell_a *sa, char *h) |
RT_EXPORT void | nmg_pr_lg (const struct loop_g *lg, char *h) |
RT_EXPORT void | nmg_pr_fg (const long *magic, char *h) |
RT_EXPORT void | nmg_pr_s (const struct shell *s, char *h) |
RT_EXPORT void | nmg_pr_s_briefly (const struct shell *s, char *h) |
RT_EXPORT void | nmg_pr_f (const struct face *f, char *h) |
RT_EXPORT void | nmg_pr_fu (const struct faceuse *fu, char *h) |
RT_EXPORT void | nmg_pr_fu_briefly (const struct faceuse *fu, char *h) |
RT_EXPORT void | nmg_pr_l (const struct loop *l, char *h) |
RT_EXPORT void | nmg_pr_lu (const struct loopuse *lu, char *h) |
RT_EXPORT void | nmg_pr_lu_briefly (const struct loopuse *lu, char *h) |
RT_EXPORT void | nmg_pr_eg (const long *eg, char *h) |
RT_EXPORT void | nmg_pr_e (const struct edge *e, char *h) |
RT_EXPORT void | nmg_pr_eu (const struct edgeuse *eu, char *h) |
RT_EXPORT void | nmg_pr_eu_briefly (const struct edgeuse *eu, char *h) |
RT_EXPORT void | nmg_pr_eu_endpoints (const struct edgeuse *eu, char *h) |
RT_EXPORT void | nmg_pr_vg (const struct vertex_g *vg, char *h) |
RT_EXPORT void | nmg_pr_v (const struct vertex *v, char *h) |
RT_EXPORT void | nmg_pr_vu (const struct vertexuse *vu, char *h) |
RT_EXPORT void | nmg_pr_vu_briefly (const struct vertexuse *vu, char *h) |
RT_EXPORT void | nmg_pr_vua (const long *magic_p, char *h) |
RT_EXPORT void | nmg_euprint (const char *str, const struct edgeuse *eu) |
RT_EXPORT void | nmg_pr_ptbl (const char *title, const struct bu_ptbl *tbl, int verbose) |
RT_EXPORT void | nmg_pr_ptbl_vert_list (const char *str, const struct bu_ptbl *tbl, const fastf_t *mag) |
RT_EXPORT void | nmg_pr_one_eu_vecs (const struct edgeuse *eu, const vect_t xvec, const vect_t yvec, const vect_t zvec, const struct bn_tol *tol) |
RT_EXPORT void | nmg_pr_fu_around_eu_vecs (const struct edgeuse *eu, const vect_t xvec, const vect_t yvec, const vect_t zvec, const struct bn_tol *tol) |
RT_EXPORT void | nmg_pr_fu_around_eu (const struct edgeuse *eu, const struct bn_tol *tol) |
RT_EXPORT void | nmg_pl_lu_around_eu (const struct edgeuse *eu) |
RT_EXPORT void | nmg_pr_fus_in_fg (const long *fg_magic) |
RT_EXPORT struct rt_bot_internal * | nmg_bot (struct shell *s, const struct bn_tol *tol) |
RT_EXPORT int | rt_dist_pt3_line3 (fastf_t *dist, point_t pca, const point_t a, const point_t p, const vect_t dir, const struct bn_tol *tol) |
RT_EXPORT int | rt_dist_line3_line3 (fastf_t dist[2], const point_t p1, const point_t p2, const vect_t d1, const vect_t d2, const struct bn_tol *tol) |
RT_EXPORT int | nmg_snurb_calc_lu_uv_orient (const struct loopuse *lu) |
RT_EXPORT void | nmg_snurb_fu_eval (const struct faceuse *fu, const fastf_t u, const fastf_t v, point_t pt_on_srf) |
RT_EXPORT void | nmg_snurb_fu_get_norm (const struct faceuse *fu, const fastf_t u, const fastf_t v, vect_t norm) |
RT_EXPORT void | nmg_snurb_fu_get_norm_at_vu (const struct faceuse *fu, const struct vertexuse *vu, vect_t norm) |
RT_EXPORT void | nmg_find_zero_length_edges (const struct model *m) |
RT_EXPORT struct face * | nmg_find_top_face_in_dir (const struct shell *s, int dir, long *flags) |
RT_EXPORT struct face * | nmg_find_top_face (const struct shell *s, int *dir, long *flags) |
RT_EXPORT int | nmg_find_outer_and_void_shells (struct nmgregion *r, struct bu_ptbl ***shells, const struct bn_tol *tol) |
RT_EXPORT int | nmg_mark_edges_real (const long *magic_p) |
RT_EXPORT void | nmg_tabulate_face_g_verts (struct bu_ptbl *tab, const struct face_g_plane *fg) |
RT_EXPORT void | nmg_isect_shell_self (struct shell *s, const struct bn_tol *tol) |
RT_EXPORT struct edgeuse * | nmg_next_radial_eu (const struct edgeuse *eu, const struct shell *s, const int wires) |
RT_EXPORT struct edgeuse * | nmg_prev_radial_eu (const struct edgeuse *eu, const struct shell *s, const int wires) |
RT_EXPORT int | nmg_radial_face_count (const struct edgeuse *eu, const struct shell *s) |
RT_EXPORT int | nmg_check_closed_shell (const struct shell *s, const struct bn_tol *tol) |
RT_EXPORT int | nmg_move_lu_between_fus (struct faceuse *dest, struct faceuse *src, struct loopuse *lu) |
RT_EXPORT void | nmg_loop_plane_newell (const struct loopuse *lu, plane_t pl) |
RT_EXPORT fastf_t | nmg_loop_plane_area (const struct loopuse *lu, plane_t pl) |
RT_EXPORT int | nmg_calc_face_plane (struct faceuse *fu_in, plane_t pl) |
RT_EXPORT int | nmg_calc_face_g (struct faceuse *fu) |
RT_EXPORT fastf_t | nmg_faceuse_area (const struct faceuse *fu) |
RT_EXPORT fastf_t | nmg_shell_area (const struct shell *s) |
RT_EXPORT fastf_t | nmg_region_area (const struct nmgregion *r) |
RT_EXPORT fastf_t | nmg_model_area (const struct model *m) |
RT_EXPORT void | nmg_purge_unwanted_intersection_points (struct bu_ptbl *vert_list, fastf_t *mag, const struct faceuse *fu, const struct bn_tol *tol) |
RT_EXPORT int | nmg_in_or_ref (struct vertexuse *vu, struct bu_ptbl *b) |
RT_EXPORT void | nmg_rebound (struct model *m, const struct bn_tol *tol) |
RT_EXPORT void | nmg_count_shell_kids (const struct model *m, unsigned long *total_wires, unsigned long *total_faces, unsigned long *total_points) |
RT_EXPORT void | nmg_close_shell (struct shell *s, const struct bn_tol *tol) |
RT_EXPORT struct shell * | nmg_dup_shell (struct shell *s, long ***copy_tbl, const struct bn_tol *tol) |
RT_EXPORT struct edgeuse * | nmg_pop_eu (struct bu_ptbl *stack) |
RT_EXPORT void | nmg_reverse_radials (struct faceuse *fu, const struct bn_tol *tol) |
RT_EXPORT void | nmg_reverse_face_and_radials (struct faceuse *fu, const struct bn_tol *tol) |
RT_EXPORT int | nmg_shell_is_void (const struct shell *s) |
RT_EXPORT void | nmg_propagate_normals (struct faceuse *fu_in, long *flags, const struct bn_tol *tol) |
RT_EXPORT void | nmg_connect_same_fu_orients (struct shell *s) |
RT_EXPORT void | nmg_fix_decomposed_shell_normals (struct shell *s, const struct bn_tol *tol) |
RT_EXPORT struct model * | nmg_mk_model_from_region (struct nmgregion *r, int reindex) |
RT_EXPORT void | nmg_fix_normals (struct shell *s_orig, const struct bn_tol *tol) |
RT_EXPORT int | nmg_break_long_edges (struct shell *s, const struct bn_tol *tol) |
RT_EXPORT struct faceuse * | nmg_mk_new_face_from_loop (struct loopuse *lu) |
RT_EXPORT int | nmg_split_loops_into_faces (long *magic_p, const struct bn_tol *tol) |
RT_EXPORT int | nmg_decompose_shell (struct shell *s, const struct bn_tol *tol) |
RT_EXPORT void | nmg_stash_model_to_file (const char *filename, const struct model *m, const char *title) |
RT_EXPORT int | nmg_unbreak_region_edges (long *magic_p) |
RT_EXPORT int | nmg_mv_shell_to_region (struct shell *s, struct nmgregion *r) |
RT_EXPORT int | nmg_find_isect_faces (const struct vertex *new_v, struct bu_ptbl *faces, int *free_edges, const struct bn_tol *tol) |
RT_EXPORT int | nmg_simple_vertex_solve (struct vertex *new_v, const struct bu_ptbl *faces, const struct bn_tol *tol) |
RT_EXPORT int | nmg_ck_vert_on_fus (const struct vertex *v, const struct bn_tol *tol) |
RT_EXPORT void | nmg_make_faces_at_vert (struct vertex *new_v, struct bu_ptbl *int_faces, const struct bn_tol *tol) |
RT_EXPORT void | nmg_kill_cracks_at_vertex (const struct vertex *vp) |
RT_EXPORT int | nmg_complex_vertex_solve (struct vertex *new_v, const struct bu_ptbl *faces, const int free_edges, const int approximate, const struct bn_tol *tol) |
RT_EXPORT int | nmg_bad_face_normals (const struct shell *s, const struct bn_tol *tol) |
RT_EXPORT int | nmg_faces_are_radial (const struct faceuse *fu1, const struct faceuse *fu2) |
RT_EXPORT int | nmg_move_edge_thru_pt (struct edgeuse *mv_eu, const point_t pt, const struct bn_tol *tol) |
RT_EXPORT void | nmg_vlist_to_wire_edges (struct shell *s, const struct bu_list *vhead) |
RT_EXPORT void | nmg_follow_free_edges_to_vertex (const struct vertex *vpa, const struct vertex *vpb, struct bu_ptbl *bad_verts, const struct shell *s, const struct edgeuse *eu, struct bu_ptbl *verts, int *found) |
RT_EXPORT void | nmg_glue_face_in_shell (const struct faceuse *fu, struct shell *s, const struct bn_tol *tol) |
RT_EXPORT int | nmg_open_shells_connect (struct shell *dst, struct shell *src, const long **copy_tbl, const struct bn_tol *tol) |
RT_EXPORT int | nmg_in_vert (struct vertex *new_v, const int approximate, const struct bn_tol *tol) |
RT_EXPORT void | nmg_mirror_model (struct model *m) |
RT_EXPORT int | nmg_kill_cracks (struct shell *s) |
RT_EXPORT int | nmg_kill_zero_length_edgeuses (struct model *m) |
RT_EXPORT void | nmg_make_faces_within_tol (struct shell *s, const struct bn_tol *tol) |
RT_EXPORT void | nmg_intersect_loops_self (struct shell *s, const struct bn_tol *tol) |
RT_EXPORT struct edge_g_cnurb * | rt_join_cnurbs (struct bu_list *crv_head) |
RT_EXPORT struct edge_g_cnurb * | rt_arc2d_to_cnurb (point_t i_center, point_t i_start, point_t i_end, int point_type, const struct bn_tol *tol) |
RT_EXPORT int | nmg_break_edge_at_verts (struct edge *e, struct bu_ptbl *verts, const struct bn_tol *tol) |
RT_EXPORT int | nmg_break_edges (long *magic_p, const struct bn_tol *tol) |
RT_EXPORT int | nmg_lu_is_convex (struct loopuse *lu, const struct bn_tol *tol) |
RT_EXPORT int | nmg_simplify_shell_edges (struct shell *s, const struct bn_tol *tol) |
RT_EXPORT int | nmg_edge_collapse (struct model *m, const struct bn_tol *tol, const fastf_t tol_coll, const fastf_t min_angle) |
RT_EXPORT int | rt_bot_edge_in_list (const int v1, const int v2, const int edge_list[], const int edge_count0) |
RT_EXPORT int | rt_bot_plot (struct bu_list *vhead, struct rt_db_internal *ip, const struct rt_tess_tol *ttol, const struct bn_tol *tol) |
RT_EXPORT int | rt_bot_plot_poly (struct bu_list *vhead, struct rt_db_internal *ip, const struct rt_tess_tol *ttol, const struct bn_tol *tol) |
RT_EXPORT int | rt_bot_same_orientation (const int *a, const int *b) |
RT_EXPORT void | nmg_triangulate_shell (struct shell *s, const struct bn_tol *tol) |
RT_EXPORT void | nmg_triangulate_model (struct model *m, const struct bn_tol *tol) |
RT_EXPORT void | nmg_triangulate_fu (struct faceuse *fu, const struct bn_tol *tol) |
RT_EXPORT int | nmg_dangling_face (const struct faceuse *fu, const char *manifolds) |
RT_EXPORT char * | nmg_shell_manifolds (struct shell *sp, char *tbl) |
RT_EXPORT char * | nmg_manifolds (struct model *m) |
RT_EXPORT int | nmg_ray_segs (struct ray_data *rd) |
RT_EXPORT int | rt_num_circular_segments (double maxerr, double radius) |
RT_EXPORT int | rt_tcl_parse_ray (Tcl_Interp *interp, struct xray *rp, const char *const *argv) |
RT_EXPORT void | rt_tcl_pr_cutter (Tcl_Interp *interp, const union cutter *cutp) |
RT_EXPORT int | rt_tcl_cutter (ClientData clientData, Tcl_Interp *interp, int argc, const char *const *argv) |
RT_EXPORT void | rt_tcl_pr_hit (Tcl_Interp *interp, struct hit *hitp, const struct seg *segp, const struct xray *rayp, int flipflag) |
RT_EXPORT void | rt_tcl_setup (Tcl_Interp *interp) |
RT_EXPORT int | Sysv_Init (Tcl_Interp *interp) |
RT_EXPORT int | Rt_Init (Tcl_Interp *interp) |
RT_EXPORT void | db_full_path_appendresult (Tcl_Interp *interp, const struct db_full_path *pp) |
RT_EXPORT int | tcl_obj_to_int_array (Tcl_Interp *interp, Tcl_Obj *list, int **array, int *array_len) |
RT_EXPORT int | tcl_obj_to_fastf_array (Tcl_Interp *interp, Tcl_Obj *list, fastf_t **array, int *array_len) |
RT_EXPORT int | tcl_list_to_int_array (Tcl_Interp *interp, char *char_list, int **array, int *array_len) |
RT_EXPORT int | tcl_list_to_fastf_array (Tcl_Interp *interp, char *char_list, fastf_t **array, int *array_len) |
RT_EXPORT int | rt_mk_hyperbola (struct rt_pt_node *pts, fastf_t r, fastf_t b, fastf_t c, fastf_t dtol, fastf_t ntol) |
RT_EXPORT int | nmg_classify_pt_loop (const point_t pt, const struct loopuse *lu, const struct bn_tol *tol) |
RT_EXPORT int | nmg_classify_s_vs_s (struct shell *s, struct shell *s2, const struct bn_tol *tol) |
RT_EXPORT int | nmg_classify_lu_lu (const struct loopuse *lu1, const struct loopuse *lu2, const struct bn_tol *tol) |
RT_EXPORT int | nmg_class_pt_f (const point_t pt, const struct faceuse *fu, const struct bn_tol *tol) |
RT_EXPORT int | nmg_class_pt_s (const point_t pt, const struct shell *s, const int in_or_out_only, const struct bn_tol *tol) |
RT_EXPORT int | nmg_eu_is_part_of_crack (const struct edgeuse *eu) |
RT_EXPORT int | nmg_class_pt_lu_except (point_t pt, const struct loopuse *lu, const struct edge *e_p, const struct bn_tol *tol) |
RT_EXPORT int | nmg_class_pt_fu_except (const point_t pt, const struct faceuse *fu, const struct loopuse *ignore_lu, void(*eu_func)(), void(*vu_func)(), const char *priv, const int call_on_hits, const int in_or_out_only, const struct bn_tol *tol) |
RT_EXPORT void | nmg_pl_shell (FILE *fp, const struct shell *s, int fancy) |
RT_EXPORT void | nmg_vu_to_vlist (struct bu_list *vhead, const struct vertexuse *vu) |
RT_EXPORT void | nmg_eu_to_vlist (struct bu_list *vhead, const struct bu_list *eu_hd) |
RT_EXPORT void | nmg_lu_to_vlist (struct bu_list *vhead, const struct loopuse *lu, int poly_markers, const vectp_t normal) |
RT_EXPORT void | nmg_snurb_fu_to_vlist (struct bu_list *vhead, const struct faceuse *fu, int poly_markers) |
RT_EXPORT void | nmg_s_to_vlist (struct bu_list *vhead, const struct shell *s, int poly_markers) |
RT_EXPORT void | nmg_r_to_vlist (struct bu_list *vhead, const struct nmgregion *r, int poly_markers) |
RT_EXPORT void | nmg_m_to_vlist (struct bu_list *vhead, struct model *m, int poly_markers) |
RT_EXPORT void | nmg_offset_eu_vert (point_t base, const struct edgeuse *eu, const vect_t face_normal, int tip) |
RT_EXPORT void | nmg_pl_v (FILE *fp, const struct vertex *v, long *b) |
RT_EXPORT void | nmg_pl_e (FILE *fp, const struct edge *e, long *b, int red, int green, int blue) |
RT_EXPORT void | nmg_pl_eu (FILE *fp, const struct edgeuse *eu, long *b, int red, int green, int blue) |
RT_EXPORT void | nmg_pl_lu (FILE *fp, const struct loopuse *fu, long *b, int red, int green, int blue) |
RT_EXPORT void | nmg_pl_fu (FILE *fp, const struct faceuse *fu, long *b, int red, int green, int blue) |
RT_EXPORT void | nmg_pl_s (FILE *fp, const struct shell *s) |
RT_EXPORT void | nmg_pl_r (FILE *fp, const struct nmgregion *r) |
RT_EXPORT void | nmg_pl_m (FILE *fp, const struct model *m) |
RT_EXPORT void | nmg_vlblock_v (struct bn_vlblock *vbp, const struct vertex *v, long *tab) |
RT_EXPORT void | nmg_vlblock_e (struct bn_vlblock *vbp, const struct edge *e, long *tab, int red, int green, int blue, int fancy) |
RT_EXPORT void | nmg_vlblock_eu (struct bn_vlblock *vbp, const struct edgeuse *eu, long *tab, int red, int green, int blue, int fancy, int loopnum) |
RT_EXPORT void | nmg_vlblock_euleft (struct bu_list *vh, const struct edgeuse *eu, const point_t center, const mat_t mat, const vect_t xvec, const vect_t yvec, double len, const struct bn_tol *tol) |
RT_EXPORT void | nmg_vlblock_around_eu (struct bn_vlblock *vbp, const struct edgeuse *arg_eu, long *tab, int fancy, const struct bn_tol *tol) |
RT_EXPORT void | nmg_vlblock_lu (struct bn_vlblock *vbp, const struct loopuse *lu, long *tab, int red, int green, int blue, int fancy, int loopnum) |
RT_EXPORT void | nmg_vlblock_fu (struct bn_vlblock *vbp, const struct faceuse *fu, long *tab, int fancy) |
RT_EXPORT void | nmg_vlblock_s (struct bn_vlblock *vbp, const struct shell *s, int fancy) |
RT_EXPORT void | nmg_vlblock_r (struct bn_vlblock *vbp, const struct nmgregion *r, int fancy) |
RT_EXPORT void | nmg_vlblock_m (struct bn_vlblock *vbp, const struct model *m, int fancy) |
RT_EXPORT void | nmg_pl_edges_in_2_shells (struct bn_vlblock *vbp, long *b, const struct edgeuse *eu, int fancy, const struct bn_tol *tol) |
RT_EXPORT void | nmg_pl_isect (const char *filename, const struct shell *s, const struct bn_tol *tol) |
RT_EXPORT void | nmg_pl_comb_fu (int num1, int num2, const struct faceuse *fu1) |
RT_EXPORT void | nmg_pl_2fu (const char *str, int num, const struct faceuse *fu1, const struct faceuse *fu2, int show_mates) |
RT_EXPORT void | nmg_show_broken_classifier_stuff (long *p, long *classlist[4], int all_new, int fancy, const char *a_string) |
RT_EXPORT void | nmg_face_plot (const struct faceuse *fu) |
RT_EXPORT void | nmg_2face_plot (const struct faceuse *fu1, const struct faceuse *fu2) |
RT_EXPORT void | nmg_face_lu_plot (const struct loopuse *lu, const struct vertexuse *vu1, const struct vertexuse *vu2) |
RT_EXPORT void | nmg_plot_lu_ray (const struct loopuse *lu, const struct vertexuse *vu1, const struct vertexuse *vu2, const vect_t left) |
RT_EXPORT void | nmg_plot_ray_face (const char *fname, point_t pt, const vect_t dir, const struct faceuse *fu) |
RT_EXPORT void | nmg_plot_lu_around_eu (const char *prefix, const struct edgeuse *eu, const struct bn_tol *tol) |
RT_EXPORT int | nmg_snurb_to_vlist (struct bu_list *vhead, const struct face_g_snurb *fg, int n_interior) |
RT_EXPORT void | nmg_cnurb_to_vlist (struct bu_list *vhead, const struct edgeuse *eu, int n_interior, int cmd) |
RT_EXPORT void | rt_nurb_clean_cnurb (struct edge_g_cnurb *crv) |
RT_EXPORT int | rt_nurb_knot_index (const struct knot_vector *kv, fastf_t k_value, int order) |
RT_EXPORT int | nmg_uv_in_lu (const fastf_t u, const fastf_t v, const struct loopuse *lu) |
RT_EXPORT int | nmg_mesh_two_faces (struct faceuse *fu1, struct faceuse *fu2, const struct bn_tol *tol) |
RT_EXPORT void | nmg_radial_join_eu (struct edgeuse *eu1, struct edgeuse *eu2, const struct bn_tol *tol) |
RT_EXPORT void | nmg_mesh_faces (struct faceuse *fu1, struct faceuse *fu2, const struct bn_tol *tol) |
RT_EXPORT int | nmg_mesh_face_shell (struct faceuse *fu1, struct shell *s, const struct bn_tol *tol) |
RT_EXPORT int | nmg_mesh_shell_shell (struct shell *s1, struct shell *s2, const struct bn_tol *tol) |
RT_EXPORT struct nmgregion * | nmg_do_bool (struct nmgregion *s1, struct nmgregion *s2, const int oper, const struct bn_tol *tol) |
RT_EXPORT int | nmg_two_region_vertex_fuse (struct nmgregion *r1, struct nmgregion *r2, const struct bn_tol *tol) |
RT_EXPORT union tree * | nmg_booltree_leaf_tess (struct db_tree_state *tsp, struct db_full_path *pathp, struct rt_db_internal *ip, genptr_t client_data) |
RT_EXPORT union tree * | nmg_booltree_leaf_tnurb (struct db_tree_state *tsp, struct db_full_path *pathp, struct rt_db_internal *ip, genptr_t client_data) |
RT_EXPORT union tree * | nmg_booltree_evaluate (union tree *tp, const struct bn_tol *tol, struct resource *resp) |
RT_EXPORT int | nmg_boolean (union tree *tp, struct model *m, const struct bn_tol *tol, struct resource *resp) |
RT_EXPORT void | nmg_class_shells (struct shell *sA, struct shell *sB, long *classlist[4], const struct bn_tol *tol) |
RT_EXPORT int | nmg_ck_vu_ptbl (struct bu_ptbl *p, struct faceuse *fu) |
RT_EXPORT double | nmg_vu_angle_measure (struct vertexuse *vu, vect_t x_dir, vect_t y_dir, int assessment, int in) |
RT_EXPORT int | nmg_wedge_class (int ass, double a, double b) |
RT_EXPORT void | nmg_sanitize_fu (struct faceuse *fu) |
RT_EXPORT void | nmg_unlist_v (struct bu_ptbl *b, fastf_t *mag, struct vertex *v) |
RT_EXPORT struct edge_g_lseg * | nmg_face_cutjoin (struct bu_ptbl *b1, struct bu_ptbl *b2, fastf_t *mag1, fastf_t *mag2, struct faceuse *fu1, struct faceuse *fu2, point_t pt, vect_t dir, struct edge_g_lseg *eg, const struct bn_tol *tol) |
RT_EXPORT void | nmg_fcut_face_2d (struct bu_ptbl *vu_list, fastf_t *mag, struct faceuse *fu1, struct faceuse *fu2, struct bn_tol *tol) |
RT_EXPORT int | nmg_insert_vu_if_on_edge (struct vertexuse *vu1, struct vertexuse *vu2, struct edgeuse *new_eu, struct bn_tol *tol) |
RT_EXPORT void | nmg_ck_lu_orientation (struct loopuse *lu, const struct bn_tol *tolp) |
RT_EXPORT const char * | nmg_class_name (int class_no) |
RT_EXPORT void | nmg_evaluate_boolean (struct shell *sA, struct shell *sB, int op, long *classlist[8], const struct bn_tol *tol) |
RT_EXPORT void | nmg_rt_print_hitlist (struct hitmiss *hl) |
RT_EXPORT void | nmg_rt_print_hitmiss (struct hitmiss *a_hit) |
RT_EXPORT int | nmg_class_ray_vs_shell (struct xray *rp, const struct shell *s, const int in_or_out_only, const struct bn_tol *tol) |
RT_EXPORT void | nmg_isect_ray_model (struct ray_data *rd) |
RT_EXPORT void | nmg_vvg (const struct vertex_g *vg) |
RT_EXPORT void | nmg_vvertex (const struct vertex *v, const struct vertexuse *vup) |
RT_EXPORT void | nmg_vvua (const long *vua) |
RT_EXPORT void | nmg_vvu (const struct vertexuse *vu, const long *up_magic_p) |
RT_EXPORT void | nmg_veg (const long *eg) |
RT_EXPORT void | nmg_vedge (const struct edge *e, const struct edgeuse *eup) |
RT_EXPORT void | nmg_veu (const struct bu_list *hp, const long *up_magic_p) |
RT_EXPORT void | nmg_vlg (const struct loop_g *lg) |
RT_EXPORT void | nmg_vloop (const struct loop *l, const struct loopuse *lup) |
RT_EXPORT void | nmg_vlu (const struct bu_list *hp, const long *up) |
RT_EXPORT void | nmg_vfg (const struct face_g_plane *fg) |
RT_EXPORT void | nmg_vface (const struct face *f, const struct faceuse *fup) |
RT_EXPORT void | nmg_vfu (const struct bu_list *hp, const struct shell *s) |
RT_EXPORT void | nmg_vshell (const struct bu_list *hp, const struct nmgregion *r) |
RT_EXPORT void | nmg_vregion (const struct bu_list *hp, const struct model *m) |
RT_EXPORT void | nmg_vmodel (const struct model *m) |
RT_EXPORT void | nmg_ck_e (const struct edgeuse *eu, const struct edge *e, const char *str) |
RT_EXPORT void | nmg_ck_vu (const long *parent, const struct vertexuse *vu, const char *str) |
RT_EXPORT void | nmg_ck_eu (const long *parent, const struct edgeuse *eu, const char *str) |
RT_EXPORT void | nmg_ck_lg (const struct loop *l, const struct loop_g *lg, const char *str) |
RT_EXPORT void | nmg_ck_l (const struct loopuse *lu, const struct loop *l, const char *str) |
RT_EXPORT void | nmg_ck_lu (const long *parent, const struct loopuse *lu, const char *str) |
RT_EXPORT void | nmg_ck_fg (const struct face *f, const struct face_g_plane *fg, const char *str) |
RT_EXPORT void | nmg_ck_f (const struct faceuse *fu, const struct face *f, const char *str) |
RT_EXPORT void | nmg_ck_fu (const struct shell *s, const struct faceuse *fu, const char *str) |
RT_EXPORT int | nmg_ck_eg_verts (const struct edge_g_lseg *eg, const struct bn_tol *tol) |
RT_EXPORT int | nmg_ck_geometry (const struct model *m, const struct bn_tol *tol) |
RT_EXPORT int | nmg_ck_face_worthless_edges (const struct faceuse *fu) |
RT_EXPORT void | nmg_ck_lueu (const struct loopuse *lu, const char *s) |
RT_EXPORT int | nmg_check_radial (const struct edgeuse *eu, const struct bn_tol *tol) |
RT_EXPORT int | nmg_eu_2s_orient_bad (const struct edgeuse *eu, const struct shell *s1, const struct shell *s2, const struct bn_tol *tol) |
RT_EXPORT int | nmg_ck_closed_surf (const struct shell *s, const struct bn_tol *tol) |
RT_EXPORT int | nmg_ck_closed_region (const struct nmgregion *r, const struct bn_tol *tol) |
RT_EXPORT void | nmg_ck_v_in_2fus (const struct vertex *vp, const struct faceuse *fu1, const struct faceuse *fu2, const struct bn_tol *tol) |
RT_EXPORT void | nmg_ck_vs_in_region (const struct nmgregion *r, const struct bn_tol *tol) |
RT_EXPORT struct vertexuse * | nmg_make_dualvu (struct vertex *v, struct faceuse *fu, const struct bn_tol *tol) |
RT_EXPORT struct vertexuse * | nmg_enlist_vu (struct nmg_inter_struct *is, const struct vertexuse *vu, struct vertexuse *dualvu, fastf_t dist) |
RT_EXPORT void | nmg_isect2d_prep (struct nmg_inter_struct *is, const long *assoc_use) |
RT_EXPORT void | nmg_isect2d_cleanup (struct nmg_inter_struct *is) |
RT_EXPORT void | nmg_isect2d_final_cleanup () |
RT_EXPORT void | nmg_isect_vert2p_face2p (struct nmg_inter_struct *is, struct vertexuse *vu1, struct faceuse *fu2) |
RT_EXPORT struct edgeuse * | nmg_break_eu_on_v (struct edgeuse *eu1, struct vertex *v2, struct faceuse *fu, struct nmg_inter_struct *is) |
RT_EXPORT void | nmg_break_eg_on_v (const struct edge_g_lseg *eg, struct vertex *v, const struct bn_tol *tol) |
RT_EXPORT int | nmg_isect_2colinear_edge2p (struct edgeuse *eu1, struct edgeuse *eu2, struct faceuse *fu, struct nmg_inter_struct *is, struct bu_ptbl *l1, struct bu_ptbl *l2) |
RT_EXPORT int | nmg_isect_edge2p_edge2p (struct nmg_inter_struct *is, struct edgeuse *eu1, struct edgeuse *eu2, struct faceuse *fu1, struct faceuse *fu2) |
RT_EXPORT int | nmg_isect_construct_nice_ray (struct nmg_inter_struct *is, struct faceuse *fu2) |
RT_EXPORT void | nmg_enlist_one_vu (struct nmg_inter_struct *is, const struct vertexuse *vu, fastf_t dist) |
RT_EXPORT int | nmg_isect_line2_edge2p (struct nmg_inter_struct *is, struct bu_ptbl *list, struct edgeuse *eu1, struct faceuse *fu1, struct faceuse *fu2) |
RT_EXPORT void | nmg_isect_line2_vertex2 (struct nmg_inter_struct *is, struct vertexuse *vu1, struct faceuse *fu1) |
RT_EXPORT int | nmg_isect_two_ptbls (struct nmg_inter_struct *is, const struct bu_ptbl *t1, const struct bu_ptbl *t2) |
RT_EXPORT struct edge_g_lseg * | nmg_find_eg_on_line (const long *magic_p, const point_t pt, const vect_t dir, const struct bn_tol *tol) |
RT_EXPORT int | nmg_k0eu (struct vertex *v) |
RT_EXPORT struct vertex * | nmg_repair_v_near_v (struct vertex *hit_v, struct vertex *v, const struct edge_g_lseg *eg1, const struct edge_g_lseg *eg2, int bomb, const struct bn_tol *tol) |
RT_EXPORT struct vertex * | nmg_search_v_eg (const struct edgeuse *eu, int second, const struct edge_g_lseg *eg1, const struct edge_g_lseg *eg2, struct vertex *hit_v, const struct bn_tol *tol) |
RT_EXPORT struct vertex * | nmg_common_v_2eg (struct edge_g_lseg *eg1, struct edge_g_lseg *eg2, const struct bn_tol *tol) |
RT_EXPORT int | nmg_is_vertex_on_inter (struct vertex *v, struct faceuse *fu1, struct faceuse *fu2, struct nmg_inter_struct *is) |
RT_EXPORT void | nmg_isect_eu_verts (struct edgeuse *eu, struct vertex_g *vg1, struct vertex_g *vg2, struct bu_ptbl *verts, struct bu_ptbl *inters, const struct bn_tol *tol) |
RT_EXPORT void | nmg_isect_eu_eu (struct edgeuse *eu1, struct vertex_g *vg1a, struct vertex_g *vg1b, vect_t dir1, struct edgeuse *eu2, struct bu_ptbl *verts, struct bu_ptbl *inters, const struct bn_tol *tol) |
RT_EXPORT void | nmg_isect_eu_fu (struct nmg_inter_struct *is, struct bu_ptbl *verts, struct edgeuse *eu, struct faceuse *fu) |
RT_EXPORT void | nmg_isect_fu_jra (struct nmg_inter_struct *is, struct faceuse *fu1, struct faceuse *fu2, struct bu_ptbl *eu1_list, struct bu_ptbl *eu2_list) |
RT_EXPORT void | nmg_isect_line2_face2pNEW (struct nmg_inter_struct *is, struct faceuse *fu1, struct faceuse *fu2, struct bu_ptbl *eu1_list, struct bu_ptbl *eu2_list) |
RT_EXPORT int | nmg_is_eu_on_line3 (const struct edgeuse *eu, const point_t pt, const vect_t dir, const struct bn_tol *tol) |
RT_EXPORT struct edge_g_lseg * | nmg_find_eg_between_2fg (const struct faceuse *ofu1, const struct faceuse *fu2, const struct bn_tol *tol) |
RT_EXPORT struct edgeuse * | nmg_does_fu_use_eg (const struct faceuse *fu1, const long *eg) |
RT_EXPORT int | rt_line_on_plane (const point_t pt, const vect_t dir, const plane_t plane, const struct bn_tol *tol) |
RT_EXPORT void | nmg_cut_lu_into_coplanar_and_non (struct loopuse *lu, plane_t pl, struct nmg_inter_struct *is) |
RT_EXPORT void | nmg_check_radial_angles (char *str, struct shell *s, const struct bn_tol *tol) |
RT_EXPORT int | nmg_faces_can_be_intersected (struct nmg_inter_struct *bs, const struct faceuse *fu1, const struct faceuse *fu2, const struct bn_tol *tol) |
RT_EXPORT void | nmg_isect_two_generic_faces (struct faceuse *fu1, struct faceuse *fu2, const struct bn_tol *tol) |
RT_EXPORT void | nmg_crackshells (struct shell *s1, struct shell *s2, const struct bn_tol *tol) |
RT_EXPORT int | nmg_fu_touchingloops (const struct faceuse *fu) |
RT_EXPORT int | nmg_index_of_struct (const long *p) |
RT_EXPORT void | nmg_m_set_high_bit (struct model *m) |
RT_EXPORT void | nmg_m_reindex (struct model *m, long newindex) |
RT_EXPORT void | nmg_vls_struct_counts (struct bu_vls *str, const struct nmg_struct_counts *ctr) |
RT_EXPORT void | nmg_pr_struct_counts (const struct nmg_struct_counts *ctr, const char *str) |
RT_EXPORT long ** | nmg_m_struct_count (struct nmg_struct_counts *ctr, const struct model *m) |
RT_EXPORT void | nmg_struct_counts (const struct model *m, const char *str) |
RT_EXPORT void | nmg_merge_models (struct model *m1, struct model *m2) |
RT_EXPORT long | nmg_find_max_index (const struct model *m) |
RT_EXPORT void | rt_dspline_matrix (mat_t m, const char *type, const double tension, const double bias) |
RT_EXPORT double | rt_dspline4 (mat_t m, double a, double b, double c, double d, double alpha) |
RT_EXPORT void | rt_dspline4v (double *pt, const mat_t m, const double *a, const double *b, const double *c, const double *d, const int depth, const double alpha) |
RT_EXPORT void | rt_dspline_n (double *r, const mat_t m, const double *knots, const int n, const int depth, const double alpha) |
RT_EXPORT int | rt_nurb_bezier (struct bu_list *bezier_hd, const struct face_g_snurb *orig_surf, struct resource *res) |
RT_EXPORT int | rt_bez_check (const struct face_g_snurb *srf) |
RT_EXPORT int | nurb_crv_is_bezier (const struct edge_g_cnurb *crv) |
RT_EXPORT void | nurb_c_to_bezier (struct bu_list *clist, struct edge_g_cnurb *crv) |
RT_EXPORT struct face_g_snurb * | rt_nurb_scopy (const struct face_g_snurb *srf, struct resource *res) |
RT_EXPORT struct edge_g_cnurb * | rt_nurb_crv_copy (const struct edge_g_cnurb *crv) |
RT_EXPORT int | nmg_is_common_bigloop (const struct face *f1, const struct face *f2) |
RT_EXPORT void | nmg_region_v_unique (struct nmgregion *r1, const struct bn_tol *tol) |
RT_EXPORT int | nmg_ptbl_vfuse (struct bu_ptbl *t, const struct bn_tol *tol) |
RT_EXPORT int | nmg_region_both_vfuse (struct bu_ptbl *t1, struct bu_ptbl *t2, const struct bn_tol *tol) |
RT_EXPORT int | nmg_model_vertex_fuse (struct model *m, const struct bn_tol *tol) |
RT_EXPORT int | nmg_cnurb_is_linear (const struct edge_g_cnurb *cnrb) |
RT_EXPORT int | nmg_snurb_is_planar (const struct face_g_snurb *srf, const struct bn_tol *tol) |
RT_EXPORT void | nmg_eval_linear_trim_curve (const struct face_g_snurb *snrb, const fastf_t uvw[3], point_t xyz) |
RT_EXPORT void | nmg_eval_trim_curve (const struct edge_g_cnurb *cnrb, const struct face_g_snurb *snrb, const fastf_t t, point_t xyz) |
RT_EXPORT void | nmg_eval_trim_to_tol (const struct edge_g_cnurb *cnrb, const struct face_g_snurb *snrb, const fastf_t t0, const fastf_t t1, struct bu_list *head, const struct bn_tol *tol) |
RT_EXPORT void | nmg_eval_linear_trim_to_tol (const struct edge_g_cnurb *cnrb, const struct face_g_snurb *snrb, const fastf_t uvw1[3], const fastf_t uvw2[3], struct bu_list *head, const struct bn_tol *tol) |
RT_EXPORT int | nmg_cnurb_lseg_coincident (const struct edgeuse *eu1, const struct edge_g_cnurb *cnrb, const struct face_g_snurb *snrb, const point_t pt1, const point_t pt2, const struct bn_tol *tol) |
RT_EXPORT int | nmg_cnurb_is_on_crv (const struct edgeuse *eu, const struct edge_g_cnurb *cnrb, const struct face_g_snurb *snrb, const struct bu_list *head, const struct bn_tol *tol) |
RT_EXPORT int | nmg_model_edge_fuse (struct model *m, const struct bn_tol *tol) |
RT_EXPORT int | nmg_model_edge_g_fuse (struct model *m, const struct bn_tol *tol) |
RT_EXPORT int | nmg_ck_fu_verts (struct faceuse *fu1, struct face *f2, const struct bn_tol *tol) |
RT_EXPORT int | nmg_ck_fg_verts (struct faceuse *fu1, struct face *f2, const struct bn_tol *tol) |
RT_EXPORT int | nmg_two_face_fuse (struct face *f1, struct face *f2, const struct bn_tol *tol) |
RT_EXPORT int | nmg_model_face_fuse (struct model *m, const struct bn_tol *tol) |
RT_EXPORT int | nmg_break_all_es_on_v (long *magic_p, struct vertex *v, const struct bn_tol *tol) |
RT_EXPORT int | nmg_model_break_e_on_v (struct model *m, const struct bn_tol *tol) |
RT_EXPORT int | nmg_model_fuse (struct model *m, const struct bn_tol *tol) |
RT_EXPORT void | nmg_radial_sorted_list_insert (struct bu_list *hd, struct nmg_radial *rad) |
RT_EXPORT void | nmg_radial_verify_pointers (const struct bu_list *hd, const struct bn_tol *tol) |
RT_EXPORT void | nmg_radial_verify_monotone (const struct bu_list *hd, const struct bn_tol *tol) |
RT_EXPORT void | nmg_insure_radial_list_is_increasing (struct bu_list *hd, fastf_t amin, fastf_t amax) |
RT_EXPORT void | nmg_radial_build_list (struct bu_list *hd, struct bu_ptbl *shell_tbl, int existing, struct edgeuse *eu, const vect_t xvec, const vect_t yvec, const vect_t zvec, const struct bn_tol *tol) |
RT_EXPORT void | nmg_radial_merge_lists (struct bu_list *dest, struct bu_list *src, const struct bn_tol *tol) |
RT_EXPORT int | nmg_is_crack_outie (const struct edgeuse *eu, const struct bn_tol *tol) |
RT_EXPORT struct nmg_radial * | nmg_find_radial_eu (const struct bu_list *hd, const struct edgeuse *eu) |
RT_EXPORT const struct edgeuse * | nmg_find_next_use_of_2e_in_lu (const struct edgeuse *eu, const struct edge *e1, const struct edge *e2) |
RT_EXPORT void | nmg_radial_mark_cracks (struct bu_list *hd, const struct edge *e1, const struct edge *e2, const struct bn_tol *tol) |
RT_EXPORT struct nmg_radial * | nmg_radial_find_an_original (const struct bu_list *hd, const struct shell *s, const struct bn_tol *tol) |
RT_EXPORT int | nmg_radial_mark_flips (struct bu_list *hd, const struct shell *s, const struct bn_tol *tol) |
RT_EXPORT int | nmg_radial_check_parity (const struct bu_list *hd, const struct bu_ptbl *shells, const struct bn_tol *tol) |
RT_EXPORT void | nmg_radial_implement_decisions (struct bu_list *hd, const struct bn_tol *tol, struct edgeuse *eu1, vect_t xvec, vect_t yvec, vect_t zvec) |
RT_EXPORT void | nmg_pr_radial (const char *title, const struct nmg_radial *rad) |
RT_EXPORT void | nmg_pr_radial_list (const struct bu_list *hd, const struct bn_tol *tol) |
RT_EXPORT void | nmg_do_radial_flips (struct bu_list *hd) |
RT_EXPORT void | nmg_do_radial_join (struct bu_list *hd, struct edgeuse *eu1ref, vect_t xvec, vect_t yvec, vect_t zvec, const struct bn_tol *tol) |
RT_EXPORT void | nmg_radial_join_eu_NEW (struct edgeuse *eu1, struct edgeuse *eu2, const struct bn_tol *tol) |
RT_EXPORT void | nmg_radial_exchange_marked (struct bu_list *hd, const struct bn_tol *tol) |
RT_EXPORT void | nmg_s_radial_harmonize (struct shell *s, const struct bn_tol *tol) |
RT_EXPORT int | nmg_eu_radial_check (const struct edgeuse *eu, const struct shell *s, const struct bn_tol *tol) |
RT_EXPORT void | nmg_s_radial_check (struct shell *s, const struct bn_tol *tol) |
RT_EXPORT void | nmg_r_radial_check (const struct nmgregion *r, const struct bn_tol *tol) |
RT_EXPORT struct edge_g_lseg * | nmg_pick_best_edge_g (struct edgeuse *eu1, struct edgeuse *eu2, const struct bn_tol *tol) |
RT_EXPORT void | nmg_visit_vertex (struct vertex *v, const struct nmg_visit_handlers *htab, genptr_t state) |
RT_EXPORT void | nmg_visit_vertexuse (struct vertexuse *vu, const struct nmg_visit_handlers *htab, genptr_t state) |
RT_EXPORT void | nmg_visit_edge (struct edge *e, const struct nmg_visit_handlers *htab, genptr_t state) |
RT_EXPORT void | nmg_visit_edgeuse (struct edgeuse *eu, const struct nmg_visit_handlers *htab, genptr_t state) |
RT_EXPORT void | nmg_visit_loop (struct loop *l, const struct nmg_visit_handlers *htab, genptr_t state) |
RT_EXPORT void | nmg_visit_loopuse (struct loopuse *lu, const struct nmg_visit_handlers *htab, genptr_t state) |
RT_EXPORT void | nmg_visit_face (struct face *f, const struct nmg_visit_handlers *htab, genptr_t state) |
RT_EXPORT void | nmg_visit_faceuse (struct faceuse *fu, const struct nmg_visit_handlers *htab, genptr_t state) |
RT_EXPORT void | nmg_visit_shell (struct shell *s, const struct nmg_visit_handlers *htab, genptr_t state) |
RT_EXPORT void | nmg_visit_region (struct nmgregion *r, const struct nmg_visit_handlers *htab, genptr_t state) |
RT_EXPORT void | nmg_visit_model (struct model *model, const struct nmg_visit_handlers *htab, genptr_t state) |
RT_EXPORT void | nmg_visit (const long *magicp, const struct nmg_visit_handlers *htab, genptr_t state) |
RT_EXPORT int | db5_type_tag_from_major (char **tag, const int major) |
RT_EXPORT int | db5_type_descrip_from_major (char **descrip, const int major) |
RT_EXPORT int | db5_type_tag_from_codes (char **tag, const int major, const int minor) |
RT_EXPORT int | db5_type_descrip_from_codes (char **descrip, const int major, const int minor) |
RT_EXPORT int | db5_type_codes_from_tag (int *major, int *minor, const char *tag) |
RT_EXPORT int | db5_type_codes_from_descrip (int *major, int *minor, const char *descrip) |
RT_EXPORT size_t | db5_type_sizeof_h_binu (const int minor) |
RT_EXPORT size_t | db5_type_sizeof_n_binu (const int minor) |
RT_EXPORT int | wdb_create_cmd (Tcl_Interp *interp, struct rt_wdb *wdbp, const char *oname) |
RT_EXPORT void | wdb_deleteProc (ClientData clientData) |
RT_EXPORT int | wdb_get_tcl (ClientData clientData, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | dgo_cmd (ClientData clientData, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | wdb_init_obj (Tcl_Interp *interp, struct rt_wdb *wdbp, const char *oname) |
RT_EXPORT struct db_i * | wdb_prep_dbip (Tcl_Interp *interp, const char *filename) |
RT_EXPORT int | wdb_bot_face_sort_cmd (struct rt_wdb *wdbp, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | wdb_bot_decimate_cmd (struct rt_wdb *wdbp, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | wdb_close_cmd (struct rt_wdb *wdbp, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | wdb_reopen_cmd (struct rt_wdb *wdbp, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | wdb_match_cmd (struct rt_wdb *wdbp, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | wdb_get_cmd (struct rt_wdb *wdbp, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | wdb_put_cmd (struct rt_wdb *wdbp, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | wdb_adjust_cmd (struct rt_wdb *wdbp, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | wdb_form_cmd (struct rt_wdb *wdbp, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | wdb_tops_cmd (struct rt_wdb *wdbp, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | wdb_rt_gettrees_cmd (struct rt_wdb *wdbp, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | wdb_dump_cmd (struct rt_wdb *wdbp, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | wdb_dbip_cmd (struct rt_wdb *wdbp, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | wdb_ls_cmd (struct rt_wdb *wdbp, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | wdb_list_cmd (struct rt_wdb *wdbp, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | wdb_lt_cmd (struct rt_wdb *wdbp, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | wdb_pathlist_cmd (struct rt_wdb *wdbp, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | wdb_pathsum_cmd (struct rt_wdb *wdbp, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | wdb_expand_cmd (struct rt_wdb *wdbp, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | wdb_kill_cmd (struct rt_wdb *wdbp, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | wdb_killall_cmd (struct rt_wdb *wdbp, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | wdb_killtree_cmd (struct rt_wdb *wdbp, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | wdb_copy_cmd (struct rt_wdb *wdbp, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | wdb_move_cmd (struct rt_wdb *wdbp, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | wdb_move_all_cmd (struct rt_wdb *wdbp, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | wdb_concat_cmd (struct rt_wdb *wdbp, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | wdb_dup_cmd (struct rt_wdb *wdbp, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | wdb_group_cmd (struct rt_wdb *wdbp, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | wdb_remove_cmd (struct rt_wdb *wdbp, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | wdb_region_cmd (struct rt_wdb *wdbp, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | wdb_comb_cmd (struct rt_wdb *wdbp, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | wdb_find_cmd (struct rt_wdb *wdbp, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | wdb_which_cmd (struct rt_wdb *wdbp, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | wdb_title_cmd (struct rt_wdb *wdbp, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | wdb_tree_cmd (struct rt_wdb *wdbp, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | wdb_color_cmd (struct rt_wdb *wdbp, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | wdb_prcolor_cmd (struct rt_wdb *wdbp, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | wdb_tol_cmd (struct rt_wdb *wdbp, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | wdb_push_cmd (struct rt_wdb *wdbp, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | wdb_whatid_cmd (struct rt_wdb *wdbp, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | wdb_keep_cmd (struct rt_wdb *wdbp, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | wdb_cat_cmd (struct rt_wdb *wdbp, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | wdb_instance_cmd (struct rt_wdb *wdbp, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | wdb_observer_cmd (struct rt_wdb *wdbp, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | wdb_make_bb_cmd (struct rt_wdb *wdbp, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | wdb_make_name_cmd (struct rt_wdb *wdbp, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | wdb_units_cmd (struct rt_wdb *wdbp, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | wdb_hide_cmd (struct rt_wdb *wdbp, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | wdb_unhide_cmd (struct rt_wdb *wdbp, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | wdb_attr_cmd (struct rt_wdb *wdbp, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | wdb_summary_cmd (struct rt_wdb *wdbp, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | wdb_comb_std_cmd (struct rt_wdb *wdbp, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | wdb_nmg_collapse_cmd (struct rt_wdb *wdbp, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | wdb_nmg_simplify_cmd (struct rt_wdb *wdbp, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | wdb_shells_cmd (struct rt_wdb *wdbp, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | wdb_xpush_cmd (struct rt_wdb *wdbp, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | wdb_showmats_cmd (struct rt_wdb *wdbp, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | wdb_copyeval_cmd (struct rt_wdb *wdbp, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | wdb_version_cmd (struct rt_wdb *wdbp, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | wdb_binary_cmd (struct rt_wdb *wdbp, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | wdb_track_cmd (struct rt_wdb *wdbp, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | wdb_smooth_bot_cmd (struct rt_wdb *wdbp, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | wdb_importFg4Section_cmd (struct rt_wdb *wdbp, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | dgo_set_outputHandler_cmd (struct dg_obj *dgop, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | dgo_set_transparency_cmd (struct dg_obj *dgop, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | dgo_observer_cmd (struct dg_obj *dgop, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT void | dgo_deleteProc (ClientData clientData) |
RT_EXPORT void | dgo_autoview (struct dg_obj *dgop, struct view_obj *vop, Tcl_Interp *interp) |
RT_EXPORT int | dgo_autoview_cmd (struct dg_obj *dgop, struct view_obj *vop, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | dgo_blast_cmd (struct dg_obj *dgop, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | dgo_draw_cmd (struct dg_obj *dgop, Tcl_Interp *interp, int argc, char **argv, int kind) |
RT_EXPORT int | dgo_E_cmd (struct dg_obj *dgop, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | dgo_erase_cmd (struct dg_obj *dgop, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | dgo_erase_all_cmd (struct dg_obj *dgop, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | dgo_get_autoview_cmd (struct dg_obj *dgop, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | dgo_how_cmd (struct dg_obj *dgop, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | dgo_illum_cmd (struct dg_obj *dgop, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | dgo_label_cmd (struct dg_obj *dgop, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT struct dg_obj * | dgo_open_cmd (char *oname, struct rt_wdb *wdbp) |
RT_EXPORT int | dgo_overlay_cmd (struct dg_obj *dgop, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | dgo_report_cmd (struct dg_obj *dgop, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | dgo_rt_cmd (struct dg_obj *dgop, struct view_obj *vop, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | dgo_rtabort_cmd (struct dg_obj *dgop, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | dgo_rtcheck_cmd (struct dg_obj *dgop, struct view_obj *vop, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | dgo_vdraw_cmd (struct dg_obj *dgop, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | dgo_who_cmd (struct dg_obj *dgop, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT void | dgo_zap_cmd (struct dg_obj *dgop, Tcl_Interp *interp) |
RT_EXPORT int | dgo_shaded_mode_cmd (struct dg_obj *dgop, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT void | dgo_color_soltab () |
RT_EXPORT void | dgo_drawH_part2 () |
RT_EXPORT void | dgo_eraseobjall_callback (struct db_i *dbip, Tcl_Interp *interp, struct directory *dp, int notify) |
RT_EXPORT void | dgo_eraseobjpath () |
RT_EXPORT void | dgo_impending_wdb_close () |
RT_EXPORT int | dgo_invent_solid () |
RT_EXPORT void | dgo_notify (struct dg_obj *dgop, Tcl_Interp *interp) |
RT_EXPORT void | dgo_notifyWdb (struct rt_wdb *wdbp, Tcl_Interp *interp) |
RT_EXPORT void | dgo_zapall () |
RT_EXPORT int | dgo_nirt_cmd (struct dg_obj *dgop, struct view_obj *vop, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | dgo_vnirt_cmd (struct dg_obj *dgop, struct view_obj *vop, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | dg_E_cmd (struct dg_obj *dgop, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT struct view_obj * | vo_open_cmd (const char *oname) |
RT_EXPORT void | vo_center (struct view_obj *vop, Tcl_Interp *interp, point_t center) |
RT_EXPORT int | vo_center_cmd (struct view_obj *vop, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT void | vo_size (struct view_obj *vop, Tcl_Interp *interp, fastf_t size) |
RT_EXPORT int | vo_size_cmd (struct view_obj *vop, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | vo_invSize_cmd (struct view_obj *vop, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT void | vo_mat_aet (struct view_obj *vop) |
RT_EXPORT int | vo_zoom (struct view_obj *vop, Tcl_Interp *interp, fastf_t sf) |
RT_EXPORT int | vo_zoom_cmd (struct view_obj *vop, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | vo_orientation_cmd (struct view_obj *vop, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | vo_lookat_cmd (struct view_obj *vop, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT void | vo_setview (struct view_obj *vop, Tcl_Interp *interp, vect_t rvec) |
RT_EXPORT int | vo_setview_cmd (struct view_obj *vop, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | vo_eye_cmd (struct view_obj *vop, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | vo_eye_pos_cmd (struct view_obj *vop, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | vo_pmat_cmd (struct view_obj *vop, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | vo_perspective_cmd (struct view_obj *vop, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT void | vo_update (struct view_obj *vop, Tcl_Interp *interp, int oflag) |
RT_EXPORT int | vo_aet_cmd (struct view_obj *vop, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | vo_rmat_cmd (struct view_obj *vop, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | vo_model2view_cmd (struct view_obj *vop, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | vo_pmodel2view_cmd (struct view_obj *vop, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | vo_view2model_cmd (struct view_obj *vop, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | vo_pov_cmd (struct view_obj *vop, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | vo_units_cmd (struct view_obj *vop, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | vo_base2local_cmd (struct view_obj *vop, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | vo_local2base_cmd (struct view_obj *vop, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | vo_rot (struct view_obj *vop, Tcl_Interp *interp, char coord, char origin, mat_t rmat, int(*func)()) |
RT_EXPORT int | vo_rot_cmd (struct view_obj *vop, Tcl_Interp *interp, int argc, char **argv, int(*func)()) |
RT_EXPORT int | vo_arot_cmd (struct view_obj *vop, Tcl_Interp *interp, int argc, char **argv, int(*func)()) |
RT_EXPORT int | vo_mrot_cmd (struct view_obj *vop, Tcl_Interp *interp, int argc, char **argv, int(*func)()) |
RT_EXPORT int | vo_tra (struct view_obj *vop, Tcl_Interp *interp, char coord, vect_t tvec, int(*func)()) |
RT_EXPORT int | vo_tra_cmd (struct view_obj *vop, Tcl_Interp *interp, int argc, char **argv, int(*func)()) |
RT_EXPORT int | vo_slew (struct view_obj *vop, Tcl_Interp *interp, vect_t svec) |
RT_EXPORT int | vo_slew_cmd (struct view_obj *vop, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | vo_observer_cmd (struct view_obj *vop, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | vo_coord_cmd (struct view_obj *vop, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | vo_rotate_about_cmd (struct view_obj *vop, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | vo_keypoint_cmd (struct view_obj *vop, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | vo_vrot_cmd (struct view_obj *vop, Tcl_Interp *interp, int argc, char **argv) |
RT_EXPORT int | vo_sca (struct view_obj *vop, Tcl_Interp *interp, fastf_t sf, int(*func)()) |
RT_EXPORT int | vo_sca_cmd (struct view_obj *vop, Tcl_Interp *interp, int argc, char **argv, int(*func)()) |
RT_EXPORT int | rt_mk_binunif (struct rt_wdb *wdbp, const char *obj_name, const char *file_name, unsigned int minor_type, long max_count) |
RT_EXPORT void | rt_binunif_free (struct rt_binunif_internal *bip) |
RT_EXPORT void | rt_binunif_dump (struct rt_binunif_internal *bip) |
int | dgo_shaded_mode_cmd () |
int | dgo_qray_cmd (struct dg_obj *dgop, Tcl_Interp *interp, int argc, char **argv) |
void | dgo_init_qray (struct dg_obj *dgop) |
void | dgo_free_qray (struct dg_obj *dgop) |
int | dgo_E_tcl (ClientData clientData, Tcl_Interp *interp, int argc, char **argv) |
int | dgo_invent_solid (struct dg_obj *dgop, Tcl_Interp *interp, char *name, struct bu_list *vhead, long int rgb, int copy, fastf_t transparency, int dmode) |
void | dgo_drawH_part2 (int dashflag, struct bu_list *vhead, struct db_full_path *pathp, struct db_tree_state *tsp, struct solid *existing_sp, struct dg_client_data *dgcdp) |
void | dgo_eraseobjpath (struct dg_obj *dgop, Tcl_Interp *interp, int argc, char **argv, int noisy, int all) |
void | dgo_color_soltab (struct solid *hsp) |
void | dgo_cvt_vlblock_to_solids (struct dg_obj *dgop, Tcl_Interp *interp, struct bn_vlblock *vbp, char *name, int copy) |
int | dgo_build_tops (Tcl_Interp *interp, struct solid *hsp, char **start, register char **end) |
void | dgo_pr_wait_status (Tcl_Interp *interp, int status) |
int | Dgo_Init (Tcl_Interp *interp) |
directory ** | dgo_build_dpp (struct dg_obj *dgop, Tcl_Interp *interp, char *path) |
int | dgo_get_eyemodel_cmd (struct dg_obj *dgop, Tcl_Interp *interp, int argc, char **argv) |
int | dgo_set_uplotOutputMode_cmd (struct dg_obj *dgop, Tcl_Interp *interp, int argc, char **argv) |
void | dgo_impending_wdb_close (struct rt_wdb *wdbp, Tcl_Interp *interp) |
void | dgo_zapall (struct rt_wdb *wdbp, Tcl_Interp *interp) |
void | do_grid (char *line) |
void | do_tri (char *line) |
void | do_quad (char *line) |
void | make_bot_object (char *name, struct rt_wdb *wdbp) |
void | Add_bot_face (int pt1, int pt2, int pt3, fastf_t thick, int pos) |
oslo_mat * | rt_nurb_calc_oslo (register int order, register const struct knot_vector *tau_kv, register struct knot_vector *t_kv, struct resource *res) |
void | rt_nurb_pr_oslo (struct oslo_mat *om) |
void | rt_nurb_free_oslo (struct oslo_mat *om, struct resource *res) |
void | dgo_qray_data_to_vlist (struct dg_obj *dgop, struct bn_vlblock *vbp, struct dg_qray_dataList *headp, vect_t dir, int do_overlaps) |
Variables | |
OPTICAL_EXPORT struct light_specific | LightHead |
RT_EXPORT struct mater * | rt_material_head |
defined in mater.c | |
OPTICAL_EXPORT int | PM_Activated |
Photon Mapping Activated, 0=off, 1=on. | |
OPTICAL_EXPORT int | PM_Visualize |
Photon Mapping Visualization of Irradiance Cache. | |
RT_EXPORT struct rt_wdb | HeadWDB |
head of BRL-CAD database object list | |
RT_EXPORT struct dg_obj | HeadDGObj |
head of drawable geometry object list | |
RT_EXPORT struct view_obj | HeadViewObj |
head of view object list | |
RT_EXPORT struct resource | rt_uniresource |
default. Defined in librt/shoot.c | |
RT_EXPORT struct rt_g | rt_g |
RT_EXPORT const struct rt_functab | rt_functab [] |
RT_EXPORT const int | rt_nfunctab |
RT_EXPORT const int | rt_arb_faces [5][24] |
RT_EXPORT short | earb8 [12][18] |
RT_EXPORT short | earb7 [12][18] |
RT_EXPORT short | earb6 [10][18] |
RT_EXPORT short | earb5 [9][18] |
RT_EXPORT short | earb4 [5][18] |
RT_EXPORT void(* | nmg_plot_anim_upcall )() |
RT_EXPORT void(* | nmg_vlblock_anim_upcall )() |
RT_EXPORT void(* | nmg_mged_debug_display_hack )() |
RT_EXPORT double | nmg_eue_dist |
RT_EXPORT fastf_t | rt_cline_radius |
RT_EXPORT int | rt_bot_minpieces |
RT_EXPORT int | rt_bot_tri_per_piece |
RT_EXPORT const struct db_tree_state | rt_initial_tree_state |
RT_EXPORT const char * | rt_vlist_cmd_descriptions [] |
RT_EXPORT const char | rt_version [] |
mater * | rt_material_head |
defined in mater.c | |
bu_cmdtab | vdraw_cmds [] |
dg_obj | HeadDGObj |
head of drawable geometry object list | |
point_t * | grid_pts |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Definition at line 62 of file mater.h. Referenced by db5_export_color_table(), dgo_color_soltab(), rt_color_free(), rt_insert_color(), rt_region_color_map(), wdb_color_cmd(), and wdb_prcolor_cmd(). |
|
invalid mt_daddr
Definition at line 63 of file mater.h. Referenced by wdb_color_cmd(). |
|
Definition at line 60 of file photonmap.h. |
|
Definition at line 62 of file photonmap.h. |
|
Definition at line 63 of file photonmap.h. |
|
Definition at line 64 of file photonmap.h. |
|
Definition at line 65 of file photonmap.h. |
|
Definition at line 67 of file photonmap.h. |
|
Definition at line 68 of file photonmap.h. |
|
Definition at line 67 of file raytrace.h. |
|
Definition at line 90 of file raytrace.h. |
|
Definition at line 94 of file raytrace.h. |
|
No debugging.
Definition at line 105 of file raytrace.h. |
|
1 Print calls to rt_shootray()
Definition at line 110 of file raytrace.h. Referenced by rt_cell_n_on_ray(), rt_shootray(), and rt_shootray_bundle(). |
|
2 Print partitions passed to a_hit()
Definition at line 111 of file raytrace.h. Referenced by rt_shootray(), and rt_shootray_bundle(). |
|
3 Info about rt_shootray() processing
Definition at line 112 of file raytrace.h. Referenced by rt_cell_n_on_ray(), rt_shootray(), and rt_shootray_bundle(). |
|
4 regionid instance revectoring
Definition at line 113 of file raytrace.h. Referenced by rt_regionfix(). |
|
5 Database debugging
Definition at line 116 of file raytrace.h. Referenced by db5_crack_disk_header(), db5_diradd_handler(), db5_realloc(), db5_replace_attributes(), db5_scan(), db5_update_attributes(), db_alloc(), db_close(), db_create(), db_delete(), db_delrec(), db_functree(), db_fwrite_external(), db_fwrite_ident(), db_get(), db_get_external(), db_getmrec(), db_lookup(), db_open(), db_preorder_traverse(), db_put(), db_put_external(), db_put_external5(), db_read(), db_scan(), db_update_ident(), db_write(), db_zapper(), and rt_submodel_prep(). |
|
6 Print prep'ed solids
Definition at line 117 of file raytrace.h. Referenced by rt_arb_uv(), rt_find_identical_solid(), and rt_submodel_prep(). |
|
7 Print regions & boolean trees
Definition at line 118 of file raytrace.h. Referenced by rt_del_regtree(), and rt_prep_parallel(). |
|
8 Print voluminus ARB8 details
Definition at line 119 of file raytrace.h. Referenced by rt_ars_shot(), rt_pgface(), and rt_rec_shot(). |
|
9 Splines
Definition at line 120 of file raytrace.h. Referenced by rt_nurb_intersect(), and rt_nurb_shot(). |
|
10 Animation
Definition at line 121 of file raytrace.h. Referenced by db_add_anim(), db_apply_anims(), db_do_anim(), and db_write_anim(). |
|
11 Animation matrices
Definition at line 122 of file raytrace.h. Referenced by db_do_anim(). |
|
12 Volume & opaque Binary solid
Definition at line 123 of file raytrace.h. Referenced by rt_retrieve_binunif(), and rt_vol_shot(). |
|
13 Print rootfinder details
Definition at line 126 of file raytrace.h. |
|
14 Info about bool_weave()
Definition at line 127 of file raytrace.h. Referenced by rt_boolweave(), rt_cell_n_on_ray(), rt_fastgen_plate_vol_overlap(), rt_fastgen_vol_vol_overlap(), rt_shootray(), rt_shootray_bundle(), and rt_weave0seg(). |
|
15 Print space cutting statistics
Definition at line 128 of file raytrace.h. Referenced by rt_nugrid_cut(). |
|
16 Object/box checking details
Definition at line 129 of file raytrace.h. Referenced by rt_ck_overlap(). |
|
17 -->> BU_DEBUG_MEM_LOG
Definition at line 130 of file raytrace.h. |
|
18 -->> BU_DEBUG_MEM_CHECK
Definition at line 131 of file raytrace.h. Referenced by do_grid(). |
|
19 bool/fdiff debugging
Definition at line 132 of file raytrace.h. Referenced by rt_fdiff(). |
|
20 -->> BU_DEBUG_PARALLEL
Definition at line 133 of file raytrace.h. |
|
21 Print space cutting details
Definition at line 134 of file raytrace.h. Referenced by rt_cut_it(). |
|
22 Database tree traversal
Definition at line 135 of file raytrace.h. Referenced by db_follow_path(), db_mkgift_tree(), db_recurse(), and rt_submodel_wireframe_leaf(). |
|
23 One-shot debugging flag
Definition at line 136 of file raytrace.h. |
|
24 Cell-to-cell space partitioning
Definition at line 137 of file raytrace.h. |
|
25 nmg math routines
Definition at line 138 of file raytrace.h. Referenced by bn_distsq_pt3_lseg3(), and nmg_loop_is_ccw(). |
|
26 Extruded bit-map solids
Definition at line 141 of file raytrace.h. Referenced by rt_ebm_dda(), and rt_seg_planeclip(). |
|
27 Height Field solids
Definition at line 142 of file raytrace.h. Referenced by rt_hf_to_dsp(), and rt_retrieve_binunif(). |
|
31 plot all solids
Definition at line 145 of file raytrace.h. |
|
32 Plot(3) bounding boxes and cuts
Definition at line 146 of file raytrace.h. |
|
Format string for bu_printb() Definition at line 149 of file raytrace.h. |
|
|
Definition at line 174 of file raytrace.h. |
|
Definition at line 175 of file raytrace.h. Referenced by rt_cell_n_on_ray(), rt_shootray(), and rt_shootray_bundle(). |
|
Definition at line 204 of file raytrace.h. Referenced by rt_ehy_export(), rt_ehy_export5(), rt_ehy_plot(), rt_ehy_prep(), rt_ehy_tess(), rt_epa_export(), rt_epa_export5(), rt_epa_plot(), rt_epa_prep(), rt_epa_tess(), rt_eto_export(), rt_eto_export5(), rt_rec_prep(), rt_rhc_export(), rt_rhc_export5(), rt_rhc_plot(), rt_rhc_prep(), rt_rhc_tess(), rt_rpc_export(), rt_rpc_export5(), rt_rpc_plot(), rt_rpc_prep(), rt_rpc_tess(), and rt_tgc_prep(). |
|
Definition at line 205 of file raytrace.h. Referenced by rt_cline_shot(), rt_ehy_export(), rt_ehy_export5(), rt_ehy_plot(), rt_ehy_prep(), rt_ehy_tess(), rt_epa_export(), rt_epa_export5(), rt_epa_plot(), rt_epa_prep(), rt_epa_tess(), rt_rec_prep(), rt_rhc_export(), rt_rhc_export5(), rt_rhc_plot(), rt_rhc_prep(), rt_rhc_tess(), rt_rpc_export(), rt_rpc_export5(), rt_rpc_plot(), rt_rpc_prep(), rt_rpc_tess(), and rt_tgc_prep(). |
|
Definition at line 206 of file raytrace.h. Referenced by rt_ehy_shot(), rt_epa_shot(), rt_rhc_shot(), rt_rpc_shot(), rt_tgc_shot(), and rt_tgc_vshot(). |
|
Definition at line 221 of file raytrace.h. Referenced by bu_identify_magic(), dgo_E_cmd(), wdb_dbopen(), and wdb_init_obj(). |
|
Definition at line 222 of file raytrace.h. Referenced by nmg_booltree_leaf_tess(), nmg_booltree_leaf_tnurb(), rt_pipe_tess(), rt_rhc_tess(), rt_rpc_tess(), rt_submodel_wireframe_leaf(), rt_vol_tess(), and tesselate_pipe_bend(). |
|
Definition at line 238 of file raytrace.h. Referenced by rt_db_lookup_internal(). |
|
Definition at line 239 of file raytrace.h. Referenced by bu_identify_magic(), and rt_ars_prep(). |
|
Value: {(_p)->idb_magic = RT_DB_INTERNAL_MAGIC; \ (_p)->idb_type = -1; (_p)->idb_ptr = GENPTR_NULL;\ (_p)->idb_avs.magic = -1;} Definition at line 240 of file raytrace.h. Referenced by add_solid(), db_recurse(), nmg_stash_model_to_file(), rt_bot_xform(), rt_db_free_internal(), rt_db_get_internal(), rt_db_get_internal5(), rt_extrude_ifree(), rt_extrude_xform(), rt_generic_xform(), rt_mk_binunif(), rt_retrieve_binunif(), wdb_bot_decimate_cmd(), wdb_combadd(), wdb_export(), wdb_facetize_cmd(), wdb_make_bb_cmd(), wdb_nmg_simplify_cmd(), wdb_put_cmd(), and wdb_shells_cmd(). |
|
|
Definition at line 256 of file raytrace.h. Referenced by db_recurse_subtree(). |
|
Definition at line 257 of file raytrace.h. Referenced by db_add_anim(), db_follow_path(), db_recurse(), nmg_booltree_leaf_tess(), nmg_booltree_leaf_tnurb(), rt_gettree_leaf(), rt_submodel_wireframe_leaf(), and rt_tcl_import_from_path(). |
|
Definition at line 258 of file raytrace.h. Referenced by dgo_illum_cmd(). |
|
Definition at line 259 of file raytrace.h. Referenced by bu_identify_magic(), db_argv_to_path(), db_full_path_init(), db_string_to_path(), and rt_tcl_pr_hit(). |
|
|
Definition at line 276 of file raytrace.h. |
|
"xray"
Definition at line 277 of file raytrace.h. Referenced by bu_identify_magic(), rt_cell_n_on_ray(), rt_raybundle_maker(), rt_shootray(), and rt_shootray_bundle(). |
|
Definition at line 278 of file raytrace.h. Referenced by rt_boolweave(), rt_cell_n_on_ray(), rt_hlf_norm(), rt_shootray(), and rt_shootray_bundle(). |
|
Definition at line 302 of file raytrace.h. Referenced by rt_boolweave(). |
|
" hit"
Definition at line 303 of file raytrace.h. Referenced by bend_pipe_shot(), bu_identify_magic(), linear_pipe_shot(), pipe_end_shot(), pipe_start_shot(), rt_ars_shot(), rt_ehy_shot(), rt_epa_shot(), rt_part_shot(), rt_pg_shot(), rt_rec_shot(), rt_rhc_shot(), and rt_rpc_shot(). |
|
Definition at line 304 of file raytrace.h. Referenced by rt_boolweave(), rt_pr_hit(), rt_pr_hit_vls(), rt_pr_hitarray_vls(), rt_submodel_norm(), and rt_submodel_uv(). |
|
Value: { \ RT_CK_HIT(_hitp); \ RT_CK_SOLTAB(_stp); \ (_stp)->st_meth->ft_norm(_hitp, _stp, (_hitp)->hit_rayp); } Definition at line 313 of file raytrace.h. Referenced by rt_ars_shot(). |
|
Value: { \ RT_CK_HIT(_hitp); \ RT_CK_SOLTAB(_stp); \ RT_CK_FUNCTAB((_stp)->st_meth); \ (_stp)->st_meth->ft_norm(_hitp, _stp, (_hitp)->hit_rayp); \ if( _flipflag ) { \ VREVERSE( _normal, (_hitp)->hit_normal ); \ } else { \ VMOVE( _normal, (_hitp)->hit_normal ); \ } \ } Definition at line 325 of file raytrace.h. Referenced by rt_tcl_pr_hit(). |
|
Definition at line 358 of file raytrace.h. |
|
Value: { \ RT_CK_HIT(_hitp); \ RT_CK_SOLTAB(_stp); \ RT_CK_FUNCTAB((_stp)->st_meth); \ (_stp)->st_meth->ft_curve( _curvp, _hitp, _stp ); \ if( _flipflag ) { \ (_curvp)->crv_c1 = - (_curvp)->crv_c1; \ (_curvp)->crv_c2 = - (_curvp)->crv_c2; \ } \ } In Release 4.4 and earlier, this was called RT_CURVE(). When the extra argument was added the name was changed. Definition at line 367 of file raytrace.h. Referenced by rt_tcl_pr_hit(). |
|
Value: { \ RT_CK_HIT(_hitp); \ RT_CK_SOLTAB(_stp); \ RT_CK_FUNCTAB((_stp)->st_meth); \ (_stp)->st_meth->ft_uv( ap, _stp, _hitp, uvp ); } Definition at line 392 of file raytrace.h. Referenced by rt_submodel_a_hit(). |
|
Definition at line 418 of file raytrace.h. Referenced by rt_boolweave(). |
|
Definition at line 419 of file raytrace.h. Referenced by bu_identify_magic(), rt_get_seg(), and shoot_and_plot(). |
|
Definition at line 421 of file raytrace.h. Referenced by rt_boolweave(). |
|
Definition at line 422 of file raytrace.h. Referenced by rt_clean_resource(), rt_fastgen_vol_vol_overlap(), rt_get_region_seglist_for_partition(), rt_pr_pt_vls(), rt_pr_seg(), rt_pr_seg_vls(), rt_submodel_a_hit(), and rt_tcl_pr_hit(). |
|
Value: { \ while( !BU_LIST_WHILE((p),seg,&((res)->re_seg)) || !(p) ) \ rt_get_seg(res); \ BU_LIST_DEQUEUE( &((p)->l) ); \ (p)->l.forw = (p)->l.back = BU_LIST_NULL; \ (p)->seg_in.hit_magic = (p)->seg_out.hit_magic = RT_HIT_MAGIC; \ res->re_segget++; } Definition at line 424 of file raytrace.h. Referenced by do_intersect(), do_subtract(), do_union(), eval_op(), promote_ints(), rt_arb_shot(), rt_arbn_shot(), rt_cline_shot(), rt_ebm_dda(), rt_ell_shot(), rt_epa_shot(), rt_metaball_shot(), rt_nurb_shot(), rt_part_shot(), rt_pipe_shot(), rt_rec_shot(), rt_rhc_shot(), rt_rpc_shot(), rt_sph_shot(), rt_submodel_a_hit(), rt_vol_shot(), and shoot_and_plot(). |
|
Value: { \ RT_CHECK_SEG(p); \ BU_LIST_INSERT( &((res)->re_seg), &((p)->l) ); \ res->re_segfree++; } Definition at line 432 of file raytrace.h. Referenced by classify_seg(), eliminate_overlaps(), eval_op(), promote_ints(), rt_seg_planeclip(), and shoot_and_plot(). |
|
Value: { \ register struct seg *_a; \ while( BU_LIST_WHILE( _a, seg, &((_segheadp)->l) ) ) { \ BU_LIST_DEQUEUE( &(_a->l) ); \ RT_FREE_SEG( _a, _res ); \ } } Definition at line 441 of file raytrace.h. |
|
Definition at line 498 of file raytrace.h. |
|
Definition at line 499 of file raytrace.h. Referenced by db_free_tree(), rt_find_identical_solid(), and rt_find_solid(). |
|
backwards compat
Definition at line 500 of file raytrace.h. Referenced by rt_prep_parallel(), rt_shootray(), and rt_tree_kill_dead_solid_refs(). |
|
l.magic
Definition at line 501 of file raytrace.h. Referenced by add_solid(), bu_identify_magic(), rt_find_identical_solid(), and wdb_get_obj_bounds2(). |
|
l2.magic
Definition at line 502 of file raytrace.h. Referenced by add_solid(), rt_find_identical_solid(), and wdb_get_obj_bounds2(). |
|
Definition at line 504 of file raytrace.h. Referenced by rt_ck_overlap(), rt_clean(), and rt_cut_one_axis(). |
|
|
Unused.
Definition at line 510 of file raytrace.h. Referenced by IDEF(), rt_db_lookup_internal(), rt_ebm_ifree(), rt_ebm_import(), rt_ebm_import5(), rt_hf_import(), rt_submodel_import(), and rt_submodel_import5(). |
|
Toroid.
Definition at line 511 of file raytrace.h. Referenced by IDEF(), rt_tor_export(), rt_tor_export5(), rt_tor_import(), and rt_tor_import5(). |
|
Generalized Truncated General Cone.
Definition at line 512 of file raytrace.h. Referenced by IDEF(), rt_tgc_export(), rt_tgc_export5(), rt_tgc_import(), rt_tgc_import5(), and wdb_nmg_simplify_cmd(). |
|
Ellipsoid.
Definition at line 513 of file raytrace.h. Referenced by IDEF(), rt_ell_export(), rt_ell_export5(), rt_ell_import(), and rt_ell_import5(). |
|
Generalized ARB. V + 7 vectors.
Definition at line 514 of file raytrace.h. Referenced by IDEF(), rt_arb_export(), rt_arb_export5(), rt_arb_import(), rt_arb_import5(), rt_arb_std_type(), wdb_make_bb_cmd(), and wdb_nmg_simplify_cmd(). |
|
ARS.
Definition at line 515 of file raytrace.h. Referenced by rt_ars_export(), rt_ars_export5(), rt_ars_import(), rt_ars_import5(), and rt_id_solid(). |
|
Half-space.
Definition at line 516 of file raytrace.h. Referenced by add_solid(), fix_halfs(), IDEF(), rt_hlf_export(), rt_hlf_export5(), rt_hlf_import(), and rt_hlf_import5(). |
|
Right Elliptical Cylinder [TGC special].
Definition at line 517 of file raytrace.h. Referenced by rt_rec_prep(), rt_tgc_export(), and rt_tgc_export5(). |
|
Polygonal facted object.
Definition at line 518 of file raytrace.h. Referenced by rt_id_solid(), rt_pg_export(), rt_pg_import(), rt_pg_to_bot(), and wdb_nmg_simplify_cmd(). |
|
B-spline object.
Definition at line 519 of file raytrace.h. Referenced by rt_id_solid(), rt_nurb_export(), rt_nurb_export5(), rt_nurb_import(), and rt_nurb_import5(). |
|
Sphere.
Definition at line 520 of file raytrace.h. Referenced by rt_ell_export(), rt_ell_export5(), and rt_sph_prep(). |
|
n-Manifold Geometry solid
Definition at line 521 of file raytrace.h. Referenced by add_solid(), nmg_stash_model_to_file(), rt_id_solid(), rt_nmg_export(), rt_nmg_export5(), rt_nmg_export_internal(), rt_nmg_make(), wdb_facetize_cmd(), wdb_nmg_collapse_cmd(), wdb_nmg_simplify_cmd(), and wdb_shells_cmd(). |
|
Extruded bitmap solid.
Definition at line 522 of file raytrace.h. Referenced by rt_ebm_export(), rt_ebm_export5(), rt_ebm_import(), rt_ebm_import5(), rt_ebm_make(), and rt_id_solid(). |
|
3-D Volume
Definition at line 523 of file raytrace.h. Referenced by rt_id_solid(), rt_vol_export(), rt_vol_export5(), rt_vol_import(), and rt_vol_import5(). |
|
ARB with N faces.
Definition at line 524 of file raytrace.h. Referenced by rt_arbn_export(), rt_arbn_export5(), rt_arbn_import(), rt_arbn_import5(), and rt_id_solid(). |
|
Pipe (wire) solid.
Definition at line 525 of file raytrace.h. Referenced by rt_id_solid(), rt_pipe_export(), rt_pipe_export5(), rt_pipe_import(), and rt_pipe_import5(). |
|
Particle system solid.
Definition at line 526 of file raytrace.h. Referenced by rt_id_solid(), rt_part_export(), rt_part_export5(), rt_part_import(), and rt_part_import5(). |
|
Right Parabolic Cylinder.
Definition at line 527 of file raytrace.h. Referenced by IDEF(), rt_rpc_export(), rt_rpc_export5(), rt_rpc_import(), rt_rpc_import5(), and rt_rpc_prep(). |
|
Right Hyperbolic Cylinder.
Definition at line 528 of file raytrace.h. Referenced by IDEF(), rt_rhc_export(), rt_rhc_export5(), rt_rhc_import(), rt_rhc_import5(), and rt_rhc_prep(). |
|
Elliptical Paraboloid.
Definition at line 529 of file raytrace.h. Referenced by IDEF(), rt_epa_export(), rt_epa_export5(), rt_epa_import(), rt_epa_import5(), and rt_epa_prep(). |
|
Elliptical Hyperboloid.
Definition at line 530 of file raytrace.h. Referenced by IDEF(), rt_ehy_export(), rt_ehy_export5(), rt_ehy_import(), rt_ehy_import5(), and rt_ehy_prep(). |
|
Elliptical Torus.
Definition at line 531 of file raytrace.h. Referenced by IDEF(), rt_eto_export(), rt_eto_export5(), rt_eto_import(), and rt_eto_import5(). |
|
Pseudo Solid Grip.
Definition at line 532 of file raytrace.h. Referenced by IDEF(), rt_grp_export(), rt_grp_export5(), rt_grp_import(), and rt_grp_import5(). |
|
Pseudo Solid/Region Joint.
Definition at line 533 of file raytrace.h. |
|
Height Field.
Definition at line 534 of file raytrace.h. Referenced by rt_hf_export(), rt_hf_import(), and rt_id_solid(). |
|
Displacement map.
Definition at line 535 of file raytrace.h. Referenced by dsp_pos(), rt_dsp_export(), rt_dsp_export5(), rt_dsp_import(), rt_dsp_import5(), rt_dsp_make(), rt_hf_to_dsp(), and rt_id_solid(). |
|
2D sketch
Definition at line 536 of file raytrace.h. Referenced by rt_extrude_ifree(), rt_extrude_import(), rt_extrude_import5(), rt_id_solid(), rt_sketch_export(), rt_sketch_export5(), rt_sketch_import(), and rt_sketch_import5(). |
|
Solid of extrusion.
Definition at line 537 of file raytrace.h. Referenced by rt_extrude_export(), rt_extrude_export5(), rt_extrude_import(), rt_extrude_import5(), rt_extrude_xform(), and rt_id_solid(). |
|
Instanced submodel.
Definition at line 538 of file raytrace.h. Referenced by rt_id_solid(), rt_submodel_export(), rt_submodel_export5(), rt_submodel_import(), and rt_submodel_import5(). |
|
FASTGEN4 CLINE solid.
Definition at line 539 of file raytrace.h. Referenced by rt_cline_export(), rt_cline_export5(), rt_cline_import(), rt_cline_import5(), and rt_id_solid(). |
|
Bag o' triangles.
Definition at line 540 of file raytrace.h. Referenced by add_solid(), rt_ars_prep(), rt_bot_export(), rt_bot_export5(), rt_bot_import(), rt_bot_import5(), rt_bot_xform(), rt_id_solid(), wdb_facetize_cmd(), and wdb_smooth_bot_cmd(). |
|
Maximum defined ID_xxx for solids.
Definition at line 545 of file raytrace.h. Referenced by rt_id_solid(), rt_pr_soltab(), rt_prep_parallel(), rt_shootray(), and wdb_export(). |
|
Combination Record.
Definition at line 550 of file raytrace.h. Referenced by add_solid(), db5_diradd(), db_diradd5(), db_flags_internal(), main(), rt_comb_export4(), rt_comb_export5(), rt_comb_import5(), rt_comb_make(), rt_db_get_internal(), wdb_combadd(), and wdb_export(). |
|
Experimental binary.
Definition at line 551 of file raytrace.h. |
|
Uniform-array binary.
Definition at line 552 of file raytrace.h. Referenced by rt_binunif_import5(), rt_binunif_make(), rt_db_external5_to_internal5(), rt_mk_binunif(), and rt_retrieve_binunif(). |
|
MIME-typed binary.
Definition at line 553 of file raytrace.h. |
|
Superquadratic ellipsoid.
Definition at line 556 of file raytrace.h. Referenced by rt_superell_export(), rt_superell_export5(), rt_superell_import(), and rt_superell_import5(). |
|
Metaball.
Definition at line 557 of file raytrace.h. Referenced by rt_metaball_export5(), and rt_metaball_import5(). |
|
Maximum defined ID_xxx value.
Definition at line 559 of file raytrace.h. |
|
Definition at line 601 of file raytrace.h. Referenced by facetize_region_end(), rt_booleval(), rt_default_logoverlap(), rt_fastgen_plate_vol_overlap(), rt_fastgen_vol_vol_overlap(), rt_getregion(), rt_plot_solid(), rt_prep_parallel(), rt_region_color_map(), and rt_rpp_region(). |
|
Definition at line 602 of file raytrace.h. Referenced by bu_identify_magic(), and rt_gettree_region_end(). |
|
|
Definition at line 631 of file raytrace.h. Referenced by rt_boolweave(), and rt_partition_len(). |
|
Definition at line 632 of file raytrace.h. Referenced by bu_identify_magic(). |
|
Definition at line 633 of file raytrace.h. Referenced by rt_fastgen_plate_vol_overlap(), rt_shootray(), and rt_shootray_bundle(). |
|
compat
Definition at line 635 of file raytrace.h. Referenced by rt_pr_partitions(), rt_pr_pt(), and rt_pr_pt_vls(). |
|
Definition at line 636 of file raytrace.h. Referenced by _rt_defoverlap(), rt_bool_partition_eligible(), rt_booleval(), rt_clean_resource(), rt_default_logoverlap(), rt_fastgen_plate_vol_overlap(), rt_partition_len(), rt_silent_logoverlap(), rt_submodel_a_hit(), rt_tcl_a_hit(), and rt_tree_test_ready(). |
|
Definition at line 637 of file raytrace.h. Referenced by rt_default_multioverlap(), rt_rebuild_overlaps(), and rt_tree_max_raynum(). |
|
Definition at line 638 of file raytrace.h. Referenced by rt_boolfinal(), rt_boolweave(), rt_default_multioverlap(), rt_rebuild_overlaps(), rt_submodel_a_hit(), rt_tcl_a_hit(), and rt_weave0seg(). |
|
1st elem to copy
Definition at line 641 of file raytrace.h. |
|
copy up to this elem (non-inclusive)
Definition at line 642 of file raytrace.h. |
|
Definition at line 643 of file raytrace.h. |
|
Value: { \ GET_PT(ip,new,res); \ memcpy((char *)(&(new)->RT_PT_MIDDLE_START), (char *)(&(old)->RT_PT_MIDDLE_START), RT_PT_MIDDLE_LEN(old) ); \ (new)->pt_overlap_reg = NULL; \ bu_ptbl_cat( &(new)->pt_seglist, &(old)->pt_seglist ); } Definition at line 646 of file raytrace.h. Referenced by rt_boolweave(), and rt_rebuild_overlaps(). |
|
Value: {\ GET_PT(ip,p,res); \ memset( ((char *) &(p)->RT_PT_MIDDLE_START), 0, RT_PT_MIDDLE_LEN(p) ); } Definition at line 653 of file raytrace.h. Referenced by rt_boolweave(), and rt_weave0seg(). |
|
Value: { \ if( BU_LIST_NON_EMPTY_P(p, partition, &res->re_parthead) ) { \ BU_LIST_DEQUEUE((struct bu_list *)(p)); \ bu_ptbl_reset( &(p)->pt_seglist ); \ } else { \ (p) = (struct partition *)bu_calloc(1, sizeof(struct partition), "struct partition"); \ (p)->pt_magic = PT_MAGIC; \ bu_ptbl_init( &(p)->pt_seglist, 42, "pt_seglist ptbl" ); \ (res)->re_partlen++; \ } \ res->re_partget++; } Definition at line 657 of file raytrace.h. |
|
Value: { \ BU_LIST_APPEND( &(res->re_parthead), (struct bu_list *)(p) ); \ if( (p)->pt_overlap_reg ) { \ bu_free( (genptr_t)((p)->pt_overlap_reg), "pt_overlap_reg" );\ (p)->pt_overlap_reg = NULL; \ } \ res->re_partfree++; } Definition at line 669 of file raytrace.h. Referenced by rt_fastgen_plate_vol_overlap(), and rt_rebuild_overlaps(). |
|
Value: { \ register struct partition *_pp, *_zap; \ for( _pp = (_headp)->pt_forw; _pp != (_headp); ) { \ _zap = _pp; \ _pp = _pp->pt_forw; \ BU_LIST_DEQUEUE( (struct bu_list *)(_zap) ); \ FREE_PT(_zap, _res); \ } \ (_headp)->pt_forw = (_headp)->pt_back = (_headp); \ } Definition at line 677 of file raytrace.h. |
|
Insert "new" partition in front of "old" partition. Note order change Definition at line 689 of file raytrace.h. Referenced by rt_boolweave(). |
|
Append "new" partition after "old" partition. Note arg order change Definition at line 692 of file raytrace.h. Referenced by rt_boolweave(), and rt_weave0seg(). |
|
Dequeue "cur" partition from doubly-linked list Definition at line 695 of file raytrace.h. Referenced by rt_fastgen_plate_vol_overlap(). |
|
Definition at line 746 of file raytrace.h. Referenced by rt_advance_to_next_cell(), rt_cell_n_on_ray(), rt_ct_get(), rt_cut_clean(), rt_fr_cut(), rt_pr_cut(), rt_res_pieces_init(), rt_shootray(), rt_shootray_bundle(), and rt_tcl_cutter(). |
|
Definition at line 759 of file raytrace.h. Referenced by db5_realloc(), rt_memalloc(), rt_memalloc_nosplit(), rt_memclose(), rt_memfree(), rt_memget(), rt_memget_nosplit(), and rt_mempurge(). |
|
size of hash table The directory is organized as forward linked lists hanging off of one of RT_DBNHASH headers in the db_i structure. Definition at line 766 of file raytrace.h. Referenced by db_ck_directory(), db_close(), db_dump(), db_free_anim(), db_get_directory_size(), db_is_directory_non_empty(), db_open(), db_open_inmem(), db_pr_dir(), db_regexp_match_all(), db_update_nref(), rt_clean(), rt_new_rti(), and wdb_tops_cmd(). |
|
Definition at line 771 of file raytrace.h. Referenced by db_dirhash(). |
|
Definition at line 808 of file raytrace.h. Referenced by db_create(), db_open(), db_open_inmem(), dgo_invent_solid(), rt_dirbuild(), rt_submodel_plot(), rt_submodel_prep(), wdb_check_syntax(), wdb_concat_cmd(), wdb_dir_check(), wdb_dir_check5(), wdb_dup_cmd(), wdb_fopen_v(), wdb_prep_dbip(), and wdb_reopen_cmd(). |
|
Definition at line 809 of file raytrace.h. Referenced by bu_identify_magic(), and db_open(). |
|
Definition at line 811 of file raytrace.h. Referenced by db_apply_state_from_one_member(), db_follow_path(), db_functree_subtree(), db_path_to_mat(), db_recurse(), db_traverse_subtree(), db_walk_tree(), wdb_facetize_cmd(), and wdb_push_cmd(). |
|
Definition at line 812 of file raytrace.h. |
|
|
Definition at line 814 of file raytrace.h. Referenced by wdb_adjust_cmd(), wdb_dump_cmd(), wdb_rt_gettrees_cmd(), and wdb_tops_cmd(). |
|
|
Directory assistance.
Definition at line 860 of file raytrace.h. Referenced by bu_identify_magic(), db_get_directory(), and db_update_ident(). |
|
|
Definition at line 863 of file raytrace.h. Referenced by dgo_who_cmd(). |
|
Special marker for d_addr field.
Definition at line 864 of file raytrace.h. Referenced by db_recurse(), dgo_build_tops(), dgo_get_autoview_cmd(), dgo_invent_solid(), dgo_who_cmd(), dgo_zap_cmd(), wdb_kill_cmd(), and wdb_killtree_cmd(). |
|
this name is a solid
Definition at line 867 of file raytrace.h. Referenced by db5_diradd(), db_diradd5(), db_flags_internal(), db_flags_raw_internal(), db_pr_dir(), db_scan(), dgo_invent_solid(), wdb_facetize_cmd(), wdb_ls_cmd(), wdb_shells_cmd(), and wdb_xpush_cmd(). |
|
combination
Definition at line 868 of file raytrace.h. Referenced by db5_diradd(), db_diradd5(), db_flags_internal(), db_flags_raw_internal(), db_follow_path(), db_functree(), db_pr_dir(), db_preorder_traverse(), db_recurse(), db_scan(), rt_db_get_internal(), rt_find_paths(), wdb_comb_std_cmd(), wdb_ls_cmd(), and wdb_showmats_cmd(). |
|
region
Definition at line 869 of file raytrace.h. Referenced by db5_diradd(), db_diradd5(), db_flags_internal(), db_flags_raw_internal(), db_pr_dir(), db_scan(), rt_find_paths(), wdb_combadd(), wdb_ls_cmd(), wdb_rmap_cmd(), wdb_summary_cmd(), wdb_vls_col_pr4v(), wdb_vls_line_dpp(), wdb_vls_long_dpp(), and wdb_whatid_cmd(). |
|
object name is hidden
Definition at line 870 of file raytrace.h. Referenced by db5_diradd(), db_create_inmem(), db_diradd5(), wdb_find_cmd(), wdb_ls_cmd(), and wdb_rmap_cmd(). |
|
object is not geometry (e.g. binary object)
Definition at line 871 of file raytrace.h. Referenced by db5_diradd(), db_create_inmem(), db_diradd5(), and db_flags_raw_internal(). |
|
One bit, used similar to d_nref.
Definition at line 872 of file raytrace.h. |
|
object is in memory (only) Args to db_lookup()
Definition at line 873 of file raytrace.h. Referenced by db5_realloc(), db5_write_free(), db_alloc(), db_create_inmem(), db_delete(), db_diradd(), db_dirdelete(), db_get(), db_get_external(), db_getmrec(), db_inmem(), db_pr_dir(), db_put(), db_put_external(), db_put_external5(), db_zapper(), and rt_db_put_internal5(). |
|
|
|
Value: { int _i; \ for( _i = RT_DBNHASH-1; _i >= 0; _i-- ) { \ for( (_dp) = (_dbip)->dbi_Head[_i]; (_dp); (_dp) = (_dp)->d_forw ) { Definition at line 879 of file raytrace.h. Referenced by db_lookup_by_attr(), and wdb_concat_cmd(). |
|
Definition at line 883 of file raytrace.h. Referenced by wdb_concat_cmd(). |
|
Value: { \ if( strlen(_name) < sizeof((_dp)->d_shortname) ) {\ strncpy( (_dp)->d_shortname, (_name), sizeof((_dp)->d_shortname) ); \ (_dp)->d_namep = (_dp)->d_shortname; \ } else { \ (_dp)->d_namep = bu_strdup(_name); /* Calls bu_malloc() */ \ } } Definition at line 885 of file raytrace.h. Referenced by db5_diradd(), db_diradd(), db_diradd5(), and db_update_ident(). |
|
Value: { \ if( (_dp)->d_namep != (_dp)->d_shortname ) \ bu_free((_dp)->d_namep, "d_namep"); \ (_dp)->d_namep = NULL; } Definition at line 894 of file raytrace.h. Referenced by db_close(), and db_dirdelete(). |
|
Value: { \ while( ((_p) = (_res)->re_directory_hd) == NULL ) \ db_get_directory(_res); \ (_res)->re_directory_hd = (_p)->d_forw; \ (_p)->d_forw = NULL; } Definition at line 901 of file raytrace.h. Referenced by db5_diradd(), db_diradd(), and db_diradd5(). |
|
"ComI"
Definition at line 940 of file raytrace.h. Referenced by rt_comb_import5(), rt_comb_make(), and wdb_combadd(). |
|
Definition at line 941 of file raytrace.h. |
|
Definition at line 942 of file raytrace.h. Referenced by add_solid(), db_apply_state_from_comb(), db_comb_describe(), db_flags_internal(), db_follow_path(), db_recurse(), main(), rt_comb_describe(), rt_comb_export4(), rt_comb_export5(), rt_comb_tcladjust(), wdb_comb_std_cmd(), wdb_combadd(), and wdb_remove_cmd(). |
|
Definition at line 943 of file raytrace.h. |
|
Definition at line 944 of file raytrace.h. Referenced by rt_comb_tclget(). |
|
Definition at line 969 of file raytrace.h. Referenced by rt_binunif_import5(), rt_binunif_make(), and rt_mk_binunif(). |
|
Definition at line 970 of file raytrace.h. Referenced by rt_binunif_tcladjust(), and rt_binunif_tclget(). |
|
Definition at line 971 of file raytrace.h. Referenced by rt_binunif_describe(), rt_binunif_dump(), rt_binunif_export5(), rt_binunif_free(), rt_binunif_ifree(), rt_dsp_import(), rt_dsp_norm(), rt_dsp_plot(), rt_dsp_prep(), rt_dsp_shot(), and rt_retrieve_binunif(). |
|
Definition at line 972 of file raytrace.h. |
|
Definition at line 973 of file raytrace.h. |
|
Subtraction encountered above.
Definition at line 1022 of file raytrace.h. Referenced by db_apply_state_from_comb(), db_apply_state_from_one_member(), and db_recurse_subtree(). |
|
Intersection encountered above.
Definition at line 1023 of file raytrace.h. Referenced by db_apply_state_from_comb(), db_apply_state_from_one_member(), and db_recurse_subtree(). |
|
Region encountered above.
Definition at line 1024 of file raytrace.h. Referenced by db_apply_state_from_comb(), db_apply_state_from_memb(), and db_walk_subtree(). |
|
"dbts"
Definition at line 1026 of file raytrace.h. Referenced by db_init_db_tree_state(). |
|
|
"dbtr"
Definition at line 1053 of file raytrace.h. |
|
Value: {(_p)->magic = RT_DBTR_MAGIC; \ (_p)->dbip = GENPTR_NULL; (_p)->comb_enter_func = GENPTR_NULL; \ (_p)->comb_exit_func = GENPTR_NULL; (_p)->leaf_func = GENPTR_NULL; \ (_p)->resp = GENPTR_NULL; (_p)->client_data = GENPTR_NULL;} Definition at line 1054 of file raytrace.h. |
|
Definition at line 1058 of file raytrace.h. Referenced by db_preorder_traverse(), and db_traverse_subtree(). |
|
Definition at line 1068 of file raytrace.h. Referenced by bu_identify_magic(), db_dup_combined_tree_state(), and db_new_combined_tree_state(). |
|
Definition at line 1069 of file raytrace.h. Referenced by db_ck_tree(), db_dup_combined_tree_state(), db_free_combined_tree_state(), db_pr_combined_tree_state(), db_walk_dispatcher(), and db_walk_subtree(). |
|
Definition at line 1076 of file raytrace.h. |
|
Leaf: tr_stp -> solid.
Definition at line 1078 of file raytrace.h. Referenced by build_etree(), db_ck_tree(), db_count_subtree_regions(), db_count_tree_nodes(), db_dup_subtree(), db_free_tree(), db_is_tree_all_unions(), db_non_union_push(), db_tally_subtree_regions(), db_tree_del_lhs(), db_tree_del_rhs(), db_tree_nleaves(), Eplot(), eval_etree(), free_etree(), rt_booleval(), rt_bound_tree(), rt_optim_tree(), rt_pr_tree_str(), rt_pr_tree_val(), rt_pr_tree_vls(), rt_solid_bitfinder(), rt_tree_elim_nops(), rt_tree_kill_dead_solid_refs(), rt_tree_max_raynum(), rt_tree_region_assign(), and rt_tree_test_ready(). |
|
|
|
|
|
Leaf: tr_stp -> combined_tree_state.
Definition at line 1083 of file raytrace.h. Referenced by db_ck_tree(), db_count_subtree_regions(), db_count_tree_nodes(), db_dup_subtree(), db_free_tree(), db_gettree_leaf(), db_gettree_region_end(), db_is_tree_all_unions(), db_non_union_push(), db_tally_subtree_regions(), db_tree_del_lhs(), db_tree_del_rhs(), db_tree_nleaves(), db_walk_subtree(), rt_pr_tree_str(), and rt_pr_tree_vls(). |
|
|
|
Unary: not L, or else!
Definition at line 1087 of file raytrace.h. Referenced by db_ck_tree(), db_count_subtree_regions(), db_count_tree_nodes(), db_dup_subtree(), db_free_tree(), db_is_tree_all_unions(), db_tally_subtree_regions(), db_tcl_tree_describe(), db_tcl_tree_parse(), db_tree_describe(), db_tree_nleaves(), db_walk_subtree(), rt_booleval(), rt_pr_tree_str(), rt_pr_tree_val(), rt_pr_tree_vls(), rt_tree_elim_nops(), rt_tree_kill_dead_solid_refs(), and rt_tree_region_assign(). |
|
Unary: L, mark region.
Definition at line 1088 of file raytrace.h. Referenced by db_ck_tree(), db_count_subtree_regions(), db_count_tree_nodes(), db_dup_subtree(), db_free_tree(), db_is_tree_all_unions(), db_tally_subtree_regions(), db_tcl_tree_describe(), db_tcl_tree_parse(), db_tree_describe(), db_tree_nleaves(), db_walk_subtree(), rt_booleval(), rt_pr_tree_vls(), rt_tree_elim_nops(), rt_tree_kill_dead_solid_refs(), and rt_tree_region_assign(). |
|
Leaf: tr_stp -> nmgregion.
Definition at line 1089 of file raytrace.h. Referenced by db_free_tree(), db_tree_del_lhs(), db_tree_del_rhs(), nmg_boolean(), and nmg_booltree_evaluate(). |
|
|
Unary: L has free chain.
Definition at line 1092 of file raytrace.h. Referenced by db_free_tree(). |
|
Definition at line 1130 of file raytrace.h. |
|
Definition at line 1131 of file raytrace.h. Referenced by rt_booleval(). |
|
|
Definition at line 1134 of file raytrace.h. Referenced by bu_identify_magic(), db_free_tree(), db_gettree_leaf(), db_gettree_region_end(), db_non_union_push(), db_recurse(), db_tcl_tree_parse(), db_walk_tree(), facetize_region_end(), rt_comb_import5(), wdb_add_operand(), wdb_combadd(), wdb_do_inter(), and wdb_do_union_subtr(). |
|
|
Definition at line 1148 of file raytrace.h. |
|
Definition at line 1151 of file raytrace.h. Referenced by dgo_nirt_cmd(), and wdb_comb_std_cmd(). |
|
Definition at line 1152 of file raytrace.h. Referenced by dgo_nirt_cmd(). |
|
Definition at line 1186 of file raytrace.h. Referenced by bu_identify_magic(), and wdb_dbopen(). |
|
Definition at line 1187 of file raytrace.h. |
|
Definition at line 1188 of file raytrace.h. |
|
Definition at line 1189 of file raytrace.h. Referenced by db_create_inmem(), db_dump(), rt_tcl_import_from_path(), wdb_close(), wdb_deleteProc(), wdb_export(), wdb_export_external(), wdb_hide_cmd(), wdb_node_write(), wdb_put_internal(), wdb_title_cmd(), and wdb_unhide_cmd(). |
|
Definition at line 1190 of file raytrace.h. Referenced by wdb_dump_cmd(), wdb_match_cmd(), wdb_rt_gettrees_cmd(), and wdb_tops_cmd(). |
|
Definition at line 1191 of file raytrace.h. Referenced by dgo_impending_wdb_close(), wdb_create_cmd(), wdb_dbopen(), wdb_dump_cmd(), wdb_fopen_v(), and wdb_init_obj(). |
|
Definition at line 1192 of file raytrace.h. Referenced by wdb_dbopen(), wdb_export_external(), and wdb_fopen_v(). |
|
Definition at line 1193 of file raytrace.h. Referenced by wdb_dbopen(), and wdb_export_external(). |
|
Definition at line 1194 of file raytrace.h. Referenced by wdb_dbopen(), and wdb_export_external(). |
|
Definition at line 1195 of file raytrace.h. Referenced by wdb_dbopen(), and wdb_export_external(). |
|
Definition at line 1202 of file raytrace.h. |
|
Definition at line 1203 of file raytrace.h. |
|
Definition at line 1204 of file raytrace.h. |
|
Definition at line 1205 of file raytrace.h. |
|
Definition at line 1212 of file raytrace.h. |
|
Definition at line 1283 of file raytrace.h. |
|
Definition at line 1316 of file raytrace.h. |
|
Definition at line 1317 of file raytrace.h. |
|
Definition at line 1318 of file raytrace.h. Referenced by vo_zoom(). |
|
Replace stacked matrix.
Definition at line 1334 of file raytrace.h. Referenced by db_do_anim(), db_parse_1anim(), and db_write_anim(). |
|
Replace arc matrix.
Definition at line 1335 of file raytrace.h. Referenced by db_do_anim(), db_parse_1anim(), and db_write_anim(). |
|
Left (root side) mul.
Definition at line 1336 of file raytrace.h. Referenced by db_do_anim(), db_parse_1anim(), and db_write_anim(). |
|
Right (leaf side) mul.
Definition at line 1337 of file raytrace.h. Referenced by db_do_anim(), db_parse_1anim(), and db_write_anim(). |
|
Replace stack, arc=Idn.
Definition at line 1338 of file raytrace.h. Referenced by db_do_anim(), db_parse_1anim(), and db_write_anim(). |
|
Replace shader string.
Definition at line 1345 of file raytrace.h. Referenced by db_do_anim(), and db_parse_1anim(). |
|
Append to shader string.
Definition at line 1346 of file raytrace.h. Referenced by db_do_anim(). |
|
'APrp'
Definition at line 1347 of file raytrace.h. |
|
Definition at line 1348 of file raytrace.h. |
|
Matrix animation.
Definition at line 1366 of file raytrace.h. Referenced by db_do_anim(), db_parse_1anim(), and db_write_anim(). |
|
Material property anim.
Definition at line 1367 of file raytrace.h. Referenced by db_do_anim(), db_free_1anim(), and db_parse_1anim(). |
|
Material color anim.
Definition at line 1368 of file raytrace.h. Referenced by db_do_anim(). |
|
Solid parameter anim.
Definition at line 1369 of file raytrace.h. |
|
Region temperature.
Definition at line 1370 of file raytrace.h. Referenced by db_do_anim(). |
|
Definition at line 1372 of file raytrace.h. Referenced by db_add_anim(), db_apply_anims(), db_follow_path(), and db_free_anim(). |
|
Definition at line 1373 of file raytrace.h. Referenced by bu_identify_magic(), and db_parse_1anim(). |
|
Definition at line 1374 of file raytrace.h. Referenced by db_add_anim(), db_apply_anims(), db_do_anim(), db_follow_path(), db_free_1anim(), db_free_anim(), and db_write_anim(). |
|
"htbl"
Definition at line 1388 of file raytrace.h. Referenced by bu_identify_magic(), and rt_htbl_init(). |
|
Definition at line 1389 of file raytrace.h. Referenced by rt_bot_piece_hitsegs(), rt_htbl_free(), rt_htbl_get(), and rt_htbl_reset(). |
|
pcst
Definition at line 1411 of file raytrace.h. Referenced by rt_res_pieces_init(). |
|
Definition at line 1412 of file raytrace.h. Referenced by rt_bot_piece_hitsegs(), rt_res_pieces_clean(), and rt_shootray(). |
|
pcls
Definition at line 1435 of file raytrace.h. Referenced by rt_ct_populate_box(), and rt_cut_extend(). |
|
Definition at line 1436 of file raytrace.h. Referenced by rt_bot_piece_shot(), rt_ct_populate_box(), rt_shootray(), and rt_tcl_pr_cutter(). |
|
Definition at line 1439 of file raytrace.h. |
|
Definition at line 1440 of file raytrace.h. |
|
Definition at line 1512 of file raytrace.h. Referenced by rt_add_res_stats(), rt_cell_n_on_ray(), rt_shootray(), and rt_shootray_bundle(). |
|
Definition at line 1513 of file raytrace.h. Referenced by bu_identify_magic(), dgo_E_cmd(), nmg_class_ray_vs_shell(), rt_init_resource(), rt_shootray(), rt_shootray_bundle(), wdb_dbopen(), and wdb_fopen_v(). |
|
|
Value: { \ if( ((_tp) = (_res)->re_tree_hd) != TREE_NULL ) { \ (_res)->re_tree_hd = (_tp)->tr_b.tb_left; \ (_tp)->tr_b.tb_left = TREE_NULL; \ (_res)->re_tree_get++; \ } else { \ GETUNION( _tp, tree ); \ (_res)->re_tree_malloc++; \ }\ } Definition at line 1517 of file raytrace.h. Referenced by db_dup_subtree(), db_gettree_leaf(), db_gettree_region_end(), db_non_union_push(), db_recurse(), db_recurse_subtree(), db_tally_subtree_regions(), db_tcl_tree_parse(), db_walk_tree(), rt_comb_import5(), wdb_add_operand(), and wdb_combadd(). |
|
Value: { \ (_tp)->tr_b.tb_left = (_res)->re_tree_hd; \ (_tp)->tr_b.tb_right = TREE_NULL; \ (_res)->re_tree_hd = (_tp); \ (_tp)->tr_b.tb_op = OP_FREE; \ (_res)->re_tree_free++; \ } Definition at line 1527 of file raytrace.h. Referenced by db_flatten_tree(), db_free_tree(), db_recurse_subtree(), db_tcl_tree_parse(), db_tree_del_lhs(), db_tree_del_rhs(), db_walk_subtree(), and rt_tree_elim_nops(). |
|
P I X E L _ E X T This structure is intended to descrbe the area and/or volume represented by a ray. In the case of the "rt" program it represents the extent in model coordinates of the prism behind the pixel being rendered. The r_pt values of the rays indicate the dimensions and location in model space of the ray origin (usually the pixel to be rendered). The r_dir vectors indicate the edges (and thus the shape) of the prism which is formed from the projection of the pixel into space. Definition at line 1571 of file raytrace.h. |
|
Definition at line 1577 of file raytrace.h. Referenced by bu_identify_magic(). |
|
Definition at line 1578 of file raytrace.h. |
|
Definition at line 1684 of file raytrace.h. Referenced by rt_default_multioverlap(). |
|
"Appl"
Definition at line 1685 of file raytrace.h. Referenced by bu_identify_magic(), rt_cell_n_on_ray(), rt_shootray(), rt_shootray_bundle(), and wdb_rt_gettrees_cmd(). |
|
Definition at line 1686 of file raytrace.h. Referenced by _rt_defoverlap(), rt_bot_piece_hitsegs(), rt_cell_n_on_ray(), rt_default_logoverlap(), rt_default_multioverlap(), rt_fastgen_plate_vol_overlap(), rt_rebuild_overlaps(), rt_shootray(), rt_shootray_bundle(), and rt_silent_logoverlap(). |
|
Definition at line 1687 of file raytrace.h. Referenced by rt_shoot_many_rays(), and rt_shoot_many_rays_worker(). |
|
Definition at line 1688 of file raytrace.h. Referenced by rt_tcl_cutter(), rt_tcl_rt_check(), rt_tcl_rt_no_bool(), rt_tcl_rt_onehit(), rt_tcl_rt_prep(), and rt_tcl_rt_shootray(). |
|
Value: { \ memset( (char *)(_p), 0, sizeof(struct application) ); \ (_p)->a_magic = RT_AP_MAGIC; \ } Definition at line 1689 of file raytrace.h. Referenced by dgo_E_cmd(), nmg_class_ray_vs_shell(), rt_smooth_bot(), and wdb_rt_gettrees_cmd(). |
|
Value: {if((_ap)->a_zero1||(_ap)->a_zero2) \ rt_bomb("corrupt application struct"); } Definition at line 1698 of file raytrace.h. Referenced by rt_cell_n_on_ray(), rt_plot_cell(), rt_shootray(), rt_shootray_bundle(), and rt_submodel_a_hit(). |
|
|
S E M A P H O R E S Definition of global parallel-processing semaphores. res_syscall is now BU_SEM_SYSCALL Definition at line 1737 of file raytrace.h. |
|
Definition at line 1738 of file raytrace.h. |
|
Definition at line 1739 of file raytrace.h. |
|
Definition at line 1740 of file raytrace.h. |
|
Definition at line 1741 of file raytrace.h. Referenced by db_walk_dispatcher(), rt_cut_optimize_parallel(), and rt_shoot_many_rays_worker(). |
|
Definition at line 1742 of file raytrace.h. Referenced by rt_find_identical_solid(). |
|
Definition at line 1743 of file raytrace.h. Referenced by rt_prep_parallel(). |
|
Definition at line 1744 of file raytrace.h. Referenced by db_shader_mat(), dgo_drawH_part2(), rt_arb_uv(), rt_ct_free(), rt_ct_get(), rt_dsp_prep(), rt_ebm_import(), rt_ebm_import5(), rt_hf_prep(), and rt_submodel_prep(). |
|
Call bu_semaphore_init( RT_SEM_LAST );.
Definition at line 1746 of file raytrace.h. Referenced by Rt_Init(). |
|
see rt_cut_it() for a description of this
Definition at line 1835 of file raytrace.h. Referenced by rt_nugrid_cut(). |
|
Definition at line 1838 of file raytrace.h. Referenced by rt_dirbuild(), wdb_get_obj_bounds(), and wdb_get_obj_bounds2(). |
|
magic # for integrity check
Definition at line 1839 of file raytrace.h. Referenced by bu_identify_magic(), and rt_new_rti(). |
|
Definition at line 1841 of file raytrace.h. Referenced by rt_find_solid(), rt_gettrees_muves(), rt_load_attrs(), rt_pr_partitions(), rt_pr_pt(), rt_pr_pt_vls(), and rt_rpp_region(). |
|
Definition at line 1842 of file raytrace.h. |
|
|
Definition at line 1844 of file raytrace.h. Referenced by rt_tcl_cutter(), rt_tcl_rt_check(), rt_tcl_rt_no_bool(), rt_tcl_rt_onehit(), rt_tcl_rt_prep(), and rt_tcl_rt_shootray(). |
|
Definition at line 1846 of file raytrace.h. Referenced by rt_cut_it(). |
|
Definition at line 1847 of file raytrace.h. Referenced by rt_cut_it(), rt_pr_cut_info(), and rt_tcl_rt_prep(). |
|
Value: { \ register struct bu_list *_head = &((_rti)->rti_solidheads[0]); \ for( ; _head < &((_rti)->rti_solidheads[RT_DBNHASH]); _head++ ) \ for( BU_LIST_FOR( _s, soltab, _head ) ) { RT_VISIT_ALL_SOLTABS_START( stp, rtip ) { rt_pr_soltab( stp ); } RT_VISIT_ALL_SOLTABS_END Definition at line 1856 of file raytrace.h. Referenced by rt_ck(), rt_cut_it(), rt_cut_one_axis(), rt_find_solid(), rt_gettrees_muves(), rt_plot_all_bboxes(), rt_plot_all_solids(), rt_prep_parallel(), rt_res_pieces_init(), and rt_submodel_print(). |
|
Definition at line 1861 of file raytrace.h. Referenced by rt_ck(), rt_cut_it(), rt_cut_one_axis(), rt_find_solid(), rt_gettrees_muves(), rt_plot_all_bboxes(), rt_plot_all_solids(), rt_prep_parallel(), rt_res_pieces_init(), and rt_submodel_print(). |
|
Applications that are going to use RT_ADD_VLIST and RT_GET_VLIST are required to execute this macro once, first: BU_LIST_INIT( &rt_g.rtg_vlfree ); Note that RT_GET_VLIST and RT_FREE_VLIST are non-PARALLEL. Definition at line 1870 of file raytrace.h. |
|
Place an entire chain of bn_vlist structs on the freelist Definition at line 1873 of file raytrace.h. Referenced by rt_plot_solid(). |
|
|
Definition at line 1885 of file raytrace.h. Referenced by bn_isect_line2_lseg2(), bn_isect_pt2_lseg2(), and nmg_break_eu_on_v(). |
|
|
Definition at line 1887 of file raytrace.h. Referenced by nmg_face_rs_init(), nmg_fu_planeeqn(), rt_arb_print(), rt_arb_shot(), rt_nurb_c_bound(), and rt_nurb_s_bound(). |
|
lseg
Definition at line 1934 of file raytrace.h. Referenced by curve_to_tcl_list(), get_indices(), get_seg_midpoint(), isect_2D_loop_ray(), rt_check_curve(), rt_copy_curve(), rt_curve_free(), rt_curve_reverse_segment(), rt_extrude_shot(), rt_sketch_export(), rt_sketch_export5(), rt_sketch_import(), rt_sketch_import5(), and seg_to_vlist(). |
|
carc
Definition at line 1948 of file raytrace.h. Referenced by get_indices(), get_seg_midpoint(), isect_2D_loop_ray(), rt_check_curve(), rt_copy_curve(), rt_curve_free(), rt_curve_reverse_segment(), rt_extrude_prep(), rt_extrude_shot(), rt_sketch_export(), rt_sketch_export5(), rt_sketch_import(), rt_sketch_import5(), and seg_to_vlist(). |
|
nurb
Definition at line 1960 of file raytrace.h. Referenced by get_indices(), get_seg_midpoint(), rt_check_curve(), rt_copy_curve(), rt_curve_free(), rt_sketch_export(), rt_sketch_export5(), rt_sketch_import(), and rt_sketch_import5(). |
|
bezi
Definition at line 1968 of file raytrace.h. Referenced by get_indices(), rt_curve_free(), rt_curve_reverse_segment(), rt_sketch_export(), and rt_sketch_export5(). |
|
Definition at line 2109 of file raytrace.h. Referenced by bu_identify_magic(). |
|
Definition at line 2110 of file raytrace.h. Referenced by rt_bot_tclform(), rt_cline_tclform(), rt_comb_tclform(), rt_db_free_internal(), rt_ebm_tclform(), rt_extrude_tclform(), rt_fwrite_internal(), rt_parsetab_tcladjust(), rt_parsetab_tclform(), rt_parsetab_tclget(), rt_sketch_tclform(), and wdb_adjust_cmd(). |
|
Definition at line 2112 of file raytrace.h. Referenced by rt_arb_class(), rt_bot_class(), rt_metaball_class(), rt_submodel_class(), and rt_xxx_class(). |
|
Definition at line 2113 of file raytrace.h. |
|
Definition at line 2114 of file raytrace.h. |
|
Definition at line 2115 of file raytrace.h. Referenced by rt_arb_class(), and rt_ck_overlap(). |
|
Value: if( ssp->rstep[_ax] > 0 ) { \ ssp->tv[_ax] = t0 + (nu_axis[_ax][_cno].nu_epos - _cval) * \ ssp->inv_dir[_ax]; \ } else if( ssp->rstep[_ax] < 0 ) { \ ssp->tv[_ax] = t0 + (nu_axis[_ax][_cno].nu_spos - _cval) * \ ssp->inv_dir[_ax]; \ } else { \ ssp->tv[_ax] = INFINITY; \ } Definition at line 2147 of file raytrace.h. Referenced by rt_advance_to_next_cell(). |
|
Value: if( ssp->rstep[_ax] != 0 ) { \
ssp->tv[_ax] += nu_axis[_ax][_cno].nu_width * \
ssp->abs_inv_dir[_ax]; \
}
Definition at line 2157 of file raytrace.h. |
|
mm to look behind start point
Definition at line 2163 of file raytrace.h. Referenced by rt_cell_n_on_ray(), rt_find_backing_dist(), rt_shootray(), and rt_shootray_bundle(). |
|
mm to advance point into box
Definition at line 2164 of file raytrace.h. Referenced by rt_find_backing_dist(). |
|
Definition at line 2185 of file raytrace.h. |
|
Definition at line 2187 of file raytrace.h. |
|
Definition at line 2188 of file raytrace.h. |
|
"Hit"
Definition at line 2189 of file raytrace.h. |
|
"Him"
Definition at line 2190 of file raytrace.h. Referenced by isect_ray_lseg(), and isect_ray_planar_face(). |
|
"Mis"
Definition at line 2191 of file raytrace.h. Referenced by isect_ray_lseg(), and isect_ray_planar_face(). |
|
Definition at line 2197 of file raytrace.h. Referenced by nmg_ck_hitmiss_list(). |
|
Definition at line 2198 of file raytrace.h. Referenced by nmg_ck_hitmiss_list(). |
|
Definition at line 2201 of file raytrace.h. Referenced by nmg_rt_state_str(). |
|
Definition at line 2202 of file raytrace.h. Referenced by nmg_rt_state_str(). |
|
Definition at line 2203 of file raytrace.h. Referenced by nmg_ck_hitmiss_list(), and nmg_rt_state_str(). |
|
Definition at line 2204 of file raytrace.h. Referenced by nmg_rt_state_str(). |
|
hit internal structure
Definition at line 2206 of file raytrace.h. Referenced by nmg_rt_inout_str(). |
|
breaking out
Definition at line 2207 of file raytrace.h. Referenced by nmg_rt_inout_str(). |
|
breaking in
Definition at line 2208 of file raytrace.h. Referenced by nmg_rt_inout_str(). |
|
edge/vertex graze
Definition at line 2209 of file raytrace.h. Referenced by nmg_rt_inout_str(). |
|
Definition at line 2210 of file raytrace.h. Referenced by nmg_rt_inout_str(). |
|
Definition at line 2211 of file raytrace.h. Referenced by nmg_rt_inout_str(). |
|
Definition at line 2212 of file raytrace.h. |
|
Definition at line 2213 of file raytrace.h. Referenced by nmg_rt_inout_str(). |
|
Definition at line 2214 of file raytrace.h. Referenced by nmg_rt_inout_str(). |
|
hit on non-3-mainifold
Definition at line 2215 of file raytrace.h. Referenced by nmg_ck_hitmiss_list(), and nmg_rt_inout_str(). |
|
Definition at line 2217 of file raytrace.h. |
|
Definition at line 2218 of file raytrace.h. |
|
Definition at line 2219 of file raytrace.h. |
|
Definition at line 2220 of file raytrace.h. |
|
"in"
Definition at line 2222 of file raytrace.h. Referenced by nmg_rt_print_hitmiss(). |
|
"out"
Definition at line 2223 of file raytrace.h. Referenced by nmg_rt_print_hitmiss(). |
|
Value: {\ switch (hm->l.magic) { \ case NMG_RT_HIT_MAGIC: \ case NMG_RT_HIT_SUB_MAGIC: \ case NMG_RT_MISS_MAGIC: \ break; \ case NMG_MISS_LIST: \ bu_log("%s[%d]: struct hitmiss has NMG_MISS_LIST magic #\n",\ __FILE__, __LINE__); \ rt_bomb("NMG_CK_HITMISS: going down in flames\n"); \ case NMG_HIT_LIST: \ bu_log("%s[%d]: struct hitmiss has NMG_MISS_LIST magic #\n",\ __FILE__, __LINE__); \ rt_bomb("NMG_CK_HITMISS: going down in flames\n"); \ default: \ bu_log("%s[%d]: bad struct hitmiss magic: %d:(0x%08x)\n", \ __FILE__, __LINE__, hm->l.magic, hm->l.magic); \ rt_bomb("NMG_CK_HITMISS: going down in flames\n"); \ }\ if (!hm->hit.hit_private) { \ bu_log("%s[%d]: NULL hit_private in hitmiss struct\n", \ __FILE__, __LINE__); \ rt_bomb("NMG_CK_HITMISS: going down in flames\n"); \ } \ } Definition at line 2243 of file raytrace.h. Referenced by isect_ray_lseg(), isect_ray_planar_face(), nmg_ck_hitmiss_list(), nmg_class_ray_vs_shell(), nmg_pl_hitmiss_list(), nmg_rt_print_hitmiss(), and rt_clean_resource(). |
|
Value: { \ for (BU_LIST_FOR(a_hit, hitmiss, &rd->rd_hit)){NMG_CK_HITMISS(a_hit);} \ for (BU_LIST_FOR(a_hit, hitmiss, &rd->rd_miss)){NMG_CK_HITMISS(a_hit);} } Definition at line 2269 of file raytrace.h. Referenced by isect_ray_lseg(), nmg_isect_ray_model(), and nmg_ray_segs(). |
|
Definition at line 2293 of file raytrace.h. |
|
Definition at line 2294 of file raytrace.h. |
|
Definition at line 2295 of file raytrace.h. |
|
Definition at line 2296 of file raytrace.h. Referenced by classify_seg(), nmg_class_ray_vs_shell(), rt_nmg_shot(), and shoot_and_plot(). |
|
Definition at line 2297 of file raytrace.h. Referenced by isect_ray_snurb_face(). |
|
Value: { \ (_p) = BU_LIST_FIRST( hitmiss, &((_ap)->a_resource->re_nmgfree) ); \ if( BU_LIST_IS_HEAD( (_p), &((_ap)->a_resource->re_nmgfree ) ) ) \ (_p) = (struct hitmiss *)bu_calloc(1, sizeof( struct hitmiss ), "hitmiss" ); \ else \ BU_LIST_DEQUEUE( &((_p)->l) ); \ } Definition at line 2342 of file raytrace.h. Referenced by isect_ray_lseg(), and isect_ray_planar_face(). |
|
Value: { \ BU_CK_LIST_HEAD( (_p) ); \ BU_LIST_APPEND_LIST( &((_ap)->a_resource->re_nmgfree), (_p) ); \ } Definition at line 2350 of file raytrace.h. Referenced by nmg_class_ray_vs_shell(), and nmg_ray_segs(). |
|
a hit on a face
Definition at line 2377 of file raytrace.h. |
|
a miss on the face
Definition at line 2378 of file raytrace.h. |
|
Value: { \ bu_log("%s", str); \ if (rt_g.NMG_debug & DEBUG_NMGRT) rt_bomb("End of diagnostics"); \ BU_LIST_INIT(&rd->rd_hit); \ BU_LIST_INIT(&rd->rd_miss); \ rt_g.NMG_debug |= DEBUG_NMGRT; \ nmg_isect_ray_model(rd); \ (void) nmg_ray_segs(rd); \ rt_bomb("Should have bombed before this\n"); } Definition at line 2384 of file raytrace.h. |
|
RaD!
Definition at line 2407 of file raytrace.h. Referenced by nmg_radial_build_list(). |
|
Definition at line 2408 of file raytrace.h. Referenced by nmg_pr_radial(), nmg_pr_radial_list(), nmg_radial_check_parity(), nmg_radial_find_an_original(), nmg_radial_mark_cracks(), nmg_radial_mark_flips(), and nmg_radial_sorted_list_insert(). |
|
Definition at line 2433 of file raytrace.h. Referenced by nmg_crackshells(), nmg_isect2d_final_cleanup(), and nmg_isect_two_generic_faces(). |
|
|
Definition at line 2944 of file raytrace.h. |
|
Definition at line 3144 of file raytrace.h. |
|
Definition at line 4034 of file raytrace.h. |
|
Definition at line 5409 of file raytrace.h. |
|
Definition at line 72 of file solid.h. Referenced by dgo_build_tops(), dgo_drawH_part2(), dgo_illum_cmd(), and dgo_who_cmd(). |
|
Definition at line 73 of file solid.h. Referenced by dgo_illum_cmd(), and dgo_who_cmd(). |
|
Definition at line 75 of file solid.h. Referenced by dgo_E_cmd(). |
|
Value: { \ if(BU_LIST_IS_EMPTY(fp)){ \ BU_GETSTRUCT(p,solid); \ db_full_path_init(&(p)->s_fullpath); \ }else{ \ p = BU_LIST_NEXT(solid,fp); \ BU_LIST_DEQUEUE(&((p)->l)); \ (p)->s_fullpath.fp_len = 0; \ } \ BU_LIST_INIT( &((p)->s_vlist) ); } Definition at line 77 of file solid.h. Referenced by dgo_drawH_part2(), and dgo_invent_solid(). |
|
Obtain the last node (the solid) on the path |
|
Definition at line 90 of file solid.h. Referenced by dgo_build_tops(), dgo_who_cmd(), and dgo_zap_cmd(). |
|
Value: { \ BU_LIST_APPEND(fp, &((p)->l)); \ RT_FREE_VLIST(&((p)->s_vlist)); } Definition at line 92 of file solid.h. Referenced by dgo_zap_cmd(). |
|
Definition at line 96 of file solid.h. Referenced by dgo_autoview(), dgo_build_tops(), dgo_color_soltab(), dgo_get_autoview_cmd(), dgo_how_cmd(), dgo_illum_cmd(), dgo_set_transparency_cmd(), and dgo_who_cmd(). |
|
Definition at line 99 of file solid.h. Referenced by dgo_who_cmd(). |
|
Value: (p1)=BU_LIST_PNEXT(structure,p2); \ BU_LIST_NOT_HEAD(p1,hp);\ (p1)=BU_LIST_PNEXT(structure,p1) Definition at line 102 of file solid.h. Referenced by dgo_build_tops(). |
|
|
|
|
|
|
|
|
|
Value: if (_dgop->dgo_wdbp == RT_WDB_NULL) \ { \ Tcl_AppendResult(_interp, "Not associated with a database!\n", (char *)NULL); \ return TCL_ERROR; \ } Definition at line 128 of file dg_obj.c. Referenced by dgo_autoview_cmd(), and dgo_get_autoview_cmd(). |
|
Definition at line 90 of file importFg4Section.c. Referenced by Add_bot_face(), do_quad(), and do_tri(). |
|
Definition at line 91 of file importFg4Section.c. |
|
Definition at line 93 of file importFg4Section.c. Referenced by Add_bot_face(), and do_quad(). |
|
Definition at line 94 of file importFg4Section.c. Referenced by Add_bot_face(), do_quad(), and do_tri(). |
|
Definition at line 96 of file importFg4Section.c. |
|
Definition at line 97 of file importFg4Section.c. |
|
Definition at line 99 of file importFg4Section.c. Referenced by Add_bot_face(), do_grid(), do_quad(), do_tri(), and wdb_importFg4Section_cmd(). |
|
Definition at line 101 of file importFg4Section.c. |
|
Definition at line 102 of file importFg4Section.c. |
|
Definition at line 103 of file importFg4Section.c. |
|
Definition at line 104 of file importFg4Section.c. |
|
Definition at line 105 of file importFg4Section.c. |
|
Definition at line 106 of file importFg4Section.c. |
|
Definition at line 107 of file importFg4Section.c. |
|
Definition at line 108 of file importFg4Section.c. |
|
Definition at line 109 of file importFg4Section.c. |
|
Definition at line 110 of file importFg4Section.c. |
|
Definition at line 111 of file importFg4Section.c. |
|
Definition at line 112 of file importFg4Section.c. |
|
Value: while (*(_cp) != '\0' && \ *(_cp) != '\n') \ ++(_cp); \ \ if (*(_cp) == '\0') \ _eosFlag = 1; \ else \ *(_cp) = '\0'; Definition at line 531 of file importFg4Section.c. Referenced by wdb_importFg4Section_cmd(). |
|
Definition at line 57 of file oslo_calc.c. |
|
Definition at line 58 of file oslo_calc.c. |
|
|
|
|
|
|
|
|
|
Definition at line 109 of file mater.c. References bu_free(), bu_log(), MATER_NULL, mater::mt_forw, mater::mt_high, mater::mt_low, rt_material_head, and rt_pr_mater(). Referenced by rt_color_addrec(), and wdb_color_cmd(). Here is the call graph for this function: ![]() |
|
|
|
|
|
Definition at line 72 of file dir.c. References db_close(), db_dirbuild(), db_open(), DBI_NULL, db_i::dbi_title, NULL, resource::re_magic, RT_CK_DBI, rt_init_resource(), rt_new_rti(), rt_uniresource, and RTI_NULL. Here is the call graph for this function: ![]() |
|
Definition at line 83 of file prep.c. References BU_GETSTRUCT, BU_LIST_FIRST, BU_LIST_INIT, RT_CK_DBI, RT_DBNHASH, rt_i::rti_magic, RTI_MAGIC, and rt_i::rti_solidheads. Referenced by db_shader_mat(), dgo_E_cmd(), rt_dirbuild(), rt_smooth_bot(), rt_submodel_prep(), wdb_get_obj_bounds(), wdb_get_obj_bounds2(), and wdb_rt_gettrees_cmd(). |
|
Definition at line 176 of file prep.c. References BU_CK_PTBL, bu_free(), BU_LIST_IS_INITIALIZED, BU_PTBL_FOR, bu_ptbl_free(), db_close_client(), NULL, RT_CK_DIR, RT_CK_RTI, rt_clean(), and rt_i::rti_dbip. Referenced by rt_smooth_bot(), rt_submodel_free(), wdb_get_obj_bounds(), wdb_get_obj_bounds2(), and wdb_rt_gettrees_cmd(). Here is the call graph for this function: ![]() |
|
Referenced by rt_shootray(), rt_shootray_bundle(), and rt_smooth_bot(). |
|
Referenced by rt_cell_n_on_ray(), rt_prep(), rt_shootray(), rt_submodel_prep(), and rt_tcl_rt_prep(). |
|
|
|
Definition at line 928 of file bool.c. References application::a_overlap, BU_CK_PTBL, BU_PTBL_GET, BU_PTBL_LEN, LOCAL, NULL, REGION_NON_FASTGEN, RT_AFN_NULL, RT_CK_AP, RT_CK_PARTITION, RT_CK_PT_HD, RT_CK_REGION, and rt_defoverlap(). Referenced by rt_boolfinal(). Here is the call graph for this function: ![]() |
|
Definition at line 1137 of file bool.c. References BU_CK_PTBL, RT_CK_AP, and RT_CK_PT. Referenced by rt_tcl_rt_shootray(). |
|
Definition at line 1155 of file bool.c. References BU_CK_PTBL, bu_log(), BU_PTBL_GET, BU_PTBL_LEN, bu_vls_extend(), bu_vls_init(), bu_vls_printf(), bu_vls_putc(), REGION_NULL, RT_CK_AP, RT_CK_PT, and RT_CK_REGION. Referenced by rt_boolfinal(). Here is the call graph for this function: ![]() |
|
Definition at line 95 of file vshoot.c. References application::a_level, application::a_purpose, application::a_ray, application::a_resource, application::a_rt_i, application::a_x, application::a_y, bu_calloc(), bu_log(), bzero, DEBUG_ALLRAYS, DEBUG_PARTITION, DEBUG_SHOOT, ID_MAX_SOLID, INFINITY, rt_i::mdl_max, rt_i::mdl_min, NEAR_ZERO, rt_i::needprep, rt_i::nmiss_model, rt_i::nsolids, partition::pt_back, partition::pt_forw, xray::r_dir, xray::r_max, xray::r_pt, resource::re_cpu, resource::re_magic, RESOURCE_MAGIC, RESOURCE_NULL, RT_AP_CHECK, RT_CK_RESOURCE, RT_G_DEBUG, rt_in_rpp(), rt_prep(), rt_uniresource, rt_i::rti_maxsol_by_type, rt_i::rti_nrays, rt_i::rti_nsol_by_type, rt_i::rti_sol_by_type, seg::seg_stp, SOLTAB_NULL, SQRT_SMALL_FASTF, status, VPRINT, X, Y, and Z. Referenced by rt_shoot_many_rays_worker(), rt_smooth_bot(), rt_submodel_shot(), and rt_tcl_rt_shootray(). Here is the call graph for this function: ![]() |
|
Referenced by db_shader_mat(), and rt_getregion(). |
|
Definition at line 669 of file tree.c. References ACQUIRE_SEMAPHORE_TREE, bu_free(), BU_LIST_DEQUEUE, bu_ptbl_free(), directory::d_namep, db_dirhash(), db_free_full_path(), DIR_NULL, soltab::l, soltab::l2, db_full_path::magic, RELEASE_SEMAPHORE_TREE, rt_bomb(), RT_CK_FULL_PATH, RT_CK_SOLTAB, rt_nfunctab, soltab::st_aradius, soltab::st_dp, soltab::st_id, soltab::st_matp, soltab::st_meth, soltab::st_path, soltab::st_regions, and soltab::st_uses. Referenced by db_free_tree(), rt_clean(), rt_gettrees_muves(), and rt_tree_kill_dead_solid_refs(). Here is the call graph for this function: ![]() |
|
Definition at line 936 of file tree.c. References rt_gettrees_and_attrs(). Referenced by db_shader_mat(), rt_smooth_bot(), and wdb_get_obj_bounds(). Here is the call graph for this function: ![]() |
|
Definition at line 957 of file tree.c. References rt_gettrees_and_attrs(). Referenced by dgo_E_cmd(), rt_submodel_prep(), and wdb_rt_gettrees_cmd(). Here is the call graph for this function: ![]() |
|
Definition at line 917 of file tree.c. References rt_gettrees_muves(). Referenced by rt_gettree(), and rt_gettrees(). Here is the call graph for this function: ![]() |
|
|
Definition at line 1130 of file prep.c. References region::attr_values, bu_calloc(), bu_free(), BU_LIST_FOR, bu_malloc(), bu_mro_free(), bu_mro_init(), db_i::dbi_version, rt_i::HeadRegion, RT_CHECK_RTI, RT_CK_DBI, RT_CK_REGION, and rt_i::rti_dbip. Here is the call graph for this function: ![]() |
|
Referenced by rt_boolweave(). |
|
Referenced by rt_boolweave(). |
|
|
|
Definition at line 70 of file timer42.c. References start, time(), and time0. Here is the call graph for this function: ![]() |
|
Definition at line 87 of file timer42.c. References BU_CK_VLS, bu_vls_printf(), bu_vls_strcat(), start, time(), time0, and void(). Referenced by rt_read_timer(). Here is the call graph for this function: ![]() |
|
Definition at line 260 of file timer42.c. References bu_vls_addr(), bu_vls_init(), bu_vls_strlen(), and rt_get_timer(). Here is the call graph for this function: ![]() |
|
Referenced by rt_plot_all_solids(), and rt_plot_cell(). |
|
Referenced by db_shader_mat(), dgo_E_cmd(), and rt_free_rti(). |
|
|
|
Referenced by rt_tcl_rt_check(), and wdb_rt_gettrees_cmd(). |
|
Definition at line 1953 of file shoot.c. References bu_log(), and rt_version. Here is the call graph for this function: ![]() |
|
r t _ m a t r i x _ t r a n s f o r m apply a matrix transformation to a given input object, setting the resultant transformed object as the output solid. if free is set, the input object will be released. returns zero if matrix transform was applied, non-zero on failure. Definition at line 39 of file transform.c. References RT_CK_DB_INTERNAL, RT_CK_DBI, and RT_CK_RESOURCE. |
|
|
Definition at line 1324 of file bool.c. References application::a_level, application::a_onehit, application::a_rt_i, application::a_x, application::a_y, BU_CK_BITV, BU_CK_PTBL, bu_log(), hit::hit_dist, LOCAL, NULL, partition::pt_forw, partition::pt_inhit, partition::pt_regionp, region::reg_aircode, RT_CK_PT_HD, RT_CK_RTI, rt_default_logoverlap(), rt_default_multioverlap(), and RT_G_DEBUG. Here is the call graph for this function: ![]() |
|
Referenced by rt_booleval(), rt_optim_tree(), and rt_solid_bitfinder(). |
|
Definition at line 1940 of file bool.c. References bu_log(), DEBUG_FDIFF, FAST, INFINITY, and RT_G_DEBUG. Referenced by rt_fastgen_plate_vol_overlap(), and rt_tor_prep(). Here is the call graph for this function: ![]() |
|
Definition at line 1998 of file bool.c. References FAST. Referenced by rt_tgc_prep(). |
|
Referenced by rt_arb_uv(), rt_gettrees_muves(), rt_prep_parallel(), and rt_submodel_print(). |
|
Referenced by rt_prep_parallel(). |
|
Referenced by db_mkgift_tree(), db_walk_dispatcher(), db_walk_subtree(), db_walk_tree(), main(), nmg_boolean(), and rt_comb_export4(). |
|
Referenced by rt_pr_tree_val(). |
|
Referenced by rt_boolweave(). |
|
Referenced by rt_boolweave(), and rt_hlf_uv(). |
|
|
|
|
|
Referenced by rt_cell_n_on_ray(), rt_cut_it(), rt_shootray(), and rt_shootray_bundle(). |
|
Referenced by rt_cut_it(), and rt_fr_cut(). |
|
Definition at line 2204 of file bool.c. References application::a_resource, application::a_rt_i, bu_free(), BU_LIST_APPEND, BU_LIST_DEQUEUE, bu_ptbl_cat_uniq(), BU_PTBL_CLEAR_I, BU_PTBL_END, BU_PTBL_GET, bu_ptbl_init(), bu_ptbl_ins(), bu_ptbl_trunc(), FREE_PT, hit::hit_dist, NULL, partition::pt_forw, partition::pt_outflip, partition::pt_outhit, partition::pt_outseg, partition::pt_overlap_reg, partition::pt_regionp, partition::pt_seglist, region::reg_is_fastgen, REGION_FASTGEN_PLATE, RT_CK_AP, RT_CK_PARTITION, RT_CK_PT_HD, RT_CK_REGION, and RT_DUP_PT. Here is the call graph for this function: ![]() |
|
Definition at line 2047 of file bool.c. References partition::pt_forw, partition::pt_magic, PT_NULL, and RT_CK_PT. |
|
Referenced by rt_default_multioverlap(). |
|
|
|
Definition at line 87 of file mater.c. References BU_GETSTRUCT, mater::mt_b, mater::mt_daddr, mater::mt_g, mater::mt_high, mater::mt_low, mater::mt_r, and rt_insert_color(). Referenced by db5_import_color_table(), and db_scan(). Here is the call graph for this function: ![]() |
|
Definition at line 244 of file mater.c. References bu_free(), MATER_NULL, mater::mt_forw, and rt_material_head. Referenced by db_close(). Here is the call graph for this function: ![]() |
|
Definition at line 2226 of file cut.c. References bu_bomb(), bu_hist_pr(), bu_log(), CUT_BOXNODE, CUT_NUGRIDNODE, rt_i::nempty_cells, cutter::nugn, RT_CK_RTI, RT_PART_NUGRID, rt_i::rti_cut_maxdepth, rt_i::rti_cut_maxlen, rt_i::rti_cut_totobj, rt_i::rti_CutHead, rt_i::rti_hist_cell_pieces, rt_i::rti_hist_cellsize, rt_i::rti_hist_cutdepth, rt_i::rti_ncut_by_type, and rt_i::rti_space_partition. Referenced by rt_submodel_prep(). Here is the call graph for this function: ![]() |
|
Definition at line 2281 of file cut.c. References cutter::bn, cutter::boxnode::bn_piecelen, cutter::boxnode::bn_piecelist, bu_calloc(), CUT_BOXNODE, cutter::cut_type, index, soltab::st_npieces, and rt_piecelist::stp. Here is the call graph for this function: ![]() |
|
Definition at line 2362 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_malloc(), bu_realloc(), CUT_BOXNODE, cutter::cut_type, NULL, PIECE_BLOCK, soltab::st_npieces, soltab::st_piece_rpps, rt_piecelist::stp, and V3RPP_OVERLAP. Here is the call graph for this function: ![]() |
|
Definition at line 2459 of file cut.c. References cutter::bn, cutter::boxnode::bn_max, cutter::boxnode::bn_min, CUT_BOXNODE, cutter::cut_type, INFINITY, rt_i::mdl_max, and rt_i::mdl_min. |
|
Referenced by rt_cut_it(). |
|
Definition at line 1263 of file tree.c. References region::reg_treetop, REGION_NULL, rt_bound_tree(), RT_CHECK_RTI, and rt_getregion(). Referenced by db_shader_mat(). Here is the call graph for this function: ![]() |
|
|
|
Referenced by rt_tcl_cutter(). |
|
Definition at line 2200 of file cut.c. References bu_free(), BU_LIST_UNINITIALIZED, BU_PTBL_FOR, bu_ptbl_free(), CUTTER_NULL, bu_ptbl::l, bu_list::magic, RT_CK_RTI, rt_i::rti_busy_cutter_nodes, rt_i::rti_CutFree, and rt_i::rti_cuts_waiting. Here is the call graph for this function: ![]() |
|
Referenced by rt_regionfix(). |
|
Referenced by rt_do_cmd(). |
|
|
|
Definition at line 80 of file wdb.c. References wdb_fopen_v(). Referenced by nmg_stash_model_to_file(), and wdb_dump_cmd(). Here is the call graph for this function: ![]() |
|
Definition at line 66 of file wdb.c. References db_create(), DBI_NULL, NULL, resource::re_magic, RESOURCE_MAGIC, rt_init_resource(), rt_uniresource, RT_WDB_NULL, RT_WDB_TYPE_DB_DISK, and wdb_dbopen(). Referenced by wdb_fopen(). Here is the call graph for this function: ![]() |
|
Definition at line 97 of file wdb.c. References rt_tess_tol::abs, BN_TOL_MAGIC, BU_GETSTRUCT, bu_log(), bu_vls_init(), db_i::dbi_filename, db_i::dbi_read_only, db_i::dbi_wdbp, rt_wdb::dbip, bn_tol::dist, bn_tol::dist_sq, rt_wdb::l, bu_list::magic, bn_tol::magic, rt_tess_tol::magic, rt_tess_tol::norm, NULL, bn_tol::para, bn_tol::perp, resource::re_magic, rt_tess_tol::rel, RESOURCE_MAGIC, RT_CK_DBI, rt_init_resource(), RT_TESS_TOL_MAGIC, rt_uniresource, RT_WDB_MAGIC, RT_WDB_NULL, RT_WDB_TYPE_DB_DISK, RT_WDB_TYPE_DB_DISK_APPEND_ONLY, RT_WDB_TYPE_DB_INMEM, RT_WDB_TYPE_DB_INMEM_APPEND_ONLY, rt_wdb::type, rt_wdb::wdb_prestr, rt_wdb::wdb_tol, and rt_wdb::wdb_ttol. Referenced by wdb_fopen_v(). Here is the call graph for this function: ![]() |
|
Definition at line 158 of file wdb.c. References db_lookup(), rt_wdb::dbip, DIR_NULL, LOOKUP_QUIET, rt_db_get_internal(), and rt_uniresource. Referenced by rt_tcl_import_from_path(). Here is the call graph for this function: ![]() |
|
Definition at line 178 of file wdb.c. References BU_CK_EXTERNAL, bu_free_external(), bu_log(), directory::d_flags, db_diradd(), db_inmem(), db_lookup(), db_put_external(), db_wrap_v4_external(), db_wrap_v5_external(), db_i::dbi_read_only, db_i::dbi_version, rt_wdb::dbip, DIR_NULL, LOOKUP_QUIET, RT_CK_WDB, RT_WDB_TYPE_DB_DISK, RT_WDB_TYPE_DB_DISK_APPEND_ONLY, RT_WDB_TYPE_DB_INMEM, RT_WDB_TYPE_DB_INMEM_APPEND_ONLY, and rt_wdb::type. Referenced by db_create_inmem(), nmg_stash_model_to_file(), and wdb_put_internal(). Here is the call graph for this function: ![]() |
|
Definition at line 305 of file wdb.c. References BU_CK_EXTERNAL, bu_free_external(), BU_INIT_EXTERNAL, bu_log(), db_flags_internal(), db_wrap_v4_external(), db_i::dbi_version, rt_wdb::dbip, flags, rt_db_internal::idb_major_type, rt_db_internal::idb_meth, RT_CK_DB_INTERNAL, RT_CK_WDB, rt_db_cvt_to_external5(), rt_db_free_internal(), rt_uniresource, and wdb_export_external(). Referenced by wdb_adjust_cmd(), wdb_bot_decimate_cmd(), wdb_export(), and wdb_node_write(). Here is the call graph for this function: ![]() |
|
Definition at line 367 of file wdb.c. References bu_log(), DB5_MAJORTYPE_BRLCAD, ID_COMBINATION, ID_MAX_SOLID, rt_db_internal::idb_major_type, rt_db_internal::idb_meth, rt_db_internal::idb_ptr, RT_CK_WDB, RT_INIT_DB_INTERNAL, and wdb_put_internal(). Here is the call graph for this function: ![]() |
|
Definition at line 399 of file wdb.c. References bu_free(), bu_vls_free(), db_close(), rt_wdb::dbip, RT_CK_WDB, and rt_wdb::wdb_prestr. Referenced by nmg_stash_model_to_file(), wdb_deleteProc(), and wdb_dump_cmd(). Here is the call graph for this function: ![]() |
|
Referenced by db_parse_anim(). |
|
D B _ P A R S E _ A N I M A common parser for mged and rt. Experimental. Not the best name for this. Definition at line 451 of file db_anim.c. References animate::an_path, db_add_anim(), db_parse_1anim(), and db_full_path::fp_len. Here is the call graph for this function: ![]() |
|
Referenced by db_parse_anim(). |
|
Referenced by db_follow_path(). |
|
Referenced by db_close(). |
|
Definition at line 473 of file db_anim.c. References animate::an_path, animate::an_type, animate::an_u, ANM_LMUL, anim_mat::anm_mat, anim_mat::anm_op, ANM_RARC, ANM_RBOTH, ANM_RMUL, ANM_RSTACK, animate::animate_specific::anu_m, bu_free(), bu_log(), db_path_to_string(), DEBUG_ANIM, RT_AN_MATRIX, RT_CK_ANIMATE, and RT_G_DEBUG. Here is the call graph for this function: ![]() |
|
D B _ F R E E _ 1 A N I M Free one animation structure Definition at line 248 of file db_anim.c. References animate::an_path, animate::an_type, animate::an_u, rt_anim_property::anp_shader, animate::animate_specific::anu_p, bu_free(), bu_vls_free(), db_free_full_path(), RT_AN_MATERIAL, and RT_CK_ANIMATE. Referenced by db_free_anim(). Here is the call graph for this function: ![]() |
|
D B _ F U L L _ P A T H _ I N I T Definition at line 67 of file db_path.c. References DB_FULL_PATH_MAGIC, db_full_path::fp_len, db_full_path::fp_maxlen, db_full_path::fp_names, db_full_path::magic, and NULL. Referenced by db_dup_combined_tree_state(), db_new_combined_tree_state(), db_parse_1anim(), db_path_to_mat(), db_string_to_path(), db_walk_tree(), rt_find_paths(), rt_tcl_import_from_path(), and wdb_get_obj_bounds(). |
|
D B _ A D D _ N O D E _ T O _ F U L L _ P A T H Definition at line 79 of file db_path.c. References bu_malloc(), db_full_path::fp_len, db_full_path::fp_maxlen, db_full_path::fp_names, RT_CK_FULL_PATH, and rt_realloc. Referenced by db_apply_state_from_memb(), db_follow_path(), dgo_invent_solid(), and rt_find_paths(). Here is the call graph for this function: ![]() |
|
Referenced by db_dup_combined_tree_state(), db_new_combined_tree_state(), and dgo_drawH_part2(). |
|
D B _ E X T E N D _ F U L L _ P A T H Extend "pathp" so that it can grow from current fp_len by incr more names. This is intended primarily as an internal method. Definition at line 128 of file db_path.c. References bu_malloc(), db_full_path::fp_len, db_full_path::fp_maxlen, db_full_path::fp_names, RT_CK_FULL_PATH, and rt_realloc. Referenced by db_append_full_path(). Here is the call graph for this function: ![]() |
|
D B _ A P P E N D _ F U L L _ P A T H Definition at line 157 of file db_path.c. References bcopy, db_extend_full_path(), db_full_path::fp_len, db_full_path::fp_names, and RT_CK_FULL_PATH. Here is the call graph for this function: ![]() |
|
|
|
D B _ P A T H _ T O _ S T R I N G Unlike rt_path_str(), this version can be used in parallel. Caller is responsible for freeing the returned buffer. Definition at line 201 of file db_path.c. References bu_malloc(), directory::d_namep, db_full_path::fp_len, db_full_path::fp_names, and RT_CK_FULL_PATH. Referenced by db_apply_anims(), db_apply_state_from_comb(), db_apply_state_from_memb(), db_do_anim(), db_follow_path(), db_pr_combined_tree_state(), db_pr_full_path(), db_recurse(), db_walk_subtree(), db_write_anim(), rt_pr_tree_str(), rt_pr_tree_vls(), rt_reprep(), rt_submodel_wireframe_leaf(), and rt_tcl_pr_hit(). Here is the call graph for this function: ![]() |
|
D B _ P A T H _ T O _ V L S Append a string representation of the path onto the vls. Must have exactly the same formattting conventions as db_path_to_string(). Definition at line 241 of file db_path.c. References BU_CK_VLS, bu_vls_putc(), bu_vls_strcat(), directory::d_namep, db_full_path::fp_len, db_full_path::fp_names, and RT_CK_FULL_PATH. Here is the call graph for this function: ![]() |
|
D B _ P R _ F U L L _ P A T H Definition at line 261 of file db_path.c. References bu_free(), bu_log(), and db_path_to_string(). Here is the call graph for this function: ![]() |
|
D B _ S T R I N G _ T O _ P A T H Reverse the effects of db_path_to_string(). The db_full_path structure will be initialized. If it was already in use, user should call db_free_full_path() first. Returns - -1 One or more components of path did not exist in the directory. 0 OK Definition at line 282 of file db_path.c. References BU_ASSERT_LONG, bu_free(), bu_log(), bu_malloc(), bu_strdup, db_full_path_init(), DB_FULL_PATH_MAGIC, db_lookup(), DIR_NULL, db_full_path::fp_len, db_full_path::fp_maxlen, db_full_path::fp_names, LOOKUP_NOISY, db_full_path::magic, NULL, and RT_CK_DBI. Referenced by db_follow_path_for_state(), db_region_mat(), dgo_E_cmd(), rt_tcl_import_from_path(), and wdb_get_obj_bounds(). Here is the call graph for this function: ![]() |
|
D B _ A R G V _ T O _ P A T H Treat elements from argv[0] to argv[argc-1] as a path specification. The path structure will be fully initialized. If it was already in use, user should call db_free_full_path() first. Returns - -1 One or more components of path did not exist in the directory. 0 OK Definition at line 361 of file db_path.c. References bu_log(), bu_malloc(), DB_FULL_PATH_MAGIC, db_lookup(), DIR_NULL, LOOKUP_NOISY, and RT_CK_DBI. Here is the call graph for this function: ![]() |
|
|
D B _ I D E N T I C A L _ F U L L _ P A T H S Returns - 1 match 0 different Definition at line 414 of file db_path.c. References db_full_path::fp_len, db_full_path::fp_names, and RT_CK_FULL_PATH. |
|
D B _ F U L L _ P A T H _ S U B S E T Returns - 1 if 'b' is a proper subset of 'a' 0 if not. Definition at line 439 of file db_path.c. References db_full_path::fp_len, db_full_path::fp_names, and RT_CK_FULL_PATH. |
|
D B _ F U L L _ P A T H _ S E A R C H Returns - 1 'dp' is found on this path 0 not found Definition at line 478 of file db_path.c. References db_full_path::fp_len, db_full_path::fp_names, RT_CK_DIR, and RT_CK_FULL_PATH. |
|
D B _ S Y N C Ensure that the on-disk database has been completely written out of the operating system's cache. Definition at line 450 of file db_open.c. References BU_SEM_SYSCALL, bu_semaphore_acquire(), bu_semaphore_release(), db_i::dbi_fd, db_i::dbi_fp, RT_CK_DBI, and void(). Referenced by db_close(), and wdb_concat_cmd(). Here is the call graph for this function: ![]() |
|
D B _ O P E N Open the named database. The 'mode' parameter specifies read-only or read-write mode. As a convenience, dbi_filepath is a C-style argv array of dirs to search when attempting to open related files (such as data files for EBM solids or texture-maps). The default values are "." and the directory containing the ".g" file. They may be overriden by setting the environment variable BRLCAD_FILE_PATH. Returns: DBI_NULL error db_i * success Definition at line 97 of file db_open.c. References bu_mapped_file::apbuf, bu_dirname(), bu_free(), BU_GETSTRUCT, bu_log(), bu_malloc(), bu_open_mapped_file(), bu_ptbl_init(), bu_strdup, bu_mapped_file::buf, bu_mapped_file::buflen, db_get_version(), db_i::dbi_base2local, db_i::dbi_clients, db_i::dbi_eof, db_i::dbi_fd, db_i::dbi_filename, db_i::dbi_filepath, db_i::dbi_fp, db_i::dbi_Head, db_i::dbi_inmem, db_i::dbi_local2base, db_i::dbi_magic, DBI_MAGIC, db_i::dbi_mf, DBI_NULL, db_i::dbi_read_only, db_i::dbi_title, db_i::dbi_uses, db_i::dbi_version, DEBUG_DB, DIR_NULL, NULL, RT_CK_DBI, RT_DBNHASH, and RT_G_DEBUG. Referenced by db_create(), main(), rt_dirbuild(), rt_submodel_plot(), rt_submodel_prep(), wdb_concat_cmd(), wdb_dup_cmd(), and wdb_prep_dbip(). Here is the call graph for this function: ![]() |
|
D B _ C R E A T E Create a new database containing just a header record, regardless of whether the database previously existed or not, and open it for reading and writing. New in BRL-CAD Release 6.0 is that this routine also calls db_dirbuild(), so the caller shouldn't. Returns: DBI_NULL error db_i * success Definition at line 219 of file db_open.c. References bu_log(), db5_fwrite_ident(), db_dirbuild(), db_fwrite_ident(), db_open(), DBI_NULL, DEBUG_DB, DEFAULT_DB_TITLE, fp, NULL, perror(), RT_G_DEBUG, and void(). Referenced by wdb_fopen_v(), and wdb_prep_dbip(). Here is the call graph for this function: ![]() |
|
Referenced by rt_free_rti(). |
|
Referenced by db_close_client(), rt_dirbuild(), rt_submodel_plot(), rt_submodel_prep(), wdb_close(), wdb_concat_cmd(), wdb_dup_cmd(), and wdb_reopen_cmd(). |
|
D B _ D U M P Dump a full copy of one database into another. This is a good way of committing a ".inmem" database to a ".g" file. The input is a database instance, the output is a LIBWDB object, which could be a disk file or another database instance. Returns - -1 error 0 success Definition at line 394 of file db_open.c. References bu_log(), directory::d_forw, directory::d_namep, db_get_external(), db_i::dbi_Head, DIR_NULL, RT_CK_DBI, RT_CK_DIR, RT_CK_WDB, and RT_DBNHASH. Referenced by wdb_dump_cmd(). Here is the call graph for this function: ![]() |
|
|
|
D B 5 _ W R I T E _ F R E E Create a v5 database "free" object of the specified size, and place it at the indicated location in the database. There are two interesting cases:
Definition at line 76 of file db5_alloc.c. References bcopy, bu_free_external(), BU_INIT_EXTERNAL, directory::d_flags, directory::d_un, db5_make_free_object(), db5_make_free_object_hdr(), DB5HDR_MAGIC2, db_write(), bu_external::ext_buf, bu_external::ext_nbytes, directory::ptr, RT_CK_DBI, RT_CK_DIR, and RT_DIR_INMEM. Referenced by db5_realloc(), and db_delete(). Here is the call graph for this function: ![]() |
|
D B 5 _ R E A L L O C Change the size of a v5 database object. If the object is getting smaller, break it into two pieces, and write out free objects for both. The caller is expected to re-write new data on the first one. If the object is getting larger, seek a suitable "hole" large enough to hold it, throwing back any surplus, properly marked. If the object is getting larger and there is no suitable "hole" in the database, extend the file, write a free object in the new space, and write a free object in the old space. There is no point to trying to extend in place, that would require two searches through the memory map, and doesn't save any disk I/O. Returns - 0 OK -1 Failure Definition at line 154 of file db5_alloc.c. References BU_ASSERT_LONG, BU_CK_EXTERNAL, bu_log(), bu_malloc(), bu_realloc(), directory::d_flags, directory::d_len, directory::d_namep, directory::d_un, db5_write_free(), db_i::dbi_eof, db_i::dbi_freep, db_i::dbi_read_only, DEBUG_DB, bu_external::ext_nbytes, mem_map::m_addr, mem_map::m_size, MAP_NULL, directory::ptr, RT_CK_DBI, RT_CK_DIR, RT_DIR_INMEM, RT_G_DEBUG, rt_memalloc_nosplit(), and rt_memfree(). Referenced by db_put_external5(), and rt_db_put_internal5(). Here is the call graph for this function: ![]() |
|
|
R T _ D B _ C V T _ T O _ E X T E R N A L 5 The attributes are taken from ip->idb_avs If present, convert attributes to on-disk format. This must happen after exporting the body, in case the ft_export5() method happened to extend the attribute set. Combinations are one "solid" which does this. The internal representation is NOT freed, that's the caller's job. The 'ext' pointer is accepted in uninitialized form, and an initialized structure is always returned, so that the caller may free it even when an error return is given. Returns - 0 OK -1 FAIL Definition at line 1213 of file db5_io.c. References body, bu_free_external(), BU_INIT_EXTERNAL, bu_log(), rt_db_internal::idb_meth, RT_CK_DB_INTERNAL, RT_CK_DBI, and RT_CK_RESOURCE. Referenced by nmg_stash_model_to_file(), rt_db_put_internal5(), and wdb_put_internal(). Here is the call graph for this function: ![]() |
|
Definition at line 1268 of file db5_io.c. References db5_raw_internal::a_zzz, db5_raw_internal::attributes, db5_raw_internal::b_zzz, db5_raw_internal::body, BU_ASSERT_LONG, BU_CK_EXTERNAL, bu_free_external(), BU_INIT_EXTERNAL, bu_log(), db5_export_object3(), db5_get_raw_internal_ptr(), DB5HDR_HFLAGS_DLI_APPLICATION_DATA_OBJECT, bu_external::ext_buf, db5_raw_internal::h_dli, db5_raw_internal::h_name_hidden, db5_raw_internal::major_type, db5_raw_internal::minor_type, db5_raw_internal::name, and NULL. Referenced by db_put_external5(), and wdb_export_external(). Here is the call graph for this function: ![]() |
|
R T _ D B _ G E T _ I N T E R N A L 5 Get an object from the database, and convert it into it's internal representation. Applications and middleware shouldn't call this directly, they should use the generic interface "rt_db_get_internal()". Returns - <0 On error id On success. Definition at line 1553 of file db5_io.c. References BU_ASSERT_LONG, bu_free_external(), BU_INIT_EXTERNAL, directory::d_namep, db_get_external(), db_i::dbi_version, rt_db_external5_to_internal5(), and RT_INIT_DB_INTERNAL. Referenced by db_functree(), db_preorder_traverse(), rt_db_get_internal(), and rt_retrieve_binunif(). Here is the call graph for this function: ![]() |
|
R T _ D B _ P U T _ I N T E R N A L 5 Convert the internal representation of a solid to the external one, and write it into the database. Applications and middleware shouldn't call this directly, they should use the version-generic interface "rt_db_put_internal()". The internal representation is always freed. (Not the pointer, just the contents). Returns - <0 error 0 success Definition at line 1395 of file db5_io.c. References bcopy, BU_ASSERT_LONG, BU_CK_EXTERNAL, bu_free_external(), bu_log(), directory::d_flags, directory::d_len, directory::d_namep, directory::d_un, db5_realloc(), db_write(), db_i::dbi_version, bu_external::ext_buf, bu_external::ext_nbytes, directory::ptr, RT_CK_DB_INTERNAL, RT_CK_DBI, RT_CK_DIR, RT_CK_RESOURCE, rt_db_cvt_to_external5(), rt_db_free_internal(), and RT_DIR_INMEM. Referenced by rt_db_put_internal(). Here is the call graph for this function: ![]() |
|
D B 5 _ M A K E _ F R E E _ O B J E C T _ H D R Make only the front (header) portion of a free object. This is used when operating on very large contiguous free objects in the database (e.g. 50 MBytes). Definition at line 639 of file db5_io.c. References BU_ASSERT_LONG, bu_calloc(), BU_CK_EXTERNAL, db5_encode_length(), db5_select_length_encoding(), db5_ondisk_header::db5h_hflags, db5_ondisk_header::db5h_magic1, DB5HDR_HFLAGS_DLI_FREE_STORAGE, DB5HDR_HFLAGS_OBJECT_WIDTH_SHIFT, DB5HDR_MAGIC1, bu_external::ext_buf, and bu_external::ext_nbytes. Referenced by db5_write_free(). Here is the call graph for this function: ![]() |
|
D B 5 _ M A K E _ F R E E _ O B J E C T Make a complete, zero-filled, free object. Note that free objects can sometimes get quite large. Definition at line 674 of file db5_io.c. References BU_ASSERT_LONG, bu_calloc(), BU_CK_EXTERNAL, db5_encode_length(), db5_select_length_encoding(), db5_ondisk_header::db5h_hflags, db5_ondisk_header::db5h_magic1, DB5HDR_HFLAGS_DLI_FREE_STORAGE, DB5HDR_HFLAGS_OBJECT_WIDTH_SHIFT, DB5HDR_MAGIC1, DB5HDR_MAGIC2, bu_external::ext_buf, and bu_external::ext_nbytes. Referenced by db5_write_free(). Here is the call graph for this function: ![]() |
|
Referenced by rt_comb_import5(). |
|
Referenced by db5_get_raw_internal_fp(), db5_get_raw_internal_ptr(), and rt_comb_import5(). |
|
Referenced by db5_export_object3(), db5_make_free_object(), db5_make_free_object_hdr(), and rt_comb_export5(). |
|
D B 5 _ I M P O R T _ C O L O R _ T A B L E Definition at line 1602 of file db5_io.c. References NULL, and rt_color_addrec(). Referenced by db_dirbuild(). Here is the call graph for this function: ![]() |
|
D B 5 _ I M P O R T _ A T T R I B U T E S Convert the on-disk encoding into a handy easy-to-use bu_attribute_value_set structure. Take advantage of the readonly_min/readonly_max capability so that we don't have to bu_strdup() each string, but can simply point to it in the provided buffer *ap. Important implication: don't free *ap until you're done with this avs. The upshot of this is that bu_avs_add() and bu_avs_remove() can be safely used with this *avs. Returns - >0 count of attributes successfully imported -1 Error, mal-formed input Definition at line 722 of file db5_io.c. References bu_attribute_value_set::avp, BU_ASSERT_LONG, BU_ASSERT_PTR, bu_avs_add(), bu_avs_init(), bu_avs_print(), BU_CK_EXTERNAL, bu_debug, BU_DEBUG_AVS, bu_log(), bu_attribute_value_set::count, bu_external::ext_buf, bu_external::ext_nbytes, bu_attribute_value_set::max, name, bu_attribute_value_pair::name, bu_attribute_value_set::readonly_max, bu_attribute_value_set::readonly_min, and bu_attribute_value_pair::value. Referenced by db5_diradd(), db5_get_attributes(), db5_update_attributes(), db_dirbuild(), db_flags_raw_internal(), and rt_db_external5_to_internal5(). Here is the call graph for this function: ![]() |
|
D B 5 _ E X P O R T _ A T T R I B U T E S Encode the attribute-value pair information into the external on-disk format. The on-disk encoding is: aname1 NULL value1 NULL ... anameN NULL valueN NULL NULL 'ext' is initialized on behalf of the caller. Definition at line 820 of file db5_io.c. References bu_attribute_value_set::avp, bu_avs_print(), BU_CK_AVS, bu_debug, BU_DEBUG_AVS, BU_INIT_EXTERNAL, bu_attribute_value_set::count, bu_attribute_value_pair::name, and bu_attribute_value_pair::value. Referenced by db5_fwrite_ident(), db5_replace_attributes(), db5_update_attributes(), and db_create_inmem(). Here is the call graph for this function: ![]() |
|
D B 5 _ G E T _ R A W _ I N T E R N A L _ F P Returns - 0 on success -1 on EOF -2 on error Definition at line 374 of file db5_io.c. References db5_raw_internal::a_present, db5_raw_internal::a_width, db5_raw_internal::attributes, db5_raw_internal::b_present, db5_raw_internal::b_width, bcopy, db5_raw_internal::body, BU_ASSERT_LONG, BU_INIT_EXTERNAL, bu_log(), bu_malloc(), db5_raw_internal::buf, db5_crack_disk_header(), db5_decode_length(), DB5HDR_MAGIC2, DB5HDR_WIDTHCODE_16BIT, DB5HDR_WIDTHCODE_32BIT, DB5HDR_WIDTHCODE_64BIT, DB5HDR_WIDTHCODE_8BIT, bu_external::ext_buf, bu_external::ext_nbytes, db5_raw_internal::h_name_present, db5_raw_internal::h_name_width, db5_raw_internal::h_object_width, db5_raw_internal::name, and db5_raw_internal::object_length. Referenced by db5_scan(). Here is the call graph for this function: ![]() |
|
D B 5 _ H E A D E R _ I S _ V A L I D Verify that this is a valid header for a BRL-CAD v5 database. Returns - 0 Not valid v5 header 1 Valid v5 header Definition at line 79 of file db5_io.c. References DB5_MAJORTYPE_RESERVED, DB5_ZZZ_UNCOMPRESSED, db5_ondisk_header::db5h_aflags, db5_ondisk_header::db5h_bflags, db5_ondisk_header::db5h_hflags, db5_ondisk_header::db5h_magic1, db5_ondisk_header::db5h_major_type, db5_ondisk_header::db5h_minor_type, DB5HDR_AFLAGS_PRESENT, DB5HDR_AFLAGS_WIDTH_MASK, DB5HDR_AFLAGS_WIDTH_SHIFT, DB5HDR_AFLAGS_ZZZ_MASK, DB5HDR_BFLAGS_PRESENT, DB5HDR_BFLAGS_WIDTH_MASK, DB5HDR_BFLAGS_WIDTH_SHIFT, DB5HDR_BFLAGS_ZZZ_MASK, DB5HDR_HFLAGS_DLI_HEADER_OBJECT, DB5HDR_HFLAGS_DLI_MASK, DB5HDR_HFLAGS_NAME_PRESENT, DB5HDR_HFLAGS_OBJECT_WIDTH_MASK, DB5HDR_HFLAGS_OBJECT_WIDTH_SHIFT, DB5HDR_MAGIC1, DB5HDR_MAGIC2, and DB5HDR_WIDTHCODE_8BIT. Referenced by db5_scan(), db_dirbuild(), and db_get_version(). |
|
D B 5 _ F W R I T E _ I D E N T Create a header for a v5 database. This routine has the same calling sequence as db_fwrite_ident() which makes a v4 database header. In the v5 database, two database objects must be created to match the semantics of what was in the v4 header: First, a database header object. Second, create a specially named attribute-only object which contains the attributes "title=" and "units=". This routine should only be used by db_create(). Everyone else should use db5_update_ident(). Returns - 0 Success -1 Fatal Error Definition at line 1140 of file db5_io.c. References bu_avs_add(), bu_avs_free(), bu_avs_init(), bu_free_external(), bu_fwrite_external(), bu_log(), bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), db5_export_attributes(), db5_export_object3(), DB5_GLOBAL_OBJECT_NAME, DB5_MAJORTYPE_ATTRIBUTE_ONLY, DB5_MAJORTYPE_RESERVED, DB5_ZZZ_UNCOMPRESSED, DB5HDR_HFLAGS_DLI_APPLICATION_DATA_OBJECT, DB5HDR_HFLAGS_DLI_HEADER_OBJECT, DB5HDR_HFLAGS_HIDDEN_OBJECT, NULL, and units. Referenced by db_create(). Here is the call graph for this function: ![]() |
|
D B 5 _ P U T _ C O L O R _ T A B L E Put the old region-id-color-table into the global object. A null attribute is set if the material table is empty. Returns - <0 error 0 OK Definition at line 1625 of file db5_io.c. References BU_ASSERT_LONG, bu_vls_addr(), bu_vls_free(), bu_vls_init(), db5_export_color_table(), DB5_GLOBAL_OBJECT_NAME, db5_update_attribute(), db_i::dbi_version, and RT_CK_DBI. Here is the call graph for this function: ![]() |
|
D B 5 _ U P D A T E _ I D E N T Update the _GLOBAL object, which in v5 serves the place of the "ident" header record in v4 as the place to stash global information. Since every database will have one of these things, it's no problem to update it. Returns - 0 Success -1 Fatal Error Definition at line 1060 of file db5_io.c. References bu_avs_add(), bu_avs_init(), bu_free(), bu_free_external(), bu_log(), bu_strdup, bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), directory::d_major_type, db5_export_object3(), DB5_GLOBAL_OBJECT_NAME, DB5_MAJORTYPE_ATTRIBUTE_ONLY, db5_update_attributes(), DB5_ZZZ_UNCOMPRESSED, DB5HDR_HFLAGS_DLI_APPLICATION_DATA_OBJECT, DB5HDR_HFLAGS_HIDDEN_OBJECT, db_diradd(), db_lookup(), db_put_external(), db_i::dbi_title, DIR_NULL, LOOKUP_QUIET, NULL, RT_CK_DBI, and units. Referenced by db_dirbuild(), and db_update_ident(). Here is the call graph for this function: ![]() |
|
D B _ P U T _ E X T E R N A L 5 Given that caller already has an external representation of the database object, update it to have a new name (taken from dp->d_namep) in that external representation, and write the new object into the database, obtaining different storage if the size has changed. Changing the name on a v5 object is a relatively expensive operation. Caller is responsible for freeing memory of external representation, using bu_free_external(). This routine is used to efficiently support MGED's "cp" and "keep" commands, which don't need to import and decompress objects just to rename and copy them. Returns - -1 error 0 success Definition at line 1334 of file db5_io.c. References bcopy, BU_ASSERT_LONG, BU_CK_EXTERNAL, bu_log(), directory::d_flags, directory::d_len, directory::d_namep, directory::d_un, db5_realloc(), db_wrap_v5_external(), db_write(), db_i::dbi_filename, db_i::dbi_read_only, db_i::dbi_version, DEBUG_DB, bu_external::ext_buf, bu_external::ext_nbytes, directory::ptr, RT_CK_DBI, RT_CK_DIR, RT_DIR_INMEM, and RT_G_DEBUG. Referenced by db5_replace_attributes(), db5_update_attributes(), and db_put_external(). Here is the call graph for this function: ![]() |
|
|
D B 5 _ U P D A T E _ A T T R I B U T E A convenience routine to update the value of a single attribute. Returns - 0 on success <0 on error Definition at line 1033 of file db5_io.c. References bu_avs_add(), bu_avs_init(), db5_update_attributes(), db_lookup(), DIR_NULL, LOOKUP_NOISY, and RT_CK_DBI. Referenced by db5_put_color_table(), and wdb_color_cmd(). Here is the call graph for this function: ![]() |
|
D B 5 _ R E P L A C E _ A T T R I B U T E S Replace the attributes of a given database object. For efficiency, this is done without looking at the object body at all. Contents of the bu_attribute_value_set are freed, but not the struct itself. Returns - 0 on success <0 on error Definition at line 876 of file db5_io.c. References db5_raw_internal::a_zzz, db5_raw_internal::b_zzz, db5_raw_internal::body, BU_ASSERT_LONG, bu_avs_free(), bu_avs_print(), BU_CK_AVS, bu_free_external(), BU_INIT_EXTERNAL, bu_log(), directory::d_namep, db5_export_attributes(), db5_export_object3(), db5_get_raw_internal_ptr(), db_get_external(), db_put_external5(), db_i::dbi_filename, db_i::dbi_read_only, db_i::dbi_version, DEBUG_DB, bu_external::ext_buf, db5_raw_internal::h_dli, db5_raw_internal::h_name_hidden, db5_raw_internal::major_type, db5_raw_internal::minor_type, NULL, RT_CK_DBI, RT_CK_DIR, and RT_G_DEBUG. Here is the call graph for this function: ![]() |
|
D B _ G E T _ A T T R I B U T E S Get attributes for an object pointed to by *dp returns: 0 - all is well <0 - error Definition at line 1652 of file db5_io.c. References db5_raw_internal::attributes, bu_free_external(), BU_INIT_EXTERNAL, db5_get_raw_internal_ptr(), db5_import_attributes(), db_get_external(), db_i::dbi_version, bu_external::ext_buf, NULL, RT_CK_DBI, and RT_CK_DIR. Referenced by db_lookup_by_attr(), wdb_attr_cmd(), and wdb_do_list(). Here is the call graph for this function: ![]() |
|
D B _ T R E E _ N L E A V E S Return count of number of leaf nodes in this tree. Definition at line 113 of file db_comb.c. References bu_log(), db_tree_nleaves(), OP_DB_LEAF, OP_GUARD, OP_INTERSECT, OP_NOP, OP_NOT, OP_REGION, OP_SOLID, OP_SUBTRACT, OP_UNION, OP_XNOP, OP_XOR, rt_bomb(), RT_CK_TREE, tree::tree_node::tb_left, tree::tree_node::tb_right, tree::tr_b, and TREE_NULL. Referenced by db_tree_flatten_describe(), db_tree_nleaves(), rt_comb_export4(), and wdb_combadd(). Here is the call graph for this function: ![]() |
|
D B _ F L A T T E N _ T R E E Take a binary tree in "V4-ready" layout (non-unions pushed below unions, left-heavy), and flatten it into an array layout, ready for conversion back to the GIFT-inspired V4 database format. This is done using the db_non_union_push() routine. If argument 'free' is non-zero, then the non-leaf nodes are freed along the way, to prevent memory leaks. In this case, the caller's copy of 'tp' will be invalid upon return. When invoked at the very top of the tree, the op argument must be OP_UNION. Definition at line 166 of file db_comb.c. References bu_bomb(), bu_log(), db_flatten_tree(), NULL, OP_DB_LEAF, OP_INTERSECT, OP_SUBTRACT, OP_UNION, RT_CK_RESOURCE, RT_CK_TREE, RT_FREE_TREE, tree::tree_node::tb_left, tree::tree_node::tb_right, rt_tree_array::tl_op, rt_tree_array::tl_tree, tree::tr_b, and TREE_NULL. Referenced by db_flatten_tree(), db_tree_flatten_describe(), rt_comb_export4(), and wdb_combadd(). Here is the call graph for this function: ![]() |
|
R T _ C O M B _ I M P O R T 4 Import a combination record from a V4 database into internal form. Definition at line 211 of file db_comb.c. References bu_calloc(), BU_CK_EXTERNAL, bu_free(), bu_log(), bu_external::ext_buf, bu_external::ext_nbytes, ID_COMB, ID_MEMB, NULL, and record::u_id. Here is the call graph for this function: ![]() |
|
|
D B _ T R E E _ F L A T T E N _ D E S C R I B E Produce a GIFT-compatible listing, one "member" per line, regardless of the structure of the tree we've been given. Definition at line 595 of file db_comb.c. References bn_ae_vec(), bn_mat_identity, BU_ASSERT_LONG, BU_ASSERT_PTR, bu_bomb(), bu_calloc(), BU_CK_VLS, bu_vls_printf(), bu_vls_spaces(), bu_vls_strcat(), db_ck_v4gift_tree(), db_dup_subtree(), db_flatten_tree(), db_non_union_push(), db_tree_nleaves(), MDX, MDY, MDZ, NULL, OP_DB_LEAF, OP_INTERSECT, OP_NOP, OP_SUBTRACT, OP_UNION, RT_CK_RESOURCE, RT_CK_TREE, STAT_PERSP, STAT_ROT, STAT_SCALE, STAT_XLATE, status, rt_tree_array::tl_op, rt_tree_array::tl_tree, and void(). Referenced by db_comb_describe(). Here is the call graph for this function: ![]() |
|
D B _ T R E E _ D E S C R I B E Definition at line 711 of file db_comb.c. References bn_ae_vec(), bn_mat_identity, bu_bomb(), BU_CK_VLS, bu_log(), bu_vls_printf(), bu_vls_spaces(), bu_vls_strcat(), db_tree_describe(), MDX, MDY, MDZ, OP_DB_LEAF, OP_GUARD, OP_INTERSECT, OP_NOP, OP_NOT, OP_SUBTRACT, OP_UNION, OP_XNOP, OP_XOR, RT_CK_TREE, STAT_PERSP, STAT_ROT, STAT_SCALE, STAT_XLATE, status, tree::tree_node::tb_left, tree::tree_node::tb_right, tree::tree_db_leaf::tl_mat, tree::tree_db_leaf::tl_name, tree::tr_b, and tree::tr_l. Referenced by db_tree_describe(). Here is the call graph for this function: ![]() |
|
D B _ C O M B _ D E S C R I B E Definition at line 817 of file db_comb.c. References rt_comb_internal::aircode, bu_vls_addr(), bu_vls_printf(), bu_vls_strcat(), bu_vls_strlen(), db_tree_flatten_describe(), rt_comb_internal::GIFTmater, rt_comb_internal::inherit, rt_comb_internal::is_fastgen, rt_comb_internal::los, REGION_FASTGEN_PLATE, REGION_FASTGEN_VOLUME, rt_comb_internal::region_flag, rt_comb_internal::region_id, rt_comb_internal::rgb, rt_comb_internal::rgb_valid, RT_CK_COMB, RT_CK_RESOURCE, rt_pr_tree_vls(), rt_comb_internal::shader, and rt_comb_internal::tree. Referenced by rt_comb_describe(). Here is the call graph for this function: ![]() |
|
R T _ C O M B _ I F R E E Free the storage associated with the rt_db_internal version of this combination. Definition at line 881 of file db_comb.c. References bu_free(), bu_vls_free(), db_free_tree(), GENPTR_NULL, rt_db_internal::idb_ptr, rt_comb_internal::magic, rt_comb_internal::material, NULL, RT_CK_DB_INTERNAL, RT_CK_RESOURCE, rt_comb_internal::shader, and rt_comb_internal::tree. Referenced by wdb_showmats_cmd(), and wdb_whatid_cmd(). Here is the call graph for this function: ![]() |
|
R T _ C O M B _ D E S C R I B E rt_functab[ID_COMBINATION].ft_describe() method Definition at line 910 of file db_comb.c. References db_comb_describe(), rt_db_internal::idb_ptr, RT_CK_COMB, RT_CK_DB_INTERNAL, and RT_CK_RESOURCE. Here is the call graph for this function: ![]() |
|
D B _ W R A P _ V 4 _ E X T E R N A L As the v4 database does not really have the notion of "wrapping", this function writes the object name into the proper place (a standard location in all granules). Definition at line 940 of file db_comb.c. References BU_CK_EXTERNAL, bu_external::ext_buf, NAMEMOVE, record::s, and record::solidrec::s_name. Referenced by db_fwrite_external(), db_put_external(), nmg_stash_model_to_file(), wdb_export_external(), and wdb_put_internal(). |
|
D B _ C K _ L E F T _ H E A V Y _ T R E E Support routine for db_ck_v4gift_tree(). Ensure that the tree below 'tp' is left-heavy, i.e. that there are nothing but solids on the right side of any binary operations. Returns - -1 ERROR 0 OK Definition at line 964 of file db_comb.c. References bu_bomb(), bu_log(), db_ck_left_heavy_tree(), OP_DB_LEAF, OP_INTERSECT, OP_SUBTRACT, OP_UNION, OP_XOR, RT_CK_TREE, tree::tree_node::tb_left, tree::tree_node::tb_right, and tree::tr_b. Referenced by db_ck_left_heavy_tree(), and db_ck_v4gift_tree(). Here is the call graph for this function: ![]() |
|
D B _ C K _ V 4 G I F T _ T R E E Look a gift-tree in the mouth. Ensure that this boolean tree conforms to the GIFT convention that union operations must bind the loosest. There are two stages to this check: 1) Ensure that if unions are present they are all at the root of tree, 2) Ensure non-union children of union nodes are all left-heavy (nothing but solid nodes permitted on rhs of binary operators). Returns - -1 ERROR 0 OK Definition at line 1008 of file db_comb.c. References bu_bomb(), bu_log(), db_ck_left_heavy_tree(), db_ck_v4gift_tree(), OP_DB_LEAF, OP_INTERSECT, OP_SUBTRACT, OP_UNION, OP_XOR, RT_CK_TREE, tree::tree_node::tb_left, tree::tree_node::tb_right, and tree::tr_b. Referenced by db_ck_v4gift_tree(), db_tree_flatten_describe(), main(), rt_comb_export4(), and wdb_combadd(). Here is the call graph for this function: ![]() |
|
D B _ M K B O O L _ T R E E Given a rt_tree_array array, build a tree of "union tree" nodes appropriately connected together. Every element of the rt_tree_array array used is replaced with a TREE_NULL. Elements which are already TREE_NULL are ignored. Returns a pointer to the top of the tree. Definition at line 1044 of file db_comb.c. References RT_CK_RESOURCE, rt_tree_array::tl_tree, and TREE_NULL. Referenced by db_mkgift_tree(). |
|
D B _ M K G I F T _ T R E E Definition at line 1109 of file db_comb.c. References bu_log(), db_mkbool_tree(), DEBUG_TREEWALK, OP_UNION, RT_CK_RESOURCE, RT_G_DEBUG, rt_pr_tree(), rt_tree_array::tl_op, and rt_tree_array::tl_tree. Referenced by wdb_combadd(). Here is the call graph for this function: ![]() |
|
R T _ P T _ S O R T Sorts the values in t[] in descending order. |
|
Definition at line 590 of file g_ell.c. References ELLOUT, VADD2, VJOIN2, and VSUB2. Referenced by rt_cline_plot(), rt_ell_plot(), rt_metaball_plot_sph(), rt_part_plot(), and rt_tgc_plot(). |
|
Referenced by bend_pipe_shot(), rt_eto_shot(), rt_superell_shot(), and rt_tor_shot(). |
|
Referenced by db5_write_free(), db_put(), db_put_external(), db_put_external5(), and rt_db_put_internal5(). |
|
D B _ F W R I T E _ E X T E R N A L Add name from dp->d_namep to external representation of solid, and write it into a file. Caller is responsible for freeing memory of external representation, using bu_free_external(). The 'name' field of the external representation is modified to contain the desired name. Returns - <0 error 0 OK NOTE: Callers of this should be using wdb_export_external() instead. Definition at line 474 of file db_io.c. References BU_CK_EXTERNAL, bu_fwrite_external(), bu_log(), db_wrap_v4_external(), DEBUG_DB, and RT_G_DEBUG. Here is the call graph for this function: ![]() |
|
D B _ G E T M R E C Retrieve all records in the database pertaining to an object, and place them in malloc()'ed storage, which the caller is responsible for free()'ing. This loads the combination into a local record buffer. This is in external v4 format. Returns - union record * OK (union record *)0 failure Definition at line 150 of file db_io.c. References bcopy, bu_free(), bu_log(), bu_malloc(), directory::d_flags, directory::d_len, directory::d_namep, directory::d_un, db_read(), db_i::dbi_version, DEBUG_DB, NULL, directory::ptr, RT_CK_DBI, RT_CK_DIR, RT_DIR_INMEM, and RT_G_DEBUG. Referenced by db_functree(), and db_preorder_traverse(). Here is the call graph for this function: ![]() |
|
Referenced by db_alloc(), and db_update_ident(). |
|
Referenced by db_update_ident(), and db_zapper(). |
|
|
D B _ P U T _ E X T E R N A L Given that caller already has an external representation of the database object, update it to have a new name (taken from dp->d_namep) in that external representation, and write the new object into the database, obtaining different storage if the size has changed. Caller is responsible for freeing memory of external representation, using bu_free_external(). This routine is used to efficiently support MGED's "cp" and "keep" commands, which don't need to import objects just to rename and copy them. Returns - -1 error 0 success Definition at line 399 of file db_io.c. References bcopy, bu_bomb(), BU_CK_EXTERNAL, bu_log(), directory::d_flags, directory::d_len, directory::d_namep, directory::d_un, db_alloc(), db_delete(), db_put_external5(), db_wrap_v4_external(), db_write(), db_i::dbi_filename, db_i::dbi_read_only, db_i::dbi_version, DEBUG_DB, bu_external::ext_buf, bu_external::ext_nbytes, directory::ptr, RT_CK_DBI, RT_CK_DIR, RT_DIR_INMEM, and RT_G_DEBUG. Referenced by db5_update_ident(), rt_db_put_internal(), wdb_copy_cmd(), and wdb_export_external(). Here is the call graph for this function: ![]() |
|
|
|
Referenced by db_dirbuild(), and wdb_dup_cmd(). |
|
D B _ U P D A T E _ I D E N T Update the existing v4 IDENT record with new title and units. To permit using db_get and db_put, a custom directory entry is crafted. Note: Special care is required, because the "title" arg may actually be passed in as dbip->dbi_title. Definition at line 374 of file db_scan.c. References BU_ASSERT_LONG, bu_free(), bu_log(), bu_strdup, bu_units_string(), directory::d_flags, directory::d_len, directory::d_magic, db5_update_ident(), db_get(), db_put(), db_v4_get_units_code(), db_i::dbi_read_only, db_i::dbi_title, db_i::dbi_version, DEBUG_DB, record::i, record::ident::i_title, record::ident::i_units, ID_IDENT, ID_MM_UNIT, RT_CK_DBI, RT_DIR_MAGIC, RT_DIR_SET_NAMEP, RT_G_DEBUG, record::u_id, and void(). Referenced by wdb_title_cmd(), and wdb_units_cmd(). Here is the call graph for this function: ![]() |
|
D B _ F W R I T E _ I D E N T Fwrite an IDENT record with given title and editing scale. Attempts to map the editing scale into a v4 database unit as best it can. No harm done if it doesn't map. This should be called by db_create() only. All others should call db_update_ident(). Returns - 0 Success -1 Fatal Error Definition at line 443 of file db_scan.c. References bu_log(), bu_units_string(), bzero, db_v4_get_units_code(), DEBUG_DB, ID_IDENT, ID_VERSION, RT_G_DEBUG, and void(). Referenced by db_create(). Here is the call graph for this function: ![]() |
|
D B _ C O N V E R S I O N S Initialize conversion factors given the v4 database unit Definition at line 470 of file db_scan.c. References db_i::dbi_base2local, db_i::dbi_local2base, ID_CM_UNIT, ID_FT_UNIT, ID_IN_UNIT, ID_KM_UNIT, ID_M_UNIT, ID_MI_UNIT, ID_MM_UNIT, ID_NO_UNIT, ID_UM_UNIT, ID_YD_UNIT, and RT_CK_DBI. Referenced by db_scan(). |
|
D B _ V 4 _ G E T _ U N I T S _ C O D E Given a string, return the V4 database code representing the user's preferred editing units. The v4 database format does not have many choices. Returns - -1 Not a legal V4 database code # The V4 database code number Definition at line 548 of file db_scan.c. References ID_CM_UNIT, ID_FT_UNIT, ID_IN_UNIT, ID_KM_UNIT, ID_M_UNIT, ID_MI_UNIT, ID_MM_UNIT, ID_NO_UNIT, ID_UM_UNIT, and ID_YD_UNIT. Referenced by db_fwrite_ident(), and db_update_ident(). |
|
|
|
Definition at line 456 of file db5_scan.c. References bu_log(), db5_header_is_valid(), db_i::dbi_filename, and db_i::dbi_fp. Referenced by db_open(). Here is the call graph for this function: ![]() |
|
D B 5 _ S C A N Returns - 0 Success -1 Fatal Error Definition at line 67 of file db5_scan.c. Referenced by db_dirbuild(), and wdb_dup_cmd(). |
|
R T _ C O M B _ I M P O R T 5 Read a combination object in v5 external (on-disk) format, and convert it into the internal format described in h/rtgeom.h This is an unusual conversion, because some of the data is taken from attributes, not just from the object body. By the time this is called, the attributes will already have been cracked into ip->idb_avs, we get the attributes from there. Returns - 0 OK -1 FAIL Definition at line 484 of file db5_comb.c. |
|
R T _ E X T R U D E _ I M P O R T 5 Import an EXTRUDE from the database format to the internal format. Apply modeling transformations as well. Definition at line 2305 of file g_extrude.c. References bn_mat_identity, BU_CK_EXTERNAL, bu_free(), bu_glong(), bu_log(), bu_malloc(), bu_strdup, DB5_MAJORTYPE_BRLCAD, db_lookup(), DIR_NULL, ELEMENTS_PER_VECT, bu_external::ext_buf, rt_extrude_internal::h, ID_EXTRUDE, ID_SKETCH, rt_db_internal::idb_major_type, rt_db_internal::idb_meth, rt_db_internal::idb_ptr, rt_extrude_internal::keypoint, LOCAL, LOOKUP_NOISY, rt_extrude_internal::magic, MAT4X3PNT, MAT4X3VEC, ntohd(), NULL, ptr, RT_CK_DB_INTERNAL, rt_db_get_internal(), RT_EXTRUDE_INTERNAL_MAGIC, SIZEOF_NETWORK_DOUBLE, SIZEOF_NETWORK_LONG, rt_extrude_internal::sketch_name, rt_extrude_internal::skt, rt_extrude_internal::u_vec, rt_extrude_internal::V, and rt_extrude_internal::v_vec. Here is the call graph for this function: ![]() |
|
d b _ o p e n _ i n m e m "open" an in-memory-only database instance. this initializes a dbip for use, creating an inmem dbi_wdbp as the means to add geometry to the directory (use wdb_export_external()). Definition at line 71 of file db_inmem.c. References BU_GETSTRUCT, db_i::dbi_eof, db_i::dbi_fd, db_i::dbi_fp, db_i::dbi_Head, db_i::dbi_mf, DBI_NULL, db_i::dbi_read_only, DIR_NULL, NULL, and RT_DBNHASH. Referenced by db_create_inmem(). |
|
d b _ c r e a t e _ i n m e m creates an in-memory-only database. this is very similar to db_open_inmem() with the exception that the this routine adds a default _GLOBAL object. Definition at line 118 of file db_inmem.c. References bu_avs_add(), bu_avs_free(), bu_avs_init(), bu_free_external(), bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), db5_export_attributes(), db5_export_object3(), DB5_GLOBAL_OBJECT_NAME, DB5_MAJORTYPE_ATTRIBUTE_ONLY, DB5_MAJORTYPE_RESERVED, DB5_ZZZ_UNCOMPRESSED, DB5HDR_HFLAGS_DLI_APPLICATION_DATA_OBJECT, DB5HDR_HFLAGS_DLI_HEADER_OBJECT, DB5HDR_HFLAGS_HIDDEN_OBJECT, db_open_inmem(), db_i::dbi_local2base, db_i::dbi_title, db_i::dbi_wdbp, DIR_HIDDEN, DIR_NON_GEOM, flags, NULL, RT_CK_DBI, RT_CK_WDB, RT_DIR_INMEM, units, and wdb_export_external(). Here is the call graph for this function: ![]() |
|
D B _ I N M E M Transmogrify an existing directory entry to be an in-memory-only one, stealing the external representation from 'ext'. Definition at line 171 of file db_inmem.c. References BU_CK_EXTERNAL, bu_free(), directory::d_flags, directory::d_len, directory::d_un, db_i::dbi_version, bu_external::ext_buf, bu_external::ext_nbytes, NULL, directory::ptr, RT_CK_DIR, and RT_DIR_INMEM. Referenced by wdb_export_external(). Here is the call graph for this function: ![]() |
|
D B _ G E T _ D I R E C T O R Y _ S I Z E Return the number of "struct directory" nodes in the given database. Definition at line 95 of file db_lookup.c. References directory::d_forw, db_i::dbi_Head, DIR_NULL, RT_CK_DBI, and RT_DBNHASH. Referenced by wdb_getspace(). |
|
D B _ C K _ D I R E C T O R Y For debugging, ensure that all the linked-lists for the directory structure are intact. Definition at line 117 of file db_lookup.c. References directory::d_forw, db_i::dbi_Head, DIR_NULL, RT_CK_DBI, RT_CK_DIR, and RT_DBNHASH. Referenced by rt_ck(). |
|
D B _ I S _ D I R E C T O R Y _ N O N _ E M P T Y Returns - 0 if the in-memory directory is empty 1 if the in-memory directory has entries, which implies that a db_scan() has already been performed. Definition at line 76 of file db_lookup.c. References db_i::dbi_Head, DIR_NULL, record::i, RT_CK_DBI, and RT_DBNHASH. Referenced by rt_submodel_plot(), and rt_submodel_prep(). |
|
D B _ D I R H A S H Internal function to return pointer to head of hash chain corresponding to the given string. Definition at line 137 of file db_lookup.c. References RT_DBHASH. Referenced by db_dircheck(), db_dirdelete(), db_lookup(), db_rename(), rt_find_identical_solid(), rt_free_soltab(), and rt_gettree_leaf(). |
|
Name - D B _ D I R C H E C K Description - This routine ensures that ret_name is not already in the directory. If it is, it tries a fixed number of times to modify ret_name before giving up. Note - most of the time, the hash for ret_name is computed once. Inputs - dbip database instance pointer ret_name the original name noisy to blather or not Outputs - ret_name the name to use headp pointer to the first (struct directory *) in the bucket Returns - 0 success <0 fail Definition at line 175 of file db_lookup.c. References bu_vls_addr(), bu_vls_strcat(), bu_vls_strcpy(), directory::d_forw, directory::d_namep, db_dirhash(), db_lookup(), db_i::dbi_Head, and DIR_NULL. Referenced by db5_diradd(), db_diradd(), and db_diradd5(). Here is the call graph for this function: ![]() |
|
|
D B _ L O O K U P _ B Y _ A T T R lookup directory entries based on directory flags (dp->d_flags) and attributes the "dir_flags" arg is a mask for the directory flags the *"avs" is an attribute value set used to select from the objects that *pass the flags mask. if "op" is 1, then the object must have all the *attributes and values that appear in "avs" in order to be *selected. If "op" is 2, then the object must have at least one of *the attribute/value pairs from "avs". dir_flags are in the form used in struct directory (d_flags) for op: 1 -> all attribute name/value pairs must be present and match 2 -> at least one of the name/value pairs must be present and match returns a ptbl list of selected directory pointers an empty list means nothing met the requirements a NULL return means something went wrong. Definition at line 559 of file db_lookup.c. References bu_attribute_value_set::avp, BU_CK_AVS, bu_log(), bu_malloc(), bu_ptbl_init(), bu_attribute_value_set::count, directory::d_flags, directory::d_namep, db5_get_attributes(), FOR_ALL_DIRECTORY_START, bu_attribute_value_pair::name, NULL, RT_CK_DBI, and bu_attribute_value_pair::value. Here is the call graph for this function: ![]() |
|
|
Definition at line 145 of file db5_scan.c. References bu_avs_get(), BU_LIST_INIT, bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_strcpy(), bu_attribute_value_set::count, directory::d_animate, directory::d_flags, directory::d_forw, directory::d_len, directory::d_major_type, directory::d_minor_type, directory::d_nref, directory::d_un, directory::d_use_hd, directory::d_uses, DB5_MAJORTYPE_ATTRIBUTE_ONLY, DB5_MAJORTYPE_BINARY_EXPM, DB5_MAJORTYPE_BINARY_MIME, DB5_MAJORTYPE_BINARY_UNIF, DB5_MAJORTYPE_BRLCAD, db_dircheck(), DIR_COMB, DIR_HIDDEN, DIR_NON_GEOM, DIR_NULL, DIR_REGION, DIR_SOLID, directory::file_offset, ID_COMBINATION, NULL, directory::ptr, resource::re_magic, RT_CK_DBI, RT_CK_DIR, RT_DIR_SET_NAMEP, RT_GET_DIRECTORY, rt_init_resource(), and rt_uniresource. Here is the call graph for this function: ![]() |
|
Referenced by dgo_zap_cmd(), and wdb_kill_cmd(). |
|
|
|
Referenced by wdb_move_cmd(). |
|
D B _ U P D A T E _ N R E F Updates the d_nref fields (which count the number of times a given entry is referenced by a COMBination in the database). Definition at line 184 of file db_match.c. References directory::d_forw, directory::d_major_type, directory::d_minor_type, directory::d_nref, DB5_MAJORTYPE_BRLCAD, DB5_MINORTYPE_BRLCAD_EXTRUDE, db_lookup(), db_i::dbi_Head, DIR_NULL, LOOKUP_QUIET, NULL, RT_CK_DBI, RT_CK_RESOURCE, rt_db_get_internal(), RT_DBNHASH, and RT_EXTRUDE_CK_MAGIC. Referenced by wdb_tops_cmd(). Here is the call graph for this function: ![]() |
|
Referenced by db_regexp_match(), and db_regexp_match_all(). |
|
D B _ R E G E X P _ M A T C H _ A L L Appends a list of all database matches to the given vls, or the pattern itself if no matches are found. Returns the number of matches. Definition at line 140 of file db_match.c. References bu_vls_strcat(), directory::d_forw, directory::d_namep, db_regexp_match(), db_i::dbi_Head, DIR_NULL, num, and RT_DBNHASH. Referenced by wdb_match_cmd(). Here is the call graph for this function: ![]() |
|
D B _ F L A G S _ I N T E R N A L Given the internal form of a database object, return the appropriate 'flags' word for stashing in the in-memory directory of objects. Definition at line 64 of file db_flags.c. References DIR_COMB, DIR_REGION, DIR_SOLID, ID_COMBINATION, rt_db_internal::idb_ptr, rt_comb_internal::region_flag, RT_CK_COMB, and RT_CK_DB_INTERNAL. Referenced by nmg_stash_model_to_file(), and wdb_put_internal(). |
|
d b _ f l a g s _ r a w _ i n t e r n a l Given a database object in "raw" internal form, return the appropriate 'flags' word for stashing in the in-memory directory of objects. Definition at line 91 of file db_flags.c. References db5_raw_internal::attributes, bu_avs_get(), bu_avs_init_empty(), db5_import_attributes(), DB5_MAJORTYPE_BRLCAD, DB5_MINORTYPE_BRLCAD_COMBINATION, DIR_COMB, DIR_NON_GEOM, DIR_REGION, DIR_SOLID, bu_external::ext_buf, db5_raw_internal::major_type, db5_raw_internal::minor_type, and NULL. Here is the call graph for this function: ![]() |
|
Referenced by db_put_external(). |
|
|
|
D B _ D E L E T E Delete the indicated database record(s). Arrange to write "free storage" database markers in it's place, positively erasing what had been there before. Definition at line 158 of file db_alloc.c. References bu_bomb(), bu_free(), bu_log(), directory::d_flags, directory::d_len, directory::d_namep, directory::d_un, db5_write_free(), db_zapper(), db_i::dbi_freep, db_i::dbi_version, DEBUG_DB, record::i, NULL, directory::ptr, RT_CK_DBI, RT_CK_DIR, RT_DIR_INMEM, RT_G_DEBUG, and rt_memfree(). Referenced by db_put_external(), and wdb_kill_cmd(). Here is the call graph for this function: ![]() |
|
D B _ Z A P P E R Using a single call to db_put(), write multiple zeroed records out, all with u_id field set to ID_FREE. This will zap all records from "start" to the end of this entry. Returns: -1 on error 0 on success (from db_put()) Definition at line 203 of file db_alloc.c. References BU_ASSERT_LONG, bu_bomb(), bu_free(), bu_log(), bu_malloc(), bzero, directory::d_flags, directory::d_len, directory::d_namep, db_put(), db_i::dbi_read_only, db_i::dbi_version, DEBUG_DB, record::i, ID_FREE, RT_CK_DBI, RT_CK_DIR, RT_DIR_INMEM, RT_G_DEBUG, and record::u_id. Referenced by db_alloc(), and db_delete(). Here is the call graph for this function: ![]() |
|
D B _ D U P _ D B _ T R E E _ S T A T E Duplicate the contents of a db_tree_state structure, including a private copy of the ts_mater field(s) and the attribute/value set. Definition at line 75 of file db_tree.c. References bu_attribute_value_set::avp, bu_avs_add(), bu_avs_init(), bu_avs_init_empty(), bu_malloc(), bu_attribute_value_set::count, record::i, mater_info::ma_shader, bu_attribute_value_pair::name, NULL, RT_CK_DBI, RT_CK_DBTS, db_tree_state::ts_attrs, db_tree_state::ts_dbip, db_tree_state::ts_mater, and bu_attribute_value_pair::value. Referenced by db_dup_combined_tree_state(), db_new_combined_tree_state(), db_recurse(), and db_recurse_subtree(). Here is the call graph for this function: ![]() |
|
D B _ F R E E _ D B _ T R E E _ S T A T E Release dynamic fields inside the structure, but not the structure itself. Definition at line 111 of file db_tree.c. References bu_attribute_value_set::avp, bu_avs_free(), bu_free(), mater_info::ma_shader, bu_attribute_value_set::max, NULL, RT_CK_DBI, RT_CK_DBTS, db_tree_state::ts_attrs, db_tree_state::ts_dbip, and db_tree_state::ts_mater. Referenced by db_free_combined_tree_state(), db_path_to_mat(), db_recurse(), and db_recurse_subtree(). Here is the call graph for this function: ![]() |
|
D B _ I N I T _ D B _ T R E E _ S T A T E In most cases, you don't want to use this routine, you want to struct copy mged_initial_tree_state or rt_initial_tree_state, and then set ts_dbip in your copy. Definition at line 134 of file db_tree.c. References bu_avs_init_empty(), bzero, MAT_IDN, RT_CK_DBI, RT_CK_RESOURCE, and RT_DBTS_MAGIC. Referenced by db_parse_1anim(), db_path_to_mat(), rt_tcl_import_from_path(), and wdb_facetize_cmd(). Here is the call graph for this function: ![]() |
|
Referenced by db_gettree_leaf(), db_gettree_region_end(), and db_recurse(). |
|
D B _ D U P _ C O M B I N E D _ T R E E _ S T A T E Definition at line 171 of file db_tree.c. References BU_GETSTRUCT, combined_tree_state::cts_p, combined_tree_state::cts_s, db_dup_db_tree_state(), db_dup_full_path(), db_full_path_init(), RT_CK_CTS, and RT_CTS_MAGIC. Referenced by db_dup_subtree(). Here is the call graph for this function: ![]() |
|
Referenced by db_free_tree(), db_walk_dispatcher(), db_walk_subtree(), and db_walk_tree(). |
|
Referenced by db_pr_combined_tree_state(). |
|
Referenced by db_recurse(), and db_walk_dispatcher(). |
|
Referenced by db_follow_path(), and db_recurse(). |
|
D B _ A P P L Y _ S T A T E _ F R O M _ M E M B Updates state via *tsp, pushes member's directory entry on *pathp. (Caller is responsible for popping it). Returns - -1 failure 0 success, member pushed on path Definition at line 373 of file db_tree.c. References bn_mat_mul(), bu_free(), bu_log(), db_add_node_to_full_path(), db_apply_anims(), db_lookup(), db_path_to_string(), DIR_NULL, LOOKUP_QUIET, MAT_COPY, MAT_IDN, NULL, RT_CK_DBTS, RT_CK_FULL_PATH, RT_CK_TREE, tree::tree_db_leaf::tl_mat, tree::tree_db_leaf::tl_name, tree::tr_l, db_tree_state::ts_dbip, db_tree_state::ts_mat, db_tree_state::ts_mater, db_tree_state::ts_sofar, and TS_SOFAR_REGION. Referenced by db_apply_state_from_one_member(), and db_recurse_subtree(). Here is the call graph for this function: ![]() |
|
D B _ A P P L Y _ S T A T E _ F R O M _ O N E _ M E M B E R Returns - -1 found member, failed to apply state 0 unable to find member 'cp' 1 state applied OK Definition at line 423 of file db_tree.c. References bu_bomb(), bu_log(), db_apply_state_from_memb(), db_apply_state_from_one_member(), OP_DB_LEAF, OP_INTERSECT, OP_SUBTRACT, OP_UNION, OP_XOR, RT_CHECK_DBI, RT_CK_DBTS, RT_CK_FULL_PATH, RT_CK_TREE, tree::tree_node::tb_left, tree::tree_node::tb_right, tree::tree_db_leaf::tl_name, tree::tr_b, tree::tr_l, db_tree_state::ts_dbip, db_tree_state::ts_sofar, TS_SOFAR_INTER, and TS_SOFAR_MINUS. Referenced by db_apply_state_from_one_member(), and db_follow_path(). Here is the call graph for this function: ![]() |
|
D B _ F I N D _ N A M E D _ L E A F The search stops on the first match. Returns - tp if found TREE_NULL if not found in this tree Definition at line 478 of file db_tree.c. References bu_bomb(), bu_log(), db_find_named_leaf(), OP_DB_LEAF, OP_INTERSECT, OP_SUBTRACT, OP_UNION, OP_XOR, RT_CK_TREE, tree::tree_node::tb_left, tree::tree_node::tb_right, tree::tree_db_leaf::tl_name, tree::tr_b, tree::tr_l, and TREE_NULL. Referenced by db_find_named_leaf(). Here is the call graph for this function: ![]() |
|
D B _ F I N D _ N A M E D _ L E A F S _ P A R E N T The search stops on the first match. Returns - TREE_NULL if not found in this tree tp if found *side == 1 if leaf is on lhs. *side == 2 if leaf is on rhs. Definition at line 519 of file db_tree.c. References bu_bomb(), bu_log(), db_find_named_leafs_parent(), OP_DB_LEAF, OP_INTERSECT, OP_SUBTRACT, OP_UNION, OP_XOR, RT_CK_TREE, tree::tree_node::tb_left, tree::tree_node::tb_right, tree::tree_db_leaf::tl_name, tree::tr_b, tree::tr_l, and TREE_NULL. Referenced by db_find_named_leafs_parent(), and db_tree_del_dbleaf(). Here is the call graph for this function: ![]() |
|
D B _ T R E E _ D E L _ L H S Definition at line 564 of file db_tree.c. References bu_bomb(), db_free_tree(), OP_DB_LEAF, OP_INTERSECT, OP_NMG_TESS, OP_NOP, OP_REGION, OP_SOLID, OP_SUBTRACT, OP_UNION, OP_XOR, RT_CK_TREE, RT_FREE_TREE, tree::tree_node::tb_left, tree::tree_node::tb_right, tree::tr_b, and TREE_NULL. Referenced by db_non_union_push(), and db_tree_del_dbleaf(). Here is the call graph for this function: ![]() |
|
D B _ T R E E _ D E L _ R H S Definition at line 608 of file db_tree.c. References bu_bomb(), db_free_tree(), OP_DB_LEAF, OP_INTERSECT, OP_NMG_TESS, OP_NOP, OP_REGION, OP_SOLID, OP_SUBTRACT, OP_UNION, OP_XOR, RT_CK_TREE, RT_FREE_TREE, tree::tree_node::tb_left, tree::tree_node::tb_right, tree::tr_b, and TREE_NULL. Referenced by db_non_union_push(), and db_tree_del_dbleaf(). Here is the call graph for this function: ![]() |
|
D B _ T R E E _ D E L _ D B L E A F Given a name presumably referenced in a OP_DB_LEAF node, delete that node, and the operation node that references it. Not that this may not produce an equivalant tree, for example when rewriting (A - subtree) as (subtree), but that will be up to the caller/user to adjust. This routine gets rid of exactly two nodes in the tree: leaf, and op. Use some other routine if you wish to kill the entire rhs below "-" and "intersect" nodes. The two nodes deleted will have their memory freed. If the tree is a single OP_DB_LEAF node, the leaf is freed and *tp is set to NULL. Returns - -3 Internal error -2 Tree is empty -1 Unable to find OP_DB_LEAF node specified by 'cp'. 0 OK Definition at line 672 of file db_tree.c. References bu_log(), db_find_named_leafs_parent(), db_free_tree(), db_tree_del_dbleaf(), db_tree_del_lhs(), db_tree_del_rhs(), OP_DB_LEAF, RT_CK_RESOURCE, RT_CK_TREE, TREE_NULL, and void(). Referenced by db_tree_del_dbleaf(), and wdb_remove_cmd(). Here is the call graph for this function: ![]() |
|
D B _ T R E E _ M U L _ D B L E A F Multiply on the left every matrix found in a DB_LEAF node in a tree. Definition at line 713 of file db_tree.c. References bn_mat_dup(), bn_mat_mul(), bu_bomb(), bu_log(), db_tree_mul_dbleaf(), MAT_COPY, NULL, OP_DB_LEAF, OP_INTERSECT, OP_SUBTRACT, OP_UNION, OP_XOR, RT_CK_TREE, tree::tree_node::tb_left, tree::tree_node::tb_right, tree::tree_db_leaf::tl_mat, tree::tr_b, and tree::tr_l. Referenced by db_tree_mul_dbleaf(). Here is the call graph for this function: ![]() |
|
D B _ T R E E _ F U N C L E A F This routine traverses a combination (union tree) in LNR order and calls the provided function for each OP_DB_LEAF node. Note that this routine does not go outside this one combination!!!! was comb_functree(). Definition at line 754 of file db_tree.c. References bu_bomb(), bu_log(), db_tree_funcleaf(), OP_DB_LEAF, OP_INTERSECT, OP_SUBTRACT, OP_UNION, OP_XOR, RT_CK_DBI, and RT_CK_TREE. Referenced by db_tree_funcleaf(), wdb_identitize(), and wdb_showmats_cmd(). Here is the call graph for this function: ![]() |
|
D B _ F O L L O W _ P A T H Starting with possible prior partial path and corresponding accumulated state, follow the path given by "new_path", updating *tsp and *total_path with full state information along the way. In a better world, there would have been a "combined_tree_state" arg. Parameter 'depth' controls how much of 'new_path' is used: 0 use all of new_path >0 use only this many of the first elements of the path <0 use all but this many path elements. A much more complete version of rt_plookup() and pathHmat(). There is also a TCL interface. Returns - 0 success (plus *tsp is updated) -1 error (*tsp values are not useful) Definition at line 810 of file db_tree.c. References animate::an_forw, animate::an_path, ANIM_NULL, bn_mat_mul(), bu_free(), bu_log(), directory::d_flags, directory::d_namep, db_add_node_to_full_path(), db_apply_state_from_comb(), db_apply_state_from_one_member(), db_do_anim(), DB_FULL_PATH_CUR_DIR, db_path_to_string(), db_i::dbi_anroot, DEBUG_TREEWALK, DIR_COMB, DIR_NULL, db_full_path::fp_len, db_full_path::fp_names, rt_db_internal::idb_ptr, MAT_COPY, MAT_IDN, NULL, rt_bomb(), RT_CHECK_DBI, RT_CK_ANIMATE, RT_CK_COMB, RT_CK_DBTS, RT_CK_DIR, RT_CK_FULL_PATH, RT_CK_RESOURCE, rt_db_free_internal(), rt_db_get_internal(), RT_G_DEBUG, rt_comb_internal::tree, db_tree_state::ts_dbip, db_tree_state::ts_mat, db_tree_state::ts_mater, and db_tree_state::ts_resp. Referenced by db_follow_path_for_state(), db_path_to_mat(), and rt_tcl_import_from_path(). Here is the call graph for this function: ![]() |
|
D B _ F O L L O W _ P A T H _ F O R _ S T A T E Follow the slash-separated path given by "cp", and update *tsp and *total_path with full state information along the way. A much more complete version of rt_plookup(). Returns - 0 success (plus *tsp is updated) -1 error (*tsp values are not useful) Definition at line 972 of file db_tree.c. References db_follow_path(), db_free_full_path(), db_string_to_path(), db_full_path::fp_len, RT_CK_DBTS, and db_tree_state::ts_dbip. Referenced by db_parse_1anim(), and db_walk_tree(). Here is the call graph for this function: ![]() |
|
|
D B _ D U P _ S U B T R E E Definition at line 1344 of file db_tree.c. References bn_mat_dup(), bu_log(), bu_strdup, db_dup_combined_tree_state(), db_dup_subtree(), OP_DB_LEAF, OP_GUARD, OP_INTERSECT, OP_NOP, OP_NOT, OP_REGION, OP_SOLID, OP_SUBTRACT, OP_UNION, OP_XNOP, OP_XOR, rt_bomb(), RT_CK_RESOURCE, RT_CK_TREE, RT_GET_TREE, tree::tree_node::tb_left, tree::tree_node::tb_right, tree::tree_cts::tc_ctsp, tree::tree_db_leaf::tl_mat, tree::tree_db_leaf::tl_name, tree::tr_b, tree::tr_c, tree::tr_l, and TREE_NULL. Referenced by db_dup_subtree(), db_non_union_push(), and db_tree_flatten_describe(). Here is the call graph for this function: ![]() |
|
|
D B _ L E F T _ H V Y _ N O D E Re-balance this node to make it left heavy. Unions operators will be moved to left side. when finished "tp" MUST still point to top node od this subtree. Definition at line 1562 of file db_tree.c. References OP_UNION, RT_CK_TREE, tree::tree_node::tb_left, tree::tree_node::tb_right, and tree::tr_b. Referenced by db_non_union_push(). |
|
Referenced by db_non_union_push(), db_tree_flatten_describe(), rt_comb_export4(), and wdb_combadd(). |
|
D B _ C O U N T _ T R E E _ N O D E S Return a count of the number of "union tree" nodes below "tp", including tp. Definition at line 1810 of file db_tree.c. References bu_log(), db_count_tree_nodes(), OP_DB_LEAF, OP_GUARD, OP_INTERSECT, OP_NOP, OP_NOT, OP_REGION, OP_SOLID, OP_SUBTRACT, OP_UNION, OP_XNOP, OP_XOR, rt_bomb(), RT_CK_TREE, tree::tree_node::tb_left, tree::tree_node::tb_right, and tree::tr_b. Referenced by db_count_tree_nodes(). Here is the call graph for this function: ![]() |
|
D B _ I S _ T R E E _ A L L _ U N I O N S Returns - 1 if this tree contains nothing but union operations. 0 if at least one subtraction or intersection op exists. Definition at line 1852 of file db_tree.c. References bu_log(), db_is_tree_all_unions(), OP_DB_LEAF, OP_GUARD, OP_INTERSECT, OP_NOP, OP_NOT, OP_REGION, OP_SOLID, OP_SUBTRACT, OP_UNION, OP_XNOP, OP_XOR, rt_bomb(), RT_CK_TREE, tree::tree_node::tb_left, tree::tree_node::tb_right, and tree::tr_b. Referenced by db_is_tree_all_unions(). Here is the call graph for this function: ![]() |
|
D B _ C O U N T _ S U B T R E E _ R E G I O N S Definition at line 1889 of file db_tree.c. References bu_log(), db_count_subtree_regions(), OP_DB_LEAF, OP_GUARD, OP_INTERSECT, OP_NOP, OP_NOT, OP_REGION, OP_SOLID, OP_SUBTRACT, OP_UNION, OP_XNOP, OP_XOR, rt_bomb(), RT_CK_TREE, tree::tree_node::tb_left, tree::tree_node::tb_right, and tree::tr_b. Referenced by db_count_subtree_regions(). Here is the call graph for this function: ![]() |
|
D B _ T A L L Y _ S U B T R E E _ R E G I O N S Definition at line 1927 of file db_tree.c. References bu_log(), db_tally_subtree_regions(), OP_DB_LEAF, OP_GUARD, OP_INTERSECT, OP_NOP, OP_NOT, OP_REGION, OP_SOLID, OP_SUBTRACT, OP_UNION, OP_XNOP, OP_XOR, rt_bomb(), RT_CK_RESOURCE, RT_CK_TREE, RT_GET_TREE, tree::tree_node::tb_left, tree::tree_node::tb_right, and tree::tr_b. Referenced by db_tally_subtree_regions(). Here is the call graph for this function: ![]() |
|
Referenced by rt_gettrees_muves(), rt_submodel_plot(), wdb_facetize_cmd(), wdb_pathlist_cmd(), and wdb_push_cmd(). |
|
D B _ P A T H _ T O _ M A T Returns - 1 OK, path matrix written into 'mat'. 0 FAIL Called in librt/db_tree.c, mged/dodraw.c, and mged/animedit.c Definition at line 2477 of file db_tree.c. References db_follow_path(), db_free_db_tree_state(), db_free_full_path(), db_full_path_init(), db_init_db_tree_state(), LOOKUP_NOISY, MAT_COPY, rt_bomb(), RT_CHECK_DBI, RT_CK_FULL_PATH, and db_tree_state::ts_mat. Referenced by db_region_mat(). Here is the call graph for this function: ![]() |
|
D B _ A P P L Y _ A N I M S 'arc' may be a null pointer, signifying an identity matrix. 'materp' may be a null pointer, signifying that the region has already been finalized above this point in the tree. Definition at line 2514 of file db_tree.c. References animate::an_forw, animate::an_path, ANIM_NULL, bu_free(), bu_log(), directory::d_animate, directory::d_namep, db_path_to_string(), DEBUG_ANIM, db_full_path::fp_len, db_full_path::fp_names, RT_CK_ANIMATE, and RT_G_DEBUG. Referenced by db_apply_state_from_memb(). Here is the call graph for this function: ![]() |
|
D B _ R E G I O N _ M A T Given the name of a region, return the matrix which maps model coordinates into "region" coordinates. Returns: 0 OK <0 Failure Definition at line 2583 of file db_tree.c. References bn_mat_inv(), bu_log(), db_free_full_path(), db_path_to_mat(), and db_string_to_path(). Referenced by db_shader_mat(). Here is the call graph for this function: ![]() |
|
D B _ S H A D E R _ M A T XXX given that this routine depends on rtip, it should be called XXX rt_shader_mat(). Given a region, return a matrix which maps model coordinates into region "shader space". This is a space where points in the model within the bounding box of the region are mapped into "region" space (the coordinate system in which the region is defined). The area occupied by the region's bounding box (in region coordinates) are then mapped into the unit cube. This unit cube defines "shader space". Returns: 0 OK <0 Failure Definition at line 2631 of file db_tree.c. References bn_mat_mul(), bn_mat_print(), bu_bomb(), bu_log(), bu_semaphore_acquire(), bu_semaphore_release(), db_region_mat(), MAT_DELTAS_VEC, MAT_IDN, MAT_SCALE_VEC, region::reg_name, rt_basename(), RT_CK_RESOURCE, RT_CK_RTI, rt_clean(), rt_gettree(), rt_new_rti(), rt_rpp_region(), RT_SEM_MODEL, rt_i::rti_dbip, rt_i::useair, V3ARGS, VEQUAL, VINVDIR, VSCALE, and VSUB2. Here is the call graph for this function: ![]() |
|
|
Definition at line 166 of file dir.c. References bu_free_external(), BU_INIT_EXTERNAL, bu_log(), directory::d_namep, DB5_MAJORTYPE_BRLCAD, db_put_external(), db_i::dbi_version, rt_db_internal::idb_meth, RT_CK_DB_INTERNAL, rt_db_free_internal(), and rt_db_put_internal5(). Referenced by wdb_comb_std_cmd(), wdb_combadd(), wdb_facetize_cmd(), wdb_identitize(), wdb_make_bb_cmd(), wdb_move_all_cmd(), wdb_move_cmd(), wdb_nmg_collapse_cmd(), wdb_nmg_simplify_cmd(), wdb_ocenter_cmd(), wdb_orotate_cmd(), wdb_oscale_cmd(), wdb_otranslate_cmd(), wdb_push_cmd(), wdb_shells_cmd(), and wdb_smooth_bot_cmd(). Here is the call graph for this function: ![]() |
|
Definition at line 215 of file dir.c. References bu_free_external(), BU_INIT_EXTERNAL, bu_log(), rt_db_internal::idb_meth, NULL, RT_CK_DB_INTERNAL, RT_CK_FUNCTAB, and rt_uniresource. Here is the call graph for this function: ![]() |
|
|
Definition at line 287 of file dir.c. References bu_log(), directory::d_namep, db_lookup(), DIR_NULL, ID_NULL, idb_type, LOOKUP_NOISY, NULL, and rt_db_get_internal(). Here is the call graph for this function: ![]() |
|
Definition at line 1383 of file tree.c. References bu_log(), OP_INTERSECT, OP_NOP, OP_SOLID, OP_SUBTRACT, OP_UNION, OP_XOR, resource::re_boolstack, RT_CK_TREE, rt_grow_boolstack(), tree::tree_node::tb_left, tree::tree_node::tb_right, tree::tr_b, and TREE_NULL. Referenced by rt_prep_parallel(). Here is the call graph for this function: ![]() |
|
D B _ G E T _ D I R E C T O R Y This routine is called by the RT_GET_DIRECTORY macro when the freelist is exhausted. Rather than simply getting one additional structure, we get a whole batch, saving overhead. Definition at line 511 of file db_lookup.c. References BU_ASSERT_PTR, BU_CK_PTBL, BU_FLSTR, bu_malloc(), bu_malloc_len_roundup(), bu_ptbl_ins(), NULL, RT_CK_RESOURCE, and RT_DIR_MAGIC. Here is the call graph for this function: ![]() |
|
D B _ F U N C T R E E This subroutine is called for a no-frills tree-walk, with the provided subroutines being called at every combination and leaf (solid) node, respectively. This routine is recursive, so no variables may be declared static. Definition at line 234 of file db_walk.c. References bu_free(), bu_log(), directory::d_flags, directory::d_len, directory::d_namep, db_functree(), db_functree_subtree(), db_getmrec(), db_lookup(), db_i::dbi_version, DEBUG_DB, DIR_COMB, DIR_NULL, rt_db_internal::idb_ptr, LOOKUP_NOISY, M, NULL, RT_CK_DBI, rt_db_free_internal(), rt_db_get_internal5(), RT_G_DEBUG, and rt_comb_internal::tree. Referenced by db_functree(), db_functree_subtree(), and wdb_killtree_cmd(). Here is the call graph for this function: ![]() |
|
Referenced by rt_arb_std_type(). |
|
R T _ A R B _ S T D _ T Y P E Given an ARB in internal form, return it's specific ARB type. Set tol.dist = 0.0001 to obtain past behavior. Returns - 0 Error in input ARB 4 ARB4 5 ARB5 6 ARB6 7 ARB7 8 ARB8 Implicit return - rt_arb_internal pt[] array reorganized into GIFT "standard" order. Definition at line 324 of file g_arb.c. References BN_CK_TOL, bu_bomb(), ID_ARB8, rt_db_internal::idb_ptr, RT_ARB_CK_MAGIC, rt_arb_get_cgtype(), and RT_CK_DB_INTERNAL. Referenced by rt_arb_describe(), wdb_get_type_cmd(), wdb_move_arb_edge_cmd(), wdb_move_arb_face_cmd(), and wdb_rotate_arb_face_cmd(). Here is the call graph for this function: ![]() |
|
|
|
Referenced by wdb_move_arb_face_cmd(). |
|
R T _ A R B _ 3 F A C E _ I N T E R S E C T Finds the intersection point of three faces of an ARB. Returns - 0 success, value is in 'point' -1 failure Definition at line 1754 of file g_arb.c. References bn_mkpoint_3planes(). Referenced by rt_arb_calc_points(). Here is the call graph for this function: ![]() |
|
Referenced by rt_ehy_plot(), rt_ehy_tess(), rt_epa_plot(), and rt_epa_tess(). |
|
R T _ V L S _ P I P E P T Definition at line 469 of file g_pipe.c. References BU_LIST_FIRST, BU_LIST_NEXT, BU_LIST_NOT_HEAD, bu_vls_strcat(), rt_db_internal::idb_ptr, wdb_pipept::l, rt_pipe_internal::pipe_segs_head, wdb_pipept::pp_bendradius, wdb_pipept::pp_coord, wdb_pipept::pp_id, wdb_pipept::pp_od, RT_PIPE_CK_MAGIC, V3ARGS, and VSCALE. Here is the call graph for this function: ![]() |
|
|
|
R T _ P I P E _ C K Check pipe solid Bend radius must be at least as large as the outer radius All bends must have constant diameters No consecutive LINEAR sections without BENDS unless the LINEAR sections are collinear. Definition at line 3681 of file g_pipe.c. References bn_pi, BU_LIST_FIRST, BU_LIST_NEXT, BU_LIST_NOT_HEAD, bu_log(), wdb_pipept::l, MAGNITUDE, wdb_pipept::pp_bendradius, wdb_pipept::pp_coord, wdb_pipept::pp_od, SQRT_SMALL_FASTF, V3ARGS, VCROSS, VDIVIDE_TOL, VDOT, VNEAR_ZERO, VSCALE, VSETALL, and VSUB2. Here is the call graph for this function: ![]() |
|
R T _ M K _ P A R A B O L A Approximate a parabola with line segments. The initial single segment is broken at the point farthest from the parabola if that point is not aleady within the distance and normal error tolerances. The two resulting segments are passed recursively to this routine until each segment is within tolerance. Definition at line 848 of file g_rpc.c. References NEAR_ZERO, rt_pt_node::next, rt_pt_node::p, RPC_TOL, rt_mk_parabola(), rt_ptalloc(), VDOT, VMOVE, VSET, VUNITIZE, X, Y, and Z. Referenced by rt_epa_plot(), rt_epa_tess(), rt_mk_parabola(), rt_rpc_plot(), and rt_rpc_tess(). Here is the call graph for this function: ![]() |
|
Definition at line 904 of file g_rpc.c. References bu_malloc(). Referenced by rt_ehy_plot(), rt_ehy_tess(), rt_ell4(), rt_epa_plot(), rt_epa_tess(), rt_mk_ell(), rt_mk_hyperbola(), rt_mk_parabola(), rt_rhc_plot(), rt_rhc_tess(), rt_rpc_plot(), and rt_rpc_tess(). Here is the call graph for this function: ![]() |
|
Referenced by db_alloc(). |
|
Referenced by db5_realloc(). |
|
|
|
Referenced by db5_diradd_handler(), db5_realloc(), db_delete(), and db_scan(). |
|
Definition at line 382 of file memalloc.c. References mem_map::m_nxtp, and MAP_NULL. Referenced by db_close(), wdb_concat_cmd(), and wdb_dup_cmd(). |
|
Definition at line 407 of file memalloc.c. References bu_log(), mem_map::m_addr, mem_map::m_nxtp, and mem_map::m_size. Here is the call graph for this function: ![]() |
|
Definition at line 422 of file memalloc.c. References BU_FLSTR, bu_free(), mem_map::m_nxtp, and MAP_NULL. Referenced by db_close(). Here is the call graph for this function: ![]() |
|
Definition at line 102 of file vlist.c. References bn_vlblock_init(). Referenced by nmg_2face_plot(), nmg_face_plot(), nmg_pl_2fu(), nmg_pl_comb_fu(), nmg_pl_fu(), nmg_pl_isect(), nmg_pl_lu(), nmg_pl_m(), nmg_pl_r(), nmg_pl_s(), nmg_pl_shell(), nmg_plot_lu_around_eu(), and nmg_show_broken_classifier_stuff(). Here is the call graph for this function: ![]() |
|
Definition at line 111 of file vlist.c. References BN_CK_VLBLOCK, BN_FREE_VLIST, BU_LIST_IS_EMPTY, bn_vlblock::free_vlist_hd, bn_vlblock::head, bn_vlblock::nused, and bn_vlblock::rgb. Referenced by nmg_2face_plot(), nmg_face_plot(), nmg_pl_2fu(), nmg_pl_comb_fu(), nmg_pl_fu(), nmg_pl_isect(), nmg_pl_lu(), nmg_pl_m(), nmg_pl_r(), nmg_pl_s(), nmg_pl_shell(), nmg_plot_lu_around_eu(), and nmg_show_broken_classifier_stuff(). |
|
Definition at line 132 of file vlist.c. References BN_CK_VLBLOCK, bn_vlblock::head, bn_vlblock::nused, and bn_vlblock::rgb. Referenced by dgo_qray_data_to_vlist(), nmg_vlblock_around_eu(), nmg_vlblock_e(), nmg_vlblock_eu(), nmg_vlblock_v(), rt_label_vlist_verts(), rt_process_uplot_value(), and rt_uplot_to_vlist(). |
|
Referenced by rt_ars_shot(), rt_bot_piece_hitsegs(), rt_part_shot(), and rt_pg_shot(). |
|
|
R T _ P G _ P L O T Definition at line 490 of file g_pg.c. References BN_VLIST_LINE_DRAW, BN_VLIST_LINE_MOVE, rt_db_internal::idb_ptr, rt_pg_internal::npoly, rt_pg_internal::poly, RT_ADD_VLIST, RT_CK_DB_INTERNAL, and RT_PG_CK_MAGIC. |
|
R T _ P G _ P L O T _ P O L Y Convert to vlist, draw as polygons. Definition at line 520 of file g_pg.c. References BN_VLIST_POLY_DRAW, BN_VLIST_POLY_MOVE, BN_VLIST_POLY_START, rt_db_internal::idb_ptr, rt_pg_internal::npoly, rt_pg_internal::poly, RT_ADD_VLIST, RT_CK_DB_INTERNAL, RT_PG_CK_MAGIC, VCROSS, VSUB2, and VUNITIZE. |
|
R T _ H F _ T O _ D S P Convert in-memory form of a height-field (HF) to a displacement-map solid (DSP) in internal representation. There is no record in the V5 database for an HF. Definition at line 139 of file g_hf.c. References bn_mat_inv(), BU_GETSTRUCT, bu_log(), bu_vls_init(), bu_vls_strcat(), DB5_MAJORTYPE_BRLCAD, DEBUG_HF, rt_hf_internal::dfile, DSP_CUT_DIR_ADAPT, rt_hf_internal::file2mm, ID_DSP, rt_db_internal::idb_ptr, MAT_DELTAS_VEC, MAT_IDN, rt_hf_internal::n, RT_CK_DB_INTERNAL, RT_CK_RESOURCE, rt_db_free_internal(), RT_DSP_INTERNAL_MAGIC, RT_DSP_SRC_FILE, RT_G_DEBUG, RT_HF_CK_MAGIC, rt_hf_internal::shorts, rt_hf_internal::v, VCROSS, VSCALE, VUNITIZE, rt_hf_internal::w, rt_hf_internal::x, rt_hf_internal::xlen, rt_hf_internal::y, and rt_hf_internal::ylen. Here is the call graph for this function: ![]() |
|
D S P _ P O S Given an arbitrary point return the projection of that point onto the surface of the DSP. If the point is outside the bounds of the DSP then it will be projected to the nearest edge of the DSP. Return the cell number and the height above/below the plane Definition at line 4380 of file g_dsp.c. References bu_log(), CLAMP, DSP, dsp_specific::dsp_i, dsp_rpp::dsp_max, dsp_rpp::dsp_min, rt_dsp_internal::dsp_mtos, rt_dsp_internal::dsp_stom, ID_DSP, MAT4X3PNT, project_pt(), RT_CK_SOLTAB, RT_G_DEBUG, soltab::st_id, soltab::st_specific, V3ARGS, VPRINT, VSET, X, XSIZ, Y, and YSIZ. Here is the call graph for this function: ![]() |
|
Referenced by rt_pr_partitions(), and rt_pr_pt(). |
|
Referenced by rt_pr_pt_vls(), and rt_pr_seg(). |
|
Referenced by rt_pr_hit(), and rt_pr_pt_vls(). |
|
|
|
Referenced by db_comb_describe(), main(), rt_pr_region(), and rt_pr_tree_vls(). |
|
Definition at line 504 of file pr.c. References bu_free(), bu_malloc(), bu_strdup, combined_tree_state::cts_p, directory::d_namep, db_path_to_string(), NULL, OP_DB_LEAF, OP_GUARD, OP_INTERSECT, OP_REGION, OP_SOLID, OP_SUBTRACT, OP_UNION, RT_CK_SOLTAB, RT_CK_TREE, rt_pr_tree_str(), soltab::st_dp, tree::tree_node::tb_left, tree::tree_node::tb_right, tree::tree_cts::tc_ctsp, tree::tree_db_leaf::tl_name, tree::tr_a, tree::tr_b, tree::tr_c, tree::tr_l, and tree::tree_leaf::tu_stp. Referenced by Print_tree(), and rt_pr_tree_str(). Here is the call graph for this function: ![]() |
|
Referenced by rt_ell_describe(), rt_superell_describe(), and rt_tgc_describe(). |
|
Referenced by rt_ell_describe(), rt_superell_describe(), and rt_tgc_describe(). |
|
Definition at line 766 of file pr.c. References BN_CK_TOL, bu_log(), bn_tol::dist, bn_tol::dist_sq, bn_tol::para, and bn_tol::perp. Referenced by nmg_is_crack_outie(), and rt_nmg_shot(). Here is the call graph for this function: ![]() |
|
Definition at line 79 of file regionfix.c. References bu_free(), BU_LIST_FOR, bu_log(), bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_strcat(), bu_vls_strcpy(), bu_vls_trunc(), db_i::dbi_filename, DEBUG_INSTANCE, fp, rt_i::HeadRegion, name, NULL, perror(), region::reg_instnum, region::reg_name, region::reg_regionid, regcomp(), regexec(), regfree(), RT_CK_RTI, RT_G_DEBUG, rt_read_cmd(), rt_i::rti_dbip, and rt_i::rti_region_fix_file. Here is the call graph for this function: ![]() |
|
Definition at line 1218 of file table.c. References BU_CK_EXTERNAL, bu_log(), DBID_ARBN, DBID_BOT, DBID_CLINE, DBID_EXTR, DBID_NMG, DBID_PARTICLE, DBID_PIPE, DBID_SKETCH, DBID_STRSOL, bu_external::ext_buf, ID_ARBN, ID_ARS, ID_ARS_A, ID_BOT, ID_BSOLID, ID_BSPLINE, ID_CLINE, ID_DSP, ID_EBM, ID_EXTRUDE, ID_HF, ID_MAX_SOLID, ID_NMG, ID_P_HEAD, ID_PARTICLE, ID_PIPE, ID_POLY, ID_SKETCH, ID_SOLID, ID_SUBMODEL, ID_VOL, int, record::s, record::solidrec::s_type, record::ss, record::strsol::ss_keyword, record::strsol::ss_name, and record::u_id. Referenced by rt_db_get_internal(). Here is the call graph for this function: ![]() |
|
Definition at line 1304 of file table.c. References rt_functab::ft_label, and rt_functab::magic. Referenced by wdb_form_cmd(). |
|
Definition at line 1330 of file table.c. References bu_avs_free(), bu_avs_init(), BU_AVS_MAGIC, bu_avs_merge(), bu_free_external(), BU_INIT_EXTERNAL, bu_log(), bu_attribute_value_set::count, db_i::dbi_version, bu_attribute_value_set::magic, RT_CK_DB_INTERNAL, RT_CK_DBI, RT_CK_RESOURCE, rt_db_free_internal(), and RT_INIT_DB_INTERNAL. Here is the call graph for this function: ![]() |
|
|
|
Definition at line 463 of file prep.c. References INFINITY, pdv_3box(), pdv_3space(), RT_CK_RTI, RT_VISIT_ALL_SOLTABS_END, RT_VISIT_ALL_SOLTABS_START, rt_i::rti_pmax, rt_i::rti_pmin, soltab::st_aradius, soltab::st_max, and soltab::st_min. Here is the call graph for this function: ![]() |
|
Definition at line 483 of file prep.c. References INFINITY, pdv_3space(), RT_CK_RTI, rt_plot_solid(), RT_VISIT_ALL_SOLTABS_END, RT_VISIT_ALL_SOLTABS_START, rt_i::rti_pmax, rt_i::rti_pmin, soltab::st_aradius, and void(). Here is the call graph for this function: ![]() |
|
Definition at line 614 of file prep.c. References bu_ptbl::blen, BU_ASSERT_LONG, BU_ASSERT_PTR, bu_bomb(), BU_LIST_INIT, BU_LIST_UNINITIALIZED, bu_log(), BU_PTBL_GET, bu_ptbl_init(), BU_PTBL_SET, bu_ptbl::l, MAX_PSW, NULL, resource::re_boolslen, resource::re_boolstack, resource::re_cpu, resource::re_directory_blocks, resource::re_magic, resource::re_nmgfree, resource::re_parthead, resource::re_region_ptbl, resource::re_seg, resource::re_seg_blocks, resource::re_solid_bitv, RESOURCE_MAGIC, RT_CK_RTI, rt_uniresource, rt_i::rti_resources, and rt_i::rti_treetop. Referenced by db5_diradd(), db_diradd5(), main(), rt_cell_n_on_ray(), rt_clean_resource(), rt_dirbuild(), Rt_Init(), rt_shootray(), rt_shootray_bundle(), rt_submodel_prep(), rt_submodel_shot(), wdb_dbopen(), wdb_fopen_v(), and wdb_rt_gettrees_cmd(). Here is the call graph for this function: ![]() |
|
Definition at line 704 of file prep.c. References BU_CK_BITV, BU_CK_PTBL, bu_free(), BU_LIST_DEQUEUE, BU_LIST_INIT, BU_LIST_IS_INITIALIZED, BU_LIST_WHILE, BU_PTBL_FOR, bu_ptbl_free(), bu_ptbl::l, bu_bitv::l, bu_bitv::nbits, NMG_CK_HITMISS, NULL, resource::re_boolslen, resource::re_boolstack, resource::re_cpu, resource::re_nmgfree, resource::re_parthead, resource::re_region_ptbl, resource::re_seg, resource::re_seg_blocks, resource::re_solid_bitv, resource::re_tree_hd, RT_CK_PT, RT_CK_RESOURCE, RT_CK_RTI, RT_CK_SEG, rt_init_resource(), rt_res_pieces_clean(), tree::tree_node::tb_left, tree::tr_b, and TREE_NULL. Referenced by rt_submodel_free(). Here is the call graph for this function: ![]() |
|
Definition at line 1478 of file prep.c. References BU_PTBL_END, bu_ptbl_free(), BU_PTBL_GET, bu_ptbl_init(), db_free_full_path(), db_lookup(), DIR_NULL, rt_reprep_obj_list::ntopobjs, path, rt_reprep_obj_list::paths, rt_res_pieces_clean(), rt_i::rti_dbip, start, and rt_reprep_obj_list::topobjs. Here is the call graph for this function: ![]() |
|
Definition at line 1674 of file prep.c. References bu_calloc(), BU_PTBL_GET, BU_PTBL_LEN, db_path_to_string(), rt_i::mdl_max, rt_i::mdl_min, rt_i::needprep, rt_reprep_obj_list::paths, and VMOVE. Here is the call graph for this function: ![]() |
|
|
|
Definition at line 1283 of file prep.c. References bu_free(), bu_log(), bu_malloc(), bu_ptbl_ins(), directory::d_namep, db_add_node_to_full_path(), db_free_full_path(), db_full_path_init(), DIR_COMB, DIR_REGION, rt_db_internal::idb_ptr, NULL, path, rt_db_free_internal(), rt_db_get_internal(), start, and rt_comb_internal::tree. Here is the call graph for this function: ![]() |
|
Definition at line 798 of file prep.c. References bu_bitv_new(), bu_bomb(), BU_CK_BITV, BU_LIST_DEQUEUE, BU_LIST_FOR, BU_LIST_HEAD_MAGIC, BU_LIST_IS_EMPTY, bu_bitv::l, bu_list::magic, bu_bitv::nbits, and resource::re_solid_bitv. Referenced by rt_find_backing_dist(), rt_shootray(), and rt_shootray_bundle(). Here is the call graph for this function: ![]() |
|
|
|
Definition at line 1959 of file shoot.c. References resource::re_ndup, resource::re_nempty_cells, resource::re_nmiss_model, resource::re_nshootray, resource::re_piece_ndup, resource::re_piece_shot_hit, resource::re_piece_shot_miss, resource::re_piece_shots, resource::re_prune_solrpp, resource::re_shot_hit, resource::re_shot_miss, resource::re_shots, and RT_CK_RESOURCE. Referenced by rt_add_res_stats(). |
|
Definition at line 123 of file shoot.c. References bu_bitv_free(), bu_free(), bu_ptbl_free(), rt_piecestate::htab, rt_piecestate::magic, NULL, resource::re_pieces, resource::re_pieces_pending, RT_CK_PIECESTATE, RT_CK_RESOURCE, RT_CK_RTI, rt_htbl_free(), rt_i::rti_nsolids_with_pieces, and rt_piecestate::shot. Referenced by rt_clean_resource(), and rt_unprep(). Here is the call graph for this function: ![]() |
|
Definition at line 94 of file shoot.c. References bu_bitv_new(), bu_calloc(), rt_piecestate::cutp, CUTTER_NULL, rt_piecestate::htab, rt_piecestate::magic, resource::re_pieces, RT_CK_RESOURCE, RT_CK_RTI, RT_CK_SOLTAB, rt_htbl_init(), RT_PIECESTATE_MAGIC, RT_VISIT_ALL_SOLTABS_END, RT_VISIT_ALL_SOLTABS_START, rt_i::rti_nsolids_with_pieces, rt_piecestate::shot, soltab::st_npieces, soltab::st_piecestate_num, and rt_piecestate::stp. Referenced by rt_shootray(). Here is the call graph for this function: ![]() |
|
|
Referenced by rt_bound_tree(), rt_gettrees_muves(), and rt_rpp_region(). |
|
Referenced by rt_gettrees_muves(), and rt_tree_elim_nops(). |
|
Definition at line 67 of file vlist.c. References BN_VLBLOCK_MAGIC, bu_calloc(), BU_GETSTRUCT, BU_LIST_INIT, BU_LIST_UNINITIALIZED, bn_vlblock::free_vlist_hd, bn_vlblock::head, bn_vlblock::magic, bn_vlblock::max, and bn_vlblock::rgb. Referenced by rt_vlblock_init(). Here is the call graph for this function: ![]() |
|
Definition at line 222 of file vlist.c. References BN_CK_VLIST, BN_VLIST_POLY_VERTNORM, bu_bomb(), BU_LIST_FOR, bu_log(), bn_vlist::cmd, INFINITY, bn_vlist::nused, bn_vlist::pt, and V3ARGS. Here is the call graph for this function: ![]() |
|
Definition at line 272 of file vlist.c. References BN_ADD_VLIST, BU_LIST_FOR, bn_vlist::cmd, bn_vlist::nused, and bn_vlist::pt. Referenced by dgo_invent_solid(). |
|
Definition at line 294 of file vlist.c. References BN_CK_VLIST, bu_free(), BU_LIST_DEQUEUE, BU_LIST_INIT, BU_LIST_UNINITIALIZED, and BU_LIST_WHILE. Referenced by rt_vlist_cleanup(). Here is the call graph for this function: ![]() |
|
Definition at line 312 of file vlist.c. References bn_vlist_cleanup(). Here is the call graph for this function: ![]() |
|
Definition at line 323 of file vlist.c. References BN_ADD_VLIST, BN_VLIST_LINE_DRAW, BN_VLIST_LINE_MOVE, VSET, X, Y, and Z. |
|
Definition at line 388 of file vlist.c. References BU_CK_VLS, BU_LIST_FOR, bu_plong(), bu_vls_addr(), bu_vls_setlen(), bn_vlist::cmd, and bn_vlist::nused. Here is the call graph for this function: ![]() |
|
Definition at line 446 of file vlist.c. References BN_ADD_VLIST, BU_CK_VLS, bu_glong(), bu_vls_strncpy(), bn_vlist::cmd, and ntohd(). Here is the call graph for this function: ![]() |
|
Definition at line 489 of file vlist.c. References BN_CK_VLBLOCK, BU_LIST_IS_EMPTY, bn_vlblock::head, bn_vlblock::nused, pl_color(), bn_vlblock::rgb, and rt_vlist_to_uplot(). Referenced by nmg_face_plot(), nmg_pl_2fu(), nmg_pl_comb_fu(), nmg_pl_fu(), nmg_pl_isect(), nmg_pl_lu(), nmg_pl_m(), nmg_pl_r(), nmg_pl_s(), nmg_pl_shell(), and nmg_plot_lu_around_eu(). Here is the call graph for this function: ![]() |
|
Definition at line 514 of file vlist.c. References BN_VLIST_LINE_DRAW, BN_VLIST_LINE_MOVE, BN_VLIST_POLY_DRAW, BN_VLIST_POLY_END, BN_VLIST_POLY_MOVE, BN_VLIST_POLY_START, BU_LIST_FOR, bu_log(), bn_vlist::cmd, bn_vlist::nused, pdv_3cont(), pdv_3move(), and bn_vlist::pt. Referenced by rt_plot_solid(), and rt_plot_vlblock(). Here is the call graph for this function: ![]() |
|
Referenced by rt_uplot_to_vlist(). |
|
|
|
|
|
Definition at line 57 of file htbl.c. References rt_htbl::blen, bu_calloc(), bu_debug, BU_DEBUG_PTBL, BU_LIST_INIT, bu_log(), rt_htbl::end, rt_htbl::hits, rt_htbl::l, bu_list::magic, and RT_HTBL_MAGIC. Referenced by rt_res_pieces_init(). Here is the call graph for this function: ![]() |
|
Definition at line 78 of file htbl.c. References bu_debug, BU_DEBUG_PTBL, bu_log(), rt_htbl::end, and RT_CK_HTBL. Referenced by rt_shootray(). Here is the call graph for this function: ![]() |
|
Definition at line 93 of file htbl.c. References bu_debug, BU_DEBUG_PTBL, bu_free(), bu_log(), bzero, rt_htbl::hits, and RT_CK_HTBL. Referenced by rt_res_pieces_clean(). Here is the call graph for this function: ![]() |
|
Definition at line 110 of file htbl.c. References rt_htbl::blen, bu_realloc(), rt_htbl::end, rt_htbl::hits, and RT_CK_HTBL. Here is the call graph for this function: ![]() |
|
Definition at line 262 of file nmg_mk.c. References BU_GETSTRUCT, BU_LIST_INIT, bu_log(), DEBUG_BASIC, model::index, model::magic, model::maxindex, NMG_MODEL_MAGIC, and model::r_hd. Referenced by add_solid(), nmg_booltree_leaf_tess(), nmg_mmr(), nmg_to_poly(), rt_ars_prep(), rt_nmg_ialloc(), rt_nmg_make(), rt_vol_tess(), stash_shell(), and wdb_facetize_cmd(). Here is the call graph for this function: ![]() |
|
N M G _ M M R Make Model and Region Create a new model, and an "empty" region to go with it. Essentially this creates a minimal model system. Returns - (struct model *) Implicit Return - The new region is found with BU_LIST_FIRST( nmgregion, &m->r_hd ); Definition at line 294 of file nmg_mk.c. References BU_LIST_APPEND, BU_LIST_INIT, bu_log(), DEBUG_BASIC, GET_REGION, nmgregion::l, nmgregion::m_p, bu_list::magic, nmg_mm(), NMG_REGION_MAGIC, NULL, model::r_hd, nmgregion::ra_p, and nmgregion::s_hd. Referenced by wdb_shells_cmd(). Here is the call graph for this function: ![]() |
|
N M G _ M R S V Make new region, shell, vertex in model as well as the required "uses". Create a new region in model consisting of a minimal shell. Returns - (struct nmgregion *) Implicit Returns - Region is also found with r=BU_LIST_FIRST( nmgregion, &m->r_hd ); The new shell is found with s=BU_LIST_FIRST( shell, &r->s_hd ); The new vertexuse is s->vu_p; Definition at line 333 of file nmg_mk.c. References BU_LIST_APPEND, BU_LIST_INIT, bu_log(), DEBUG_BASIC, GET_REGION, nmgregion::l, nmgregion::m_p, bu_list::magic, NMG_CK_MODEL, nmg_msv(), NMG_REGION_MAGIC, NULL, model::r_hd, nmgregion::ra_p, nmgregion::s_hd, and void(). Referenced by nmg_extrude_cleanup(), nmg_extrude_shell(), nmg_fix_normals(), nmg_hollow_shell(), nmg_to_poly(), rt_arb_tess(), rt_arb_tnurb(), rt_bot_tess(), rt_cline_tess(), rt_ebm_tess(), rt_ehy_tess(), rt_ell_tess(), rt_ell_tnurb(), rt_epa_tess(), rt_part_tess(), rt_pg_tess(), rt_pipe_tess(), rt_rhc_tess(), rt_rpc_tess(), rt_tgc_tnurb(), rt_vol_tess(), and stash_shell(). Here is the call graph for this function: ![]() |
|
N M G _ M S V Make Shell, Vertex Use, Vertex Create a new shell in a specified region. The shell will consist of a single vertexuse and vertex (which are also created). Returns - (struct shell *) Implicit Returns - The new shell is also found with s=BU_LIST_FIRST( shell, &r->s_hd ); The new vertexuse is s->vu_p; Definition at line 373 of file nmg_mk.c. References BU_LIST_APPEND, BU_LIST_INIT, bu_log(), DEBUG_BASIC, shell::eu_hd, shell::fu_hd, GET_SHELL, shell::l, shell::lu_hd, nmgregion::m_p, bu_list::magic, NMG_CK_REGION, NMG_SHELL_MAGIC, NULL, shell::r_p, nmgregion::s_hd, shell::sa_p, and shell::vu_p. Referenced by nmg_dup_shell(), nmg_isect_shell_self(), nmg_mrsv(), and nmg_polytonmg(). Here is the call graph for this function: ![]() |
|
N M G _ M F Make Face from a wire loop. make a face from a pair of loopuses. The loopuses must be direct children of a shell. The new face will be a child of the same shell. Given a wire loop (by definition, a loop attached to a shell), create a new face, faceuse (and mate) and move the wire loop from the shell to the new faceuse (and mate). Implicit Returns - The first faceuse is fu1=BU_LIST_FIRST( faceuse, &s->fu_hd ); The second faceuse follows: fu2=BU_LIST_NEXT( faceuse, &fu1->l.magic ); Definition at line 419 of file nmg_mk.c. References BU_LIST_APPEND, BU_LIST_DEQUEUE, BU_LIST_INIT, bu_log(), DEBUG_BASIC, faceuse::f_p, face::flip, shell::fu_hd, face::fu_p, loopuse::fu_p, faceuse::fumate_p, face::g, GET_FACE, GET_FACEUSE, shell::l, face::l, faceuse::l, loopuse::l, faceuse::lu_hd, loopuse::lumate_p, bu_list::magic, loopuse::magic_p, NMG_CK_LOOPUSE, NMG_CK_SHELL, NMG_FACE_MAGIC, NMG_FACEUSE_MAGIC, nmg_find_model(), NMG_SHELL_MAGIC, NULL, faceuse::orientation, loopuse::orientation, OT_SAME, OT_UNSPEC, face::plane_p, rt_bomb(), loopuse::s_p, faceuse::s_p, and loopuse::up. Referenced by nmg_add_loop_to_face(), nmg_dup_face(), nmg_dup_shell(), and nmg_mk_new_face_from_loop(). Here is the call graph for this function: ![]() |
|
|
N M G _ M E Make wire edge Make a new edge between a pair of vertices in a shell. A new vertex will be made for any NULL vertex pointer parameters. If we need to make a new vertex and the shell still has its vertexuse we re-use that vertex rather than freeing and re-allocating. If both vertices were specified, and the shell also had a vertexuse pointer, the vertexuse in the shell is killed. XXX Why? Explicit Return - An edgeuse in shell "s" whose vertexuse refers to vertex v1. The edgeuse mate's vertexuse refers to vertex v2 Implicit Returns - 1) If the shell had a lone vertex in vu_p, it is destroyed, even if both vertices were specified. 2) The returned edgeuse is the first item on the shell's eu_hd list, followed immediately by the mate. Definition at line 724 of file nmg_mk.c. References BU_LIST_APPEND, BU_LIST_INIT, bu_log(), DEBUG_BASIC, edgeuse::e_p, shell::eu_hd, edge::eu_p, vertexuse::eu_p, edgeuse::eumate_p, GET_EDGE, GET_EDGEUSE, shell::l, edgeuse::l, edgeuse::l2, bu_list::magic, edge::magic, NMG_CK_SHELL, NMG_CK_VERTEX, NMG_EDGE_MAGIC, NMG_EDGEUSE2_MAGIC, NMG_EDGEUSE_MAGIC, nmg_find_model(), nmg_kvu(), NULL, edgeuse::orientation, OT_NONE, edgeuse::radial_p, edgeuse::s_p, edgeuse::up, vertexuse::up, void(), edgeuse::vu_p, and shell::vu_p. Referenced by nmg_dup_shell(), nmg_eins(), nmg_eusplit(), nmg_vlist_to_eu(), and nmg_vlist_to_wire_edges(). Here is the call graph for this function: ![]() |
|
|
N M G _ M L Make wire loop from wire edgeuse list Passed a pointer to a shell. The wire edgeuse child of the shell is taken as the head of a list of edge(use)s which will form the new loop. The loop is created from the first N contiguous edges. Thus the end of the new loop is delineated by the "next" edge(use)being: A) the first object in the list (no other edgeuses in shell list) B) non-contiguous with the previous edge A loop is created from this list of edges. The edges must form a true circuit, or we dump core on your disk. If we succeed, then the edgeuses are moved from the shell edgeuse list to the loop, and the two loopuses are inserted into the shell. Definition at line 953 of file nmg_mk.c. References BU_LIST_APPEND, BU_LIST_DEQUEUE, BU_LIST_FIRST, BU_LIST_INIT, BU_LIST_INSERT, BU_LIST_IS_EMPTY, BU_LIST_NON_EMPTY, bu_log(), DEBUG_BASIC, loopuse::down_hd, shell::eu_hd, edgeuse::eumate_p, GET_LOOP, GET_LOOPUSE, shell::l, loopuse::l, edgeuse::l, loopuse::l_p, loop::lg_p, shell::lu_hd, loop::lu_p, edgeuse::lu_p, loopuse::lumate_p, bu_list::magic, loop::magic, NMG_CK_EDGEUSE, NMG_CK_SHELL, NMG_CK_VERTEX, NMG_CK_VERTEXUSE, nmg_find_model(), NMG_LOOP_MAGIC, NMG_LOOPUSE_MAGIC, nmg_mlv(), nmg_pr_s(), NULL, loopuse::orientation, OT_UNSPEC, rt_bomb(), loopuse::s_p, edgeuse::s_p, loopuse::up, edgeuse::up, vertexuse::v_p, shell::vu_p, and edgeuse::vu_p. Here is the call graph for this function: ![]() |
|
static Definition at line 1375 of file nmg_mk.c. References bu_free(), BU_LIST_NON_EMPTY, edgeuse::cnurb_p, edge_g_cnurb::ctl_points, edge_g_lseg::eu_hd2, edge_g_cnurb::eu_hd2, FREE_EDGE_G_CNURB, FREE_EDGE_G_LSEG, edgeuse::g, edge_g_cnurb::k, knot_vector::knots, edgeuse::lseg_p, edgeuse::magic_p, NMG_CK_EDGEUSE, NMG_EDGE_G_CNURB_MAGIC, NMG_EDGE_G_LSEG_MAGIC, NULL, and edge_g_cnurb::order. Referenced by nmg_eusplit(), nmg_keu(), and nmg_use_edge_g(). Here is the call graph for this function: ![]() |
|
Referenced by nmg_cut_loop(), nmg_dup_shell(), nmg_fix_overlapping_loops(), nmg_keu(), nmg_klu(), nmg_ks(), nmg_me(), nmg_mv_vu_between_shells(), nmg_polytonmg(), and nmg_split_lu_at_vu(). |
|
|
|
|
N M G _ K S Kill a shell and all children Returns - 0 If all is well 1 If parent nmgregion is now empty. While not "illegal", an empty region is probably worthy of note. Definition at line 1552 of file nmg_mk.c. References BU_LIST_DEQUEUE, BU_LIST_FIRST, BU_LIST_IS_EMPTY, BU_LIST_NON_EMPTY, bu_log(), DEBUG_BASIC, shell::eu_hd, FREE_SHELL, FREE_SHELL_A, shell::fu_hd, shell::l, shell::lu_hd, NMG_CK_REGION, NMG_CK_SHELL, nmg_keu(), nmg_kfu(), nmg_klu(), nmg_kvu(), shell::r_p, nmgregion::s_hd, shell::sa_p, void(), and shell::vu_p. Referenced by nmg_do_bool(), nmg_extrude_cleanup(), nmg_extrude_shell(), nmg_fix_normals(), nmg_hollow_shell(), nmg_js(), nmg_kill_zero_length_edgeuses(), and nmg_kr(). Here is the call graph for this function: ![]() |
|
N M G _ K R Kill a region and all shells in it Returns - 0 If all is well 1 If model is now empty. While not "illegal", an empty model is probably worthy of note. Definition at line 1593 of file nmg_mk.c. References BU_LIST_DEQUEUE, BU_LIST_FIRST, BU_LIST_IS_EMPTY, BU_LIST_NON_EMPTY, bu_log(), DEBUG_BASIC, FREE_REGION, FREE_REGION_A, nmgregion::l, nmgregion::m_p, model::maxindex, NMG_CK_MODEL, NMG_CK_REGION, nmg_ks(), model::r_hd, nmgregion::ra_p, nmgregion::s_hd, and void(). Referenced by db_free_tree(), nmg_do_bool(), nmg_extrude_cleanup(), nmg_kill_zero_length_edgeuses(), nmg_km(), and nmg_merge_regions(). Here is the call graph for this function: ![]() |
|
N M G _ K M Kill an entire model. Nothing is left. Definition at line 1626 of file nmg_mk.c. References BU_LIST_FIRST, BU_LIST_NON_EMPTY, bu_log(), DEBUG_BASIC, FREE_MODEL, NMG_CK_MODEL, nmg_kr(), model::r_hd, and void(). Referenced by add_solid(), free_etree(), nmg_fix_normals(), nmg_to_poly(), rt_ars_prep(), rt_nmg_free(), rt_nmg_ifree(), stash_shell(), wdb_facetize_cmd(), and wdb_shells_cmd(). Here is the call graph for this function: ![]() |
|
|
|
|
Referenced by tesselate_pipe_linear(). |
|
N M G _ V E R T E X U S E _ A _ C N U R B Given a vertex with associated geometry in model space which lies on a face_g_snurb surface, it will have a corresponding set of (u,v) or (u,v,w) parameters on that surface. Build the association here. Note that all vertexuses of a single vertex which are all used by the same face_g_snurb will have the same "param" value, but will have individual vertexuse_a_cnurb structures. Definition at line 1741 of file nmg_mk.c. References vertexuse::a, bu_log(), edgeuse::cnurb_p, vertexuse::cnurb_p, DEBUG_BASIC, vertexuse::eu_p, edgeuse::g, GET_VERTEXUSE_A_CNURB, vertexuse::l, bu_list::magic, vertexuse_a_cnurb::magic, vertexuse::magic_p, edgeuse::magic_p, NMG_CK_EDGE_G_CNURB, NMG_CK_EDGEUSE, NMG_CK_VERTEXUSE, nmg_find_model(), NMG_VERTEXUSE_A_CNURB_MAGIC, vertexuse_a_cnurb::param, rt_bomb(), vertexuse::up, V3ARGS, and VMOVE. Referenced by rt_ell_tnurb(), and rt_tgc_tnurb(). Here is the call graph for this function: ![]() |
|
N M G _ E D G E _ G Compute the equation of the line formed by the endpoints of the edge. XXX This isn't the best name. nmg_edge_g_lseg() ? Definition at line 1773 of file nmg_mk.c. References BU_LIST_DEQUEUE, BU_LIST_INIT, BU_LIST_INSERT, bu_log(), vertex_g::coord, DEBUG_BASIC, edge_g_lseg::e_dir, edgeuse::e_p, edge_g_lseg::e_pt, edge_g_lseg::eu_hd2, edgeuse::eumate_p, edgeuse::g, GET_EDGE_G_LSEG, edgeuse::l, edge_g_lseg::l, edgeuse::l2, edgeuse::lseg_p, bu_list::magic, edgeuse::magic_p, NMG_CK_EDGE, NMG_CK_EDGE_G_LSEG, NMG_CK_EDGEUSE, NMG_CK_VERTEX, NMG_CK_VERTEX_G, NMG_CK_VERTEXUSE, NMG_EDGE_G_LSEG_MAGIC, nmg_find_model(), NULL, edgeuse::radial_p, rt_bomb(), SMALL_FASTF, vertexuse::v_p, vertex::vg_p, VMOVE, VNEAR_ZERO, VPRINT, VSET, VSUB2, edgeuse::vu_p, X, Y, and Z. Referenced by nmg_dup_loop(), nmg_edge_collapse(), nmg_edge_geom_isect_line(), nmg_loop_g(), nmg_move_edge_thru_pt(), nmg_radial_join_eu_NEW(), and nmg_vlist_to_wire_edges(). Here is the call graph for this function: ![]() |
|
|
N M G _ E D G E _ G _ C N U R B _ P L I N E A R For an edgeuse associated with a face_g_snurb surface, create a spline "curve" in the parameter space of the snurb which describes a STRAIGHT LINE in parameter space from the u,v parameters of the start vertex to the end vertex. The parameters of the end points are found in the vertexuse attributes at either end of the edgeuse, which should have already been established. This is a special case of nmg_edge_g_cnurb(), and should be used when the path through parameter space is known to be a line segment. This permits the savings of a lot of memory, both in core and on disk, by eliminating a knot vector (typ. 64 bytes or more) and a ctl_point[] array (typ. 16 bytes or more). This special condition is indicated by order == 0. See nmg.h for details. Definition at line 2008 of file nmg_mk.c. References vertexuse::a, BU_LIST_DEQUEUE, BU_LIST_INIT, BU_LIST_INSERT, bu_log(), vertexuse::cnurb_p, edgeuse::cnurb_p, DEBUG_BASIC, edgeuse::e_p, edge_g_cnurb::eu_hd2, edgeuse::eumate_p, faceuse::f_p, edgeuse::g, face::g, GET_EDGE_G_CNURB, edgeuse::l, edge_g_cnurb::l, edgeuse::l2, bu_list::magic, NMG_CK_EDGE, NMG_CK_EDGEUSE, NMG_CK_FACE_G_SNURB, NMG_CK_FACEUSE, NMG_CK_VERTEX, NMG_CK_VERTEX_G, NMG_CK_VERTEXUSE, NMG_CK_VERTEXUSE_A_CNURB, NMG_EDGE_G_CNURB_MAGIC, nmg_find_fu_of_eu(), nmg_find_model(), edge_g_cnurb::order, rt_bomb(), face::snurb_p, vertexuse::v_p, vertex::vg_p, and edgeuse::vu_p. Here is the call graph for this function: ![]() |
|
Referenced by nmg_edge_geom_isect_line(), nmg_eusplit(), nmg_jeg(), and nmg_radial_join_eu_NEW(). |
|
|
Referenced by nmg_calc_face_g(), nmg_dup_face(), nmg_dup_shell(), nmg_face_new_g(), nmg_fu_planeeqn(), nmg_move_edge_thru_pt(), and nmg_split_loops_handler(). |
|
Referenced by nmg_make_faces_within_tol(). |
|
|
N M G _ F A C E _ B B Build the bounding box for a face Definition at line 2441 of file nmg_mk.c. References BN_CK_TOL, BU_LIST_FOR, bu_log(), DEBUG_BASIC, faceuse::f_p, face::fu_p, face::g, loopuse::l_p, loop::lg_p, faceuse::lu_hd, face::magic_p, MAX_FASTF, face::max_pt, loop_g::max_pt, face_g_snurb::max_pt, face::min_pt, loop_g::min_pt, face_g_snurb::min_pt, NMG_CK_FACE, NMG_CK_FACEUSE, NMG_FACE_G_SNURB_MAGIC, nmg_loop_g(), loopuse::orientation, OT_BOOLPLACE, rt_nurb_s_bound(), face::snurb_p, VMAX, VMIN, X, Y, and Z. Referenced by nmg_make_faces_at_vert(), nmg_rebound(), nmg_shell_a(), and nmg_split_loops_handler(). Here is the call graph for this function: ![]() |
|
N M G _ S H E L L _ A Build the bounding box for a shell Definition at line 2494 of file nmg_mk.c. References BN_CK_TOL, BU_LIST_FOR, BU_LIST_IS_EMPTY, BU_LIST_NEXT, BU_LIST_NOT_HEAD, BU_LIST_PNEXT, bu_log(), vertex_g::coord, DEBUG_BASIC, edgeuse::e_p, shell::eu_hd, faceuse::f_p, shell::fu_hd, GET_SHELL_A, shell::l, faceuse::l, loopuse::l_p, loop::lg_p, shell::lu_hd, bu_list::magic, shell_a::magic, MAX_FASTF, shell_a::max_pt, face::max_pt, loop_g::max_pt, shell_a::min_pt, face::min_pt, loop_g::min_pt, NMG_CK_EDGE, NMG_CK_EDGEUSE, NMG_CK_FACE, NMG_CK_SHELL, NMG_CK_SHELL_A, NMG_CK_VERTEX, NMG_CK_VERTEX_G, NMG_CK_VERTEXUSE, nmg_face_bb(), nmg_find_model(), nmg_loop_g(), NMG_SHELL_A_MAGIC, rt_bomb(), shell::sa_p, vertexuse::v_p, vertex::vg_p, VMAX, VMIN, VMINMAX, VSETALL, edgeuse::vu_p, and shell::vu_p. Referenced by nmg_rebound(), nmg_region_a(), and nmg_shell_coplanar_face_merge(). Here is the call graph for this function: ![]() |
|
N M G _ R E G I O N _ A build attributes/extents for all shells in a region Definition at line 2578 of file nmg_mk.c. References BN_CK_TOL, BU_LIST_FOR, bu_log(), DEBUG_BASIC, GET_REGION_A, nmgregion::m_p, nmgregion_a::magic, MAX_FASTF, nmgregion_a::max_pt, shell_a::max_pt, nmgregion_a::min_pt, shell_a::min_pt, NMG_CK_REGION, NMG_CK_REGION_A, NMG_CK_SHELL_A, NMG_REGION_A_MAGIC, nmg_shell_a(), nmgregion::ra_p, nmgregion::s_hd, shell::sa_p, VMAX, VMIN, and VSETALL. Referenced by nmg_extrude_shell(), nmg_hollow_shell(), nmg_rebound(), and rt_tgc_tnurb(). Here is the call graph for this function: ![]() |
|
N M G _ D E M O T E _ L U Demote a loopuse of edgeuses to a bunch of wire edges in the shell. Returns - 0 If all is well (edges moved to shell, loopuse deleted). 1 If parent is empty, and is thus "illegal". Still successful. Definition at line 2632 of file nmg_mk.c. References BU_LIST_APPEND, BU_LIST_DEQUEUE, BU_LIST_FIRST, BU_LIST_FIRST_MAGIC, BU_LIST_NON_EMPTY, bu_log(), DEBUG_BASIC, DEBUG_CLASSIFY, loopuse::down_hd, edgeuse::e_p, shell::eu_hd, edgeuse::eumate_p, edgeuse::l, loopuse::lumate_p, NMG_CK_EDGE, NMG_CK_EDGEUSE, NMG_CK_LOOPUSE, NMG_CK_SHELL, NMG_EDGEUSE_MAGIC, nmg_find_s_of_lu(), nmg_klu(), NMG_VERTEXUSE_MAGIC, rt_bomb(), edgeuse::s_p, and edgeuse::up. Here is the call graph for this function: ![]() |
|
N M G _ D E M O T E _ E U Demote a wire edge into a pair of self-loop verticies Returns - 0 If all is well 1 If shell is empty, and is thus "illegal". Definition at line 2696 of file nmg_mk.c. References bu_log(), DEBUG_BASIC, edgeuse::eumate_p, shell::l, bu_list::magic, edgeuse::magic_p, NMG_CK_EDGEUSE, NMG_CK_SHELL, nmg_is_vertex_a_selfloop_in_shell(), nmg_keu(), nmg_mlv(), nmg_shell_is_empty(), NMG_SHELL_MAGIC, OT_SAME, rt_bomb(), edgeuse::s_p, edgeuse::up, vertexuse::v_p, void(), and edgeuse::vu_p. Here is the call graph for this function: ![]() |
|
N M G _ M O V E V U Move a vertexuse from an old vertex to a new vertex. If this was the last use, the old vertex is destroyed. XXX nmg_jvu() as a better name? Definition at line 2746 of file nmg_mk.c. References BU_LIST_APPEND, BU_LIST_DEQUEUE, BU_LIST_IS_EMPTY, bu_log(), DEBUG_BASIC, FREE_VERTEX, FREE_VERTEX_G, vertexuse::l, NMG_CK_VERTEX, NMG_CK_VERTEXUSE, vertexuse::v_p, vertex::vg_p, and vertex::vu_hd. Referenced by nmg_edge_collapse(), nmg_eusplit(), nmg_mlv(), and nmg_simplify_shell_edges(). Here is the call graph for this function: ![]() |
|
N M G _ J E Move a pair of edgeuses onto a single edge (glue edgeuse). The edgeuse eusrc and its mate are moved to the edge used by eudst. eusrc is made to be immediately radial to eudst. if eusrc does not share the same vertices as eudst, we bomb. The edgeuse geometry pointers are not changed by this operation. This routine was formerly called nmg_moveeu(). Definition at line 2783 of file nmg_mk.c. References bu_log(), vertex_g::coord, DEBUG_BASIC, edgeuse::e_p, edge::eu_p, edgeuse::eumate_p, FREE_EDGE, NMG_CK_EDGEUSE, edgeuse::radial_p, rt_bomb(), V3ARGS, vertexuse::v_p, vertex::vg_p, and edgeuse::vu_p. Referenced by nmg_do_radial_join(), nmg_dup_loop(), nmg_esplit(), nmg_join_2loops(), nmg_join_2singvu_loops(), nmg_join_singvu_loop(), nmg_radial_implement_decisions(), nmg_radial_join_eu_NEW(), and rt_tgc_tnurb(). Here is the call graph for this function: ![]() |
|
N M G _ U N G L U E E D G E If edgeuse is part of a shared edge (more than one pair of edgeuses on the edge), it and its mate are "unglued" from the edge, and associated with a new edge structure. Primarily a support routine for nmg_eusplit() If the original edge had edge geometry, that is *not* duplicated here, because it is not easy (or appropriate) for nmg_eusplit() to know whether the new vertex lies on the previous edge geometry or not. Hence having the nmg_ebreak() interface, which preserves the ege geometry across a split, and nmg_esplit() which does not. Definition at line 2870 of file nmg_mk.c. References bu_log(), DEBUG_BASIC, edgeuse::e_p, edge::eu_p, edgeuse::eumate_p, GET_EDGE, edgeuse::l, bu_list::magic, edge::magic, NMG_CK_EDGE, NMG_CK_EDGEUSE, NMG_EDGE_MAGIC, nmg_find_model(), and edgeuse::radial_p. Referenced by nmg_eusplit(). Here is the call graph for this function: ![]() |
|
Referenced by nmg_break_eg_on_v(), nmg_break_eu_on_v(), nmg_isect_edge2p_edge2p(), nmg_isect_vert2p_face2p(), nmg_make_faces_at_vert(), nmg_ptbl_vfuse(), and nmg_repair_v_near_v(). |
|
N M G _ J F G Join two faces, so that they share one underlying face geometry. The loops of the two faces remains unchanged. If one of the faces does not have any geometry, then it is made to share the geometry of the other. Definition at line 2973 of file nmg_mk.c. References BU_LIST_DEQUEUE, BU_LIST_FIRST, BU_LIST_INSERT, BU_LIST_NON_EMPTY, bu_log(), DEBUG_BASIC, face_g_plane::f_hd, face::flip, FREE_FACE_G_PLANE, face::g, face::l, NMG_CK_FACE, NMG_CK_FACE_G_PLANE, and face::plane_p. Referenced by nmg_dup_shell(), and nmg_two_face_fuse(). Here is the call graph for this function: ![]() |
|
N M G _ J E G Join two edge geometries. For all edges in the model which refer to 'src_eg', change them to refer to 'dest_eg'. The source is destroyed. It is the responsibility of the caller to make certain that the 'dest_eg' is the best one for these edges. Outrageously wrong requests will cause this routine to abort. This algorithm does not make sense if dest_eg is an edge_g_cnurb; those only make sense in the parameter space of their associated face. Definition at line 3052 of file nmg_mk.c. References bn_radtodeg, BU_LIST_FIRST, BU_LIST_MAIN_PTR, BU_LIST_NON_EMPTY, bu_log(), DEBUG_BASIC, edge_g_lseg::e_dir, edge_g_lseg::eu_hd2, edgeuse::g, edge_g_lseg::l, edgeuse::lseg_p, bu_list::magic, NMG_CK_EDGE_G_LSEG, NMG_CK_EDGEUSE, NMG_CKMAG, NMG_EDGEUSE2_MAGIC, nmg_use_edge_g(), rt_bomb(), VDOT, VMOVE, VPRINT, and VUNITIZE. Referenced by nmg_edge_geom_isect_line(), nmg_find_edge_between_2fu(), nmg_find_eg_between_2fg(), nmg_model_edge_g_fuse(), and nmg_radial_join_eu_NEW(). Here is the call graph for this function: ![]() |
|
N M G _ M E R G E _ R E G I O N S Definition at line 61 of file nmg_mod.c. References BN_CK_TOL, BU_LIST_APPEND, BU_LIST_DEQUEUE, BU_LIST_FIRST, BU_LIST_NON_EMPTY, shell::l, nmgregion::m_p, NMG_CK_MODEL, NMG_CK_REGION, nmg_kr(), nmg_rebound(), shell::r_p, rt_bomb(), nmgregion::s_hd, and void(). Referenced by rt_nmg_tess(). Here is the call graph for this function: ![]() |
|
N M G _ S H E L L _ C O P L A N A R _ F A C E _ M E R G E A geometric routine to find all pairs of faces in a shell that have the same plane equation (to within the given tolerance), and combine them into a single face. Note that this may result in some of the verticies being very slightly off the plane equation, but the geometry routines need to be prepared for this in any case. If the "simplify" flag is set, pairs of loops in the face that touch will be combined into a single loop where possible. XXX Perhaps should be recast as "nmg_shell_shared_face_merge()", leaving XXX all the geometric calculations to the code in nmg_fuse.c ? Definition at line 113 of file nmg_mod.c. References bcopy, bu_calloc(), bu_free(), BU_LIST_FOR, BU_LIST_IS_HEAD, BU_LIST_NEXT, BU_LIST_NEXT_IS_HEAD, BU_LIST_NOT_HEAD, BU_LIST_PREV, bu_log(), DEBUG_BASIC, bn_tol::dist, faceuse::f_p, face::flip, shell::fu_hd, faceuse::fumate_p, face::g, shell::l, faceuse::l, faceuse::lu_hd, bu_list::magic, model::maxindex, NEAR_ZERO, NMG_CK_FACE, NMG_CK_FACE_G_PLANE, nmg_ck_fu_verts(), NMG_CK_SHELL, nmg_find_model(), NMG_GET_FU_PLANE, NMG_INDEX_SET, NMG_INDEX_TEST, nmg_jf(), nmg_shell_a(), nmg_simplify_loop(), bn_tol::para, face::plane_p, rt_bomb(), and VDOT. Referenced by nmg_hollow_shell(), and wdb_nmg_simplify_cmd(). Here is the call graph for this function: ![]() |
|
N M G _ S I M P L I F Y _ S H E L L Simplify all the faces in this shell, where possible. Under some circumstances this may result in an empty shell as a result. Returns - 0 If all was OK 1 If shell is now empty Definition at line 241 of file nmg_mod.c. References BU_LIST_FOR, BU_LIST_PREV, bu_log(), DEBUG_BASIC, shell::fu_hd, faceuse::l, NMG_CK_SHELL, nmg_kfu(), nmg_shell_is_empty(), and nmg_simplify_face(). Referenced by nmg_hollow_shell(). Here is the call graph for this function: ![]() |
|
|
N M G _ S A N I T I Z E _ S _ L V Remove those pesky little vertex-only loops of orientation "orient". Typically these will be OT_BOOLPLACE markers created in the process of doing intersections for the boolean operations. Definition at line 627 of file nmg_mod.c. References BU_LIST_FIRST, BU_LIST_FIRST_MAGIC, BU_LIST_IS_EMPTY, BU_LIST_NOT_HEAD, BU_LIST_PLAST, BU_LIST_PNEXT, BU_LIST_PNEXT_PNEXT, bu_log(), vertex_g::coord, DEBUG_BASIC, loopuse::down_hd, shell::fu_hd, faceuse::fumate_p, faceuse::lu_hd, shell::lu_hd, NMG_CK_SHELL, nmg_kfu(), nmg_klu(), NMG_VERTEXUSE_MAGIC, loopuse::orientation, OT_UNSPEC, vertexuse::v_p, vertex::vg_p, and VPRINT. Referenced by nmg_crackshells(). Here is the call graph for this function: ![]() |
|
N M G _ S _ S P L I T _ T O U C H I N G L O O P S For every loop in a shell, invoke nmg_split_touchingloops() on it. Needed before starting classification, to separate interior (touching) loop segments into true interior loops, so each can be processed separately. Definition at line 710 of file nmg_mod.c. References BN_CK_TOL, BU_LIST_FOR, bu_log(), DEBUG_BASIC, shell::fu_hd, faceuse::lu_hd, shell::lu_hd, NMG_CK_SHELL, nmg_loop_split_at_touching_jaunt(), nmg_lu_reorient(), nmg_split_touchingloops(), loopuse::orientation, OT_UNSPEC, and void(). Referenced by nmg_triangulate_model(). Here is the call graph for this function: ![]() |
|
N M G _ S _ J O I N _ T O U C H I N G L O O P S For every loop in a shell, invoke nmg_join_touchingloops() on it. Definition at line 753 of file nmg_mod.c. References BN_CK_TOL, BU_LIST_FOR, bu_log(), DEBUG_BASIC, shell::fu_hd, faceuse::lu_hd, shell::lu_hd, NMG_CK_SHELL, nmg_join_touchingloops(), nmg_lu_reorient(), loopuse::orientation, and OT_UNSPEC. Here is the call graph for this function: ![]() |
|
Referenced by nmg_evaluate_boolean(), nmg_extrude_cleanup(), nmg_hollow_shell(), and nmg_open_shells_connect(). |
|
N M G _ I N V E R T _ S H E L L Reverse the surface normals, and invert the orientation state of all faceuses in a shell. This turns the shell "inside out", such as might be needed for the right hand side term of a subtraction operation. While this function is operating, the parity of faceuses radially around edgeuses is disrupted, hence this atomic interface to invert the shell. The 'tol' argument is used strictly for printing. Definition at line 965 of file nmg_mod.c. References BN_CK_TOL, bu_calloc(), bu_free(), BU_LIST_FOR, bu_log(), DEBUG_BASIC, faceuse::f_p, shell::fu_hd, nmgregion::m_p, model::maxindex, NMG_CK_FACEUSE, NMG_CK_MODEL, NMG_CK_SHELL, NMG_INDEX_SET, NMG_INDEX_TEST, nmg_reverse_face(), and shell::r_p. Referenced by nmg_evaluate_boolean(), and nmg_hollow_shell(). Here is the call graph for this function: ![]() |
|
Referenced by rt_ebm_tess(), rt_ell_tnurb(), rt_tgc_tnurb(), tesselate_pipe_bend(), and tesselate_pipe_linear(). |
|
N M G _ C F A C E Create a loop within a face, given a list of vertices. "verts" is an array of "n" pointers to (struct vertex). "s" is the parent shell for the new face. The face will consist of a single loop made from edges between the n vertices. If verts is a null pointer (no vertex list), all vertices of the face will be new points. Otherwise, verts is a pointer to a list of vertices to use in creating the face/loop. Null entries within the list will cause a new vertex to be created for that point. Such new vertices will be inserted into the list for return to the caller. The vertices should be listed in "counter-clockwise" (CCW) order if this is an ordinary face (loop), and in "clockwise" (CW) order if this is an interior ("hole" or "subtracted") face (loop). This routine makes only topology, without reference to any geometry. Note that this routine inserts new vertices (by edge use splitting) at the head of the loop, which reverses the order. Therefore, the caller's vertices are traversed in reverse order to counter this behavior, and to effect the proper vertex order in the final face loop. Definition at line 1206 of file nmg_mod.c. References bu_log(), NMG_CK_SHELL, NMG_CK_VERTEX, and rt_bomb(). Referenced by nmg_extrude_face(), rt_vol_tess(), tesselate_pipe_end(), and tesselate_pipe_start(). Here is the call graph for this function: ![]() |
|
N M G _ A D D _ L O O P _ T O _ F A C E Create a new loop within a face, given a list of vertices. Modified version of nmg_cface(). "verts" is an array of "n" pointers to (struct vertex). "s" is the parent shell for the new face. The face will consist of a single loop made from edges between the n vertices. If verts is a null pointer (no vertex list), all vertices of the face will be new points. Otherwise, verts is a pointer to a list of vertices to use in creating the face/loop. Null entries within the list will cause a new vertex to be created for that point. Such new vertices will be inserted into the list for return to the caller. The vertices should be listed in "counter-clockwise" (CCW) order if this is an ordinary face (loop), and in "clockwise" (CW) order if this is an interior ("hole" or "subtracted") face (loop). This routine makes only topology, without reference to any geometry. Note that this routine inserts new vertices (by edge use splitting) at the head of the loop, which reverses the order. Therefore, the caller's vertices are traversed in reverse order to counter this behavior, and to effect the proper vertex order in the final face loop. Definition at line 1286 of file nmg_mod.c. References BU_LIST_FIRST, bu_log(), loopuse::down_hd, shell::l, faceuse::l, bu_list::magic, NMG_CK_SHELL, nmg_eusplit(), nmg_meonvu(), nmg_mf(), nmg_mlv(), rt_bomb(), vertexuse::v_p, and edgeuse::vu_p. Referenced by rt_ebm_tess(), and tesselate_pipe_end(). Here is the call graph for this function: ![]() |
|
N M G _ F U _ P L A N E E Q N Given a convex face that has been constructed with edges listed in counter-clockwise (CCW) order, compute the surface normal and plane equation for this face. D C *-------------------* | | | .<........... | ^ N | . ^ | ^ | \ | . counter- . | | | \ | . clock . | | |C-B \ | . wise . | |C-B | \ | v . | | | \ | ...........>. | | \| | *-------------------* A B <----- A-B If the vertices in the loop are given in the order A B C D (e.g., counter-clockwise), then the outward pointing surface normal can be computed as: N = (C-B) x (A-B) This is the "right hand rule". For reference, note that a vector which points "into" the loop can be subsequently found by taking the cross product of the surface normal and any edge vector, e.g.: Left = N x (B-A) or Left = N x (C-B) This routine will skip on past edges that start and end on the same vertex, in an attempt to avoid trouble. However, the loop *must* be convex for this routine to work. Otherwise, the surface normal may be inadvertently reversed. Returns - 0 OK -1 failure Definition at line 1387 of file nmg_mod.c. References bn_3pts_collinear(), BN_CK_TOL, bn_mk_plane_3pts(), bn_pt3_pt3_equal(), BU_LIST_FIRST, BU_LIST_FIRST_MAGIC, BU_LIST_PNEXT_CIRC, bu_log(), vertex_g::coord, DEBUG_BASIC, loopuse::down_hd, faceuse::f_p, HPRINT, faceuse::lu_hd, NMG_CK_EDGEUSE, NMG_CK_FACEUSE, nmg_ck_fu_verts(), NMG_CK_LOOPUSE, NMG_CK_VERTEX, NMG_CK_VERTEX_G, NMG_CK_VERTEXUSE, NMG_EDGEUSE_MAGIC, nmg_face_g(), V3ARGS, vertexuse::v_p, vertex::vg_p, and edgeuse::vu_p. Referenced by rt_ebm_tess(), and rt_vol_tess(). Here is the call graph for this function: ![]() |
|
Referenced by nmg_dup_shell(), and nmg_extrude_face(). |
|
N M G _ S I M P L I F Y _ F A C E combine adjacent loops within a face which serve no apparent purpose by remaining separate and distinct. Kill "wire-snakes" in face. Returns - 0 If all was OK 1 If faceuse is now empty Definition at line 1557 of file nmg_mod.c. References BU_LIST_FOR, BU_LIST_IS_EMPTY, BU_LIST_PREV, bu_log(), DEBUG_BASIC, loopuse::l, faceuse::lu_hd, NMG_CK_FACEUSE, nmg_kill_snakes(), nmg_klu(), and nmg_simplify_loop(). Referenced by nmg_simplify_shell(). Here is the call graph for this function: ![]() |
|
Referenced by nmg_extrude_face(), nmg_invert_shell(), nmg_propagate_normals(), and nmg_reverse_face_and_radials(). |
|
Referenced by nmg_isect_shell_self(), and nmg_js(). |
|
Referenced by nmg_js(), and nmg_shell_coplanar_face_merge(). |
|
|
N M G _ J L Join two loops together which share a common edge, such that both occurances of the common edge are deleted. This routine always leaves "lu" intact, and kills the loop radial to "eu" (after stealing all it's edges). Either both loops must be of the same orientation, or then first loop must be OT_SAME, and the second loop must be OT_OPPOSITE. Joining OT_SAME & OT_OPPOSITE always gives an OT_SAME result. Above statment is not true!!!! I have added nmg_lu_reorient() -JRA Since "lu" must survive, it must be the OT_SAME one. Definition at line 2079 of file nmg_mod.c. References BU_LIST_APPEND, BU_LIST_DEQUEUE, BU_LIST_INSERT, BU_LIST_PNEXT_CIRC, bu_log(), DEBUG_BASIC, edgeuse::eumate_p, loopuse::l, edgeuse::l, edgeuse::lu_p, bu_list::magic, loopuse::magic_p, NMG_CK_EDGEUSE, NMG_CK_LOOPUSE, nmg_keu(), nmg_klu(), NMG_LOOPUSE_MAGIC, nmg_lu_reorient(), nmg_orientation(), loopuse::orientation, OT_OPPOSITE, OT_SAME, edgeuse::radial_p, rt_bomb(), edgeuse::up, and loopuse::up. Referenced by nmg_simplify_loop(). Here is the call graph for this function: ![]() |
|
N M G _ J O I N _ 2 L O O P S Intended to join an interior and exterior loop together, by building a bridge between the two indicated vertices. This routine can be used to join two exterior loops which do not overlap, and it can also be used to join an exterior loop with a loop of oposite orientation that lies entirely within it. This restriction is important, but not checked for. If the two vertexuses reference distinct vertices, then two new edges are built to bridge the loops together. If the two vertexuses share the same vertex, then it is even easier. Returns the replacement for vu2. Definition at line 2178 of file nmg_mod.c. References BU_LIST_APPEND, BU_LIST_DEQUEUE, BU_LIST_INSERT, BU_LIST_NON_EMPTY, BU_LIST_PNEXT_CIRC, BU_LIST_PPREV_CIRC, bu_log(), DEBUG_BASIC, loopuse::down_hd, vertexuse::eu_p, edgeuse::eumate_p, loopuse::fu_p, edgeuse::l, loopuse::l_p, edgeuse::lu_p, loopuse::lumate_p, NMG_CK_EDGEUSE, NMG_CK_LOOPUSE, NMG_CK_VERTEXUSE, nmg_eins(), nmg_eusplit(), nmg_je(), nmg_klu(), nmg_lu_reorient(), rt_bomb(), vertexuse::up, edgeuse::up, loopuse::up, vertexuse::v_p, and edgeuse::vu_p. Referenced by nmg_face_state_transition(), and nmg_join_touchingloops(). Here is the call graph for this function: ![]() |
|
N M G _ J O I N _ S I N G V U _ L O O P vu1 is in a regular loop, vu2 is in a loop of a single vertex A jaunt is taken from vu1 to vu2 and back to vu1, and the old loop at vu2 is destroyed. Return is the new vu that replaces vu2. Definition at line 2272 of file nmg_mod.c. References BU_LIST_PPREV_CIRC, bu_log(), DEBUG_BASIC, vertexuse::eu_p, vertexuse::lu_p, vertexuse::magic_p, NMG_CK_EDGEUSE, NMG_CK_LOOPUSE, NMG_CK_VERTEXUSE, NMG_EDGEUSE_MAGIC, nmg_eins(), nmg_eusplit(), nmg_je(), nmg_klu(), NMG_LOOPUSE_MAGIC, rt_bomb(), vertexuse::up, vertexuse::v_p, and edgeuse::vu_p. Referenced by nmg_face_state_transition(). Here is the call graph for this function: ![]() |
|
N M G _ J O I N _ 2 S I N G V U _ L O O P S Both vertices are part of single vertex loops. Converts loop on vu1 into a real loop that connects them together, with a single edge (two edgeuses). Loop on vu2 is killed. Returns replacement vu for vu2. Does not change the orientation. Definition at line 2322 of file nmg_mod.c. References BU_LIST_PPREV_CIRC, bu_log(), DEBUG_BASIC, vertexuse::eu_p, vertexuse::lu_p, edgeuse::lu_p, vertexuse::magic_p, NMG_CK_LOOPUSE, NMG_CK_VERTEXUSE, nmg_eusplit(), nmg_je(), nmg_klu(), NMG_LOOPUSE_MAGIC, nmg_meonvu(), rt_bomb(), vertexuse::up, edgeuse::up, vertexuse::v_p, and edgeuse::vu_p. Referenced by nmg_face_state_transition(). Here is the call graph for this function: ![]() |
|
N M G _ C U T _ L O O P Divide a loop of edges between two vertexuses. Make a new loop between the two vertexes, and split it and the loop of the vertexuses at the same time. BEFORE AFTER Va eu1 vu1 Vb Va eu1 vu1 Vb * <---------* <---------* * <--------* * <--------* | | | | ^ | ^ | ^ | Original | | Original | | New | | Loopuse | | Loopuse | | Loopuse | V | V | V / | | | / | *----------> *--------> * *--------> * *--------> * Vd vu2 eu2 Vc Vd vu2 eu2 Vc Returns the new loopuse pointer. The new loopuse will contain "vu2" and the edgeuse associated with "vu2" as the FIRST edgeuse on the list of edgeuses. The edgeuse for the new edge (connecting the verticies indicated by vu1 and vu2) will be the LAST edgeuse on the new loopuse's list of edgeuses. It is the caller's responsibility to re-bound the loops. Both old and new loopuse will have orientation OT_UNSPEC. It is the callers responsibility to determine what the orientations should be. This can be conveniently done with nmg_lu_reorient(). Here is a simple example of how the new loopuse might have a different orientation than the original one: F<----------------E | ^ | | | C--------->D | ^ . | | . | | . | B<---------A | ^ v | G---------------->H When nmg_cut_loop(A,D) is called, the new loop ABCD is clockwise, even though the original loop was counter-clockwise. There is no way to determine this without referring to the face normal and vertex geometry, which being a topology routine this routine shouldn't do. Returns - NULL Error lu Loopuse of new loop, on success. Definition at line 2421 of file nmg_mod.c. References bu_bomb(), bu_calloc(), bu_free(), BU_LIST_APPEND, BU_LIST_DEQUEUE, BU_LIST_FIRST, BU_LIST_INSERT, BU_LIST_PNEXT_CIRC, bu_log(), DEBUG_CUTLOOP, DEBUG_PLOTEM, loopuse::down_hd, vertexuse::eu_p, edgeuse::eumate_p, loopuse::fu_p, faceuse::fumate_p, edgeuse::l, edgeuse::lu_p, loopuse::lumate_p, nmgregion::m_p, loopuse::magic_p, model::maxindex, name, NMG_CK_EDGEUSE, NMG_CK_FACEUSE, NMG_CK_LOOPUSE, NMG_CK_MODEL, NMG_CK_VERTEXUSE, nmg_kvu(), nmg_mlv(), nmg_pl_fu(), nmg_split_lu_at_vu(), NULL, loopuse::orientation, OT_UNSPEC, perror(), shell::r_p, rt_bomb(), faceuse::s_p, vertexuse::up, edgeuse::up, loopuse::up, vertexuse::v_p, and void(). Referenced by nmg_face_state_transition(), and nmg_make_faces_at_vert(). Here is the call graph for this function: ![]() |
|
N M G _ S P L I T _ L U _ A T _ V U In a loop which has at least two distinct uses of a vertex, split off the edges from "split_vu" to the second occurance of the vertex into a new loop. It is the caller's responsibility to re-bound the loops. The old and new loopuses will have orientation OT_UNSPEC. It is the callers responsibility to determine what their orientations should be. This can be conveniently done with nmg_lu_reorient(). Here is an example: E<__________B <___________A | ^\ ^ | / \ | | / \ | | / v | | D<_______C | v | F________________________>G When nmg_split_lu_at_vu(lu, B) is called, the old loopuse continues to be counter clockwise and OT_SAME, but the new loopuse BCD is now clockwise. It needs to be marked OT_OPPOSITE. Without referring to the geometry, this can't be determined. Intended primarily for use by nmg_split_touchingloops(). Returns - NULL Error lu Loopuse of new loop, on success. Definition at line 2589 of file nmg_mod.c. References BU_LIST_APPEND, BU_LIST_DEQUEUE, BU_LIST_FIRST, BU_LIST_INSERT, BU_LIST_PNEXT_CIRC, loopuse::down_hd, vertexuse::eu_p, edgeuse::eumate_p, edgeuse::l, edgeuse::lu_p, loopuse::lumate_p, loopuse::magic_p, NMG_CK_EDGEUSE, NMG_CK_LOOPUSE, NMG_CK_VERTEX, NMG_CK_VERTEXUSE, nmg_kvu(), nmg_mlv(), loopuse::orientation, OT_UNSPEC, vertexuse::up, edgeuse::up, loopuse::up, vertexuse::v_p, and edgeuse::vu_p. Referenced by nmg_cut_loop(), nmg_extrude_cleanup(), nmg_face_state_transition(), nmg_kill_cracks(), and nmg_split_touchingloops(). Here is the call graph for this function: ![]() |
|
N M G _ F I N D _ R E P E A T E D _ V _ I N _ L U Given a vertexuse of an edgeuse in a loopuse, see if the vertex is used by at least one other vertexuse in that same loopuse. Returns - vu If this vertex appears elsewhere in the loopuse. NULL If this is the only occurance of this vertex in the loopuse. XXX move to nmg_info.c Definition at line 2665 of file nmg_mod.c. References BU_LIST_FOR, vertexuse::eu_p, edgeuse::lu_p, vertexuse::magic_p, edgeuse::magic_p, NMG_CK_EDGEUSE, NMG_CK_LOOPUSE, NMG_CK_VERTEX, NMG_EDGEUSE_MAGIC, NMG_LOOPUSE_MAGIC, vertexuse::up, edgeuse::up, vertexuse::v_p, and vertex::vu_hd. Referenced by nmg_get_touching_jaunts(), and nmg_split_touchingloops(). |
|
N M G _ S P L I T _ T O U C H I N G L O O P S Search through all the vertices in a loop. Whenever there are two distinct uses of one vertex in the loop, split off all the edges between them into a new loop. Note that the call to nmg_split_lu_at_vu() will cause the split loopuses to be marked OT_UNSPEC. Definition at line 2719 of file nmg_mod.c. References BN_CK_TOL, BU_LIST_FIRST_MAGIC, BU_LIST_FOR, bu_log(), DEBUG_BASIC, loopuse::down_hd, vertexuse::eu_p, loopuse::l_p, edgeuse::lu_p, vertexuse::magic_p, edgeuse::magic_p, NMG_CK_EDGEUSE, NMG_CK_LOOP, NMG_CK_LOOPUSE, NMG_CK_VERTEX, NMG_CK_VERTEXUSE, NMG_EDGEUSE_MAGIC, nmg_eu_is_part_of_crack(), nmg_find_lu_of_vu(), nmg_find_repeated_v_in_lu(), nmg_loop_g(), NMG_LOOPUSE_MAGIC, nmg_split_lu_at_vu(), nmg_split_touchingloops(), top(), vertexuse::up, edgeuse::up, vertexuse::v_p, and vertex::vu_hd. Referenced by nmg_s_split_touchingloops(), nmg_split_touchingloops(), and nmg_triangulate_fu(). Here is the call graph for this function: ![]() |
|
N M G _ J O I N _ T O U C H I N G L O O P S Search through all the vertices in a loopuse that belongs to a faceuse. Whenever another loopuse in the same faceuse refers to one of this loop's vertices, the two loops touch at (at least) that vertex. Join them together. Return - count of loops joined (eliminated) Definition at line 2861 of file nmg_mod.c. References BU_LIST_FIRST_MAGIC, BU_LIST_FOR, bu_log(), DEBUG_BASIC, loopuse::down_hd, vertexuse::eu_p, loopuse::fu_p, edgeuse::lu_p, vertexuse::magic_p, edgeuse::magic_p, loopuse::magic_p, NMG_CK_EDGEUSE, NMG_CK_FACEUSE, NMG_CK_LOOPUSE, NMG_CK_VERTEX, NMG_CK_VERTEXUSE, NMG_EDGEUSE_MAGIC, NMG_FACEUSE_MAGIC, nmg_join_2loops(), NMG_LOOPUSE_MAGIC, top(), loopuse::up, vertexuse::up, edgeuse::up, vertexuse::v_p, vertex::vu_hd, and edgeuse::vu_p. Referenced by nmg_s_join_touchingloops(). Here is the call graph for this function: ![]() |
|
N M G _ G E T _ T O U C H I N G _ J A U N T S Create a table of EU's. Each EU will be the first EU in a touching jaunt (edgeuses from vert A->B->A) where vertex B appears elswhere in the loopuse lu. returns: count of touching jaunts found The passed pointer to an bu_ptbl structure may not be initialized. If no touching jaunts are found, it will still not be initialized upon return (to avoid bu_malloc/bu_free pairs for loops with no touching jaunts. The flag (need_init) lets this routine know whether the ptbl structure has been initialized Definition at line 2959 of file nmg_mod.c. References BU_LIST_FIRST_MAGIC, BU_LIST_FOR, BU_LIST_PNEXT_CIRC, bu_ptbl_init(), bu_ptbl_ins(), loopuse::down_hd, edgeuse::l, NMG_CK_LOOPUSE, NMG_EDGEUSE_MAGIC, nmg_find_repeated_v_in_lu(), vertexuse::v_p, and edgeuse::vu_p. Referenced by nmg_loop_split_at_touching_jaunt(). Here is the call graph for this function: ![]() |
|
Definition at line 3110 of file nmg_mod.c. References BU_LIST_FIRST_MAGIC, BU_LIST_FOR, BU_LIST_PPREV_CIRC, bu_log(), DEBUG_BASIC, DEBUG_CUTLOOP, loopuse::down_hd, edgeuse::eumate_p, NMG_ARE_EUS_ADJACENT, NMG_CK_LOOPUSE, NMG_EDGEUSE_MAGIC, nmg_keu(), top(), vertexuse::v_p, void(), and edgeuse::vu_p. Referenced by nmg_loop_split_at_touching_jaunt(). Here is the call graph for this function: ![]() |
|
N M G _ L O O P _ S P L I T _ A T _ T O U C H I N G _ J A U N T If a loop makes a "jaunt" (edgeuses from verts A->B->A), where the tip of the jaunt touches the same loop at a different vertexuse, cut the loop into two. This produces a much more reasonable loop split than nmg_split_touchingloops(), which tends to peel off 2-edge "cracks" as it unravels the loop. Note that any loops so split will be marked OT_UNSPEC. Definition at line 3191 of file nmg_mod.c. References BN_CK_TOL, bu_log(), BU_PTBL_END, BU_PTBL_GET, DEBUG_BASIC, DEBUG_CUTLOOP, NMG_CK_LOOPUSE, nmg_get_touching_jaunts(), nmg_kill_accordions(), nmg_pr_lu_briefly(), and top(). Referenced by nmg_s_split_touchingloops(), and nmg_triangulate_fu(). Here is the call graph for this function: ![]() |
|
N M G _ S I M P L I F Y _ L O O P combine adjacent loops within the same parent that touch along a common edge into a single loop, with the edge eliminated. Definition at line 3435 of file nmg_mod.c. References BU_LIST_FIRST, BU_LIST_FIRST_MAGIC, BU_LIST_NOT_HEAD, BU_LIST_PLAST, BU_LIST_PNEXT, bu_log(), DEBUG_BASIC, DEBUG_PL_ANIM, DEBUG_PLOTEM, loopuse::down_hd, edgeuse::eumate_p, loopuse::fu_p, faceuse::fumate_p, edgeuse::lu_p, edgeuse::magic_p, loopuse::magic_p, NMG_CK_EDGEUSE, NMG_CK_LOOPUSE, NMG_EDGEUSE_MAGIC, NMG_FACEUSE_MAGIC, nmg_jl(), NMG_LOOPUSE_MAGIC, nmg_pl_2fu(), loopuse::orientation, OT_OPPOSITE, OT_SAME, edgeuse::radial_p, edgeuse::up, and loopuse::up. Referenced by nmg_shell_coplanar_face_merge(), and nmg_simplify_face(). Here is the call graph for this function: ![]() |
|
N M G _ K I L L _ S N A K E S Removes "snake" or "disconnected crack" edges from loopuse. Returns - 0 If all went well 1 If the loopuse is now empty and needs to be killed. Definition at line 3516 of file nmg_mod.c. References BU_LIST_FIRST, BU_LIST_FIRST_MAGIC, BU_LIST_IS_EMPTY, BU_LIST_NOT_HEAD, BU_LIST_PNEXT, BU_LIST_PNEXT_CIRC, bu_log(), DEBUG_BASIC, DEBUG_PL_ANIM, DEBUG_PLOTEM, loopuse::down_hd, vertexuse::eu_p, edgeuse::eumate_p, loopuse::fu_p, faceuse::fumate_p, edgeuse::lu_p, edgeuse::magic_p, loopuse::magic_p, NMG_CK_EDGEUSE, NMG_CK_LOOPUSE, NMG_EDGEUSE_MAGIC, NMG_FACEUSE_MAGIC, nmg_keu(), NMG_LOOPUSE_MAGIC, nmg_pl_2fu(), edgeuse::radial_p, edgeuse::up, vertexuse::up, loopuse::up, vertexuse::v_p, void(), vertex::vu_hd, and edgeuse::vu_p. Referenced by nmg_simplify_face(). Here is the call graph for this function: ![]() |
|
Referenced by nmg_js(). |
|
N M G _ M O V E L T O F move first pair of shell wire loopuses out to become a genuine loop in an existing face. XXX This routine is not used anywhere, and may not work. Definition at line 3642 of file nmg_mod.c. References BU_LIST_APPEND, BU_LIST_DEQUEUE, BU_LIST_FIRST, bu_log(), DEBUG_BASIC, faceuse::fumate_p, loopuse::l, shell::lu_hd, faceuse::lu_hd, NMG_CK_FACEUSE, NMG_CK_LOOPUSE, NMG_CK_SHELL, and faceuse::s_p. Here is the call graph for this function: ![]() |
|
Referenced by nmg_dup_face(), and nmg_dup_shell(). |
|
N M G _ S E T _ L U _ O R I E N T A T I O N Set this loopuse and mate's orientation to be SAME or OPPOSITE from the orientation of the faceuse they each reside in. Definition at line 3858 of file nmg_mod.c. References bu_log(), DEBUG_BASIC, loopuse::lumate_p, NMG_CK_LOOPUSE, loopuse::orientation, OT_OPPOSITE, and OT_SAME. Referenced by nmg_face_state_transition(). Here is the call graph for this function: ![]() |
|
N M G _ L U _ R E O R I E N T Based upon a geometric calculation, reorient a loop and it's mate, if the stored orientation differs from the geometric one. Note that the loopuse and it's mate have the same orientation; it's the faceuses that are normalward and anti-normalward. The loopuses either both agree with their faceuse, or both differ. Definition at line 3888 of file nmg_mod.c. References BU_LIST_FIRST_MAGIC, bu_log(), DEBUG_BASIC, loopuse::down_hd, loopuse::fu_p, HREVERSE, loopuse::lumate_p, NMG_CK_FACEUSE, NMG_CK_LOOPUSE, NMG_GET_FU_PLANE, nmg_loop_plane_newell(), nmg_orientation(), NMG_VERTEXUSE_MAGIC, loopuse::orientation, faceuse::orientation, OT_BOOLPLACE, OT_OPPOSITE, OT_SAME, PLPRINT, rt_bomb(), loopuse::up, and VDOT. Referenced by nmg_face_state_transition(), nmg_jl(), nmg_join_2loops(), nmg_kill_cracks(), nmg_s_join_touchingloops(), nmg_s_split_touchingloops(), and nmg_triangulate_fu(). Here is the call graph for this function: ![]() |
|
N M G _ E U S P L I T Split an edgeuse by inserting a vertex into middle of the edgeuse. Make a new edge, and a vertex. If v is non-null it is taken as a pointer to an existing vertex to use as the start of the new edge. If v is null, then a new vertex is created for the begining of the new edge. In either case, the new edge will exist as the "next" edgeuse after the edgeuse passed as a parameter. Upon return, the new edgeuses (eu1 and mate) will not refer to any geometry, unless argument "share_geom" was non-zero. Explicit return - edgeuse of new edge "eu1", starting at V and going to B. List on entry - oldeu .-------------> / A =============== B (edge) / <-------------. oldeumate List on return - oldeu(cw) eu1 .-------> .-----> / / (edge) A ========= V ~~~~~~~ B (new edge) / / <-------. <-----. mate mate Definition at line 3993 of file nmg_mod.c. References BU_LIST_APPEND, BU_LIST_DEQUEUE, BU_LIST_INIT, BU_LIST_PNEXT, bu_log(), DEBUG_BASIC, edgeuse::e_p, edge::eu_p, edgeuse::eumate_p, loopuse::fu_p, edgeuse::g, edgeuse::l, edgeuse::l2, bu_list::magic, edgeuse::magic_p, loopuse::magic_p, NMG_CK_EDGEUSE, NMG_CK_LOOPUSE, NMG_CK_SHELL, NMG_CK_VERTEX, NMG_EDGEUSE2_MAGIC, NMG_FACEUSE_MAGIC, nmg_keg(), NMG_LOOPUSE_MAGIC, nmg_me(), nmg_movevu(), NMG_SHELL_MAGIC, nmg_unglueedge(), nmg_use_edge_g(), NULL, edgeuse::orientation, edgeuse::radial_p, rt_bomb(), loopuse::s_p, faceuse::s_p, loopuse::up, edgeuse::up, vertexuse::v_p, and edgeuse::vu_p. Referenced by nmg_add_loop_to_face(), nmg_dup_loop(), nmg_esplit(), nmg_join_2loops(), nmg_join_2singvu_loops(), nmg_join_singvu_loop(), and tesselate_pipe_start(). Here is the call graph for this function: ![]() |
|
N M G _ E S P L I T Split an edge by inserting a vertex into middle of *all* of the uses of this edge, and combine the new edgeuses together onto the new edge. A more powerful version of nmg_eusplit(), which does only one use. Makes a new edge, and a vertex. If v is non-null it is taken as a pointer to an existing vertex to use as the start of the new edge. If v is null, then a new vertex is created for the begining of the new edge. In either case, the new edgeuse will exist as the "next" edgeuse after the edgeuse passed as a parameter. Note that eu->e_p changes value upon return, because the old edge is incrementally replaced by two new ones. Geometry will be preserved on eu and it's mates (by nmg_eusplit), if any. ret_eu and mates will share that geometry if share_geom is set non-zero, otherwise they will have null geom pointers. Explicit return - Pointer to the edgeuse which starts at the newly created vertex (V), and runs to B. Implicit returns - ret_eu->vu_p->v_p gives the new vertex ("v", if non-null), and ret_eu->e_p is the new edge that runs from V to B. The new vertex created will also be eu->eumate_p->vu_p->v_p. Edge on entry - eu .-------------> / A =============== B (edge) / <-------------. eu->eumate_p Edge on return - eu ret_eu .-------> .---------> / / (newedge) A ========= V ~~~~~~~~~~~ B (new edge) / / <-------. <---------. Note: to replicate the behavior of this routine in BRL-CAD Relase 4.0, call with share_geom=0. Definition at line 4268 of file nmg_mod.c. References bu_log(), DEBUG_BASIC, edgeuse::e_p, edgeuse::eumate_p, NMG_CK_EDGE, NMG_CK_EDGEUSE, NMG_CK_VERTEX, NMG_CK_VERTEXUSE, nmg_eusplit(), nmg_je(), NMG_TEST_EDGEUSE, edgeuse::radial_p, rt_bomb(), vertexuse::v_p, and edgeuse::vu_p. Referenced by nmg_break_crossed_loops(), nmg_break_edge_at_verts(), nmg_ebreak(), nmg_fix_overlapping_loops(), nmg_isect_eu_eu(), nmg_isect_eu_fu(), and nmg_make_dualvu(). Here is the call graph for this function: ![]() |
|
N M G _ E B R E A K Like nmg_esplit(), split an edge into two parts. Ensure that both sets of edgeuses share the original edgeuse geometry. If the original edge had no edge geometry, then none is created here. This is a simple compatability interface to nmg_esplit(). The return is the return of nmg_esplit(). Definition at line 4386 of file nmg_mod.c. References bu_log(), DEBUG_BASIC, edgeuse::e_p, edgeuse::g, edgeuse::lseg_p, edgeuse::magic_p, NMG_CK_EDGE_G_LSEG, NMG_CK_EDGEUSE, nmg_esplit(), and rt_bomb(). Referenced by nmg_break_all_es_on_v(), nmg_break_long_edges(), nmg_e2break(), nmg_ebreaker(), and nmg_model_break_e_on_v(). Here is the call graph for this function: ![]() |
|
Definition at line 4422 of file nmg_mod.c. References BN_CK_TOL, bu_log(), DEBUG_BASIC, edgeuse::e_p, edgeuse::eumate_p, NMG_CK_EDGEUSE, nmg_ebreak(), nmg_eu_radial_check(), nmg_find_e(), nmg_find_s_of_eu(), nmg_radial_join_eu(), vertexuse::v_p, and edgeuse::vu_p. Referenced by nmg_break_eg_on_v(), nmg_break_eu_on_v(), nmg_face_state_transition(), nmg_insert_vu_if_on_edge(), nmg_intersect_loops_self(), nmg_isect_edge2p_edge2p(), and nmg_isect_line2_edge2p(). Here is the call graph for this function: ![]() |
|
N M G _ E 2 B R E A K Given two edges that are known to intersect someplace other than at any of their endpoints, break both of them and insert a shared vertex. Return a pointer to the new vertex. Definition at line 4485 of file nmg_mod.c. References bu_log(), DEBUG_BASIC, NMG_CK_EDGEUSE, NMG_CK_VERTEX, nmg_ebreak(), NULL, vertexuse::v_p, void(), and edgeuse::vu_p. Referenced by nmg_isect_edge2p_edge2p(). Here is the call graph for this function: ![]() |
|
N M G _ U N B R E A K _ E D G E Undoes the effect of an unwanted nmg_ebreak(). Eliminate the vertex between this edgeuse and the next edge, on all edgeuses radial to this edgeuse's edge. The edge geometry must be shared, and all uses of the vertex to be disposed of must originate from this edge pair. Also, the "non-B" ends of all edgeuses around e1 and e2 must terminate at either A or B. XXX for t-NURBS, this should probably be re-stated as saying that all the edgeuses must share the same 2 edges, and that every eu1 needs to share geom with it's corresponding eu2, and similarly for the two mates. eu1 eu2 *----------->*----------->* A.....e1.....B.....e2.....C *<-----------*<-----------* eu1mate eu2mate If successful, the vertex B, the edge e2, and all the edgeuses radial to eu2 (including eu2) will have all been killed. The radial ordering around e1 will not change. eu1 *------------------------>* A.....e1..................C *<------------------------* eu1mate No new topology structures are created by this operation. Returns - 0 OK, edge unbroken <0 failure, nothing changed Definition at line 4544 of file nmg_mod.c. References BU_LIST_FOR, bu_list_len(), BU_LIST_PNEXT_CIRC, bu_log(), edgeuse::e_p, edge_g_lseg::eu_hd2, vertexuse::eu_p, edgeuse::eumate_p, edgeuse::g, edgeuse::lseg_p, vertexuse::lu_p, edgeuse::magic_p, vertexuse::magic_p, NMG_CK_EDGE, NMG_CK_EDGE_G_LSEG, NMG_CK_EDGEUSE, NMG_CK_SHELL, NMG_CK_VERTEXUSE, NMG_EDGEUSE_MAGIC, nmg_find_s_of_eu(), loopuse::orientation, OT_BOOLPLACE, rt_bomb(), s1, vertexuse::up, vertexuse::v_p, vertex::vu_hd, and edgeuse::vu_p. Referenced by nmg_unbreak_handler(). Here is the call graph for this function: ![]() |
|
N M G _ U N B R E A K _ S H E L L _ E D G E _ U N S A F E Undoes the effect of an unwanted nmg_ebreak(). NOTE: THIS IS LIKELY TO PRODUCE AN ILLEGAL NMG STRUCTURE!!!! This routine is intended for use only when simplifying an NMG prior to output in another format (such as polygons). It will unbreak edges where nmg_unbreak_edge() will not!!!!! Eliminate the vertex between this edgeuse and the next edge, on all edgeuses radial to this edgeuse's edge. The edge geometry must be shared, and all uses of the vertex, in the same shell, to be disposed of must originate from this edge pair. Also, the "non-B" ends of all edgeuses around e1 and e2 (in this shell) must terminate at either A or B. eu1 eu2 *----------->*----------->* A.....e1.....B.....e2.....C *<-----------*<-----------* eu1mate eu2mate If successful, the vertex B, the edge e2, and all the edgeuses in the same shell radial to eu2 (including eu2) will have all been killed. The radial ordering around e1 will not change. eu1 *------------------------>* A.....e1..................C *<------------------------* eu1mate No new topology structures are created by this operation. Returns - 0 OK, edge unbroken <0 failure, nothing changed Definition at line 4763 of file nmg_mod.c. References BU_LIST_FOR, BU_LIST_PNEXT_CIRC, bu_log(), edgeuse::e_p, vertexuse::eu_p, edgeuse::eumate_p, edgeuse::g, edgeuse::lseg_p, vertexuse::lu_p, edgeuse::magic_p, vertexuse::magic_p, NMG_CK_EDGE, NMG_CK_EDGE_G_LSEG, NMG_CK_EDGEUSE, NMG_CK_SHELL, NMG_CK_VERTEXUSE, NMG_EDGEUSE_MAGIC, nmg_find_s_of_eu(), nmg_find_s_of_vu(), loopuse::orientation, OT_BOOLPLACE, s1, vertexuse::up, vertexuse::v_p, vertex::vu_hd, and edgeuse::vu_p. Here is the call graph for this function: ![]() |
|
N M G _ E I N S Insert a new (zero length) edge at the begining of (ie, before) an existing edgeuse Perhaps this is what nmg_esplit and nmg_eusplit should have been like? Before: .--A--> .--eu--> \ >. / <-A'--. <-eu'-. After: eu1 eu .--A--> .---> .--eu--> \ / >.< / \ <-A'--. <---. <-eu'--. eu2 eumate Definition at line 4963 of file nmg_mod.c. References BU_LIST_APPEND, BU_LIST_DEQUEUE, BU_LIST_INSERT, bu_log(), edgeuse::eumate_p, loopuse::fu_p, edgeuse::l, edgeuse::lu_p, edgeuse::magic_p, loopuse::magic_p, NMG_CK_EDGEUSE, NMG_CK_FACEUSE, NMG_CK_LOOPUSE, NMG_CK_SHELL, NMG_LOOPUSE_MAGIC, nmg_me(), NMG_SHELL_MAGIC, rt_bomb(), edgeuse::s_p, loopuse::s_p, faceuse::s_p, edgeuse::up, loopuse::up, vertexuse::v_p, and edgeuse::vu_p. Referenced by nmg_join_2loops(), and nmg_join_singvu_loop(). Here is the call graph for this function: ![]() |
|
Referenced by nmg_js(). |
|
Referenced by nmg_js(). |
|
|
|
|
Referenced by nmg_demote_eu(), nmg_do_bool(), nmg_keu(), nmg_kfu(), nmg_klu(), nmg_kvu(), and nmg_simplify_shell(). |
|
N M G _ F I N D _ S _ O F _ L U return parent shell for loopuse formerly nmg_lups(). Definition at line 189 of file nmg_info.c. References loopuse::fu_p, loopuse::magic_p, NMG_FACEUSE_MAGIC, NMG_SHELL_MAGIC, rt_bomb(), loopuse::s_p, faceuse::s_p, and loopuse::up. Referenced by nmg_demote_lu(), nmg_find_s_of_eu(), nmg_find_s_of_vu(), and nmg_find_v_in_shell(). Here is the call graph for this function: ![]() |
|
N M G _ F I N D _ S _ O F _ E U return parent shell of edgeuse formerly nmg_eups(). Definition at line 204 of file nmg_info.c. References edgeuse::lu_p, edgeuse::magic_p, nmg_find_s_of_lu(), NMG_LOOPUSE_MAGIC, NMG_SHELL_MAGIC, rt_bomb(), edgeuse::s_p, and edgeuse::up. Referenced by nmg_assess_vu(), nmg_check_radial(), nmg_decompose_shell(), nmg_ebreaker(), nmg_find_e(), nmg_find_s_of_vu(), nmg_find_top_face_in_dir(), nmg_find_v_in_shell(), nmg_findeu(), nmg_next_radial_eu(), nmg_prev_radial_eu(), nmg_radial_build_list(), nmg_radial_face_count(), nmg_radial_face_edge_in_shell(), nmg_radial_join_eu_NEW(), nmg_unbreak_edge(), and nmg_unbreak_shell_edge_unsafe(). Here is the call graph for this function: ![]() |
|
N M G _ F I N D _ S _ O F _ V U Return parent shell of vertexuse Definition at line 219 of file nmg_info.c. References vertexuse::eu_p, vertexuse::lu_p, vertexuse::magic_p, NMG_CK_VERTEXUSE, nmg_find_s_of_eu(), nmg_find_s_of_lu(), NMG_LOOPUSE_MAGIC, and vertexuse::up. Referenced by nmg_enlist_one_vu(), nmg_enlist_vu(), nmg_follow_free_edges_to_vertex(), nmg_mk_model_from_region(), nmg_simplify_shell_edges(), and nmg_unbreak_shell_edge_unsafe(). Here is the call graph for this function: ![]() |
|
|
N M G _ F I N D _ F U _ O F _ L U Definition at line 256 of file nmg_info.c. References bu_log(), loopuse::fu_p, loopuse::magic_p, NMG_FACEUSE_MAGIC, NMG_SHELL_MAGIC, NULL, rt_bomb(), and loopuse::up. Referenced by nmg_find_fu_of_vu(). Here is the call graph for this function: ![]() |
|
N M G _ F I N D _ F U _ O F _ V U return a pointer to the parent faceuse of the vertexuse or a null pointer if vu is not a child of a faceuse. Definition at line 278 of file nmg_info.c. References bu_log(), DEBUG_BASIC, vertexuse::eu_p, vertexuse::lu_p, edgeuse::lu_p, vertexuse::magic_p, edgeuse::magic_p, loopuse::magic_p, NMG_CK_VERTEXUSE, NMG_EDGEUSE_MAGIC, nmg_find_fu_of_lu(), NMG_LOOPUSE_MAGIC, NMG_SHELL_MAGIC, NULL, rt_bomb(), vertexuse::up, edgeuse::up, and loopuse::up. Referenced by nmg_ck_v_in_2fus(), nmg_ck_vert_on_fus(), nmg_ck_vu_ptbl(), nmg_enlist_vu(), nmg_find_isect_faces(), and nmg_kill_cracks_at_vertex(). Here is the call graph for this function: ![]() |
|
N M G _ F I N D _ F U _ W I T H _ F G _ I N _ S Find a faceuse in shell s1 that shares the face_g_plane structure with fu2 and has the same orientation. This may be an OT_OPPOSITE faceuse, depending on orientation. Returns NULL if no such faceuse can be found in s1. fu2 may be in s1, or in some other shell. Definition at line 321 of file nmg_info.c. References BU_LIST_FOR, faceuse::f_p, face::flip, faceuse::fumate_p, face::g, NMG_CK_FACE, NMG_CK_FACE_G_PLANE, NMG_CK_FACEUSE, NMG_CK_SHELL, NULL, faceuse::orientation, OT_SAME, face::plane_p, and s1. Referenced by nmg_js(). |
|
Referenced by nmg_check_radial_angles(), nmg_pr_one_eu_vecs(), nmg_radial_build_list(), and nmg_radial_join_eu(). |
|
N M G _ F I N D _ L U _ O F _ V U Definition at line 399 of file nmg_info.c. References vertexuse::eu_p, vertexuse::lu_p, edgeuse::lu_p, vertexuse::magic_p, edgeuse::magic_p, NMG_CK_EDGEUSE, NMG_CK_LOOPUSE, NMG_CK_VERTEXUSE, NMG_LOOPUSE_MAGIC, NMG_SHELL_MAGIC, NULL, vertexuse::up, and edgeuse::up. Referenced by nmg_assess_vu(), nmg_face_coincident_vu_sort(), nmg_face_state_transition(), nmg_fcut_face(), nmg_split_touchingloops(), and nmg_vu_angle_measure(). |
|
N M G _ L O O P _ I S _ A _ C R A C K A "crack" is defined as a loop which has no area. Example of a non-trivial "crack" loop: <---- eu4 ----- C ############### D | # ^ ---- eu3 ---> | # | eu5 # eu2 | # | <--- eu6 --V # | A ############ B --- eu1 ----> Returns - 0 Loop is not a "crack" !0 Loop *is* a "crack" Definition at line 441 of file nmg_info.c. References BU_LIST_FIRST_MAGIC, BU_LIST_FOR, bu_log(), DEBUG_BASIC, loopuse::down_hd, vertexuse::eu_p, edgeuse::eumate_p, loopuse::fu_p, edgeuse::lu_p, loopuse::magic_p, vertexuse::magic_p, edgeuse::magic_p, NMG_CK_EDGEUSE, NMG_CK_FACEUSE, NMG_CK_LOOPUSE, NMG_CK_VERTEX, NMG_CK_VERTEXUSE, NMG_EDGEUSE_MAGIC, NMG_FACEUSE_MAGIC, NMG_LOOPUSE_MAGIC, loopuse::up, vertexuse::up, edgeuse::up, vertexuse::v_p, vertex::vu_hd, and edgeuse::vu_p. Referenced by nmg_face_state_transition(), nmg_get_interior_pt(), nmg_is_crack_outie(), nmg_loop_plane_area(), and nmg_loop_plane_newell(). Here is the call graph for this function: ![]() |
|
|
|
N M G _ L O O P _ T O U C H E S _ S E L F Search through all the vertices in a loop. If there are two distinct uses of one vertex in the loop, return true. This is useful for detecting "accordian pleats" unexpectedly showing up in a loop. Derrived from nmg_split_touchingloops(). Returns - vu Yes, the loop touches itself at least once, at this vu. 0 No, the loop does not touch itself. Definition at line 602 of file nmg_info.c. References BU_LIST_FIRST_MAGIC, BU_LIST_FOR, loopuse::down_hd, vertexuse::eu_p, edgeuse::lu_p, vertexuse::magic_p, edgeuse::magic_p, NMG_CK_EDGEUSE, NMG_CK_LOOPUSE, NMG_CK_VERTEX, NMG_CK_VERTEXUSE, NMG_EDGEUSE_MAGIC, NMG_LOOPUSE_MAGIC, vertexuse::up, edgeuse::up, vertexuse::v_p, vertex::vu_hd, and edgeuse::vu_p. Referenced by nmg_extrude_cleanup(), and nmg_fu_touchingloops(). |
|
N M G _ 2 L U _ I D E N T I C A L Given two edgeuses in different faces that share a common edge, determine if they are from identical loops or not. Note that two identical loops in an anti-shared pair of faces (faces with opposite orientations) will also have opposite orientations. Returns - 0 Loops not identical 1 Loops identical, faces are ON-shared 2 Loops identical, faces are ON-anti-shared 3 Loops identical, at least one is a wire loop. Definition at line 1290 of file nmg_class.c. References BU_LIST_PNEXT_CIRC, bu_log(), DEBUG_BASIC, edgeuse::e_p, edgeuse::eumate_p, faceuse::f_p, face::flip, loopuse::fu_p, faceuse::fumate_p, face::g, edgeuse::l, edgeuse::lu_p, loopuse::magic_p, face::magic_p, NMG_CK_EDGEUSE, NMG_CK_LOOPUSE, NMG_FACEUSE_MAGIC, NMG_GET_FU_NORMAL, nmg_pr_fg(), nmg_pr_fu_briefly(), faceuse::orientation, face::plane_p, rt_bomb(), edgeuse::up, loopuse::up, vertexuse::v_p, VDOT, and edgeuse::vu_p. Here is the call graph for this function: ![]() |
|
N M G _ F I N D _ M A T C H I N G _ E U _ I N _ S If shell s2 has an edge that connects the same vertices as eu1 connects, return the matching edgeuse in s2. This routine works properly regardless of whether eu1 is in s2 or not. A convenient wrapper for nmg_findeu(). Definition at line 668 of file nmg_info.c. References BU_LIST_PNEXT_CIRC, NMG_CK_EDGEUSE, NMG_CK_SHELL, NMG_CK_VERTEXUSE, nmg_find_v_in_shell(), nmg_findeu(), NULL, s2, vertexuse::v_p, and edgeuse::vu_p. Referenced by nmg_isect_face3p_shell_int(). Here is the call graph for this function: ![]() |
|
N M G _ F I N D E U Find an edgeuse in a shell between a given pair of vertex structs. If a given shell "s" is specified, then only edgeuses in that shell will be considered, otherwise all edgeuses in the model are fair game. If a particular edgeuse "eup" is specified, then that edgeuse and it's mate will not be returned as a match. If "dangling_only" is true, then an edgeuse will be matched only if there are no other edgeuses on the edge, i.e. the radial edgeuse is the same as the mate edgeuse. Returns - edgeuse* Edgeuse which matches the criteria NULL Unable to find matching edgeuse Definition at line 711 of file nmg_info.c. References BU_LIST_FOR, bu_log(), DEBUG_BASIC, DEBUG_FINDEU, vertexuse::eu_p, edgeuse::eumate_p, loopuse::fu_p, edgeuse::lu_p, vertexuse::magic_p, edgeuse::magic_p, loopuse::magic_p, NMG_CK_EDGEUSE, NMG_CK_SHELL, NMG_CK_VERTEX, NMG_CK_VERTEXUSE, NMG_EDGEUSE_MAGIC, NMG_FACEUSE_MAGIC, nmg_find_fu_of_eu(), nmg_find_s_of_eu(), NMG_LOOPUSE_MAGIC, NULL, faceuse::orientation, OT_SAME, edgeuse::radial_p, rt_bomb(), edgeuse::s_p, vertexuse::up, edgeuse::up, loopuse::up, vertexuse::v_p, vertex::vu_hd, and edgeuse::vu_p. Referenced by nmg_face_state_transition(), nmg_find_matching_eu_in_s(), nmg_glue_face_in_shell(), and nmg_repair_v_near_v(). Here is the call graph for this function: ![]() |
|
N M G _ F I N D _ E U _ I N _ F A C E An analog to nmg_findeu(), only restricted to searching a faceuse, rather than to a whole shell. Definition at line 807 of file nmg_info.c. References BU_LIST_FOR, bu_log(), DEBUG_BASIC, DEBUG_FINDEU, vertexuse::eu_p, edgeuse::eumate_p, loopuse::fu_p, edgeuse::lu_p, vertexuse::magic_p, edgeuse::magic_p, loopuse::magic_p, NMG_CK_EDGEUSE, NMG_CK_FACEUSE, NMG_CK_VERTEX, NMG_CK_VERTEXUSE, NMG_EDGEUSE_MAGIC, NMG_FACEUSE_MAGIC, nmg_find_fu_of_eu(), NMG_LOOPUSE_MAGIC, NULL, faceuse::orientation, OT_SAME, edgeuse::radial_p, rt_bomb(), vertexuse::up, edgeuse::up, loopuse::up, vertexuse::v_p, vertex::vu_hd, and edgeuse::vu_p. Here is the call graph for this function: ![]() |
|
N M G _ F I N D _ E Find an edge between a given pair of vertices. If a given shell "s" is specified, then only edges in that shell will be considered, otherwise all edges in the model are fair game. If a particular edge "ep" is specified, then that edge will not be returned as a match. Returns - edgeuse* Edgeuse of an edge which matches the criteria NULL Unable to find matching edge Definition at line 912 of file nmg_info.c. References BU_LIST_FOR, bu_log(), DEBUG_BASIC, DEBUG_FINDEU, edgeuse::e_p, vertexuse::eu_p, edgeuse::eumate_p, loopuse::fu_p, edgeuse::lu_p, vertexuse::magic_p, edgeuse::magic_p, loopuse::magic_p, NMG_CK_SHELL, NMG_CK_VERTEX, NMG_CK_VERTEXUSE, NMG_EDGEUSE_MAGIC, NMG_FACEUSE_MAGIC, nmg_find_s_of_eu(), NMG_LOOPUSE_MAGIC, NULL, faceuse::orientation, OT_SAME, rt_bomb(), edgeuse::s_p, vertexuse::up, edgeuse::up, loopuse::up, vertexuse::v_p, vertex::vu_hd, and edgeuse::vu_p. Referenced by nmg_ebreaker(). Here is the call graph for this function: ![]() |
|
N M G _ F I N D _ E U _ O F _ V U Return a pointer to the edgeuse which is the parent of this vertexuse. A simple helper routine, which replaces the amazingly bad sequence of: nmg_find_eu_with_vu_in_lu( nmg_find_lu_of_vu(vu), vu ) that was being used in several places. Definition at line 987 of file nmg_info.c. References vertexuse::eu_p, vertexuse::magic_p, NMG_CK_VERTEXUSE, NMG_EDGEUSE_MAGIC, NULL, and vertexuse::up. Referenced by nmg_face_state_transition(). |
|
N M G _ F I N D _ E U _ W I T H _ V U _ I N _ L U Find an edgeuse starting at a given vertexuse within a loopuse. Definition at line 1001 of file nmg_info.c. References BU_LIST_FIRST_MAGIC, BU_LIST_FOR, loopuse::down_hd, NMG_CK_EDGEUSE, NMG_CK_LOOPUSE, NMG_CK_VERTEXUSE, NMG_EDGEUSE_MAGIC, NULL, rt_bomb(), and edgeuse::vu_p. Referenced by nmg_assess_vu(), and nmg_vu_angle_measure(). Here is the call graph for this function: ![]() |
|
N M G _ F A C E R A D I A L Looking radially around an edge, find another edge in the same face as the current edge. (this could be the mate to the current edge) Definition at line 1024 of file nmg_info.c. References edgeuse::eumate_p, faceuse::f_p, loopuse::fu_p, edgeuse::lu_p, edgeuse::magic_p, loopuse::magic_p, NMG_CK_EDGEUSE, NMG_CK_FACEUSE, NMG_CK_LOOPUSE, NMG_FACEUSE_MAGIC, NMG_LOOPUSE_MAGIC, edgeuse::radial_p, edgeuse::up, and loopuse::up. |
|
N M G _ R A D I A L _ F A C E _ E D G E _ I N _ S H E L L looking radially around an edge, find another edge which is a part of a face in the same shell Definition at line 1052 of file nmg_info.c. References edgeuse::eumate_p, loopuse::fu_p, edgeuse::lu_p, edgeuse::magic_p, loopuse::magic_p, NMG_CK_EDGEUSE, NMG_FACEUSE_MAGIC, nmg_find_s_of_eu(), NMG_LOOPUSE_MAGIC, edgeuse::radial_p, faceuse::s_p, edgeuse::up, and loopuse::up. Referenced by nmg_dangling_face(). Here is the call graph for this function: ![]() |
|
N M G _ F I N D _ E D G E _ B E T W E E N _ 2 F U Perform a topology search to determine if two faces (specified by their faceuses) share an edge in common. If so, return an edgeuse in fu1 of that edge. If there are multiple edgeuses in common, ensure that they all refer to the same edge_g_lseg geometry structure. The intersection of two planes (non-coplanar) must be a single line. Calling this routine when the two faces share face geometry and have more than one edge in common gives a NULL return, as there is no unique answer. NULL is also returned if no common edge could be found. Definition at line 1094 of file nmg_info.c. References BN_CK_TOL, BU_LIST_FIRST_MAGIC, BU_LIST_FOR, bu_log(), DEBUG_BASIC, loopuse::down_hd, edgeuse::e_p, edgeuse::eumate_p, faceuse::f_p, loopuse::fu_p, edgeuse::g, edgeuse::l, edgeuse::lseg_p, faceuse::lu_hd, edgeuse::lu_p, bu_list::magic, edgeuse::magic_p, loopuse::magic_p, nmg_2edgeuse_g_coincident(), NMG_CK_EDGEUSE, NMG_CK_FACEUSE, NMG_CK_LOOPUSE, NMG_FACEUSE_MAGIC, nmg_find_model(), nmg_jeg(), NMG_LOOPUSE_MAGIC, nmg_model_fuse(), nmg_pr_eg(), nmg_pr_eu_endpoints(), NMG_VERTEXUSE_MAGIC, NULL, edgeuse::radial_p, rt_bomb(), edgeuse::up, and loopuse::up. Here is the call graph for this function: ![]() |
|
|
|
Referenced by nmg_eu_radial_check(), nmg_pr_fu_around_eu(), nmg_radial_join_eu(), nmg_radial_join_eu_NEW(), nmg_s_radial_harmonize(), and nmg_vlblock_around_eu(). |
|
Referenced by nmg_check_radial_angles(), nmg_class_pt_euvu(), nmg_classify_lu_lu(), nmg_measure_fu_angle(), nmg_vlblock_euleft(), and pick_eu(). |
|
|
|
N M G _ F I N D _ O T _ S A M E _ E U _ O F _ E If there is an edgeuse of an OT_SAME faceuse on this edge, return it. Only return a wire edgeuse if that is all there is. Useful for selecting a "good" edgeuse to pass to nmg_eu_2vecs_perp(). Definition at line 1496 of file nmg_info.c. References edge::eu_p, edgeuse::eumate_p, NMG_CK_EDGE, nmg_find_fu_of_eu(), faceuse::orientation, OT_SAME, and edgeuse::radial_p. Referenced by nmg_radial_join_eu_NEW(), nmg_s_radial_check(), and nmg_s_radial_harmonize(). Here is the call graph for this function: ![]() |
|
N M G _ F I N D _ V _ I N _ F A C E Perform a topological search to determine if the given vertex is contained in the given faceuse. If it is, return a pointer to the vertexuse which was found in the faceuse. Returns NULL if not found. Definition at line 1532 of file nmg_info.c. References BU_LIST_FOR, vertexuse::eu_p, loopuse::fu_p, edgeuse::lu_p, vertexuse::lu_p, vertexuse::magic_p, edgeuse::magic_p, loopuse::magic_p, NMG_CK_VERTEX, NMG_CK_VERTEXUSE, NMG_EDGEUSE_MAGIC, NMG_FACEUSE_MAGIC, NMG_LOOPUSE_MAGIC, NULL, vertexuse::up, edgeuse::up, loopuse::up, and vertex::vu_hd. Referenced by nmg_is_vertex_on_inter(), nmg_isect_eu_fu(), and nmg_make_dualvu(). |
|
N M G _ F I N D _ V _ I N _ S H E L L Search shell "s" for a vertexuse that refers to vertex "v". For efficiency, the search is done on the uses of "v". If "edges_only" is set, only a vertexuse from an edgeuse will be returned, otherwise, vu's from self-loops and lone-shell-vu's are also candidates. Definition at line 1570 of file nmg_info.c. References BU_LIST_FOR, vertexuse::eu_p, vertexuse::lu_p, vertexuse::magic_p, NMG_CK_VERTEXUSE, NMG_EDGEUSE_MAGIC, nmg_find_s_of_eu(), nmg_find_s_of_lu(), NMG_LOOPUSE_MAGIC, NMG_SHELL_MAGIC, NULL, rt_bomb(), vertexuse::s_p, vertexuse::up, and vertex::vu_hd. Referenced by nmg_enlist_vu(), nmg_find_matching_eu_in_s(), and nmg_kill_non_common_cracks(). Here is the call graph for this function: ![]() |
|
Referenced by nmg_find_pt_in_face(), and nmg_find_pt_in_shell(). |
|
Referenced by nmg_find_pt_in_shell(). |
|
Referenced by nmg_break_crossed_loops(), nmg_find_pt_in_model(), and rt_pg_tess(). |
|
Referenced by nmg_isect_edge2p_edge2p(), nmg_isect_eu_eu(), nmg_isect_eu_fu(), and nmg_isect_line2_edge2p(). |
|
Referenced by nmg_is_vertex_in_looplist(), and nmg_rm_redundancies(). |
|
Referenced by nmg_is_vertex_in_facelist(), and nmg_rm_redundancies(). |
|
N M G _ I S _ V E R T E X _ I N _ F A C E Returns - vu One use of vertex 'v' in face 'f'. NULL If there are no uses of 'v' in 'f'. Definition at line 1858 of file nmg_info.c. References BU_LIST_FOR, vertexuse::eu_p, faceuse::f_p, loopuse::fu_p, edgeuse::lu_p, vertexuse::magic_p, loopuse::magic_p, NMG_CK_FACE, NMG_CK_VERTEX, NMG_EDGEUSE_MAGIC, NMG_FACEUSE_MAGIC, NMG_LOOPUSE_MAGIC, NULL, vertexuse::up, edgeuse::up, loopuse::up, and vertex::vu_hd. Referenced by nmg_is_common_bigloop(). |
|
N M G _ I S _ V E R T E X _ A _ S E L F L O O P _ I N _ S H E L L Check to see if a given vertex is used within a shell by a wire loopuse which is a loop of a single vertex. The search could either be by the shell lu_hd, or the vu_hd. Returns - 0 vertex is not part of that kind of loop in the shell. 1 vertex is part of a selfloop in the given shell. Definition at line 1893 of file nmg_info.c. References BU_LIST_FOR, vertexuse::lu_p, vertexuse::magic_p, loopuse::magic_p, NMG_CK_LOOPUSE, NMG_CK_SHELL, NMG_CK_VERTEX, NMG_CK_VERTEXUSE, NMG_LOOPUSE_MAGIC, NMG_SHELL_MAGIC, loopuse::s_p, vertexuse::up, loopuse::up, and vertex::vu_hd. Referenced by nmg_demote_eu(). |
|
Referenced by nmg_rm_redundancies(). |
|
N M G _ I S _ E D G E _ I N _ E D G E L I S T Returns - 1 If found 0 If not found Definition at line 1944 of file nmg_info.c. References BU_LIST_FOR, NMG_CK_EDGE, and NMG_CK_EDGEUSE. Referenced by nmg_is_edge_in_looplist(). |
|
N M G _ I S _ E D G E _ I N _ L O O P L I S T Returns - 1 If found 0 If not found Definition at line 1965 of file nmg_info.c. References BU_LIST_FIRST_MAGIC, BU_LIST_FOR, NMG_CK_EDGE, NMG_CK_LOOPUSE, NMG_EDGEUSE_MAGIC, nmg_is_edge_in_edgelist(), NMG_VERTEXUSE_MAGIC, and rt_bomb(). Referenced by nmg_is_edge_in_facelist(), and nmg_rm_redundancies(). Here is the call graph for this function: ![]() |
|
N M G _ I S _ E D G E _ I N _ F A C E L I S T Returns - 1 If found 0 If not found Definition at line 1995 of file nmg_info.c. References BU_LIST_FOR, NMG_CK_EDGE, NMG_CK_FACEUSE, and nmg_is_edge_in_looplist(). Referenced by nmg_rm_redundancies(). Here is the call graph for this function: ![]() |
|
N M G _ I S _ L O O P _ I N _ F A C E L I S T Returns - 1 If found 0 If not found Definition at line 2016 of file nmg_info.c. References BU_LIST_FOR, loopuse::l, loopuse::l_p, NMG_CK_FACEUSE, NMG_CK_LOOP, and NMG_CK_LOOPUSE. Referenced by nmg_rm_redundancies(). |
|
|
|
|
Referenced by nmg_break_all_es_on_v(), and nmg_find_zero_length_edges(). |
|
Referenced by Eplot(), nmg_break_edges(), nmg_check_radial_angles(), nmg_edge_collapse(), nmg_mark_edges_real(), nmg_model_edge_fuse(), nmg_s_radial_check(), and nmg_s_radial_harmonize(). |
|
Referenced by nmg_ck_geometry(), nmg_isect_line2_face2pNEW(), and nmg_model_edge_g_fuse(). |
|
Referenced by nmg_bot(), and nmg_model_face_fuse(). |
|
N M G _ E D G E U S E _ W I T H _ E G _ T A B U L A T E Build an bu_ptbl list which cites every edgeuse pointer that uses edge geometry "eg". Definition at line 2375 of file nmg_info.c. References BU_LIST_FOR, BU_LIST_MAIN_PTR, bu_ptbl_init(), bu_ptbl_ins_unique(), edge_g_lseg::eu_hd2, edgeuse::g, edgeuse::l2, edgeuse::lseg_p, NMG_CK_EDGE_G_EITHER, NMG_CK_EDGEUSE, NMG_CKMAG, NMG_EDGEUSE2_MAGIC, rt_bomb(), and void(). Referenced by nmg_break_eg_on_v(). Here is the call graph for this function: ![]() |
|
Referenced by nmg_find_eg_on_line(). |
|
Referenced by nmg_model_break_e_on_v(). |
|
N M G _ 2 E D G E U S E _ G _ C O I N C I D E N T Given two edgeuses, determine if they share the same edge geometry, either topologically, or within tolerance. Returns - 0 two edge geometries are not coincident 1 edges geometries are everywhere coincident. (For linear edge_g_lseg, the 2 are the same line, within tol.) Definition at line 2589 of file nmg_info.c. References bn_2line3_colinear(), BN_CK_TOL, bn_distsq_line3_pt3(), bu_log(), vertex_g::coord, bn_tol::dist_sq, edge_g_lseg::e_dir, edge_g_lseg::e_pt, edgeuse::eumate_p, edgeuse::g, edge_g_lseg::l, edgeuse::lseg_p, bu_list::magic, MAGNITUDE, NMG_CK_EDGE_G_LSEG, NMG_CK_EDGEUSE, nmg_pr_eg(), vertexuse::v_p, VDOT, vertex::vg_p, and edgeuse::vu_p. Referenced by nmg_find_edge_between_2fu(), nmg_find_eg_between_2fg(), and nmg_model_edge_g_fuse(). Here is the call graph for this function: ![]() |
|
Referenced by nmg_extrude_face(). |
|
|
|
N M G _ F I N D _ V E R T E X _ I N _ L U find a use of vertex v in loopuse lu Definition at line 291 of file nmg_extrude.c. References BU_LIST_FIRST, BU_LIST_FIRST_MAGIC, BU_LIST_FOR, loopuse::down_hd, NMG_CK_EDGEUSE, NMG_CK_LOOPUSE, NMG_CK_VERTEX, NMG_CK_VERTEXUSE, NMG_VERTEXUSE_MAGIC, NULL, and vertexuse::v_p. Referenced by nmg_classify_lu_lu(), nmg_fix_overlapping_loops(), and nmg_kill_anti_loops(). |
|
N M G _ F I X _ O V E R L A P P I N G _ L O O P S Looks at each faceuse in the shell and checks if loopuses in that faceuse overlap each other. This code can only handle faceuses that have at most one OT_SAME loopuse and one OT_OPPOSITE loopuse, so nmg_split_loops_into_faces is called to simplify the faceuses. Overlapping OT_SAME and OT_OPPOSITE loops are broken into some number of OT_SAME loopuses. An edgeuse (from the OT_SAME loopuse) departing from a point where the loops intersect and outside the OT_OPPOSITE loopuse is found as a starting point. Edgeuses from this loopuse are moved to a new loopuse until another intersect point is encountered. At that point, another loop is started using the next edgeuse and the current loopuse is continued by following the other loopuse. this is continued until the original edgeuse is encountered. If overlapping loops are found, new loopsuses are created and the original loopuses are killed Definition at line 452 of file nmg_extrude.c. References bn_isect_lseg3_lseg3(), bu_free(), BU_LIST_APPEND, BU_LIST_DEQUEUE, BU_LIST_FIRST, BU_LIST_FIRST_MAGIC, BU_LIST_FOR, BU_LIST_INSERT, BU_LIST_IS_HEAD, BU_LIST_PNEXT, bu_log(), BU_PTBL_END, bu_ptbl_free(), BU_PTBL_GET, bu_ptbl_init(), bu_ptbl_reset(), vertex_g::coord, DEBUG_BASIC, loopuse::down_hd, edgeuse::eumate_p, shell::fu_hd, shell::l, loopuse::l, faceuse::l, faceuse::lu_hd, loopuse::lumate_p, bu_list::magic, NMG_CK_EDGEUSE, NMG_CK_FACEUSE, NMG_CK_LOOPUSE, NMG_CK_SHELL, NMG_CK_VERTEX, NMG_CLASS_AinB, NMG_CLASS_AoutB, nmg_classify_pt_loop(), NMG_EDGEUSE_MAGIC, nmg_esplit(), nmg_find_vertex_in_lu(), nmg_kvu(), nmg_mlv(), nmg_orientation(), nmg_pr_fu_briefly(), nmg_split_loops_into_faces(), nmg_vertex_gv(), NULL, faceuse::orientation, loopuse::orientation, OT_OPPOSITE, OT_SAME, vertexuse::v_p, VBLEND2, vertex::vg_p, VJOIN1, VSUB2, and edgeuse::vu_p. Referenced by nmg_extrude_cleanup(). Here is the call graph for this function: ![]() |
|
N M G _ B R E A K _ C R O S S E D _ L O O P S Extrusion may create crossed loops within a face. This routine intersects each edge within a loop with every other edge in the loop Definition at line 753 of file nmg_extrude.c. References BN_CK_TOL, bn_isect_lseg3_lseg3(), BU_LIST_FIRST_MAGIC, BU_LIST_FOR, BU_LIST_NOT_HEAD, BU_LIST_PNEXT, vertex_g::coord, loopuse::down_hd, edgeuse::eumate_p, shell::fu_hd, faceuse::lu_hd, NMG_CK_FACEUSE, NMG_CK_LOOPUSE, NMG_CK_SHELL, NMG_EDGEUSE_MAGIC, nmg_esplit(), nmg_find_pt_in_shell(), nmg_vertex_gv(), NULL, faceuse::orientation, OT_SAME, vertexuse::v_p, vertex::vg_p, VJOIN1, VSUB2, and edgeuse::vu_p. Here is the call graph for this function: ![]() |
|
|
|
N M G _ E X T R U D E _ S H E L L Extrudes a shell (s) by a distance (dist) in the direction of the face normals if normal_ward, or the opposite direction if !normal_ward. The shell (s) is modified by adjusting the plane equations for each face and calculating new vertex geometry. if approximate is non-zero, new vertex geometry, for vertices where more than three faces intersect, will be approximated by a point with minimum distance from the intersecting faces. if approximate is zero, additional faces and/or edges may be added to the shell. returns: a pointer to the modified shell on success NULL on failure Definition at line 1265 of file nmg_extrude.c. References BN_CK_TOL, bu_calloc(), bu_free(), BU_LIST_FIRST, BU_LIST_FOR, bu_log(), BU_PTBL_END, BU_PTBL_GET, bu_ptbl_init(), bu_ptbl_ins(), bn_tol::dist, faceuse::f_p, flags, face::flip, face::g, shell::l, bu_ptbl::l, bu_list::magic, model::maxindex, face_g_plane::N, NEAR_ZERO, NMG_CK_FACE, NMG_CK_FACE_G_PLANE, NMG_CK_FACEUSE, NMG_CK_MODEL, NMG_CK_REGION, NMG_CK_SHELL, NMG_CK_VERTEX, nmg_decompose_shell(), nmg_find_model(), nmg_in_vert(), NMG_INDEX_TEST_AND_SET, nmg_ks(), nmg_mrsv(), nmg_mv_shell_to_region(), nmg_region_a(), nmg_shell_is_void(), nmg_vertex_tabulate(), face::plane_p, shell::r_p, s2, nmgregion::s_hd, V3ARGS, and void(). Here is the call graph for this function: ![]() |
|
N M G _ O R I E N T A T I O N Convert orientation code to string. Definition at line 65 of file nmg_pr.c. References OT_BOOLPLACE, OT_NONE, OT_OPPOSITE, OT_SAME, and OT_UNSPEC. Referenced by nmg_check_radial(), nmg_ck_lu_orientation(), nmg_class_pt_lu_except(), nmg_dup_face(), nmg_dup_loop(), nmg_edge_collapse(), nmg_face_rs_init(), nmg_face_state_transition(), nmg_faceuse_area(), nmg_fix_overlapping_loops(), nmg_is_crack_outie(), nmg_jl(), nmg_lu_reorient(), nmg_mlv(), nmg_pr_fu_briefly(), nmg_pr_lu_briefly(), nmg_pr_one_eu_vecs(), nmg_pr_radial(), and nmg_split_loops_handler(). |
|
N M G _ P R _ O R I E N T Print the orientation in a nice, english form Definition at line 88 of file nmg_pr.c. References bu_log(), OT_BOOLPLACE, OT_NONE, OT_OPPOSITE, OT_SAME, and OT_UNSPEC. Referenced by nmg_pr_eu(), nmg_pr_fu(), and nmg_pr_lu(). Here is the call graph for this function: ![]() |
|
N M G _ P R _ M Definition at line 104 of file nmg_pr.c. References BU_LIST_FOR, bu_log(), model::magic, model::maxindex, NMG_MODEL_MAGIC, nmg_pr_r(), NULL, and model::r_hd. Referenced by rt_nmg_print(). Here is the call graph for this function: ![]() |
|
N M G _ P R _ R Definition at line 142 of file nmg_pr.c. References bu_list::back, BU_LIST_FOR, bu_log(), bu_list::forw, nmgregion::l, nmgregion::m_p, bu_list::magic, MKPAD, nmg_pr_s(), NMG_REGION_MAGIC, nmgregion::ra_p, Return, and nmgregion::s_hd. Referenced by nmg_pr_m(). Here is the call graph for this function: ![]() |
|
N M G _ P R _ S A Definition at line 170 of file nmg_pr.c. References bu_log(), shell_a::magic, shell_a::max_pt, shell_a::min_pt, MKPAD, NMG_SHELL_A_MAGIC, Return, X, Y, and Z. Referenced by nmg_pr_s(). Here is the call graph for this function: ![]() |
|
N M G _ P R _ L G Definition at line 192 of file nmg_pr.c. References bu_log(), loop_g::max_pt, loop_g::min_pt, MKPAD, NMG_CK_LOOP_G, Return, X, Y, and Z. Referenced by nmg_pr_l(). Here is the call graph for this function: ![]() |
|
Referenced by nmg_2lu_identical(), and nmg_pr_f(). |
|
N M G _ P R _ S Definition at line 263 of file nmg_pr.c. References bu_list::back, BU_LIST_FOR, bu_log(), shell::eu_hd, bu_list::forw, shell::fu_hd, shell::l, shell::lu_hd, bu_list::magic, MKPAD, nmg_pr_eu(), nmg_pr_fu(), nmg_pr_lu(), nmg_pr_sa(), nmg_pr_vu(), NMG_SHELL_MAGIC, shell::r_p, Return, shell::sa_p, and shell::vu_p. Referenced by nmg_ml(), and nmg_pr_r(). Here is the call graph for this function: ![]() |
|
N M G _ P R _ S _ B R I E F L Y Definition at line 305 of file nmg_pr.c. References BU_LIST_FOR, bu_log(), shell::eu_hd, shell::fu_hd, shell::l, shell::lu_hd, bu_list::magic, MKPAD, nmg_pr_eu_briefly(), nmg_pr_fu_briefly(), nmg_pr_lu_briefly(), nmg_pr_vu_briefly(), NMG_SHELL_MAGIC, Return, and shell::vu_p. Referenced by nmg_booltree_evaluate(). Here is the call graph for this function: ![]() |
|
N M G _ P R _ F Definition at line 340 of file nmg_pr.c. References bu_log(), face::flip, face::fu_p, face::g, face::magic_p, face::max_pt, face::min_pt, MKPAD, NMG_CK_FACE, nmg_pr_fg(), face::plane_p, Return, X, Y, and Z. Referenced by nmg_pr_fu(). Here is the call graph for this function: ![]() |
|
N M G _ P R _ F U Definition at line 366 of file nmg_pr.c. References bu_list::back, BU_LIST_FOR, bu_log(), faceuse::f_p, bu_list::forw, faceuse::fumate_p, faceuse::l, faceuse::lu_hd, bu_list::magic, MKPAD, NMG_CK_FACEUSE, NMG_FACEUSE_MAGIC, nmg_pr_f(), nmg_pr_lu(), nmg_pr_orient(), faceuse::orientation, Return, and faceuse::s_p. Referenced by nmg_face_state_transition(), and nmg_pr_s(). Here is the call graph for this function: ![]() |
|
N M G _ P R _ F U _ B R I E F L Y Definition at line 400 of file nmg_pr.c. References BU_LIST_FOR, bu_log(), faceuse::f_p, face::flip, face::g, faceuse::lu_hd, face::magic_p, MKPAD, face_g_plane::N, NMG_CK_FACEUSE, NMG_FACE_G_PLANE_MAGIC, nmg_orientation(), nmg_pr_lu_briefly(), faceuse::orientation, face::plane_p, Return, and V4ARGS. Referenced by nmg_2lu_identical(), nmg_eu_radial_check(), nmg_fcut_face(), nmg_find_eu_leftvec(), nmg_fix_normals(), nmg_fix_overlapping_loops(), nmg_isect_two_generic_faces(), nmg_make_faces_at_vert(), nmg_model_face_fuse(), nmg_pr_s_briefly(), and nmg_propagate_normals(). Here is the call graph for this function: ![]() |
|
N M G _ P R _ L Definition at line 428 of file nmg_pr.c. References bu_log(), face::l, bu_list::magic, MKPAD, NMG_CK_LOOP, NMG_LOOP_MAGIC, nmg_pr_lg(), and Return. Referenced by nmg_pr_lu(). Here is the call graph for this function: ![]() |
|
N M G _ P R _ L U Definition at line 450 of file nmg_pr.c. References bu_list::back, BU_LIST_FIRST_MAGIC, BU_LIST_FOR, BU_LIST_PNEXT, bu_log(), loopuse::down_hd, bu_list::forw, loopuse::fu_p, loopuse::l, loopuse::l_p, loopuse::lumate_p, bu_list::magic, loopuse::magic_p, MKPAD, NMG_CK_LOOPUSE, NMG_EDGEUSE_MAGIC, NMG_FACEUSE_MAGIC, nmg_pr_eu(), nmg_pr_l(), nmg_pr_orient(), nmg_pr_vu(), NMG_SHELL_MAGIC, NMG_VERTEXUSE_MAGIC, loopuse::orientation, Return, loopuse::s_p, and loopuse::up. Referenced by nmg_ck_lueu(), nmg_face_state_transition(), nmg_pr_fu(), and nmg_pr_s(). Here is the call graph for this function: ![]() |
|
N M G _ P R _ L U _ B R I E F L Y Definition at line 504 of file nmg_pr.c. References BU_LIST_FIRST_MAGIC, BU_LIST_FOR, BU_LIST_PNEXT, bu_log(), loopuse::down_hd, loopuse::lumate_p, MKPAD, NMG_CK_LOOPUSE, NMG_EDGEUSE_MAGIC, nmg_orientation(), nmg_pr_eu_briefly(), nmg_pr_vu_briefly(), NMG_VERTEXUSE_MAGIC, loopuse::orientation, and Return. Referenced by nmg_face_state_transition(), nmg_find_zero_length_edges(), nmg_fu_touchingloops(), nmg_is_crack_outie(), nmg_kill_cracks(), nmg_loop_is_ccw(), nmg_loop_split_at_touching_jaunt(), nmg_pr_fu_briefly(), nmg_pr_s_briefly(), nmg_radial_mark_cracks(), and nmg_veu(). Here is the call graph for this function: ![]() |
|
Referenced by nmg_2edgeuse_g_coincident(), nmg_find_edge_between_2fu(), nmg_find_eg_between_2fg(), nmg_pr_eu(), nmg_repair_v_near_v(), and nmg_search_v_eg(). |
|
N M G _ P R _ E Definition at line 593 of file nmg_pr.c. References bu_log(), edge::eu_p, edge::magic, MKPAD, NMG_CK_EDGE, NMG_EDGE_MAGIC, and Return. Referenced by nmg_pr_eu(). Here is the call graph for this function: ![]() |
|
N M G _ P R _ E U Definition at line 612 of file nmg_pr.c. References bu_list::back, bu_log(), edgeuse::e_p, edgeuse::eumate_p, bu_list::forw, edgeuse::g, edgeuse::l, edgeuse::lu_p, edgeuse::magic_p, MKPAD, NMG_CK_EDGEUSE, NMG_LOOPUSE_MAGIC, nmg_pr_e(), nmg_pr_eg(), nmg_pr_orient(), nmg_pr_vu(), NMG_SHELL_MAGIC, edgeuse::orientation, edgeuse::radial_p, Return, edgeuse::s_p, edgeuse::up, and edgeuse::vu_p. Referenced by nmg_assess_eu(), nmg_ck_face_worthless_edges(), nmg_pr_lu(), nmg_pr_s(), and nmg_search_v_eg(). Here is the call graph for this function: ![]() |
|
N M G _ P R _ E U _ B R I E F L Y Definition at line 648 of file nmg_pr.c. References bu_log(), edgeuse::e_p, edgeuse::g, edgeuse::magic_p, MKPAD, NMG_CK_EDGEUSE, nmg_pr_vu_briefly(), Return, and edgeuse::vu_p. Referenced by nmg_face_rs_init(), nmg_find_eg_between_2fg(), nmg_k0eu(), nmg_pr_lu_briefly(), and nmg_pr_s_briefly(). Here is the call graph for this function: ![]() |
|
N M G _ P R _ E U _ E N D P O I N T S Definition at line 663 of file nmg_pr.c. References bu_log(), vertex_g::coord, edgeuse::eumate_p, MKPAD, NMG_CK_EDGEUSE, NMG_CK_VERTEX_G, Return, V3ARGS, vertexuse::v_p, vertex::vg_p, and edgeuse::vu_p. Referenced by nmg_face_state_transition(), nmg_find_edge_between_2fu(), and nmg_find_eg_between_2fg(). Here is the call graph for this function: ![]() |
|
N M G _ P R _ V G Definition at line 686 of file nmg_pr.c. References bu_log(), vertex_g::coord, vertex_g::magic, MKPAD, NMG_CK_VERTEX_G, NMG_VERTEX_G_MAGIC, Return, and V3ARGS. Referenced by nmg_pr_v(). Here is the call graph for this function: ![]() |
|
N M G _ P R _ V Definition at line 705 of file nmg_pr.c. References bu_list::back, bu_log(), bu_list::forw, vertex::magic, MKPAD, NMG_CK_VERTEX, nmg_pr_vg(), NMG_VERTEX_MAGIC, Return, vertex::vg_p, and vertex::vu_hd. Referenced by nmg_pr_vu(), and nmg_region_v_unique(). Here is the call graph for this function: ![]() |
|
N M G _ P R _ V U Definition at line 732 of file nmg_pr.c. References vertexuse::a, bu_list::back, bu_log(), vertexuse::cnurb_p, vertexuse::eu_p, bu_list::forw, vertexuse::l, vertexuse::lu_p, bu_list::magic, vertexuse::magic_p, MKPAD, vertexuse_a_plane::N, NMG_CK_VERTEXUSE, NMG_EDGEUSE_MAGIC, NMG_LOOPUSE_MAGIC, nmg_pr_v(), nmg_pr_vua(), NMG_SHELL_MAGIC, NMG_VERTEXUSE_A_CNURB_MAGIC, NMG_VERTEXUSE_A_PLANE_MAGIC, NMG_VERTEXUSE_MAGIC, vertexuse::plane_p, Return, vertexuse::s_p, vertexuse::up, V3ARGS, and vertexuse::v_p. Referenced by nmg_face_state_transition(), nmg_pr_eu(), nmg_pr_lu(), and nmg_pr_s(). Here is the call graph for this function: ![]() |
|
N M G _ P R _ V U _ B R I E F L Y Definition at line 772 of file nmg_pr.c. References bu_log(), vertex_g::coord, MKPAD, NMG_CK_VERTEX, NMG_CK_VERTEX_G, NMG_CK_VERTEXUSE, Return, V3ARGS, vertexuse::v_p, and vertex::vg_p. Referenced by nmg_assess_eu(), nmg_face_cutjoin(), nmg_face_rs_init(), nmg_face_state_transition(), nmg_pr_eu_briefly(), nmg_pr_lu_briefly(), and nmg_pr_s_briefly(). Here is the call graph for this function: ![]() |
|
Referenced by nmg_pr_vu(). |
|
N M G _ E U P R I N T Definition at line 824 of file nmg_pr.c. References bu_log(), vertex_g::coord, edgeuse::eumate_p, NMG_CK_EDGEUSE, NMG_CK_VERTEX, NMG_CK_VERTEX_G, NMG_CK_VERTEXUSE, vertexuse::v_p, vertex::vg_p, and edgeuse::vu_p. Referenced by nmg_radial_join_eu(), and nmg_radial_join_eu_NEW(). Here is the call graph for this function: ![]() |
|
N M G _ P R _ P T B L Print an bu_ptbl array for inspection. Definition at line 851 of file nmg_pr.c. References BU_CK_PTBL, bu_log(), BU_PTBL_BASEADDR, BU_PTBL_LASTADDR, and bu_ptbl::end. Referenced by nmg_ck_vu_ptbl(), and nmg_radial_join_eu_NEW(). Here is the call graph for this function: ![]() |
|
N M G _ P R _ P T B L _ V E R T _ L I S T Print a ptbl array as a vertex list. Definition at line 893 of file nmg_pr.c. References bu_log(), bu_ptbl::buffer, bu_ptbl::end, vertexuse::l, bu_list::magic, and NMG_VERTEXUSE_MAGIC. Here is the call graph for this function: ![]() |
|
Referenced by nmg_pr_fu_around_eu_vecs(). |
|
Referenced by nmg_do_radial_join(), nmg_eu_radial_check(), nmg_pr_fu_around_eu(), nmg_radial_implement_decisions(), nmg_radial_join_eu(), nmg_radial_join_eu_NEW(), and nmg_s_radial_harmonize(). |
|
N M G _ P R _ F U _ A R O U N D _ E U A debugging routine to print all the faceuses around a given edge, starting with the given edgeuse. The normal of the first face is considered to be "0 degrees", and the rest are measured from there. Definition at line 1035 of file nmg_pr.c. References BN_CK_TOL, bu_log(), edgeuse::eumate_p, edgeuse::g, edgeuse::magic_p, NMG_CK_EDGEUSE, NMG_EDGE_G_CNURB_MAGIC, nmg_eu_2vecs_perp(), nmg_pr_fu_around_eu_vecs(), vertexuse::v_p, VSET, and edgeuse::vu_p. Referenced by nmg_check_radial(), nmg_dangling_face(), and nmg_find_eg_between_2fg(). Here is the call graph for this function: ![]() |
|
N M G _ P L _ L U _ A R O U N D _ E U Plot all the loopuses around an edgeuse. Don't bother drawing the loopuse mates. Definition at line 1065 of file nmg_pr.c. References bu_calloc(), bu_free(), bu_log(), edgeuse::eumate_p, fp, edgeuse::lu_p, edgeuse::magic_p, NMG_CK_EDGEUSE, nmg_find_model(), NMG_LOOPUSE_MAGIC, nmg_pl_lu(), NULL, num, perror(), edgeuse::radial_p, and edgeuse::up. Referenced by nmg_find_eg_between_2fg(). Here is the call graph for this function: ![]() |
|
Referenced by nmg_find_eg_between_2fg(). |
|
N M G _ B O T Convert an NMG to a BOT solid Definition at line 11986 of file nmg_misc.c. References BN_CK_TOL, rt_bot_internal::bot_flags, bu_calloc(), bu_free(), BU_LIST_FIRST_MAGIC, BU_LIST_FOR, bu_log(), BU_PTBL_GET, BU_PTBL_LEN, loopuse::down_hd, rt_bot_internal::faces, face::fu_p, faceuse::fumate_p, shell::l, faceuse::lu_hd, bu_list::magic, rt_bot_internal::magic, rt_bot_internal::mode, NMG_CK_FACE, NMG_CK_SHELL, NMG_EDGEUSE_MAGIC, nmg_face_tabulate(), nmg_triangulate_shell(), nmg_vertex_tabulate(), NULL, rt_bot_internal::num_faces, rt_bot_internal::num_vertices, rt_bot_internal::orientation, faceuse::orientation, OT_SAME, RT_BOT_CCW, RT_BOT_INTERNAL_MAGIC, RT_BOT_SOLID, rt_bot_internal::vertices, and void(). Referenced by add_solid(), rt_ars_prep(), and wdb_facetize_cmd(). Here is the call graph for this function: ![]() |
|
Referenced by nmg_faces_can_be_intersected(), and nmg_simplify_shell_edges(). |
|
Referenced by rt_dist_line3_lseg3(). |
|
N M G _ S N U R B _ C A L C _ L U _ U V _ O R I E N T Definition at line 68 of file nmg_misc.c. References vertexuse::a, bu_calloc(), BU_LIST_FIRST_MAGIC, BU_LIST_FOR, edgeuse::cnurb_p, vertexuse::cnurb_p, loopuse::down_hd, faceuse::f_p, loopuse::fu_p, face::g, edgeuse::g, edge_g_cnurb::k, knot_vector::k_size, knot_vector::knots, loopuse::magic_p, face::magic_p, edgeuse::magic_p, vertexuse::magic_p, NMG_CK_EDGE_G_CNURB, NMG_CK_EDGEUSE, NMG_CK_FACE, NMG_CK_FACEUSE, NMG_CK_LOOPUSE, NMG_CK_VERTEXUSE, NMG_EDGE_G_CNURB_MAGIC, NMG_EDGEUSE_MAGIC, NMG_FACE_G_SNURB_MAGIC, NMG_FACEUSE_MAGIC, NMG_VERTEXUSE_A_CNURB_MAGIC, edge_g_cnurb::order, vertexuse_a_cnurb::param, edge_g_cnurb::pt_type, rt_bomb(), rt_nurb_c_eval(), RT_NURB_EXTRACT_COORDS, RT_NURB_IS_PT_RATIONAL, loopuse::up, VMOVE, VSCALE, VSETALLN, and edgeuse::vu_p. Here is the call graph for this function: ![]() |
|
Referenced by nmg_snurb_fu_to_vlist(). |
|
Referenced by nmg_snurb_fu_get_norm_at_vu(), and nmg_snurb_fu_to_vlist(). |
|
Referenced by nmg_find_top_face_in_dir(). |
|
Definition at line 277 of file nmg_misc.c. References bu_log(), BU_PTBL_END, BU_PTBL_GET, bu_ptbl_init(), edgeuse::eumate_p, edgeuse::lu_p, model::magic, edgeuse::magic_p, NMG_CK_EDGEUSE, nmg_edgeuse_tabulate(), NMG_LOOPUSE_MAGIC, nmg_pr_lu_briefly(), edgeuse::up, vertexuse::v_p, and edgeuse::vu_p. Here is the call graph for this function: ![]() |
|
Referenced by nmg_find_top_face(). |
|
Referenced by nmg_fix_decomposed_shell_normals(), and nmg_shell_is_void(). |
|
N M G _ F I N D _ O U T E R _ A N D _ V O I D _ S H E L L S This routine takes a region and constructs an array of bu_ptbl lists. A list is created for each outer shell, and that shell is the first item on the list. Additional shells on any list are void shells within that lists outer shell. This routine calls "nmg_decompose_shell" for every shell in the region, so the original region topology may be changed to accomplish this. No geometry is altered. Definition at line 870 of file nmg_misc.c. References BN_CK_TOL, BU_LIST_FOR, bu_malloc(), BU_PTBL_END, BU_PTBL_GET, bu_ptbl_init(), bu_ptbl_ins(), NMG_CK_REGION, NMG_CK_SHELL, nmg_decompose_shell(), and nmgregion::s_hd. Here is the call graph for this function: ![]() |
|
|
|
N M G _ T A B U L A T E _ F A C E _ G _ V E R T S Tabulates all vertices in faces that use fg Definition at line 994 of file nmg_misc.c. References BU_LIST_FIRST, BU_LIST_FIRST_MAGIC, BU_LIST_FOR, bu_ptbl_init(), bu_ptbl_ins_unique(), loopuse::down_hd, face_g_plane::f_hd, face::fu_p, faceuse::lu_hd, NMG_CK_EDGEUSE, NMG_CK_FACE, NMG_CK_FACE_G_PLANE, NMG_CK_FACEUSE, NMG_CK_LOOPUSE, NMG_CK_VERTEX, NMG_CK_VERTEXUSE, NMG_VERTEXUSE_MAGIC, vertexuse::v_p, and edgeuse::vu_p. Referenced by nmg_calc_face_plane(). Here is the call graph for this function: ![]() |
|
N M G _ I S E C T _ S H E L L _ S E L F Intersects all faces in a shell with all other faces in the same shell Intended for use after extrusion Definition at line 1064 of file nmg_misc.c. References BN_CK_TOL, BU_LIST_FOR, bu_log(), BU_PTBL_END, BU_PTBL_GET, bu_ptbl_init(), bu_ptbl_ins(), DEBUG_BASIC, faceuse::f_p, shell::fu_hd, shell::l, bu_list::magic, face::max_pt, face::min_pt, NMG_CK_FACEUSE, NMG_CK_MODEL, NMG_CK_REGION, NMG_CK_SHELL, nmg_faces_are_radial(), nmg_find_model(), nmg_isect_two_generic_faces(), nmg_msv(), nmg_mv_fu_between_shells(), nmg_vmodel(), faceuse::orientation, OT_SAME, shell::r_p, and V3RPP_OVERLAP. Referenced by nmg_extrude_cleanup(). Here is the call graph for this function: ![]() |
|
N M G _ N E X T _ R A D I A L _ E D G E U S E Traverse radial edgeuse around specified edgeuse looking for one that meets optional restrictions. If a shell is specified only edgeuse from that shell will be considered. If wires is non-zero, wire edges will be considered, otherwise, wire edges are ignored. returns: radial edgeuse Definition at line 1172 of file nmg_misc.c. References edgeuse::eumate_p, NMG_CK_EDGEUSE, NMG_CK_SHELL, nmg_find_fu_of_eu(), nmg_find_s_of_eu(), NULL, edgeuse::radial_p, and rt_bomb(). Referenced by nmg_check_closed_shell(), and nmg_decompose_shell(). Here is the call graph for this function: ![]() |
|
N M G _ P R E V _ R A D I A L _ E D G E U S E Traverse radial edgeuse around specified edgeuse in opposite direction from nmg_next_radial_eu, looking for one that meets optional restrictions. If a shell is specified only edgeuse from that shell will be considered. If wires is non-zero, wire edges will be considered, otherwise, wire edges are ignored. returns: radial edgeuse Definition at line 1212 of file nmg_misc.c. References edgeuse::eumate_p, NMG_CK_EDGEUSE, NMG_CK_SHELL, nmg_find_fu_of_eu(), nmg_find_s_of_eu(), NULL, edgeuse::radial_p, and rt_bomb(). Here is the call graph for this function: ![]() |
|
N M G _ R A D I A L _ F A C E _ C O U N T Counts the number of faces (actually, the number of radial edgeuse/mate pairs) around eu. If s is specified, only edgeuses in shell s are counted. Wire edgeuses are not counted. returns: number of edgeuse/mate pairs radiall around eu that meet restrictions Definition at line 1244 of file nmg_misc.c. References edgeuse::eumate_p, NMG_CK_EDGEUSE, NMG_CK_SHELL, nmg_find_fu_of_eu(), nmg_find_s_of_eu(), NULL, and edgeuse::radial_p. Referenced by nmg_decompose_shell(). Here is the call graph for this function: ![]() |
|
N M G _ C H E C K _ C L O S E D _ S H E L L Looks at every eu in OT_SAME fu's. If any eu has no radials, then it must be the edge of a dangling face and therfore the edge of an opening. returns: 0 - O.K. 1 - found a hole Definition at line 1278 of file nmg_misc.c. References BN_CK_TOL, BU_LIST_FIRST_MAGIC, BU_LIST_FOR, loopuse::down_hd, edgeuse::eumate_p, shell::fu_hd, faceuse::lu_hd, NMG_CK_FACEUSE, NMG_CK_LOOPUSE, NMG_CK_SHELL, NMG_EDGEUSE_MAGIC, nmg_next_radial_eu(), faceuse::orientation, and OT_SAME. Referenced by nmg_hollow_shell(), nmg_open_shells_connect(), and nmg_to_poly(). Here is the call graph for this function: ![]() |
|
N M G _ M O V E _ L U _ B E T W E E N _ F U S Moves lu from src faceuse to dest faceuse returns: 0 - All is well 1 - src faceuse is now empty Definition at line 1326 of file nmg_misc.c. References BU_LIST_DEQUEUE, BU_LIST_INSERT, BU_LIST_IS_EMPTY, bu_log(), DEBUG_BASIC, loopuse::fu_p, faceuse::fumate_p, loopuse::l, faceuse::lu_hd, loopuse::lumate_p, NMG_CK_FACEUSE, NMG_CK_LOOPUSE, rt_bomb(), and loopuse::up. Referenced by nmg_split_loops_handler(). Here is the call graph for this function: ![]() |
|
Referenced by nmg_calc_face_plane(), nmg_ck_lu_orientation(), and nmg_lu_reorient(). |
|
Referenced by nmg_bad_face_normals(), nmg_faceuse_area(), and nmg_loop_is_ccw(). |
|
Referenced by nmg_calc_face_g(), and nmg_make_faces_within_tol(). |
|
N M G _ C A L C _ F A C E _ G interface to nmg_calc_face_plane(), calls nmg_face_g with the resulting plane Definition at line 1819 of file nmg_misc.c. References nmg_calc_face_plane(), and nmg_face_g(). Referenced by nmg_extrude_face(), nmg_make_faces_at_vert(), tesselate_pipe_end(), and tesselate_pipe_linear(). Here is the call graph for this function: ![]() |
|
N M G _ F A C E U S E _ A R E A The following routines calculate surface area of NMG objects. Note that this includes all surfaces, not just external surfaces, i.e., an NMG object consisting of two adjacent cubes with a coincident face will have a surface area of 12*s*s (s is length of one side) Definition at line 1843 of file nmg_misc.c. References BU_LIST_FIRST_MAGIC, BU_LIST_FOR, bu_log(), loopuse::down_hd, faceuse::lu_hd, NMG_CK_FACEUSE, NMG_EDGEUSE_MAGIC, nmg_loop_plane_area(), nmg_orientation(), loopuse::orientation, OT_OPPOSITE, and OT_SAME. Referenced by nmg_shell_area(). Here is the call graph for this function: ![]() |
|
Definition at line 1877 of file nmg_misc.c. References BU_LIST_FOR, shell::fu_hd, NMG_CK_SHELL, nmg_faceuse_area(), faceuse::orientation, and OT_SAME. Referenced by nmg_region_area(). Here is the call graph for this function: ![]() |
|
Definition at line 1901 of file nmg_misc.c. References BU_LIST_FOR, NMG_CK_REGION, nmg_shell_area(), and nmgregion::s_hd. Referenced by nmg_model_area(). Here is the call graph for this function: ![]() |
|
Definition at line 1915 of file nmg_misc.c. References BU_LIST_FOR, NMG_CK_MODEL, nmg_region_area(), and model::r_hd. Here is the call graph for this function: ![]() |
|
N M G _ P U R G E _ U N W A N T E D _ I N T E R S E C T I O N _ P O I N T S Make sure that the list of intersection points doesn't contain any vertexuses from loops whose bounding boxes don;t overlap the bounding box of a loop in the given faceuse. This is really a special purpose routine to help the intersection operations of the boolean process. The only reason it's here instead of nmg_inter.c is that it knows too much about the format and contents of an bu_ptbl structure. Definition at line 2105 of file nmg_misc.c. References BN_CK_TOL, bu_log(), bu_ptbl::buffer, DEBUG_POLYSECT, bu_ptbl::end, vertexuse::l, bu_list::magic, NMG_CK_FACEUSE, NMG_VERTEXUSE_MAGIC, and NULL. Here is the call graph for this function: ![]() |
|
N M G _ I N _ O R _ R E F if the given vertexuse "vu" is in the table given by "b" or if "vu" references a vertex which is refernced by a vertexuse in the table, then we return 1. Otherwise, we return 0. Definition at line 2249 of file nmg_misc.c. References bu_ptbl::buffer, bu_ptbl::end, vertexuse::magic_p, NMG_VERTEXUSE_MAGIC, and vertexuse::v_p. |
|
N M G _ R E B O U N D Re-compute all the bounding boxes in the NMG model. Bounding boxes are presently found in these structures: loop_g face_g shell_a nmgregion_a The re-bounding must be performed in a bottom-up manner, computing the loops first, and working up to the nmgregions. Definition at line 2279 of file nmg_misc.c. References BN_CK_TOL, bu_calloc(), bu_free(), BU_LIST_FOR, faceuse::f_p, shell::fu_hd, loopuse::l_p, faceuse::lu_hd, shell::lu_hd, model::maxindex, NMG_CK_FACE, NMG_CK_FACEUSE, NMG_CK_LOOP, NMG_CK_LOOPUSE, NMG_CK_MODEL, NMG_CK_REGION, NMG_CK_SHELL, nmg_face_bb(), NMG_INDEX_FIRST_TIME, nmg_loop_g(), nmg_region_a(), nmg_shell_a(), model::r_hd, and nmgregion::s_hd. Referenced by nmg_extrude_cleanup(), nmg_fix_normals(), nmg_merge_regions(), rt_pipe_tess(), stash_shell(), and wdb_shells_cmd(). Here is the call graph for this function: ![]() |
|
|
|
N M G _ C L O S E _ S H E L L Examines the passed shell and, if there are holes, closes them note that not much care is taken as to how the holes are closed so the results are not entirely predictable. A list of free edges is created (edges bounding only one face). New faces are constructed by taking two consecutive edges and making a face. The newly created edge is added to the list of free edges and the two used ones are removed. Definition at line 2473 of file nmg_misc.c. References BN_CK_TOL, bn_mk_plane_3pts(), BU_LIST_FIRST_MAGIC, BU_LIST_FOR, bu_log(), BU_PTBL_END, bu_ptbl_free(), BU_PTBL_GET, bu_ptbl_init(), bu_ptbl_ins(), vertex_g::coord, DEBUG_BASIC, edgeuse::eumate_p, shell::fu_hd, faceuse::lu_hd, NMG_CK_EDGEUSE, NMG_CK_FACEUSE, NMG_CK_LOOPUSE, NMG_CK_SHELL, NMG_VERTEXUSE_MAGIC, NULL, faceuse::orientation, OT_SAME, edgeuse::radial_p, V3ARGS, vertexuse::v_p, vertex::vg_p, VMOVE, void(), and edgeuse::vu_p. Referenced by nmg_hollow_shell(). Here is the call graph for this function: ![]() |
|
Referenced by nmg_fix_normals(), nmg_hollow_shell(), and wdb_shells_cmd(). |
|
Definition at line 3178 of file nmg_misc.c. References BU_PTBL_END, BU_PTBL_GET, bu_ptbl_rm(), NULL, and stack. Referenced by nmg_decompose_shell(), and nmg_propagate_normals(). Here is the call graph for this function: ![]() |
|
Definition at line 3196 of file nmg_misc.c. References BN_CK_TOL, BU_LIST_FIRST_MAGIC, BU_LIST_FOR, bu_log(), DEBUG_BASIC, loopuse::down_hd, edgeuse::eumate_p, faceuse::lu_hd, NMG_CK_FACEUSE, NMG_CK_LOOPUSE, NMG_EDGEUSE_MAGIC, and edgeuse::radial_p. Referenced by nmg_propagate_normals(). Here is the call graph for this function: ![]() |
|
N M G _ R E V E R S E _ F A C E _ A N D _ R A D I A L S This routine calls "nmg_reverse_face" and also makes the radial pointers connect faces of like orientation (i.e., OT_SAME to OT_SAME and OT_OPPOSITE to OT_OPPOSITE). Definition at line 3250 of file nmg_misc.c. References BN_CK_TOL, BU_LIST_FIRST_MAGIC, BU_LIST_FOR, bu_log(), DEBUG_BASIC, loopuse::down_hd, edgeuse::eumate_p, faceuse::lu_hd, NMG_CK_FACEUSE, NMG_CK_LOOPUSE, NMG_EDGEUSE_MAGIC, nmg_reverse_face(), and edgeuse::radial_p. Referenced by nmg_fix_decomposed_shell_normals(), nmg_fix_normals(), and nmg_propagate_normals(). Here is the call graph for this function: ![]() |
|
N M G _ S H E L L _ I S _ V O I D determines if the shell is a void shell or an exterior shell by finding the topmost face (in some direction) and looking at the component of the OT_SAME faceuse normal in that direction. returns: 0 - shell is exterior shell 1 - shell is a void shell -1 - cannot determine It is expected that this shell is the result of nmg_decompose_shells. Definition at line 3312 of file nmg_misc.c. References bu_calloc(), bu_free(), face::fu_p, faceuse::fumate_p, face::g, shell::l, bu_list::magic, model::maxindex, NMG_CK_FACE, NMG_CK_FACE_G_PLANE, NMG_CK_FACEUSE, NMG_CK_MODEL, NMG_CK_SHELL, nmg_find_model(), nmg_find_top_face(), NMG_GET_FU_NORMAL, NULL, faceuse::orientation, OT_SAME, and face::plane_p. Referenced by nmg_extrude_cleanup(), nmg_extrude_shell(), and nmg_hollow_shell(). Here is the call graph for this function: ![]() |
|
Referenced by nmg_fix_decomposed_shell_normals(). |
|
N M G _ C O N N E C T _ S A M E _ F U _ O R I E N T S looks for radially connected faceuses that have disagreeing orientations. if such a condiftion is found, the radial pointers are rearranged to make the radial faces agree in orientation. Definition at line 3621 of file nmg_misc.c. References BU_LIST_FIRST_MAGIC, BU_LIST_FOR, loopuse::down_hd, edgeuse::eumate_p, shell::fu_hd, faceuse::lu_hd, NMG_EDGEUSE_MAGIC, nmg_find_fu_of_eu(), faceuse::orientation, OT_OPPOSITE, OT_SAME, and edgeuse::radial_p. Referenced by nmg_fix_normals(). Here is the call graph for this function: ![]() |
|
N M G _ F I X _ D E C O M P O S E D_ S H E L L _ N O R M A L S Routine to set all OT_SAME faceuse normals to outward direction. Assumes that there are no other shells sharing edges with this one. Definition at line 3669 of file nmg_misc.c. References BN_CK_TOL, bu_calloc(), bu_free(), BU_LIST_FOR, bu_log(), DEBUG_BASIC, faceuse::f_p, shell::fu_hd, face::fu_p, faceuse::fumate_p, face::g, nmgregion::m_p, face::magic_p, model::maxindex, NMG_CK_FACE, NMG_CK_FACEUSE, NMG_CK_SHELL, NMG_FACE_G_PLANE_MAGIC, nmg_find_top_face(), NMG_GET_FU_NORMAL, NMG_INDEX_SET, NMG_INDEX_TEST, nmg_propagate_normals(), nmg_reverse_face_and_radials(), NULL, faceuse::orientation, OT_SAME, shell::r_p, rt_bomb(), and V3ARGS. Referenced by nmg_fix_normals(). Here is the call graph for this function: ![]() |
|
N M G _ M K _ M O D E L _ F R O M _ R E G I O N Creates a new model from an existing nmgregion. Will refuse to create new model if the passed nmgregion has children with uses in another nmgregion. The reindex flag indicates if the new model should be reindexed. If non-zero, nmg_m_reindex() is called. If zero, the maxindex field of the new model is filled by finding the largest index value in the new model and adding one. This is useful if the indices in the region are being used for table look-up. Definition at line 3790 of file nmg_misc.c. References BU_LIST_FOR, bu_log(), BU_PTBL_END, BU_PTBL_GET, vertex_g::coord, nmgregion::l, bu_list::magic, NMG_CK_REGION, NMG_CK_VERTEX, nmg_find_s_of_vu(), nmg_vertex_tabulate(), V3ARGS, vertex::vg_p, and vertex::vu_hd. Referenced by nmg_fix_normals(). Here is the call graph for this function: ![]() |
|
|
N M G _ B R E A K _ L O N G _ E D G E S This codes looks for situations as illustrated: *------->*-------->*--------->* *<----------------------------* where one long edgeuse (the bottom one above) and two or more shorter edgeusess (the tops ones) are collinear and have the same start and end vertices. The code breaks the longer edgeuse into ones that can be radials of the shorter ones. Returns the number of splits performed. Definition at line 4074 of file nmg_misc.c. References bn_3pts_collinear(), BN_CK_TOL, BU_LIST_FIRST_MAGIC, BU_LIST_FOR, bu_log(), vertex_g::coord, DEBUG_BASIC, loopuse::down_hd, vertexuse::eu_p, edgeuse::eumate_p, shell::fu_hd, faceuse::lu_hd, vertexuse::magic_p, MAGSQ, NMG_CK_EDGEUSE, NMG_CK_FACEUSE, NMG_CK_LOOPUSE, NMG_CK_SHELL, NMG_CK_VERTEXUSE, nmg_ebreak(), NMG_EDGEUSE_MAGIC, vertexuse::up, V3ARGS, vertexuse::v_p, VDOT, vertex::vg_p, void(), VSUB2, vertex::vu_hd, and edgeuse::vu_p. Referenced by nmg_assess_vu(). Here is the call graph for this function: ![]() |
|
N M G _ M K _ N E W _ F A C E _ F R O M _ L O O P Remove a loopuse from an existing face and construct a new face from that loop Returns new faceuse as built by nmg_mf() Definition at line 4181 of file nmg_misc.c. References BU_LIST_DEQUEUE, BU_LIST_FOR, BU_LIST_INSERT, bu_log(), DEBUG_BASIC, loopuse::fu_p, loopuse::l, faceuse::lu_hd, shell::lu_hd, loopuse::lumate_p, loopuse::magic_p, NMG_CK_FACEUSE, NMG_CK_LOOPUSE, NMG_CK_SHELL, NMG_FACEUSE_MAGIC, nmg_mf(), NULL, loopuse::orientation, OT_SAME, faceuse::s_p, loopuse::s_p, and loopuse::up. Referenced by nmg_make_faces_at_vert(), and nmg_split_loops_handler(). Here is the call graph for this function: ![]() |
|
Referenced by nmg_decompose_shell(), nmg_edge_collapse(), nmg_fix_overlapping_loops(), and nmg_make_faces_within_tol(). |
|
|
N M G _ S T A S H _ M O D E L _ T O _ F I L E Store an NMG model as a separate .g file, for later examination. Don't free the model, as the caller may still have uses for it. NON-PARALLEL because of rt_uniresource. Definition at line 4954 of file nmg_misc.c. References BU_CK_EXTERNAL, bu_free_external(), BU_INIT_EXTERNAL, bu_log(), DB5_MAJORTYPE_BRLCAD, db_flags_internal(), db_wrap_v4_external(), fp, ID_NMG, rt_db_internal::idb_major_type, rt_db_internal::idb_meth, rt_db_internal::idb_ptr, name, NMG_CK_MODEL, nmg_vmodel(), NULL, perror(), rt_db_cvt_to_external5(), RT_INIT_DB_INTERNAL, rt_uniresource, wdb_close(), wdb_export_external(), and wdb_fopen(). Referenced by nmg_check_radial(), nmg_eu_radial_check(), nmg_face_state_transition(), nmg_triangulate_fu(), and stash_shell(). Here is the call graph for this function: ![]() |
|
Referenced by nmg_crackshells(), nmg_triangulate_model(), and wdb_nmg_simplify_cmd(). |
|
N M G _ M V _ S H E L L _ T O _ R E G I O N Move a shell from one nmgregion to another. Will bomb if shell and region aren't in the same model. returns: 0 - all is well 1 - nmgregion that gave up the shell is now empty!!!! Definition at line 5224 of file nmg_misc.c. References BU_LIST_APPEND, BU_LIST_DEQUEUE, BU_LIST_IS_EMPTY, bu_log(), DEBUG_BASIC, shell::l, nmgregion::l, bu_list::magic, NMG_CK_REGION, NMG_CK_SHELL, nmg_find_model(), shell::r_p, rt_bomb(), and nmgregion::s_hd. Referenced by nmg_extrude_cleanup(), nmg_extrude_shell(), nmg_fix_normals(), and nmg_hollow_shell(). Here is the call graph for this function: ![]() |
|
N M G _ F I N D _ I S E C T _ F A C E S Find all faces that contain vertex "new_v" Put them in a bu_ptbl "faces" returns: the number of faces that contain the vertex and fills in the table with the faces. Counts edges at this vertex where radial is mate (free_edges) Definition at line 5268 of file nmg_misc.c. References BN_CK_TOL, bn_coplanar(), BU_CK_PTBL, BU_LIST_FOR, BU_LIST_PPREV_CIRC, bu_log(), BU_PTBL_END, BU_PTBL_GET, bu_ptbl_ins(), DEBUG_BASIC, vertexuse::eu_p, edgeuse::eumate_p, faceuse::f_p, fp, face::g, vertexuse::magic_p, face_g_plane::N, NMG_CK_FACEUSE, NMG_CK_VERTEX, NMG_CK_VERTEXUSE, NMG_EDGEUSE_MAGIC, nmg_find_fu_of_vu(), faceuse::orientation, OT_SAME, face::plane_p, edgeuse::radial_p, vertexuse::up, and vertex::vu_hd. Referenced by nmg_in_vert(), and nmg_move_edge_thru_pt(). Here is the call graph for this function: ![]() |
|
N M G _ S I M P L E _ V E R T E X _ S O L V E given a vertex and a list of faces (not more than three) that should intersect at the vertex, calculate a new location for the vertex. returns: 0 - if everything is OK 1 - failure and modifies the geometry of the vertex to the new location Definition at line 5346 of file nmg_misc.c. References bu_log(), BU_PTBL_END, BU_PTBL_GET, DEBUG_BASIC, face::fu_p, faceuse::fumate_p, NMG_GET_FU_PLANE, faceuse::orientation, OT_SAME, and V4ARGS. Referenced by nmg_in_vert(), and nmg_move_edge_thru_pt(). Here is the call graph for this function: ![]() |
|
N M G _ C K _ V E R T _ O N _ F U S Check all uses of a vertex to see if it lies within tolerance of all faces where it is used returns: 0 - All is well 1 - vertex is off face plane by at least tol->dist for at least one face Definition at line 5475 of file nmg_misc.c. References BN_CK_TOL, BU_LIST_FOR, bu_log(), vertex_g::coord, bn_tol::dist, DIST_PT_PLANE, faceuse::f_p, face::g, face_g_plane::N, NMG_CK_FACE, NMG_CK_FACE_G_PLANE, NMG_CK_FACEUSE, NMG_CK_VERTEX, NMG_CK_VERTEX_G, nmg_find_fu_of_vu(), face::plane_p, V3ARGS, vertex::vg_p, and vertex::vu_hd. Here is the call graph for this function: ![]() |
|
N M G _ M A K E _ F A C E S _ A T _ V E R T Make new faces around vertex new_v using info in the table of intersect_fu structures. Each structure contains a vertex on an edge departing new_v. Vertices from two consecutive edges are combined with new_v to form triangular faces around new_v Definition at line 6542 of file nmg_misc.c. References bn_3pts_collinear(), BN_CK_TOL, BU_CK_PTBL, BU_LIST_FOR, bu_log(), BU_PTBL_END, BU_PTBL_GET, vertex_g::coord, loopuse::down_hd, intersect_fus::eu, vertexuse::eu_p, faceuse::f_p, intersect_fus::free_edge, intersect_fus::fu, loopuse::fu_p, edgeuse::lu_p, loopuse::lumate_p, nmg_calc_face_g(), NMG_CK_EDGEUSE, NMG_CK_FACEUSE, NMG_CK_VERTEX, nmg_cut_loop(), nmg_face_bb(), nmg_jv(), nmg_mk_new_face_from_loop(), nmg_pr_fu_briefly(), NULL, loopuse::orientation, OT_SAME, rt_bomb(), edgeuse::up, vertexuse::up, loopuse::up, V3ARGS, vertexuse::v_p, VCOMB2, vertex::vg_p, VMOVE, and intersect_fus::vp. Here is the call graph for this function: ![]() |
|
N M G _ K I L L _ C R A C K S _ A T _ V E R T E X Look at all faces around vertex new_v and kill any two consecutive eu's that go from a vertex to a second then back to the original vertex Definition at line 6777 of file nmg_misc.c. References BU_LIST_FIRST, BU_LIST_FIRST_MAGIC, BU_LIST_FOR, BU_LIST_NEXT, BU_LIST_NOT_HEAD, BU_LIST_PPREV_CIRC, bu_log(), BU_PTBL_END, BU_PTBL_GET, bu_ptbl_init(), bu_ptbl_ins_unique(), loopuse::down_hd, EDGESADJ, loopuse::l, edgeuse::l, faceuse::lu_hd, NMG_CK_EDGEUSE, NMG_CK_FACEUSE, NMG_CK_LOOPUSE, NMG_CK_VERTEX, NMG_CK_VERTEXUSE, NMG_EDGEUSE_MAGIC, nmg_find_fu_of_vu(), nmg_keu(), nmg_kfu(), nmg_klu(), and vertex::vu_hd. Here is the call graph for this function: ![]() |
|
N M G _ C O M P L E X _ V E R T E X _ S O L V E This is intended to handle the cases the "nmg_simple_vertex_solve" can't do (more than three faces intersecting at a vertex) This routine may create new edges and/or faces and Modifies the location of "new_v" if approximate is non-zero, the new geomatry is approximated by calculating the point with minimum distance to all the intersecting faces returns: 0 - if everything is OK 1 - failure Definition at line 7388 of file nmg_misc.c. References BN_CK_TOL, bu_calloc(), BU_CK_PTBL, bu_log(), BU_PTBL_END, BU_PTBL_GET, vertex_g::coord, face::fu_p, NMG_CK_VERTEX, NMG_GET_FU_PLANE, V4ARGS, VDOT, and vertex::vg_p. Referenced by nmg_in_vert(). Here is the call graph for this function: ![]() |
|
N M G _ B A D _ F A C E _ N O R M A L S Look for faceuses in the shell with normals that do not agree with the geometry (i.e., in the wrong direction) return: 1 - at least one faceuse with a bad normal was found 0 - no faceuses with bad normals were found Definition at line 7577 of file nmg_misc.c. References BN_CK_TOL, BU_LIST_FOR, shell::fu_hd, faceuse::lu_hd, NMG_CK_FACEUSE, NMG_CK_LOOPUSE, NMG_CK_SHELL, NMG_GET_FU_NORMAL, nmg_loop_plane_area(), faceuse::orientation, loopuse::orientation, OT_OPPOSITE, OT_SAME, VDOT, and VREVERSE. Referenced by nmg_extrude_cleanup(). Here is the call graph for this function: ![]() |
|
N M G _ F A C E S _ A R E _ R A D I A L checks if two faceuses are radial to each other returns 1 - the two faceuses are radial to each other 0 - otherwise Definition at line 7635 of file nmg_misc.c. References BU_LIST_FIRST_MAGIC, BU_LIST_FOR, loopuse::down_hd, edgeuse::eumate_p, faceuse::fumate_p, faceuse::lu_hd, NMG_CK_FACEUSE, NMG_EDGEUSE_MAGIC, nmg_find_fu_of_eu(), and edgeuse::radial_p. Referenced by nmg_isect_shell_self(), and nmg_to_arb(). Here is the call graph for this function: ![]() |
|
|
|
N M G _ V L I S T _ T O _ W I R E _ E D G E S Convert a vlist to NMG wire edges Definition at line 8046 of file nmg_misc.c. References BN_VLIST_LINE_DRAW, BN_VLIST_LINE_MOVE, BN_VLIST_POLY_DRAW, BN_VLIST_POLY_END, BN_VLIST_POLY_MOVE, BN_VLIST_POLY_START, BU_LIST_FIRST, BU_LIST_FOR, bn_vlist::cmd, edgeuse::eumate_p, NMG_CK_LIST, NMG_CK_SHELL, nmg_edge_g(), nmg_me(), nmg_vertex_gv(), NULL, bn_vlist::nused, bn_vlist::pt, SMALL_FASTF, vertexuse::v_p, vertex::vg_p, VMOVE, VNEAR_ZERO, VSUB2, and edgeuse::vu_p. Here is the call graph for this function: ![]() |
|
Definition at line 8105 of file nmg_misc.c. References BU_CK_PTBL, BU_LIST_FOR, bu_log(), bu_ptbl_ins(), bu_ptbl_locate(), bu_ptbl_rm(), vertex_g::coord, vertexuse::eu_p, edgeuse::eumate_p, vertexuse::magic_p, NMG_CK_EDGEUSE, NMG_CK_SHELL, NMG_CK_VERTEX, NMG_CK_VERTEXUSE, NMG_EDGEUSE_MAGIC, nmg_find_s_of_vu(), nmg_follow_free_edges_to_vertex(), edgeuse::radial_p, vertexuse::up, V3ARGS, vertexuse::v_p, vertex::vg_p, vertex::vu_hd, and edgeuse::vu_p. Referenced by nmg_follow_free_edges_to_vertex(). Here is the call graph for this function: ![]() |
|
Definition at line 8310 of file nmg_misc.c. References BN_CK_TOL, BU_LIST_FIRST_MAGIC, BU_LIST_FOR, loopuse::down_hd, edgeuse::eumate_p, faceuse::lu_hd, NMG_CK_EDGEUSE, NMG_CK_FACEUSE, NMG_CK_LOOPUSE, NMG_CK_SHELL, NMG_EDGEUSE_MAGIC, nmg_findeu(), nmg_radial_join_eu(), vertexuse::v_p, and edgeuse::vu_p. Here is the call graph for this function: ![]() |
|
Referenced by nmg_hollow_shell(). |
|
N M G _ I N _ V E R T Move vertex so it is at the intersection of the newly created faces This routine is used by "nmg_extrude_shell" to move vertices. Each plane has already been moved a distance inward and the surface normals have been reversed. if approximate is non-zero, then the coordinates of the new vertex may be calculated as the point with minimum distance to all the faces that intersect at the vertex for vertices where more than three faces intersect. Definition at line 9068 of file nmg_misc.c. References BN_CK_TOL, bu_log(), bu_ptbl_free(), bu_ptbl_init(), vertex_g::coord, NMG_CK_VERTEX, nmg_complex_vertex_solve(), nmg_find_isect_faces(), nmg_simple_vertex_solve(), V3ARGS, and vertex::vg_p. Referenced by nmg_extrude_shell(), and nmg_hollow_shell(). Here is the call graph for this function: ![]() |
|
N M G _ M I R R O R _ M O D E L mirror model across the y-axis this does not copy the model, it changes the model passed to it Definition at line 9121 of file nmg_misc.c. References BU_PTBL_END, BU_PTBL_GET, vertex_g::coord, model::magic, NMG_CK_MODEL, NMG_CK_VERTEX, nmg_vertex_tabulate(), vertex::vg_p, and Y. Here is the call graph for this function: ![]() |
|
Definition at line 9180 of file nmg_misc.c. References BU_LIST_FIRST, BU_LIST_FIRST_MAGIC, BU_LIST_FOR, BU_LIST_NOT_HEAD, BU_LIST_PNEXT, BU_LIST_PNEXT_CIRC, BU_LIST_PPREV_CIRC, bu_log(), loopuse::down_hd, edgeuse::e_p, edgeuse::eumate_p, shell::fu_hd, faceuse::fumate_p, edgeuse::l, faceuse::l, loopuse::l, faceuse::lu_hd, NMG_CK_EDGEUSE, NMG_CK_FACEUSE, NMG_CK_LOOPUSE, NMG_CK_SHELL, NMG_EDGEUSE_MAGIC, nmg_keu(), nmg_kfu(), nmg_klu(), nmg_lu_reorient(), nmg_pr_lu_briefly(), nmg_split_lu_at_vu(), faceuse::orientation, OT_SAME, rt_bomb(), vertexuse::v_p, and edgeuse::vu_p. Referenced by wdb_nmg_simplify_cmd(). Here is the call graph for this function: ![]() |
|
Definition at line 9359 of file nmg_misc.c. References BU_LIST_FIRST, BU_LIST_FIRST_MAGIC, BU_LIST_NOT_HEAD, BU_LIST_PNEXT, BU_LIST_PNEXT_CIRC, bu_log(), loopuse::down_hd, shell::fu_hd, faceuse::fumate_p, nmgregion::l, shell::l, faceuse::l, loopuse::l, edgeuse::l, faceuse::lu_hd, NMG_CK_EDGEUSE, NMG_CK_FACEUSE, NMG_CK_LOOPUSE, NMG_CK_MODEL, NMG_CK_REGION, NMG_CK_SHELL, NMG_EDGEUSE_MAGIC, nmg_keu(), nmg_kfu(), nmg_klu(), nmg_kr(), nmg_ks(), model::r_hd, nmgregion::s_hd, vertexuse::v_p, and edgeuse::vu_p. Here is the call graph for this function: ![]() |
|
N M G _ M A K E _ F A C E S _ W I T H I N _ T O L Check all vertices on faces of specified shell. Any face containing vertices more than tol->dist off the plane of the face will be triangulated and broken into seperate faces Definition at line 9482 of file nmg_misc.c. References BN_CK_TOL, BU_LIST_FOR, bu_log(), BU_PTBL_END, BU_PTBL_GET, bu_ptbl_init(), bu_ptbl_ins(), faceuse::f_p, shell::fu_hd, faceuse::l, bu_list::magic, nmg_calc_face_plane(), NMG_CK_FACEUSE, nmg_ck_fu_verts(), NMG_CK_SHELL, nmg_face_new_g(), nmg_split_loops_into_faces(), nmg_triangulate_fu(), faceuse::orientation, OT_SAME, rt_bomb(), and void(). Referenced by nmg_model_fuse(). Here is the call graph for this function: ![]() |
|
Definition at line 9550 of file nmg_misc.c. References BN_CK_TOL, bn_isect_lseg3_lseg3(), BU_LIST_FIRST_MAGIC, BU_LIST_FOR, BU_PTBL_END, BU_PTBL_GET, bu_ptbl_init(), bu_ptbl_ins(), bu_ptbl_reset(), vertex_g::coord, loopuse::down_hd, edgeuse::eumate_p, shell::fu_hd, faceuse::lu_hd, NMG_CK_FACEUSE, NMG_CK_LOOPUSE, NMG_CK_SHELL, nmg_ebreaker(), NMG_EDGEUSE_MAGIC, nmg_vertex_gv(), NULL, faceuse::orientation, OT_SAME, top(), vertexuse::v_p, vertex::vg_p, VJOIN1, VSUB2, and edgeuse::vu_p. Here is the call graph for this function: ![]() |
|
R T _ J O I N _ C N U R B S Join a list of cnurb structs into a single cnurb. The curves must have matching endpoints, otherwise nothing is done and (struct cnurb *)NULL is returned. Returns: A single cnurb structure that joins all the cnurbs on the list. Definition at line 9669 of file nmg_misc.c. References BU_CK_LIST_HEAD, BU_LIST_DEQUEUE, BU_LIST_FIRST, BU_LIST_FOR, BU_LIST_NEXT, BU_LIST_NOT_HEAD, bu_log(), edge_g_cnurb::c_size, edge_g_cnurb::ctl_points, edge_g_cnurb::k, knot_vector::k_size, knot_vector::knots, edge_g_cnurb::l, NULL, edge_g_cnurb::order, edge_g_cnurb::pt_type, rt_bomb(), rt_nurb_c_print(), and RT_NURB_EXTRACT_COORDS. Here is the call graph for this function: ![]() |
|
Referenced by rt_arc2d_to_cnurb(). |
|
Definition at line 10049 of file nmg_misc.c. References BN_CK_TOL, bn_dist_pt3_lseg3(), BU_CK_PTBL, BU_PTBL_END, BU_PTBL_GET, bu_ptbl_init(), bu_ptbl_ins(), bu_ptbl_rm(), vertex_g::coord, edgeuse::e_p, edge::eu_p, edgeuse::eumate_p, NMG_CK_EDGE, NMG_CK_EDGEUSE, NMG_CK_VERTEX, nmg_esplit(), vertexuse::v_p, vertex::vg_p, and edgeuse::vu_p. Referenced by nmg_break_edges(). Here is the call graph for this function: ![]() |
|
|
|
N M G _ L U _ I S _ C O N V E X Checks if lu is convex Returns: 1 - is loop is convex, or lu is a loop of a single vertex 0 - otherwise Definition at line 10841 of file nmg_misc.c. References BN_CK_TOL, BU_LIST_FIRST, BU_LIST_FIRST_MAGIC, BU_LIST_PNEXT_CIRC, vertex_g::coord, loopuse::down_hd, edgeuse::eumate_p, edgeuse::l, loopuse::l_p, loop::lg_p, NMG_CK_LOOPUSE, NMG_CK_VERTEX_G, NMG_CLASS_AinB, NMG_CLASS_AoutB, nmg_class_pt_lu_except(), NMG_EDGEUSE_MAGIC, nmg_loop_g(), OT_OPPOSITE, OT_SAME, vertexuse::v_p, VBLEND2, vertex::vg_p, and edgeuse::vu_p. Referenced by nmg_to_poly(). Here is the call graph for this function: ![]() |
|
Definition at line 11070 of file nmg_misc.c. References BN_CK_TOL, BU_LIST_FIRST, BU_LIST_FIRST_MAGIC, BU_LIST_FOR, BU_LIST_IS_EMPTY, BU_LIST_NEXT, BU_LIST_NOT_HEAD, BU_LIST_PNEXT, BU_LIST_PNEXT_CIRC, vertex_g::coord, loopuse::down_hd, edgeuse::e_p, vertexuse::eu_p, edgeuse::eumate_p, shell::fu_hd, faceuse::fumate_p, faceuse::l, loopuse::l, edgeuse::l, vertexuse::l, faceuse::lu_hd, vertexuse::magic_p, NMG_CK_EDGEUSE, NMG_CK_FACEUSE, NMG_CK_LOOPUSE, NMG_CK_SHELL, NMG_CK_VERTEXUSE, NMG_EDGEUSE_MAGIC, nmg_find_s_of_vu(), nmg_keu(), nmg_kfu(), nmg_klu(), nmg_movevu(), faceuse::orientation, OT_SAME, edgeuse::radial_p, rt_dist_pt3_line3(), vertexuse::up, vertexuse::v_p, vertex::vg_p, void(), VSUB2, vertex::vu_hd, and edgeuse::vu_p. Here is the call graph for this function: ![]() |
|
|
Definition at line 1322 of file g_bot.c. Referenced by rt_bot_find_e_nearest_pt2(). |
|
R T _ B O T _ P L O T Definition at line 464 of file g_bot.c. References BN_VLIST_LINE_DRAW, BN_VLIST_LINE_MOVE, rt_bot_internal::faces, rt_db_internal::idb_ptr, LOCAL, rt_bot_internal::num_faces, RT_ADD_VLIST, RT_BOT_CK_MAGIC, RT_CK_DB_INTERNAL, and rt_bot_internal::vertices. |
|
R T _ B O T _ P L O T _ P O L Y Definition at line 488 of file g_bot.c. References BN_VLIST_POLY_DRAW, BN_VLIST_POLY_END, BN_VLIST_POLY_MOVE, BN_VLIST_POLY_START, BN_VLIST_POLY_VERTNORM, rt_bot_internal::bot_flags, rt_bot_internal::face_normals, rt_bot_internal::faces, rt_db_internal::idb_ptr, LOCAL, rt_bot_internal::normals, rt_bot_internal::num_faces, RT_ADD_VLIST, RT_BOT_CK_MAGIC, RT_BOT_HAS_SURFACE_NORMALS, RT_BOT_USE_NORMALS, RT_CK_DB_INTERNAL, VCROSS, rt_bot_internal::vertices, VMOVE, VSUB2, and VUNITIZE. |
|
|
|
Definition at line 2682 of file nmg_tri.c. References BN_CK_TOL, BU_LIST_FOR, shell::fu_hd, NMG_CK_FACEUSE, NMG_CK_SHELL, nmg_triangulate_fu(), faceuse::orientation, and OT_SAME. Referenced by nmg_bot(). Here is the call graph for this function: ![]() |
|
Definition at line 2697 of file nmg_tri.c. References BN_CK_TOL, BU_LIST_FOR, bu_log(), shell::fu_hd, model::magic, NMG_CK_FACEUSE, NMG_CK_MODEL, NMG_CK_REGION, NMG_CK_SHELL, nmg_model_edge_g_fuse(), nmg_s_split_touchingloops(), nmg_triangulate_fu(), nmg_unbreak_region_edges(), nmg_vmodel(), faceuse::orientation, OT_SAME, model::r_hd, nmgregion::s_hd, and void(). Referenced by wdb_facetize_cmd(), and wdb_nmg_collapse_cmd(). Here is the call graph for this function: ![]() |
|
Definition at line 2491 of file nmg_tri.c. References BN_CK_TOL, bu_free(), BU_LIST_APPEND, BU_LIST_DEQUEUE, BU_LIST_FIRST, BU_LIST_FIRST_MAGIC, BU_LIST_FOR, BU_LIST_INIT, BU_LIST_PNEXT, BU_LIST_WHILE, bu_log(), vertex_g::coord, pt2d::coord, loopuse::down_hd, HOLE_START, pt2d::l, shell::l, trap::l, faceuse::lu_hd, bu_list::magic, NMG_CK_FACEUSE, NMG_EDGEUSE_MAGIC, nmg_find_model(), nmg_flatten_face(), NMG_GET_FU_NORMAL, nmg_loop_split_at_touching_jaunt(), nmg_lu_reorient(), nmg_split_touchingloops(), nmg_stash_model_to_file(), NMG_VERTEXUSE_MAGIC, loopuse::orientation, OT_SAME, rt_bomb(), faceuse::s_p, V3ARGS, vertexuse::v_p, vertex::vg_p, void(), VPRINT, edgeuse::vu_p, and pt2d::vu_p. Referenced by nmg_make_faces_within_tol(), nmg_to_poly(), nmg_triangulate_model(), and nmg_triangulate_shell(). Here is the call graph for this function: ![]() |
|
Referenced by nmg_check_radial(), and nmg_shell_manifolds(). |
|
Definition at line 279 of file nmg_manif.c. References bu_calloc(), bu_free(), BU_LIST_FOR, BU_LIST_IS_EMPTY, BU_LIST_LINK_CHECK, BU_LIST_NON_EMPTY, bu_log(), DEBUG_MANIF, shell::eu_hd, shell::fu_hd, faceuse::fumate_p, faceuse::index, vertexuse::l, edgeuse::l, loopuse::l, faceuse::l, shell::lu_hd, nmgregion::m_p, model::maxindex, NMG_0MANIFOLD, NMG_1MANIFOLD, NMG_2MANIFOLD, NMG_3MANIFOLD, NMG_CK_FACEUSE, NMG_CK_SHELL, NMG_CK_VERTEXUSE, NMG_CP_MANIFOLD, nmg_dangling_face(), NMG_INDEX_VALUE, NMG_MANIFOLDS, NMG_SET_MANIFOLD, NULL, faceuse::orientation, OT_SAME, PAINT_EXTERIOR, PAINT_INTERIOR, shell::r_p, vertexuse::v_p, and shell::vu_p. Referenced by nmg_manifolds(). Here is the call graph for this function: ![]() |
|
Definition at line 428 of file nmg_manif.c. References bu_calloc(), BU_LIST_FOR, BU_LIST_LINK_CHECK, bu_log(), DEBUG_MANIF, nmgregion::l, shell::l, model::maxindex, NMG_CK_MODEL, NMG_CK_REGION, NMG_CK_SHELL, NMG_CP_MANIFOLD, nmg_shell_manifolds(), model::r_hd, and nmgregion::s_hd. Referenced by nmg_class_ray_vs_shell(), and rt_nmg_prep(). Here is the call graph for this function: ![]() |
|
N M G _ R A Y _ S E G S Obtain the list of ray segments which intersect with the nmg. This routine does all of the "work" for rt_nmg_shot() Return: # of segments added to list. Definition at line 1271 of file nmg_rt_segs.c. References ray_data::ap, BU_LIST_FOR, BU_LIST_IS_EMPTY, bu_log(), DEBUG_RT_SEGS, NMG_CK_HITMISS_LISTS, NMG_FREE_HITLIST, nmg_rt_print_hitmiss(), ray_data::rd_hit, ray_data::rd_miss, ray_data::seghead, and ray_data::stp. Referenced by rt_nmg_shot(). Here is the call graph for this function: ![]() |
|
R T _ N U M _ C I R C U L A R _ S E G M E N T S Given a circle with a specified radius, determine the minimum number of straight line segments that the circle can be approximated with, while still meeting the given maximum permissible error distance. Form a chord (straight line) by connecting the start and end points found when sweeping a 'radius' arc through angle 'theta'. The error distance is the distance between where a radius line at angle theta/2 hits the chord, and where it hits the circle (at 'radius' distance). error_distance = radius * ( 1 - cos( theta/2 ) ) or theta = 2 * acos( 1 - error_distance / radius ) Returns - number of segments. Always at least 6. Definition at line 982 of file g_torus.c. Referenced by rt_eto_plot(), rt_eto_tess(), rt_tor_plot(), and rt_tor_tess(). |
|
Definition at line 100 of file tcl.c. References bn_decode_vect(), interp, NULL, xray::r_dir, xray::r_pt, TCL_ERROR, TCL_OK, VSUB2, and VUNITIZE. Referenced by rt_tcl_cutter(), and rt_tcl_rt_shootray(). Here is the call graph for this function: ![]() |
|
Definition at line 143 of file tcl.c. References cutter::bn, cutter::boxnode::bn_len, cutter::boxnode::bn_list, cutter::boxnode::bn_max, cutter::boxnode::bn_min, cutter::boxnode::bn_piecelen, cutter::boxnode::bn_piecelist, bu_vls_init(), bu_vls_printf(), bu_vls_putc(), bu_vls_strcat(), cutter::cn, cutter::cutnode::cn_axis, cutter::cutnode::cn_point, CUT_BOXNODE, CUT_CUTNODE, cutter::cut_type, RT_CK_PIECELIST, and V3ARGS. Referenced by rt_tcl_cutter(). Here is the call graph for this function: ![]() |
|
Definition at line 216 of file tcl.c. References application::a_ray, application::a_rt_i, CUTTER_NULL, interp, NULL, rt_cell_n_on_ray(), RT_CK_AP_TCL, RT_CK_RTI_TCL, rt_tcl_parse_ray(), rt_tcl_pr_cutter(), TCL_ERROR, and TCL_OK. Here is the call graph for this function: ![]() |
|
Definition at line 261 of file tcl.c. References bn_encode_vect(), bu_free(), bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), bu_vls_strcat(), curvature::crv_c1, curvature::crv_c2, curvature::crv_pdir, directory::d_namep, DB_FULL_PATH_MAGIC, db_path_to_string(), hit::hit_dist, hit::hit_point, hit::hit_surfno, interp, db_full_path::magic, NULL, RT_CK_DIR, RT_CK_SEG, RT_CK_SOLTAB, RT_CURVATURE, RT_HIT_NORMAL, seg::seg_stp, soltab::st_dp, and soltab::st_path. Referenced by rt_tcl_a_hit(). Here is the call graph for this function: ![]() |
|
Definition at line 1511 of file tcl.c. References Dgo_Init(), interp, rt_bot_minpieces, rt_bot_tri_per_piece, rt_version, TCL_GLOBAL_ONLY, TCL_LINK_INT, Vo_Init(), and Wdb_Init(). Referenced by Rt_Init(). Here is the call graph for this function: ![]() |
|
|
|
Definition at line 1545 of file tcl.c. References bu_avail_cpus(), BU_LIST_INIT, BU_LIST_UNINITIALIZED, bu_semaphore_init(), interp, NULL, rt_init_resource(), RT_SEM_LAST, rt_tcl_setup(), rt_uniresource, and TCL_OK. Here is the call graph for this function: ![]() |
|
Definition at line 1584 of file tcl.c. References directory::d_namep, db_full_path::fp_len, db_full_path::fp_names, interp, NULL, and RT_CK_FULL_PATH. |
|
Definition at line 1605 of file tcl.c. References bu_calloc(), interp, NULL, Tcl_DecrRefCount, and TCL_OK. Referenced by rt_nurb_tcladjust(), and tcl_list_to_int_array(). Here is the call graph for this function: ![]() |
|
Definition at line 1662 of file tcl.c. References atof(), bu_calloc(), interp, NULL, Tcl_DecrRefCount, and TCL_OK. Referenced by rt_nurb_tcladjust(), and tcl_list_to_fastf_array(). Here is the call graph for this function: ![]() |
|
Definition at line 1639 of file tcl.c. References interp, and tcl_obj_to_int_array(). Here is the call graph for this function: ![]() |
|
Definition at line 1697 of file tcl.c. References interp, and tcl_obj_to_fastf_array(). Referenced by rt_arbn_tcladjust(), rt_cline_tcladjust(), rt_ebm_tcladjust(), rt_extrude_tcladjust(), and rt_sketch_tcladjust(). Here is the call graph for this function: ![]() |
|
R T _ M K _ H Y P E R B O L A Definition at line 839 of file g_rhc.c. References A, NEAR_ZERO, rt_pt_node::next, rt_pt_node::p, RHC_TOL, rt_mk_hyperbola(), rt_ptalloc(), VDOT, VMOVE, VSET, VUNITIZE, X, Y, and Z. Referenced by rt_ehy_plot(), rt_ehy_tess(), rt_mk_hyperbola(), rt_rhc_plot(), and rt_rhc_tess(). Here is the call graph for this function: ![]() |
|
N M G _ C L A S S I F Y _ P T _ L O O P A generally available interface to nmg_class_pt_l returns the classification from nmg_class_pt_l or a (-1) on error Called by - nmg_extrude.c / nmg_fix_overlapping_loops() XXX DANGER: Calls nmg_class_pt_l(), which does not work well. Definition at line 2232 of file nmg_class.c. References BN_CK_TOL, bu_log(), neighbor::class, bn_tol::dist, neighbor::dist, DIST_PT_PLANE, neighbor::eu, loopuse::fu_p, loopuse::magic_p, MAX_FASTF, NMG_CK_LOOPUSE, NMG_FACEUSE_MAGIC, NMG_GET_FU_PLANE, NULL, neighbor::p, loopuse::up, and V3ARGS. Referenced by nmg_fix_overlapping_loops(). Here is the call graph for this function: ![]() |
|
N M G _ C L A S S I F Y _ S _ V S _S Classify one shell (s2) with respect to another (s). returns: NMG_CLASS_AinB if s2 is inside s NMG_CLASS_AoutB is s2 is outside s NMG_CLASS_Unknown if we can't tell Assumes (but does not verify) that these two shells do not overlap, but are either entirely separate or entirely within one or the other. Definition at line 2731 of file nmg_class.c. References BU_LIST_FIRST, BU_LIST_NON_EMPTY, BU_PTBL_END, bu_ptbl_free(), BU_PTBL_GET, vertex_g::coord, loopuse::down_hd, edgeuse::eumate_p, faceuse::lu_hd, shell_a::max_pt, shell_a::min_pt, nmg_class_pt_s(), nmg_vertex_tabulate(), s2, shell::sa_p, V3RPP1_IN_RPP2, vertexuse::v_p, vertex::vg_p, VMOVE, and edgeuse::vu_p. Referenced by nmg_fix_normals(). Here is the call graph for this function: ![]() |
|
|
|
|
Referenced by nmg_classify_s_vs_s(). |
|
Definition at line 338 of file nmg_pt_fu.c. References BU_LIST_FOR, loopuse::down_hd, edgeuse::eumate_p, edgeuse::lu_p, edgeuse::magic_p, NMG_CK_EDGEUSE, NMG_CK_LOOPUSE, NMG_LOOPUSE_MAGIC, edgeuse::up, vertexuse::v_p, and edgeuse::vu_p. Referenced by nmg_class_pt_euvu(), and nmg_split_touchingloops(). |
|
Referenced by nmg_classify_lu_lu(), nmg_get_interior_pt(), nmg_is_crack_outie(), and nmg_lu_is_convex(). |
|
Referenced by isect_ray_planar_face(), nmg_class_lu_fu(), nmg_class_pt_s(), nmg_is_vertex_on_inter(), and nmg_isect_eu_fu(). |
|
Definition at line 839 of file nmg_plot.c. References nmg_vlblock_s(), rt_plot_vlblock(), rt_vlblock_free(), and rt_vlblock_init(). Here is the call graph for this function: ![]() |
|
N M G _ V U _ T O _ V L I S T Plot a single vertexuse Definition at line 92 of file nmg_plot.c. References BN_VLIST_LINE_DRAW, BN_VLIST_LINE_MOVE, NMG_CK_VERTEX, NMG_CK_VERTEX_G, NMG_CK_VERTEXUSE, RT_ADD_VLIST, vertexuse::v_p, and vertex::vg_p. Referenced by nmg_lu_to_vlist(), and nmg_s_to_vlist(). |
|
N M G _ E U _ T O _ V L I S T Plot a list of edgeuses. The last edge is joined back to the first. Definition at line 115 of file nmg_plot.c. References BN_VLIST_LINE_DRAW, BN_VLIST_LINE_MOVE, BU_LIST_FOR, bu_log(), vertex_g::coord, edgeuse::eumate_p, NMG_CK_EDGEUSE, NMG_CK_VERTEX, NMG_CK_VERTEX_G, NMG_CK_VERTEXUSE, RT_ADD_VLIST, vertexuse::v_p, vertex::vg_p, and edgeuse::vu_p. Referenced by nmg_s_to_vlist(). Here is the call graph for this function: ![]() |
|
|
N M G _ S N U R B _ F U _ T O _ V L I S T Definition at line 320 of file nmg_plot.c. References BN_VLIST_LINE_DRAW, BN_VLIST_LINE_MOVE, BU_CK_LIST_HEAD, faceuse::f_p, face::g, knot_vector::k_size, knot_vector::knots, MAGNITUDE, NMG_CK_FACE, NMG_CK_FACE_G_SNURB, NMG_CK_FACEUSE, nmg_snurb_fu_eval(), nmg_snurb_fu_get_norm(), nmg_snurb_to_vlist(), NMG_VLIST_STYLE_VISUALIZE_NORMALS, RT_ADD_VLIST, face::snurb_p, face_g_snurb::u, face_g_snurb::v, VJOIN1, and VSUB2. Referenced by nmg_s_to_vlist(). Here is the call graph for this function: ![]() |
|
N M G _ S _ T O _ V L I S T Plot the entire contents of a shell. poly_markers = 0 for vectors 1 for polygons 2 for polygons and surface normals drawn with vectors Definition at line 372 of file nmg_plot.c. References BU_LIST_FOR, shell::eu_hd, faceuse::f_p, shell::fu_hd, face::g, faceuse::lu_hd, shell::lu_hd, face::magic_p, NMG_CK_FACE, NMG_CK_FACE_G_PLANE, NMG_CK_FACEUSE, NMG_CK_SHELL, nmg_eu_to_vlist(), NMG_FACE_G_SNURB_MAGIC, NMG_GET_FU_NORMAL, nmg_lu_to_vlist(), nmg_snurb_fu_to_vlist(), NMG_VLIST_STYLE_NO_SURFACES, nmg_vu_to_vlist(), faceuse::orientation, OT_SAME, face::plane_p, VSET, VSETALL, and shell::vu_p. Referenced by nmg_r_to_vlist(). Here is the call graph for this function: ![]() |
|
N M G _ R _ T O _ V L I S T Definition at line 430 of file nmg_plot.c. References BU_LIST_FOR, NMG_CK_REGION, nmg_s_to_vlist(), and nmgregion::s_hd. Referenced by nmg_m_to_vlist(). Here is the call graph for this function: ![]() |
|
N M G _ M _ T O _ V L I S T Definition at line 445 of file nmg_plot.c. References BU_LIST_FOR, NMG_CK_MODEL, NMG_CK_REGION, nmg_r_to_vlist(), and model::r_hd. Referenced by rt_nmg_plot(). Here is the call graph for this function: ![]() |
|
|
|
Referenced by nmg_pl_e(). |
|
Referenced by nmg_pl_eu(). |
|
|
|
Referenced by nmg_face_lu_plot(), nmg_pl_lu_around_eu(), and nmg_plot_lu_ray(). |
|
Referenced by nmg_cut_loop(), and nmg_plot_ray_face(). |
|
N M G _ P L _ S Note that "b" should probably be defined a level higher, to reduce malloc/free calls when plotting multiple shells. Definition at line 828 of file nmg_plot.c. References nmg_vlblock_s(), rt_plot_vlblock(), rt_vlblock_free(), and rt_vlblock_init(). Referenced by nmg_evaluate_boolean(). Here is the call graph for this function: ![]() |
|
N M G _ P L _ R Definition at line 853 of file nmg_plot.c. References nmg_vlblock_r(), rt_plot_vlblock(), rt_vlblock_free(), and rt_vlblock_init(). Here is the call graph for this function: ![]() |
|
N M G _ P L _ M Definition at line 867 of file nmg_plot.c. References nmg_vlblock_m(), rt_plot_vlblock(), rt_vlblock_free(), and rt_vlblock_init(). Referenced by nmg_face_state_transition(). Here is the call graph for this function: ![]() |
|
Referenced by nmg_vlblock_e(), nmg_vlblock_lu(), and nmg_vlblock_s(). |
|
Referenced by nmg_vlblock_eu(). |
|
Referenced by nmg_vlblock_around_eu(), nmg_vlblock_lu(), and nmg_vlblock_s(). |
|
Referenced by nmg_vlblock_around_eu(). |
|
Referenced by nmg_pl_edges_in_2_shells(), and nmg_plot_lu_around_eu(). |
|
Referenced by nmg_pl_fu(), nmg_pl_lu(), nmg_plot_lu_around_eu(), nmg_vlblock_fu(), and nmg_vlblock_s(). |
|
Referenced by nmg_2face_plot(), nmg_face_plot(), nmg_pl_2fu(), nmg_pl_comb_fu(), and nmg_vlblock_s(). |
|
N M G _ V L B L O C K _ S Definition at line 1242 of file nmg_plot.c. References BN_CK_VLBLOCK, bu_calloc(), bu_free(), BU_LIST_FOR, edgeuse::e_p, shell::eu_hd, shell::fu_hd, shell::lu_hd, nmgregion::m_p, model::maxindex, NMG_CK_EDGE, NMG_CK_EDGEUSE, NMG_CK_FACEUSE, NMG_CK_LOOPUSE, NMG_CK_MODEL, NMG_CK_REGION, NMG_CK_SHELL, nmg_vlblock_eu(), nmg_vlblock_fu(), nmg_vlblock_lu(), nmg_vlblock_v(), shell::r_p, vertexuse::v_p, and shell::vu_p. Referenced by nmg_pl_s(), nmg_pl_shell(), and nmg_vlblock_r(). Here is the call graph for this function: ![]() |
|
N M G _ V L B L O C K _ R Definition at line 1297 of file nmg_plot.c. References BN_CK_VLBLOCK, BU_LIST_FOR, NMG_CK_REGION, nmg_vlblock_s(), and nmgregion::s_hd. Referenced by nmg_pl_r(), and nmg_vlblock_m(). Here is the call graph for this function: ![]() |
|
N M G _ V L B L O C K _ M Definition at line 1313 of file nmg_plot.c. References BN_CK_VLBLOCK, BU_LIST_FOR, NMG_CK_MODEL, nmg_vlblock_r(), and model::r_hd. Referenced by nmg_pl_m(). Here is the call graph for this function: ![]() |
|
Referenced by nmg_pl_isect(). |
|
N M G _ P L _ I S E C T Called by nmg_bool.c Definition at line 1369 of file nmg_plot.c. References BN_CK_TOL, bu_bomb(), bu_calloc(), bu_free(), BU_LIST_FIRST_MAGIC, BU_LIST_FOR, bu_log(), loopuse::down_hd, fp, shell::fu_hd, faceuse::lu_hd, nmgregion::m_p, shell_a::max_pt, model::maxindex, shell_a::min_pt, NMG_CK_EDGEUSE, NMG_CK_FACEUSE, NMG_CK_LOOPUSE, NMG_CK_SHELL, NMG_CK_SHELL_A, NMG_EDGEUSE_MAGIC, nmg_pl_edges_in_2_shells(), NMG_VERTEXUSE_MAGIC, NULL, pdv_3space(), perror(), shell::r_p, rt_bomb(), rt_plot_vlblock(), rt_vlblock_free(), rt_vlblock_init(), shell::sa_p, and void(). Here is the call graph for this function: ![]() |
|
N M G _ P L _ C O M B _ F U Called from nmg_bool.c/nmg_face_combine() Definition at line 1432 of file nmg_plot.c. References bu_calloc(), bu_free(), bu_log(), DEBUG_FCUT, DEBUG_PL_ANIM, DEBUG_PL_SLOW, DEBUG_PLOTEM, fp, faceuse::l, bu_list::magic, model::maxindex, name, NMG_CK_MODEL, nmg_find_model(), nmg_vlblock_anim_upcall, nmg_vlblock_fu(), NULL, perror(), rt_plot_vlblock(), rt_vlblock_free(), rt_vlblock_init(), US_DELAY, and void(). Referenced by nmg_face_state_transition(). Here is the call graph for this function: ![]() |
|
N M G _ P L _ 2 F U Note that 'str' is expected to contain a d to place the frame number. Called from nmg_isect_2faces and other places. Definition at line 1492 of file nmg_plot.c. References bu_calloc(), bu_free(), bu_log(), DEBUG_PL_ANIM, DEBUG_PL_SLOW, DEBUG_PLOTEM, fp, faceuse::fumate_p, faceuse::l, bu_list::magic, model::maxindex, name, NMG_CK_MODEL, nmg_find_model(), nmg_vlblock_anim_upcall, nmg_vlblock_fu(), NULL, num, perror(), rt_plot_vlblock(), rt_vlblock_free(), rt_vlblock_init(), US_DELAY, and void(). Referenced by nmg_kill_snakes(), nmg_mesh_faces(), and nmg_simplify_loop(). Here is the call graph for this function: ![]() |
|
Referenced by nmg_show_broken_classifier_stuff(), and nmg_show_each_loop(). |
|
N M G _ F A C E _ P L O T Definition at line 1983 of file nmg_plot.c. References bu_calloc(), bu_free(), bu_log(), DEBUG_PL_ANIM, DEBUG_PL_SLOW, DEBUG_PLOTEM, model::maxindex, name, NMG_CK_FACEUSE, NMG_CK_MODEL, nmg_find_model(), nmg_vlblock_anim_upcall, nmg_vlblock_fu(), NULL, perror(), rt_plot_vlblock(), rt_vlblock_free(), rt_vlblock_init(), and void(). Referenced by nmg_face_combineX(), nmg_face_next_vu_interval(), and nmg_fcut_face(). Here is the call graph for this function: ![]() |
|
N M G _ 2 F A C E _ P L O T Just like nmg_face_plot, except it draws two faces each iteration. Definition at line 2043 of file nmg_plot.c. References bu_calloc(), bu_free(), bu_log(), DEBUG_PL_ANIM, DEBUG_PL_SLOW, model::maxindex, NMG_CK_FACEUSE, NMG_CK_MODEL, nmg_find_model(), nmg_vlblock_anim_upcall, nmg_vlblock_fu(), rt_vlblock_free(), rt_vlblock_init(), and void(). Referenced by nmg_face_combineX(), nmg_face_next_vu_interval(), and nmg_fcut_face(). Here is the call graph for this function: ![]() |
|
N M G _ F A C E _ L U _ P L O T Plot the loop, and a ray from vu1 to vu2. Definition at line 2089 of file nmg_plot.c. References bu_calloc(), bu_free(), bu_log(), vertex_g::coord, DEBUG_PLOTEM, model::maxindex, NMG_CK_LOOPUSE, NMG_CK_VERTEXUSE, nmg_find_model(), nmg_pl_lu(), NULL, pdv_3line(), perror(), pl_color(), vertexuse::v_p, vertex::vg_p, VJOIN1, and VSUB2. Referenced by nmg_check_radial(). Here is the call graph for this function: ![]() |
|
Referenced by nmg_face_state_transition(). |
|
|
|
N M G _ P L O T _ L U _ A R O U N D _ E U Draw and label all the loopuses gathered around this edgeuse. Called by nmg_radial_join_eu(). Definition at line 2230 of file nmg_plot.c. References BN_CK_TOL, bu_calloc(), bu_free(), bu_log(), edgeuse::eumate_p, edgeuse::lu_p, edgeuse::magic_p, model::maxindex, NMG_CK_EDGEUSE, NMG_CK_MODEL, nmg_find_model(), NMG_LOOPUSE_MAGIC, nmg_vlblock_around_eu(), nmg_vlblock_lu(), NULL, edgeuse::radial_p, rt_plot_vlblock(), rt_vlblock_free(), rt_vlblock_init(), edgeuse::up, and void(). Here is the call graph for this function: ![]() |
|
N M G _ S N U R B _ T O _ V L I S T A routine to draw the entire surface of a face_g_snurb. No handling of trimming curves is done. nmg_hack_snurb( &n, fg ); / XXX Definition at line 2283 of file nmg_plot.c. References BU_CK_LIST_HEAD, face_g_snurb::ctl_points, FAST, knot_vector::k_size, knot_vector::knots, NMG_CK_FACE_G_SNURB, NMG_CK_SNURB, NULL, face_g_snurb::pt_type, RT_NURB_EXTRACT_COORDS, RT_NURB_IS_PT_RATIONAL, rt_nurb_kvgen(), rt_nurb_kvmerge(), rt_nurb_s_refine(), RT_NURB_SPLIT_COL, RT_NURB_SPLIT_ROW, face_g_snurb::s_size, face_g_snurb::u, and face_g_snurb::v. Referenced by nmg_snurb_fu_to_vlist(). Here is the call graph for this function: ![]() |
|
|
Definition at line 158 of file nurb_util.c. References bu_free(), edge_g_cnurb::c_size, edge_g_cnurb::ctl_points, edge_g_cnurb::k, knot_vector::knots, edge_g_cnurb::l, bu_list::magic, NMG_CK_CNURB, NULL, and edge_g_cnurb::order. Here is the call graph for this function: ![]() |
|
Definition at line 262 of file nurb_knot.c. References knot_vector::k_size, and knot_vector::knots. Referenced by rt_nurb_c_eval(), and rt_nurb_s_eval(). |
|
Definition at line 522 of file nurb_trim.c. References vertexuse::a, bu_bomb(), BU_LIST_FIRST_MAGIC, BU_LIST_FOR, bu_log(), edgeuse::cnurb_p, vertexuse::cnurb_p, loopuse::down_hd, edgeuse::eumate_p, edgeuse::g, edgeuse::magic_p, vertexuse::magic_p, NMG_CK_LOOPUSE, NMG_EDGE_G_CNURB_MAGIC, NMG_EDGEUSE_MAGIC, NMG_VERTEXUSE_A_CNURB_MAGIC, edge_g_cnurb::order, vertexuse_a_cnurb::param, edge_g_cnurb::pt_type, RT_NURB_IS_PT_RATIONAL, rt_uv_in_trim(), slope(), VMOVE, and edgeuse::vu_p. Here is the call graph for this function: ![]() |
|
Referenced by nmg_mesh_face_shell(), nmg_mesh_faces(), and nmg_mesh_shell_shell(). |
|
N M G _ R A D I A L _ J O I N _ E U Make all the edgeuses around eu2's edge to refer to eu1's edge, taking care to organize them into the proper angular orientation, so that the attached faces are correctly arranged radially around the edge. This depends on both edges being part of face loops, with vertex and face geometry already associated. The two edgeuses being joined might well be from separate shells, so the issue of preserving (simple) faceuse orientation parity (SAME, OPPOSITE, OPPOSITE, SAME, ...) can't be used here -- that only applies to faceuses from the same shell. Some of the edgeuses around both edges may be wires. Call to nmg_check_radial at end has been deleted. Note that after two radial EU's have been joined a third cannot be joined to them without creating unclosed space that nmg_check_radial will find. Definition at line 215 of file nmg_mesh.c. References BN_CK_TOL, bn_pt3_pt3_equal(), bn_radtodeg, bn_twopi, bu_log(), vertex_g::coord, debug, DEBUG_MESH, DEBUG_MESH_EU, edgeuse::e_p, edgeuse::eumate_p, NEAR_ZERO, NMG_ARE_EUS_ADJACENT, NMG_CK_EDGEUSE, NMG_CK_FACEUSE, nmg_eu_2vecs_perp(), nmg_euprint(), NMG_FACE_G_SNURB_MAGIC, nmg_find_fu_of_eu(), nmg_is_angle_in_wedge(), nmg_measure_fu_angle(), nmg_pick_best_edge_g(), nmg_pr_fu_around_eu_vecs(), nmg_radial_join_eu_NEW(), nmg_two_face_fuse(), NULL, PLPRINT, edgeuse::radial_p, rt_bomb(), V3ARGS, vertexuse::v_p, vertex::vg_p, and edgeuse::vu_p. Referenced by nmg_ebreaker(), nmg_face_state_transition(), nmg_find_eg_between_2fg(), nmg_glue_face_in_shell(), nmg_isect_edge2p_edge2p(), nmg_mesh_two_faces(), and nmg_model_edge_fuse(). Here is the call graph for this function: ![]() |
|
N M G _ M E S H _ F A C E S Scan through all the edges of fu1 and fu2, ensuring that all edges involving the same vertex pair are indeed shared. This means worrying about merging ("meshing") all the faces in the proper radial orientation around the edge. XXX probably should return(count); Definition at line 587 of file nmg_mesh.c. References BN_CK_TOL, bu_log(), DEBUG_PLOTEM, NMG_CK_FACEUSE, nmg_mesh_two_faces(), and nmg_pl_2fu(). Here is the call graph for this function: ![]() |
|
N M G _ M E S H _ F A C E _ S H E L L The return is the number of edges meshed. Definition at line 624 of file nmg_mesh.c. References BN_CK_TOL, BU_LIST_FOR, shell::fu_hd, NMG_CK_FACEUSE, NMG_CK_SHELL, and nmg_mesh_two_faces(). Here is the call graph for this function: ![]() |
|
N M G _ M E S H _ S H E L L _ S H E L L Mesh every edge in shell 1 with every edge in shell 2. The return is the number of edges meshed. Does not use nmg_mesh_face_shell() to keep face/self meshing to the absolute minimum necessary. Definition at line 653 of file nmg_mesh.c. References BN_CK_TOL, BU_LIST_FOR, NMG_CK_FACEUSE, NMG_CK_SHELL, nmg_mesh_two_faces(), nmg_region_v_unique(), s1, and s2. Here is the call graph for this function: ![]() |
|
Definition at line 1090 of file nmg_bool.c. References BU_LIST_FIRST, BU_LIST_NON_EMPTY, NMG_CK_REGION, NMG_CK_SHELL, nmg_kr(), nmg_ks(), nmg_region_v_unique(), nmg_shell_is_empty(), shell::r_p, rt_bomb(), and nmgregion::s_hd. Referenced by nmg_booltree_evaluate(). Here is the call graph for this function: ![]() |
|
|
|
N M G _ B O O L T R E E _ L E A F _ T E S S Called from db_walk_tree() each time a tree leaf is encountered. The primitive solid, in external format, is provided in 'ep', and the type of that solid (e.g. ID_ELL) is in 'id'. The full tree state including the accumulated transformation matrix and the current tolerancing is in 'tsp', and the full path from root to leaf is in 'pathp'. Import the solid, tessellate it into an NMG, stash a pointer to the tessellation in a new tree structure (union), and return a pointer to that. Usually given as an argument to, and called from db_walk_tree(). This routine must be prepared to run in parallel. Definition at line 1151 of file nmg_bool.c. References BN_CK_TOL, bu_log(), directory::d_namep, DB_FULL_PATH_CUR_DIR, rt_db_internal::idb_meth, NMG_CK_MODEL, nmg_mm(), RT_CK_DB_INTERNAL, RT_CK_DIR, RT_CK_FULL_PATH, RT_CK_RESOURCE, RT_CK_TESS_TOL, TREE_NULL, db_tree_state::ts_m, db_tree_state::ts_resp, db_tree_state::ts_tol, and db_tree_state::ts_ttol. Referenced by wdb_facetize_cmd(). Here is the call graph for this function: ![]() |
|
N M G _ B O O L T R E E _ L E A F _ T N U R B Called from db_walk_tree() each time a tree leaf is encountered. The primitive solid, in external format, is provided in 'ep', and the type of that solid (e.g. ID_ELL) is in 'id'. The full tree state including the accumulated transformation matrix and the current tolerancing is in 'tsp', and the full path from root to leaf is in 'pathp'. Import the solid, convert it into an NMG using t-NURBS, stash a pointer in a new tree structure (union), and return a pointer to that. Usually given as an argument to, and called from db_walk_tree(). This routine must be prepared to run in parallel. Definition at line 1212 of file nmg_bool.c. References BN_CK_TOL, bu_log(), directory::d_namep, DB_FULL_PATH_CUR_DIR, rt_db_internal::idb_meth, NMG_CK_MODEL, RT_CK_DB_INTERNAL, RT_CK_DIR, RT_CK_FULL_PATH, RT_CK_RESOURCE, RT_CK_TESS_TOL, TREE_NULL, db_tree_state::ts_m, db_tree_state::ts_resp, db_tree_state::ts_tol, and db_tree_state::ts_ttol. Referenced by wdb_facetize_cmd(). Here is the call graph for this function: ![]() |
|
Referenced by nmg_boolean(), and nmg_booltree_evaluate(). |
|
N M G _ B O O L E A N This is the main application interface to the NMG Boolean Evaluator. This routine has the opportunity to do "once only" operations before and after the boolean tree is walked. Returns - 0 Boolean went OK. Result region is in tp->tr_d.td_r !0 Boolean produced null result. The caller is responsible for freeing 'tp' in either case, typically with db_free_tree(tp); Definition at line 1417 of file nmg_bool.c. References BN_CK_TOL, bu_log(), DEBUG_BASIC, DEBUG_BOOL, nmgregion::m_p, nmg_booltree_evaluate(), NMG_CK_MODEL, nmg_merge_models(), nmg_model_fuse(), OP_NMG_TESS, result, rt_bomb(), RT_CK_RESOURCE, RT_CK_TREE, rt_pr_tree(), tree::tree_nmgregion::td_r, tree::tr_d, and void(). Referenced by wdb_facetize_cmd(). Here is the call graph for this function: ![]() |
|
|
|
N M G _ C K _ V U _ P T B L As an automatic check for the intersector failing to find all intersections, check all the vertices on the intersection line. For each one, find all the other uses in this faceuse, and if they are not also listed on the line, they were overlooked. This does not catch _all_ possible mistakes, but does catch some. Definition at line 338 of file nmg_fcut.c. References BU_CK_PTBL, bu_identify_magic(), BU_LIST_FOR, bu_log(), BU_PTBL_END, BU_PTBL_GET, bu_ptbl_ins(), bu_ptbl_locate(), vertexuse::l, bu_list::magic, vertexuse::magic_p, NMG_CK_FACEUSE, NMG_CK_VERTEX, NMG_CK_VERTEXUSE, nmg_find_fu_of_vu(), nmg_pr_ptbl(), NULL, rt_bomb(), top(), vertexuse::up, vertexuse::v_p, void(), and vertex::vu_hd. Here is the call graph for this function: ![]() |
|
Referenced by nmg_face_coincident_vu_sort(). |
|
N M G _ W E D G E _ C L A S S 0 degrees is to the rear (ON_REV), 90 degrees is to the RIGHT, 180 is ON_FORW, 270 is to the LEFT. Determine if the given wedge is entirely to the left or right of the ray, or if it crosses. "halfway X" (ha, hb) have these properties: < 0 ( ==> X < 180 ) RIGHT > 0 ( ==> X > 180 ) LEFT ==0 ( ==> X == 180 ) ON_FORW Returns - WEDGE_LEFT WEDGE_CROSSING WEDGE_RIGHT WEDGE_ON Definition at line 869 of file nmg_fcut.c. References bu_log(), DEBUG_VU_SORT, NEAR_ZERO, NMG_E_ASSESSMENT_ON_FORW, NMG_E_ASSESSMENT_ON_REV, NMG_V_COMB, WEDGE_CROSS, WEDGE_LEFT, WEDGE_ON, WEDGE_RIGHT, and WEDGECLASS2STR. Referenced by nmg_face_coincident_vu_sort(). Here is the call graph for this function: ![]() |
|
N M G _ S A N I T I Z E _ F U Eliminate any OT_BOOLPLACE self-loops that remain behind in this face. Definition at line 1924 of file nmg_fcut.c. References BU_LIST_FIRST, BU_LIST_NOT_HEAD, BU_LIST_PNEXT, faceuse::lu_hd, NMG_CK_FACEUSE, NMG_CK_LOOPUSE, nmg_klu(), loopuse::orientation, OT_BOOLPLACE, and rt_bomb(). Here is the call graph for this function: ![]() |
|
N M G _ U N L I S T _ V Definition at line 3334 of file nmg_fcut.c. References BU_CK_PTBL, BU_PTBL_END, BU_PTBL_GET, MAX_FASTF, NMG_CK_VERTEX, and vertexuse::v_p. Referenced by nmg_onon_fix(). |
|
|
|
Definition at line 3705 of file nmg_fcut.c. References BN_CK_TOL, BU_CK_PTBL, NMG_CK_FACEUSE, nmg_face_rs_init(), nmg_fcut_face(), VSET, and VSETALL. Here is the call graph for this function: ![]() |
|
N M G _ I N S E R T _ V U _ I F _ O N _ E D G E This code checks if the vertex from a loop of a single vertex lies on an edge containing vu2. If so, the edge is split, vu1 is inserted, the loop containing vu1 is killed, and the newly created edgeuse is returned in "new_eu". returns: 0 - did nothing 1 - inserted vu1 and created a new edge Definition at line 3870 of file nmg_fcut.c. References bn_3pts_collinear(), BN_CK_TOL, BU_LIST_PNEXT_CIRC, BU_LIST_PPREV_CIRC, bu_log(), vertex_g::coord, bn_tol::dist_sq, vertexuse::eu_p, vertexuse::lu_p, vertexuse::magic_p, MAGSQ, NMG_CK_VERTEXUSE, nmg_ebreaker(), NMG_EDGEUSE_MAGIC, nmg_klu(), NMG_LOOPUSE_MAGIC, rt_bomb(), vertexuse::up, V3ARGS, vertexuse::v_p, VDOT, vertex::vg_p, void(), VSUB2, and edgeuse::vu_p. Here is the call graph for this function: ![]() |
|
N M G _ C K _ L U _ O R I E N T A T I O N Make sure that the lu and fu orientation flags are consistent with the geometric arrangement of the vertices and the faceuse normal. Definition at line 103 of file nmg_eval.c. References bu_log(), loopuse::fu_p, NMG_CK_FACEUSE, NMG_CK_LOOPUSE, NMG_GET_FU_PLANE, nmg_loop_plane_newell(), nmg_orientation(), faceuse::orientation, loopuse::orientation, rt_bomb(), loopuse::up, and VDOT. Here is the call graph for this function: ![]() |
|
N M G _ C L A S S _ N A M E Convert an NMG_CLASS_xxx token into a string name. Definition at line 141 of file nmg_eval.c. References NMG_CLASS_BAD, and NMG_CLASS_Unknown. Referenced by make_near_list(), nmg_class_lu_fu(), nmg_class_pt_euvu(), nmg_class_pt_s(), nmg_class_ray_vs_shell(), nmg_classify_lu_lu(), nmg_eval_action(), nmg_is_crack_outie(), and nmg_reclassify_lu_eu(). |
|
|
|
Definition at line 249 of file nmg_rt_isect.c. References BU_LIST_FOR, bu_log(), hitmiss::l, and nmg_rt_print_hitmiss(). Referenced by nmg_class_ray_vs_shell(), and nmg_isect_ray_model(). Here is the call graph for this function: ![]() |
|
Definition at line 227 of file nmg_rt_isect.c. References bu_identify_magic(), bu_log(), hitmiss::hit, hit::hit_dist, hit::hit_point, hit::hit_private, hitmiss::in_out, hitmiss::inbound_norm, NMG_CK_HITMISS, NMG_HITMISS_SEG_IN, NMG_HITMISS_SEG_OUT, nmg_rt_inout_str(), hitmiss::outbound_norm, hitmiss::start_stop, and VPRINT. Referenced by nmg_class_ray_vs_shell(), nmg_ray_segs(), and nmg_rt_print_hitlist(). Here is the call graph for this function: ![]() |
|
N M G _ R A Y _ I S E C T _ S H E L L Intended as a support routine for nmg_class_pt_s() in nmg_class.c Intersect a ray with a shell, and return whether the ray start point is inside or outside or ON the shell. Count the number of crossings (hit points) along the ray, both in the negative and positive directions. If an even number, point is outside, if an odd number point is inside. If the negative-going and positive-going assessments don't agree, this is a problem. If "in_or_out_only" is non-zero, then we will not look for a classification of "ON" the shell. The caller must be prepared for a return of NMG_CLASS_Unknown, in which case it should pick a less difficult ray direction to fire and try again. Returns - NMG_CLASS_Unknown Can't tell NMG_CLASS_xxx Classification of the pt w.r.t. the shell. Definition at line 2818 of file nmg_rt_isect.c. References application::a_resource, ray_data::ap, BN_CK_TOL, bu_calloc(), bu_free(), BU_LIST_DEQUEUE, BU_LIST_FOR, BU_LIST_INIT, BU_LIST_UNINITIALIZED, BU_LIST_WHILE, bu_log(), ray_data::classifying_ray, DEBUG_CLASSIFY, DEBUG_PLOTEM, shell::fu_hd, hitmiss::hit, hit::hit_dist, ray_data::hitmiss, INFINITY, shell::l, hitmiss::l, bu_list::magic, ray_data::magic, ray_data::manifolds, model::maxindex, NEAR_ZERO, NMG_CK_HITMISS, NMG_CK_SHELL, nmg_class_name(), NMG_CLASS_Unknown, nmg_find_model(), NMG_FREE_HITLIST, nmg_manifolds(), NMG_MANIFOLDS, nmg_pl_hitmiss_list(), NMG_RAY_DATA_MAGIC, nmg_rt_print_hitlist(), nmg_rt_print_hitmiss(), NULL, num, faceuse::orientation, OT_SAME, xray::r_dir, xray::r_pt, ray_data::rd_hit, ray_data::rd_invdir, ray_data::rd_m, ray_data::rd_miss, resource::re_magic, resource::re_nmgfree, RESOURCE_MAGIC, ray_data::rp, RT_APPLICATION_INIT, rt_bomb(), rt_uniresource, ray_data::seghead, SQRT_SMALL_FASTF, ray_data::stp, ray_data::tol, V3ARGS, VUNITIZE, X, Y, and Z. Referenced by nmg_class_pt_s(). Here is the call graph for this function: ![]() |
|
N M G _ I S E C T _ R A Y _ M O D E L Definition at line 2507 of file nmg_rt_isect.c. References BU_LIST_FOR, BU_LIST_IS_EMPTY, bu_log(), nmgregion_a::max_pt, nmgregion_a::min_pt, NMG_CK_HITMISS_LISTS, NMG_CK_MODEL, NMG_CK_REGION, NMG_CK_REGION_A, nmg_rt_print_hitlist(), xray::r_dir, model::r_hd, shell::r_p, xray::r_pt, nmgregion::ra_p, ray_data::rd_hit, ray_data::rd_invdir, ray_data::rd_m, ray_data::rp, rt_in_rpp(), and nmgregion::s_hd. Referenced by rt_nmg_shot(). Here is the call graph for this function: ![]() |
|
N M G _ V V G Verify vertex geometry Definition at line 70 of file nmg_ck.c. References NMG_CK_VERTEX_G. Referenced by nmg_vvertex(). |
|
N M G _ V V E R T E X Verify a vertex Definition at line 81 of file nmg_ck.c. References BU_LIST_FOR, NMG_CK_VERTEX, NMG_CK_VERTEXUSE, nmg_vvg(), rt_bomb(), vertexuse::v_p, vertex::vg_p, and vertex::vu_hd. Referenced by nmg_vvu(). Here is the call graph for this function: ![]() |
|
Referenced by nmg_vvu(). |
|
|
|
Referenced by nmg_veu(). |
|
N M G _ V E D G E Verify edge Definition at line 182 of file nmg_ck.c. References bu_log(), edge::eu_p, edgeuse::eumate_p, NMG_CK_EDGE, NMG_CK_EDGEUSE, NMG_CK_VERTEX, NMG_CK_VERTEXUSE, edgeuse::radial_p, rt_bomb(), vertexuse::v_p, and edgeuse::vu_p. Referenced by nmg_veu(). Here is the call graph for this function: ![]() |
|
Referenced by nmg_vlu(), and nmg_vshell(). |
|
N M G _ V L G Verify loop geometry Definition at line 381 of file nmg_ck.c. References ELEMENTS_PER_PT, loop_g::max_pt, loop_g::min_pt, NMG_CK_LOOP_G, and rt_bomb(). Referenced by nmg_vloop(). Here is the call graph for this function: ![]() |
|
N M G _ V L O O P Verify loop Definition at line 398 of file nmg_ck.c. References edgeuse::l, loopuse::l, loopuse::lumate_p, NMG_CK_LOOP, NMG_CK_LOOPUSE, nmg_vlg(), and rt_bomb(). Referenced by nmg_vlu(). Here is the call graph for this function: ![]() |
|
Referenced by nmg_vfu(), and nmg_vshell(). |
|
N M G _ V F G Verify face geometry Definition at line 487 of file nmg_ck.c. References bu_log(), H, face_g_plane::magic, face_g_plane::N, NMG_CK_FACE_G_EITHER, NMG_FACE_G_PLANE_MAGIC, NMG_FACE_G_SNURB_MAGIC, rt_bomb(), X, Y, and Z. Here is the call graph for this function: ![]() |
|
N M G _ V F A C E Verify face Definition at line 512 of file nmg_ck.c. References bu_log(), ELEMENTS_PER_PT, face::fu_p, face::max_pt, face::min_pt, NMG_CK_FACE, NMG_CK_FACEUSE, rt_bomb(), and V3ARGS. Referenced by nmg_vfu(). Here is the call graph for this function: ![]() |
|
N M G _ V F U Validate a list of faceuses Definition at line 545 of file nmg_ck.c. References BU_LIST_FOR, bu_log(), bu_list::magic, NMG_CK_FACE, NMG_CK_FACEUSE, NMG_CK_SHELL, NMG_FACEUSE_MAGIC, nmg_vface(), nmg_vlu(), OT_NONE, OT_OPPOSITE, OT_SAME, OT_UNSPEC, and rt_bomb(). Referenced by nmg_face_state_transition(), and nmg_vshell(). Here is the call graph for this function: ![]() |
|
N M G _ V S H E L L validate a list of shells and all elements under them Definition at line 600 of file nmg_ck.c. References bu_list::back, BU_LIST_FOR, BU_LIST_NON_EMPTY, bu_log(), bu_list::forw, bu_list::magic, NMG_CK_REGION, NMG_CK_SHELL, NMG_CK_SHELL_A, nmg_veu(), nmg_vfu(), nmg_vlu(), and rt_bomb(). Referenced by nmg_booltree_evaluate(), nmg_crackshells(), nmg_js(), and nmg_vregion(). Here is the call graph for this function: ![]() |
|
N M G _ V R E G I O N validate a list of nmgregions and all elements under them Definition at line 667 of file nmg_ck.c. References BU_LIST_FOR, BU_LIST_PNEXT_PLAST, bu_log(), NMG_CK_REGION, NMG_CK_REGION_A, nmg_vshell(), and rt_bomb(). Referenced by nmg_vmodel(). Here is the call graph for this function: ![]() |
|
N M G _ V M O D E L validate an NMG model and all elements in it. Definition at line 696 of file nmg_ck.c. References NMG_CK_MODEL, nmg_vregion(), and model::r_hd. Referenced by nmg_hollow_shell(), nmg_isect_shell_self(), nmg_stash_model_to_file(), nmg_triangulate_model(), rt_nmg_export(), and rt_nmg_import(). Here is the call graph for this function: ![]() |
|
N M G _ C K _ E Definition at line 713 of file nmg_ck.c. References bu_calloc(), bu_free(), edgeuse::eumate_p, NMG_CK_EDGE, NMG_CK_EDGEUSE, edgeuse::radial_p, rt_bomb(), and void(). Referenced by nmg_ck_eu(). Here is the call graph for this function: ![]() |
|
Referenced by nmg_ck_eu(), and nmg_ck_lu(). |
|
Referenced by nmg_ck_lu(). |
|
N M G _ C K _ L G Definition at line 825 of file nmg_ck.c. References bu_calloc(), bu_free(), edgeuse::l, NMG_CK_LOOP, NMG_CK_LOOP_G, and void(). Referenced by nmg_ck_l(). Here is the call graph for this function: ![]() |
|
N M G _ C K _ L Definition at line 841 of file nmg_ck.c. References bu_calloc(), bu_free(), edgeuse::l, loopuse::lumate_p, nmg_ck_lg(), NMG_CK_LOOP, NMG_CK_LOOPUSE, rt_bomb(), and void(). Referenced by nmg_ck_lu(). Here is the call graph for this function: ![]() |
|
Referenced by nmg_ck_fu(). |
|
N M G _ C K _ F G Definition at line 921 of file nmg_ck.c. References bu_calloc(), bu_free(), H, face_g_plane::N, NMG_CK_FACE_G_PLANE, rt_bomb(), void(), X, Y, and Z. Referenced by nmg_ck_f(). Here is the call graph for this function: ![]() |
|
N M G _ C K _ F Definition at line 942 of file nmg_ck.c. References bu_calloc(), bu_free(), faceuse::fumate_p, NMG_CK_FACE, NMG_CK_FACE_G_PLANE, NMG_CK_FACEUSE, nmg_ck_fg(), rt_bomb(), and void(). Referenced by nmg_ck_fu(). Here is the call graph for this function: ![]() |
|
N M G _ C K _ F U Definition at line 963 of file nmg_ck.c. References bu_calloc(), bu_free(), BU_LIST_FOR, BU_LIST_PLAST_PNEXT, BU_LIST_PNEXT_PLAST, vertexuse::l, nmg_ck_f(), NMG_CK_FACEUSE, NMG_CK_LOOPUSE, nmg_ck_lu(), NMG_CK_SHELL, rt_bomb(), and void(). Here is the call graph for this function: ![]() |
|
N M G _ C K _ E G _ V E R T S Check if vertices from edgeuses using this edge geometry actually lie on the edge geomatry. "eg" must be LSEG returns number of vertices not on edge line Definition at line 1014 of file nmg_ck.c. References BN_CK_TOL, BU_LIST_FOR, BU_LIST_MAIN_PTR, bu_log(), vertex_g::coord, bn_tol::dist_sq, edge_g_lseg::e_dir, edge_g_lseg::e_pt, edge_g_lseg::eu_hd2, edgeuse::eumate_p, MAGSQ, NMG_CK_EDGE_G_LSEG, NMG_CK_EDGEUSE, NMG_CK_VERTEX, NMG_CK_VERTEX_G, V3ARGS, vertexuse::v_p, VDOT, vertex::vg_p, VJOIN1, VMOVE, VSUB2, edgeuse::vu_p, and VUNITIZE. Referenced by nmg_ck_geometry(). Here is the call graph for this function: ![]() |
|
N M G _ C K _ G E O M E T R Y Check that vertices actually lie on geometry for faces and edges returns number of vertices that do not lie on geometry Definition at line 1071 of file nmg_ck.c. References BN_CK_TOL, BU_PTBL_END, BU_PTBL_GET, bu_ptbl_init(), model::magic, NMG_CK_EDGE_G_LSEG, nmg_ck_eg_verts(), NMG_CK_MODEL, NMG_EDGE_G_CNURB_MAGIC, NMG_EDGE_G_LSEG_MAGIC, and nmg_edge_g_tabulate(). Here is the call graph for this function: ![]() |
|
N M G _ C K _ F A C E _ W O R T H L E S S _ E D G E S Search for null ("worthless") edges in a face. Such edges are legitimate to have, but can be troublesome for the boolean routines. Often used to see if breaking an edge at a given vertex results in a null edge being created. Definition at line 1133 of file nmg_ck.c. References BU_LIST_FIRST_MAGIC, BU_LIST_FOR, BU_LIST_PNEXT_CIRC, bu_log(), loopuse::down_hd, edgeuse::eumate_p, faceuse::lu_hd, NMG_CK_LOOPUSE, nmg_pr_eu(), NMG_VERTEXUSE_MAGIC, NULL, rt_bomb(), vertexuse::v_p, and edgeuse::vu_p. Referenced by nmg_isect_line2_edge2p(). Here is the call graph for this function: ![]() |
|
N M G _ C K _ L U E U check all the edgeuses of a loopuse to make sure these children know who thier parent really is. Definition at line 1174 of file nmg_ck.c. References bu_list::back, BU_LIST_FIRST, BU_LIST_FIRST_MAGIC, BU_LIST_FOR, bu_log(), loopuse::down_hd, bu_list::forw, edgeuse::l, edgeuse::lu_p, loopuse::lumate_p, NMG_CK_EDGEUSE, nmg_pr_lu(), NMG_VERTEXUSE_MAGIC, NULL, rt_bomb(), and edgeuse::up. Here is the call graph for this function: ![]() |
|
N M G _ C H E C K _ R A D I A L check to see if all radial uses of an edge (within a shell) are properly oriented with respect to each other. NOTE that ONLY edgeuses belonging to the shell of eu are checked. Can't check faceuse orientation parity for things from more than one shell; parity is conserved only within faces from a single shell. XXX Added code to skip dangling faces (needs to be checked a little more) - JRA XXX I think that if dangling faces are to be processed correctly, XXX the caller should pass in a table of dangling faces. -Mike XXX I've # if'ed that check out, for now. Return 0 OK 1 bad edgeuse mate 2 unclosed space Definition at line 1249 of file nmg_ck.c. References BN_CK_TOL, bu_log(), DEBUG_BASIC, DEBUG_PLOTEM, edgeuse::eumate_p, loopuse::fu_p, edgeuse::lu_p, NMG_CK_EDGEUSE, NMG_CK_FACEUSE, NMG_CK_LOOPUSE, NMG_CK_SHELL, nmg_dangling_face(), nmg_eu_radial_check(), nmg_face_lu_plot(), nmg_find_fu_of_eu(), nmg_find_model(), nmg_find_s_of_eu(), nmg_orientation(), nmg_pr_fu_around_eu(), nmg_stash_model_to_file(), NULL, num, edgeuse::orientation, edgeuse::radial_p, rt_bomb(), edgeuse::up, loopuse::up, and edgeuse::vu_p. Referenced by nmg_ck_closed_surf(). Here is the call graph for this function: ![]() |
|
N M G _ E U _ 2 S _ O R I E N T _ B A D Given an edgeuse, check that the proper orientation "parity" of same/opposite/opposite/same is preserved, for all non-wire edgeuses within shell s1. If s2 is non-null, then ensure that the parity of all edgeuses in BOTH s1 and s2 are correct, and mutually compatible. This routine does not care if a face is "dangling" or not. If the edgeuse specified is a wire edgeuse, skip forward to a non-wire. Returns - 0 OK !0 Bad orientation parity. Definition at line 1377 of file nmg_ck.c. References BN_CK_TOL, edgeuse::eumate_p, NMG_CK_EDGEUSE, NMG_CK_SHELL, nmg_find_fu_of_eu(), edgeuse::radial_p, s1, s2, and faceuse::s_p. Here is the call graph for this function: ![]() |
|
N M G _ C K _ C L O S E D _ S U R F Verify that shell is closed. Do this by verifying that it is not possible to get from outside to inside the solid by crossing any face edge. Returns - 0 OK !0 Problem. Definition at line 1490 of file nmg_ck.c. References BN_CK_TOL, BU_LIST_FIRST, BU_LIST_FIRST_MAGIC, BU_LIST_FOR, bu_log(), loopuse::down_hd, shell::fu_hd, faceuse::lu_hd, nmg_check_radial(), NMG_CK_FACEUSE, NMG_CK_LOOPUSE, NMG_CK_SHELL, NMG_CK_VERTEX, NMG_CK_VERTEXUSE, NMG_EDGEUSE_MAGIC, NMG_VERTEXUSE_MAGIC, status, and vertexuse::v_p. Referenced by nmg_ck_closed_region(). Here is the call graph for this function: ![]() |
|
N M G _ C K _ C L O S E D _ R E G I O N Check all the shells in a region for being closed. Returns - 0 OK !0 status code from nmg_check_radial() Definition at line 1536 of file nmg_ck.c. References BN_CK_TOL, BU_LIST_FOR, nmg_ck_closed_surf(), NMG_CK_REGION, and nmgregion::s_hd. Referenced by nmg_booltree_evaluate(). Here is the call graph for this function: ![]() |
|
N M G _ C K _ V _ I N _ 2 F U S accepts a vertex pointer, two faceuses, and a tolerance. Checks if the vertex is in both faceuses (topologically and geometrically within tolerance of plane). Calls rt_bomb if vertex is not in the faceuses topology or out of tolerance of either face. Definition at line 1562 of file nmg_ck.c. References BN_CK_TOL, BU_LIST_FOR, bu_vls_addr(), bu_vls_init(), bu_vls_printf(), vertex_g::coord, bn_tol::dist, DIST_PT_PLANE, NEAR_ZERO, NMG_CK_FACEUSE, NMG_CK_VERTEX, nmg_find_fu_of_vu(), NMG_GET_FU_PLANE, rt_bomb(), V3ARGS, vertex::vg_p, and vertex::vu_hd. Referenced by nmg_enlist_one_vu(), and nmg_enlist_vu(). Here is the call graph for this function: ![]() |
|
Definition at line 1676 of file nmg_ck.c. References BN_CK_TOL, bu_calloc(), bu_free(), bu_ptbl_free(), bu_ptbl_init(), nmgregion::l, nmgregion::m_p, bu_list::magic, model::maxindex, NMG_CK_MODEL, NMG_CK_REGION, nmg_visit(), NULL, v_ck_state::tabl, v_ck_state::tol, v_ck_state::visited, and void(). Referenced by nmg_crackshells(), and rt_nmg_prep(). Here is the call graph for this function: ![]() |
|
Definition at line 105 of file nmg_inter.c. References BN_CK_TOL, bn_dist_pt3_lseg3(), BU_LIST_FIRST, BU_LIST_FIRST_MAGIC, BU_LIST_FOR, bu_log(), vertex_g::coord, DEBUG_POLYSECT, loopuse::down_hd, edgeuse::eumate_p, faceuse::l, loopuse::l_p, faceuse::lu_hd, bu_list::magic, NMG_CK_FACEUSE, NMG_CK_VERTEX, NMG_EDGEUSE_MAGIC, nmg_esplit(), nmg_find_v_in_face(), nmg_loop_g(), nmg_mlv(), NULL, OT_BOOLPLACE, V3ARGS, vertexuse::v_p, vertex::vg_p, and edgeuse::vu_p. Referenced by nmg_enlist_vu(), and nmg_isect_eu_fu(). Here is the call graph for this function: ![]() |
|
N M G _ E N L I S T _ V U Given a vu which represents a point of intersection between shells s1 and s2, insert it and it's dual into lists l1 and l2. First, determine whether the vu came from s1 or s2, and insert in the corresponding list. Second, try and find a dual of that vertex in the other shell's faceuse (fu1 or fu2) (if the entity in the other shell is not a wire), and enlist the dual. If there is no dual, make a self-loop over there, and enlist that. If 'dualvu' is provided, don't search, just use that. While it is true that in most cases the calling routine will know which shell the vu came from, it's cheap to re-determine it here. This "all in one" packaging, which handles both lists automaticly is *vastly* superior to the previous version, which pushed 10-20 lines of bookkeeping up into *every* place an intersection vu was created. Returns a pointer to vu's dual. "Join the Army, young vertexuse". Definition at line 210 of file nmg_inter.c. References bn_distsq_line3_pt3(), bu_calloc(), BU_LIST_FIRST, bu_log(), BU_PTBL_END, bu_ptbl_ins_unique(), bu_ptbl_locate(), vertex_g::coord, DEBUG_POLYSECT, DEBUG_VERIFY, nmg_inter_struct::dir, bn_tol::dist_sq, loopuse::down_hd, nmg_inter_struct::fu1, nmg_inter_struct::fu2, vertexuse::l, shell::l, nmg_inter_struct::l1, nmg_inter_struct::l2, loopuse::l_p, nmg_inter_struct::mag1, nmg_inter_struct::mag2, nmg_inter_struct::mag_len, bu_list::magic, MAX_FASTF, NMG_CK_FACEUSE, NMG_CK_INTER_STRUCT, nmg_ck_v_in_2fus(), NMG_CK_VERTEXUSE, nmg_find_fu_of_vu(), nmg_find_s_of_vu(), nmg_find_v_in_shell(), nmg_loop_g(), nmg_make_dualvu(), nmg_mlv(), NULL, OT_BOOLPLACE, nmg_inter_struct::pt, rt_bomb(), rt_realloc, nmg_inter_struct::s1, nmg_inter_struct::s2, faceuse::s_p, nmg_inter_struct::tol, vertexuse::v_p, and vertex::vg_p. Referenced by nmg_isect_2colinear_edge2p(), nmg_isect_edge2p_edge2p(), nmg_isect_line2_edge2p(), nmg_isect_line2_face2pNEW(), nmg_isect_line2_vertex2(), and nmg_isect_vert2p_face2p(). Here is the call graph for this function: ![]() |
|
Referenced by nmg_isect_line2_face2pNEW(), and nmg_isect_vert2p_face2p(). |
|
N M G _ I S E C T 2 D _ C L E A N U P. Common routine to zap 2d vertex cache, and release dynamic storage. Definition at line 665 of file nmg_inter.c. References bu_free(), NMG_CK_INTER_STRUCT, NULL, nmg_inter_struct::twod, and nmg_inter_struct::vert2d. Referenced by nmg_crackshells(), nmg_isect2d_final_cleanup(), and nmg_isect2d_prep(). Here is the call graph for this function: ![]() |
|
N M G _ I S E C T 2 D _ F I N A L _ C L E A N U P XXX Hack routine used for storage reclamation by G-JACK for XXX calculation of the reportcard without gobbling lots of memory XXX on rt_bomb() longjmp()s. Can be called by the longjmp handler with impunity. If a pointer to busy dynamic memory is still handy, it will be freed. If not, no harm done. Definition at line 688 of file nmg_inter.c. References nmg_inter_struct::magic, NMG_INTER_STRUCT_MAGIC, and nmg_isect2d_cleanup(). Here is the call graph for this function: ![]() |
|
N M G _ I S E C T _ V E R T 2 P _ F A C E 2 P Handle the complete intersection of a vertex which lies on the plane of a face. *every* intersection is performed. If already part of the topology of the face, do nothing more. If it intersects one of the edges of the face, break the edge there. Otherwise, add a self-loop into the face as a marker. All vertexuse pairs are enlisted on the intersection line. Assuming that there is one (is->l1 non null). Called by - nmg_isect_3vertex_3face() nmg_isect_two_face2p() Definition at line 712 of file nmg_inter.c. References bn_pt3_pt3_equal(), BU_LIST_FIRST, BU_LIST_FIRST_MAGIC, BU_LIST_FOR, bu_log(), vertex_g::coord, DEBUG_POLYSECT, loopuse::down_hd, faceuse::l, nmg_inter_struct::l1, loopuse::l_p, faceuse::lu_hd, bu_list::magic, MAX_FASTF, nmg_break_eu_on_v(), NMG_CK_FACEUSE, NMG_CK_INTER_STRUCT, NMG_CK_LOOPUSE, NMG_CK_VERTEXUSE, nmg_enlist_vu(), nmg_isect2d_prep(), nmg_jv(), nmg_loop_g(), nmg_mlv(), NMG_VERTEXUSE_MAGIC, OT_BOOLPLACE, nmg_inter_struct::tol, vertexuse::v_p, vertex::vg_p, VPRINT, and edgeuse::vu_p. Here is the call graph for this function: ![]() |
|
N M G _ B R E A K _ E U _ O N _ V The vertex 'v2' is known to lie in the plane of eu1's face. If v2 lies between the two endpoints of eu1, break eu1 and return the new edgeuse pointer. If an edgeuse vertex is joined with v2, v2 remains as the survivor, as the caller is working on it explicitly, and the edgeuse vertices are dealt with implicitly (by dereferencing the eu pointers). Otherwise, we will invalidate our caller's v2 pointer. Note that no "intersection line" stuff is done, the goal here is just to get the edge appropriately broken. Either faceuse can be passed in, but it needs to be consistent with the faceuse used to establish the 2d vertex cache. Returns - new_eu if edge is broken 0 otherwise Definition at line 1055 of file nmg_inter.c. References bn_isect_pt2_lseg2(), BU_LIST_PNEXT_CIRC, bu_log(), vertex_g::coord, INFINITY, faceuse::l, bu_list::magic, NMG_CK_EDGEUSE, NMG_CK_FACEUSE, NMG_CK_INTER_STRUCT, NMG_CK_VERTEX, nmg_ebreaker(), nmg_jv(), rt_bomb(), nmg_inter_struct::tol, V2PRINT, vertexuse::v_p, vertex::vg_p, VPRINT, and edgeuse::vu_p. Referenced by nmg_isect_2colinear_edge2p(), and nmg_isect_vert2p_face2p(). Here is the call graph for this function: ![]() |
|
N M G _ B R E A K _ E G _ O N _ V Given a vertex 'v' which is already known to have geometry that lies on the line defined by 'eg', break all the edgeuses along 'eg' which cross 'v'. Calculation is done in 1 dimension: parametric distance along 'eg'. Edge direction vector needs to be made unit length so that tol->dist makes sense. Definition at line 1143 of file nmg_inter.c. References bn_between(), BN_CK_TOL, bn_dist_pt3_along_line3(), bn_pt3_pt3_equal(), bu_log(), BU_PTBL_BASEADDR, BU_PTBL_LASTADDR, vertex_g::coord, bn_tol::dist, edge_g_lseg::e_dir, edge_g_lseg::e_pt, NEAR_ZERO, NMG_CK_EDGE_G_LSEG, NMG_CK_EDGEUSE, NMG_CK_VERTEX, nmg_ebreaker(), nmg_edgeuse_with_eg_tabulate(), nmg_jv(), rt_bomb(), vertex::vg_p, VMOVE, and VUNITIZE. Here is the call graph for this function: ![]() |
|
N M G _ I S E C T _ 2 C O L I N E A R _ E D G E 2 P Perform edge mutual breaking only on two colinear edgeuses. This can result in 2 new edgeuses showing up in either loop (case A & D). The vertexuse lists are updated to have all participating vu's and their duals. Two colinear line segments (eu1 and eu2, or just "1" and "2" in the diagram) can overlap each other in one of 9 configurations, labeled A through I: A B C D E F G H I vu1b,vu2b * * * * * * * * *=* 1 1 2 2 1 2 1 2 1 2 1=* 1 2 *=2 1=* *=2 * * 1 2 1 2 *=* *=* 1 2 1 2 1 2 1 2 1 2 2 1 1 2 1 2 1 2 * * 1 2 1=* 2 1 *=2 *=2 1=* 2 1 1 2 1 * * 2 2 1 * * 1 2 * * * * *=* vu1a,vu2a To ensure nothing is missed, break every edgeuse on all 4 vertices. If a new edgeuse is created, add it to the list of edgeuses still to be broken. Brute force, but *certain* not to miss anything. There is nothing to prevent eu1 and eu2 from being edgeuses in the same loop. This creates interesting patterns if one is NEXT of the other, such as vu[1] == vu[2]. Just handle it gracefully. Returns the number of edgeuses that resulted, which is always at least the original 2. Definition at line 1240 of file nmg_inter.c. References BU_CK_PTBL, BU_LIST_PNEXT_CIRC, bu_log(), bu_ptbl_ins_unique(), edgeuse::e_p, vertexuse::l, bu_list::magic, MAX_FASTF, nmg_break_eu_on_v(), NMG_CK_EDGEUSE, NMG_CK_FACEUSE, NMG_CK_INTER_STRUCT, nmg_enlist_vu(), vertexuse::v_p, and edgeuse::vu_p. Referenced by nmg_isect_edge2p_edge2p(), and nmg_isect_line2_face2pNEW(). Here is the call graph for this function: ![]() |
|
N M G _ I S E C T _ E D G E 2 P _ E D G E 2 P Actual 2d edge/edge intersector One or both of the edges may be wire edges, i.e. either or both of the fu1 and fu2 args may be null. If so, the vert_list's are unimportant. Returns a bit vector - ISECT_NONE no intersection ISECT_SHARED_V intersection was at (at least one) shared vertex ISECT_SPLIT1 eu1 was split at (geometric) intersection. ISECT_SPLIT2 eu2 was split at (geometric) intersection. Definition at line 1337 of file nmg_inter.c. References bn_isect_line2_lseg2(), BU_LIST_PNEXT_CIRC, bu_log(), vertex_g::coord, edgeuse::eumate_p, ISECT_NONE, ISECT_SHARED_V, ISECT_SPLIT1, ISECT_SPLIT2, edgeuse::l, faceuse::l, bu_list::magic, MAX_FASTF, NMG_CK_EDGEUSE, NMG_CK_INTER_STRUCT, NMG_CK_MODEL, NMG_CK_VERTEXUSE, nmg_e2break(), nmg_ebreaker(), nmg_enlist_vu(), nmg_find_model(), nmg_find_pt_in_model(), nmg_isect_2colinear_edge2p(), nmg_jv(), nmg_radial_join_eu(), nmg_vertex_gv(), rt_bomb(), status, nmg_inter_struct::tol, vertexuse::v_p, vertex::vg_p, VJOIN1, VPRINT, VSUB2, VSUB2_2D, and edgeuse::vu_p. Here is the call graph for this function: ![]() |
|
N M G _ I S E C T _ C O N S T R U C T _ N I C E _ R A Y Construct a nice ray for is->pt, is->dir which contains the line of intersection, is->on_eg. See the comment in nmg_isect_two_generics_faces() for details on the constraints on this ray, and the algorithm. XXX Danger? The ray -vs- RPP check is being done in 3D. It really ought to be done in 2D, to ensure that long edge lines on nearly axis-aligned faces don't get discarded prematurely! XXX Can't just comment out the code, I think the selection XXX of is->pt is significant: 1) All intersections are at positive distances on the ray, 2) dir cross N will point "left". Returns - 0 OK 1 ray misses fu2 bounding box Definition at line 2099 of file nmg_inter.c. References bu_log(), nmg_inter_struct::dir, edge_g_lseg::e_dir, edge_g_lseg::e_pt, faceuse::f_p, face::max_pt, face::min_pt, NMG_CK_FACEUSE, NMG_CK_INTER_STRUCT, nmg_inter_struct::on_eg, nmg_inter_struct::pt, xray::r_dir, xray::r_max, xray::r_min, xray::r_pt, rt_in_rpp(), VINVDIR, VJOIN1, VMOVE, VPRINT, VREVERSE, and VUNITIZE. Here is the call graph for this function: ![]() |
|
Definition at line 2347 of file nmg_inter.c. References bu_calloc(), bu_log(), BU_PTBL_END, bu_ptbl_ins_unique(), bu_ptbl_locate(), DEBUG_VERIFY, nmg_inter_struct::fu1, nmg_inter_struct::fu2, vertexuse::l, nmg_inter_struct::l1, nmg_inter_struct::l2, nmg_inter_struct::mag1, nmg_inter_struct::mag2, nmg_inter_struct::mag_len, bu_list::magic, MAX_FASTF, NMG_CK_INTER_STRUCT, nmg_ck_v_in_2fus(), NMG_CK_VERTEXUSE, nmg_find_s_of_vu(), rt_bomb(), rt_realloc, nmg_inter_struct::s1, nmg_inter_struct::s2, nmg_inter_struct::tol, and vertexuse::v_p. Here is the call graph for this function: ![]() |
|
|
N M G _ I S E C T _ L I N E 2 _ V E R T E X 2 If this lone vertex lies along the intersect line, then add it to the lists. Called from nmg_isect_line2_face2p(). Definition at line 3201 of file nmg_inter.c. References bn_distsq_line3_pt3(), bu_log(), vertex_g::coord, nmg_inter_struct::dir, bn_tol::dist_sq, MAX_FASTF, NMG_CK_FACEUSE, NMG_CK_INTER_STRUCT, NMG_CK_VERTEXUSE, nmg_enlist_vu(), nmg_inter_struct::pt, nmg_inter_struct::tol, vertexuse::v_p, and vertex::vg_p. Here is the call graph for this function: ![]() |
|
Given two pointer tables filled with edgeuses representing two differentt edge geometry lines, see if there is a common vertex of intersection. If so, enlist the intersection. Returns - 1 intersection found 0 no intersection Definition at line 3232 of file nmg_inter.c. References BU_CK_PTBL, BU_LIST_PNEXT_CIRC, BU_PTBL_BASEADDR, BU_PTBL_LASTADDR, NMG_CK_INTER_STRUCT, NMG_CK_VERTEXUSE, and vertexuse::v_p. |
|
|
|
N M G _ K 0 E U Kill all 0-length edgeuses that start and end on this vertex. Returns - 0 If none were found count Number of 0-length edgeuses killed (not counting mates) Definition at line 3359 of file nmg_inter.c. References BU_LIST_FOR, bu_log(), vertexuse::eu_p, edgeuse::eumate_p, vertexuse::magic_p, NMG_CK_EDGEUSE, NMG_CK_VERTEX, NMG_CK_VERTEXUSE, NMG_EDGEUSE_MAGIC, nmg_keu(), nmg_pr_eu_briefly(), top(), vertexuse::up, vertexuse::v_p, vertex::vu_hd, and edgeuse::vu_p. Referenced by nmg_repair_v_near_v(). Here is the call graph for this function: ![]() |
|
N M G _ R E P A I R _ V _ N E A R _ V Attempt to join two vertices which both claim to be the intersection of two lines. If they are close enough, repair the damage. Returns - hit_v If repair succeeds. vertex 'v' is now invalid. NULL If repair fails. If 'bomb' is non-zero, rt_bomb() is called. if( bomb ) Definition at line 3399 of file nmg_inter.c. References bn_2line3_colinear(), BN_CK_TOL, bn_dist_line3_pt3(), bn_dist_pt3_pt3(), bn_pt3_pt3_equal(), bu_log(), vertex_g::coord, bn_tol::dist, edge_g_lseg::e_dir, edge_g_lseg::e_pt, edge_g_lseg::l, bu_list::magic, NMG_CK_EDGE_G_LSEG, NMG_CK_VERTEX, nmg_findeu(), nmg_jv(), nmg_k0eu(), nmg_pr_eg(), NULL, rt_bomb(), vertex::vg_p, void(), and VPRINT. Referenced by nmg_search_v_eg(). Here is the call graph for this function: ![]() |
|
Referenced by nmg_common_v_2eg(). |
|
N M G _ C O M M O N _ V _ 2 E G Perform a topology search for a common vertex between two edge geometry lines. Definition at line 3554 of file nmg_inter.c. References BN_CK_TOL, BU_LIST_FOR, BU_LIST_MAIN_PTR, bu_log(), edge_g_lseg::eu_hd2, edgeuse::g, edgeuse::lseg_p, NMG_CK_EDGE_G_LSEG, NMG_CK_EDGEUSE, NMG_CKMAG, NMG_EDGEUSE2_MAGIC, nmg_search_v_eg(), and rt_bomb(). Here is the call graph for this function: ![]() |
|
Definition at line 3588 of file nmg_inter.c. References bn_distsq_line3_pt3(), vertex_g::coord, nmg_inter_struct::dir, bn_tol::dist, DIST_PT_PLANE, bn_tol::dist_sq, NMG_CK_FACEUSE, NMG_CK_INTER_STRUCT, NMG_CK_VERTEX, NMG_CK_VERTEX_G, NMG_CLASS_AinB, nmg_class_pt_fu_except(), nmg_find_v_in_face(), NMG_GET_FU_PLANE, NULL, nmg_inter_struct::pt, nmg_inter_struct::tol, vertex::vg_p, and void(). Here is the call graph for this function: ![]() |
|
Definition at line 3636 of file nmg_inter.c. References BN_CK_TOL, bn_dist_pt3_lseg3(), BU_CK_PTBL, BU_PTBL_END, BU_PTBL_GET, bu_ptbl_ins_unique(), vertex_g::coord, edgeuse::eumate_p, NMG_CK_EDGEUSE, NMG_CK_VERTEX_G, vertexuse::v_p, and edgeuse::vu_p. Referenced by nmg_isect_eu_fu(). Here is the call graph for this function: ![]() |
|
Referenced by nmg_isect_eu_fu(). |
|
|
Definition at line 4136 of file nmg_inter.c. References BU_CK_PTBL, BU_LIST_FIRST_MAGIC, BU_LIST_FOR, bu_log(), BU_PTBL_END, bu_ptbl_free(), BU_PTBL_GET, bu_ptbl_ins_unique(), loopuse::down_hd, faceuse::l, faceuse::lu_hd, bu_list::magic, NMG_CK_EDGEUSE, NMG_CK_FACEUSE, NMG_CK_INTER_STRUCT, NMG_CK_LOOPUSE, NMG_CK_MODEL, NMG_CK_VERTEX, NMG_EDGEUSE_MAGIC, nmg_find_model(), nmg_isect_eu_fu(), and nmg_vertex_tabulate(). Here is the call graph for this function: ![]() |
|
N M G _ I S E C T _ L I N E 2 _ F A C E 2 P HEART For each distinct edge_g_lseg LINE on the face (composed of potentially many edgeuses and many different edges), intersect with the edge_g_lseg LINE which represents the face/face intersection line. Note that the geometric intersection of the two faces is stored in is->pt and is->dir. If is->on_eg is set, it is the callers' responsibility to make sure it is not much different than the original geometric one. Go to great pains to ensure that two non-colinear lines intersect at either 0 or 1 points, and no more. Called from - nmg_isect_edge2p_face2p() nmg_isect_two_face3p() Definition at line 4277 of file nmg_inter.c. References BU_CK_PTBL, BU_LIST_PNEXT_CIRC, bu_log(), BU_PTBL_BASEADDR, BU_PTBL_END, BU_PTBL_GET, BU_PTBL_LASTADDR, nmg_inter_struct::dir, nmg_inter_struct::dir2d, edgeuse::g, faceuse::l, edgeuse::lseg_p, bu_list::magic, MAT4X3PNT, MAT4X3VEC, MAX_FASTF, NMG_CK_EDGE_G_LSEG, NMG_CK_EDGEUSE, NMG_CK_FACEUSE, NMG_CK_INTER_STRUCT, nmg_edge_g_tabulate(), nmg_enlist_vu(), nmg_isect2d_prep(), nmg_isect_2colinear_edge2p(), nmg_inter_struct::on_eg, nmg_inter_struct::proj, nmg_inter_struct::pt, nmg_inter_struct::pt2d, void(), and edgeuse::vu_p. Here is the call graph for this function: ![]() |
|
|
|
N M G _ F I N D _ E G _ B E T W E E N _ 2 F G Perform a topology search to determine if two face geometries (specified by their faceuses) share an edge geometry in common. The edge_g is returned, even if there are no existing uses of it in *either* fu1 or fu2. It still represents the intersection line between the two face geometries, found topologically. If there are multiple edgeuses in common, ensure that they all refer to the same edge_g geometry structure. The intersection of two planes (non-coplanar) must be a single line. Calling this routine when the two faces share face geometry is illegal. NULL is returned if no common edge geometry could be found. Definition at line 5029 of file nmg_inter.c. References BN_CK_TOL, BU_LIST_FIRST_MAGIC, BU_LIST_FOR, bu_log(), DEBUG_BASIC, loopuse::down_hd, edgeuse::e_p, edgeuse::eumate_p, face_g_plane::f_hd, faceuse::f_p, face::fu_p, loopuse::fu_p, face::g, edgeuse::g, edgeuse::l, edgeuse::lseg_p, faceuse::lu_hd, edgeuse::lu_p, face_g_plane::magic, bu_list::magic, edgeuse::magic_p, loopuse::magic_p, nmg_2edgeuse_g_coincident(), NMG_ARE_EUS_ADJACENT, NMG_CK_EDGE_G_EITHER, NMG_CK_EDGEUSE, NMG_CK_FACE, NMG_CK_FACE_G_PLANE, NMG_CK_FACEUSE, NMG_CK_LOOPUSE, NMG_FACEUSE_MAGIC, nmg_find_model(), nmg_jeg(), NMG_LOOPUSE_MAGIC, nmg_model_fuse(), nmg_pl_lu_around_eu(), nmg_pr_eg(), nmg_pr_eu_briefly(), nmg_pr_eu_endpoints(), nmg_pr_fu_around_eu(), nmg_pr_fus_in_fg(), nmg_radial_join_eu(), NMG_VERTEXUSE_MAGIC, face::plane_p, edgeuse::radial_p, rt_bomb(), edgeuse::up, and loopuse::up. Here is the call graph for this function: ![]() |
|
|
|
|
|
|
|
Definition at line 6437 of file nmg_inter.c. References BN_CK_TOL, bn_twopi, bu_log(), BU_PTBL_END, BU_PTBL_GET, bu_ptbl_init(), vertex_g::coord, edgeuse::eumate_p, shell::l, bu_list::magic, MAX_FACES, NMG_CK_EDGE, NMG_CK_EDGEUSE, NMG_CK_SHELL, nmg_edge_tabulate(), nmg_find_eu_leftvec(), nmg_find_fu_of_eu(), nmg_measure_fu_angle(), edgeuse::radial_p, rt_bomb(), start, vertexuse::v_p, VCROSS, vertex::vg_p, VSUB2, edgeuse::vu_p, and VUNITIZE. Here is the call graph for this function: ![]() |
|
N M G _ F A C E S _ C A N _ B E _ I N T E R S E C T E D Check if two faceuses can be intersected normally, by looking at the line of intersection and determining if the vertices from each face are all above the other face on one side of the intersection line and below it on the other side of the interection line. return: 1 - faceuses meet criteria and can be intersected normally 0 - must use nmg_isect_nearly_coplanar_faces Definition at line 7116 of file nmg_inter.c. References BN_CK_TOL, bn_mkpoint_3planes(), BU_PTBL_END, BU_PTBL_GET, nmg_inter_struct::dir, bn_tol::dist, DIST_PT_PLANE, faceuse::f_p, faceuse::l, bu_list::magic, MAGSQ, face::min_pt, NMG_CK_FACE, NMG_CK_FACEUSE, NMG_GET_FU_PLANE, nmg_vertex_tabulate(), nmg_inter_struct::pt, rt_dist_pt3_line3(), SMALL_FASTF, VCROSS, VDOT, VMIN, VMOVE, VSCALE, and VSUB2. Referenced by nmg_isect_two_generic_faces(). Here is the call graph for this function: ![]() |
|
N M G _ I S E C T _ T W O _ G E N E R I C _ F A C E S Intersect a pair of faces Definition at line 7291 of file nmg_inter.c. References BN_CK_TOL, bn_isect_2planes(), bu_log(), BU_PTBL_END, bu_ptbl_free(), BU_PTBL_GET, nmg_inter_struct::coplanar, nmg_inter_struct::dir, bn_tol::dist, DIST_PT_PLANE, faceuse::f_p, face::g, faceuse::l, nmg_inter_struct::magic, bu_list::magic, MAX_FASTF, face::max_pt, face::min_pt, NMG_CK_FACE, NMG_CK_FACE_G_PLANE, NMG_CK_FACEUSE, nmg_faces_can_be_intersected(), nmg_fu_touchingloops(), NMG_GET_FU_PLANE, NMG_INTER_STRUCT_MAGIC, nmg_pr_fu_briefly(), nmg_vertex_tabulate(), face::plane_p, nmg_inter_struct::pt, rt_bomb(), nmg_inter_struct::tol, V3RPP_OVERLAP_TOL, VDOT, nmg_inter_struct::vert2d, VMIN, VMOVE, X, Y, and Z. Referenced by nmg_crackshells(), and nmg_isect_shell_self(). Here is the call graph for this function: ![]() |
|
|
N M G _ F U _ T O U C H I N G L O O P S Definition at line 8149 of file nmg_inter.c. References BU_LIST_FOR, bu_log(), faceuse::lu_hd, NMG_CK_FACEUSE, NMG_CK_LOOPUSE, NMG_CK_VERTEXUSE, nmg_loop_touches_self(), nmg_pr_lu_briefly(), and rt_bomb(). Referenced by nmg_face_state_transition(), and nmg_isect_two_generic_faces(). Here is the call graph for this function: ![]() |
|
Referenced by nmg_eval_action(), and rt_nmg_reindex(). |
|
N M G _ M _ S E T _ H I G H _ B I T First pass: just set the high bit on all index words This is a separate function largely for the benefit of global optimizers, which tended to blow their brains out on such a large subroutine. Definition at line 167 of file nmg_index.c. References BU_LIST_FIRST, BU_LIST_FIRST_MAGIC, BU_LIST_FOR, loopuse::down_hd, edgeuse::e_p, shell::eu_hd, faceuse::f_p, shell::fu_hd, face::g, edgeuse::g, vertexuse::l, loopuse::l_p, faceuse::lu_hd, shell::lu_hd, face::magic_p, edgeuse::magic_p, MARK_VU, NMG_CK_EDGE, NMG_CK_EDGEUSE, NMG_CK_FACE, NMG_CK_FACEUSE, NMG_CK_LOOP, NMG_CK_LOOP_G, NMG_CK_LOOPUSE, NMG_CK_MODEL, NMG_CK_REGION, NMG_CK_REGION_A, NMG_CK_SHELL, NMG_CK_SHELL_A, NMG_FACE_G_PLANE_MAGIC, NMG_FACE_G_SNURB_MAGIC, NMG_MARK_INDEX, NMG_VERTEXUSE_MAGIC, face::plane_p, model::r_hd, nmgregion::ra_p, nmgregion::s_hd, shell::sa_p, face::snurb_p, edgeuse::vu_p, and shell::vu_p. Referenced by nmg_m_reindex(). |
|
Referenced by nmg_merge_models(), and wdb_shells_cmd(). |
|
|
N M G _ P R _ S T R U C T _ C O U N T S Definition at line 530 of file nmg_index.c. References bu_log(), bu_vls_addr(), bu_vls_free(), bu_vls_init(), and nmg_vls_struct_counts(). Referenced by nmg_struct_counts(). Here is the call graph for this function: ![]() |
|
Referenced by nmg_struct_counts(), rt_nmg_describe(), rt_nmg_export5(), and rt_nmg_export_internal(). |
|
Count 'em up, and print 'em out. Definition at line 745 of file nmg_index.c. References bu_free(), NMG_CK_MODEL, nmg_m_struct_count(), and nmg_pr_struct_counts(). Here is the call graph for this function: ![]() |
|
N M G _ M E R G _ M O D E L S Combine two NMG model trees into one single NMG model. The first model inherits the nmgregions of the second. The second model pointer is freed before return. Definition at line 764 of file nmg_index.c. References BU_LIST_APPEND_LIST, BU_LIST_FOR, FREE_MODEL, nmgregion::m_p, model::maxindex, NMG_CK_MODEL, NMG_CK_REGION, nmg_m_reindex(), and model::r_hd. Referenced by nmg_boolean(), nmg_booltree_evaluate(), and rt_nmg_tess(). Here is the call graph for this function: ![]() |
|
N M G _ F I N D _ M A X _ I N D E X Definition at line 822 of file nmg_index.c. References BU_LIST_FIRST, BU_LIST_FIRST_MAGIC, BU_LIST_FOR, CHECK_INDEX, CHECK_VU_INDEX, edgeuse::cnurb_p, loopuse::down_hd, edgeuse::e_p, shell::eu_hd, faceuse::f_p, shell::fu_hd, face::g, edgeuse::g, loopuse::l_p, loop::lg_p, edgeuse::lseg_p, faceuse::lu_hd, shell::lu_hd, face::magic_p, edgeuse::magic_p, NMG_CK_EDGE, NMG_CK_EDGEUSE, NMG_CK_FACE, NMG_CK_FACEUSE, NMG_CK_LOOP, NMG_CK_LOOPUSE, NMG_CK_REGION, NMG_CK_SHELL, NMG_EDGE_G_CNURB_MAGIC, NMG_EDGE_G_LSEG_MAGIC, NMG_FACE_G_PLANE_MAGIC, NMG_FACE_G_SNURB_MAGIC, NMG_VERTEXUSE_MAGIC, face::plane_p, model::r_hd, nmgregion::ra_p, nmgregion::s_hd, shell::sa_p, face::snurb_p, edgeuse::vu_p, and shell::vu_p. |
|
|
|
|
|
Referenced by rt_dspline_n(). |
|
|
|
Definition at line 66 of file nurb_bezier.c. References BU_LIST_APPEND, BU_LIST_DEQUEUE, BU_LIST_INIT, BU_LIST_WHILE, face_g_snurb::dir, face_g_snurb::l, NMG_CK_SNURB, rt_bez_check(), rt_nurb_free_snurb(), rt_nurb_s_split(), and rt_nurb_scopy(). Here is the call graph for this function: ![]() |
|
Definition at line 99 of file nurb_bezier.c. References knot_vector::k_size, NMG_CK_SNURB, face_g_snurb::order, face_g_snurb::u, and face_g_snurb::v. |
|
Definition at line 121 of file nurb_bezier.c. References edge_g_cnurb::k, knot_vector::k_size, and knot_vector::knots. Referenced by rt_process_casec(). |
|
Definition at line 150 of file nurb_bezier.c. References edge_g_cnurb::k, knot_vector::k_size, knot_vector::knots, MAX_FASTF, and rt_nurb_crv_copy(). Referenced by rt_process_casec(). Here is the call graph for this function: ![]() |
|
Definition at line 49 of file nurb_copy.c. References face_g_snurb::ctl_points, knot_vector::k_size, knot_vector::knots, NMG_CK_SNURB, face_g_snurb::order, face_g_snurb::pt_type, RT_NURB_EXTRACT_COORDS, rt_nurb_new_snurb(), face_g_snurb::s_size, face_g_snurb::u, and face_g_snurb::v. Here is the call graph for this function: ![]() |
|
Definition at line 78 of file nurb_copy.c. References edge_g_cnurb::c_size, edge_g_cnurb::ctl_points, edge_g_cnurb::k, knot_vector::k_size, knot_vector::knots, NMG_CK_CNURB, edge_g_cnurb::order, edge_g_cnurb::pt_type, RT_NURB_EXTRACT_COORDS, and rt_nurb_new_cnurb(). Referenced by nurb_c_to_bezier(). Here is the call graph for this function: ![]() |
|
N M G _ I S _ C O M M O N _ B I G L O O P Do two faces share by topology at least one loop of 3 or more vertices? Require that at least three distinct edge geometries be involved. XXX Won't catch sharing of faces with only self-loops and no edge loops. Definition at line 89 of file nmg_fuse.c. References BU_LIST_FIRST_MAGIC, BU_LIST_FOR, loopuse::down_hd, face::fu_p, edgeuse::g, edgeuse::lseg_p, faceuse::lu_hd, edgeuse::magic_p, NMG_CK_EDGE_G_LSEG, NMG_CK_FACE, NMG_CK_FACEUSE, nmg_is_vertex_in_face(), NMG_VERTEXUSE_MAGIC, NULL, vertexuse::v_p, and edgeuse::vu_p. Referenced by nmg_two_face_fuse(). Here is the call graph for this function: ![]() |
|
N M G _ R E G I O N _ V _ U N I Q U E Ensure that all the vertices in r1 are still geometricaly unique. This will be true after nmg_region_both_vfuse() has been called, and should remain true throughout the intersection process. Definition at line 148 of file nmg_fuse.c. References BN_CK_TOL, bn_pt3_pt3_equal(), bu_log(), BU_PTBL_END, BU_PTBL_GET, nmgregion::l, bu_list::magic, NMG_CK_REGION, NMG_CK_VERTEX, nmg_pr_v(), nmg_vertex_tabulate(), and rt_bomb(). Referenced by nmg_do_bool(), and nmg_mesh_shell_shell(). Here is the call graph for this function: ![]() |
|
N M G _ P T B L _ V F U S E Working from the end to the front, scan for geometric duplications within a single list of vertex structures. Exists primarily as a support routine for nmg_model_vertex_fuse(). Definition at line 191 of file nmg_fuse.c. References bn_pt3_pt3_equal(), BU_PTBL_END, BU_PTBL_GET, bu_ptbl_rm(), NMG_CK_VERTEX, and nmg_jv(). Referenced by nmg_model_vertex_fuse(). Here is the call graph for this function: ![]() |
|
N M G _ R E G I O N _ B O T H _ V F U S E For every element in t1, scan t2 for geometric duplications. Deleted elements in t2 are marked by a null vertex pointer, rather than bothering to do a BU_PTBL_RM, which will re-copy the list to compress it. Exists as a support routine for nmg_two_region_vertex_fuse() Definition at line 232 of file nmg_fuse.c. References BU_PTBL_END, BU_PTBL_GET, and NMG_CK_VERTEX. |
|
N M G _ M O D E L _ V E R T E X _ F U S E Fuse together any vertices in the nmgmodel that are geometricly identical, within the tolerance. Definition at line 310 of file nmg_fuse.c. References BN_CK_TOL, bu_log(), bu_ptbl_free(), DEBUG_BASIC, model::magic, NMG_CK_MODEL, nmg_ptbl_vfuse(), and nmg_vertex_tabulate(). Referenced by nmg_model_fuse(). Here is the call graph for this function: ![]() |
|
N M G _ C N U R B _ I S _ L I N E A R Checks if cnurb is linear Returns: 1 - cnurb is linear 0 - either cnurb is not linear, or it's not obvious Definition at line 340 of file nmg_fuse.c. References bu_log(), edge_g_cnurb::c_size, edge_g_cnurb::ctl_points, DEBUG_MESH, NMG_CK_EDGE_G_CNURB, edge_g_cnurb::order, edge_g_cnurb::pt_type, rt_nurb_c_print(), RT_NURB_EXTRACT_COORDS, and VEQUAL. Here is the call graph for this function: ![]() |
|
N M G _ S N U R B _ I S _ P L A N A R Checks if snurb surface is planar Returns: 0 - surface is not planar 1 - surface is planar (within tolerance) Definition at line 404 of file nmg_fuse.c. References BN_CK_TOL, bn_mat_determinant(), bn_mat_inv(), bu_log(), face_g_snurb::ctl_points, DEBUG_MESH, H, HSCALE, MAGNITUDE, MAT4X3PNT, MAT_ZERO, NEAR_ZERO, NMG_CK_FACE_G_SNURB, face_g_snurb::order, face_g_snurb::pt_type, RT_NURB_EXTRACT_COORDS, rt_nurb_s_print(), face_g_snurb::s_size, SMALL_FASTF, VDOT, VSCALE, VSET, X, Y, and Z. Here is the call graph for this function: ![]() |
|
Referenced by nmg_cnurb_is_on_crv(), nmg_cnurb_lseg_coincident(), nmg_eval_linear_trim_to_tol(), and nmg_split_linear_trim(). |
|
Referenced by nmg_eval_trim_to_tol(), and nmg_split_trim(). |
|
Definition at line 702 of file nmg_fuse.c. References BN_CK_TOL, BU_LIST_INSERT, bu_log(), bu_malloc(), DEBUG_MESH, head, pt_list::l, NMG_CK_EDGE_G_CNURB, NMG_CK_FACE_G_SNURB, nmg_eval_trim_curve(), nmg_split_trim(), pt_list::t, and pt_list::xyz. Here is the call graph for this function: ![]() |
|
|
|
|
|
N M G _ C N U R B _ I S _ O N _ C R V Checks if CNURB eu lies on curve contained in list headed at "head" "Head" must contain a list of points (struct pt_list) each within tolerance of the next. (Just checks at "CHECK_NUMBER" points for now). Returns: 0 - cnurb is not on curve; 1 - cnurb is on curve Definition at line 986 of file nmg_fuse.c. References vertexuse::a, BN_CK_TOL, BU_CK_LIST_HEAD, BU_LIST_FOR, bu_log(), vertexuse::cnurb_p, DEBUG_MESH, bn_tol::dist_sq, edgeuse::eumate_p, head, vertexuse::magic_p, MAGSQ, NMG_CK_EDGE_G_CNURB, NMG_CK_EDGEUSE, NMG_CK_FACE_G_SNURB, NMG_CK_VERTEXUSE, NMG_CK_VERTEXUSE_A_CNURB, nmg_eval_linear_trim_curve(), NMG_VERTEXUSE_A_CNURB_MAGIC, edge_g_cnurb::order, vertexuse_a_cnurb::param, rt_bomb(), VBLEND2, VSUB2, and edgeuse::vu_p. Here is the call graph for this function: ![]() |
|
N M G _ M O D E L _ E D G E _ F U S E Definition at line 1258 of file nmg_fuse.c. References BN_CK_TOL, BU_PTBL_END, BU_PTBL_GET, bu_ptbl_zero(), edge::eu_p, edgeuse::g, edge::index, model::magic, edge::magic, edgeuse::magic_p, NMG_ARE_EUS_ADJACENT, NMG_CK_MODEL, NMG_EDGE_G_LSEG_MAGIC, NMG_EDGE_MAGIC, nmg_edge_tabulate(), and nmg_radial_join_eu(). Referenced by nmg_model_fuse(), and wdb_nmg_simplify_cmd(). Here is the call graph for this function: ![]() |
|
N M G _ M O D E L _ E D G E _ G _ F U S E The present algorithm is a consequence of the old edge geom ptr structure. XXX This might be better formulated by generating a list of all edge_g structs in the model, and comparing *them* pairwise. Definition at line 1322 of file nmg_fuse.c. References BN_CK_TOL, BU_LIST_FIRST, BU_LIST_MAIN_PTR, BU_PTBL_END, BU_PTBL_GET, model::magic, nmg_2edgeuse_g_coincident(), NMG_CK_EDGE_G_EITHER, NMG_CK_EDGE_G_LSEG, NMG_CK_EDGEUSE, NMG_CK_MODEL, NMG_EDGE_G_CNURB_MAGIC, nmg_edge_g_tabulate(), nmg_jeg(), NULL, and rt_bomb(). Referenced by nmg_model_fuse(), nmg_triangulate_model(), and wdb_nmg_simplify_cmd(). Here is the call graph for this function: ![]() |
|
N M G _ C K _ F U _ V E R T S Check that all the vertices in fu1 are within tol->dist of fu2's surface. fu1 and fu2 may be the same face, or different. This is intended to be a geometric check only, not a topology check. Topology may have become inappropriately shared. Returns - 0 All is well, or all verts are within TOL_MULTIPLES*tol->dist of fu2 count Number of verts *not* on fu2's surface when at least one is more than TOL_MULTIPLES*tol->dist from fu2. Definition at line 1398 of file nmg_fuse.c. References BN_CK_TOL, BU_LIST_FIRST, BU_LIST_FIRST_MAGIC, BU_LIST_FOR, bu_log(), vertex_g::coord, bn_tol::dist, DIST_PT_PLANE, loopuse::down_hd, FAST, face::g, faceuse::lu_hd, face_g_plane::N, NMG_CK_FACE, NMG_CK_FACE_G_PLANE, NMG_CK_FACEUSE, NMG_CK_VERTEX, NMG_CK_VERTEX_G, NMG_VERTEXUSE_MAGIC, face::plane_p, PLPRINT, rt_bomb(), TOL_MULTIPLES, vertexuse::v_p, vertex::vg_p, VPRINT, and edgeuse::vu_p. Referenced by nmg_ck_fg_verts(), nmg_fu_planeeqn(), nmg_make_faces_within_tol(), nmg_model_face_fuse(), and nmg_shell_coplanar_face_merge(). Here is the call graph for this function: ![]() |
|
N M G _ C K _ F G _ V E R T S Similar to nmg_ck_fu_verts, but checks all vertices that use the same face geometry as fu1 fu1 and f2 may be the same face, or different. This is intended to be a geometric check only, not a topology check. Topology may have become inappropriately shared. Returns - 0 All is well. count Number of verts *not* on fu2's surface. Definition at line 1496 of file nmg_fuse.c. References BN_CK_TOL, BU_LIST_FOR, face_g_plane::f_hd, faceuse::f_p, face::fu_p, face::g, NMG_CK_FACE, NMG_CK_FACE_G_PLANE, NMG_CK_FACEUSE, nmg_ck_fu_verts(), and face::plane_p. Referenced by nmg_two_face_fuse(). Here is the call graph for this function: ![]() |
|
N M G _ T W O _ F A C E _ F U S E XXX A better algorithm would be to compare loop by loop. If the two faces share all the verts of at least one loop of 3 or more vertices, then they should be shared. Otherwise it will be awkward having shared loop(s) on non-shared faces!! Compare the geometry of two faces, and fuse them if they are the same within tolerance. First compare the plane equations. If they are "similar" (within tol), then check all verts in f2 to make sure that they are within tol->dist of f1's geometry. If they are, then fuse the face geometry. Returns - 0 Faces were not fused. >0 Faces were successfully fused. Definition at line 1543 of file nmg_fuse.c. References BN_CK_TOL, bn_coplanar(), BU_LIST_FOR, bu_log(), bn_tol::dist, face_g_plane::f_hd, face::flip, face::fu_p, face::g, face_g_plane::N, NMG_CK_FACE, NMG_CK_FACE_G_PLANE, nmg_ck_fg_verts(), nmg_is_common_bigloop(), nmg_jfg(), face::plane_p, PLPRINT, and VDOT. Referenced by nmg_model_face_fuse(), and nmg_radial_join_eu(). Here is the call graph for this function: ![]() |
|
N M G _ M O D E L _ F A C E _ F U S E A routine to find all face geometry structures in an nmg model that have the same plane equation, and have them share face geometry. (See also nmg_shell_coplanar_face_merge(), which actually moves the loops into one face). The criteria for two face geometry structs being the "same" are: 1) The plane equations must be the same, within tolerance. 2) All the vertices on the 2nd face must lie within the distance tolerance of the 1st face's plane equation. Definition at line 1687 of file nmg_fuse.c. References BN_CK_TOL, BU_PTBL_END, BU_PTBL_GET, model::magic, NMG_CK_FACE, NMG_CK_FACE_G_EITHER, NMG_CK_FACE_G_PLANE, nmg_ck_fu_verts(), NMG_CK_MODEL, NMG_FACE_G_SNURB_MAGIC, nmg_face_tabulate(), nmg_pr_fu_briefly(), nmg_two_face_fuse(), PLPRINT, and rt_bomb(). Referenced by nmg_model_fuse(). Here is the call graph for this function: ![]() |
|
Referenced by nmg_isect_eu_fu(). |
|
N M G _ M O D E L _ B R E A K _ E _ O N _ V As the first step in evaluating a boolean formula, before starting to do face/face intersections, compare every edge in the model with every vertex in the model. If the vertex is within tolerance of the edge, break the edge, and enrole the new edge on a list of edges still to be processed. A list of edges and a list of vertices are built, and then processed. Space partitioning could improve the performance of this algorithm. For the moment, a brute-force approach is used. Returns - Number of edges broken. Definition at line 1838 of file nmg_fuse.c. References BN_CK_TOL, bn_isect_pt_lseg(), bu_log(), BU_PTBL_BASEADDR, bu_ptbl_init(), bu_ptbl_ins(), BU_PTBL_LASTADDR, BU_PTBL_LEN, vertex_g::coord, DEBUG_BASIC, DEBUG_BOOL, edgeuse::l, model::magic, bu_list::magic, NMG_CK_EDGEUSE, NMG_CK_MODEL, NMG_CK_VERTEX, nmg_e_and_v_tabulate(), nmg_ebreak(), NMG_EDGE_G_CNURB_MAGIC, vertex::vg_p, and void(). Referenced by nmg_model_fuse(). Here is the call graph for this function: ![]() |
|
N M G _ M O D E L _ F U S E This is the primary application interface to the geometry fusing support. Fuse together all data structures that are equal to each other, within tolerance. The algorithm is three part: 1) Fuse together all vertices. 2) Fuse together all face geometry, where appropriate. 3) Fuse together all edges. Edge fusing is handled last, because the difficult part there is sorting faces radially around the edge. It is important to know whether faces are shared or not at that point. XXX It would be more efficient to build all the ptbl's at once, XXX with a single traversal of the model. Definition at line 1942 of file nmg_fuse.c. References BN_CK_TOL, BU_LIST_FOR, bu_log(), DEBUG_BASIC, NMG_CK_MODEL, nmg_make_faces_within_tol(), nmg_model_break_e_on_v(), nmg_model_edge_fuse(), nmg_model_edge_g_fuse(), nmg_model_face_fuse(), nmg_model_vertex_fuse(), model::r_hd, and nmgregion::s_hd. Referenced by nmg_boolean(), nmg_find_edge_between_2fu(), and nmg_find_eg_between_2fg(). Here is the call graph for this function: ![]() |
|
N M G _ R A D I A L _ S O R T E D _ L I S T _ I N S E R T Build sorted list, with 'ang' running from zero to 2*pi. New edgeuses with same angle as an edgeuse already on the list are added AFTER the last existing one, for lack of any better way to break the tie. Definition at line 2015 of file nmg_fuse.c. References nmg_radial::ang, BU_CK_LIST_HEAD, BU_LIST_APPEND, BU_LIST_FOR_BACKWARDS, BU_LIST_INSERT, BU_LIST_IS_EMPTY, BU_LIST_PREV, nmg_radial::fu, nmg_radial::l, NMG_CK_RADIAL, and NULL. Referenced by nmg_radial_merge_lists(). |
|
Not only verity that list is monotone increasing, but that pointer integrity still exists. Definition at line 2064 of file nmg_fuse.c. References nmg_radial::ang, BN_CK_TOL, bn_radtodeg, BU_CK_LIST_HEAD, BU_LIST_FOR, BU_LIST_PNEXT_CIRC, BU_LIST_PPREV_CIRC, bu_log(), nmg_radial::eu, edgeuse::eumate_p, nmg_radial::fu, nmg_pr_radial_list(), NULL, edgeuse::radial_p, and rt_bomb(). Here is the call graph for this function: ![]() |
|
Verify that the angles are monotone increasing. Wire edgeuses are ignored. Definition at line 2105 of file nmg_fuse.c. References nmg_radial::ang, BN_CK_TOL, bn_radtodeg, BU_CK_LIST_HEAD, BU_LIST_FOR, bu_log(), nmg_radial::fu, nmg_pr_radial_list(), NULL, and rt_bomb(). Referenced by nmg_radial_join_eu_NEW(). Here is the call graph for this function: ![]() |
|
N M G _ I N S U R E _ L I S T _ I S _ I N C R E A S I N G Check if the passed bu_list is in increasing order. If not, reverse the order of the list. XXX Isn't the word "ensure"? Definition at line 2133 of file nmg_fuse.c. References nmg_radial::ang, BU_CK_LIST_HEAD, BU_LIST_FOR, bu_list_len(), bu_list_reverse(), nmg_radial::eu, edgeuse::eumate_p, nmg_radial::fu, MAX_FASTF, nmg_find_fu_of_eu(), and NULL. Here is the call graph for this function: ![]() |
|
Referenced by nmg_eu_radial_check(), nmg_radial_join_eu_NEW(), and nmg_s_radial_harmonize(). |
|
N M G _ R A D I A L _ M E R G E _ L I S T S Merge all of the src list into the dest list, sorting by angles. Definition at line 2378 of file nmg_fuse.c. References BN_CK_TOL, BU_CK_LIST_HEAD, BU_LIST_DEQUEUE, BU_LIST_WHILE, nmg_radial::l, and nmg_radial_sorted_list_insert(). Referenced by nmg_radial_join_eu_NEW(). Here is the call graph for this function: ![]() |
|
N M G _ I S _ C R A C K _ O U T I E If there is more than one edgeuse of a loopuse along an edge, then it is a "topological crack". There are two kinds, an "innie", where the crack is a null-area incursion into the interior of the loop, and an "outie", where the crack is a null-area protrusion outside of the interior of the loop. "Outie" "Innie" *-------* *-------* | ^ | ^ v | v | *<------* | *--->* | *---M-->* | *<-M-* | | | | | v | v | *------>* *------>* The algorithm used is to compute the geometric midpoint of the crack edge, "delete" that edge from the loop, and then classify the midpoint ("M") against the remainder of the loop. If the edge midpoint is inside the remains of the loop, then the crack is an "innie", otherwise it is an "outie". When there are an odd number of edgeuses along the crack, then the situation is "nasty": "Nasty" *-------* | ^ v | *<------* | *------>* | *<------* | *------>* | *<------* | | | | | v | *------------->* The caller is responsible for making sure that the edgeuse is not a wire edgeuse (i.e. that the edgeuse is part of a loop). In the "Nasty" case, all the edgeuse pairs are "outies" except for the last lone edgeuse, which should be handled as a "non-crack". Walk the loopuse's edgeuses list in edgeuse order to see which one is the last (non-crack) repeated edgeuse. For efficiency, detecting and dealing with this condition is left up to the caller, and is not checked for here. Definition at line 2445 of file nmg_fuse.c. References BN_CK_TOL, bu_log(), vertex_g::coord, DEBUG_BASIC, bn_tol::dist, DIST_PT_PLANE, bn_tol::dist_sq, edgeuse::e_p, edgeuse::eumate_p, loopuse::fu_p, edgeuse::lu_p, loopuse::magic_p, MAGNITUDE, NMG_CK_EDGE, NMG_CK_EDGEUSE, NMG_CK_FACEUSE, NMG_CK_LOOPUSE, NMG_CLASS_AinB, NMG_CLASS_AonBshared, NMG_CLASS_AoutB, nmg_class_name(), nmg_class_pt_lu_except(), NMG_FACEUSE_MAGIC, NMG_GET_FU_PLANE, nmg_loop_is_a_crack(), nmg_orientation(), nmg_pr_lu_briefly(), loopuse::orientation, OT_SAME, rt_bomb(), rt_pr_tol(), SMALL_FASTF, SQRT_SMALL_FASTF, edgeuse::up, loopuse::up, V3ARGS, vertexuse::v_p, VADD2SCALE, vertex::vg_p, VJOIN1, and edgeuse::vu_p. Referenced by nmg_radial_mark_cracks(). Here is the call graph for this function: ![]() |
|
N M G _ F I N D _ R A D I A L _ E U Definition at line 2540 of file nmg_fuse.c. References BU_CK_LIST_HEAD, BU_LIST_FOR, bu_log(), nmg_radial::eu, edgeuse::eumate_p, NMG_CK_EDGEUSE, NULL, and rt_bomb(). Here is the call graph for this function: ![]() |
|
N M G _ F I N D _ N E X T _ U S E _ O F _ 2 E _ I N _ L U Find the next use of either of two edges in the loopuse. The second edge pointer may be NULL. Definition at line 2564 of file nmg_fuse.c. References BU_LIST_PNEXT_CIRC, edgeuse::e_p, edgeuse::l, edgeuse::lu_p, NMG_CK_EDGE, NMG_CK_EDGEUSE, NMG_CK_LOOPUSE, and edgeuse::up. |
|
N M G _ R A D I A L _ M A R K _ C R A C K S For every edgeuse, if there are other edgeuses around this edge from the same face, then mark them all as part of a "crack". To be a crack the two edgeuses must be from the same loopuse. If the count of repeated ("crack") edgeuses is even, then classify the entire crack as an "innie" or an "outie". If the count is odd, this is a "Nasty" -- all but one edgeuse are marked as "outies", and the remaining one is marked as a non-crack. The "outie" edgeuses are marked off in pairs, in the loopuses's edgeuse order. Definition at line 2601 of file nmg_fuse.c. References BN_CK_TOL, BU_CK_LIST_HEAD, BU_LIST_FOR, BU_LIST_NOT_HEAD, BU_LIST_PNEXT, bu_log(), DEBUG_MESH_EU, nmg_radial::eu, nmg_radial::is_crack, nmg_radial::is_outie, NMG_CK_EDGE, NMG_CK_RADIAL, nmg_is_crack_outie(), nmg_pr_lu_briefly(), nmg_pr_radial_list(), and loopuse::up. Referenced by nmg_eu_radial_check(), and nmg_radial_join_eu_NEW(). Here is the call graph for this function: ![]() |
|
N M G _ R A D I A L _ F I N D _ A N _ O R I G I N A L Returns - NULL No edgeuses from indicated shell on this list nmg_radial* An original, else first newbie, else a newbie crack. Definition at line 2723 of file nmg_fuse.c. References BU_CK_LIST_HEAD, BU_LIST_FOR, bu_log(), nmg_radial::fu, nmg_radial::is_outie, NMG_CK_RADIAL, NMG_CK_SHELL, nmg_pr_radial_list(), NULL, rt_bomb(), and nmg_radial::s. Referenced by nmg_radial_check_parity(), and nmg_radial_mark_flips(). Here is the call graph for this function: ![]() |
|
N M G _ R A D I A L _ M A R K _ F L I P S For a given shell, find an original edgeuse from that shell, and then mark parity violators with a "flip" flag. Definition at line 2792 of file nmg_fuse.c. References BN_CK_TOL, BU_CK_LIST_HEAD, BU_LIST_FOR, BU_LIST_FOR_CIRC, BU_LIST_PPREV_CIRC, bu_log(), DEBUG_MESH_EU, nmg_radial::eu, nmg_radial::fu, nmg_radial::is_outie, nmg_radial::needs_flip, NMG_CK_RADIAL, NMG_CK_SHELL, nmg_pr_radial_list(), nmg_radial_find_an_original(), faceuse::orientation, orig, OT_SAME, rt_bomb(), nmg_radial::s, V3ARGS, vertexuse::v_p, and edgeuse::vu_p. Referenced by nmg_eu_radial_check(), nmg_radial_join_eu_NEW(), and nmg_s_radial_harmonize(). Here is the call graph for this function: ![]() |
|
N M G _ R A D I A L _ C H E C K _ P A R I T Y For each shell, check orientation parity of edgeuses within that shell. Definition at line 2891 of file nmg_fuse.c. References BN_CK_TOL, BU_CK_LIST_HEAD, BU_CK_PTBL, BU_LIST_FOR_CIRC, bu_log(), BU_PTBL_BASEADDR, BU_PTBL_LASTADDR, nmg_radial::eu, nmg_radial::fu, nmg_radial::is_outie, NMG_CK_RADIAL, NMG_CK_SHELL, nmg_radial_find_an_original(), faceuse::orientation, orig, OT_SAME, and nmg_radial::s. Referenced by nmg_radial_join_eu_NEW(). Here is the call graph for this function: ![]() |
|
|
|
N M G _ P R _ R A D I A L Definition at line 3019 of file nmg_fuse.c. References nmg_radial::ang, bn_radtodeg, bu_log(), nmg_radial::eu, edgeuse::eumate_p, nmg_radial::existing_flag, faceuse::f_p, nmg_radial::fu, nmg_radial::is_crack, nmg_radial::is_outie, nmg_radial::needs_flip, NMG_CK_RADIAL, nmg_orientation(), NULL, faceuse::orientation, and nmg_radial::s. Referenced by nmg_do_radial_join(), nmg_pr_radial_list(), and nmg_radial_implement_decisions(). Here is the call graph for this function: ![]() |
|
N M G _ P R _ R A D I A L _ L I S T Patterned after nmg_pr_fu_around_eu_vecs(), with similar format. Definition at line 3055 of file nmg_fuse.c. References BN_CK_TOL, BU_CK_LIST_HEAD, BU_LIST_FOR, bu_log(), NMG_CK_RADIAL, and nmg_pr_radial(). Referenced by nmg_do_radial_join(), nmg_eu_radial_check(), nmg_radial_find_an_original(), nmg_radial_join_eu_NEW(), nmg_radial_mark_cracks(), nmg_radial_mark_flips(), nmg_radial_verify_monotone(), nmg_radial_verify_pointers(), and nmg_s_radial_harmonize(). Here is the call graph for this function: ![]() |
|
N M G _ D O _ R A D I A L _ F L I P S This routine looks for nmg_radial structures with the same angle, and sorts them to match the order of nmg_radial structures that are not at that same angle Definition at line 3080 of file nmg_fuse.c. References nmg_radial::ang, BN_TOL_MAGIC, BU_CK_LIST_HEAD, BU_LIST_APPEND, BU_LIST_DEQUEUE, BU_LIST_FIRST, BU_LIST_NOT_HEAD, BU_LIST_PNEXT, BU_LIST_PNEXT_CIRC, BU_LIST_PPREV_CIRC, bn_tol::dist, bn_tol::dist_sq, nmg_radial::fu, nmg_radial::l, bn_tol::magic, bn_tol::para, bn_tol::perp, and nmg_radial::s. Referenced by nmg_do_radial_join(). |
|
Referenced by nmg_radial_join_eu_NEW(). |
|
|
N M G _ R A D I A L _ E X C H A N G E _ M A R K E D Exchange eu and eu->eumate_p on the radial list, where marked. Definition at line 3470 of file nmg_fuse.c. References after, BN_CK_TOL, BU_CK_LIST_HEAD, BU_LIST_FOR, nmg_radial::eu, edgeuse::eumate_p, nmg_radial::fu, nmg_radial::needs_flip, nmg_find_fu_of_eu(), and edgeuse::radial_p. Referenced by nmg_s_radial_harmonize(). Here is the call graph for this function: ![]() |
|
N M G _ S _ R A D I A L _ H A R M O N I Z E Visit each edge in this shell exactly once. Where the radial edgeuse parity has become disrupted due to a boolean operation or whatever, fix it. Definition at line 3520 of file nmg_fuse.c. References BN_CK_TOL, bu_free(), BU_LIST_DEQUEUE, BU_LIST_INIT, BU_LIST_WHILE, bu_log(), BU_PTBL_BASEADDR, BU_PTBL_LASTADDR, DEBUG_BASIC, shell::l, bu_list::magic, NMG_CK_EDGE, NMG_CK_SHELL, nmg_edge_tabulate(), nmg_eu_2vecs_perp(), nmg_find_ot_same_eu_of_e(), nmg_pr_fu_around_eu_vecs(), nmg_pr_radial_list(), nmg_radial_build_list(), nmg_radial_exchange_marked(), nmg_radial_mark_flips(), and NULL. Referenced by nmg_js(). Here is the call graph for this function: ![]() |
|
N M G _ E U _ R A D I A L _ C H E C K Where the radial edgeuse parity has become disrupted, note it. Returns - 0 OK !0 Radial parity problem detected Definition at line 3583 of file nmg_fuse.c. References BN_CK_TOL, bu_free(), BU_LIST_DEQUEUE, BU_LIST_FOR, BU_LIST_INIT, BU_LIST_WHILE, bu_log(), vertex_g::coord, DEBUG_BASIC, debug_file_count, edgeuse::e_p, nmg_radial::eu, edgeuse::eumate_p, nmg_radial::fu, edgeuse::l, nmg_radial::l, bu_list::magic, NMG_CK_EDGEUSE, nmg_eu_2vecs_perp(), nmg_find_fu_of_eu(), nmg_find_model(), nmg_pr_fu_around_eu_vecs(), nmg_pr_fu_briefly(), nmg_pr_radial_list(), nmg_radial_build_list(), nmg_radial_mark_cracks(), nmg_radial_mark_flips(), nmg_stash_model_to_file(), NULL, faceuse::orientation, OT_SAME, nmg_radial::s, V3ARGS, vertexuse::v_p, vertex::vg_p, and edgeuse::vu_p. Referenced by nmg_check_radial(), nmg_ebreaker(), and nmg_s_radial_check(). Here is the call graph for this function: ![]() |
|
N M G _ S _ R A D I A L _ C H E C K Visit each edge in this shell exactly once, and check it. Definition at line 3649 of file nmg_fuse.c. References BN_CK_TOL, bu_log(), BU_PTBL_BASEADDR, BU_PTBL_LASTADDR, DEBUG_BASIC, shell::l, bu_list::magic, NMG_CK_EDGE, NMG_CK_SHELL, nmg_edge_tabulate(), nmg_eu_radial_check(), and nmg_find_ot_same_eu_of_e(). Referenced by nmg_r_radial_check(). Here is the call graph for this function: ![]() |
|
N M G _ R _ R A D I A L _ C H E C K Definition at line 3680 of file nmg_fuse.c. References BN_CK_TOL, BU_LIST_FOR, bu_log(), DEBUG_BASIC, NMG_CK_REGION, NMG_CK_SHELL, nmg_s_radial_check(), and nmgregion::s_hd. Referenced by nmg_booltree_evaluate(). Here is the call graph for this function: ![]() |
|
N M G _ P I C K _ B E S T _ E D G E _ G Given two edgeuses with different edge geometry but running between the same two vertices, select the proper edge geometry to associate with. Really, there are 3 geometries to be compared here: the vector between the two endpoints of this edge, and the two edge_g structures. Rather than always taking eu2 or eu1, select the one that best fits this one edge. Consider fu1: B * /| eg2/ | / | D/ | * | / | A *-*----* C E eg1 At the start of a face/face intersection, eg1 runs from A to C, and eg2 runs ADB. The line of intersection with the other face (fu2, not drawn) lies along eg1. Assume that edge AC needs to be broken at E, where E is just a little more than tol->dist away from A. Existing point D is found because it *is* within tol->dist of E, thanks to the cosine of angle BAC. So, edge AC is broken on vertex D, and the intersection list contains vertexuses A, E, and C. Because D and E are the same point, fu1 has become a triangle with a little "spike" on the end. If this is handled simply by re-homing edge AE to eg2, it may cause trouble, because eg1 now runs EC, but the geometry for eg1 runs AC. If there are other vertices on edge eg1, the problem can not be resolved simply by recomputing the geometry of eg1. Since E (D) is within tolerance of eg1, it is not unreasonable just to leave eg1 alone. The issue boils down to selecting whether the existing eg1 or eg2 best represents the direction of the little stub edge AD (shared with AE). In this case, eg2 is the correct choice, as AD (and AE) lie on line AB. It would be disasterous to force *all* of eg1 to use the edge geometry of eg2, as the two lines are very different. Definition at line 146 of file nmg_mesh.c. References BN_CK_TOL, bn_radtodeg, bu_log(), vertex_g::coord, DEBUG_BASIC, edge_g_lseg::e_dir, edgeuse::eumate_p, edgeuse::g, edgeuse::lseg_p, NMG_CK_EDGE_G_LSEG, NMG_CK_EDGEUSE, vertexuse::v_p, VDOT, vertex::vg_p, VMOVE, VSUB2, edgeuse::vu_p, and VUNITIZE. Referenced by nmg_radial_join_eu(). Here is the call graph for this function: ![]() |
|
N M G _ V I S I T _ V E R T E X Definition at line 64 of file nmg_visit.c. References NMG_CK_VERTEX. Referenced by nmg_visit_vertexuse(). |
|
N M G _ V I S I T _ V E R T E X U S E Definition at line 81 of file nmg_visit.c. References NMG_CK_VERTEXUSE, and nmg_visit_vertex(). Referenced by nmg_visit(), nmg_visit_edgeuse(), nmg_visit_loopuse(), and nmg_visit_shell(). Here is the call graph for this function: ![]() |
|
N M G _ V I S I T _ E D G E Definition at line 102 of file nmg_visit.c. References NMG_CK_EDGE. Referenced by nmg_visit_edgeuse(). |
|
N M G _ V I S I T _ E D G E U S E Definition at line 116 of file nmg_visit.c. References NMG_CK_EDGEUSE, nmg_visit_edge(), and nmg_visit_vertexuse(). Referenced by nmg_visit(), nmg_visit_loopuse(), and nmg_visit_shell(). Here is the call graph for this function: ![]() |
|
N M G _ V I S I T _ L O O P Definition at line 138 of file nmg_visit.c. References faceuse::l, and NMG_CK_LOOP. Referenced by nmg_visit_loopuse(). |
|
N M G _ V I S I T _ L O O P U S E Definition at line 155 of file nmg_visit.c. References BU_LIST_FIRST, BU_LIST_FIRST_MAGIC, BU_LIST_FOR, NMG_CK_LOOPUSE, NMG_VERTEXUSE_MAGIC, nmg_visit_edgeuse(), nmg_visit_loop(), and nmg_visit_vertexuse(). Referenced by nmg_visit(), nmg_visit_faceuse(), and nmg_visit_shell(). Here is the call graph for this function: ![]() |
|
N M G _ V I S I T _ F A C E Definition at line 183 of file nmg_visit.c. Referenced by nmg_visit_faceuse(). |
|
N M G _ V I S I T _ F A C E U S E Definition at line 199 of file nmg_visit.c. References BU_LIST_FOR, NMG_CK_FACEUSE, nmg_visit_face(), and nmg_visit_loopuse(). Referenced by nmg_visit(), and nmg_visit_shell(). Here is the call graph for this function: ![]() |
|
N M G _ V I S I T _ S H E L L Definition at line 223 of file nmg_visit.c. References BU_LIST_FOR, NMG_CK_SHELL, nmg_visit_edgeuse(), nmg_visit_faceuse(), nmg_visit_loopuse(), and nmg_visit_vertexuse(). Referenced by nmg_visit(), and nmg_visit_region(). Here is the call graph for this function: ![]() |
|
N M G _ V I S I T _ R E G I O N Definition at line 256 of file nmg_visit.c. References BU_LIST_FOR, NMG_CK_REGION, and nmg_visit_shell(). Referenced by nmg_visit(), and nmg_visit_model(). Here is the call graph for this function: ![]() |
|
N M G _ V I S I T _ M O D E L Definition at line 279 of file nmg_visit.c. References BU_LIST_FOR, NMG_CK_MODEL, and nmg_visit_region(). Referenced by nmg_visit(). Here is the call graph for this function: ![]() |
|
|
Definition at line 231 of file db5_types.c. References DB5_MAJORTYPE_RESERVED, db5_type::heed_minor, and db5_type::major_code. |
|
Definition at line 246 of file db5_types.c. References DB5_MAJORTYPE_RESERVED, db5_type::description, db5_type::heed_minor, and db5_type::major_code. |
|
Definition at line 261 of file db5_types.c. References DB5_MAJORTYPE_RESERVED, db5_type::heed_minor, db5_type::major_code, and db5_type::minor_code. |
|
Definition at line 281 of file db5_types.c. References DB5_MAJORTYPE_RESERVED, db5_type::description, db5_type::heed_minor, db5_type::major_code, and db5_type::minor_code. Referenced by rt_retrieve_binunif(). |
|
Definition at line 302 of file db5_types.c. References DB5_MAJORTYPE_RESERVED, db5_type::major_code, and db5_type::minor_code. |
|
Definition at line 319 of file db5_types.c. References DB5_MAJORTYPE_RESERVED, db5_type::description, db5_type::major_code, and db5_type::minor_code. |
|
Definition at line 337 of file db5_types.c. References DB5_MINORTYPE_BINU_16BITINT, DB5_MINORTYPE_BINU_16BITINT_U, DB5_MINORTYPE_BINU_32BITINT, DB5_MINORTYPE_BINU_32BITINT_U, DB5_MINORTYPE_BINU_64BITINT, DB5_MINORTYPE_BINU_64BITINT_U, DB5_MINORTYPE_BINU_8BITINT, DB5_MINORTYPE_BINU_8BITINT_U, DB5_MINORTYPE_BINU_DOUBLE, and DB5_MINORTYPE_BINU_FLOAT. Referenced by rt_mk_binunif(), and wdb_binary_cmd(). |
|
|
Definition at line 458 of file wdb_obj.c. References interp, NULL, RT_WDB_NULL, TCL_ERROR, TCL_OK, void(), and wdb_deleteProc(). Here is the call graph for this function: ![]() |
|
Definition at line 437 of file wdb_obj.c. References BU_LIST_DEQUEUE, bu_observer_free(), bu_vls_free(), dgo_impending_wdb_close(), rt_wdb::l, RT_CK_WDB, wdb_close(), rt_wdb::wdb_interp, rt_wdb::wdb_name, and rt_wdb::wdb_observers. Referenced by wdb_create_cmd(). Here is the call graph for this function: ![]() |
|
Definition at line 897 of file wdb_obj.c. References interp, and wdb_get_cmd(). Here is the call graph for this function: ![]() |
|
Definition at line 255 of file dg_obj.c. References bu_cmd(), and interp. Here is the call graph for this function: ![]() |
|
Definition at line 483 of file wdb_obj.c. References rt_tess_tol::abs, BN_TOL_MAGIC, BU_LIST_APPEND, BU_LIST_INIT, bu_vls_init(), bu_vls_strcpy(), bn_tol::dist, bn_tol::dist_sq, interp, rt_wdb::l, bu_observer::l, bn_tol::magic, rt_tess_tol::magic, rt_tess_tol::norm, NULL, bn_tol::para, bn_tol::perp, rt_tess_tol::rel, rt_initial_tree_state, RT_TESS_TOL_MAGIC, rt_uniresource, RT_WDB_NULL, TCL_ERROR, TCL_OK, db_tree_state::ts_tol, db_tree_state::ts_ttol, rt_wdb::wdb_air_default, rt_wdb::wdb_initial_tree_state, rt_wdb::wdb_interp, rt_wdb::wdb_item_default, rt_wdb::wdb_los_default, rt_wdb::wdb_mat_default, rt_wdb::wdb_name, rt_wdb::wdb_observers, rt_wdb::wdb_resp, rt_wdb::wdb_tol, and rt_wdb::wdb_ttol. Here is the call graph for this function: ![]() |
|
Definition at line 658 of file wdb_obj.c. References db_create(), db_dirbuild(), db_open(), DBI_NULL, interp, NULL, and perror(). Referenced by wdb_reopen_cmd(). Here is the call graph for this function: ![]() |
|
Definition at line 8946 of file wdb_obj.c. References bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), db_lookup(), rt_wdb::dbip, DIR_NULL, interp, LOOKUP_NOISY, and TCL_ERROR. Here is the call graph for this function: ![]() |
|
Definition at line 9932 of file wdb_obj.c. References atof(), bu_getopt(), bu_optarg, bu_opterr, bu_optind, bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), DB5_MAJORTYPE_BRLCAD, DB5_MINORTYPE_BRLCAD_BOT, db_lookup(), db_i::dbi_local2base, rt_wdb::dbip, DIR_NULL, rt_db_internal::idb_major_type, rt_db_internal::idb_minor_type, rt_db_internal::idb_ptr, interp, LOOKUP_QUIET, RT_BOT_CK_MAGIC, rt_bot_decimate(), rt_db_free_internal(), rt_db_get_internal(), RT_INIT_DB_INTERNAL, TCL_ERROR, TCL_OK, wdb_put_internal(), and rt_wdb::wdb_resp. Here is the call graph for this function: ![]() |
|
|
|
Definition at line 743 of file wdb_obj.c. References bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), db_close(), db_i::dbi_filename, DBI_NULL, rt_wdb::dbip, dgo_zapall(), interp, NULL, TCL_ERROR, TCL_OK, and wdb_prep_dbip(). Here is the call graph for this function: ![]() |
|
Definition at line 800 of file wdb_obj.c. References bu_vls_init(), bu_vls_strcat(), db_regexp_match_all(), rt_wdb::dbip, interp, NULL, RT_CK_WDB_TCL, and TCL_ERROR. Here is the call graph for this function: ![]() |
|
Definition at line 848 of file wdb_obj.c. References bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), rt_wdb::dbip, rt_db_internal::idb_meth, interp, NULL, rt_db_free_internal(), rt_tcl_import_from_path(), rt_uniresource, status, and TCL_ERROR. Referenced by wdb_get_tcl(). Here is the call graph for this function: ![]() |
|
Definition at line 1081 of file wdb_obj.c. References bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), db_lookup(), rt_wdb::dbip, DIR_NULL, interp, LOOKUP_QUIET, name, NULL, RT_INIT_DB_INTERNAL, TCL_ERROR, and type. Here is the call graph for this function: ![]() |
|
Definition at line 1179 of file wdb_obj.c. References bu_observer_notify(), bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), db_lookup(), rt_wdb::dbip, DIR_NULL, rt_db_internal::idb_meth, interp, LOOKUP_QUIET, name, NULL, RT_CK_DB_INTERNAL, RT_CK_DBI_TCL, RT_CK_FUNCTAB, rt_db_free_internal(), rt_db_get_internal(), rt_uniresource, status, TCL_ERROR, TCL_OK, rt_wdb::wdb_name, rt_wdb::wdb_observers, and wdb_put_internal(). Here is the call graph for this function: ![]() |
|
Definition at line 1262 of file wdb_obj.c. References bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), interp, NULL, rt_get_functab_by_label(), and TCL_ERROR. Here is the call graph for this function: ![]() |
|
Definition at line 1302 of file wdb_obj.c. References bu_getopt(), bu_optind, directory::d_forw, directory::d_nref, db_update_nref(), db_i::dbi_Head, db_i::dbi_version, rt_wdb::dbip, DIR_NULL, interp, NULL, RT_CK_DBI_TCL, RT_CK_WDB_TCL, RT_DBNHASH, and rt_uniresource. Here is the call graph for this function: ![]() |
|
Definition at line 1456 of file wdb_obj.c. References application::a_magic, application::a_purpose, application::a_resource, application::a_rt_i, BU_ASSERT_PTR, BU_GETSTRUCT, bu_malloc(), BU_PTBL_GET, bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), rt_wdb::dbip, interp, NULL, RT_AP_MAGIC, RT_APPLICATION_INIT, rt_ck(), RT_CK_DBI_TCL, RT_CK_WDB_TCL, rt_free_rti(), rt_gettrees(), rt_init_resource(), rt_new_rti(), rt_tcl_rt(), rt_i::rti_dont_instance, rt_i::rti_hasty_prep, rt_i::rti_resources, TCL_ERROR, TCL_OK, rt_i::useair, and void(). Here is the call graph for this function: ![]() |
|
Definition at line 1806 of file wdb_obj.c. References bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), db_dump(), rt_wdb::dbip, interp, NULL, RT_CK_DBI_TCL, RT_CK_WDB_TCL, RT_WDB_NULL, TCL_ERROR, TCL_OK, wdb_close(), and wdb_fopen(). Here is the call graph for this function: ![]() |
|
Definition at line 1865 of file wdb_obj.c. References bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), rt_wdb::dbip, interp, NULL, TCL_ERROR, and TCL_OK. Here is the call graph for this function: ![]() |
|
Definition at line 1906 of file wdb_obj.c. References bu_avs_add(), bu_avs_add_nonunique(), bu_avs_init(), bu_getopt(), bu_optind, bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), DIR_COMB, DIR_HIDDEN, DIR_REGION, DIR_SOLID, interp, MAXARGS, NULL, and TCL_ERROR. Here is the call graph for this function: ![]() |
|
Definition at line 2080 of file wdb_obj.c. References bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), interp, MAXARGS, NULL, TCL_ERROR, and wdb_pathsum_cmd(). Here is the call graph for this function: ![]() |
|
Definition at line 5002 of file wdb_obj.c. References bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), db_lookup(), rt_wdb::dbip, DIR_NULL, interp, LOOKUP_NOISY, and TCL_ERROR. Here is the call graph for this function: ![]() |
|
Definition at line 8515 of file wdb_obj.c. References bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), db_walk_tree(), rt_wdb::dbip, interp, TCL_ERROR, TCL_OK, and rt_wdb::wdb_initial_tree_state. Here is the call graph for this function: ![]() |
|
Definition at line 2347 of file wdb_obj.c. References bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), db_lookup(), rt_wdb::dbip, DIR_NULL, interp, LOOKUP_NOISY, MAXARGS, TCL_ERROR, WDB_CPEVAL, WDB_LISTEVAL, WDB_LISTPATH, wdb_trace_data::wtd_dbip, wdb_trace_data::wtd_flag, wdb_trace_data::wtd_interp, wdb_trace_data::wtd_obj, wdb_trace_data::wtd_objpos, and wdb_trace_data::wtd_prflag. Referenced by wdb_list_cmd(). Here is the call graph for this function: ![]() |
|
Definition at line 2474 of file wdb_obj.c. References bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), interp, MAXARGS, and TCL_ERROR. Here is the call graph for this function: ![]() |
|
Definition at line 2569 of file wdb_obj.c. References bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), db_delete(), db_dirdelete(), db_lookup(), rt_wdb::dbip, dgo_eraseobjall_callback(), DIR_NULL, interp, LOOKUP_NOISY, LOOKUP_QUIET, MAXARGS, RT_DIR_PHONY_ADDR, TCL_ERROR, and WDB_TCL_CHECK_READ_ONLY. Here is the call graph for this function: ![]() |
|
Definition at line 2644 of file wdb_obj.c. References bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), directory::d_flags, directory::d_forw, directory::d_namep, db_i::dbi_Head, rt_wdb::dbip, DIR_NULL, interp, MAXARGS, rt_db_get_internal(), rt_uniresource, TCL_ERROR, TCL_OK, and WDB_TCL_CHECK_READ_ONLY. Here is the call graph for this function: ![]() |
|
Definition at line 2745 of file wdb_obj.c. References bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), db_functree(), db_lookup(), rt_wdb::dbip, DIR_NULL, interp, wdb_killtree_data::interp, LOOKUP_NOISY, MAXARGS, wdb_killtree_data::notify, RT_DIR_PHONY_ADDR, TCL_ERROR, rt_wdb::wdb_resp, and WDB_TCL_CHECK_READ_ONLY. Here is the call graph for this function: ![]() |
|
Definition at line 2835 of file wdb_obj.c. References bu_free_external(), bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), directory::d_flags, directory::d_minor_type, db_diradd(), db_get_external(), db_lookup(), db_put_external(), rt_wdb::dbip, DIR_NULL, interp, LOOKUP_NOISY, LOOKUP_QUIET, TCL_ERROR, TCL_OK, and WDB_TCL_CHECK_READ_ONLY. Here is the call graph for this function: ![]() |
|
Definition at line 2902 of file wdb_obj.c. References bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), db_lookup(), db_rename(), rt_wdb::dbip, DIR_NULL, interp, LOOKUP_NOISY, LOOKUP_QUIET, rt_db_free_internal(), rt_db_get_internal(), rt_db_put_internal(), rt_uniresource, TCL_ERROR, TCL_OK, and WDB_TCL_CHECK_READ_ONLY. Here is the call graph for this function: ![]() |
|
Definition at line 2973 of file wdb_obj.c. References bu_free(), bu_log(), bu_strdup, bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), directory::d_forw, directory::d_major_type, directory::d_minor_type, directory::d_namep, DB5_MAJORTYPE_BRLCAD, DB5_MINORTYPE_BRLCAD_EXTRUDE, DB5_MINORTYPE_BRLCAD_SKETCH, db_lookup(), db_i::dbi_Head, db_i::dbi_version, rt_wdb::dbip, DIR_NULL, rt_db_internal::idb_ptr, interp, LOOKUP_NOISY, LOOKUP_QUIET, NAMESIZE, rt_db_get_internal(), rt_db_put_internal(), RT_EXTRUDE_CK_MAGIC, rt_uniresource, stack, TCL_ERROR, and WDB_TCL_CHECK_READ_ONLY. Here is the call graph for this function: ![]() |
|
Definition at line 3339 of file wdb_obj.c. References ADD_PREFIX, ADD_SUFFIX, bu_free(), bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), bu_vls_strcpy(), bu_vls_strlen(), bu_vls_trunc(), directory::d_major_type, DB5_MAJORTYPE_ATTRIBUTE_ONLY, db_close(), db_dirbuild(), db_open(), db_sync(), db_i::dbi_filename, db_i::dbi_freep, DBI_NULL, db_i::dbi_version, rt_wdb::dbip, FOR_ALL_DIRECTORY_END, FOR_ALL_DIRECTORY_START, interp, concat_data::new_dbip, concat_data::old_dbip, OLD_PREFIX, perror(), concat_data::prestr, ptr, rt_mempurge(), TCL_ERROR, Tcl_GetHashValue, TCL_OK, TCL_STRING_KEYS, concat_data::unique_mode, void(), and WDB_TCL_CHECK_READ_ONLY. Here is the call graph for this function: ![]() |
|
Definition at line 3722 of file wdb_obj.c. References bu_free(), bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), bu_vls_strcpy(), bu_vls_strlen(), bu_vls_trunc(), db5_scan(), db_close(), db_open(), db_scan(), db_i::dbi_filename, db_i::dbi_freep, DBI_NULL, db_i::dbi_version, rt_wdb::dbip, dir_check_stuff::dup_dirp, interp, dir_check_stuff::main_dbip, perror(), rt_mempurge(), TCL_ERROR, TCL_OK, void(), wdb_getspace(), rt_wdb::wdb_ncharadd, rt_wdb::wdb_num_dups, rt_wdb::wdb_prestr, wdb_vls_col_pr4v(), and dir_check_stuff::wdbp. Here is the call graph for this function: ![]() |
|
Definition at line 3824 of file wdb_obj.c. References bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), db_lookup(), rt_wdb::dbip, DIR_NULL, interp, LOOKUP_NOISY, MAXARGS, TCL_ERROR, wdb_combadd(), WDB_TCL_CHECK_READ_ONLY, and WMOP_UNION. Here is the call graph for this function: ![]() |
|
Definition at line 3872 of file wdb_obj.c. References bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), directory::d_flags, directory::d_namep, db_lookup(), db_tree_del_dbleaf(), rt_wdb::dbip, DIR_NULL, rt_db_internal::idb_ptr, interp, LOOKUP_NOISY, MAXARGS, RT_CK_COMB, rt_db_get_internal(), rt_uniresource, TCL_ERROR, TCL_OK, rt_comb_internal::tree, and WDB_TCL_CHECK_READ_ONLY. Here is the call graph for this function: ![]() |
|
Definition at line 3953 of file wdb_obj.c. References bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), db_lookup(), rt_wdb::dbip, DIR_NULL, interp, LOOKUP_QUIET, MAXARGS, TCL_ERROR, rt_wdb::wdb_air_default, rt_wdb::wdb_item_default, and WDB_TCL_CHECK_READ_ONLY. Here is the call graph for this function: ![]() |
|
Definition at line 4058 of file wdb_obj.c. References bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), directory::d_flags, db_lookup(), rt_wdb::dbip, DIR_NULL, interp, LOOKUP_QUIET, MAXARGS, TCL_ERROR, and WDB_TCL_CHECK_READ_ONLY. Here is the call graph for this function: ![]() |
|
Definition at line 4444 of file wdb_obj.c. References bu_getopt(), bu_optind, bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), directory::d_flags, directory::d_forw, db_i::dbi_Head, rt_wdb::dbip, DIR_HIDDEN, DIR_NULL, interp, MAXARGS, rt_db_get_internal(), rt_uniresource, and TCL_ERROR. Here is the call graph for this function: ![]() |
|
Definition at line 4684 of file wdb_obj.c. References BU_GETSTRUCT, BU_LIST_FOR, BU_LIST_INIT, BU_LIST_INSERT, BU_LIST_IS_HEAD, bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), interp, wdb_id_to_names::l, MAXARGS, start, and TCL_ERROR. Here is the call graph for this function: ![]() |
|
Definition at line 4864 of file wdb_obj.c. References bu_vls_addr(), bu_vls_free(), bu_vls_from_argv(), bu_vls_init(), bu_vls_printf(), db_update_ident(), db_i::dbi_base2local, db_i::dbi_title, rt_wdb::dbip, interp, MAXARGS, RT_CK_DBI, RT_CK_WDB, TCL_ERROR, TCL_OK, and WDB_TCL_CHECK_READ_ONLY. Here is the call graph for this function: ![]() |
|
Definition at line 5225 of file wdb_obj.c. References bu_getopt(), bu_optarg, bu_optind, bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), db_lookup(), rt_wdb::dbip, DIR_NULL, interp, LOOKUP_NOISY, MAXARGS, and TCL_ERROR. Here is the call graph for this function: ![]() |
|
Definition at line 5390 of file wdb_obj.c. References BU_GETSTRUCT, bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), db5_update_attribute(), db_i::dbi_version, rt_wdb::dbip, interp, MATER_NO_ADDR, MATER_NULL, mater::mt_b, mater::mt_daddr, mater::mt_forw, mater::mt_g, mater::mt_high, mater::mt_low, mater::mt_r, rt_insert_color(), rt_material_head, TCL_ERROR, TCL_OK, and WDB_TCL_CHECK_READ_ONLY. Here is the call graph for this function: ![]() |
|
Definition at line 5509 of file wdb_obj.c. References bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), interp, MATER_NULL, mater::mt_forw, rt_material_head, TCL_ERROR, and TCL_OK. Here is the call graph for this function: ![]() |
|
Definition at line 5552 of file wdb_obj.c. References rt_tess_tol::abs, bn_degtorad, bn_radtodeg, bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), bn_tol::dist, bn_tol::dist_sq, int, interp, rt_tess_tol::norm, bn_tol::para, bn_tol::perp, rt_tess_tol::rel, status, TCL_ERROR, TCL_OK, rt_wdb::wdb_tol, and rt_wdb::wdb_ttol. Here is the call graph for this function: ![]() |
|
Definition at line 5874 of file wdb_obj.c. References wdb_push_id::back, bu_free(), bu_getopt(), BU_GETSTRUCT, bu_optarg, bu_optind, bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), directory::d_namep, db_lookup(), db_walk_tree(), rt_wdb::dbip, FOR_ALL_WDB_PUSH_SOLIDS, wdb_push_id::forw, interp, wdb_push_data::interp, wdb_push_id::magic, MAXARGS, wdb_push_id::pi_dir, wdb_push_data::pi_head, wdb_push_id::pi_mat, wdb_push_data::push_error, RT_CHECK_DBI, RT_CK_DB_INTERNAL, rt_db_free_internal(), rt_db_get_internal(), rt_db_put_internal(), RT_G_DEBUG, rt_uniresource, TCL_ERROR, TCL_OK, wdb_identitize(), rt_wdb::wdb_initial_tree_state, WDB_MAGIC_PUSH_ID, and WDB_TCL_CHECK_READ_ONLY. Here is the call graph for this function: ![]() |
|
Definition at line 6595 of file wdb_obj.c. References bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), directory::d_flags, db_lookup(), rt_wdb::dbip, DIR_NULL, DIR_REGION, rt_db_internal::idb_ptr, interp, LOOKUP_NOISY, rt_comb_internal::region_id, rt_comb_ifree(), rt_db_free_internal(), rt_db_get_internal(), rt_uniresource, TCL_ERROR, and TCL_OK. Here is the call graph for this function: ![]() |
|
Definition at line 6712 of file wdb_obj.c. References bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), directory::d_forw, directory::d_nref, db_i::dbi_Head, rt_wdb::dbip, DIR_NULL, interp, MAXARGS, and TCL_ERROR. Here is the call graph for this function: ![]() |
|
Definition at line 6817 of file wdb_obj.c. References bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), bu_vls_trunc(), db_lookup(), rt_wdb::dbip, DIR_NULL, interp, LOOKUP_NOISY, MAXARGS, TCL_ERROR, and wdb_do_list(). Here is the call graph for this function: ![]() |
|
Definition at line 6866 of file wdb_obj.c. References bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), db_lookup(), rt_wdb::dbip, DIR_NULL, interp, LOOKUP_NOISY, TCL_ERROR, TCL_OK, wdb_combadd(), WDB_TCL_CHECK_READ_ONLY, WMOP_INTERSECT, WMOP_SUBTRACT, and WMOP_UNION. Here is the call graph for this function: ![]() |
|
Definition at line 6929 of file wdb_obj.c. References bu_cmd(), bu_observer_cmds, bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), interp, TCL_ERROR, and rt_wdb::wdb_observers. Here is the call graph for this function: ![]() |
|
Definition at line 7239 of file wdb_obj.c. References bu_malloc(), bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), DB5_MAJORTYPE_BRLCAD, db_diradd(), db_lookup(), rt_wdb::dbip, DIR_NULL, ID_ARB8, rt_db_internal::idb_major_type, rt_db_internal::idb_meth, rt_db_internal::idb_ptr, interp, LOOKUP_QUIET, rt_arb_internal::magic, MAXARGS, rt_arb_internal::pt, RT_ARB_INTERNAL_MAGIC, rt_db_free_internal(), rt_db_put_internal(), RT_INIT_DB_INTERNAL, TCL_ERROR, TCL_OK, VMOVE, VSET, wdb_get_obj_bounds(), rt_wdb::wdb_resp, WDB_TCL_CHECK_READ_ONLY, X, Y, and Z. Here is the call graph for this function: ![]() |
|
Definition at line 7339 of file wdb_obj.c. References bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), interp, TCL_ERROR, and TCL_OK. Here is the call graph for this function: ![]() |
|
Definition at line 7425 of file wdb_obj.c. References bu_mm_value(), bu_units_string(), bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), db_update_ident(), db_i::dbi_base2local, db_i::dbi_local2base, db_i::dbi_title, rt_wdb::dbip, interp, TCL_ERROR, and TCL_OK. Here is the call graph for this function: ![]() |
|
Definition at line 7510 of file wdb_obj.c. References bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), db_lookup(), db_i::dbi_version, rt_wdb::dbip, DIR_NULL, interp, LOOKUP_NOISY, RT_CK_DBI, RT_CK_WDB, TCL_ERROR, and WDB_TCL_CHECK_READ_ONLY. Here is the call graph for this function: ![]() |
|
Definition at line 7661 of file wdb_obj.c. References bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), db_lookup(), db_i::dbi_version, rt_wdb::dbip, DIR_NULL, interp, LOOKUP_NOISY, RT_CK_DBI, RT_CK_WDB, TCL_ERROR, and WDB_TCL_CHECK_READ_ONLY. Here is the call graph for this function: ![]() |
|
Definition at line 7779 of file wdb_obj.c. References bu_attribute_value_set::avp, bu_avs_free(), bu_avs_get(), bu_avs_init_empty(), bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), bu_attribute_value_set::count, directory::d_namep, db5_get_attributes(), db_lookup(), db_i::dbi_version, rt_wdb::dbip, DIR_NULL, interp, LOOKUP_QUIET, bu_attribute_value_pair::name, TCL_ERROR, val, and bu_attribute_value_pair::value. Referenced by wdb_attr_tcl(). Here is the call graph for this function: ![]() |
|
Definition at line 8453 of file wdb_obj.c. References bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), rt_wdb::dbip, DIR_REGION, flags, interp, TCL_ERROR, and TCL_OK. Here is the call graph for this function: ![]() |
|
Definition at line 464 of file wdb_comb_std.c. References rt_comb_internal::aircode, bu_getopt(), BU_LIST_INIT, bu_optind, bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), directory::d_flags, db_lookup(), db_i::dbi_read_only, rt_wdb::dbip, DIR_COMB, DIR_NULL, rt_comb_internal::GIFTmater, rt_db_internal::idb_ptr, interp, tokens::l, LOOKUP_NOISY, LOOKUP_QUIET, rt_comb_internal::los, NULL, PRINT_USAGE, ptr, rt_comb_internal::region_flag, rt_comb_internal::region_id, RT_CK_COMB, rt_db_free_internal(), rt_db_get_internal(), rt_db_put_internal(), RT_MAXARGS, rt_uniresource, TCL_ERROR, TCL_OK, tokens::type, rt_wdb::wdb_air_default, wdb_append_lparen(), wdb_append_rparen(), rt_wdb::wdb_item_default, rt_wdb::wdb_los_default, rt_wdb::wdb_mat_default, WDB_TOK_LPAREN, WDB_TOK_NULL, and WDB_TOK_RPAREN. Referenced by wdb_comb_std_tcl(). Here is the call graph for this function: ![]() |
|
Definition at line 8338 of file wdb_obj.c. References atof(), bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), directory::d_flags, db_diradd(), db_lookup(), db_i::dbi_local2base, rt_wdb::dbip, DIR_NULL, ID_NMG, rt_db_internal::idb_ptr, interp, LOOKUP_NOISY, LOOKUP_QUIET, NMG_CK_MODEL, nmg_edge_collapse(), nmg_triangulate_model(), rt_db_free_internal(), rt_db_get_internal(), rt_db_put_internal(), rt_uniresource, TCL_ERROR, TCL_OK, WDB_TCL_CHECK_READ_ONLY, WDB_TCL_WRITE_ERR_return, and rt_wdb::wdb_tol. Here is the call graph for this function: ![]() |
|
|
Definition at line 1699 of file wdb_obj.c. References bn_mat_identity, bu_free(), BU_LIST_APPEND, BU_LIST_DEQUEUE, BU_LIST_FIRST, BU_LIST_FOR, bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), bu_vls_trunc(), DB5_MAJORTYPE_BRLCAD, db_diradd(), db_lookup(), rt_wdb::dbip, DIR_NULL, DIR_SOLID, ID_NMG, rt_db_internal::idb_major_type, rt_db_internal::idb_meth, rt_db_internal::idb_ptr, interp, shell::l, LOOKUP_NOISY, NMG_CK_MODEL, nmg_dup_shell(), nmg_km(), nmg_m_reindex(), nmg_mmr(), nmg_rebound(), NULL, model::r_hd, shell::r_p, rt_db_get_internal(), rt_db_put_internal(), RT_INIT_DB_INTERNAL, rt_uniresource, nmgregion::s_hd, TCL_ERROR, TCL_OK, WDB_TCL_ALLOC_ERR_return, WDB_TCL_CHECK_READ_ONLY, and rt_wdb::wdb_tol. Here is the call graph for this function: ![]() |
|
Definition at line 6432 of file wdb_obj.c. References bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), directory::d_flags, directory::d_forw, directory::d_nref, directory::d_uses, db_lookup(), db_i::dbi_Head, rt_wdb::dbip, DIR_NULL, DIR_SOLID, interp, LOOKUP_NOISY, TCL_ERROR, and WDB_TCL_CHECK_READ_ONLY. Here is the call graph for this function: ![]() |
|
Definition at line 1612 of file wdb_obj.c. References bn_tcl_mat_print(), bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), directory::d_flags, db_lookup(), db_tree_funcleaf(), rt_wdb::dbip, DIR_COMB, DIR_NULL, rt_db_internal::idb_ptr, interp, LOOKUP_NOISY, MAT_IDN, NULL, rt_comb_ifree(), rt_db_free_internal(), rt_db_get_internal(), rt_uniresource, showmats_data::smd_child, showmats_data::smd_count, showmats_data::smd_interp, showmats_data::smd_mat, TCL_ERROR, TCL_OK, rt_comb_internal::tree, and WDB_TCL_READ_ERR_return. Here is the call graph for this function: ![]() |
|
Definition at line 3471 of file wdb_obj.c. References bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), db_lookup(), rt_wdb::dbip, DIR_NULL, interp, LOOKUP_NOISY, LOOKUP_QUIET, MAT_IDN, TCL_ERROR, WDB_CPEVAL, WDB_TCL_CHECK_READ_ONLY, wdb_trace_data::wtd_dbip, wdb_trace_data::wtd_flag, wdb_trace_data::wtd_interp, wdb_trace_data::wtd_obj, and wdb_trace_data::wtd_prflag. Here is the call graph for this function: ![]() |
|
Definition at line 5042 of file wdb_obj.c. References bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), db_i::dbi_version, rt_wdb::dbip, interp, TCL_ERROR, and TCL_OK. Here is the call graph for this function: ![]() |
|
|
Definition at line 114 of file track.c. References atof(), BU_LIST_INIT, bu_malloc(), bu_strdup, bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), db_i::dbi_local2base, rt_wdb::dbip, head, interp, NULL, TCL_ERROR, TCL_OK, WDB_TCL_CHECK_READ_ONLY, WMOP_INTERSECT, and WMOP_SUBTRACT. Here is the call graph for this function: ![]() |
|
Definition at line 8566 of file wdb_obj.c. References atof(), bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), db_diradd(), db_lookup(), db_i::dbi_version, rt_wdb::dbip, DIR_NULL, ID_BOT, rt_db_internal::idb_ptr, interp, LOOKUP_QUIET, M_PI, RT_BOT_CK_MAGIC, rt_db_free_internal(), rt_db_get_internal(), rt_db_put_internal(), rt_smooth_bot(), TCL_ERROR, TCL_OK, and rt_wdb::wdb_resp. Here is the call graph for this function: ![]() |
|
Definition at line 542 of file importFg4Section.c. References bu_free(), bu_log(), bu_malloc(), bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), do_grid(), do_quad(), do_tri(), FIND_NEWLINE, free(), GRID_BLOCK, grid_pts, interp, make_bot_object(), NULL, TCL_ERROR, and TCL_OK. Here is the call graph for this function: ![]() |
|
Definition at line 2639 of file dg_obj.c. References bu_free(), bu_strdup, bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), dg_obj::dgo_outputHandler, interp, TCL_ERROR, and TCL_OK. Here is the call graph for this function: ![]() |
|
Definition at line 2766 of file dg_obj.c. References bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), dgo_build_dpp(), dg_obj::dgo_headSolid, DIR_NULL, FOR_ALL_SOLIDS, db_full_path::fp_len, db_full_path::fp_names, interp, solid::s_fullpath, solid::s_transparency, TCL_ERROR, and TCL_OK. Here is the call graph for this function: ![]() |
|
Definition at line 2427 of file dg_obj.c. References bu_cmd(), bu_observer_cmds, bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), dg_obj::dgo_observers, interp, and TCL_ERROR. Here is the call graph for this function: ![]() |
|
Definition at line 275 of file dg_obj.c. References bu_free(), BU_LIST_DEQUEUE, bu_observer_free(), bu_vls_free(), dgo_free_qray(), dg_obj::dgo_name, dg_obj::dgo_observers, and dg_obj::l. Here is the call graph for this function: ![]() |
|
Definition at line 1092 of file dg_obj.c. References BU_LIST_IS_EMPTY, dg_obj::dgo_headSolid, FOR_ALL_SOLIDS, INFINITY, interp, MAT_DELTAS, MAT_IDN, solid::s_center, solid::s_size, SQRT_SMALL_FASTF, V_MAX, VADD2SCALE, VMAX, VMIN, VNEAR_ZERO, view_obj::vo_center, view_obj::vo_invSize, view_obj::vo_scale, view_obj::vo_size, vo_update(), VSETALL, VSUB2, X, Y, and Z. Referenced by dgo_autoview_cmd(). Here is the call graph for this function: ![]() |
|
Definition at line 1140 of file dg_obj.c. References bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), dgo_autoview(), DGO_CHECK_WDBP_NULL, interp, TCL_ERROR, and TCL_OK. Here is the call graph for this function: ![]() |
|
Definition at line 1578 of file dg_obj.c. References dgo_draw_cmd(), dgo_zap_cmd(), and interp. Here is the call graph for this function: ![]() |
|
Definition at line 586 of file dg_obj.c. References bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), dgo_color_soltab(), dgo_eraseobjpath(), dg_obj::dgo_headSolid, interp, LOOKUP_QUIET, TCL_ERROR, and TCL_OK. Referenced by dgo_blast_cmd(). Here is the call graph for this function: ![]() |
|
|
Definition at line 678 of file dg_obj.c. References bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), dgo_eraseobjpath(), interp, LOOKUP_NOISY, TCL_ERROR, and TCL_OK. Here is the call graph for this function: ![]() |
|
Definition at line 721 of file dg_obj.c. References bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), dgo_eraseobjpath(), interp, LOOKUP_NOISY, TCL_ERROR, and TCL_OK. Here is the call graph for this function: ![]() |
|
Definition at line 1205 of file dg_obj.c. References bu_getopt(), BU_LIST_IS_EMPTY, bu_optind, bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), db_i::dbi_base2local, rt_wdb::dbip, DGO_CHECK_WDBP_NULL, dg_obj::dgo_headSolid, dg_obj::dgo_wdbp, FOR_ALL_SOLIDS, db_full_path::fp_names, INFINITY, interp, NULL, RT_DIR_PHONY_ADDR, solid::s_center, solid::s_fullpath, solid::s_size, SQRT_SMALL_FASTF, TCL_ERROR, TCL_OK, V3ARGS, VADD2SCALE, VMAX, VMIN, VNEAR_ZERO, VSCALE, VSETALL, VSUB2, X, Y, and Z. Here is the call graph for this function: ![]() |
|
Definition at line 837 of file dg_obj.c. References bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), dgo_build_dpp(), dg_obj::dgo_headSolid, DIR_NULL, FOR_ALL_SOLIDS, db_full_path::fp_len, db_full_path::fp_names, interp, NULL, solid::s_dmode, solid::s_fullpath, solid::s_transparency, and TCL_ERROR. Here is the call graph for this function: ![]() |
|
Definition at line 477 of file dg_obj.c. References DB_FULL_PATH_GET, dg_obj::dgo_headSolid, DOWN, FOR_ALL_SOLIDS, db_full_path::fp_len, solid::s_fullpath, solid::s_iflag, and UP. |
|
Definition at line 558 of file dg_obj.c. References TCL_OK. |
|
Definition at line 332 of file dg_obj.c. References BU_GETSTRUCT, BU_LIST_APPEND, BU_LIST_INIT, bu_vls_init(), bu_vls_strcpy(), dg_obj::dgo_freeSolids, dg_obj::dgo_headRunRt, dg_obj::dgo_headSolid, dg_obj::dgo_headVDraw, dgo_init_qray(), dg_obj::dgo_name, dg_obj::dgo_observers, dg_obj::dgo_uplotOutputMode, dg_obj::dgo_wdbp, HeadDGObj, dg_obj::l, run_rt::l, bu_observer::l, and PL_OUTPUT_MODE_BINARY. Here is the call graph for this function: ![]() |
|
Definition at line 1026 of file dg_obj.c. References bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), interp, NULL, PL_MODE, TCL_ERROR, and TCL_OK. Here is the call graph for this function: ![]() |
|
Definition at line 2464 of file dg_obj.c. References bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), interp, TCL_ERROR, and TCL_OK. Here is the call graph for this function: ![]() |
|
Definition at line 1382 of file dg_obj.c. References bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), dg_obj::dgo_rt_cmd, interp, MAXARGS, TCL_ERROR, view_obj::vo_perspective, and void(). Here is the call graph for this function: ![]() |
|
Definition at line 2508 of file dg_obj.c. References run_rt::aborted, BU_LIST_FOR, dg_obj::dgo_headRunRt, run_rt::l, run_rt::pid, and TCL_OK. |
|
Definition at line 2054 of file dg_obj.c. References db_i::dbi_filename, rt_wdb::dbip, dgo_build_tops(), dg_obj::dgo_headSolid, dg_obj::dgo_rt_cmd, dg_obj::dgo_rt_cmd_len, dg_obj::dgo_wdbp, rtcheck_output::dgop, interp, and MAXARGS. Here is the call graph for this function: ![]() |
|
Definition at line 1497 of file dg_obj.c. References bu_cmd(), interp, and vdraw_cmds. Here is the call graph for this function: ![]() |
|
Definition at line 922 of file dg_obj.c. References bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), d_addr, dg_obj::dgo_headSolid, DOWN, FIRST_SOLID, FOR_ALL_SOLIDS, FOR_REST_OF_SOLIDS, interp, NULL, RT_DIR_PHONY_ADDR, solid::s_flag, TCL_ERROR, TCL_OK, and UP. Here is the call graph for this function: ![]() |
|
Definition at line 1523 of file dg_obj.c. References BU_LIST_DEQUEUE, BU_LIST_NEXT, BU_LIST_NOT_HEAD, BU_LIST_PNEXT, db_dirdelete(), rt_wdb::dbip, dg_obj::dgo_headSolid, dg_obj::dgo_wdbp, FIRST_SOLID, FREE_SOLID, interp, solid::l, NULL, RT_CK_DIR, and RT_DIR_PHONY_ADDR. Referenced by dgo_blast_cmd(), dgo_impending_wdb_close(), and dgo_zapall(). Here is the call graph for this function: ![]() |
|
Definition at line 2842 of file dg_obj.c. References bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), dg_obj::dgo_shaded_mode, interp, TCL_ERROR, and TCL_OK. Here is the call graph for this function: ![]() |
|
Referenced by dgo_draw_cmd(), and dgo_E_cmd(). |
|
Referenced by dgo_E_cmd(). |
|
Definition at line 3787 of file dg_obj.c. References BU_LIST_FOR, rt_wdb::dbip, dgo_notify(), dg_obj::dgo_wdbp, DIR_NULL, HeadDGObj, interp, and dg_obj::l. Referenced by wdb_kill_cmd(). Here is the call graph for this function: ![]() |
|
Referenced by dgo_draw_cmd(), dgo_E_cmd(), dgo_erase_all_cmd(), and dgo_erase_cmd(). |
|
Referenced by wdb_deleteProc(). |
|
Referenced by dgo_cvt_vlblock_to_solids(). |
|
Definition at line 4595 of file dg_obj.c. References bu_observer_notify(), bu_vls_addr(), dg_obj::dgo_name, dg_obj::dgo_observers, dg_rt_client_data::dgop, and interp. Referenced by dgo_eraseobjall_callback(), dgo_impending_wdb_close(), dgo_notifyWdb(), and dgo_zapall(). Here is the call graph for this function: ![]() |
|
Definition at line 4602 of file dg_obj.c. References BU_LIST_FOR, dgo_notify(), dg_obj::dgo_wdbp, HeadDGObj, interp, and dg_obj::l. Here is the call graph for this function: ![]() |
|
Referenced by wdb_reopen_cmd(). |
|
Definition at line 103 of file nirt.c. References bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), bu_vls_strlen(), bu_vls_trunc(), db_i::dbi_base2local, db_i::dbi_filename, db_i::dbi_local2base, rt_wdb::dbip, DG_QRAY_FORMAT_NULL, DG_QRAY_FORMAT_O, DG_QRAY_FORMAT_P, DG_QRAY_GRAPHICS, DG_QRAY_TEXT, dgo_build_tops(), dg_obj::dgo_headSolid, dg_obj::dgo_qray_cmd_echo, dg_obj::dgo_qray_fmts, dg_obj::dgo_qray_script, dg_obj::dgo_rt_cmd, dg_obj::dgo_rt_cmd_len, dg_obj::dgo_wdbp, FALSE, dg_qray_fmt::fmt, interp, MAT4X3PNT, MDX, MDY, MDZ, name, NULL, perror(), RT_MAXARGS, RT_MAXLINE, TRUE, dg_qray_fmt::type, val, VMOVE, VMOVEN, view_obj::vo_center, view_obj::vo_rotation, view_obj::vo_view2model, void(), VSCALE, VSET, VSUB2, VUNITIZE, X, Y, and Z. Referenced by dgo_vnirt_cmd(). Here is the call graph for this function: ![]() |
|
Definition at line 554 of file nirt.c. References bu_free(), bu_malloc(), bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), DG_GED_MAX, DG_INV_GED, dgo_nirt_cmd(), MAT4X3PNT, MAXARGS, status, TCL_ERROR, VSCALE, X, Y, and Z. Here is the call graph for this function: ![]() |
|
|
|
Definition at line 191 of file view_obj.c. References BU_GETSTRUCT, BU_LIST_APPEND, BU_LIST_INIT, bu_vls_init(), bu_vls_strcpy(), HeadViewObj, interp, bu_observer::l, view_obj::l, MAT_IDN, NULL, view_obj::vo_base2local, view_obj::vo_callback, view_obj::vo_center, view_obj::vo_coord, view_obj::vo_eye_pos, view_obj::vo_invSize, view_obj::vo_keypoint, view_obj::vo_local2base, view_obj::vo_name, view_obj::vo_observers, view_obj::vo_rotate_about, view_obj::vo_rotation, view_obj::vo_scale, view_obj::vo_size, vo_update(), void(), VSET, and VSETALL. Here is the call graph for this function: ![]() |
|
Definition at line 558 of file view_obj.c. References interp, MAT_DELTAS_VEC_NEG, view_obj::vo_center, view_obj::vo_local2base, vo_update(), and VSCALE. Referenced by vo_center_cmd(). Here is the call graph for this function: ![]() |
|
Definition at line 568 of file view_obj.c. References bn_decode_vect(), bn_encode_vect(), bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), interp, MAT_DELTAS_GET_NEG, NULL, TCL_ERROR, TCL_OK, view_obj::vo_base2local, view_obj::vo_center, vo_center(), VSCALE, X, Y, and Z. Here is the call graph for this function: ![]() |
|
Definition at line 289 of file view_obj.c. References interp, RT_MINVIEWSIZE, view_obj::vo_invSize, view_obj::vo_local2base, view_obj::vo_scale, view_obj::vo_size, and vo_update(). Referenced by vo_size_cmd(). Here is the call graph for this function: ![]() |
|
Definition at line 302 of file view_obj.c. References bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), interp, NEAR_ZERO, NULL, size, SMALL_FASTF, TCL_ERROR, TCL_OK, view_obj::vo_base2local, view_obj::vo_size, and vo_size(). Here is the call graph for this function: ![]() |
|
Definition at line 361 of file view_obj.c. References bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), interp, NULL, TCL_ERROR, TCL_OK, view_obj::vo_base2local, and view_obj::vo_invSize. Here is the call graph for this function: ![]() |
|
Definition at line 2717 of file view_obj.c. References bn_degtorad, bn_mat_angles(), bn_mat_mul2(), bn_mat_zrot(), view_obj::vo_aet, and view_obj::vo_rotation. Referenced by vo_aet_cmd(), and vo_lookat_cmd(). Here is the call graph for this function: ![]() |
|
Definition at line 1251 of file view_obj.c. References INFINITY, interp, RT_MINVIEWSCALE, SMALL_FASTF, TCL_ERROR, TCL_OK, view_obj::vo_invSize, view_obj::vo_scale, view_obj::vo_size, and vo_update(). Referenced by vo_zoom_cmd(). Here is the call graph for this function: ![]() |
|
Definition at line 1271 of file view_obj.c. References bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), interp, TCL_ERROR, and vo_zoom(). Here is the call graph for this function: ![]() |
|
Definition at line 1121 of file view_obj.c. References bn_decode_quat(), bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), interp, quat_quat2mat(), quat_t, TCL_ERROR, TCL_OK, view_obj::vo_rotation, and vo_update(). Here is the call graph for this function: ![]() |
|
Definition at line 1040 of file view_obj.c. References bn_ae_vec(), bn_decode_vect(), bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), interp, MAT4X3PNT, MAT_DELTAS_VEC_NEG, TCL_ERROR, TCL_OK, VJOIN1, view_obj::vo_aet, view_obj::vo_center, view_obj::vo_local2base, vo_mat_aet(), view_obj::vo_scale, vo_update(), view_obj::vo_view2model, VSCALE, VSET, VSUB2, VUNITIZE, X, Y, and Z. Here is the call graph for this function: ![]() |
|
Definition at line 2021 of file view_obj.c. References bn_mat_angles(), interp, view_obj::vo_rotation, vo_update(), X, Y, and Z. Referenced by vo_setview_cmd(). Here is the call graph for this function: ![]() |
|
Definition at line 2030 of file view_obj.c. References bn_decode_vect(), bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), interp, TCL_ERROR, TCL_OK, vo_setview(), X, Y, and Z. Here is the call graph for this function: ![]() |
|
Definition at line 880 of file view_obj.c. References bn_decode_vect(), bn_encode_vect(), bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), interp, MAT4X3PNT, MAT_DELTAS_VEC_NEG, NULL, TCL_ERROR, TCL_OK, view_obj::vo_base2local, view_obj::vo_center, view_obj::vo_local2base, vo_update(), view_obj::vo_view2model, VSCALE, VSET, X, Y, and Z. Here is the call graph for this function: ![]() |
|
Definition at line 972 of file view_obj.c. References bn_decode_vect(), bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), interp, TCL_ERROR, TCL_OK, VMOVE, view_obj::vo_eye_pos, view_obj::vo_local2base, view_obj::vo_pmat, vo_update(), VSCALE, X, Y, and Z. Here is the call graph for this function: ![]() |
|
Definition at line 837 of file view_obj.c. References bn_encode_mat(), bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), interp, NULL, TCL_ERROR, TCL_OK, and view_obj::vo_pmat. Here is the call graph for this function: ![]() |
|
Definition at line 770 of file view_obj.c. References bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), interp, NULL, TCL_ERROR, TCL_OK, view_obj::vo_eye_pos, view_obj::vo_perspective, view_obj::vo_pmat, and vo_update(). Here is the call graph for this function: ![]() |
|
Definition at line 2672 of file view_obj.c. References bn_aet_vec(), bn_mat_inv(), bn_mat_mul(), bu_observer_notify(), bu_vls_addr(), interp, MAT4X3VEC, NEAR_ZERO, NULL, view_obj::vo_aet, view_obj::vo_callback, view_obj::vo_center, view_obj::vo_clientData, view_obj::vo_model2view, view_obj::vo_name, view_obj::vo_observers, view_obj::vo_pmat, view_obj::vo_pmodel2view, view_obj::vo_rotation, view_obj::vo_scale, view_obj::vo_view2model, and VSET. Referenced by dgo_autoview(), vo_aet_cmd(), vo_center(), vo_eye_cmd(), vo_eye_pos_cmd(), vo_lookat_cmd(), vo_open_cmd(), vo_orientation_cmd(), vo_perspective_cmd(), vo_pov_cmd(), vo_rmat_cmd(), vo_rot(), vo_sca(), vo_setview(), vo_size(), vo_slew(), vo_tra(), and vo_zoom(). Here is the call graph for this function: ![]() |
|
Definition at line 404 of file view_obj.c. References bn_decode_vect(), bn_encode_vect(), bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), interp, NULL, TCL_ERROR, TCL_OK, VADD2, VMOVE, view_obj::vo_aet, vo_mat_aet(), vo_update(), X, Y, and Z. Here is the call graph for this function: ![]() |
|
Definition at line 506 of file view_obj.c. References bn_decode_mat(), bn_encode_mat(), bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), interp, MAT_COPY, NULL, TCL_ERROR, TCL_OK, view_obj::vo_rotation, and vo_update(). Here is the call graph for this function: ![]() |
|
Definition at line 643 of file view_obj.c. References bn_encode_mat(), bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), interp, NULL, TCL_ERROR, TCL_OK, and view_obj::vo_model2view. Here is the call graph for this function: ![]() |
|
Definition at line 686 of file view_obj.c. References bn_encode_mat(), bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), interp, NULL, TCL_ERROR, TCL_OK, and view_obj::vo_pmodel2view. Here is the call graph for this function: ![]() |
|
Definition at line 729 of file view_obj.c. References bn_encode_mat(), bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), interp, NULL, TCL_ERROR, TCL_OK, and view_obj::vo_view2model. Here is the call graph for this function: ![]() |
|
Definition at line 1172 of file view_obj.c. References bn_decode_quat(), bn_decode_vect(), bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), interp, MAT_DELTAS_VEC_NEG, quat_quat2mat(), quat_t, TCL_ERROR, TCL_OK, VMOVE, view_obj::vo_center, view_obj::vo_eye_pos, view_obj::vo_local2base, view_obj::vo_perspective, view_obj::vo_rotation, view_obj::vo_scale, vo_update(), and VSCALE. Here is the call graph for this function: ![]() |
|
Definition at line 1313 of file view_obj.c. References bu_units_conversion(), bu_units_string(), bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), interp, NULL, TCL_ERROR, TCL_OK, view_obj::vo_base2local, and view_obj::vo_local2base. Here is the call graph for this function: ![]() |
|
Definition at line 1375 of file view_obj.c. References bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), interp, NULL, TCL_ERROR, TCL_OK, and view_obj::vo_base2local. Here is the call graph for this function: ![]() |
|
Definition at line 1417 of file view_obj.c. References bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), interp, NULL, TCL_ERROR, TCL_OK, and view_obj::vo_local2base. Here is the call graph for this function: ![]() |
|
Definition at line 1459 of file view_obj.c. References bn_mat_inv(), bn_mat_mul(), bn_mat_mul2(), bn_mat_xform_about_pt(), bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), interp, MAT4X3PNT, MAT_DELTAS_VEC_NEG, TCL_ERROR, TCL_OK, view_obj::vo_center, view_obj::vo_keypoint, view_obj::vo_model2view, view_obj::vo_rotation, vo_update(), view_obj::vo_view2model, and VSET. Referenced by vo_arot_cmd(), vo_mrot_cmd(), vo_rot_cmd(), and vo_vrot_cmd(). Here is the call graph for this function: ![]() |
|
Definition at line 1533 of file view_obj.c. References bn_decode_vect(), bn_mat_angles(), bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), interp, TCL_ERROR, view_obj::vo_coord, vo_rot(), view_obj::vo_rotate_about, VSCALE, X, Y, and Z. Here is the call graph for this function: ![]() |
|
Definition at line 2088 of file view_obj.c. References bn_degtorad, bn_mat_arb_rot(), bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), interp, TCL_ERROR, view_obj::vo_coord, vo_rot(), view_obj::vo_rotate_about, VSETALL, VUNITIZE, X, Y, and Z. Here is the call graph for this function: ![]() |
|
Definition at line 2214 of file view_obj.c. References bn_decode_vect(), bn_mat_angles(), bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), interp, TCL_ERROR, vo_rot(), view_obj::vo_rotate_about, VSCALE, X, Y, and Z. Here is the call graph for this function: ![]() |
|
Definition at line 1609 of file view_obj.c. References interp, MAT4X3PNT, MAT_DELTAS_GET_NEG, MAT_DELTAS_VEC_NEG, TCL_OK, view_obj::vo_center, view_obj::vo_invSize, view_obj::vo_local2base, vo_update(), view_obj::vo_view2model, VSCALE, and VSUB2. Referenced by vo_tra_cmd(). Here is the call graph for this function: ![]() |
|
Definition at line 1644 of file view_obj.c. References bn_decode_vect(), bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), interp, TCL_ERROR, view_obj::vo_coord, vo_tra(), X, Y, and Z. Here is the call graph for this function: ![]() |
|
Definition at line 1716 of file view_obj.c. References interp, MAT4X3PNT, MAT_DELTAS_VEC_NEG, TCL_OK, view_obj::vo_center, vo_update(), and view_obj::vo_view2model. Referenced by vo_slew_cmd(). Here is the call graph for this function: ![]() |
|
Definition at line 1730 of file view_obj.c. References bn_decode_vect(), bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), interp, TCL_ERROR, vo_slew(), X, Y, and Z. Here is the call graph for this function: ![]() |
|
Definition at line 1800 of file view_obj.c. References bu_cmd(), bu_observer_cmds, bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), interp, TCL_ERROR, and view_obj::vo_observers. Here is the call graph for this function: ![]() |
|
Definition at line 1838 of file view_obj.c. References bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), interp, TCL_ERROR, TCL_OK, and view_obj::vo_coord. Here is the call graph for this function: ![]() |
|
Definition at line 1890 of file view_obj.c. References bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), interp, TCL_ERROR, TCL_OK, and view_obj::vo_rotate_about. Here is the call graph for this function: ![]() |
|
Definition at line 1944 of file view_obj.c. References bn_decode_vect(), bn_encode_vect(), bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), interp, TCL_ERROR, TCL_OK, view_obj::vo_base2local, view_obj::vo_keypoint, view_obj::vo_local2base, VSCALE, X, Y, and Z. Here is the call graph for this function: ![]() |
|
Definition at line 2153 of file view_obj.c. References bn_decode_vect(), bn_mat_angles(), bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), int, interp, TCL_ERROR, vo_rot(), view_obj::vo_rotate_about, VSCALE, X, Y, and Z. Here is the call graph for this function: ![]() |
|
Definition at line 2521 of file view_obj.c. References INFINITY, interp, RT_MINVIEWSIZE, SMALL_FASTF, TCL_OK, view_obj::vo_invSize, view_obj::vo_scale, view_obj::vo_size, and vo_update(). Referenced by vo_sca_cmd(). Here is the call graph for this function: ![]() |
|
Definition at line 2542 of file view_obj.c. References bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), interp, TCL_ERROR, and vo_sca(). Here is the call graph for this function: ![]() |
|
Definition at line 72 of file binary_obj.c. References __LONG_MAX__, body, bu_close_mapped_file(), bu_log(), bu_malloc(), bu_open_mapped_file(), bu_mapped_file::buf, rt_binunif_internal::count, DB5_MAJORTYPE_BINARY_UNIF, db5_type_sizeof_h_binu(), rt_wdb::dbip, GETSTRUCT, ID_BINUNIF, rt_db_internal::idb_major_type, rt_db_internal::idb_meth, rt_db_internal::idb_minor_type, rt_db_internal::idb_ptr, rt_binunif_internal::int8, rt_binunif_internal::magic, NULL, RT_BINUNIF_INTERNAL_MAGIC, rt_db_free_internal(), RT_INIT_DB_INTERNAL, rt_binunif_internal::type, rt_binunif_internal::u, and rt_wdb::wdb_resp. Referenced by wdb_binary_cmd(). Here is the call graph for this function: ![]() |
|
R T _ B I N U N I F _ F R E E Free the storage associated with a binunif_internal object Definition at line 517 of file db5_bin.c. References bu_free(), GENPTR_NULL, RT_CK_BINUNIF, rt_binunif_internal::u, and rt_binunif_internal::uint8. Here is the call graph for this function: ![]() |
|
R T _ B I N U N I F _ D U M P Diagnostic routine Definition at line 278 of file db5_bin.c. References bu_log(), rt_binunif_internal::count, RT_CK_BINUNIF, type, rt_binunif_internal::u, and rt_binunif_internal::uint8. Referenced by rt_retrieve_binunif(). Here is the call graph for this function: ![]() |
|
|
|
Definition at line 138 of file qray.c. References dg_qray_color::b, bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), bu_vls_strcpy(), bu_vls_trunc(), dg_obj::dgo_qray_basename, dg_obj::dgo_qray_cmd_echo, dg_obj::dgo_qray_effects, dg_obj::dgo_qray_even_color, dg_obj::dgo_qray_fmts, dg_obj::dgo_qray_odd_color, dg_obj::dgo_qray_overlap_color, dg_obj::dgo_qray_script, dg_obj::dgo_qray_void_color, dg_qray_fmt::fmt, dg_qray_color::g, interp, NULL, dg_qray_color::r, TCL_ERROR, and TCL_OK. Here is the call graph for this function: ![]() |
|
Definition at line 454 of file qray.c. References bu_malloc(), bu_vls_init(), bu_vls_strcpy(), DG_QRAY_BASENAME, dg_obj::dgo_qray_basename, dg_obj::dgo_qray_cmd_echo, dg_obj::dgo_qray_effects, dg_obj::dgo_qray_even_color, dg_obj::dgo_qray_fmts, dg_obj::dgo_qray_odd_color, dg_obj::dgo_qray_overlap_color, dg_obj::dgo_qray_script, dg_obj::dgo_qray_void_color, dg_qray_fmt::fmt, dg_qray_fmt_data::fmt, NULL, dg_qray_fmt_data::type, and dg_qray_fmt::type. Referenced by dgo_open_cmd(). Here is the call graph for this function: ![]() |
|
Definition at line 487 of file qray.c. References bu_free(), bu_vls_free(), dg_obj::dgo_qray_basename, dg_obj::dgo_qray_fmts, dg_obj::dgo_qray_script, dg_qray_fmt::fmt, NULL, and dg_qray_fmt::type. Referenced by dgo_deleteProc(). Here is the call graph for this function: ![]() |
|
Definition at line 2429 of file bigE.c. References dgo_E_cmd(), and interp. Here is the call graph for this function: ![]() |
|
Definition at line 3554 of file dg_obj.c. References bu_list::back, BU_LIST_APPEND, BU_LIST_APPEND_LIST, BU_LIST_INIT, BU_LIST_LAST, db_add_node_to_full_path(), db_diradd(), db_lookup(), DBI_NULL, rt_wdb::dbip, dg_obj::dgo_headSolid, dg_obj::dgo_wdbp, DIR_NULL, DIR_SOLID, GET_SOLID, interp, solid::l, LOOKUP_QUIET, RT_DIR_PHONY_ADDR, rt_vlist_copy(), solid::s_basecolor, solid::s_cflag, solid::s_color, solid::s_dflag, solid::s_dlist, solid::s_dmode, solid::s_Eflag, solid::s_fullpath, solid::s_iflag, solid::s_regionid, solid::s_soldash, solid::s_transparency, solid::s_uflag, solid::s_vlist, solid::s_wflag, and type. Here is the call graph for this function: ![]() |
|
|
Definition at line 3811 of file dg_obj.c. References bu_calloc(), bu_free(), bu_log(), bu_vls_addr(), bu_vls_init(), bu_vls_printf(), bu_vls_trunc(), db_lookup(), rt_wdb::dbip, dg_obj::dgo_wdbp, DIR_NULL, free(), interp, Tcl_IncrRefCount, and TCL_OK. Here is the call graph for this function: ![]() |
|
Definition at line 4053 of file dg_obj.c. References FOR_ALL_SOLIDS, solid::l, MATER_NULL, mater::mt_b, mater::mt_forw, mater::mt_g, mater::mt_high, mater::mt_low, mater::mt_r, rt_material_head, solid::s_basecolor, solid::s_cflag, solid::s_color, solid::s_regionid, and solid::s_uflag. |
|
Definition at line 3525 of file dg_obj.c. References BU_LIST_IS_EMPTY, dgo_invent_solid(), bn_vlblock::head, interp, bn_vlblock::nused, and bn_vlblock::rgb. Here is the call graph for this function: ![]() |
|
Definition at line 4104 of file dg_obj.c. References BU_LIST_PFOR, directory::d_namep, FIRST_SOLID, FOR_ALL_SOLIDS, interp, solid::l, RT_DIR_PHONY_ADDR, solid::s_flag, and UP. Referenced by dgo_nirt_cmd(), and dgo_rtcheck_cmd(). |
|
Definition at line 4783 of file dg_obj.c. References bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), interp, and NULL. Here is the call graph for this function: ![]() |
|
Definition at line 261 of file dg_obj.c. References BU_LIST_INIT, HeadDGObj, interp, dg_obj::l, solid::l, NULL, TCL_OK, and void(). Referenced by rt_tcl_setup(). Here is the call graph for this function: ![]() |
|
Definition at line 760 of file dg_obj.c. References bu_calloc(), bu_free(), bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), db_lookup(), rt_wdb::dbip, dg_obj::dgo_wdbp, DIR_NULL, free(), interp, NULL, and TCL_OK. Referenced by dgo_how_cmd(), and dgo_set_transparency_cmd(). Here is the call graph for this function: ![]() |
|
Definition at line 1315 of file dg_obj.c. References BU_LIST_FOR, BU_LIST_IS_HEAD, bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), HeadViewObj, interp, view_obj::l, NULL, quat_mat2quat(), quat_t, TCL_ERROR, TCL_OK, V4ARGS, view_obj::vo_name, view_obj::vo_rotation, view_obj::vo_size, X, Y, and Z. Here is the call graph for this function: ![]() |
|
Definition at line 2698 of file dg_obj.c. References bu_vls_addr(), bu_vls_free(), bu_vls_init(), bu_vls_printf(), dg_obj::dgo_uplotOutputMode, interp, PL_OUTPUT_MODE_BINARY, PL_OUTPUT_MODE_TEXT, TCL_ERROR, and TCL_OK. Here is the call graph for this function: ![]() |
|
Definition at line 4613 of file dg_obj.c. References BU_LIST_FOR, dgo_notify(), dg_obj::dgo_wdbp, dgo_zap_cmd(), HeadDGObj, interp, dg_obj::l, and RT_WDB_NULL. Here is the call graph for this function: ![]() |
|
Definition at line 4627 of file dg_obj.c. References BU_LIST_FOR, dgo_notify(), dg_obj::dgo_wdbp, dgo_zap_cmd(), HeadDGObj, interp, and dg_obj::l. Here is the call graph for this function: ![]() |
|
Definition at line 224 of file importFg4Section.c. References atof(), bu_log(), bu_mem_barriercheck(), bu_realloc(), DEBUG_MEM_FULL, GRID_BLOCK, grid_pts, rt_bomb(), RT_G_DEBUG, and VSET. Referenced by wdb_importFg4Section_cmd(). Here is the call graph for this function: ![]() |
|
Definition at line 320 of file importFg4Section.c. References Add_bot_face(), atof(), bu_debug, BU_DEBUG_MEM_CHECK, bu_log(), bu_malloc(), bu_mem_barriercheck(), debug, GRID_BLOCK, NULL, PLATE_MODE, pos, and POS_FRONT. Referenced by wdb_importFg4Section_cmd(). Here is the call graph for this function: ![]() |
|
Definition at line 386 of file importFg4Section.c. References Add_bot_face(), atof(), bu_log(), bu_malloc(), debug, GRID_BLOCK, NULL, PLATE_MODE, pos, POS_CENTER, and POS_FRONT. Referenced by wdb_importFg4Section_cmd(). Here is the call graph for this function: ![]() |
|
Definition at line 447 of file importFg4Section.c. References rt_bot_internal::magic, NULL, RT_BOT_INTERNAL_MAGIC, V_MAX, and V_MIN. Referenced by wdb_importFg4Section_cmd(). |
|
Definition at line 265 of file importFg4Section.c. References bu_debug, BU_DEBUG_MEM_CHECK, bu_log(), bu_mem_barriercheck(), bu_realloc(), GRID_BLOCK, PLATE_MODE, POS_CENTER, and POS_FRONT. Referenced by do_quad(), and do_tri(). Here is the call graph for this function: ![]() |
|
Definition at line 61 of file oslo_calc.c. |
|
Definition at line 200 of file oslo_calc.c. |
|
Definition at line 224 of file oslo_calc.c. Referenced by rt_nurb_c_refine(), rt_nurb_c_xsplit(), and rt_nurb_s_refine(). |
|
Definition at line 499 of file qray.c. References dg_qray_color::b, BU_LIST_FOR, db_i::dbi_local2base, rt_wdb::dbip, dg_obj::dgo_qray_even_color, dg_obj::dgo_qray_odd_color, dg_obj::dgo_qray_overlap_color, dg_obj::dgo_qray_void_color, dg_obj::dgo_wdbp, dg_qray_color::g, dg_qray_dataList::l, dg_qray_dataList::los, dg_qray_color::r, RT_ADD_VLIST, rt_vlblock_find(), RT_VLIST_LINE_DRAW, RT_VLIST_LINE_MOVE, SQRT_SMALL_FASTF, VAPPROXEQUAL, VJOIN1, VMOVE, VSCALE, VSET, dg_qray_dataList::x_in, dg_qray_dataList::y_in, and dg_qray_dataList::z_in. Here is the call graph for this function: ![]() |
|
|
|
defined in mater.c
Definition at line 67 of file mater.c. Referenced by db5_export_color_table(), dgo_color_soltab(), rt_color_free(), rt_insert_color(), rt_region_color_map(), wdb_color_cmd(), and wdb_prcolor_cmd(). |
|
Photon Mapping Activated, 0=off, 1=on.
|
|
Photon Mapping Visualization of Irradiance Cache.
|
|
head of BRL-CAD database object list
|
|
head of drawable geometry object list
Definition at line 199 of file dg_obj.c. Referenced by dgo_eraseobjall_callback(), dgo_impending_wdb_close(), Dgo_Init(), dgo_notifyWdb(), dgo_open_cmd(), and dgo_zapall(). |
|
head of view object list
Definition at line 106 of file view_obj.c. Referenced by dgo_get_eyemodel_cmd(), Vo_Init(), and vo_open_cmd(). |
|
|
|
|
|
|
Definition at line 1078 of file table.c. Referenced by rt_free_soltab(). |
|
|
|
E D I T A R B An ARB edge is moved by finding the direction of the line containing the edge and the 2 "bounding" planes. The new edge is found by intersecting the new line location with the bounding planes. The two "new" planes thus defined are calculated and the affected points are calculated by intersecting planes. This keeps ALL faces planar. Note - This code came from mged/edarb.c (written mostly by Keith Applin) and was modified to live here. |
|
|
|
|
|
|
|
|
|
Definition at line 74 of file nmg_plot.c. |
|
Definition at line 75 of file nmg_plot.c. Referenced by nmg_2face_plot(), nmg_face_plot(), nmg_pl_2fu(), and nmg_pl_comb_fu(). |
|
Definition at line 76 of file nmg_plot.c. |
|
Definition at line 77 of file nmg_plot.c. Referenced by nmg_offset_eu_vert(). |
|
|
|
Definition at line 67 of file g_bot.c. Referenced by rt_tcl_setup(), and XGLUE(). |
|
Definition at line 68 of file g_bot.c. Referenced by rt_tcl_setup(). |
|
Definition at line 70 of file tree.c. Referenced by rt_gettrees_muves(), rt_submodel_plot(), and wdb_init_obj(). |
|
|
|
Definition at line 10 of file vers_win.c. Referenced by rt_pr_library_version(), and rt_tcl_setup(). |
|
defined in mater.c
|
|
Definition at line 147 of file vdraw.c. Referenced by dgo_vdraw_cmd(). |
|
head of drawable geometry object list
Definition at line 199 of file dg_obj.c. Referenced by dgo_eraseobjall_callback(), dgo_impending_wdb_close(), Dgo_Init(), dgo_notifyWdb(), dgo_open_cmd(), and dgo_zapall(). |
|
Definition at line 114 of file importFg4Section.c. Referenced by do_grid(), and wdb_importFg4Section_cmd(). |