Fix "seperate" typos
This commit is contained in:
@@ -176,7 +176,7 @@ public:
|
|||||||
mHard[(int)c] = ST_DATA;
|
mHard[(int)c] = ST_DATA;
|
||||||
}
|
}
|
||||||
|
|
||||||
void DefaultSymbols(void); // set up default symbols for hard seperator and comment symbol of the '#' character.
|
void DefaultSymbols(void); // set up default symbols for hard separator and comment symbol of the '#' character.
|
||||||
|
|
||||||
bool EOS(char c)
|
bool EOS(char c)
|
||||||
{
|
{
|
||||||
@@ -197,7 +197,7 @@ private:
|
|||||||
inline bool IsHard(char c);
|
inline bool IsHard(char c);
|
||||||
inline char *SkipSpaces(char *foo);
|
inline char *SkipSpaces(char *foo);
|
||||||
inline bool IsWhiteSpace(char c);
|
inline bool IsWhiteSpace(char c);
|
||||||
inline bool IsNonSeparator(char c); // non seperator,neither hard nor soft
|
inline bool IsNonSeparator(char c); // non separator, neither hard nor soft
|
||||||
|
|
||||||
bool mMyAlloc; // whether or not *I* allocated the buffer and am responsible for deleting it.
|
bool mMyAlloc; // whether or not *I* allocated the buffer and am responsible for deleting it.
|
||||||
char *mData; // ascii data to parse.
|
char *mData; // ascii data to parse.
|
||||||
|
|||||||
@@ -496,7 +496,7 @@ void b3GpuParallelLinearBvh::constructBinaryRadixTree()
|
|||||||
clFinish(m_queue);
|
clFinish(m_queue);
|
||||||
}
|
}
|
||||||
|
|
||||||
//Find the number of nodes seperating each internal node and the root node
|
//Find the number of nodes separating each internal node and the root node
|
||||||
//so that the AABBs can be set using the next kernel.
|
//so that the AABBs can be set using the next kernel.
|
||||||
//Also determine the maximum number of nodes separating an internal node and the root node.
|
//Also determine the maximum number of nodes separating an internal node and the root node.
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -68,7 +68,7 @@ public:
|
|||||||
|
|
||||||
virtual void unLockReadOnlyVertexBase(int subpart) const = 0;
|
virtual void unLockReadOnlyVertexBase(int subpart) const = 0;
|
||||||
|
|
||||||
/// getNumSubParts returns the number of seperate subparts
|
/// getNumSubParts returns the number of separate subparts
|
||||||
/// each subpart has a continuous array of vertices and indices
|
/// each subpart has a continuous array of vertices and indices
|
||||||
virtual int getNumSubParts() const = 0;
|
virtual int getNumSubParts() const = 0;
|
||||||
|
|
||||||
|
|||||||
@@ -100,7 +100,7 @@ public:
|
|||||||
|
|
||||||
virtual void unLockReadOnlyVertexBase(int subpart) const { (void)subpart; }
|
virtual void unLockReadOnlyVertexBase(int subpart) const { (void)subpart; }
|
||||||
|
|
||||||
/// getNumSubParts returns the number of seperate subparts
|
/// getNumSubParts returns the number of separate subparts
|
||||||
/// each subpart has a continuous array of vertices and indices
|
/// each subpart has a continuous array of vertices and indices
|
||||||
virtual int getNumSubParts() const
|
virtual int getNumSubParts() const
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -183,9 +183,9 @@ bool b3VoronoiSimplexSolver::updateClosestVectorAndPoints()
|
|||||||
const b3Vector3& c = m_simplexVectorW[2];
|
const b3Vector3& c = m_simplexVectorW[2];
|
||||||
const b3Vector3& d = m_simplexVectorW[3];
|
const b3Vector3& d = m_simplexVectorW[3];
|
||||||
|
|
||||||
bool hasSeperation = closestPtPointTetrahedron(p, a, b, c, d, m_cachedBC);
|
bool hasSeparation = closestPtPointTetrahedron(p, a, b, c, d, m_cachedBC);
|
||||||
|
|
||||||
if (hasSeperation)
|
if (hasSeparation)
|
||||||
{
|
{
|
||||||
m_cachedP1 = m_simplexPointsP[0] * m_cachedBC.m_barycentricCoords[0] +
|
m_cachedP1 = m_simplexPointsP[0] * m_cachedBC.m_barycentricCoords[0] +
|
||||||
m_simplexPointsP[1] * m_cachedBC.m_barycentricCoords[1] +
|
m_simplexPointsP[1] * m_cachedBC.m_barycentricCoords[1] +
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ public:
|
|||||||
|
|
||||||
virtual void unLockReadOnlyVertexBase(int subpart) const = 0;
|
virtual void unLockReadOnlyVertexBase(int subpart) const = 0;
|
||||||
|
|
||||||
/// getNumSubParts returns the number of seperate subparts
|
/// getNumSubParts returns the number of separate subparts
|
||||||
/// each subpart has a continuous array of vertices and indices
|
/// each subpart has a continuous array of vertices and indices
|
||||||
virtual int getNumSubParts() const = 0;
|
virtual int getNumSubParts() const = 0;
|
||||||
|
|
||||||
|
|||||||
@@ -100,7 +100,7 @@ public:
|
|||||||
|
|
||||||
virtual void unLockReadOnlyVertexBase(int subpart) const { (void)subpart; }
|
virtual void unLockReadOnlyVertexBase(int subpart) const { (void)subpart; }
|
||||||
|
|
||||||
/// getNumSubParts returns the number of seperate subparts
|
/// getNumSubParts returns the number of separate subparts
|
||||||
/// each subpart has a continuous array of vertices and indices
|
/// each subpart has a continuous array of vertices and indices
|
||||||
virtual int getNumSubParts() const
|
virtual int getNumSubParts() const
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -95,11 +95,11 @@ int btComputeGjkEpaPenetration(const btConvexTemplate& a, const btConvexTemplate
|
|||||||
for (;;)
|
for (;;)
|
||||||
//while (true)
|
//while (true)
|
||||||
{
|
{
|
||||||
btVector3 seperatingAxisInA = (-m_cachedSeparatingAxis) * localTransA.getBasis();
|
btVector3 separatingAxisInA = (-m_cachedSeparatingAxis) * localTransA.getBasis();
|
||||||
btVector3 seperatingAxisInB = m_cachedSeparatingAxis * localTransB.getBasis();
|
btVector3 separatingAxisInB = m_cachedSeparatingAxis * localTransB.getBasis();
|
||||||
|
|
||||||
btVector3 pInA = a.getLocalSupportWithoutMargin(seperatingAxisInA);
|
btVector3 pInA = a.getLocalSupportWithoutMargin(separatingAxisInA);
|
||||||
btVector3 qInB = b.getLocalSupportWithoutMargin(seperatingAxisInB);
|
btVector3 qInB = b.getLocalSupportWithoutMargin(separatingAxisInB);
|
||||||
|
|
||||||
btVector3 pWorld = localTransA(pInA);
|
btVector3 pWorld = localTransA(pInA);
|
||||||
btVector3 qWorld = localTransB(qInB);
|
btVector3 qWorld = localTransB(qInB);
|
||||||
|
|||||||
@@ -79,11 +79,11 @@ void btGjkPairDetector::getClosestPoints(const ClosestPointInput &input, Result
|
|||||||
|
|
||||||
static void btComputeSupport(const btConvexShape *convexA, const btTransform &localTransA, const btConvexShape *convexB, const btTransform &localTransB, const btVector3 &dir, bool check2d, btVector3 &supAworld, btVector3 &supBworld, btVector3 &aMinb)
|
static void btComputeSupport(const btConvexShape *convexA, const btTransform &localTransA, const btConvexShape *convexB, const btTransform &localTransB, const btVector3 &dir, bool check2d, btVector3 &supAworld, btVector3 &supBworld, btVector3 &aMinb)
|
||||||
{
|
{
|
||||||
btVector3 seperatingAxisInA = (dir)*localTransA.getBasis();
|
btVector3 separatingAxisInA = (dir)*localTransA.getBasis();
|
||||||
btVector3 seperatingAxisInB = (-dir) * localTransB.getBasis();
|
btVector3 separatingAxisInB = (-dir) * localTransB.getBasis();
|
||||||
|
|
||||||
btVector3 pInANoMargin = convexA->localGetSupportVertexWithoutMarginNonVirtual(seperatingAxisInA);
|
btVector3 pInANoMargin = convexA->localGetSupportVertexWithoutMarginNonVirtual(separatingAxisInA);
|
||||||
btVector3 qInBNoMargin = convexB->localGetSupportVertexWithoutMarginNonVirtual(seperatingAxisInB);
|
btVector3 qInBNoMargin = convexB->localGetSupportVertexWithoutMarginNonVirtual(separatingAxisInB);
|
||||||
|
|
||||||
btVector3 pInA = pInANoMargin;
|
btVector3 pInA = pInANoMargin;
|
||||||
btVector3 qInB = qInBNoMargin;
|
btVector3 qInB = qInBNoMargin;
|
||||||
@@ -839,11 +839,11 @@ void btGjkPairDetector::getClosestPointsNonVirtual(const ClosestPointInput &inpu
|
|||||||
for (;;)
|
for (;;)
|
||||||
//while (true)
|
//while (true)
|
||||||
{
|
{
|
||||||
btVector3 seperatingAxisInA = (-m_cachedSeparatingAxis) * localTransA.getBasis();
|
btVector3 separatingAxisInA = (-m_cachedSeparatingAxis) * localTransA.getBasis();
|
||||||
btVector3 seperatingAxisInB = m_cachedSeparatingAxis * localTransB.getBasis();
|
btVector3 separatingAxisInB = m_cachedSeparatingAxis * localTransB.getBasis();
|
||||||
|
|
||||||
btVector3 pInA = m_minkowskiA->localGetSupportVertexWithoutMarginNonVirtual(seperatingAxisInA);
|
btVector3 pInA = m_minkowskiA->localGetSupportVertexWithoutMarginNonVirtual(separatingAxisInA);
|
||||||
btVector3 qInB = m_minkowskiB->localGetSupportVertexWithoutMarginNonVirtual(seperatingAxisInB);
|
btVector3 qInB = m_minkowskiB->localGetSupportVertexWithoutMarginNonVirtual(separatingAxisInB);
|
||||||
|
|
||||||
btVector3 pWorld = localTransA(pInA);
|
btVector3 pWorld = localTransA(pInA);
|
||||||
btVector3 qWorld = localTransB(qInB);
|
btVector3 qWorld = localTransB(qInB);
|
||||||
@@ -1116,11 +1116,11 @@ void btGjkPairDetector::getClosestPointsNonVirtual(const ClosestPointInput &inpu
|
|||||||
|
|
||||||
btScalar d2 = 0.f;
|
btScalar d2 = 0.f;
|
||||||
{
|
{
|
||||||
btVector3 seperatingAxisInA = (-orgNormalInB) * localTransA.getBasis();
|
btVector3 separatingAxisInA = (-orgNormalInB) * localTransA.getBasis();
|
||||||
btVector3 seperatingAxisInB = orgNormalInB * localTransB.getBasis();
|
btVector3 separatingAxisInB = orgNormalInB * localTransB.getBasis();
|
||||||
|
|
||||||
btVector3 pInA = m_minkowskiA->localGetSupportVertexWithoutMarginNonVirtual(seperatingAxisInA);
|
btVector3 pInA = m_minkowskiA->localGetSupportVertexWithoutMarginNonVirtual(separatingAxisInA);
|
||||||
btVector3 qInB = m_minkowskiB->localGetSupportVertexWithoutMarginNonVirtual(seperatingAxisInB);
|
btVector3 qInB = m_minkowskiB->localGetSupportVertexWithoutMarginNonVirtual(separatingAxisInB);
|
||||||
|
|
||||||
btVector3 pWorld = localTransA(pInA);
|
btVector3 pWorld = localTransA(pInA);
|
||||||
btVector3 qWorld = localTransB(qInB);
|
btVector3 qWorld = localTransB(qInB);
|
||||||
@@ -1130,11 +1130,11 @@ void btGjkPairDetector::getClosestPointsNonVirtual(const ClosestPointInput &inpu
|
|||||||
|
|
||||||
btScalar d1 = 0;
|
btScalar d1 = 0;
|
||||||
{
|
{
|
||||||
btVector3 seperatingAxisInA = (normalInB)*localTransA.getBasis();
|
btVector3 separatingAxisInA = (normalInB)*localTransA.getBasis();
|
||||||
btVector3 seperatingAxisInB = -normalInB * localTransB.getBasis();
|
btVector3 separatingAxisInB = -normalInB * localTransB.getBasis();
|
||||||
|
|
||||||
btVector3 pInA = m_minkowskiA->localGetSupportVertexWithoutMarginNonVirtual(seperatingAxisInA);
|
btVector3 pInA = m_minkowskiA->localGetSupportVertexWithoutMarginNonVirtual(separatingAxisInA);
|
||||||
btVector3 qInB = m_minkowskiB->localGetSupportVertexWithoutMarginNonVirtual(seperatingAxisInB);
|
btVector3 qInB = m_minkowskiB->localGetSupportVertexWithoutMarginNonVirtual(separatingAxisInB);
|
||||||
|
|
||||||
btVector3 pWorld = localTransA(pInA);
|
btVector3 pWorld = localTransA(pInA);
|
||||||
btVector3 qWorld = localTransB(qInB);
|
btVector3 qWorld = localTransB(qInB);
|
||||||
@@ -1143,11 +1143,11 @@ void btGjkPairDetector::getClosestPointsNonVirtual(const ClosestPointInput &inpu
|
|||||||
}
|
}
|
||||||
btScalar d0 = 0.f;
|
btScalar d0 = 0.f;
|
||||||
{
|
{
|
||||||
btVector3 seperatingAxisInA = (-normalInB) * input.m_transformA.getBasis();
|
btVector3 separatingAxisInA = (-normalInB) * input.m_transformA.getBasis();
|
||||||
btVector3 seperatingAxisInB = normalInB * input.m_transformB.getBasis();
|
btVector3 separatingAxisInB = normalInB * input.m_transformB.getBasis();
|
||||||
|
|
||||||
btVector3 pInA = m_minkowskiA->localGetSupportVertexWithoutMarginNonVirtual(seperatingAxisInA);
|
btVector3 pInA = m_minkowskiA->localGetSupportVertexWithoutMarginNonVirtual(separatingAxisInA);
|
||||||
btVector3 qInB = m_minkowskiB->localGetSupportVertexWithoutMarginNonVirtual(seperatingAxisInB);
|
btVector3 qInB = m_minkowskiB->localGetSupportVertexWithoutMarginNonVirtual(separatingAxisInB);
|
||||||
|
|
||||||
btVector3 pWorld = localTransA(pInA);
|
btVector3 pWorld = localTransA(pInA);
|
||||||
btVector3 qWorld = localTransB(qInB);
|
btVector3 qWorld = localTransB(qInB);
|
||||||
|
|||||||
@@ -64,9 +64,9 @@ public:
|
|||||||
{
|
{
|
||||||
m_minkowskiB = minkB;
|
m_minkowskiB = minkB;
|
||||||
}
|
}
|
||||||
void setCachedSeperatingAxis(const btVector3& seperatingAxis)
|
void setCachedSeparatingAxis(const btVector3& separatingAxis)
|
||||||
{
|
{
|
||||||
m_cachedSeparatingAxis = seperatingAxis;
|
m_cachedSeparatingAxis = separatingAxis;
|
||||||
}
|
}
|
||||||
|
|
||||||
const btVector3& getCachedSeparatingAxis() const
|
const btVector3& getCachedSeparatingAxis() const
|
||||||
|
|||||||
@@ -65,7 +65,7 @@ bool btMinkowskiPenetrationDepthSolver::calcPenDepth(btSimplexSolverInterface& s
|
|||||||
btScalar minProj = btScalar(BT_LARGE_FLOAT);
|
btScalar minProj = btScalar(BT_LARGE_FLOAT);
|
||||||
btVector3 minNorm(btScalar(0.), btScalar(0.), btScalar(0.));
|
btVector3 minNorm(btScalar(0.), btScalar(0.), btScalar(0.));
|
||||||
btVector3 minA, minB;
|
btVector3 minA, minB;
|
||||||
btVector3 seperatingAxisInA, seperatingAxisInB;
|
btVector3 separatingAxisInA, separatingAxisInB;
|
||||||
btVector3 pInA, qInB, pWorld, qWorld, w;
|
btVector3 pInA, qInB, pWorld, qWorld, w;
|
||||||
|
|
||||||
#ifndef __SPU__
|
#ifndef __SPU__
|
||||||
@@ -75,8 +75,8 @@ bool btMinkowskiPenetrationDepthSolver::calcPenDepth(btSimplexSolverInterface& s
|
|||||||
|
|
||||||
btVector3 supportVerticesABatch[NUM_UNITSPHERE_POINTS + MAX_PREFERRED_PENETRATION_DIRECTIONS * 2];
|
btVector3 supportVerticesABatch[NUM_UNITSPHERE_POINTS + MAX_PREFERRED_PENETRATION_DIRECTIONS * 2];
|
||||||
btVector3 supportVerticesBBatch[NUM_UNITSPHERE_POINTS + MAX_PREFERRED_PENETRATION_DIRECTIONS * 2];
|
btVector3 supportVerticesBBatch[NUM_UNITSPHERE_POINTS + MAX_PREFERRED_PENETRATION_DIRECTIONS * 2];
|
||||||
btVector3 seperatingAxisInABatch[NUM_UNITSPHERE_POINTS + MAX_PREFERRED_PENETRATION_DIRECTIONS * 2];
|
btVector3 separatingAxisInABatch[NUM_UNITSPHERE_POINTS + MAX_PREFERRED_PENETRATION_DIRECTIONS * 2];
|
||||||
btVector3 seperatingAxisInBBatch[NUM_UNITSPHERE_POINTS + MAX_PREFERRED_PENETRATION_DIRECTIONS * 2];
|
btVector3 separatingAxisInBBatch[NUM_UNITSPHERE_POINTS + MAX_PREFERRED_PENETRATION_DIRECTIONS * 2];
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
int numSampleDirections = NUM_UNITSPHERE_POINTS;
|
int numSampleDirections = NUM_UNITSPHERE_POINTS;
|
||||||
@@ -84,8 +84,8 @@ bool btMinkowskiPenetrationDepthSolver::calcPenDepth(btSimplexSolverInterface& s
|
|||||||
for (i = 0; i < numSampleDirections; i++)
|
for (i = 0; i < numSampleDirections; i++)
|
||||||
{
|
{
|
||||||
btVector3 norm = getPenetrationDirections()[i];
|
btVector3 norm = getPenetrationDirections()[i];
|
||||||
seperatingAxisInABatch[i] = (-norm) * transA.getBasis();
|
separatingAxisInABatch[i] = (-norm) * transA.getBasis();
|
||||||
seperatingAxisInBBatch[i] = norm * transB.getBasis();
|
separatingAxisInBBatch[i] = norm * transB.getBasis();
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
@@ -98,8 +98,8 @@ bool btMinkowskiPenetrationDepthSolver::calcPenDepth(btSimplexSolverInterface& s
|
|||||||
convexA->getPreferredPenetrationDirection(i, norm);
|
convexA->getPreferredPenetrationDirection(i, norm);
|
||||||
norm = transA.getBasis() * norm;
|
norm = transA.getBasis() * norm;
|
||||||
getPenetrationDirections()[numSampleDirections] = norm;
|
getPenetrationDirections()[numSampleDirections] = norm;
|
||||||
seperatingAxisInABatch[numSampleDirections] = (-norm) * transA.getBasis();
|
separatingAxisInABatch[numSampleDirections] = (-norm) * transA.getBasis();
|
||||||
seperatingAxisInBBatch[numSampleDirections] = norm * transB.getBasis();
|
separatingAxisInBBatch[numSampleDirections] = norm * transB.getBasis();
|
||||||
numSampleDirections++;
|
numSampleDirections++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -115,15 +115,15 @@ bool btMinkowskiPenetrationDepthSolver::calcPenDepth(btSimplexSolverInterface& s
|
|||||||
convexB->getPreferredPenetrationDirection(i, norm);
|
convexB->getPreferredPenetrationDirection(i, norm);
|
||||||
norm = transB.getBasis() * norm;
|
norm = transB.getBasis() * norm;
|
||||||
getPenetrationDirections()[numSampleDirections] = norm;
|
getPenetrationDirections()[numSampleDirections] = norm;
|
||||||
seperatingAxisInABatch[numSampleDirections] = (-norm) * transA.getBasis();
|
separatingAxisInABatch[numSampleDirections] = (-norm) * transA.getBasis();
|
||||||
seperatingAxisInBBatch[numSampleDirections] = norm * transB.getBasis();
|
separatingAxisInBBatch[numSampleDirections] = norm * transB.getBasis();
|
||||||
numSampleDirections++;
|
numSampleDirections++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
convexA->batchedUnitVectorGetSupportingVertexWithoutMargin(seperatingAxisInABatch, supportVerticesABatch, numSampleDirections);
|
convexA->batchedUnitVectorGetSupportingVertexWithoutMargin(separatingAxisInABatch, supportVerticesABatch, numSampleDirections);
|
||||||
convexB->batchedUnitVectorGetSupportingVertexWithoutMargin(seperatingAxisInBBatch, supportVerticesBBatch, numSampleDirections);
|
convexB->batchedUnitVectorGetSupportingVertexWithoutMargin(separatingAxisInBBatch, supportVerticesBBatch, numSampleDirections);
|
||||||
|
|
||||||
for (i = 0; i < numSampleDirections; i++)
|
for (i = 0; i < numSampleDirections; i++)
|
||||||
{
|
{
|
||||||
@@ -134,8 +134,8 @@ bool btMinkowskiPenetrationDepthSolver::calcPenDepth(btSimplexSolverInterface& s
|
|||||||
}
|
}
|
||||||
if (norm.length2() > 0.01)
|
if (norm.length2() > 0.01)
|
||||||
{
|
{
|
||||||
seperatingAxisInA = seperatingAxisInABatch[i];
|
separatingAxisInA = separatingAxisInABatch[i];
|
||||||
seperatingAxisInB = seperatingAxisInBBatch[i];
|
separatingAxisInB = separatingAxisInBBatch[i];
|
||||||
|
|
||||||
pInA = supportVerticesABatch[i];
|
pInA = supportVerticesABatch[i];
|
||||||
qInB = supportVerticesBBatch[i];
|
qInB = supportVerticesBBatch[i];
|
||||||
@@ -199,10 +199,10 @@ bool btMinkowskiPenetrationDepthSolver::calcPenDepth(btSimplexSolverInterface& s
|
|||||||
for (int i = 0; i < numSampleDirections; i++)
|
for (int i = 0; i < numSampleDirections; i++)
|
||||||
{
|
{
|
||||||
const btVector3& norm = getPenetrationDirections()[i];
|
const btVector3& norm = getPenetrationDirections()[i];
|
||||||
seperatingAxisInA = (-norm) * transA.getBasis();
|
separatingAxisInA = (-norm) * transA.getBasis();
|
||||||
seperatingAxisInB = norm * transB.getBasis();
|
separatingAxisInB = norm * transB.getBasis();
|
||||||
pInA = convexA->localGetSupportVertexWithoutMarginNonVirtual(seperatingAxisInA);
|
pInA = convexA->localGetSupportVertexWithoutMarginNonVirtual(separatingAxisInA);
|
||||||
qInB = convexB->localGetSupportVertexWithoutMarginNonVirtual(seperatingAxisInB);
|
qInB = convexB->localGetSupportVertexWithoutMarginNonVirtual(separatingAxisInB);
|
||||||
pWorld = transA(pInA);
|
pWorld = transA(pInA);
|
||||||
qWorld = transB(qInB);
|
qWorld = transB(qInB);
|
||||||
w = qWorld - pWorld;
|
w = qWorld - pWorld;
|
||||||
@@ -259,7 +259,7 @@ bool btMinkowskiPenetrationDepthSolver::calcPenDepth(btSimplexSolverInterface& s
|
|||||||
input.m_maximumDistanceSquared = btScalar(BT_LARGE_FLOAT); //minProj;
|
input.m_maximumDistanceSquared = btScalar(BT_LARGE_FLOAT); //minProj;
|
||||||
|
|
||||||
btIntermediateResult res;
|
btIntermediateResult res;
|
||||||
gjkdet.setCachedSeperatingAxis(-minNorm);
|
gjkdet.setCachedSeparatingAxis(-minNorm);
|
||||||
gjkdet.getClosestPoints(input, res, debugDraw);
|
gjkdet.getClosestPoints(input, res, debugDraw);
|
||||||
|
|
||||||
btScalar correctedMinNorm = minProj - res.m_depth;
|
btScalar correctedMinNorm = minProj - res.m_depth;
|
||||||
|
|||||||
@@ -309,11 +309,11 @@ inline void btMprSupport(const btConvexTemplate &a, const btConvexTemplate &b,
|
|||||||
const btMprCollisionDescription &colDesc,
|
const btMprCollisionDescription &colDesc,
|
||||||
const btVector3 &dir, btMprSupport_t *supp)
|
const btVector3 &dir, btMprSupport_t *supp)
|
||||||
{
|
{
|
||||||
btVector3 seperatingAxisInA = dir * a.getWorldTransform().getBasis();
|
btVector3 separatingAxisInA = dir * a.getWorldTransform().getBasis();
|
||||||
btVector3 seperatingAxisInB = -dir * b.getWorldTransform().getBasis();
|
btVector3 separatingAxisInB = -dir * b.getWorldTransform().getBasis();
|
||||||
|
|
||||||
btVector3 pInA = a.getLocalSupportWithMargin(seperatingAxisInA);
|
btVector3 pInA = a.getLocalSupportWithMargin(separatingAxisInA);
|
||||||
btVector3 qInB = b.getLocalSupportWithMargin(seperatingAxisInB);
|
btVector3 qInB = b.getLocalSupportWithMargin(separatingAxisInB);
|
||||||
|
|
||||||
supp->v1 = a.getWorldTransform()(pInA);
|
supp->v1 = a.getWorldTransform()(pInA);
|
||||||
supp->v2 = b.getWorldTransform()(qInB);
|
supp->v2 = b.getWorldTransform()(qInB);
|
||||||
|
|||||||
Reference in New Issue
Block a user