BRL-CAD
Collaboration diagram for Tolerances:

Data Structures

struct  bn_tol
 Support for uniform tolerances. More...
 

Macros

#define BN_CK_TOL(_p)   BU_CKMAG(_p, BN_TOL_MAGIC, "bn_tol")
 
#define BN_TOL_INIT(_p)
 
#define BN_TOL_INIT_ZERO   { BN_TOL_MAGIC, 0.0, 0.0, 0.0, 1.0 }
 
#define BN_TOL_IS_INITIALIZED(_p)   (((struct bn_tol *)(_p) != (struct bn_tol *)0) && LIKELY((_p)->magic == BN_TOL_MAGIC))
 
#define BN_TOL_DIST   0.0005
 
#define BN_VECT_ARE_PARALLEL(_dot, _tol)   (((_dot) <= -SMALL_FASTF) ? (NEAR_EQUAL((_dot), -1.0, (_tol)->perp)) : (NEAR_EQUAL((_dot), 1.0, (_tol)->perp)))
 
#define BN_VECT_ARE_PERP(_dot, _tol)   (((_dot) < 0) ? ((-(_dot))<=(_tol)->perp) : ((_dot) <= (_tol)->perp))
 

Detailed Description

Macro Definition Documentation

#define BN_CK_TOL (   _p)    BU_CKMAG(_p, BN_TOL_MAGIC, "bn_tol")

asserts the validity of a bn_tol struct.

Definition at line 82 of file tol.h.

Referenced by append_solid_to_display_list(), bn_2line3_colinear(), bn_3pts_distinct(), bn_between(), bn_coplanar(), bn_dist_line3_line3(), bn_dist_line3_lseg3(), bn_dist_pt2_lseg2(), bn_dist_pt3_line3(), bn_dist_pt3_lseg3(), bn_distsq_pt3_lseg3(), bn_isect_line2_line2(), bn_isect_line2_lseg2(), bn_isect_line3_plane(), bn_isect_line_lseg(), bn_isect_lseg2_lseg2(), bn_isect_lseg3_lseg3(), bn_isect_pt2_lseg2(), bn_isect_pt_lseg(), bn_mat_is_equal(), bn_mk_plane_3pts(), bn_npts_distinct(), bn_pt2_pt2_equal(), cut_unimonotone(), do_region_end(), gcv_bottess_region_end(), gcv_region_end(), gcv_region_end_mc(), nmg_assess_eu(), nmg_assoc_void_shells(), nmg_bad_face_normals(), nmg_boolean(), nmg_booltree_evaluate(), nmg_booltree_leaf_tess(), nmg_booltree_leaf_tnurb(), nmg_bot(), nmg_break_crossed_loops(), nmg_break_e_on_v(), nmg_break_edge_at_verts(), nmg_break_edges(), nmg_break_eg_on_v(), nmg_break_long_edges(), nmg_calc_new_v(), nmg_check_closed_shell(), nmg_check_radial(), nmg_check_radial_angles(), nmg_ck_closed_region(), nmg_ck_closed_surf(), nmg_ck_eg_verts(), nmg_ck_fg_verts(), nmg_ck_fu_verts(), nmg_ck_geometry(), nmg_ck_v_in_2fus(), nmg_ck_vert_on_fus(), nmg_ck_vs_in_region(), nmg_class_lu_fu(), nmg_class_pt_euvu(), nmg_class_pt_fu_except(), nmg_class_pt_s(), nmg_class_ray_vs_shell(), nmg_class_shells(), nmg_classify_lu_lu(), nmg_classify_pt_loop(), nmg_close_shell(), nmg_cnurb_is_on_crv(), nmg_cnurb_lseg_coincident(), nmg_common_v_2eg(), nmg_complex_vertex_solve(), nmg_crackshells(), nmg_decompose_shell(), nmg_dist_to_cross(), nmg_do_radial_join(), nmg_dup_shell(), nmg_edge_collapse(), nmg_edgeuse_on_line_tabulate(), nmg_eu_2s_orient_bad(), nmg_eu_2vecs_perp(), nmg_eval_action(), nmg_eval_linear_trim_to_tol(), nmg_eval_plot(), nmg_eval_shell(), nmg_eval_trim_to_tol(), nmg_evaluate_boolean(), nmg_extrude_cleanup(), nmg_extrude_face(), nmg_extrude_shell(), nmg_face_bb(), nmg_face_cutjoin(), nmg_face_fix_radial_parity(), nmg_face_rs_init(), nmg_face_state_transition(), nmg_faces_can_be_intersected(), nmg_fcut_face(), nmg_fcut_face_2d(), nmg_find_e_nearest_pt2(), nmg_find_edge_between_2fu(), nmg_find_eg_between_2fg(), nmg_find_eg_on_line(), nmg_find_isect_faces(), nmg_find_outer_and_void_shells(), nmg_find_pt_in_face(), nmg_find_pt_in_model(), nmg_find_pt_in_shell(), nmg_fix_crossed_loops(), nmg_fix_decomposed_shell_normals(), nmg_fix_normals(), nmg_fu_planeeqn(), nmg_fuse_inters(), nmg_get_edge_lines(), nmg_get_interior_pt(), nmg_get_max_edge_inters(), nmg_glue_face_in_shell(), nmg_hollow_shell(), nmg_in_vert(), nmg_intersect_loops_self(), nmg_is_crack_outie(), nmg_is_eu_on_line3(), nmg_isect_eu_verts(), nmg_isect_potcut_fu(), nmg_isect_shell_self(), nmg_isect_two_generic_faces(), nmg_js(), nmg_loop_g(), nmg_loop_split_at_touching_jaunt(), nmg_lu_is_convex(), nmg_make_connect_faces(), nmg_make_dualvu(), nmg_make_faces_at_vert(), nmg_make_faces_within_tol(), nmg_merge_regions(), nmg_mesh_face_shell(), nmg_mesh_faces(), nmg_mesh_shell_shell(), nmg_model_fuse(), nmg_move_edge_thru_pt(), nmg_open_shells_connect(), nmg_pick_best_edge_g(), nmg_pl_edges_in_2_shells(), nmg_pl_isect(), nmg_plot_lu_around_eu(), nmg_pr_fu_around_eu(), nmg_pr_fu_around_eu_vecs(), nmg_pr_radial_list(), nmg_propagate_normals(), nmg_purge_unwanted_intersection_points(), nmg_r_radial_check(), nmg_radial_build_list(), nmg_radial_check_parity(), nmg_radial_exchange_marked(), nmg_radial_implement_decisions(), nmg_radial_join_eu(), nmg_radial_join_eu_NEW(), nmg_radial_mark_cracks(), nmg_radial_mark_flips(), nmg_radial_merge_lists(), nmg_radial_verify_monotone(), nmg_radial_verify_pointers(), nmg_rebound(), nmg_region_a(), nmg_region_end(), nmg_region_v_unique(), nmg_remove_short_eus_inter(), nmg_repair_v_near_v(), nmg_reverse_face_and_radials(), nmg_reverse_radials(), nmg_rm_redundancies(), nmg_s_join_touchingloops(), nmg_s_radial_check(), nmg_s_radial_harmonize(), nmg_s_split_touchingloops(), nmg_search_v_eg(), nmg_shell_a(), nmg_simple_vertex_solve(), nmg_simplify_inter(), nmg_simplify_shell_edges(), nmg_snurb_is_planar(), nmg_split_edges_at_pts(), nmg_split_linear_trim(), nmg_split_loops_into_faces(), nmg_split_touchingloops(), nmg_split_trim(), nmg_to_poly(), nmg_to_tgc(), nmg_triangulate_fu(), nmg_triangulate_model(), nmg_triangulate_model_mc(), nmg_triangulate_rm_degen_loopuse(), nmg_triangulate_rm_holes(), nmg_triangulate_shell(), nmg_vertex_fuse(), nmg_vlblock_around_eu(), nmg_vlblock_euleft(), rt_arb_calc_planes(), rt_arb_get_cgtype(), rt_arb_std_type(), rt_arc2d_to_cnurb(), rt_bot_class(), rt_brep_class(), rt_cline_class(), rt_ebm_tess(), rt_hlf_class(), rt_line_on_plane(), rt_metaball_class(), rt_nmg_import4_internal(), rt_obj_plot(), rt_obj_tess(), rt_obj_tnurb(), rt_pg_to_bot(), rt_pipe_tess(), rt_pr_tol(), rt_rhc_tess(), rt_rpc_tess(), rt_submodel_class(), rt_submodel_wireframe_leaf(), rt_tol_default(), rt_vol_tess(), state2(), state3(), state4(), state5and6(), tesselate_pipe_bend(), tesselate_pipe_end(), tesselate_pipe_linear(), and tesselate_pipe_start().

