BRL-CAD

Routines for working with NMG Shells. More...

Collaboration diagram for Shell:

Files

file  shell.h
 

Macros

#define NMG_CK_SHELL(_p)   NMG_CKMAG(_p, NMG_SHELL_MAGIC, "shell")
 
#define NMG_CK_SHELL_A(_p)   NMG_CKMAG(_p, NMG_SHELL_A_MAGIC, "shell_a")
 
#define GET_SHELL(p, m)   {NMG_GETSTRUCT(p, shell); NMG_INCR_INDEX(p, m);}
 
#define GET_SHELL_A(p, m)   {NMG_GETSTRUCT(p, shell_a); NMG_INCR_INDEX(p, m);}
 
#define FREE_SHELL(p)   NMG_FREESTRUCT(p, shell)
 
#define FREE_SHELL_A(p)   NMG_FREESTRUCT(p, shell_a)
 

Functions

void nmg_shell_a (struct shell *s, const struct bn_tol *tol)
 
struct loopusenmg_ml (struct shell *s)
 
int nmg_keu_zl (struct shell *s, const struct bn_tol *tol)
 
int nmg_ks (struct shell *s)
 
void nmg_shell_coplanar_face_merge (struct shell *s, const struct bn_tol *tol, const int simplify, struct bu_list *vlfree)
 
int nmg_simplify_shell (struct shell *s, struct bu_list *vlfree)
 
void nmg_rm_redundancies (struct shell *s, struct bu_list *vlfree, const struct bn_tol *tol)
 
void nmg_sanitize_s_lv (struct shell *s, int orient)
 
void nmg_s_split_touchingloops (struct shell *s, const struct bn_tol *tol)
 
void nmg_s_join_touchingloops (struct shell *s, const struct bn_tol *tol)
 
void nmg_js (struct shell *s1, struct shell *s2, struct bu_list *vlfree, const struct bn_tol *tol)
 
void nmg_invert_shell (struct shell *s)
 
int nmg_shell_is_empty (const struct shell *s)
 
struct shellnmg_find_s_of_lu (const struct loopuse *lu)
 
struct shellnmg_find_s_of_eu (const struct edgeuse *eu)
 
struct shellnmg_find_s_of_vu (const struct vertexuse *vu)
 
struct shellnmg_extrude_cleanup (struct shell *is, const int is_void, struct bu_list *vlfree, const struct bn_tol *tol)
 
void nmg_hollow_shell (struct shell *s, const fastf_t thick, const int approximate, struct bu_list *vlfree, const struct bn_tol *tol)
 
struct shellnmg_extrude_shell (struct shell *s, const fastf_t dist, const int normal_ward, const int approximate, struct bu_list *vlfree, const struct bn_tol *tol)
 
void nmg_close_shell (struct shell *s, struct bu_list *vlfree, const struct bn_tol *tol)
 
struct shellnmg_dup_shell (struct shell *s, long ***copy_tbl, struct bu_list *vlfree, const struct bn_tol *tol)
 
void nmg_glue_face_in_shell (const struct faceuse *fu, struct shell *s, const struct bn_tol *tol)
 
int nmg_open_shells_connect (struct shell *dst, struct shell *src, const long **copy_tbl, struct bu_list *vlfree, const struct bn_tol *tol)
 
int nmg_simplify_shell_edges (struct shell *s, const struct bn_tol *tol)
 
char * nmg_shell_manifolds (struct shell *sp, char *tbl)
 
void nmg_mv_vu_between_shells (struct shell *dest, struct shell *src, struct vertexuse *vu)
 
struct shellnmg_find_shell (const uint32_t *magic_p)
 
struct vertexusenmg_find_v_in_shell (const struct vertex *v, const struct shell *s, int edges_only)
 
struct vertexnmg_find_pnt_in_shell (const struct shell *s, const point_t pt, const struct bn_tol *tol)
 
int nmg_is_vertex_a_selfloop_in_shell (const struct vertex *v, const struct shell *s)
 
struct facenmg_find_top_face_in_dir (const struct shell *s, int dir, long *flags)
 
struct facenmg_find_top_face (const struct shell *s, int *dir, long *flags)
 
int nmg_find_outer_and_void_shells (struct nmgregion *r, struct bu_ptbl ***shells, struct bu_list *vlfree, const struct bn_tol *tol)
 
