38#define NMG_CK_VERTEX(_p) NMG_CKMAG(_p, NMG_VERTEX_MAGIC, "vertex")
39#define NMG_CK_VERTEX_G(_p) NMG_CKMAG(_p, NMG_VERTEX_G_MAGIC, "vertex_g")
40#define NMG_CK_VERTEXUSE(_p) NMG_CKMAG(_p, NMG_VERTEXUSE_MAGIC, "vertexuse")
41#define NMG_CK_VERTEXUSE_A_PLANE(_p) NMG_CKMAG(_p, NMG_VERTEXUSE_A_PLANE_MAGIC, "vertexuse_a_plane")
43#define GET_VERTEX(p, m) {NMG_GETSTRUCT(p, vertex); NMG_INCR_INDEX(p, m);}
44#define GET_VERTEX_G(p, m) {NMG_GETSTRUCT(p, vertex_g); NMG_INCR_INDEX(p, m);}
45#define GET_VERTEXUSE(p, m) {NMG_GETSTRUCT(p, vertexuse); NMG_INCR_INDEX(p, m);}
46#define GET_VERTEXUSE_A_PLANE(p, m) {NMG_GETSTRUCT(p, vertexuse_a_plane); NMG_INCR_INDEX(p, m);}
47#define GET_VERTEXUSE_A_CNURB(p, m) {NMG_GETSTRUCT(p, vertexuse_a_cnurb); NMG_INCR_INDEX(p, m);}
48#define FREE_VERTEX(p) NMG_FREESTRUCT(p, vertex)
49#define FREE_VERTEX_G(p) NMG_FREESTRUCT(p, vertex_g)
50#define FREE_VERTEXUSE(p) NMG_FREESTRUCT(p, vertexuse)
51#define FREE_VERTEXUSE_A_PLANE(p) NMG_FREESTRUCT(p, vertexuse_a_plane)
52#define FREE_VERTEXUSE_A_CNURB(p) NMG_FREESTRUCT(p, vertexuse_a_cnurb)
171 const uint32_t *magic_p,
201 const uint32_t *magic_p,
227 const struct bn_tol *tol);
246 const int approximate,
248 const struct bn_tol *tol);
276 const struct bn_tol *tol);
Header file for the BRL-CAD common definitions.
void float float float * z
void nmg_vertex_g(struct vertex *v, fastf_t x, fastf_t y, fastf_t z)
Given a vertex v, set the coordinates of the vertex geometry associated with v to (x,...
int nmg_simple_vertex_solve(struct vertex *new_v, const struct bu_ptbl *faces, const struct bn_tol *tol)
Given a vertex and a list of faces (not more than three) that should intersect at the vertex,...
int nmg_in_or_ref(struct vertexuse *vu, struct bu_ptbl *b)
Check if the given vertexuse vu is in the table given by b or if vu references a vertex which is refe...
int nmg_vertex_fuse(const uint32_t *magic_p, struct bu_list *vlfree, const struct bn_tol *tol)
Fuse together any vertices that are geometrically identical, within distance tolerance.
void nmg_vertex_tabulate(struct bu_ptbl *tab, const uint32_t *magic_p, struct bu_list *vlfree)
Build the set of pointers to all vertex structures in an NMG model that are "below" the data structur...
void nmg_movevu(struct vertexuse *vu, struct vertex *v)
Given a vertex use vu, change its vertex association from it's current vertex to v.
void nmg_vertexuse_normal_tabulate(struct bu_ptbl *tab, const uint32_t *magic_p, struct bu_list *vlfree)
Build the set of pointers to all vertexuse normal structures in an NMG model that are "below" the dat...
int nmg_kvu(struct vertexuse *vu)
Kill vertexuse vu, and null out parent's vu_p.
void nmg_jv(struct vertex *v1, struct vertex *v2)
Join two vertexes into one.
int nmg_in_vert(struct vertex *new_v, const int approximate, struct bu_list *vlfree, const struct bn_tol *tol)
Move vertex so it is at the intersection of the newly created faces.
void nmg_vertexuse_nv(struct vertexuse *vu, const vect_t norm)
Given a vertex use vu, associate a normal vector norm with that use.
void nmg_vertex_gv(struct vertex *v, const point_t pt)
Given a vertex v, set the coordinates of the vertex geometry associated with v to pt.
fastf_t vect_t[ELEMENTS_PER_VECT]
3-tuple vector
double fastf_t
fastest 64-bit (or larger) floating point type
fastf_t point_t[ELEMENTS_PER_POINT]
3-tuple point
NMG topological vertex - the simplest element of the topology system.
NMG topological vertex usage.
fundamental vector, matrix, quaternion math macros