b3DynamicBvhBroadphase::b3DynamicBvhBroadphase(int proxyCapacity, b3OverlappingPairCache* paircache) { m_deferedcollide = false; m_needcleanup = true; m_releasepaircache = (paircache!=0)?false:true; m_prediction = 0; m_stageCurrent = 0; m_fixedleft = 0; m_fupdates = 1; m_dupdates = 0; m_cupdates = 10; m_newpairs = 1; m_updates_call = 0; m_updates_done = 0; m_updates_ratio = 0; m_paircache = paircache? paircache : new(b3AlignedAlloc(sizeof(b3HashedOverlappingPairCache),16)) b3HashedOverlappingPairCache(); m_pid = 0; m_cid = 0; for(int i=0;i<=STAGECOUNT;++i) { m_stageRoots[i]=0; } #if B3_DBVT_BP_PROFILE b3Clear(m_profiling); #endif m_proxies.resize(proxyCapacity); }
b3Barrier* b3Win32ThreadSupport::createBarrier() { unsigned char* mem = (unsigned char*)b3AlignedAlloc(sizeof(b3Win32Barrier),16); b3Win32Barrier* barrier = new(mem) b3Win32Barrier(); barrier->setMaxCount(getNumTasks()); return barrier; }
b3CriticalSection* b3Win32ThreadSupport::createCriticalSection() { unsigned char* mem = (unsigned char*) b3AlignedAlloc(sizeof(b3Win32CriticalSection),16); b3Win32CriticalSection* cs = new(mem) b3Win32CriticalSection(); return cs; }