37 #ifndef AIMS_MATH_TRIEDER_H 38 #define AIMS_MATH_TRIEDER_H 69 const Point3df& operator [](
int i )
const {
return _dir[ i ]; }
74 Point3df& operator [](
int i ) {
return _dir[ i ]; }
76 float dot(
const Trieder& other)
const;
109 _dir[ 0 ].item(0) = cos( angle.
item(1) ) * cos( angle.
item(2) );
110 _dir[ 0 ].item(1) = cos( angle.
item(1) ) * sin( angle.
item(2) );
111 _dir[ 0 ].item(2) = sin( angle.
item(1) );
113 _dir[ 1 ].item(0) = - sin( angle.
item(0) ) * sin( angle.
item(1) )
114 * cos( angle.
item(2) )
115 - cos( angle.
item(0) ) * sin( angle.
item(2) );
116 _dir[ 1 ].item(1) = - sin( angle.
item(0) ) * sin( angle.
item(1) )
117 * sin( angle.
item(2) )
118 + cos( angle.
item(0) ) * cos( angle.
item(2) );
119 _dir[ 1 ].item(2) = sin( angle.
item(0) ) * cos( angle.
item(1) );
121 _dir[ 2 ].item(0) = - cos( angle.
item(0) ) * sin( angle.
item(1) )
122 * cos( angle.
item(2) )
123 + sin( angle.
item(0) ) * sin( angle.
item(2) );
124 _dir[ 2 ].item(1) = - cos( angle.
item(0) ) * sin( angle.
item(1) )
125 * sin( angle.
item(2) )
126 - sin( angle.
item(0) ) * cos( angle.
item(2) );
127 _dir[ 2 ].item(2) = cos( angle.
item(0) ) * cos( angle.
item(1) );
134 return _dir[ 0 ].dot( other.
dirX() ) +
135 _dir[ 1 ].dot( other.
dirY() ) +
136 _dir[ 2 ].dot( other.
dirZ() ) ;
143 return thing1.
dirX() == thing2.
dirX() &&
152 os <<
"{dirX=" << thing.
dirX()
153 <<
",dirY=" << thing.
dirY()
154 <<
",dirZ=" << thing.
dirZ()
AIMSDATA_API Point3df AimsRotationAngle(const Trieder &trieder)
AIMSDATA_API int operator==(const Trieder &thing1, const Trieder &thing2)
AIMSDATA_API std::ostream & operator<<(std::ostream &os, const Trieder &thing)
float dot(const Trieder &other) const
const Point3df & dirZ() const
const Point3df & dirX() const
const Point3df & dirY() const
Trieder(const Point3df &dirX, const Point3df &dirY, const Point3df &dirZ)
const T & item(int d) const