BRL-CAD
NMG/NMG Intersection

Intersection calculations between elements of NMG models. More...

Collaboration diagram for NMG/NMG Intersection:

Files

file  isect.h
 

Data Structures

struct  nmg_inter_struct
 

Functions

struct vertexusenmg_make_dualvu (struct vertex *v, struct faceuse *fu, const struct bn_tol *tol)
 
struct vertexusenmg_enlist_vu (struct nmg_inter_struct *is, const struct vertexuse *vu, struct vertexuse *dualvu, fastf_t dist)
 
void nmg_isect2d_prep (struct nmg_inter_struct *is, const uint32_t *assoc_use)
 
void nmg_isect2d_cleanup (struct nmg_inter_struct *is)
 
void nmg_isect2d_final_cleanup (void)
 
int nmg_isect_2faceuse (point_t pt, vect_t dir, struct faceuse *fu1, struct faceuse *fu2, const struct bn_tol *tol)
 
void nmg_isect_vert2p_face2p (struct nmg_inter_struct *is, struct vertexuse *vu1, struct faceuse *fu2)
 
struct edgeusenmg_break_eu_on_v (struct edgeuse *eu1, struct vertex *v2, struct faceuse *fu, struct nmg_inter_struct *is)
 
void nmg_break_eg_on_v (const struct edge_g_lseg *eg, struct vertex *v, const struct bn_tol *tol)
 
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)
 
int nmg_isect_edge2p_edge2p (struct nmg_inter_struct *is, struct edgeuse *eu1, struct edgeuse *eu2, struct faceuse *fu1, struct faceuse *fu2)
 
int nmg_isect_construct_nice_ray (struct nmg_inter_struct *is, struct faceuse *fu2)
 
void nmg_enlist_one_vu (struct nmg_inter_struct *is, const struct vertexuse *vu, fastf_t dist)
 
int nmg_isect_line2_edge2p (struct nmg_inter_struct *is, struct bu_ptbl *list, struct edgeuse *eu1, struct faceuse *fu1, struct faceuse *fu2)
 
void nmg_isect_line2_vertex2 (struct nmg_inter_struct *is, struct vertexuse *vu1, struct faceuse *fu1)
 
int nmg_isect_two_ptbls (struct nmg_inter_struct *is, const struct bu_ptbl *t1, const struct bu_ptbl *t2)
 
struct edge_g_lsegnmg_find_eg_on_line (const uint32_t *magic_p, const point_t pt, const vect_t dir, struct bu_list *vlfree, const struct bn_tol *tol)
 
int nmg_k0eu (struct vertex *v)
 
struct vertexnmg_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)
 
struct vertexnmg_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)
 
struct vertexnmg_common_v_2eg (struct edge_g_lseg *eg1, struct edge_g_lseg *eg2, const struct bn_tol *tol)
 
int nmg_is_vertex_on_inter (struct vertex *v, struct faceuse *fu1, struct faceuse *fu2, struct nmg_inter_struct *is, struct bu_list *vlfree)
 
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)
 
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)
 
void nmg_isect_eu_fu (struct nmg_inter_struct *is, struct bu_ptbl *verts, struct edgeuse *eu, struct faceuse *fu, struct bu_list *vlfree)
 
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, struct bu_list *vlfree)
 
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, struct bu_list *vlfree)
 
int nmg_is_eu_on_line3 (const struct edgeuse *eu, const point_t pt, const vect_t dir, const struct bn_tol *tol)
 
struct edge_g_lsegnmg_find_eg_between_2fg (const struct faceuse *ofu1, const struct faceuse *fu2, struct bu_list *vlfree, const struct bn_tol *tol)
 
struct edgeusenmg_does_fu_use_eg (const struct faceuse *fu1, const uint32_t *eg)
 
int rt_line_on_plane (const point_t pt, const vect_t dir, const plane_t plane, const struct bn_tol *tol)
 
void nmg_cut_lu_into_coplanar_and_non (struct loopuse *lu, plane_t pl, struct nmg_inter_struct *is, struct bu_list *vlfree)
 
void nmg_check_radial_angles (char *str, struct shell *s, struct bu_list *vlfree, const struct bn_tol *tol)
 
int nmg_faces_can_be_intersected (struct nmg_inter_struct *bs, const struct faceuse *fu1, const struct faceuse *fu2, struct bu_list *vlfree, const struct bn_tol *tol)
 
void nmg_isect_two_generic_faces (struct faceuse *fu1, struct faceuse *fu2, struct bu_list *vlfree, const struct bn_tol *tol)
 
void nmg_crackshells (struct shell *s1, struct shell *s2, struct bu_list *vlfree, const struct bn_tol *tol)
 
int nmg_fu_touchingloops (const struct faceuse *fu)
 

Detailed Description

Intersection calculations between elements of NMG models.

Function Documentation

◆ nmg_make_dualvu()

struct vertexuse * nmg_make_dualvu ( struct vertex v,
struct faceuse fu,
const struct bn_tol tol 
)

◆ nmg_enlist_vu()

struct vertexuse * nmg_enlist_vu ( struct nmg_inter_struct is,
const struct vertexuse vu,
struct vertexuse dualvu,
fastf_t  dist 
)

◆ nmg_isect2d_prep()

void nmg_isect2d_prep ( struct nmg_inter_struct is,
const uint32_t *  assoc_use 
)

◆ nmg_isect2d_cleanup()

void nmg_isect2d_cleanup ( struct nmg_inter_struct is)

