From 08e09fb7c2a0cb75d10069a57c4afd12e1e4cf82 Mon Sep 17 00:00:00 2001 From: Oliver Sander <sander@igpm.rwth-aachen.de> Date: Mon, 24 Oct 2011 08:41:36 +0000 Subject: [PATCH] specializations for RealTuple<3> and RigidBodyMotion<3> [[Imported from SVN: r8006]] --- test/valuefactory.hh | 59 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/test/valuefactory.hh b/test/valuefactory.hh index 5a6c9e82..7f536063 100644 --- a/test/valuefactory.hh +++ b/test/valuefactory.hh @@ -42,6 +42,37 @@ public: }; +/** \brief A class that creates sets of values of various types, to be used in unit tests + * + * This is the specialization for RealTuple<3> + */ +template <> +class ValueFactory<RealTuple<3> > +{ +public: + static void get(std::vector<RealTuple<3> >& values) { + + int nTestPoints = 10; + double testPoints[10][3] = {{1,0,0}, {0,1,0}, {-0.838114,0.356751,-0.412667}, + {-0.490946,-0.306456,0.81551},{-0.944506,0.123687,-0.304319}, + {-0.6,0.1,-0.2},{0.45,0.12,0.517}, + {-0.1,0.3,-0.1},{-0.444506,0.123687,0.104319},{-0.7,-0.123687,-0.304319}}; + + values.resize(nTestPoints); + + // Set up elements of S^1 + for (int i=0; i<nTestPoints; i++) { + + Dune::FieldVector<double,3> w; + for (int j=0; j<3; j++) + w[j] = testPoints[i][j]; + values[i] = RealTuple<3>(w); + + } + + } + +}; /** \brief A class that creates sets of values of various types, to be used in unit tests * @@ -165,5 +196,33 @@ public: }; +/** \brief A class that creates sets of values of various types, to be used in unit tests + * + * This is the specialization for RigidBodyMotion<3> + */ +template <> +class ValueFactory<RigidBodyMotion<3> > +{ +public: + static void get(std::vector<RigidBodyMotion<3> >& values) { + + std::vector<RealTuple<3> > rValues; + ValueFactory<RealTuple<3> >::get(rValues); + + std::vector<Rotation<3,double> > qValues; + ValueFactory<Rotation<3,double> >::get(qValues); + + int nTestPoints = std::min(rValues.size(), qValues.size()); + + values.resize(nTestPoints); + + // Set up elements of S^1 + for (int i=0; i<nTestPoints; i++) + values[i] = RigidBodyMotion<3>(rValues[i].globalCoordinates(),qValues[i]); + + } + +}; + #endif \ No newline at end of file -- GitLab