pbpt
Loading...
Searching...
No Matches
vector.hpp File Reference

Defines a generic, N-dimensional, constexpr-friendly vector class. More...

#include <algorithm>
#include <array>
#include <concepts>
#include <stdexcept>
#include <type_traits>
#include <iostream>
#include <functional>
#include <vector>
#include "global.hpp"
#include "function.hpp"

Go to the source code of this file.

Classes

class  pbpt::math::Vector< T, N >
 A template class for N-dimensional mathematical vectors. More...
class  pbpt::math::Normal< T, N >

Namespaces

namespace  pbpt::math
 The namespace for math library implementation.

Typedefs

using pbpt::math::Vec2 = Vector<Float, 2>
 A 2-dimensional vector of type Float.
using pbpt::math::Vec3 = Vector<Float, 3>
 A 3-dimensional vector of type Float.
using pbpt::math::Vec4 = Vector<Float, 4>
 A 4-dimensional vector of type Float.
using pbpt::math::Normal2 = Normal<Float, 2>
 A 2-dimensional vector of type Float.
using pbpt::math::Normal3 = Normal<Float, 3>
 A 3-dimensional vector of type Float.
using pbpt::math::Normal4 = Normal<Float, 4>
 A 4-dimensional vector of type Float.

Functions

template<typename T, int N>
constexpr std::vector< Vector< T, N > > pbpt::math::get_orthogonal_bases (const Vector< T, N > &base)
 Returns orthogonal bases for a given vector.
template<typename T>
constexpr std::vector< Vector< T, 2 > > pbpt::math::get_orthogonal_bases (const Vector< T, 2 > &base)
 Returns orthogonal bases for a given vector when N == 2.
template<typename T>
constexpr std::vector< Vector< T, 3 > > pbpt::math::get_orthogonal_bases (const Vector< T, 3 > &base)
 Returns orthogonal bases for a given vector when N == 3.

Detailed Description

Defines a generic, N-dimensional, constexpr-friendly vector class.