72 const uint32_t *assoc_use);
121 const struct bn_tol *tol);
128 const struct bn_tol *tol);
134 const struct bn_tol *tol);
137 const struct bn_tol *tol);
148 const struct bn_tol *tol);
156 const struct bn_tol *tol);
176 const struct bn_tol *tol);
180 const struct bn_tol *tol);
186 const struct bn_tol *tol);
194 const struct bn_tol *tol);
199 const struct bn_tol *tol);
203 const struct bn_tol *tol);
207 const struct bn_tol *tol);
Header file for the BRL-CAD common definitions.
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_isect_2faceuse(point_t pt, vect_t dir, struct faceuse *fu1, struct faceuse *fu2, const struct bn_tol *tol)
void nmg_isect2d_cleanup(struct nmg_inter_struct *is)
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)
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_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)
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)
void nmg_check_radial_angles(char *str, struct shell *s, struct bu_list *vlfree, const struct bn_tol *tol)
void nmg_break_eg_on_v(const struct edge_g_lseg *eg, struct vertex *v, const struct bn_tol *tol)
struct vertex * nmg_common_v_2eg(struct edge_g_lseg *eg1, struct edge_g_lseg *eg2, const struct bn_tol *tol)
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_lseg * nmg_find_eg_between_2fg(const struct faceuse *ofu1, const struct faceuse *fu2, struct bu_list *vlfree, const struct bn_tol *tol)
struct vertexuse * nmg_enlist_vu(struct nmg_inter_struct *is, const struct vertexuse *vu, struct vertexuse *dualvu, fastf_t dist)
void nmg_isect2d_final_cleanup(void)
struct vertexuse * nmg_make_dualvu(struct vertex *v, struct faceuse *fu, const struct bn_tol *tol)
void nmg_isect2d_prep(struct nmg_inter_struct *is, const uint32_t *assoc_use)
void nmg_isect_line2_vertex2(struct nmg_inter_struct *is, struct vertexuse *vu1, struct faceuse *fu1)
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_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)
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)
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)
struct edgeuse * nmg_break_eu_on_v(struct edgeuse *eu1, struct vertex *v2, struct faceuse *fu, struct nmg_inter_struct *is)
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)
int nmg_isect_two_ptbls(struct nmg_inter_struct *is, const struct bu_ptbl *t1, const struct bu_ptbl *t2)
int nmg_isect_edge2p_edge2p(struct nmg_inter_struct *is, struct edgeuse *eu1, struct edgeuse *eu2, struct faceuse *fu1, struct faceuse *fu2)
void nmg_crackshells(struct shell *s1, struct shell *s2, struct bu_list *vlfree, const struct bn_tol *tol)
int nmg_k0eu(struct vertex *v)
struct edgeuse * nmg_does_fu_use_eg(const struct faceuse *fu1, const uint32_t *eg)
void nmg_isect_vert2p_face2p(struct nmg_inter_struct *is, struct vertexuse *vu1, struct faceuse *fu2)
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)
int nmg_is_vertex_on_inter(struct vertex *v, struct faceuse *fu1, struct faceuse *fu2, struct nmg_inter_struct *is, struct bu_list *vlfree)
int nmg_fu_touchingloops(const struct faceuse *fu)
int rt_line_on_plane(const point_t pt, const vect_t dir, const plane_t plane, 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)
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)
fastf_t vect_t[ELEMENTS_PER_VECT]
3-tuple vector
double fastf_t
fastest 64-bit (or larger) floating point type
fastf_t mat_t[ELEMENTS_PER_MAT]
4x4 matrix
fastf_t plane_t[ELEMENTS_PER_PLANE]
Definition of a plane equation.
fastf_t point_t[ELEMENTS_PER_POINT]
3-tuple point
NMG topological edge usage.
struct bu_list l2
member of edge_g's eu_hd2 list
NMG topological face usage.
NMG topological loop usage.
fastf_t * mag1
Distances along intersection line.
size_t maxindex
size of vert2d[]
point_t pt2d
2D projection of isect line
struct bu_ptbl * l2
intersection between planes
size_t mag_len
Array size of mag1 and mag2.
fastf_t * mag2
for each vertexuse in l1 and l2.
fastf_t * vert2d
Array of 2d vertex projections [index].
point_t pt
3D line of intersection
struct edge_g_lseg * on_eg
edge_g for line of intersection
struct faceuse * fu2
null if l2 comes from a wire
const uint32_t * twod
ptr to face/edge of 2d projection
struct bu_ptbl * l1
vertexuses on the line of
struct faceuse * fu1
null if l1 comes from a wire
mat_t proj
Matrix to project onto XY plane.
NMG topological vertex - the simplest element of the topology system.
NMG topological vertex usage.
fundamental vector, matrix, quaternion math macros