From 90454e3381d66236a45d2584ed9b05f20bd792eb Mon Sep 17 00:00:00 2001
From: Oliver Sander <sander@igpm.rwth-aachen.de>
Date: Wed, 10 Feb 2010 21:10:59 +0000
Subject: [PATCH] Unit vectors in R^n, or, equivalently, members of S^{n-1}

[[Imported from SVN: r5524]]
---
 src/unitvector.hh | 33 +++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)
 create mode 100644 src/unitvector.hh

diff --git a/src/unitvector.hh b/src/unitvector.hh
new file mode 100644
index 00000000..e2fbdf17
--- /dev/null
+++ b/src/unitvector.hh
@@ -0,0 +1,33 @@
+#ifndef UNIT_VECTOR_HH
+#define UNIT_VECTOR_HH
+
+#include <dune/common/fvector.hh>
+
+template <int dim>
+class UnitVector
+{
+public:
+
+    typedef Dune::FieldVector<double,dim> TangentVector;
+    typedef Dune::FieldVector<double,dim> EmbeddedTangentVector;
+
+    UnitVector<dim>& operator=(const Dune::FieldVector<double,dim>& vector)
+    {
+        data_ = vector;
+        data_ /= data_.two_norm();
+        return *this;
+    }
+
+    /** \brief Write LocalKey object to output stream */
+    friend std::ostream& operator<< (std::ostream& s, const UnitVector& unitVector)
+    {
+        return s << unitVector.data_;
+    }
+
+
+private:
+
+    Dune::FieldVector<double,dim> data_;
+};
+
+#endif
-- 
GitLab