Class DelaunayClarkson3D<T extends Point3D>

java.lang.Object
org.jeometry.geom3D.algorithm.delaunay.clarkson.DelaunayClarkson
org.jeometry.geom3D.algorithm.delaunay.clarkson.DelaunayClarkson3D<T>
Type Parameters:
T - The type of underlying 3D points

public class DelaunayClarkson3D<T extends Point3D>
extends DelaunayClarkson
This class is an implementation of the Ken Clarkson hull algorithm that enable to compute convex hull in n-dimension.

This algorithm compute a convex hull for a set of n points in a O(n x log(n)) average time with a worst case in O(n x n).
This algorithm is based on an integer representation of input point coordinates, so if your points are closer than a coordinate unit, it is required to apply a scale on them. This scale can be given in parameter to computation method (compute(double[][], float))
Since:
1.0.0
Author:
Julien Seinturier - (c) 2016 - JOrigin project - http:/www.jorigin.org
  • Constructor Details

    • DelaunayClarkson3D

      public DelaunayClarkson3D()
      Create a new instance of this algorithm.
  • Method Details

    • isGenerateInfinite

      public boolean isGenerateInfinite()
      Is the delaunay tetrahedralization has to generate infinite tetrahedra. Generation of tetrahedra relies on the integration of infinite points to the original point cloud. By convention, infinite points are the vertices of a scaled axis aligned bounding box computed from original point cloud. All tetrahedra that contain an infinite point as vertex are marked as infinite.
      Returns:
      true if the the delaunay tetrahedralization has to generate infinite tetrahedra and false otherwise.
      See Also:
      setGenerateInfinite(boolean), isFilterInfinite()
    • setGenerateInfinite

      public void setGenerateInfinite​(boolean generateInfinite)
      Set if the delaunay tetrahedralization has to generate infinite tetrahedra. Generation of tetrahedra relies on the integration of infinite points to the original point cloud. By convention, infinite points are the vertices of a scaled axis aligned bounding box computed from original point cloud. All tetrahedra that contain an infinite point as vertex are marked as infinite.
      Parameters:
      generateInfinite - true if the the delaunay tetrahedralization has to generate infinite tetrahedra and false otherwise.
      See Also:
      isGenerateInfinite(), isFilterInfinite()
    • isFilterInfinite

      public boolean isFilterInfinite()
      Is the result of the delaunay tetrahedralization has to ignore infinite tetrahedra.
      Returns:
      true if the result of the delaunay tetrahedralization has to ignore infinite tetrahedra and false otherwise.
      See Also:
      setFilterInfinite(boolean)
    • setFilterInfinite

      public void setFilterInfinite​(boolean filterInfinite)
      Set if the result of the delaunay tetrahedralization has to ignore infinite tetrahedra.
      Parameters:
      filterInfinite - true if the result of the delaunay tetrahedralization has to ignore infinite tetrahedra and false otherwise.
      See Also:
      isFilterInfinite()
    • compute

      public DelaunayTetrahedralization<T> compute​(Point3DContainer<T> points, float scale) throws DelaunayException
      Compute the delaunay triangulation for the given points and at the given scale.
      Parameters:
      points - the points.
      scale - the scale to apply before computation.
      Returns:
      the delaunay tetrahedralization
      Throws:
      DelaunayException - if an error occurs.