From ef2d4a6a54373e5263485c802a9136f3f8574e45 Mon Sep 17 00:00:00 2001
From: Tristan Carrier Baudouin <tristan.carrier@uclouvain.be>
Date: Tue, 5 Mar 2013 13:20:09 +0000
Subject: [PATCH] hexahedra

---
 Mesh/directions3D.cpp | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/Mesh/directions3D.cpp b/Mesh/directions3D.cpp
index a386b3e84b..ffab31c090 100644
--- a/Mesh/directions3D.cpp
+++ b/Mesh/directions3D.cpp
@@ -179,6 +179,7 @@ bool Frame_field::improved_translate(GFace* gf,MVertex* vertex,SVector3& v1,SVec
   SPoint2 point;
   SVector3 s1,s2;
   SVector3 normal;
+  SVector3 basis_u,basis_v;
   Pair<SVector3,SVector3> derivatives;	
 	
   reparamMeshVertexOnFace(vertex,gf,point);
@@ -192,7 +193,12 @@ bool Frame_field::improved_translate(GFace* gf,MVertex* vertex,SVector3& v1,SVec
   s2 = derivatives.second();
   normal = crossprod(s1,s2);
 	
-  v1 = s1*cos(angle) + s2*sin(angle);
+  basis_u = s1;
+  basis_u.normalize();
+  basis_v = crossprod(normal,basis_u);
+  basis_v.normalize();
+		
+  v1 = basis_u*cos(angle) + basis_v*sin(angle);
   v2 = crossprod(v1,normal);
 	
   return 1;
-- 
GitLab