From e3d0a6d0cb4141c5d8f9c464bfd3d94a10c32c61 Mon Sep 17 00:00:00 2001 From: cignoni Date: Fri, 30 Mar 2012 23:42:04 +0000 Subject: [PATCH] added method for generating a random point into a triangle (it generate three random barycentric coords) --- vcg/math/random_generator.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/vcg/math/random_generator.h b/vcg/math/random_generator.h index ac2f0674..24445c29 100644 --- a/vcg/math/random_generator.h +++ b/vcg/math/random_generator.h @@ -331,6 +331,18 @@ public: return (((double)generate(0)) + 0.5)*(1.0/4294967296.0); } + /// Generate a random triple of baricentric coords + template + 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]); + } };