Changeset View
Changeset View
Standalone View
Standalone View
extern/bullet2/src/BulletCollision/BroadphaseCollision/btDbvt.h
| Show First 20 Lines • Show All 1,187 Lines • ▼ Show 20 Lines | if(root) | ||||
| sStkNPS(pns[1],se.mask,pns[1]->volume.ProjectMinimum(sortaxis,srtsgns))}; | sStkNPS(pns[1],se.mask,pns[1]->volume.ProjectMinimum(sortaxis,srtsgns))}; | ||||
| const int q=nes[0].value<nes[1].value?1:0; | const int q=nes[0].value<nes[1].value?1:0; | ||||
| int j=stack.size(); | int j=stack.size(); | ||||
| if(fsort&&(j>0)) | if(fsort&&(j>0)) | ||||
| { | { | ||||
| /* Insert 0 */ | /* Insert 0 */ | ||||
| j=nearest(&stack[0],&stock[0],nes[q].value,0,stack.size()); | j=nearest(&stack[0],&stock[0],nes[q].value,0,stack.size()); | ||||
| stack.push_back(0); | stack.push_back(0); | ||||
| //void * memmove ( void * destination, const void * source, size_t num ); | |||||
| #if DBVT_USE_MEMMOVE | #if DBVT_USE_MEMMOVE | ||||
| memmove(&stack[j+1],&stack[j],sizeof(int)*(stack.size()-j-1)); | { | ||||
| int num_items_to_move = stack.size()-1-j; | |||||
| if(num_items_to_move > 0) | |||||
| memmove(&stack[j+1],&stack[j],sizeof(int)*num_items_to_move); | |||||
| } | |||||
| #else | #else | ||||
| for(int k=stack.size()-1;k>j;--k) stack[k]=stack[k-1]; | for(int k=stack.size()-1;k>j;--k) { | ||||
| stack[k]=stack[k-1]; | |||||
| } | |||||
| #endif | #endif | ||||
| stack[j]=allocate(ifree,stock,nes[q]); | stack[j]=allocate(ifree,stock,nes[q]); | ||||
| /* Insert 1 */ | /* Insert 1 */ | ||||
| j=nearest(&stack[0],&stock[0],nes[1-q].value,j,stack.size()); | j=nearest(&stack[0],&stock[0],nes[1-q].value,j,stack.size()); | ||||
| stack.push_back(0); | stack.push_back(0); | ||||
| #if DBVT_USE_MEMMOVE | #if DBVT_USE_MEMMOVE | ||||
| memmove(&stack[j+1],&stack[j],sizeof(int)*(stack.size()-j-1)); | { | ||||
| int num_items_to_move = stack.size()-1-j; | |||||
| if(num_items_to_move > 0) | |||||
| memmove(&stack[j+1],&stack[j],sizeof(int)*num_items_to_move); | |||||
| } | |||||
| #else | #else | ||||
| for(int k=stack.size()-1;k>j;--k) stack[k]=stack[k-1]; | for(int k=stack.size()-1;k>j;--k) { | ||||
| stack[k]=stack[k-1]; | |||||
| } | |||||
| #endif | #endif | ||||
| stack[j]=allocate(ifree,stock,nes[1-q]); | stack[j]=allocate(ifree,stock,nes[1-q]); | ||||
| } | } | ||||
| else | else | ||||
| { | { | ||||
| stack.push_back(allocate(ifree,stock,nes[q])); | stack.push_back(allocate(ifree,stock,nes[q])); | ||||
| stack.push_back(allocate(ifree,stock,nes[1-q])); | stack.push_back(allocate(ifree,stock,nes[1-q])); | ||||
| } | } | ||||
| ▲ Show 20 Lines • Show All 54 Lines • Show Last 20 Lines | |||||