From 0004a0ef0de23970a3330557e7e54fc367680f57 Mon Sep 17 00:00:00 2001 From: Timo Koch <timo.koch@iws.uni-stuttgart.de> Date: Fri, 12 Jun 2020 10:54:50 +0200 Subject: [PATCH] [test] Make transformation more natural: first rotate then scale and translate --- test/common/geometry/transformation.hh | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/test/common/geometry/transformation.hh b/test/common/geometry/transformation.hh index a72957687f..97be29c097 100644 --- a/test/common/geometry/transformation.hh +++ b/test/common/geometry/transformation.hh @@ -49,7 +49,6 @@ auto make1DTransformation(const ctype scale, return [=](Dune::FieldVector<ctype, 1> p){ p *= scale; p.axpy(scale, translate); - auto tp = p; return p; }; } @@ -76,12 +75,11 @@ auto make2DTransformation(const ctype scale, const ctype sinAngle = sin(rotationAngle); const ctype cosAngle = cos(rotationAngle); return [=](Dune::FieldVector<ctype, 2> p){ - p *= scale; - p.axpy(scale, translate); auto tp = p; tp[0] = p[0]*cosAngle-p[1]*sinAngle; tp[1] = p[0]*sinAngle+p[1]*cosAngle; - return tp; + tp *= scale; + return tp.axpy(scale, translate); }; } @@ -109,12 +107,12 @@ auto make3DTransformation(const ctype scale, const ctype sinAngle = sin(rotationAngle); const ctype cosAngle = cos(rotationAngle); return [=](Dune::FieldVector<ctype, 3> p){ - p *= scale; - p.axpy(scale, translate); auto tp = p; tp *= cosAngle; tp.axpy(sinAngle, Dumux::crossProduct({rotationAxis}, p)); - return tp.axpy((1.0-cosAngle)*(rotationAxis*p), rotationAxis); + tp.axpy((1.0-cosAngle)*(rotationAxis*p), rotationAxis); + tp *= scale; + return tp.axpy(scale, translate); }; } -- GitLab