本文整理汇总了C++中Sphere::getCentroid方法的典型用法代码示例。如果您正苦于以下问题:C++ Sphere::getCentroid方法的具体用法?C++ Sphere::getCentroid怎么用?C++ Sphere::getCentroid使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Sphere
的用法示例。
在下文中一共展示了Sphere::getCentroid方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: evalRepulsiveForce
void SphereForce::evalRepulsiveForce(Cell & c1, const Sphere & s)
{
float overlap=fmax(((c1.getCoord().distanceTo(s.getCentroid())+c1.getRadius())-s.getRadius()),0.0f);
CVector cv;
if(overlap==0.0f) {
this->setValueXyz(cv);
return;
}
std::cout<<c1.getID()<<"---"<<overlap<<std::endl;
//cv=(c1.getCoord()/fmax(c1.getCoord().getAbsoluteMax(),1))*overlap;
cv=c1.getCoord();
cv = cv/sqrt(pow(cv.getX(),2)+pow(cv.getY(),2)+pow(cv.getZ(),2));
//cv=cv*(overlap/(c1.getCoord().distanceTo(s.getCentroid())+c1.getRadius())); // utiliser fraction de la distance pour scaler
cv.reverseSign();
c1.resetBoxCol();
/*if(strcmp(c1.getID().c_str(),"4")==1){
std::cout<<c1.getID().c_str()<<"overlap :"<<overlap<<"--"<<c1.getCoord().distanceTo(s.getCentroid())<<"\n fact : "<<(overlap/(c1.getCoord().distanceTo(s.getCentroid())+c1.getRadius()))<<"\nVecteur : "<<std::endl;
cv.print();
c1.getCoord().print();
}*/
if(cv.getX()>0.0f) c1.setWl(true);
if(cv.getX()<0.0f) c1.setWr(true);
if(cv.getY()>0.0f) c1.setHl(true);
if(cv.getY()<0.0f) c1.setHr(true);
if(cv.getZ()>0.0f) c1.setDl(true);
if(cv.getZ()<0.0f) c1.setDr(true);
this->setValueXyz((cv*overlap*REPULSIVE_CONST));
}