1#ifndef SCIFIR_UNITS_COORDINATES_COORDINATES_1D_HPP_INCLUDED
2#define SCIFIR_UNITS_COORDINATES_COORDINATES_1D_HPP_INCLUDED
4#include "../units/base_units.hpp"
5#include "../derived_units/physics_units.hpp"
6#include "../util/types.hpp"
16 template<
typename T = length>
45 x = std::move(x_coordinates.x);
58 new_coordinates.
move(coordinates.
x);
59 return new_coordinates;
74 return T(std::abs(
x.get_value()),
x.get_dimensions());
80 out <<
"(" <<
x <<
")";
89 if (init_coordinates_1d.front() ==
'(')
91 init_coordinates_1d.erase(0,1);
93 if (init_coordinates_1d.back() ==
')')
95 init_coordinates_1d.erase(init_coordinates_1d.size()-1,1);
130 x = std::move(x_coordinates.x);
152 return float(std::abs(
x));
167 if (init_coordinates_1d.front() ==
'(')
169 init_coordinates_1d.erase(0,1);
171 if (init_coordinates_1d.back() ==
')')
173 init_coordinates_1d.erase(init_coordinates_1d.size()-1,1);
175 if (init_coordinates_1d !=
"")
177 x = stof(init_coordinates_1d);
188 string to_string(
const coordinates_1d<float>& x);
190 template<
typename T,
typename U>
196 float distance(
const coordinates_1d<float>& x,
const coordinates_1d<float>& y);
199template<
typename T,
typename U>
212template<
typename T,
typename U>
228 return !(x == init_coordinates_1d);
241 return !(init_coordinates_1d == x);
253 return x + to_string(y);
259 return to_string(x) + y;
265 return os << to_string(x);
coordinates_1d(float new_x)
coordinates_1d(const string &init_coordinates_1d)
coordinates_1d(coordinates_1d< float > &&x_coordinates)
string display_cartesian() const
void set_position(float new_x)
coordinates_1d(const coordinates_1d< float > &x_coordinates)
float distance_to_origin() const
void initialize_from_string(string init_coordinates_1d)
coordinates_1d(const scalar_unit &new_x)
coordinates_1d(coordinates_1d< T > &&x_coordinates)
coordinates_1d< T > & operator=(const coordinates_1d< T > &x_coordinates)
static coordinates_1d< T > origin(const coordinates_1d< T > &origin, const coordinates_1d< T > &coordinates)
string display_cartesian() const
coordinates_1d(const string &init_coordinates_1d)
void initialize_from_string(string init_coordinates_1d)
coordinates_1d(const coordinates_1d< T > &x_coordinates)
void set_position(const scalar_unit &new_x)
void move(const scalar_unit &x_value)
T distance_to_origin() const
Class that allows to create scalar units, which are composed of a value (as a float) and dimensions....
bool operator==(const scifir::coordinates_1d< T > &x, const scifir::coordinates_1d< U > &y)
istream & operator>>(istream &is, scifir::coordinates_1d< T > &x)
string operator+(const string &x, const scifir::coordinates_1d< T > &y)
ostream & operator<<(ostream &os, const scifir::coordinates_1d< T > &x)
void operator+=(string &x, const scifir::coordinates_1d< T > &y)
bool operator!=(const scifir::coordinates_1d< T > &x, const scifir::coordinates_1d< U > &y)
The namespace scifir contains all scifir-units, excepting the string literals, which are outside.
scalar_unit pow(const scalar_unit &x, int exponent)
Exponentiates a scalar_unit to some numeric type, the dimensions are also exponentiated.
string to_string(const aid &x)
Creates a string representation of aid, it's for aid equivalent to the display() function of aid.
float distance(const coordinates_1d< float > &x, const coordinates_1d< float > &y)
string display_float(const float &value, int number_of_decimals)
angle sqrt(const angle &x)
Calculates the square root of the angle x and returns that new angle.