16#ifndef GRAHAM_SCAN_2D_CONVEX_HULL_H
17#define GRAHAM_SCAN_2D_CONVEX_HULL_H
104 for (i = 0; i < 2; i++)
110 bool isConvex =
false;
111 while (!isConvex &&
hull.size() > 1)
122 if (
hull.size() == 1)
void GrahamScanConvexHull2D(btAlignedObjectArray< GrahamVector3 > &originalPoints, btAlignedObjectArray< GrahamVector3 > &hull, const btVector3 &normalAxis)
const T & btMax(const T &a, const T &b)
float btScalar
The btScalar type abstracts floating point numbers, to easily switch between double and single floati...
btScalar btAtan2Fast(btScalar y, btScalar x)
void btPlaneSpace1(const T &n, T &p, T &q)
btVector3 btCross(const btVector3 &v1, const btVector3 &v2)
Return the cross product of two vectors.
The btAlignedObjectArray template class uses a subset of the stl::vector interface for its methods It...
btVector3 can be used to represent 3D points and vectors.
btScalar dot(const btVector3 &v) const
Return the dot product.
GrahamVector3(const btVector3 &org, int orgIndex)
bool operator()(const GrahamVector3 &a, const GrahamVector3 &b) const
btAngleCompareFunc(const btVector3 &anchor)