35 #define M_PI 3.14159265358979323846 52 for (
int i = 0; i < 3; i++ )
53 m_loc[ i ] = loc[ i ];
56 SampleLoc(
double loc0,
double loc1,
double loc2 )
63 double operator[](
int ind )
const 72 for (
int i = 0; i < 3; i++ )
73 tmploc.m_loc[ i ] = m_loc[ i ] + other.m_loc[ i ];
98 for (
int i = 0; i < 9; i++ )
99 m_rot[ i ] = rot[ i ];
102 double operator[](
int ind )
const 111 for (
int i = 0; i < 3; i++ )
113 for (
int j = 0; j < 3; j++ )
116 for (
int k = 0; k < 3; k++ )
117 t += m_rot[ i + k * 3 ] * other.m_rot[ k + j * 3 ];
119 tmprot.m_rot[ i + j * 3 ] = t;
130 for (
int i = 0; i < 3; i++ )
133 for (
int k = 0; k < 3; k++ )
134 t += m_rot[ i + k * 3 ] * other.m_loc[ k ];
136 tmploc.m_loc[ i ] = t;
146 double cosang = cos( ang * M_PI / 180 );
147 double sinang = sin( ang * M_PI / 180 );
149 tmprot.m_rot[ 0 + 0 * 3 ] = tmprot.m_rot[ 2 + 2 * 3 ] = cosang;
150 tmprot.m_rot[ 2 + 0 * 3 ] = -sinang;
151 tmprot.m_rot[ 0 + 2 * 3 ] = sinang;
152 tmprot.m_rot[ 1 + 1 * 3 ] = 1.0;
153 tmprot.m_rot[ 0 + 1 * 3 ] = tmprot.m_rot[ 1 + 0 * 3 ] = tmprot.m_rot[ 2 + 1 * 3 ] = tmprot.m_rot[ 1 + 2 * 3 ] = 0.0;
167 std::ostream& operator<<( std::ostream& os,
const SampleLoc& loc )
169 os <<
"loc " << loc[ 0 ] <<
" " << loc[ 1 ] <<
" " << loc[ 2 ];
177 std::ostream& operator<<( std::ostream& os,
const SampleRot& rot )
179 os <<
"rot " << rot[ 0 ] <<
" " << rot[ 1 ] <<
" " << rot[ 2 ] <<
" " << rot[ 3 ] <<
" " << rot[ 4 ] <<
" " 180 << rot[ 5 ] <<
" " << rot[ 6 ] <<
" " << rot[ 7 ] <<
" " << rot[ 8 ];
Minimum class for a rotation.
Minimum class for a position.