Vertex Trees
[libbn (numerical functions)]

Collaboration diagram for Vertex Trees:


Files

file  vert_tree.c
 Routines to manage a binary search tree of vertices.

Data Structures

union  vert_tree

Defines

#define VERT_LEAF   'l'
#define VERT_NODE   'n'

Functions

vert_rootcreate_vert_tree ()
 routine to create a vertex tree.
vert_rootcreate_vert_tree_w_norms ()
 routine to create a vertex tree.
void clean_vert_tree (struct vert_root *tree_root)
 Routine to free the binary search tree and reset the current number of vertices. The vertex array is left untouched, for re-use later.
void free_vert_tree (struct vert_root *vert_root)
 Routine to free a vertex tree and all associated dynamic memory.
int Add_vert (double x, double y, double z, struct vert_root *vert_root, fastf_t local_tol_sq)
 Routine to add a vertex to the current list of part vertices. The array is re-alloc'd if needed. Returns index into the array of vertices where this vertex is stored.
int Add_vert_and_norm (double x, double y, double z, double nx, double ny, double nz, struct vert_root *vert_root, fastf_t local_tol_sq)
 Routine to add a vertex and a normal to the current list of part vertices. The array is re-alloc'd if needed. Returns index into the array of vertices where this vertex and normal is stored.

Define Documentation

#define VERT_LEAF   'l'
 

Definition at line 90 of file vert_tree.c.

Referenced by Add_vert().

#define VERT_NODE   'n'
 

Definition at line 91 of file vert_tree.c.

Referenced by Add_vert(), and Add_vert_and_norm().


Function Documentation

struct vert_root* create_vert_tree  ) 
 

routine to create a vertex tree.

C R E A T E _ V E R T _ T R E E

Possible refinements include specifying an initial size

Definition at line 101 of file vert_tree.c.

References bu_calloc(), bu_malloc(), vert_root::curr_vert, vert_root::magic, vert_root::max_vert, NULL, vert_root::the_array, vert_root::the_tree, vert_root::tree_type, TREE_TYPE_VERTS, VERT_BLOCK, and VERT_TREE_MAGIC.

Here is the call graph for this function:

struct vert_root* create_vert_tree_w_norms  ) 
 

routine to create a vertex tree.

C R E A T E _ V E R T _ T R E E _ W _ N O R M S

Possible refinements include specifying an initial size

Definition at line 123 of file vert_tree.c.

References bu_calloc(), bu_malloc(), vert_root::curr_vert, vert_root::magic, vert_root::max_vert, NULL, vert_root::the_array, vert_root::the_tree, vert_root::tree_type, TREE_TYPE_VERTS_AND_NORMS, VERT_BLOCK, and VERT_TREE_MAGIC.

Here is the call graph for this function:

void clean_vert_tree struct vert_root tree_root  ) 
 

Routine to free the binary search tree and reset the current number of vertices. The vertex array is left untouched, for re-use later.

C L E A N _ V E R T _ T R E E

Definition at line 160 of file vert_tree.c.

References BN_CK_VERT_TREE, vert_root::curr_vert, NULL, and vert_root::the_tree.

void free_vert_tree struct vert_root vert_root  ) 
 

Routine to free a vertex tree and all associated dynamic memory.

F R E E _ V E R T_ T R E E

Definition at line 193 of file vert_tree.c.

References BN_CK_VERT_TREE, bu_free(), vert_root::curr_vert, vert_root::max_vert, NULL, ptr, vert_root::the_array, and vert_root::the_tree.

Here is the call graph for this function:

int Add_vert double  x,
double  y,
double  z,
struct vert_root vert_root,
fastf_t  local_tol_sq
 

Routine to add a vertex to the current list of part vertices. The array is re-alloc'd if needed. Returns index into the array of vertices where this vertex is stored.

A D D _ V E R T

Definition at line 225 of file vert_tree.c.

References BN_CK_VERT_TREE, bu_bomb(), bu_malloc(), bu_realloc(), vert_tree::vert_node::coord, vert_root::curr_vert, vert_tree::vert_node::cut_val, vert_tree::vert_node::higher, vert_tree::vert_node::lower, vert_root::max_vert, NULL, ptr, vert_root::the_array, vert_root::the_tree, vert_root::tree_type, TREE_TYPE_VERTS, VERT_BLOCK, VERT_LEAF, VERT_NODE, VMOVE, vert_tree::vnode, and VSET.

Here is the call graph for this function:

int Add_vert_and_norm double  x,
double  y,
double  z,
double  nx,
double  ny,
double  nz,
struct vert_root vert_root,
fastf_t  local_tol_sq
 

Routine to add a vertex and a normal to the current list of part vertices. The array is re-alloc'd if needed. Returns index into the array of vertices where this vertex and normal is stored.

A D D _ V E R T _ A N D _ N O R M

Definition at line 350 of file vert_tree.c.

References BN_CK_VERT_TREE, bu_bomb(), NULL, ptr, vert_root::the_array, vert_root::the_tree, vert_root::tree_type, TREE_TYPE_VERTS_AND_NORMS, VDOT, VERT_NODE, and VSET.

Here is the call graph for this function:


Generated on Mon Sep 18 01:25:24 2006 for BRL-CAD by  doxygen 1.4.6