/usr/include/qgis/qgsmaptopixel.h is in libqgis-dev 2.8.6+dfsg-1build1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 | /***************************************************************************
qgsmaptopixel.h - description
-------------------
begin : Sat Jun 22 2002
copyright : (C) 2002 by Gary E.Sherman
email : sherman at mrcc.com
***************************************************************************/
/***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
***************************************************************************/
#ifndef QGSMAPTOPIXEL
#define QGSMAPTOPIXEL
#include "qgspoint.h"
#include <QTransform>
#include <vector>
#include <cassert>
class QgsPoint;
class QPoint;
/** \ingroup core
* Perform transforms between map coordinates and device coordinates.
*
* This class can convert device coordinates to map coordinates and vice versa.
*/
class CORE_EXPORT QgsMapToPixel
{
public:
/* Constructor
* @param mapUnitsPerPixel Map units per pixel
* @param height Map canvas height, in pixels
* @param ymin Minimum y value of the map canvas
* @param xmin Minimum x value of the map canvas
* @deprecated in 2.8, use version with all parameters
*/
Q_DECL_DEPRECATED QgsMapToPixel( double mapUnitsPerPixel, double height = 0, double ymin = 0, double xmin = 0 );
/* Constructor
* @param mapUnitsPerPixel Map units per pixel
* @param xc X ordinate of map center, in geographical units
* @param yc Y ordinate of map center, in geographical units
* @param width Output width, in pixels
* @param height Output height, in pixels
* @param degrees clockwise rotation in degrees
* @note added in 2.8
*/
QgsMapToPixel( double mapUnitsPerPixel, double xc, double yc, int width, int height, double rotation );
/*! Constructor
*
* Use setParameters to fill
*/
QgsMapToPixel();
//! destructor
~QgsMapToPixel();
/*! Transform the point from map (world) coordinates to device coordinates
* @param p Point to transform
* @return QgsPoint in device coordinates
*/
QgsPoint transform( const QgsPoint& p ) const;
void transform( QgsPoint* p ) const;
/*! Transform the point specified by x,y from map (world)
* coordinates to device coordinates
* @param x x cordinate o point to transform
* @param y y coordinate of point to transform
* @return QgsPoint in device coordinates
*/
QgsPoint transform( qreal x, qreal y ) const;
/*! Transform device coordinates to map (world) coordinates
* @param x x coordinate of point to be converted to map cooordinates
* @param y y coordinate of point to be converted to map cooordinates
* @return QgsPoint in map coordinates
*/
/* Transform device coordinates to map coordinates. Modifies the
given coordinates in place. Intended as a fast way to do the
transform. */
void transformInPlace( qreal& x, qreal& y ) const;
/* Transform device coordinates to map coordinates. Modifies the
given coordinates in place. Intended as a fast way to do the
transform.
@note not available in python bindings
*/
template <class T>
void transformInPlace( QVector<T>& x, QVector<T>& y ) const
{
assert( x.size() == y.size() );
for ( int i = 0; i < x.size(); ++i )
transformInPlace( x[i], y[i] );
}
QgsPoint toMapCoordinates( int x, int y ) const;
/*! Transform device coordinates to map (world) coordinates */
QgsPoint toMapCoordinatesF( double x, double y ) const;
/*! Transform device coordinates to map (world) coordinates
* @param p Point to be converted to map cooordinates
* @return QgsPoint in map coorndiates
*/
QgsPoint toMapCoordinates( QPoint p ) const;
QgsPoint toMapPoint( qreal x, qreal y ) const;
/*! Set map units per pixel
* @param mapUnitsPerPixel Map units per pixel
*/
void setMapUnitsPerPixel( double mapUnitsPerPixel );
//! Return current map units per pixel
double mapUnitsPerPixel() const;
//! Return current map width in pixels
//! The information is only known if setRotation was used
//! @note added in 2.8
int mapWidth() const;
//! Return current map height in pixels
//! @note added in 2.8
int mapHeight() const;
//! Set map rotation in degrees (clockwise)
//! @param degrees clockwise rotation in degrees
//! @param cx X ordinate of map center in geographical units
//! @param cy Y ordinate of map center in geographical units
//! @note added in 2.8
void setMapRotation( double degrees, double cx, double cy );
//! Return current map rotation in degrees
//! @note added in 2.8
double mapRotation() const;
//! Set maximum y value
// @deprecated in 2.8, use setParameters
// @note this really sets the viewport height, not ymax
Q_DECL_DEPRECATED void setYMaximum( double yMax ) { mHeight = yMax; }
//! Set minimum y value
// @deprecated in 2.8, use setParameters
Q_DECL_DEPRECATED void setYMinimum( double ymin );
//! set minimum x value
// @deprecated in 2.8, use setParameters
Q_DECL_DEPRECATED void setXMinimum( double xmin );
/*! Set parameters for use in transforming coordinates
* @param mapUnitsPerPixel Map units per pixel
* @param xmin Minimum x value
* @param ymin Minimum y value
* @param height Map height, in pixels
* @deprecated in 2.8, use the version with full parameters
*/
Q_DECL_DEPRECATED void setParameters( double mapUnitsPerPixel, double xmin, double ymin, double height );
/*! Set parameters for use in transforming coordinates
* @param mapUnitsPerPixel Map units per pixel
* @param xc X ordinate of map center, in geographical units
* @param yc Y ordinate of map center, in geographical units
* @param width Output width, in pixels
* @param height Output height, in pixels
* @param rotation clockwise rotation in degrees
* @note added in 2.8
*/
void setParameters( double mapUnitsPerPixel, double xc, double yc, int width, int height, double rotation );
//! String representation of the parameters used in the transform
QString showParameters() const;
private:
double mMapUnitsPerPixel;
int mWidth;
int mHeight;
double mRotation;
double xCenter;
double yCenter;
double xMin; // @deprecated in 2.8
double yMin; // @deprecated in 2.8
QTransform mMatrix;
void updateMatrix();
};
#endif // QGSMAPTOPIXEL
|