Skip to content

About

Header only 3d quickhull in c99

Topics

Resources

Stars

295 stars

Watchers

14 watching

Forks

Latest commit

 

History

23 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

3d-quickhull

Header only 3d quickhull in ANSI C

Usage

To use this library, simply include quickhull.h once with the QUICKHULL_IMPLEMENTATION define in a .cpp file.

#define QUICKHULL_IMPLEMENTATION
#include "quickhull.h"

The usage of the library is quite simple, generate or gather a set of points, and call qh_quickhull3d. The result is a mesh with a set of indexed normals and vertices ready to upload in a GPU.

const int n = 100;
qh_vertex_t vertices[n];

for (int i = 0; i < n; ++i) {
    float a0 = (rand_0_1() * M_PI * 2);
    float a1 = (rand_0_1() * M_PI * 2);
    vertices[i].z = sin(a0) * radius;
    vertices[i].x = cos(a1) * cos(a0) * rand_0_1();
    vertices[i].y = sin(a1) * cos(a0) * rand_0_1();
}

qh_mesh_t mesh = qh_quickhull3d(vertices, n);

// ...

qh_free_mesh(mesh);

Example

If you're interested in low-polygon rendering, using quickhull as a base for mesh triangulation can give such results:

About

Header only 3d quickhull in c99

Topics

Resources

Stars

295 stars

Watchers

14 watching

Forks

Releases

Packages

Contributors

Languages