I need a C++ program that takes a set of points (x, y, z coordinates) as input and create a triangle mesh with the source points as the vertices. This is typically called a "3D Delaunay Triangulation". You are free to choose any 3D Delaunay Triangulation algorithm as long as it meets the following requirements:
1. All the source points will be the vertices of the triangle mesh. No source points must be ignored. No new vertices must be added.
2. All faces must be triangular.
3. The face normals of the mesh should point outwards. A face normal is calculated using the Right Hand Rule.
4. The source points will be assumed to describe a closed (watertight) object. The mesh also should be closed. There should be no holes, gaps or boundary edges in the mesh.
5. The mesh must be delaunay or very close to delaunay.
6. The source points can describe a convex surface or a concave surface. The resulting mesh must respect this.
The source code must be documented in detail, explaining the algorithm. A document explaining the algorithm is also required.
I do not need you to develop a full program to read in a point file and display a 3d triangular mesh in a graphics window. For that we can work with Rhinoceros ([url removed, login to view]). I propose that you develop the program as a plug-in for Rhinoceros. I will give you a skeleton Visual C++ 2005 workspace containing all the code you need to select points and draw mesh in Rhino. This workspace will also contain a skeleton C++ class which interfaces with the plug-in source code. All you have to do is give this class its "points to mesh" functionality.
If you prefer to work with another CAD program (such as AutoCAD) or develop a standalone program to convert points to mesh, send me the details and I will see if it is feasible.
You will need to let me know which algorithm you intend to use and send me literature describing it in brief.
1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done.
2) Deliverables must be in ready-to-run condition, as follows (depending on the nature of the deliverables):
a) For web sites or other server-side deliverables intended to only ever exist in one place in the Buyer's environment--Deliverables must be installed by the Seller in ready-to-run condition in the Buyer's environment.
b) For all others including desktop software or software the buyer intends to distribute: A software installation package that will install the software in ready-to-run condition on the platform(s) specified in this bid request.
3) All deliverables will be considered "work made for hire" under U.S. Copyright law. Buyer will receive exclusive and complete copyrights to all work purchased. (No GPL, GNU, 3rd party components, etc. unless all copyright ramifications are explained AND AGREED TO by the buyer on the site per the coder's Seller Legal Agreement).