From 268d6d0ec1ded2b4f08d09ddbd4a140d0c0b75fa Mon Sep 17 00:00:00 2001
From: sebastianfreitag <freitag@vr.rwth-aachen.de>
Date: Wed, 21 Dec 2016 10:54:29 +0100
Subject: [PATCH] defined Vista::RightVector and VistaQuaternion::GetRightDir()

---
 VistaCoreLibs/VistaBase/VistaQuaternion.cpp | 7 ++++++-
 VistaCoreLibs/VistaBase/VistaQuaternion.h   | 1 +
 VistaCoreLibs/VistaBase/VistaVector3D.h     | 1 +
 3 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/VistaCoreLibs/VistaBase/VistaQuaternion.cpp b/VistaCoreLibs/VistaBase/VistaQuaternion.cpp
index 8f19f2af1..513da33b7 100644
--- a/VistaCoreLibs/VistaBase/VistaQuaternion.cpp
+++ b/VistaCoreLibs/VistaBase/VistaQuaternion.cpp
@@ -318,7 +318,12 @@ VistaVector3D VistaQuaternion::GetUpDir() const
 	return Rotate( Vista::UpVector );
 }
 
-void VistaQuaternion::SetFromViewAndUpDir( const VistaVector3D& v3View, const VistaVector3D& v3Up )
+VistaVector3D VistaQuaternion::GetRightDir() const
+{
+	return Rotate( Vista::RightVector );
+}
+
+void VistaQuaternion::SetFromViewAndUpDir(const VistaVector3D& v3View, const VistaVector3D& v3Up)
 {
 	VistaVector3D v3ZAxis = -v3View;
 	VistaVector3D v3XAxis = v3Up.Cross( v3ZAxis );
diff --git a/VistaCoreLibs/VistaBase/VistaQuaternion.h b/VistaCoreLibs/VistaBase/VistaQuaternion.h
index a80450b95..f49bf9017 100644
--- a/VistaCoreLibs/VistaBase/VistaQuaternion.h
+++ b/VistaCoreLibs/VistaBase/VistaQuaternion.h
@@ -135,6 +135,7 @@ public:
 
 	VistaVector3D GetViewDir() const; // this.Rotate( -Z-dir )
 	VistaVector3D GetUpDir() const; // this.Rotate( y-dir )
+	VistaVector3D GetRightDir() const; // this.Rotate( x-dir )
 	void SetFromViewAndUpDir( const VistaVector3D& v3View, const VistaVector3D& v3Up );
 	
 	const VistaQuaternion& operator+=( const VistaQuaternion& v3Other );
diff --git a/VistaCoreLibs/VistaBase/VistaVector3D.h b/VistaCoreLibs/VistaBase/VistaVector3D.h
index 419339c34..856dd6682 100644
--- a/VistaCoreLibs/VistaBase/VistaVector3D.h
+++ b/VistaCoreLibs/VistaBase/VistaVector3D.h
@@ -118,6 +118,7 @@ namespace Vista
 {
 	const VistaVector3D ViewVector = VistaVector3D( 0, 0, -1, 0 );
 	const VistaVector3D UpVector = VistaVector3D( 0, 1, 0, 0 );
+	const VistaVector3D RightVector = VistaVector3D(1, 0, 0, 0);
 	const VistaVector3D ZeroVector = VistaVector3D( 0, 0, 0, 0 );
 	const VistaVector3D XAxis = VistaVector3D( 1, 0, 0, 0 );
 	const VistaVector3D YAxis = VistaVector3D( 0, 1, 0, 0 );
-- 
GitLab