nmg_junk.c File Reference

Go to the source code of this file.

Functions

shellnmg_polytonmg (FILE *fp, struct nmgregion *r, const struct bn_tol *tol)
int heap_find ()
int heap_insert ()
vertex ** init_heap ()
void heap_increase ()
 main ()
vertex ** init_heap (int n)
void heap_increase (h, int *n)
int heap_insert (h, int *n, struct vertex *i)
int heap_find (struct vertex **h, int n, struct vertex *i, int loc)
void nmg_isect_face3p_shell_int (struct nmg_inter_struct *is, struct faceuse *fu1, struct shell *s2)

Variables

int heap_cur_sz


Detailed Description

This module is a resting place for unfinished subroutines that are NOT a part of the current NMG library, but which were sufficiently far along as to be worth saving.

Definition in file nmg_junk.c.


Function Documentation

struct shell* nmg_polytonmg FILE *  fp,
struct nmgregion r,
const struct bn_tol tol
 

N M G _ P O L Y T O N M G

Read a polygon file and convert it to an NMG shell

A polygon file consists of the following: The first line consists of two integer numbers: the number of points (vertices) in the file, followed by the number of polygons in the file. This line is followed by lines for each of the verticies. Each vertex is listed on its own line, as the 3tuple "X Y Z". After the list of verticies comes the list of polygons. each polygon is represented by a line containing 1) the number of verticies in the polygon, followed by 2) the indicies of the verticies that make up the polygon.

Implicit return: r->s_p A new shell containing all the faces from the polygon file

XXX This is a horrible way to do this. Lee violates his own rules about not creating fundamental structures on his own... :-) Retired in favor of more modern tessellation strategies.

Definition at line 184 of file nmg_junk.c.

References bu_calloc(), bu_log(), DEBUG_POLYTO, GET_VERTEX, nmgregion::m_p, vertex::magic, nmg_kvu(), nmg_msv(), NMG_VERTEX_MAGIC, shell::r_p, rt_bomb(), and shell::vu_p.

Here is the call graph for this function:

int heap_find  ) 
 

Referenced by heap_find(), and heap_insert().

int heap_insert  ) 
 

struct vertex** init_heap  ) 
 

Referenced by main().

void heap_increase  ) 
 

Referenced by heap_insert().

main  ) 
 

Definition at line 288 of file nmg_junk.c.

References init_heap().

Here is the call graph for this function:

struct vertex** init_heap int  n  ) 
 

I N I T _ H E A P

Initialize an array-based implementation of a heap of vertex structs. (Heap: Binary tree w/value of parent > than that of children.)

Definition at line 302 of file nmg_junk.c.

References bu_log(), bu_malloc(), NULL, and rt_bomb().

Here is the call graph for this function:

void heap_increase ,
int *  n
 

H E A P _ I N C R E A S E

Make a heap bigger to make room for new entries.

Definition at line 324 of file nmg_junk.c.

References bu_free(), bu_malloc(), NULL, and rt_bomb().

Here is the call graph for this function:

int heap_insert ,
int *  n,
struct vertex i
 

H E A P _ I N S E R T

Insert a vertex struct into the heap (only if it is not already there).

Definition at line 349 of file nmg_junk.c.

References heap_find(), and heap_increase().

Here is the call graph for this function:

int heap_find struct vertex **  h,
int  n,
struct vertex i,
int  loc
 

H E A P _ F I N D

See if a given vertex struct is in the heap. If so, return its location in the heap array.

Definition at line 388 of file nmg_junk.c.

References heap_find().

Here is the call graph for this function:

void nmg_isect_face3p_shell_int struct nmg_inter_struct is,
struct faceuse fu1,
struct shell s2
 

N M G _ I S E C T _ F A C E 3 P _ S H E L L _ I N T

Intersect all the edges in fu1 that don't lie on any of the faces of shell s2 with s2, i.e. "interior" edges, where the endpoints lie on s2, but the edge is not shared with a face of s2. Such edges wouldn't have been processed by the NEWLINE version of nmg_isect_two_generic_faces(), so intersections need to be looked for here. Fortunately, it's easy to reject everything except edges that need processing using only the topology structures.

The "_int" at the end of the name is to signify that this routine does only "interior" edges, and is not a general face/shell intersector.

Definition at line 427 of file nmg_junk.c.

References BU_LIST_FIRST_MAGIC, BU_LIST_FOR, bu_log(), DEBUG_POLYSECT, loopuse::down_hd, edgeuse::e_p, faceuse::lu_hd, NMG_CK_FACEUSE, NMG_CK_INTER_STRUCT, NMG_CK_LOOPUSE, NMG_CK_SHELL, nmg_find_matching_eu_in_s(), NMG_VERTEXUSE_MAGIC, s1, s2, and faceuse::s_p.

Here is the call graph for this function:


Variable Documentation

int heap_cur_sz
 

Definition at line 286 of file nmg_junk.c.


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