Snippets

Glotzer Group qhull C++ api test

Created by Joshua Anderson

File qhull-test.cc Added

  • Ignore whitespace
  • Hide word diff
+#include "libqhullcpp/RboxPoints.h"
+#include "libqhullcpp/QhullError.h"
+#include "libqhullcpp/QhullQh.h"
+#include "libqhullcpp/QhullFacet.h"
+#include "libqhullcpp/QhullFacetList.h"
+#include "libqhullcpp/QhullVertexSet.h"
+#include "libqhullcpp/QhullLinkedList.h"
+#include "libqhullcpp/QhullVertex.h"
+#include "libqhullcpp/Qhull.h"
+#include <iostream>
+
+int main(int arc, char **argv)
+    {
+    double coords[] = {-1.0, -1.0, -1.0,
+                       -1.0, -1.0,  1.0,
+                       -1.0,  1.0, -1.0,
+                       -1.0,  1.0,  1.0,
+                        1.0, -1.0, -1.0,
+                        1.0, -1.0,  1.0,
+                        1.0,  1.0, -1.0,
+                        1.0,  1.0,  1.0};
+
+    orgQhull::Qhull q;
+    q.runQhull("", 3, 8, coords, "");
+    orgQhull::QhullFacetList facets=q.facetList();
+    std::cout << "vertices:" << std::endl;
+    orgQhull::QhullVertexList verts = q.vertexList();
+    for (orgQhull::QhullVertex& v : verts)
+        {
+        std::cout << "id: " << v.id() << std::endl;
+        orgQhull::QhullPoint o = v.point();
+        std::cout << "point: " << o[0] << " " << o[1] << " " << o[2] << std::endl;
+        }
+    std::cout << std::endl;
+
+    std::cout << "faces:" << std::endl;
+    for (orgQhull::QhullFacet& f : facets)
+        {
+        orgQhull::QhullPoint o = f.getCenter();
+        orgQhull::QhullHyperplane n = f.hyperplane();
+        orgQhull::QhullVertexSet f_verts = f.vertices();
+
+        std::cout << "Center: " << o[0] << " " << o[1] << " " << o[2] << std::endl;
+        std::cout << "normal: " << n[0] << " " << n[1] << " " << n[2] << std::endl;
+        std::cout << "vertices: ";
+        for (orgQhull::QhullVertex v : f_verts)
+            {
+            std::cout << v.id() << " ";
+            }
+        std::cout << std::endl;
+        std::cout << std::endl;
+        }
+
+    }
HTTPS SSH

You can clone a snippet to your computer for local editing. Learn more.