extent also ensures 3Dness

This commit is contained in:
mattijs
2008-09-09 17:13:33 +01:00
parent 0d1d3014c3
commit d9c203b959
2 changed files with 10 additions and 1 deletions

View File

@ -314,6 +314,7 @@ public:
//- Return slightly wider bounding box //- Return slightly wider bounding box
// Extends all dimensions with s*span*Random::scalar01() // Extends all dimensions with s*span*Random::scalar01()
// and guarantees in any direction s*mag(span) minimum width
inline treeBoundBox extend(Random&, const scalar s) const; inline treeBoundBox extend(Random&, const scalar s) const;
// Friend Operators // Friend Operators

View File

@ -437,7 +437,15 @@ inline treeBoundBox treeBoundBox::extend(Random& rndGen, const scalar s) const
{ {
treeBoundBox bb(*this); treeBoundBox bb(*this);
const vector span(bb.max() - bb.min()); vector span(bb.max() - bb.min());
// Make 3D
scalar magSpan = Foam::mag(span);
for (direction dir = 0; dir < vector::nComponents; dir++)
{
span[dir] = Foam::max(s*magSpan, span[dir]);
}
bb.min() -= cmptMultiply(s*rndGen.vector01(), span); bb.min() -= cmptMultiply(s*rndGen.vector01(), span);
bb.max() += cmptMultiply(s*rndGen.vector01(), span); bb.max() += cmptMultiply(s*rndGen.vector01(), span);