Tetrahedron Refinement

Link to skeleton refinement


Blurb:
Rules were worked out for subdiving/refining a tetrahedron into smaller
tetrahedrons, given a set of edges to be marked for bisection.
The scheme is similar to that discussed by S. Haan.

These rules were implemented as C++ data structures and methods.
The source files are Refinery.h, Refinery.cpp, Skeleton.h, Skeleton.cpp.
This code can refine an assemblage of tetrahedrons defined in a skeleton.

The C++ implementation was also ported to Java (source: TetRefinery.java),
which drives the applet above.
The applet can also be run as an application. Download TetRefinery.java,
compile (javac TetRefinery.java), and run (java TetRefinery).

The tetrahedron can also be viewed as solids using VPython.
For a simple example, run this program, demo.py,
with the following file (vpy.txt) present within
the same directory.


Usage:


The reference (or parent) tetrahedron lies on the positive octant of an
XYZ coordinate system. Vertices labeled 0, 1 and 2 lie on the X (red),Y
(green) and Z (blue) axes, respectively. The Z-axis initially points toward
the viewer. Vertex 3 is located at the origin.

Edges are denoted by pairs of vertices (e.g. 01). An edge can be marked
using the column of checkboxes under "mark bisect edges".
When two edges sharing a common vertex are marked for bisection, there are
two options for splitting the quadrilateral face (e.g. 1450 below).
To override the default, use the column marked "split face" to specify
your choice.

split face 12-0 split face 20-1

RCL
Last modified: Thu Sep 21 10:01:39 EDT 2006