added method for generating a random point into a triangle (it generate three random barycentric coords)

This commit is contained in:
Paolo Cignoni 2012-03-30 23:42:04 +00:00
parent a53447ab1c
commit e3d0a6d0cb
1 changed files with 12 additions and 0 deletions

View File

@ -331,6 +331,18 @@ public:
return (((double)generate(0)) + 0.5)*(1.0/4294967296.0);
}
/// Generate a random triple of baricentric coords
template <class PointType>
void generateBarycentric(PointType &p){
p[1] = this->generate01();
p[2] = this->generate01();
if(p[1] + p[2] > 1.0){
p[1] = 1.0 - p[1];
p[2] = 1.0 - p[2];
}
p[0]=1.0-(p[1] + p[2]);
}
};