File coor3d.hpp
This file contains definitions for coordinate vector types for different coordinate systems.
- Author
Benjamin Lindner ben@benlabs.net
- Version
See VERSION in CMakeLists.txt
- Copyright
GNU General Public License
Typedefs
-
using cartrect = std::pair<CartesianCoor3D, CartesianCoor3D>
Functions
-
inline float sign(float a, float b)
-
CartesianCoor3D operator*(coor2_t lambda, const CartesianCoor3D &that)
-
CartesianCoor3D operator*(const CartesianCoor3D &that, coor2_t lambda)
-
CartesianCoor3D operator/(const CartesianCoor3D &that, coor2_t lambda)
-
CartesianCoor3D rotate(CartesianCoor3D, std::string axis, coor2_t rad)
-
class CartesianCoor3D
- #include <coor3d.hpp>
Type class which represents coordinates in cartesian space.
Allows transformation into other coordinate representations and implements some basic linear algebra.
Public Functions
-
inline CartesianCoor3D()
-
CartesianCoor3D(CylinderCoor3D cc)
-
CartesianCoor3D(SphericalCoor3D cc)
-
CartesianCoor3D(const CartesianCoor3D &that) = default
-
CartesianCoor3D(CartesianCoor3D &&that) = default
-
CartesianCoor3D &operator=(CartesianCoor3D &&that) = default
-
CartesianCoor3D &operator=(const CartesianCoor3D &that)
-
CartesianCoor3D operator-(const CartesianCoor3D &that)
-
CartesianCoor3D operator+(const CartesianCoor3D &that)
-
CartesianCoor3D cross_product(const CartesianCoor3D &that)
-
coor2_t operator*(const CartesianCoor3D &that)
-
bool operator<(const CartesianCoor3D &that) const
-
~CartesianCoor3D() = default
Protected Functions
Friends
- friend class boost::serialization::access
-
friend std::ostream &operator<<(std::ostream &os, const CartesianCoor3D &cc)
-
inline CartesianCoor3D()
-
template<>
struct formatter<CartesianCoor3D> - #include <coor3d.hpp>
Public Functions
-
template<typename FormatContext>
inline auto format(const CartesianCoor3D &input, FormatContext &ctx) -> decltype(ctx.out())
-
template<typename FormatContext>
-
class CylinderCoor3D
- #include <coor3d.hpp>
Type class which represents coordinates in cylinder space.
Allows transformation into other coordinate representations and implements some basic linear algebra. Cylinder coords have a range:
r >= 0
0 <= phi < 2 M_PI
Public Functions
-
inline CylinderCoor3D()
-
explicit CylinderCoor3D(CartesianCoor3D cc)
-
explicit CylinderCoor3D(SphericalCoor3D cc)
-
CylinderCoor3D &operator=(const CylinderCoor3D &that)
-
CylinderCoor3D operator-(const CylinderCoor3D &that)
-
~CylinderCoor3D() = default
Friends
-
friend std::ostream &operator<<(std::ostream &os, const CylinderCoor3D &cc)
-
class SphericalCoor3D
- #include <coor3d.hpp>
Type class which represents coordinates in spherical space.
Allows transformation into other coordinate representations and implements some basic linear algebra.
Spherical coords have a range:
r >= 0
0 <= phi < 2 M_PI
0 <= theta < M_PI
Public Functions
-
SphericalCoor3D() = default
-
SphericalCoor3D(CartesianCoor3D cc)
-
SphericalCoor3D(CylinderCoor3D cc)
-
SphericalCoor3D &operator=(const SphericalCoor3D &that)
-
SphericalCoor3D operator-(const SphericalCoor3D &that)
-
~SphericalCoor3D() = default
Friends
-
friend std::ostream &operator<<(std::ostream &os, const SphericalCoor3D &cc)
-
class CartesianVectorBase
- #include <coor3d.hpp>
Type class which represents a vector-space basis (3 orthonormal vectors) for cartesian coordinates. Can be constructed out of thin air or from partial vectors.
Public Functions
-
CartesianVectorBase() = default
-
explicit CartesianVectorBase(CartesianCoor3D axis)
-
inline auto get_base() const
-
CartesianCoor3D &operator[](size_t index)
-
CartesianCoor3D project(CartesianCoor3D vec)
Private Members
-
std::array<CartesianCoor3D, 3> base_
-
CartesianVectorBase() = default
-
class ImagNum
- #include <coor3d.hpp>
Protected Functions