#define BN_TOL_INIT (   _p)
Value:
{ \
(_p)->magic = BN_TOL_MAGIC; \
(_p)->dist = 0.0; \
(_p)->dist_sq = 0.0; \
(_p)->perp = 0.0; \
(_p)->para = 1.0; \
}
#define BN_TOL_MAGIC
Definition: magic.h:74
oldeumate l2 magic
Definition: nmg_mod.c:3843

initializes a bn_tol struct to zero without allocating any memory.

Definition at line 87 of file tol.h.

Referenced by bn_polygon_area(), diff_init_result(), rt_bot_volume(), rt_joint_find_selections(), rt_tol_default(), test_compose(), test_face_split_single(), test_face_splits(), and test_intersection().

#define BN_TOL_INIT_ZERO   { BN_TOL_MAGIC, 0.0, 0.0, 0.0, 1.0 }

macro suitable for declaration statement zero-initialization of a bn_tol struct.

Definition at line 99 of file tol.h.

#define BN_TOL_IS_INITIALIZED (   _p)    (((struct bn_tol *)(_p) != (struct bn_tol *)0) && LIKELY((_p)->magic == BN_TOL_MAGIC))

returns truthfully whether a bn_tol struct has been initialized.

Definition at line 104 of file tol.h.

#define BN_VECT_ARE_PARALLEL (   _dot,
  _tol 
)    (((_dot) <= -SMALL_FASTF) ? (NEAR_EQUAL((_dot), -1.0, (_tol)->perp)) : (NEAR_EQUAL((_dot), 1.0, (_tol)->perp)))

returns truthfully whether a given dot-product of two unspecified vectors are within a specified parallel tolerance.

Definition at line 115 of file tol.h.

Referenced by bn_dist_line3_line3(), rt_arbn_plot(), and rt_arbn_prep().

#define BN_VECT_ARE_PERP (   _dot,
  _tol 
)    (((_dot) < 0) ? ((-(_dot))<=(_tol)->perp) : ((_dot) <= (_tol)->perp))

returns truthfully whether a given dot-product of two unspecified vectors are within a specified perpendicularity tolerance.

Definition at line 122 of file tol.h.

Referenced by edge_hit_ray_state(), isect_ray_snurb_face(), isect_ray_triangle(), record_face_hit(), shade_inputs(), and vertex_neighborhood().