103 inline double phi()
const {
double f=
module();
return f==0.0?0.0:asin(
vec[2]/f);};
108 {
double f =
module()==0.0?0.0:atan2(
vec[1],
vec[0]);
return f<0.0?f+2.0*M_PI:f;};
342 return s <<
"(" << v.
vec[0] <<
", " << v.
vec[1] <<
", " << v.
vec[2] <<
")";
Sg3dVector operator%(const Sg3dVector &v1, const Sg3dVector &v2)
Sg3dVector operator-(const Sg3dVector &v)
std::ostream & operator<<(std::ostream &s, const Sg3dVector &v)
Sg3dVector operator+(const Sg3dVector &v1, const Sg3dVector &v2)
Sg3dVector operator*(const Sg3dVector &v, double d)
Sg3dVector operator/(const Sg3dVector &v, double d)
double vec[3]
An array of 3 elements, stores elements of a vector.
friend Sg3dVector operator-(const Sg3dVector &v)
Sg3dVector & operator=(const Sg3dVector &v)
Sg3dVector(const Sg3dVector &V)
double & operator()(DIRECTION i)
friend std::ostream & operator<<(std::ostream &s, const Sg3dVector &v)
bool operator!=(const Sg3dVector &v) const
friend Sg3dVector operator+(const Sg3dVector &v1, const Sg3dVector &v2)
friend Sg3dVector operator%(const Sg3dVector &, const Sg3dVector &)
Sg3dVector & operator+=(const Sg3dVector &v)
friend Sg3dVector operator*(const Sg3dVector &, double)
Sg3dVector(double v1, double v2, double v3)
bool operator==(const Sg3dVector &v) const
Sg3dVector & operator-=(const Sg3dVector &v)
friend Sg3dVector operator/(const Sg3dVector &, double)
Sg3dVector & operator*=(double d)
Sg3dVector & operator/=(double d)
double at(DIRECTION i) const