CREATE - create model, boundary edge triangles, edge face, edge vertex, add
a vertex
makeModel Make and return a pointer to a new model
makeBoundaryEdgeTri Create a boundary edge and triangle
makeEdgeFace Create an edge by connecting two vertices
makeEdgeVertex Create an edge connecting an existing vertex (v1) to a
new vertex
addVertexToModel Add a vertex to model, and return pointer to new vertex
insideTriInModel return pointer to triangle in model containing
specified (x,y) coordinates
Function Prototypes:
Model *makeModel (float xmin, float ymin, float xmax, float ymax);
void makeBoundaryEdgeTri (Vertex *v, Edge **enew, Tri **tnew);
void makeEdgeFace (Vertex *v1, Vertex *v2, Edge **enew, Face **fnew);
Vertex* addVertexToModel (Model *m, float x, float y);
Tri* insideTriInModel (Model *m, Tri *start, float x, float y);
makeModel:
Input:
xmin minimum x-coordinate
ymin minimum y-coordinate
xmax maximum x-coordinate
ymax maximum y-coordinate
Returns: pointer to a new Model
makeBoundaryEdgeTri:
Input:
v specified boundary Vertex
Output:
enew new boundary Edge
tnew new boundary triangle
Notes:
The specified vertex and the adjacent vertices on the boundary
are assumed to be colinear. Therefore, the resulting
boundary triangle has zero area, and is intended to enable
deletion of the specified vertex from the boundary.
makeEdgeFace:
Input:
v1 First Vertex
v2 second Vertex
Output:
enew new Edge
fnew new Face
Notes:
The vertices must be adjacent to a single common face.
This face is closed off by the new edge, and a new edge and
a new face are made and returned.
addVertexToModel:
Input:
m model
x x-coordinate of new vertex
y y-coordinate of new vertex
Notes:
If the new vertex is close to an existing vertex, this function returns NULL.
insideTriInModel:
Input:
m Model
start triangle to look at first (NULL to begin looking anywhere)
x x-coordinate
y y-coordinate
Notes:
Points on an edge of a triangle are assumed to be inside that triangle.
An edge may be used by two triangles, so two triangles may "contain"
a point that lies on an edge. The first triangle found to contain
the specified point is returned.
Author: Dave Hale, Colorado School of Mines, Fall 1990.