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