| @@ -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) | ||||