void nmg_isect_shell_self (struct shell *s, struct bu_list *vlfree, const struct bn_tol *tol)
 
struct edgeusenmg_next_radial_eu (const struct edgeuse *eu, const struct shell *s, const int wires)
 
struct edgeusenmg_prev_radial_eu (const struct edgeuse *eu, const struct shell *s, const int wires)
 
int nmg_radial_face_count (const struct edgeuse *eu, const struct shell *s)
 
int nmg_check_closed_shell (const struct shell *s, const struct bn_tol *tol)
 
fastf_t nmg_shell_area (const struct shell *s)
 
int nmg_shell_is_void (const struct shell *s)
 
void nmg_connect_same_fu_orients (struct shell *s)
 
void nmg_fix_decomposed_shell_normals (struct shell *s, const struct bn_tol *tol)
 
void nmg_fix_normals (struct shell *s_orig, struct bu_list *vlfree, const struct bn_tol *tol)
 
int nmg_break_long_edges (struct shell *s, const struct bn_tol *tol)
 
int nmg_decompose_shell (struct shell *s, struct bu_list *vlfree, const struct bn_tol *tol)
 
void nmg_vlist_to_eu (struct bu_list *vlist, struct shell *s)
 
int nmg_mv_shell_to_region (struct shell *s, struct nmgregion *r)
 
int nmg_bad_face_normals (const struct shell *s, const struct bn_tol *tol)
 
void nmg_vlist_to_wire_edges (struct shell *s, const struct bu_list *vhead)
 
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)
 
int nmg_kill_cracks (struct shell *s)
 
void nmg_make_faces_within_tol (struct shell *s, struct bu_list *vlfree, const struct bn_tol *tol)
 
void nmg_intersect_loops_self (struct shell *s, const struct bn_tol *tol)
 
void nmg_triangulate_shell (struct shell *s, struct bu_list *vlfree, const struct bn_tol *tol)
 
int nmg_classify_s_vs_s (struct shell *s, struct shell *s2, struct bu_list *vlfree, const struct bn_tol *tol)
 
int nmg_class_pnt_s (const point_t pt, const struct shell *s, const int in_or_out_only, struct bu_list *vlfree, const struct bn_tol *tol)
 
int nmg_mesh_face_shell (struct faceuse *fu1, struct shell *s, const struct bn_tol *tol)
 
int nmg_mesh_shell_shell (struct shell *s1, struct shell *s2, struct bu_list *vlfree, const struct bn_tol *tol)
 
void nmg_class_shells (struct shell *sA, struct shell *sB, char **classlist, struct bu_list *vlfree, const struct bn_tol *tol)
 
void nmg_evaluate_boolean (struct shell *sA, struct shell *sB, int op, char **classlist, struct bu_list *vlfree, const struct bn_tol *tol)
 

Detailed Description

Routines for working with NMG Shells.

Macro Definition Documentation

◆ NMG_CK_SHELL

#define NMG_CK_SHELL (   _p)    NMG_CKMAG(_p, NMG_SHELL_MAGIC, "shell")

Definition at line 38 of file shell.h.

◆ NMG_CK_SHELL_A

#define NMG_CK_SHELL_A (   _p)    NMG_CKMAG(_p, NMG_SHELL_A_MAGIC, "shell_a")

Definition at line 39 of file shell.h.

◆ GET_SHELL

#define GET_SHELL (   p,
 
)    {NMG_GETSTRUCT(p, shell); NMG_INCR_INDEX(p, m);}

Definition at line 41 of file shell.h.

◆ GET_SHELL_A

#define GET_SHELL_A (   p,
 
)    {NMG_GETSTRUCT(p, shell_a); NMG_INCR_INDEX(p, m);}

Definition at line 42 of file shell.h.

◆ FREE_SHELL

#define FREE_SHELL (   p)    NMG_FREESTRUCT(p, shell)

Definition at line 44 of file shell.h.

◆ FREE_SHELL_A

#define FREE_SHELL_A (   p)    NMG_FREESTRUCT(p, shell_a)

Definition at line 45 of file shell.h.

Function Documentation

◆ nmg_shell_a()

void nmg_shell_a ( struct shell s,
const struct bn_tol tol 
)

◆ nmg_ml()

