• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdeedu API Reference
  • KDE Home
  • Contact Us
 

marble

  • sources
  • kde-4.12
  • kdeedu
  • marble
  • tools
  • mapreproject
SimpleMapImage.cpp
Go to the documentation of this file.
1 #include "SimpleMapImage.h"
2 
3 #include "InterpolationMethod.h"
4 
5 #include <cmath>
6 
7 SimpleMapImage::SimpleMapImage( QString const & fileName )
8  : m_image( fileName ),
9  m_mapWidthPixel( m_image.width() ),
10  m_mapHeightPixel( m_image.height() )
11 {
12  if ( m_image.isNull() )
13  qFatal( "Invalid image '%s'", fileName.toStdString().c_str() );
14 }
15 
16 QRgb SimpleMapImage::pixel( double const lonRad, double const latRad )
17 {
18  double const x = lonRadToPixelX( lonRad );
19  double const y = latRadToPixelY( latRad );
20  return m_interpolationMethod->interpolate( x, y );
21 }
22 
23 QRgb SimpleMapImage::pixel( int const x, int const y )
24 {
25  return m_image.pixel( x, m_mapHeightPixel - y - 1 );
26 }
27 
28 void SimpleMapImage::setInterpolationMethod( InterpolationMethod * const interpolationMethod )
29 {
30  m_interpolationMethod = interpolationMethod;
31  m_interpolationMethod->setMapImage( this );
32 }
33 
34 inline double SimpleMapImage::lonRadToPixelX( double const lonRad ) const
35 {
36  return static_cast<double>( m_mapWidthPixel ) / ( 2.0 * M_PI ) * lonRad
37  + 0.5 * static_cast<double>( m_mapWidthPixel );
38 }
39 
40 inline double SimpleMapImage::latRadToPixelY( double const latRad ) const
41 {
42  return static_cast<double>( m_mapHeightPixel ) / M_PI * latRad
43  + 0.5 * static_cast<double>( m_mapHeightPixel );
44 }
SimpleMapImage.h
InterpolationMethod.h
SimpleMapImage::pixel
virtual QRgb pixel(double const lonRad, double const latRad)
Definition: SimpleMapImage.cpp:16
InterpolationMethod
Definition: InterpolationMethod.h:8
SimpleMapImage::setInterpolationMethod
virtual void setInterpolationMethod(InterpolationMethod *const interpolationMethod)
Definition: SimpleMapImage.cpp:28
InterpolationMethod::interpolate
virtual QRgb interpolate(double const x, double const y)=0
InterpolationMethod::setMapImage
void setMapImage(ReadOnlyMapImage *const mapImage)
Definition: InterpolationMethod.h:22
M_PI
#define M_PI
Definition: GeoDataCoordinates.h:26
SimpleMapImage::SimpleMapImage
SimpleMapImage(QString const &fileName)
Definition: SimpleMapImage.cpp:7
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 22:38:52 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

marble

Skip menu "marble"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Related Pages

kdeedu API Reference

Skip menu "kdeedu API Reference"
  • Analitza
  •     lib
  • kalgebra
  • kalzium
  •   libscience
  • kanagram
  • kig
  •   lib
  • klettres
  • kstars
  • libkdeedu
  •   keduvocdocument
  • marble
  • parley
  • rocs
  •   App
  •   RocsCore
  •   VisualEditor
  •   stepcore

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal