diff --git a/CMakeLists.txt b/CMakeLists.txt index 0a2e6ce..d6e15ad 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,6 @@ cmake_minimum_required(VERSION 3.13) # CMake version check project(VectorAlgebra) # Create project "simple_example" set(CMAKE_CXX_STANDARD 14) # Enable c++14 standard +include_directories(include) -add_library(VectorAlgebra STATIC Vector3.cpp Quaternion.cpp) \ No newline at end of file +add_library(VectorAlgebra STATIC "src/Vector3.cpp" "src/Quaternion.cpp") \ No newline at end of file diff --git a/Quaternion.h b/include/Quaternion.h similarity index 96% rename from Quaternion.h rename to include/Quaternion.h index 6dddd1d..41e7141 100644 --- a/Quaternion.h +++ b/include/Quaternion.h @@ -230,6 +230,14 @@ public: /// A pointer to the quaternion for the twist result static void GetSwingTwist(Vector3 axis, Quaternion rotation, Quaternion* swing, Quaternion* twist); + /// + /// Calculate the dot product of two quaternions + /// + /// The first rotation + /// The second rotation + /// + static float Dot(Quaternion rotation1, Quaternion rotation2); + private: float GetLength() const; float GetLengthSquared() const; @@ -238,7 +246,6 @@ private: void ToAxisAngleRad(const Quaternion& q, Vector3* const axis, float* angle); static Quaternion FromEulerRad(Vector3 euler); - static float Dot(Quaternion a, Quaternion b); Vector3 xyz() const; }; diff --git a/Vector3.h b/include/Vector3.h similarity index 100% rename from Vector3.h rename to include/Vector3.h diff --git a/Quaternion.cpp b/src/Quaternion.cpp similarity index 100% rename from Quaternion.cpp rename to src/Quaternion.cpp diff --git a/Vector3.cpp b/src/Vector3.cpp similarity index 100% rename from Vector3.cpp rename to src/Vector3.cpp