@@ -142,8 +142,9 @@ int getNumContacts(b3Contact4* contact) | |||||
} | } | ||||
b3PgsJacobiSolver::b3PgsJacobiSolver(bool usePgs) | b3PgsJacobiSolver::b3PgsJacobiSolver(bool usePgs) | ||||
:m_btSeed2(0),m_usePgs(usePgs), | |||||
m_numSplitImpulseRecoveries(0) | |||||
: m_usePgs(usePgs), | |||||
m_numSplitImpulseRecoveries(0), | |||||
m_btSeed2(0) | |||||
{ | { | ||||
} | } | ||||
@@ -1811,4 +1812,4 @@ b3Scalar b3PgsJacobiSolver::solveGroupCacheFriendlyFinish(b3RigidBodyData* bodie | |||||
void b3PgsJacobiSolver::reset() | void b3PgsJacobiSolver::reset() | ||||
{ | { | ||||
m_btSeed2 = 0; | m_btSeed2 = 0; | ||||
} | |||||
} |
@@ -254,9 +254,9 @@ struct b3SolveTask// : public ThreadPool::Task | |||||
int maxNumBatches, | int maxNumBatches, | ||||
b3AlignedObjectArray<int>* wgUsedBodies, int curWgidx | b3AlignedObjectArray<int>* wgUsedBodies, int curWgidx | ||||
) | ) | ||||
: m_bodies( bodies ), m_shapes( shapes ), m_constraints( constraints ), m_start( start ), m_nConstraints( nConstraints ), | |||||
m_solveFriction( true ),m_maxNumBatches(maxNumBatches), | |||||
m_wgUsedBodies(wgUsedBodies),m_curWgidx(curWgidx) | |||||
: m_bodies( bodies ), m_shapes( shapes ), m_constraints( constraints ), | |||||
m_wgUsedBodies(wgUsedBodies), m_curWgidx(curWgidx), m_start( start ), | |||||
m_nConstraints( nConstraints ), m_solveFriction( true ), m_maxNumBatches(maxNumBatches) | |||||
{} | {} | ||||
unsigned short int getType(){ return 0; } | unsigned short int getType(){ return 0; } | ||||
@@ -38,8 +38,8 @@ m_largeAabbsMappingGPU(ctx,q), | |||||
m_gpuPairs(ctx,q), | m_gpuPairs(ctx,q), | ||||
m_hashGpu(ctx,q), | m_hashGpu(ctx,q), | ||||
m_paramsGPU(ctx,q), | |||||
m_cellStartGpu(ctx,q) | |||||
m_cellStartGpu(ctx,q), | |||||
m_paramsGPU(ctx,q) | |||||
{ | { | ||||
@@ -279,7 +279,7 @@ void b3GpuGridBroadphase::calculateOverlappingPairs(int maxPairs) | |||||
int sz = m_gpuPairs.size(); | int sz = m_gpuPairs.size(); | ||||
printf("m_gpuPairs.size()=%d\n",sz); | printf("m_gpuPairs.size()=%d\n",sz); | ||||
for (int i=0;i<m_gpuPairs.size();i++) | |||||
for (unsigned int i=0;i<m_gpuPairs.size();i++) | |||||
{ | { | ||||
printf("pair %d = %d,%d\n",i,pairsCpu[i].x,pairsCpu[i].y); | printf("pair %d = %d,%d\n",i,pairsCpu[i].x,pairsCpu[i].y); | ||||
} | } | ||||
@@ -19,17 +19,6 @@ b3GpuSapBroadphase::b3GpuSapBroadphase(cl_context ctx,cl_device_id device, cl_co | |||||
:m_context(ctx), | :m_context(ctx), | ||||
m_device(device), | m_device(device), | ||||
m_queue(q), | m_queue(q), | ||||
m_allAabbsGPU(ctx,q), | |||||
m_smallAabbsMappingGPU(ctx,q), | |||||
m_largeAabbsMappingGPU(ctx,q), | |||||
m_pairCount(ctx,q), | |||||
m_overlappingPairs(ctx,q), | |||||
m_gpuSmallSortData(ctx,q), | |||||
m_gpuSmallSortedAabbs(ctx,q), | |||||
m_sum(ctx,q), | |||||
m_sum2(ctx,q), | |||||
m_dst(ctx,q), | |||||
m_currentBuffer(-1), | |||||
m_objectMinMaxIndexGPUaxis0(ctx,q), | m_objectMinMaxIndexGPUaxis0(ctx,q), | ||||
m_objectMinMaxIndexGPUaxis1(ctx,q), | m_objectMinMaxIndexGPUaxis1(ctx,q), | ||||
m_objectMinMaxIndexGPUaxis2(ctx,q), | m_objectMinMaxIndexGPUaxis2(ctx,q), | ||||
@@ -45,7 +34,18 @@ m_sortedAxisGPU2prev(ctx,q), | |||||
m_addedHostPairsGPU(ctx,q), | m_addedHostPairsGPU(ctx,q), | ||||
m_removedHostPairsGPU(ctx,q), | m_removedHostPairsGPU(ctx,q), | ||||
m_addedCountGPU(ctx,q), | m_addedCountGPU(ctx,q), | ||||
m_removedCountGPU(ctx,q) | |||||
m_removedCountGPU(ctx,q), | |||||
m_currentBuffer(-1), | |||||
m_pairCount(ctx,q), | |||||
m_allAabbsGPU(ctx,q), | |||||
m_sum(ctx,q), | |||||
m_sum2(ctx,q), | |||||
m_dst(ctx,q), | |||||
m_smallAabbsMappingGPU(ctx,q), | |||||
m_largeAabbsMappingGPU(ctx,q), | |||||
m_overlappingPairs(ctx,q), | |||||
m_gpuSmallSortData(ctx,q), | |||||
m_gpuSmallSortedAabbs(ctx,q) | |||||
{ | { | ||||
const char* sapSrc = sapCL; | const char* sapSrc = sapCL; | ||||
@@ -565,7 +565,7 @@ void b3GpuSapBroadphase::calculateOverlappingPairsHostIncremental3Sap() | |||||
if (dmin!=0) | if (dmin!=0) | ||||
{ | { | ||||
int stepMin = dmin<0 ? -1 : 1; | int stepMin = dmin<0 ? -1 : 1; | ||||
for (int j=prevMinIndex;j!=curMinIndex;j+=stepMin) | |||||
for (unsigned int j=prevMinIndex;j!=curMinIndex;j+=stepMin) | |||||
{ | { | ||||
int otherIndex2 = m_sortedAxisCPU[axis][otherbuffer][j].y; | int otherIndex2 = m_sortedAxisCPU[axis][otherbuffer][j].y; | ||||
int otherIndex = otherIndex2/2; | int otherIndex = otherIndex2/2; | ||||
@@ -648,7 +648,7 @@ void b3GpuSapBroadphase::calculateOverlappingPairsHostIncremental3Sap() | |||||
if (dmax!=0) | if (dmax!=0) | ||||
{ | { | ||||
int stepMax = dmax<0 ? -1 : 1; | int stepMax = dmax<0 ? -1 : 1; | ||||
for (int j=prevMaxIndex;j!=curMaxIndex;j+=stepMax) | |||||
for (unsigned int j=prevMaxIndex;j!=curMaxIndex;j+=stepMax) | |||||
{ | { | ||||
int otherIndex2 = m_sortedAxisCPU[axis][otherbuffer][j].y; | int otherIndex2 = m_sortedAxisCPU[axis][otherbuffer][j].y; | ||||
int otherIndex = otherIndex2/2; | int otherIndex = otherIndex2/2; | ||||
@@ -1024,7 +1024,7 @@ void b3GpuSapBroadphase::calculateOverlappingPairs(int maxPairs) | |||||
bool syncOnHost = false; | bool syncOnHost = false; | ||||
int numSmallAabbs = m_smallAabbsMappingCPU.size(); | |||||
unsigned int numSmallAabbs = m_smallAabbsMappingCPU.size(); | |||||
if (m_prefixScanFloat4 && numSmallAabbs) | if (m_prefixScanFloat4 && numSmallAabbs) | ||||
{ | { | ||||
B3_PROFILE("GPU compute best variance axis"); | B3_PROFILE("GPU compute best variance axis"); | ||||
@@ -168,11 +168,10 @@ cl_platform_id b3OpenCLUtils_getPlatform(int platformIndex0, cl_int* pErrNum) | |||||
#endif | #endif | ||||
cl_platform_id platform = 0; | cl_platform_id platform = 0; | ||||
unsigned int platformIndex = (unsigned int )platformIndex0; | |||||
cl_uint numPlatforms; | cl_uint numPlatforms; | ||||
cl_int ciErrNum = clGetPlatformIDs(0, NULL, &numPlatforms); | cl_int ciErrNum = clGetPlatformIDs(0, NULL, &numPlatforms); | ||||
if (platformIndex>=0 && platformIndex<numPlatforms) | |||||
if (platformIndex0>=0 && (cl_uint)platformIndex0<numPlatforms) | |||||
{ | { | ||||
cl_platform_id* platforms = (cl_platform_id*) malloc (sizeof(cl_platform_id)*numPlatforms); | cl_platform_id* platforms = (cl_platform_id*) malloc (sizeof(cl_platform_id)*numPlatforms); | ||||
ciErrNum = clGetPlatformIDs(numPlatforms, platforms, NULL); | ciErrNum = clGetPlatformIDs(numPlatforms, platforms, NULL); | ||||
@@ -183,7 +182,7 @@ cl_platform_id b3OpenCLUtils_getPlatform(int platformIndex0, cl_int* pErrNum) | |||||
return platform; | return platform; | ||||
} | } | ||||
platform = platforms[platformIndex]; | |||||
platform = platforms[platformIndex0]; | |||||
free (platforms); | free (platforms); | ||||
} | } | ||||
@@ -310,7 +309,6 @@ cl_context b3OpenCLUtils_createContextFromType(cl_device_type deviceType, cl_int | |||||
cl_uint numPlatforms; | cl_uint numPlatforms; | ||||
cl_context retContext = 0; | cl_context retContext = 0; | ||||
unsigned int i; | |||||
cl_int ciErrNum = clGetPlatformIDs(0, NULL, &numPlatforms); | cl_int ciErrNum = clGetPlatformIDs(0, NULL, &numPlatforms); | ||||
if(ciErrNum != CL_SUCCESS) | if(ciErrNum != CL_SUCCESS) | ||||
@@ -332,7 +330,7 @@ cl_context b3OpenCLUtils_createContextFromType(cl_device_type deviceType, cl_int | |||||
for ( i = 0; i < numPlatforms; ++i) | |||||
for (int i = 0; (cl_uint)i < numPlatforms; ++i) | |||||
{ | { | ||||
char pbuf[128]; | char pbuf[128]; | ||||
ciErrNum = clGetPlatformInfo( platforms[i], | ciErrNum = clGetPlatformInfo( platforms[i], | ||||
@@ -346,7 +344,7 @@ cl_context b3OpenCLUtils_createContextFromType(cl_device_type deviceType, cl_int | |||||
return NULL; | return NULL; | ||||
} | } | ||||
if (preferredPlatformIndex>=0 && i==preferredPlatformIndex) | |||||
if (i==preferredPlatformIndex) | |||||
{ | { | ||||
cl_platform_id tmpPlatform = platforms[0]; | cl_platform_id tmpPlatform = platforms[0]; | ||||
platforms[0] = platforms[i]; | platforms[0] = platforms[i]; | ||||
@@ -363,7 +361,7 @@ cl_context b3OpenCLUtils_createContextFromType(cl_device_type deviceType, cl_int | |||||
} | } | ||||
} | } | ||||
for (i = 0; i < numPlatforms; ++i) | |||||
for (int i = 0; (cl_uint)i < numPlatforms; ++i) | |||||
{ | { | ||||
cl_platform_id platform = platforms[i]; | cl_platform_id platform = platforms[i]; | ||||
assert(platform); | assert(platform); | ||||
@@ -583,7 +581,7 @@ static const char* strip2(const char* name, const char* pattern) | |||||
const char * oriptr; | const char * oriptr; | ||||
const char * patloc; | const char * patloc; | ||||
// find how many times the pattern occurs in the original string | // find how many times the pattern occurs in the original string | ||||
for (oriptr = name; patloc = strstr(oriptr, pattern); oriptr = patloc + patlen) | |||||
for (oriptr = name; (patloc = strstr(oriptr, pattern)); oriptr = patloc + patlen) | |||||
{ | { | ||||
patcnt++; | patcnt++; | ||||
} | } | ||||
@@ -108,8 +108,10 @@ m_queue(q), | |||||
m_findSeparatingAxisKernel(0), | m_findSeparatingAxisKernel(0), | ||||
m_findSeparatingAxisVertexFaceKernel(0), | m_findSeparatingAxisVertexFaceKernel(0), | ||||
m_findSeparatingAxisEdgeEdgeKernel(0), | m_findSeparatingAxisEdgeEdgeKernel(0), | ||||
m_unitSphereDirections(m_context,m_queue), | |||||
m_totalContactsOut(m_context, m_queue), | m_totalContactsOut(m_context, m_queue), | ||||
m_sepNormals(m_context, m_queue), | m_sepNormals(m_context, m_queue), | ||||
m_dmins(m_context,m_queue), | |||||
m_hasSeparatingNormals(m_context, m_queue), | m_hasSeparatingNormals(m_context, m_queue), | ||||
m_concaveSepNormals(m_context, m_queue), | m_concaveSepNormals(m_context, m_queue), | ||||
m_concaveHasSeparatingNormals(m_context,m_queue), | m_concaveHasSeparatingNormals(m_context,m_queue), | ||||
@@ -117,9 +119,7 @@ m_numConcavePairsOut(m_context, m_queue), | |||||
m_gpuCompoundPairs(m_context, m_queue), | m_gpuCompoundPairs(m_context, m_queue), | ||||
m_gpuCompoundSepNormals(m_context, m_queue), | m_gpuCompoundSepNormals(m_context, m_queue), | ||||
m_gpuHasCompoundSepNormals(m_context, m_queue), | m_gpuHasCompoundSepNormals(m_context, m_queue), | ||||
m_numCompoundPairsOut(m_context, m_queue), | |||||
m_dmins(m_context,m_queue), | |||||
m_unitSphereDirections(m_context,m_queue) | |||||
m_numCompoundPairsOut(m_context, m_queue) | |||||
{ | { | ||||
m_totalContactsOut.push_back(0); | m_totalContactsOut.push_back(0); | ||||
@@ -404,7 +404,7 @@ inline bool IsPointInPolygon(const float4& p, | |||||
float4 v0 = baseVertex[convexIndices[face->m_indexOffset + face->m_numIndices-1]]; | float4 v0 = baseVertex[convexIndices[face->m_indexOffset + face->m_numIndices-1]]; | ||||
b = v0; | b = v0; | ||||
for(unsigned i=0; i != face->m_numIndices; ++i) | |||||
for(int i=0; i != face->m_numIndices; ++i) | |||||
{ | { | ||||
a = b; | a = b; | ||||
float4 vi = baseVertex[convexIndices[face->m_indexOffset + i]]; | float4 vi = baseVertex[convexIndices[face->m_indexOffset + i]]; | ||||
@@ -38,7 +38,7 @@ template<class T> | |||||
T b3NextPowerOf2(T n) | T b3NextPowerOf2(T n) | ||||
{ | { | ||||
n -= 1; | n -= 1; | ||||
for(int i=0; i<sizeof(T)*8; i++) | |||||
for(unsigned int i=0; i<sizeof(T)*8; i++) | |||||
n = n | (n>>i); | n = n | (n>>i); | ||||
return n+1; | return n+1; | ||||
} | } | ||||
@@ -123,4 +123,4 @@ void b3PrefixScanCL::executeHost(b3AlignedObjectArray<unsigned int>& src, b3Alig | |||||
{ | { | ||||
*sum = dst[n-1]; | *sum = dst[n-1]; | ||||
} | } | ||||
} | |||||
} |
@@ -38,7 +38,7 @@ template<class T> | |||||
T b3NextPowerOf2(T n) | T b3NextPowerOf2(T n) | ||||
{ | { | ||||
n -= 1; | n -= 1; | ||||
for(int i=0; i<sizeof(T)*8; i++) | |||||
for(unsigned int i=0; i<sizeof(T)*8; i++) | |||||
n = n | (n>>i); | n = n | (n>>i); | ||||
return n+1; | return n+1; | ||||
} | } | ||||
@@ -123,4 +123,4 @@ void b3PrefixScanFloat4CL::executeHost(b3AlignedObjectArray<b3Vector3>& src, b3A | |||||
{ | { | ||||
*sum = dst[n-1]; | *sum = dst[n-1]; | ||||
} | } | ||||
} | |||||
} |
@@ -311,7 +311,7 @@ void b3GpuRaycast::castRays(const b3AlignedObjectArray<b3RayInfo>& rays, b3Align | |||||
int numRayRigidPairs = -1; | int numRayRigidPairs = -1; | ||||
m_data->m_gpuNumRayRigidPairs->copyToHostPointer(&numRayRigidPairs, 1); | m_data->m_gpuNumRayRigidPairs->copyToHostPointer(&numRayRigidPairs, 1); | ||||
if( numRayRigidPairs > m_data->m_gpuRayRigidPairs->size() ) | |||||
if( numRayRigidPairs > (int)m_data->m_gpuRayRigidPairs->size() ) | |||||
{ | { | ||||
numRayRigidPairs = m_data->m_gpuRayRigidPairs->size(); | numRayRigidPairs = m_data->m_gpuRayRigidPairs->size(); | ||||
m_data->m_gpuNumRayRigidPairs->copyFromHostPointer(&numRayRigidPairs, 1); | m_data->m_gpuNumRayRigidPairs->copyFromHostPointer(&numRayRigidPairs, 1); | ||||
@@ -388,4 +388,4 @@ void b3GpuRaycast::castRays(const b3AlignedObjectArray<b3RayInfo>& rays, b3Align | |||||
m_data->m_gpuHitResults->copyToHost(hitResults); | m_data->m_gpuHitResults->copyToHost(hitResults); | ||||
} | } | ||||
} | |||||
} |
@@ -562,7 +562,7 @@ void b3GpuJacobiContactSolver::solveGroupHost(b3RigidBodyData* bodies,b3InertiaD | |||||
b3AlignedObjectArray<b3Vector3> deltaAngularVelocities; | b3AlignedObjectArray<b3Vector3> deltaAngularVelocities; | ||||
deltaLinearVelocities.resize(totalNumSplitBodies); | deltaLinearVelocities.resize(totalNumSplitBodies); | ||||
deltaAngularVelocities.resize(totalNumSplitBodies); | deltaAngularVelocities.resize(totalNumSplitBodies); | ||||
for (int i=0;i<totalNumSplitBodies;i++) | |||||
for (unsigned int i=0;i<totalNumSplitBodies;i++) | |||||
{ | { | ||||
deltaLinearVelocities[i].setZero(); | deltaLinearVelocities[i].setZero(); | ||||
deltaAngularVelocities[i].setZero(); | deltaAngularVelocities[i].setZero(); | ||||
@@ -87,11 +87,11 @@ public: | |||||
b3Solver::b3Solver(cl_context ctx, cl_device_id device, cl_command_queue queue, int pairCapacity) | b3Solver::b3Solver(cl_context ctx, cl_device_id device, cl_command_queue queue, int pairCapacity) | ||||
:m_nIterations(4), | |||||
m_context(ctx), | |||||
:m_context(ctx), | |||||
m_device(device), | m_device(device), | ||||
m_queue(queue), | m_queue(queue), | ||||
m_batchSizes(ctx,queue) | |||||
m_batchSizes(ctx,queue), | |||||
m_nIterations(4) | |||||
{ | { | ||||
m_sort32 = new b3RadixSort32CL(ctx,device,queue); | m_sort32 = new b3RadixSort32CL(ctx,device,queue); | ||||
m_scan = new b3PrefixScanCL(ctx,device,queue,B3_SOLVER_N_CELLS); | m_scan = new b3PrefixScanCL(ctx,device,queue,B3_SOLVER_N_CELLS); | ||||
@@ -362,11 +362,15 @@ struct SolveTask// : public ThreadPool::Task | |||||
{ | { | ||||
SolveTask(b3AlignedObjectArray<b3RigidBodyData>& bodies, b3AlignedObjectArray<b3InertiaData>& shapes, b3AlignedObjectArray<b3GpuConstraint4>& constraints, | SolveTask(b3AlignedObjectArray<b3RigidBodyData>& bodies, b3AlignedObjectArray<b3InertiaData>& shapes, b3AlignedObjectArray<b3GpuConstraint4>& constraints, | ||||
int start, int nConstraints,int maxNumBatches,b3AlignedObjectArray<int>* wgUsedBodies, int curWgidx, b3AlignedObjectArray<int>* batchSizes, int cellIndex) | int start, int nConstraints,int maxNumBatches,b3AlignedObjectArray<int>* wgUsedBodies, int curWgidx, b3AlignedObjectArray<int>* batchSizes, int cellIndex) | ||||
: m_bodies( bodies ), m_shapes( shapes ), m_constraints( constraints ), m_start( start ), m_nConstraints( nConstraints ), | |||||
m_solveFriction( true ),m_maxNumBatches(maxNumBatches), | |||||
m_curWgidx(curWgidx), | |||||
: m_bodies( bodies ), m_shapes( shapes ), | |||||
m_constraints( constraints ), | |||||
m_batchSizes(batchSizes), | m_batchSizes(batchSizes), | ||||
m_cellIndex(cellIndex) | |||||
m_cellIndex(cellIndex), | |||||
m_curWgidx(curWgidx), | |||||
m_start( start ), | |||||
m_nConstraints( nConstraints ), | |||||
m_solveFriction( true ), | |||||
m_maxNumBatches(maxNumBatches) | |||||
{} | {} | ||||
unsigned short int getType(){ return 0; } | unsigned short int getType(){ return 0; } | ||||
@@ -151,8 +151,8 @@ static btScalar EdgeSeparation(const btBox2dShape* poly1, const btTransform& xf1 | |||||
int index = 0; | int index = 0; | ||||
btScalar minDot = BT_LARGE_FLOAT; | btScalar minDot = BT_LARGE_FLOAT; | ||||
if( count2 > 0 ) | |||||
index = (int) normal1.minDot( vertices2, count2, minDot); | |||||
if( count2 > 0 ) | |||||
index = (int) normal1.minDot( vertices2, count2, minDot); | |||||
btVector3 v1 = b2Mul(xf1, vertices1[edge1]); | btVector3 v1 = b2Mul(xf1, vertices1[edge1]); | ||||
btVector3 v2 = b2Mul(xf2, vertices2[index]); | btVector3 v2 = b2Mul(xf2, vertices2[index]); | ||||
@@ -174,9 +174,9 @@ static btScalar FindMaxSeparation(int* edgeIndex, | |||||
// Find edge normal on poly1 that has the largest projection onto d. | // Find edge normal on poly1 that has the largest projection onto d. | ||||
int edge = 0; | int edge = 0; | ||||
btScalar maxDot; | |||||
if( count1 > 0 ) | |||||
edge = (int) dLocal1.maxDot( normals1, count1, maxDot); | |||||
btScalar maxDot; | |||||
if( count1 > 0 ) | |||||
edge = (int) dLocal1.maxDot( normals1, count1, maxDot); | |||||
// Get the separation for the edge normal. | // Get the separation for the edge normal. | ||||
btScalar s = EdgeSeparation(poly1, xf1, edge, poly2, xf2); | btScalar s = EdgeSeparation(poly1, xf1, edge, poly2, xf2); | ||||
@@ -232,8 +232,8 @@ void btCompoundCollisionAlgorithm::processCollision (const btCollisionObjectWrap | |||||
m_compoundShapeRevision = compoundShape->getUpdateRevision(); | m_compoundShapeRevision = compoundShape->getUpdateRevision(); | ||||
} | } | ||||
if (m_childCollisionAlgorithms.size()==0) | |||||
return; | |||||
if (m_childCollisionAlgorithms.size()==0) | |||||
return; | |||||
const btDbvt* tree = compoundShape->getDynamicAabbTree(); | const btDbvt* tree = compoundShape->getDynamicAabbTree(); | ||||
//use a dynamic aabb tree to cull potential child-overlaps | //use a dynamic aabb tree to cull potential child-overlaps | ||||
@@ -29,8 +29,8 @@ subject to the following restrictions: | |||||
btConvexConcaveCollisionAlgorithm::btConvexConcaveCollisionAlgorithm( const btCollisionAlgorithmConstructionInfo& ci, const btCollisionObjectWrapper* body0Wrap,const btCollisionObjectWrapper* body1Wrap,bool isSwapped) | btConvexConcaveCollisionAlgorithm::btConvexConcaveCollisionAlgorithm( const btCollisionAlgorithmConstructionInfo& ci, const btCollisionObjectWrapper* body0Wrap,const btCollisionObjectWrapper* body1Wrap,bool isSwapped) | ||||
: btActivatingCollisionAlgorithm(ci,body0Wrap,body1Wrap), | : btActivatingCollisionAlgorithm(ci,body0Wrap,body1Wrap), | ||||
m_isSwapped(isSwapped), | |||||
m_btConvexTriangleCallback(ci.m_dispatcher1,body0Wrap,body1Wrap,isSwapped) | |||||
m_btConvexTriangleCallback(ci.m_dispatcher1, body0Wrap, body1Wrap, isSwapped), | |||||
m_isSwapped(isSwapped) | |||||
{ | { | ||||
} | } | ||||
@@ -22,7 +22,7 @@ public: | |||||
vec3(const btVector3& btv) { *this = btv; } | vec3(const btVector3& btv) { *this = btv; } | ||||
idScalar& operator()(int i) { return (*this)[i]; } | idScalar& operator()(int i) { return (*this)[i]; } | ||||
const idScalar& operator()(int i) const { return (*this)[i]; } | const idScalar& operator()(int i) const { return (*this)[i]; } | ||||
const int size() const { return 3; } | |||||
int size() const { return 3; } | |||||
const vec3& operator=(const btVector3& rhs) { | const vec3& operator=(const btVector3& rhs) { | ||||
*static_cast<btVector3*>(this) = rhs; | *static_cast<btVector3*>(this) = rhs; | ||||
return *this; | return *this; | ||||
@@ -113,7 +113,7 @@ inline vecx operator/(const vecx& a, const idScalar& s) { | |||||
class mat3x : public matxx { | class mat3x : public matxx { | ||||
public: | public: | ||||
mat3x(){} | mat3x(){} | ||||
mat3x(const mat3x&rhs) { | |||||
mat3x(const mat3x&rhs): matxx() { | |||||
matxx::resize(rhs.rows(), rhs.cols()); | matxx::resize(rhs.rows(), rhs.cols()); | ||||
*this = rhs; | *this = rhs; | ||||
} | } | ||||
@@ -6,9 +6,7 @@ noinst_LIBRARIES = liblol-bullet.a | |||||
# Only remove flags that were actually set, because we don't know | # Only remove flags that were actually set, because we don't know | ||||
# what the compiler actually accepts. | # what the compiler actually accepts. | ||||
disable_cflags = $(filter $(AM_CPPFLAGS:-W%=-Wno-%), \ | disable_cflags = $(filter $(AM_CPPFLAGS:-W%=-Wno-%), \ | ||||
-Wno-shadow -Wno-unused -Wno-cast-qual -Wno-strict-aliasing \ | |||||
-Wno-reorder -Wno-maybe-uninitialized -Wno-narrowing \ | |||||
-Wno-parentheses) | |||||
-Wno-shadow -Wno-unused -Wno-cast-qual -Wno-strict-aliasing) | |||||
liblol_bullet_a_SOURCES = $(bullet_sources) | liblol_bullet_a_SOURCES = $(bullet_sources) | ||||
liblol_bullet_a_CPPFLAGS = -DB3_USE_CLEW $(AM_CPPFLAGS) -I$(srcdir) $(disable_cflags) | liblol_bullet_a_CPPFLAGS = -DB3_USE_CLEW $(AM_CPPFLAGS) -I$(srcdir) $(disable_cflags) | ||||