Selected Developed Software


  • deltri.f, double precision Fortran 77 program for reading/computing a 2-dimensional Delaunay triangulation for a set of points, inserting a set of points and/or a set of line segments into current (Constrained) Delaunay triangulation and obtaining a (Constrained) Delaunay triangulation that contains the inserted points and/or line segments, deleting a set of points that are vertices in the current (Constrained) Delaunay triangulation and obtaining a (Constrained) Delaunay triangulation that does not contain the deleted points, computing circumcenters of triangles (Voronoi vertices) in final (Constrained) Delaunay triangulation. Input coordinates of points can have as many as 14 significant figures with as many as 9 significant figures to either the left or the right of the decimal point. Exact arithmetic is used when necessary. [Source code].

  • deltr2.f, same as program deltri.f above but set up to compute only a 2-dimensional Delaunay triangulation for a set of points. Nothing else. [Source code].

  • dynvor.f, double precision Fortran 77 program for computing Delaunay triangulations & Voronoi diagrams of dynamic data, i. e. of a set of moving points in 2-d space. Currently program is set up to handle 100 or fewer input files making up dynamic data. Each input data set contains the same number of distinct data points in the plane. Each time an input data set is read the current Delaunay triangulation and Voronoi diagram are updated on a local basis, i. e. taking into account only those points that have moved. If the percentage of points that have moved is too high then the whole Delaunay triangulation and Voronoi diagram are computed. [Source code].

  • pltdyn.f, double precision Fortran 77 program for producing data files and script file for plotting in the form of a movie Voronoi diagrams of dynamic data, i. e. of a set of moving points in 2-d space. It is assumed that another existing program, program dynvor, has been executed thus producing the Delaunay triangulations and Voronoi diagrams of the dynamic data and the corresponding output files. From the output files of program dynvor the program here produces data files and script file vorplot.m that when executed creates from the data files a movie of the plots of the Voronoi diagrams of the dynamic data in the order in which program dynvor reads the input data files that define the dynamic data. [Source code].

  • aggres.f, double precision Fortran 77 program for computing an estimate of the surface of an aggregate as a power crust from a point cloud obtained from the surface of the aggregate. Besides a power crust of the object, the program also produces the area of the power crust and the volume of the solid it encloses. Here an aggregate is defined as an object in 3-dimensional space that has no holes and contains its center of mass in its interior. Output file with power crust information will be formatted for the purpose of plotting the power crust with it and a script for executing this file and obtaining the plot of the power crust is included in the main routine of the code. Actually the requirements in the definition of an aggregate can be ignored if a point is known that lies in the interior of the object at a reasonable distance from the surface. Exact arithmetic is used when necessary. [Source code].

  • regtet.f, double precision Fortran 77 program for computing with incremental topological flipping a Regular tetrahedralization for a set of points in 3-dimensional space. Input coordinates and weights of points can have as many as 14 significant figures with as many as 9 significant figures to either the left or the right of the decimal point. In the absence of weights the program computes a Delaunay tetrahedralization. A Regular tetrahedralization is the dual of a Power diagram. It is essentially a Delaunay tetrahedralization for a set of points with weights. In this program artificial points are handled lexicographically. Exact arithmetic is used when necessary. As a result this program is both fast and robust. [Source code].

  • pwrvtx.f, double precision Fortran 77 program for computing the Power/Voronoi vertices and unbounded edges for a set of points in 3-dimensional space from a Regular/Delaunay tetrahedralization for the set. It is assumed that a Regular/Delaunay tetrahedralization for the set has already been computed using program regtet above with logical variable artfcl set to .false.. The output tetrahedron list from regtet is then used as input for this program. As in the case of regtet, exact arithmetic is used when necessary. The lengths of input coordinates and weights follow the same rules as when using regtet. [Source code].

  • volare.f, double precision Fortran 77 program for computing volumes of Power/Voronoi cells in the Power/Voronoi diagram of a set of points in 3-dimensional space and areas of facets of these cells. It is assumed that a Regular/Delaunay tetrahedralization for the set has already been computed using program regtet above with logical variable artfcl set to .false.. It is also assumed that the Power/Voronoi vertices of the Power/Voronoi diagram of the set have already been computed using program pwrvtx above with the output tetrahedron list from regtet as input. The output Power/Voronoi vertex and tetrahedron lists from pwrvtx are then used as input for this program. [Source code].

  • pwrtet.f, double precision Fortran 77 program for doing 3D nearest point searches. It identifies Power cells in the Power diagram of a 3-dimensional set of points S that contain points in a 3-dimensional set R. In other words, for each point in R this program finds a point in S that is as Power close to the point in R as any other point in S. If no weights are present then it identifies Voronoi cells in the Voronoi diagram of S that contain points in R. In addition, this program determines where with respect to the convex hull of S the points in R are located. It is assumed that a Regular/Delaunay tetrahedralization for S has already been computed using program regtet above with logical variable artfcl set to .true.. The output tetrahedron list from regtet is then used as input for this program. As in the case of regtet, exact arithmetic is used when necessary. The lengths of input coordinates and weights follow the same rules as when using regtet. The program is based on an algorithm for constructing Regular tetrahedralizations with incremental topological flipping. However no actual flippings take place. Given a point in R, if weights are present a weight is assigned to the point so that the Power cell of the point in the Power diagram of S together with the point contains the point. The program then goes through the motions of inserting the point into the Regular/Delaunay tetrahedralization for S without actually doing it. This way a subset of points in S is identified that contains what would be the Voronoi/Power neighbors of the point in the Voronoi/Power diagram of S together with the point. The desired point in S is then a point in this subset closest to the the point in R in the Power sense. If weights are present care is taken in choosing the weight assigned to the point in R so that it is as small as possible. [Source code].

  • tritet.f, double precision Fortran 77 program for inserting a set of 2-dimensional triangles into a tetrahedralization. The resulting tetrahedralization is then constrained by the triangles. Topological flipping is used whenever possible in order to obtain the desired tetrahedralization. Steiner points are used as a last resort. Since the insertion of the 2-d triangles causes the resulting tetrahedralization to be partitioned into regions having pair-wise disjoint interiors, on output tetrahedra are marked according to the region they belong to. Regions are numbered either arbitrarily by program or as requested by user. If requested by user the volume of each region is computed. In this program exact arithmetic is used when necessary. [Source code].

  • pntloc.f, double precision Fortran 77 program for locating points in a tetrahedralization by moving in a straight line to each point from a point whose location is known. In this program exact arithmetic is used when necessary. [Source code].