yade-dev team mailing list archive
-
yade-dev team
-
Mailing list archive
-
Message #13124
[Branch ~yade-pkg/yade/git-trunk] Rev 4044: small scale optimization in ISCollider
------------------------------------------------------------
revno: 4044
committer: bchareyre <bruno.chareyre@xxxxxxxxxxxxxxx>
timestamp: Mon 2017-05-15 18:31:11 +0200
message:
small scale optimization in ISCollider
modified:
pkg/common/InsertionSortCollider.cpp
--
lp:yade
https://code.launchpad.net/~yade-pkg/yade/git-trunk
Your team Yade developers is subscribed to branch lp:yade.
To unsubscribe from this branch go to https://code.launchpad.net/~yade-pkg/yade/git-trunk/+edit-subscription
=== modified file 'pkg/common/InsertionSortCollider.cpp'
--- pkg/common/InsertionSortCollider.cpp 2017-05-15 16:31:11 +0000
+++ pkg/common/InsertionSortCollider.cpp 2017-05-15 16:31:11 +0000
@@ -462,9 +462,10 @@
// called by the insertion sort if 2 bodies swapped their bounds
void InsertionSortCollider::handleBoundInversionPeri(Body::id_t id1, Body::id_t id2, InteractionContainer* interactions, Scene*){
assert(periodic);
- Vector3i periods;
+ if (interactions->found(id1,id2)) return;// we want to _create_ new ones, we don't care about existing ones
+ Vector3i periods(Vector3i::Zero());
bool overlap=spatialOverlapPeri(id1,id2,scene,periods);
- if (overlap && Collider::mayCollide(Body::byId(id1,scene).get(),Body::byId(id2,scene).get()) && !interactions->found(id1,id2)){
+ if (overlap && Collider::mayCollide(Body::byId(id1,scene).get(),Body::byId(id2,scene).get())){
shared_ptr<Interaction> newI=shared_ptr<Interaction>(new Interaction(id1,id2));
newI->cellDist=periods;
interactions->insert(newI);