C# Class BEPUutilities2.ConvexHullHelper

Processes vertex data into convex hulls.
Show file Open project: RossNordby/scratchpad

Public Methods

Method Description
GetConvexHull ( IList points, IList outputSurfacePoints ) : void

Identifies the points on the surface of hull.

GetConvexHull ( IList points, IList outputTriangleIndices ) : void

Identifies the indices of points in a set which are on the outer convex hull of the set.

GetConvexHull ( IList points, IList outputTriangleIndices, IList outputSurfacePoints ) : void

Identifies the points on the surface of hull.

GetConvexHull ( QuickList &points, IList outputSurfacePoints ) : void

Identifies the points on the surface of hull.

GetConvexHull ( QuickList &points, QuickList &outputTriangleIndices ) : void

Identifies the indices of points in a set which are on the outer convex hull of the set.

GetConvexHull ( QuickList &points, QuickList &outputTriangleIndices, IList outputSurfacePoints ) : void

Identifies the points on the surface of hull.

RemoveRedundantPoints ( IList points ) : void

Removes redundant points. Two points are redundant if they occupy the same hash grid cell of size 0.001.

RemoveRedundantPoints ( IList points, double cellSize ) : void

Removes redundant points. Two points are redundant if they occupy the same hash grid cell.

RemoveRedundantPoints ( QuickList &points ) : void

Removes redundant points. Two points are redundant if they occupy the same hash grid cell of size 0.001.

RemoveRedundantPoints ( QuickList &points, double cellSize ) : void

Removes redundant points. Two points are redundant if they occupy the same hash grid cell.

Private Methods

Method Description
ComputeInitialTetrahedron ( QuickList &points, QuickList &outsidePointCandidates, QuickList &triangleIndices, Vector3 &centroid ) : void
FindNormal ( QuickList &indices, QuickList &points, int triangleIndex, Vector3 &normal ) : void
GetExtremePoint ( Vector3 &direction, QuickList &points, QuickList &outsidePoints ) : int
GetExtremePoints ( Vector3 &direction, QuickList &points, float &maximumDot, float &minimumDot, int &maximumIndex, int &minimumIndex ) : void
IsTriangleVisibleFromPoint ( QuickList &indices, QuickList &points, int triangleIndex, Vector3 &point ) : bool
MaintainEdge ( int a, int b, QuickList &edges ) : void
RemoveInsidePoints ( QuickList &points, QuickList &triangleIndices, QuickList &outsidePoints ) : void
VerifyWindings ( QuickList &newIndices, QuickList &points, Vector3 &centroid ) : void

Method Details

GetConvexHull() public static method

Identifies the points on the surface of hull.
public static GetConvexHull ( IList points, IList outputSurfacePoints ) : void
points IList List of points in the set.
outputSurfacePoints IList Unique points on the surface of the convex hull.
return void

GetConvexHull() public static method

Identifies the indices of points in a set which are on the outer convex hull of the set.
public static GetConvexHull ( IList points, IList outputTriangleIndices ) : void
points IList List of points in the set.
outputTriangleIndices IList List of indices into the input point set composing the triangulated surface of the convex hull. /// Each group of 3 indices represents a triangle on the surface of the hull.
return void

GetConvexHull() public static method

Identifies the points on the surface of hull.
public static GetConvexHull ( IList points, IList outputTriangleIndices, IList outputSurfacePoints ) : void
points IList List of points in the set.
outputTriangleIndices IList List of indices into the input point set composing the triangulated surface of the convex hull. /// Each group of 3 indices represents a triangle on the surface of the hull.
outputSurfacePoints IList Unique points on the surface of the convex hull.
return void

GetConvexHull() public static method

Identifies the points on the surface of hull.
public static GetConvexHull ( QuickList &points, IList outputSurfacePoints ) : void
points QuickList List of points in the set.
outputSurfacePoints IList Unique points on the surface of the convex hull.
return void

GetConvexHull() public static method

Identifies the indices of points in a set which are on the outer convex hull of the set.
public static GetConvexHull ( QuickList &points, QuickList &outputTriangleIndices ) : void
points QuickList List of points in the set.
outputTriangleIndices QuickList List of indices into the input point set composing the triangulated surface of the convex hull. /// Each group of 3 indices represents a triangle on the surface of the hull.
return void

GetConvexHull() public static method

Identifies the points on the surface of hull.
public static GetConvexHull ( QuickList &points, QuickList &outputTriangleIndices, IList outputSurfacePoints ) : void
points QuickList List of points in the set.
outputTriangleIndices QuickList List of indices into the input point set composing the triangulated surface of the convex hull. /// Each group of 3 indices represents a triangle on the surface of the hull.
outputSurfacePoints IList Unique points on the surface of the convex hull.
return void

RemoveRedundantPoints() public static method

Removes redundant points. Two points are redundant if they occupy the same hash grid cell of size 0.001.
public static RemoveRedundantPoints ( IList points ) : void
points IList List of points to prune.
return void

RemoveRedundantPoints() public static method

Removes redundant points. Two points are redundant if they occupy the same hash grid cell.
public static RemoveRedundantPoints ( IList points, double cellSize ) : void
points IList List of points to prune.
cellSize double Size of cells to determine redundancy.
return void

RemoveRedundantPoints() public static method

Removes redundant points. Two points are redundant if they occupy the same hash grid cell of size 0.001.
public static RemoveRedundantPoints ( QuickList &points ) : void
points QuickList List of points to prune.
return void

RemoveRedundantPoints() public static method

Removes redundant points. Two points are redundant if they occupy the same hash grid cell.
public static RemoveRedundantPoints ( QuickList &points, double cellSize ) : void
points QuickList List of points to prune.
cellSize double Size of cells to determine redundancy.
return void