14 #include "msdevstudio/MSconfig.h"
35 using namespace hippodraw;
40 m_plot_symbol( symbol )
56 m_x_flag( point_rep.m_x_flag ),
57 m_y_flag( point_rep.m_y_flag ),
58 m_plot_symbol( point_rep.m_plot_symbol )
140 double alpha,
double beta,
double gamma,
bool negative )
142 if ( negative ==
false ) lat-=180.0;
145 lat = M_PI * lat / 180.0;
146 lon = M_PI * lon / 180.0;
147 alpha = M_PI * alpha / 180.0;
148 beta = M_PI * beta / 180.0;
149 gamma = M_PI * gamma / 180.0;
153 double x = cos( lat ) * cos( lon );
154 double y = sin( lat ) * cos( lon );
155 double z = sin( lon );
159 double ry = y * cos( alpha ) + z * sin( alpha );
160 double rz = - y * sin( alpha ) + z * cos( alpha );
162 x = rx; y = ry; z = rz;
165 rx = x * cos( beta ) - z * sin( beta );
167 rz = x * sin( beta ) + z * cos( beta );
169 x = rx; y = ry; z = rz;
172 rx = x * cos( gamma ) + y * sin( gamma );
173 ry = - x * sin( gamma ) + y * cos( gamma );
176 x = rx; y = ry; z = rz;
179 lon = ( 180.0 / M_PI ) * asin( z );
180 lat = ( 180.0 / M_PI ) * atan2( y, x );
182 if (negative==
false) lat+=180.0;
186 namespace dp = hippodraw::DataPoint2DTuple;
196 unsigned int size = ntuple -> rows ();
197 if ( size == 0 )
return;
204 for (
unsigned int i = 0; i <
size; i++ ) {
211 tf -> transform (
m_x,
m_y);
228 m_x.reserve ( size );
229 m_y.reserve ( size );
234 if ( tf -> isPeriodic () ) {
251 const vector < double > & row = ntuple -> getRow ( i );
252 double x = row [
dp::X ];
253 double y = row [
dp::Y ];
258 if ( tf -> isPeriodic() )