From a7fb3f355cd075dbd89bedd7d1e10b3d8d77a91c Mon Sep 17 00:00:00 2001 From: Pilar Cossio <Pilar.Cossio@biophys.mpg.de> Date: Tue, 22 Jul 2014 15:54:59 +0200 Subject: [PATCH] Corrected weighted center of mass with electron densities --- model.cpp | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/model.cpp b/model.cpp index 2fcce0e..f84a692 100644 --- a/model.cpp +++ b/model.cpp @@ -182,20 +182,21 @@ int bioem_model::readModel(const char* filemodel) cout << "\n+++++++++++++++++++++++++++++++++++++++++ \n"; exampleReadCoor.close(); - //Moving to Model to its center of mass: + //Moving to Model to its center of density mass: myfloat3_t r_cm; for(int n = 0; n < 3; n++)r_cm.pos[n] = 0.0; for(int n = 0; n < nPointsModel; n++) { - r_cm.pos[0] += points[n].point.pos[0]; - r_cm.pos[1] += points[n].point.pos[1]; - r_cm.pos[2] += points[n].point.pos[2]; + r_cm.pos[0] += points[n].point.pos[0]*points[n].density; + r_cm.pos[1] += points[n].point.pos[1]*points[n].density; + r_cm.pos[2] += points[n].point.pos[2]*points[n].density; } - r_cm.pos[0] = r_cm.pos[0] / (myfloat_t) nPointsModel; - r_cm.pos[1] = r_cm.pos[1] / (myfloat_t) nPointsModel; - r_cm.pos[2] = r_cm.pos[2] / (myfloat_t) nPointsModel; + r_cm.pos[0] = r_cm.pos[0] / NormDen; + r_cm.pos[1] = r_cm.pos[1] / NormDen; + r_cm.pos[2] = r_cm.pos[2] / NormDen; + for(int n = 0; n < nPointsModel; n++) { points[n].point.pos[0] -= r_cm.pos[0]; -- GitLab