BRL-CAD
vertex.h File Reference
#include "common.h"
#include "vmath.h"
#include "bu/list.h"
#include "nmg/defines.h"
#include "nmg/topology.h"
Include dependency graph for vertex.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define NMG_CK_VERTEX(_p)   NMG_CKMAG(_p, NMG_VERTEX_MAGIC, "vertex")
 
#define NMG_CK_VERTEX_G(_p)   NMG_CKMAG(_p, NMG_VERTEX_G_MAGIC, "vertex_g")
 
#define NMG_CK_VERTEXUSE(_p)   NMG_CKMAG(_p, NMG_VERTEXUSE_MAGIC, "vertexuse")
 
#define NMG_CK_VERTEXUSE_A_PLANE(_p)   NMG_CKMAG(_p, NMG_VERTEXUSE_A_PLANE_MAGIC, "vertexuse_a_plane")
 
#define GET_VERTEX(p, m)   {NMG_GETSTRUCT(p, vertex); NMG_INCR_INDEX(p, m);}
 
#define GET_VERTEX_G(p, m)   {NMG_GETSTRUCT(p, vertex_g); NMG_INCR_INDEX(p, m);}
 
#define GET_VERTEXUSE(p, m)   {NMG_GETSTRUCT(p, vertexuse); NMG_INCR_INDEX(p, m);}
 
#define GET_VERTEXUSE_A_PLANE(p, m)   {NMG_GETSTRUCT(p, vertexuse_a_plane); NMG_INCR_INDEX(p, m);}
 
#define GET_VERTEXUSE_A_CNURB(p, m)   {NMG_GETSTRUCT(p, vertexuse_a_cnurb); NMG_INCR_INDEX(p, m);}
 
#define FREE_VERTEX(p)   NMG_FREESTRUCT(p, vertex)
 
#define FREE_VERTEX_G(p)   NMG_FREESTRUCT(p, vertex_g)
 
#define FREE_VERTEXUSE(p)   NMG_FREESTRUCT(p, vertexuse)
 
#define FREE_VERTEXUSE_A_PLANE(p)   NMG_FREESTRUCT(p, vertexuse_a_plane)
 
#define FREE_VERTEXUSE_A_CNURB(p)   NMG_FREESTRUCT(p, vertexuse_a_cnurb)
 

Functions

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. More...
 
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,y,z) More...
 
void nmg_vertexuse_nv (struct vertexuse *vu, const vect_t norm)
 Given a vertex use vu, associate a normal vector norm with that use. More...
 
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. More...
 
int nmg_kvu (struct vertexuse *vu)
 Kill vertexuse vu, and null out parent's vu_p. More...
 
void nmg_jv (struct vertex *v1, struct vertex *v2)
 Join two vertexes into one. More...
 
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 structure pointed to by magic_p, where magic_p is a pointer to the magic entry of any NMG data structure in the model. More...
 
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 data structure pointed to by magic_p, where magic_p is a pointer to the magic entry of any NMG data structure in the model. More...
 
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 referenced by a vertexuse in the table. More...
 
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, calculate a new location for the vertex and modify the vertex_g geometry associated with the vertex to the new location. More...
 
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. More...
 
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. More...