struct loopuse * nmg_ml ( struct shell s)

◆ nmg_keu_zl()

int nmg_keu_zl ( struct shell s,
const struct bn_tol tol 
)

◆ nmg_ks()

int nmg_ks ( struct shell s)

◆ nmg_shell_coplanar_face_merge()

void nmg_shell_coplanar_face_merge ( struct shell s,
const struct bn_tol tol,
const int  simplify,
struct bu_list vlfree 
)

◆ nmg_simplify_shell()

int nmg_simplify_shell ( struct shell s,
struct bu_list vlfree 
)

◆ nmg_rm_redundancies()

void nmg_rm_redundancies ( struct shell s,
struct bu_list vlfree,
const struct bn_tol tol 
)

◆ nmg_sanitize_s_lv()

void nmg_sanitize_s_lv ( struct shell s,
int  orient 
)

◆ nmg_s_split_touchingloops()

void nmg_s_split_touchingloops ( struct shell s,
const struct bn_tol tol 
)

◆ nmg_s_join_touchingloops()

void nmg_s_join_touchingloops ( struct shell s,
const struct bn_tol tol 
)

◆ nmg_js()

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

◆ nmg_invert_shell()

void nmg_invert_shell ( struct shell s)

◆ nmg_shell_is_empty()

int nmg_shell_is_empty ( const struct shell s)

◆ nmg_find_s_of_lu()

struct shell * nmg_find_s_of_lu ( const struct loopuse lu)

◆ nmg_find_s_of_eu()

struct shell * nmg_find_s_of_eu ( const struct edgeuse eu)

◆ nmg_find_s_of_vu()

struct shell * nmg_find_s_of_vu ( const struct vertexuse vu)

◆ nmg_extrude_cleanup()

struct shell * nmg_extrude_cleanup ( struct shell is,
const int  is_void,
struct bu_list vlfree,
const struct bn_tol tol 
)

◆ nmg_hollow_shell()

void nmg_hollow_shell ( struct shell s,
const fastf_t  thick,
const int  approximate,
struct bu_list vlfree,
const struct bn_tol tol 
)

◆ nmg_extrude_shell()

struct shell * nmg_extrude_shell ( struct shell s,
const fastf_t  dist,
const int  normal_ward,
const int  approximate,
struct bu_list vlfree,
const struct bn_tol tol 
)

◆ nmg_close_shell()

void nmg_close_shell ( struct shell s,
struct bu_list vlfree,
const struct bn_tol tol 
)

◆ nmg_dup_shell()

struct shell * nmg_dup_shell ( struct shell s,
long ***  copy_tbl,
struct bu_list vlfree,
const struct bn_tol tol 
)

◆ nmg_glue_face_in_shell()

void nmg_glue_face_in_shell ( const struct faceuse fu,
struct shell s,
const struct bn_tol tol 
)

◆ nmg_open_shells_connect()

int nmg_open_shells_connect ( struct shell dst,
struct shell src,
const long **  copy_tbl,
struct bu_list vlfree,
const struct bn_tol tol 
)

◆ nmg_simplify_shell_edges()

int nmg_simplify_shell_edges ( struct shell s,
const struct bn_tol tol 
)

◆ nmg_shell_manifolds()

char * nmg_shell_manifolds ( struct shell sp,
char *  tbl 
)

◆ nmg_mv_vu_between_shells()

void nmg_mv_vu_between_shells ( struct shell dest,
struct shell src,
struct vertexuse vu 
)

◆ nmg_find_shell()

struct shell * nmg_find_shell ( const uint32_t *  magic_p)

◆ nmg_find_v_in_shell()

struct vertexuse * nmg_find_v_in_shell ( const struct vertex v,
const struct shell s,
int  edges_only 
)

◆ nmg_find_pnt_in_shell()

struct vertex * nmg_find_pnt_in_shell ( const struct shell s,
const point_t  pt,
const struct bn_tol tol 
)

◆ nmg_is_vertex_a_selfloop_in_shell()

int nmg_is_vertex_a_selfloop_in_shell ( const struct vertex v,
const struct shell s 
)

◆ nmg_find_top_face_in_dir()

struct face * nmg_find_top_face_in_dir ( const struct shell s,
int  dir,
long *  flags 
)

◆ nmg_find_top_face()

