BRL-CAD
check.h
Go to the documentation of this file.
1 /* C H E C K . H
2  * BRL-CAD
3  *
4  * Copyright (c) 2004-2024 United States Government as represented by
5  * the U.S. Army Research Laboratory.
6  *
7  * This library is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU Lesser General Public License
9  * version 2.1 as published by the Free Software Foundation.
10  *
11  * This library is distributed in the hope that it will be useful, but
12  * WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14  * Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public
17  * License along with this file; see the file named COPYING for more
18  * information.
19  */
20 
21 /*----------------------------------------------------------------------*/
22 /** @addtogroup nmg_check
23  */
24 /** @{ */
25 /** @file nmg/check.h */
26 
27 #ifndef NMG_CHECK_H
28 #define NMG_CHECK_H
29 
30 #include "common.h"
31 
32 #include "vmath.h"
33 #include "bu/list.h"
34 #include "bn/tol.h"
35 #include "nmg/defines.h"
36 #include "nmg/model.h"
37 
38 __BEGIN_DECLS
39 
40 /* From nmg_ck.c */
41 NMG_EXPORT extern void nmg_vvg(const struct vertex_g *vg);
42 NMG_EXPORT extern void nmg_vvertex(const struct vertex *v,
43  const struct vertexuse *vup);
44 NMG_EXPORT extern void nmg_vvua(const uint32_t *vua);
45 NMG_EXPORT extern void nmg_vvu(const struct vertexuse *vu,
46  const uint32_t *up_magic_p);
47 NMG_EXPORT extern void nmg_veg(const uint32_t *eg);
48 NMG_EXPORT extern void nmg_vedge(const struct edge *e,
49  const struct edgeuse *eup);
50 NMG_EXPORT extern void nmg_veu(const struct bu_list *hp,
51  const uint32_t *up_magic_p);
52 NMG_EXPORT extern void nmg_vlg(const struct loop_a *lg);
53 NMG_EXPORT extern void nmg_vloop(const struct loop *l,
54  const struct loopuse *lup);
55 NMG_EXPORT extern void nmg_vlu(const struct bu_list *hp,
56  const uint32_t *up);
57 NMG_EXPORT extern void nmg_vfg(const struct face_g_plane *fg);
58 NMG_EXPORT extern void nmg_vface(const struct face *f,
59  const struct faceuse *fup);
60 NMG_EXPORT extern void nmg_vfu(const struct bu_list *hp,
61  const struct shell *s);
62 NMG_EXPORT extern void nmg_vsshell(const struct shell *s,
63  const struct nmgregion *r);
64 NMG_EXPORT extern void nmg_vshell(const struct bu_list *hp,
65  const struct nmgregion *r);
66 NMG_EXPORT extern void nmg_vregion(const struct bu_list *hp,
67  const struct model *m);
68 NMG_EXPORT extern void nmg_vmodel(const struct model *m);
69 
70 /* checking routines */
71 NMG_EXPORT extern void nmg_ck_e(const struct edgeuse *eu,
72  const struct edge *e,
73  const char *str);
74 NMG_EXPORT extern void nmg_ck_vu(const uint32_t *parent,
75  const struct vertexuse *vu,
76  const char *str);
77 NMG_EXPORT extern void nmg_ck_eu(const uint32_t *parent,
78  const struct edgeuse *eu,
79  const char *str);
80 NMG_EXPORT extern void nmg_ck_lg(const struct loop *l,
81  const struct loop_a *lg,
82  const char *str);
83 NMG_EXPORT extern void nmg_ck_l(const struct loopuse *lu,
84  const struct loop *l,
85  const char *str);
86 NMG_EXPORT extern void nmg_ck_lu(const uint32_t *parent,
87  const struct loopuse *lu,
88  const char *str);
89 NMG_EXPORT extern void nmg_ck_fg(const struct face *f,
90  const struct face_g_plane *fg,
91  const char *str);
92 NMG_EXPORT extern void nmg_ck_f(const struct faceuse *fu,
93  const struct face *f,
94  const char *str);
95 NMG_EXPORT extern void nmg_ck_fu(const struct shell *s,
96  const struct faceuse *fu,
97  const char *str);
98 NMG_EXPORT extern int nmg_ck_eg_verts(const struct edge_g_lseg *eg,
99  const struct bn_tol *tol);
100 NMG_EXPORT extern size_t nmg_ck_geometry(const struct model *m,
101  struct bu_list *vlfree,
102  const struct bn_tol *tol);
103 NMG_EXPORT extern int nmg_ck_face_worthless_edges(const struct faceuse *fu);
104 NMG_EXPORT extern void nmg_ck_lueu(const struct loopuse *lu, const char *s);
105 NMG_EXPORT extern int nmg_check_radial(const struct edgeuse *eu, const struct bn_tol *tol);
106 NMG_EXPORT extern int nmg_eu_2s_orient_bad(const struct edgeuse *eu,
107  const struct shell *s1,
108  const struct shell *s2,
109  const struct bn_tol *tol);
110 NMG_EXPORT extern int nmg_ck_closed_surf(const struct shell *s,
111  const struct bn_tol *tol);
112 NMG_EXPORT extern int nmg_ck_closed_region(const struct nmgregion *r,
113  const struct bn_tol *tol);
114 NMG_EXPORT extern void nmg_ck_v_in_2fus(const struct vertex *vp,
115  const struct faceuse *fu1,
116  const struct faceuse *fu2,
117  const struct bn_tol *tol);
118 NMG_EXPORT extern void nmg_ck_vs_in_region(const struct nmgregion *r,
119  struct bu_list *vlfree,
120  const struct bn_tol *tol);
121 
122 
123 __END_DECLS
124 
125 #endif /* NMG_CHECK_H */
126 /** @} */
127 /*
128  * Local Variables:
129  * mode: C
130  * tab-width: 8
131  * indent-tabs-mode: t
132  * c-file-style: "stroustrup"
133  * End:
134  * ex: shiftwidth=4 tabstop=8
135  */
Header file for the BRL-CAD common definitions.
int nmg_ck_eg_verts(const struct edge_g_lseg *eg, const struct bn_tol *tol)
void nmg_ck_vs_in_region(const struct nmgregion *r, struct bu_list *vlfree, const struct bn_tol *tol)
void nmg_vsshell(const struct shell *s, const struct nmgregion *r)
void nmg_ck_f(const struct faceuse *fu, const struct face *f, const char *str)
void nmg_vlu(const struct bu_list *hp, const uint32_t *up)
void nmg_vvertex(const struct vertex *v, const struct vertexuse *vup)
void nmg_ck_lueu(const struct loopuse *lu, const char *s)
void nmg_vface(const struct face *f, const struct faceuse *fup)
int nmg_ck_face_worthless_edges(const struct faceuse *fu)
int nmg_ck_closed_surf(const struct shell *s, const struct bn_tol *tol)
void nmg_vvg(const struct vertex_g *vg)
void nmg_vvua(const uint32_t *vua)
int nmg_ck_closed_region(const struct nmgregion *r, const struct bn_tol *tol)
void nmg_ck_fu(const struct shell *s, const struct faceuse *fu, const char *str)
void nmg_ck_vu(const uint32_t *parent, const struct vertexuse *vu, const char *str)
void nmg_vvu(const struct vertexuse *vu, const uint32_t *up_magic_p)
size_t nmg_ck_geometry(const struct model *m, struct bu_list *vlfree, const struct bn_tol *tol)
void nmg_ck_v_in_2fus(const struct vertex *vp, const struct faceuse *fu1, const struct faceuse *fu2, const struct bn_tol *tol)
void nmg_ck_eu(const uint32_t *parent, const struct edgeuse *eu, const char *str)
int nmg_check_radial(const struct edgeuse *eu, const struct bn_tol *tol)
void nmg_veu(const struct bu_list *hp, const uint32_t *up_magic_p)
void nmg_ck_fg(const struct face *f, const struct face_g_plane *fg, const char *str)
void nmg_vedge(const struct edge *e, const struct edgeuse *eup)
void nmg_ck_e(const struct edgeuse *eu, const struct edge *e, const char *str)
void nmg_vmodel(const struct model *m)
void nmg_vlg(const struct loop_a *lg)
void nmg_ck_lg(const struct loop *l, const struct loop_a *lg, const char *str)
int nmg_eu_2s_orient_bad(const struct edgeuse *eu, const struct shell *s1, const struct shell *s2, const struct bn_tol *tol)
void nmg_vloop(const struct loop *l, const struct loopuse *lup)
void nmg_vfu(const struct bu_list *hp, const struct shell *s)
void nmg_vfg(const struct face_g_plane *fg)
void nmg_ck_lu(const uint32_t *parent, const struct loopuse *lu, const char *str)
void nmg_veg(const uint32_t *eg)
void nmg_vregion(const struct bu_list *hp, const struct model *m)
void nmg_vshell(const struct bu_list *hp, const struct nmgregion *r)
void nmg_ck_l(const struct loopuse *lu, const struct loop *l, const char *str)
Definition: tol.h:72
Definition: list.h:132
Line in 3D space.
Definition: topology.h:326
NMG topological edge.
Definition: topology.h:144
NMG topological edge usage.
Definition: topology.h:155
Planar face geometry.
Definition: topology.h:341
NMG topological face.
Definition: topology.h:210
NMG topological face usage.
Definition: topology.h:230
Loop bounding box.
Definition: topology.h:459
NMG topological loop.
Definition: topology.h:181
NMG topological loop usage.
Definition: topology.h:192
NMG topological model.
Definition: topology.h:289
NMG topological region.
Definition: topology.h:277
NMG topological shell.
Definition: topology.h:261
Point in 3D space.
Definition: topology.h:309
NMG topological vertex - the simplest element of the topology system.
Definition: topology.h:98
NMG topological vertex usage.
Definition: topology.h:109
fundamental vector, matrix, quaternion math macros