◆ nmg_isect2d_final_cleanup()

void nmg_isect2d_final_cleanup ( void  )

◆ nmg_isect_2faceuse()

int nmg_isect_2faceuse ( point_t  pt,
vect_t  dir,
struct faceuse fu1,
struct faceuse fu2,
const struct bn_tol tol 
)

◆ nmg_isect_vert2p_face2p()

void nmg_isect_vert2p_face2p ( struct nmg_inter_struct is,
struct vertexuse vu1,
struct faceuse fu2 
)

◆ nmg_break_eu_on_v()

struct edgeuse * nmg_break_eu_on_v ( struct edgeuse eu1,
struct vertex v2,
struct faceuse fu,
struct nmg_inter_struct is 
)

◆ nmg_break_eg_on_v()

void nmg_break_eg_on_v ( const struct edge_g_lseg eg,
struct vertex v,
const struct bn_tol tol 
)

◆ nmg_isect_2colinear_edge2p()

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 
)

◆ nmg_isect_edge2p_edge2p()

int nmg_isect_edge2p_edge2p ( struct nmg_inter_struct is,
struct edgeuse eu1,
struct edgeuse eu2,
struct faceuse fu1,
struct faceuse fu2 
)

◆ nmg_isect_construct_nice_ray()

int nmg_isect_construct_nice_ray ( struct nmg_inter_struct is,
struct faceuse fu2 
)

◆ nmg_enlist_one_vu()

void nmg_enlist_one_vu ( struct nmg_inter_struct is,
const struct vertexuse vu,
fastf_t  dist 
)

◆ nmg_isect_line2_edge2p()

int nmg_isect_line2_edge2p ( struct nmg_inter_struct is,
struct bu_ptbl list,
struct edgeuse eu1,
struct faceuse fu1,
struct faceuse fu2 
)

◆ nmg_isect_line2_vertex2()

void nmg_isect_line2_vertex2 ( struct nmg_inter_struct is,
struct vertexuse vu1,
struct faceuse fu1 
)

◆ nmg_isect_two_ptbls()

int nmg_isect_two_ptbls ( struct nmg_inter_struct is,
const struct bu_ptbl t1,
const struct bu_ptbl t2 
)

◆ nmg_find_eg_on_line()

struct edge_g_lseg * nmg_find_eg_on_line ( const uint32_t *  magic_p,
const point_t  pt,
const vect_t  dir,
struct bu_list vlfree,
const struct bn_tol tol 
)

◆ nmg_k0eu()

int nmg_k0eu ( struct vertex v)

◆ nmg_repair_v_near_v()

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 
)

◆ nmg_search_v_eg()

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 
)

◆ nmg_common_v_2eg()

struct vertex * nmg_common_v_2eg ( struct edge_g_lseg eg1,
struct edge_g_lseg eg2,
const struct bn_tol tol 
)

◆ nmg_is_vertex_on_inter()

int nmg_is_vertex_on_inter ( struct vertex v,
struct faceuse fu1,
struct faceuse fu2,
struct nmg_inter_struct is,
struct bu_list vlfree 
)

◆ nmg_isect_eu_verts()

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 
)

◆ nmg_isect_eu_eu()

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 
)

◆ nmg_isect_eu_fu()

void nmg_isect_eu_fu ( struct nmg_inter_struct is,
struct bu_ptbl verts,
struct edgeuse eu,
struct faceuse fu,
struct bu_list vlfree 
)

◆ nmg_isect_fu_jra()

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,
struct bu_list vlfree 
)

◆ nmg_isect_line2_face2pNEW()

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,
struct bu_list vlfree 
)

◆ nmg_is_eu_on_line3()

int nmg_is_eu_on_line3 ( const struct edgeuse eu,
const point_t  pt,
const vect_t  dir,
const struct bn_tol tol 
)

◆ nmg_find_eg_between_2fg()

struct edge_g_lseg * nmg_find_eg_between_2fg ( const struct faceuse ofu1,
const struct faceuse fu2,
struct bu_list vlfree,
const struct bn_tol tol 
)

◆ nmg_does_fu_use_eg()

struct edgeuse * nmg_does_fu_use_eg ( const struct faceuse fu1,
const uint32_t *  eg 
)

◆ rt_line_on_plane()

int rt_line_on_plane ( const point_t  pt,
const vect_t  dir,
const plane_t  plane,
const struct bn_tol tol 
)

◆ nmg_cut_lu_into_coplanar_and_non()

void nmg_cut_lu_into_coplanar_and_non ( struct loopuse lu,
plane_t  pl,
struct nmg_inter_struct is,
struct bu_list vlfree 
)

◆ nmg_check_radial_angles()

void nmg_check_radial_angles ( char *  str,
struct shell s,
struct bu_list vlfree,
const struct bn_tol tol 
)

◆ nmg_faces_can_be_intersected()

int nmg_faces_can_be_intersected ( struct nmg_inter_struct bs,
const struct faceuse fu1,
const struct faceuse fu2,
struct bu_list vlfree,
const struct bn_tol tol 
)

◆ nmg_isect_two_generic_faces()

void nmg_isect_two_generic_faces ( struct faceuse fu1,
struct faceuse fu2,
struct bu_list vlfree,
const struct bn_tol tol 
)

◆ nmg_crackshells()

void nmg_crackshells ( struct shell s1,
struct shell s2,
struct bu_list vlfree,
const struct bn_tol tol 
)

◆ nmg_fu_touchingloops()

int nmg_fu_touchingloops ( const struct faceuse fu)