22 #define NUM_UNITSPHERE_POINTS 42 
   36                 btIntermediateResult() : m_hasResult(
false)
 
   45                 virtual void setShapeIdentifiersA(
int partId0, 
int index0)
 
   50                 virtual void setShapeIdentifiersB(
int partId1, 
int index1)
 
   57                         m_normalOnBInWorld = normalOnBInWorld;
 
   58                         m_pointInWorld = pointInWorld;
 
   68         btVector3 seperatingAxisInA, seperatingAxisInB;
 
   72 #define USE_BATCHED_SUPPORT 1 
   74 #ifdef USE_BATCHED_SUPPORT 
   84         for (i = 0; i < numSampleDirections; i++)
 
   87                 seperatingAxisInABatch[i] = (-norm) * transA.
getBasis();
 
   88                 seperatingAxisInBBatch[i] = norm * transB.
getBasis();
 
   95                         for (
int i = 0; i < numPDA; i++)
 
  101                                 seperatingAxisInABatch[numSampleDirections] = (-norm) * transA.
getBasis();
 
  102                                 seperatingAxisInBBatch[numSampleDirections] = norm * transB.
getBasis();
 
  103                                 numSampleDirections++;
 
  112                         for (
int i = 0; i < numPDB; i++)
 
  118                                 seperatingAxisInABatch[numSampleDirections] = (-norm) * transA.
getBasis();
 
  119                                 seperatingAxisInBBatch[numSampleDirections] = norm * transB.
getBasis();
 
  120                                 numSampleDirections++;
 
  128         for (i = 0; i < numSampleDirections; i++)
 
  137                         seperatingAxisInA = seperatingAxisInABatch[i];
 
  138                         seperatingAxisInB = seperatingAxisInBBatch[i];
 
  140                         pInA = supportVerticesABatch[i];
 
  141                         qInB = supportVerticesBBatch[i];
 
  143                         pWorld = transA(pInA);
 
  144                         qWorld = transB(qInB);
 
  172                         for (
int i = 0; i < numPDA; i++)
 
  178                                 numSampleDirections++;
 
  187                         for (
int i = 0; i < numPDB; i++)
 
  193                                 numSampleDirections++;
 
  199         for (
int i = 0; i < numSampleDirections; i++)
 
  202                 seperatingAxisInA = (-norm) * transA.
getBasis();
 
  203                 seperatingAxisInB = norm * transB.
getBasis();
 
  206                 pWorld = transA(pInA);
 
  207                 qWorld = transB(qInB);
 
  219 #endif  //USE_BATCHED_SUPPORT 
  237                 debugDraw->
drawLine(minA, minB, color);
 
  241                 debugDraw->
drawLine(minA, minA + (minNorm * minProj), color);
 
  261         btIntermediateResult res;
 
  265         btScalar correctedMinNorm = minProj - res.m_depth;
 
  269         minNorm *= penetration_relaxation;
 
  273                 pa = res.m_pointInWorld - minNorm * correctedMinNorm;
 
  274                 pb = res.m_pointInWorld;
 
  285         return res.m_hasResult;
 
  335         return sPenetrationDirections;