struct face * nmg_find_top_face ( const struct shell s,
int *  dir,
long *  flags 
)

◆ nmg_find_outer_and_void_shells()

int nmg_find_outer_and_void_shells ( struct nmgregion r,
struct bu_ptbl ***  shells,
struct bu_list vlfree,
const struct bn_tol tol 
)

◆ nmg_isect_shell_self()

void nmg_isect_shell_self ( struct shell s,
struct bu_list vlfree,
const struct bn_tol tol 
)

◆ nmg_next_radial_eu()

struct edgeuse * nmg_next_radial_eu ( const struct edgeuse eu,
const struct shell s,
const int  wires 
)

◆ nmg_prev_radial_eu()

struct edgeuse * nmg_prev_radial_eu ( const struct edgeuse eu,
const struct shell s,
const int  wires 
)

◆ nmg_radial_face_count()

int nmg_radial_face_count ( const struct edgeuse eu,
const struct shell s 
)

◆ nmg_check_closed_shell()

int nmg_check_closed_shell ( const struct shell s,
const struct bn_tol tol 
)

◆ nmg_shell_area()

fastf_t nmg_shell_area ( const struct shell s)

◆ nmg_shell_is_void()

int nmg_shell_is_void ( const struct shell s)

◆ nmg_connect_same_fu_orients()

void nmg_connect_same_fu_orients ( struct shell s)

◆ nmg_fix_decomposed_shell_normals()

void nmg_fix_decomposed_shell_normals ( struct shell s,
const struct bn_tol tol 
)

◆ nmg_fix_normals()

void nmg_fix_normals ( struct shell s_orig,
struct bu_list vlfree,
const struct bn_tol tol 
)

◆ nmg_break_long_edges()

int nmg_break_long_edges ( struct shell s,
const struct bn_tol tol 
)

◆ nmg_decompose_shell()

int nmg_decompose_shell ( struct shell s,
struct bu_list vlfree,
const struct bn_tol tol 
)

◆ nmg_vlist_to_eu()

void nmg_vlist_to_eu ( struct bu_list vlist,
struct shell s 
)

◆ nmg_mv_shell_to_region()

int nmg_mv_shell_to_region ( struct shell s,
struct nmgregion r 
)

◆ nmg_bad_face_normals()

int nmg_bad_face_normals ( const struct shell s,
const struct bn_tol tol 
)

◆ nmg_vlist_to_wire_edges()

void nmg_vlist_to_wire_edges ( struct shell s,
const struct bu_list vhead 
)

◆ nmg_follow_free_edges_to_vertex()

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 
)

◆ nmg_kill_cracks()

int nmg_kill_cracks ( struct shell s)

◆ nmg_make_faces_within_tol()

void nmg_make_faces_within_tol ( struct shell s,
struct bu_list vlfree,
const struct bn_tol tol 
)

◆ nmg_intersect_loops_self()

void nmg_intersect_loops_self ( struct shell s,
const struct bn_tol tol 
)

◆ nmg_triangulate_shell()

void nmg_triangulate_shell ( struct shell s,
struct bu_list vlfree,
const struct bn_tol tol 
)

◆ nmg_classify_s_vs_s()

int nmg_classify_s_vs_s ( struct shell s,
struct shell s2,
struct bu_list vlfree,
const struct bn_tol tol 
)

◆ nmg_class_pnt_s()

int nmg_class_pnt_s ( const point_t  pt,
const struct shell s,
const int  in_or_out_only,
struct bu_list vlfree,
const struct bn_tol tol 
)

◆ nmg_mesh_face_shell()

int nmg_mesh_face_shell ( struct faceuse fu1,
struct shell s,
const struct bn_tol tol 
)

◆ nmg_mesh_shell_shell()

int nmg_mesh_shell_shell ( struct shell s1,
struct shell s2,
struct bu_list vlfree,
const struct bn_tol tol 
)

◆ nmg_class_shells()

void nmg_class_shells ( struct shell sA,
struct shell sB,
char **  classlist,
struct bu_list vlfree,
const struct bn_tol tol 
)

◆ nmg_evaluate_boolean()

void nmg_evaluate_boolean ( struct shell sA,
struct shell sB,
int  op,
char **  classlist,
struct bu_list vlfree,
const struct bn_tol tol 
)