35 int numbrushes = planeEquations.
size();
36 for (
int i=0;i<numbrushes;i++)
52 int numvertices = vertices.
size();
53 for (
int i=0;i<numvertices;i++)
69 int numbrushes = planeEquations.
size();
70 for (
int i=0;i<numbrushes;i++)
83 const int numvertices = vertices.
size();
85 for (
int i=0;i<numvertices;i++)
90 for (
int j=i+1;j<numvertices;j++)
94 for (
int k=j+1;k<numvertices;k++)
103 for (
int ww=0;ww<2;ww++)
105 planeEquation = normalSign * edge0.
cross(edge1);
109 if (
notExist(planeEquation,planeEquationsOut))
111 planeEquation[3] = -planeEquation.
dot(N1);
116 planeEquationsOut.
push_back(planeEquation);
131 const int numbrushes = planeEquations.
size();
133 for (
int i=0;i<numbrushes;i++)
138 for (
int j=i+1;j<numbrushes;j++)
142 for (
int k=j+1;k<numbrushes;k++)
165 quotient =
btScalar(-1.) / quotient;
170 potentialVertex += n3n1;
171 potentialVertex += n1n2;
172 potentialVertex *= quotient;
static bool areVerticesBehindPlane(const btVector3 &planeNormal, const btAlignedObjectArray< btVector3 > &vertices, btScalar margin)
void push_back(const T &_Val)
bool notExist(const btVector3 &planeEquation, const btAlignedObjectArray< btVector3 > &planeEquations)
float dist(const Point3 &pnt0, const Point3 &pnt1)
btScalar dot(const btVector3 &v) const
Return the dot product.
btVector3 & normalize()
Normalize this vector x^2 + y^2 + z^2 = 1.
int size() const
return the number of elements in the array
btVector3 cross(const btVector3 &v) const
Return the cross product between this and another vector.
static void getPlaneEquationsFromVertices(btAlignedObjectArray< btVector3 > &vertices, btAlignedObjectArray< btVector3 > &planeEquationsOut)
btVector3 can be used to represent 3D points and vectors.
btScalar length2() const
Return the length of the vector squared.
static bool isPointInsidePlanes(const btAlignedObjectArray< btVector3 > &planeEquations, const btVector3 &point, btScalar margin)
static void getVerticesFromPlaneEquations(const btAlignedObjectArray< btVector3 > &planeEquations, btAlignedObjectArray< btVector3 > &verticesOut)
float btScalar
The btScalar type abstracts floating point numbers, to easily switch between double and single floati...
btScalar btFabs(btScalar x)