Firefly 3.1.0
Standalone library for vector calculations
Loading...
Searching...
No Matches
utilities.hpp File Reference
#include "firefly/vector.hpp"

Go to the source code of this file.

Namespaces

namespace  firefly
 
namespace  firefly::utilities
 
namespace  firefly::utilities::vector
 

Functions

template<vector_type T, vector_type U, std::size_t Length>
constexpr auto firefly::utilities::vector::angle_between (firefly::vector< T, Length > const &v1, firefly::vector< U, Length > const &v2, double delta=1e-6)
 Calculates the angle between two vectors in radians.
 
template<vector_type T, vector_type U, std::size_t Length>
bool firefly::utilities::vector::are_anti_parallel (firefly::vector< T, Length > const &v1, firefly::vector< U, Length > const &v2)
 Checks if two vectors are anti-parallel.
 
template<vector_type T, vector_type U, std::size_t Length>
bool firefly::utilities::vector::are_parallel (firefly::vector< T, Length > const &v1, firefly::vector< U, Length > const &v2)
 Checks if two vectors are parallel.
 
template<vector_type T, vector_type U, std::size_t Length>
bool firefly::utilities::vector::are_orthogonal (firefly::vector< T, Length > const &v1, firefly::vector< U, Length > const &v2, double delta=1e-6)
 Checks if two- vectors are orthogonal.
 
template<vector_type T, vector_type U, std::size_t Length>
constexpr auto firefly::utilities::vector::area_parallelogram (firefly::vector< T, Length > const &v1, firefly::vector< U, Length > const &v2)
 Computes the area of the parallelogram formed by two vectors.
 
template<vector_type T, vector_type U, std::size_t Length>
constexpr auto firefly::utilities::vector::area_triangle (firefly::vector< T, Length > const &v1, firefly::vector< U, Length > const &v2)
 Computes the area of the triangle formed by two vectors.
 
template<vector_type T, vector_type U, std::size_t Length>
constexpr auto firefly::utilities::vector::projection (firefly::vector< T, Length > const &source_vector, firefly::vector< U, Length > const &target_vector)
 Projects a source vector onto a target vector.
 
template<vector_type T, vector_type U, std::size_t Length>
constexpr auto firefly::utilities::vector::rejection (firefly::vector< T, Length > const &source_vector, firefly::vector< U, Length > const &target_vector)
 Rejects a source vector from a target vector.
 
template<vector_type T, vector_type U, std::size_t Length>
constexpr auto firefly::utilities::vector::distance (firefly::vector< T, Length > const &vector_a, firefly::vector< U, Length > const &vector_b)
 Computes the Euclidean distance between two vectors.
 
template<vector_type T, vector_type U, std::size_t Length>
constexpr auto firefly::utilities::vector::reflection (firefly::vector< T, Length > const &source_vector, firefly::vector< U, Length > const &target_vector)
 Reflects a source vector across a target vector.
 
template<vector_type T>
constexpr auto firefly::utilities::vector::rotate_2d (firefly::vector< T, 2 > const &vector, double angle_rad)
 Rotates a 2D vector by a given angle (in radians).
 
template<vector_type T, vector_type U, std::size_t Length>
constexpr auto firefly::utilities::vector::scalar_projection (firefly::vector< T, Length > const &source_vector, firefly::vector< U, Length > const &target_vector)
 Computes the scalar projection of a source vector onto a target vector.
 
template<vector_type T, vector_type U, std::size_t Length>
constexpr auto firefly::utilities::vector::lerp (firefly::vector< T, Length > const &vector_a, firefly::vector< U, Length > const &vector_b, double t)
 Performs linear interpolation (Lerp) between two vectors.