Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Add overlay object, modify core.sip to include it
git-svn-id: http://svn.osgeo.org/qgis/trunk/qgis@10506 c8812cc2-4d05-0410-92ff-de0c093fc19c
- Loading branch information
Showing
with
58 additions
and 0 deletions.
- +2 −0 python/core/core.sip
- +56 −0 python/core/qgsoverlayobject.sip
@@ -0,0 +1,56 @@ | ||
class CORE_EXPORT QgsOverlayObject: public pal::PalGeometry | ||
{ | ||
%TypeHeaderCode | ||
#include "qgsoverlayobject.h" | ||
%End | ||
public: | ||
QgsOverlayObject( int width = 0, int height = 0, double rotation = 0, QgsGeometry* geometry = 0 ); | ||
virtual ~QgsOverlayObject(); | ||
|
||
//copy constructor and assignment operator necessary because of mGeometry | ||
QgsOverlayObject( const QgsOverlayObject& other ); | ||
QgsOverlayObject& operator=( const QgsOverlayObject& other ); | ||
|
||
|
||
/**Returns the feature geometry in geos format. The calling function does _not_ take | ||
ownership of the generated object*/ | ||
GEOSGeometry* getGeosGeometry(); | ||
/**Feature geometry is released when object is destructed so this function is empty*/ | ||
void releaseGeosGeometry( GEOSGeometry *the_geom ) {} | ||
|
||
//getters | ||
int width() const {return mWidth;} | ||
int height() const {return mHeight;} | ||
double rotation() const {return mRotation;} | ||
QgsGeometry* geometry() {return mGeometry;} | ||
const QgsGeometry* geometry() const {return mGeometry;} | ||
QgsPoint position() const; | ||
QList<QgsPoint> positions() const {return mPositions;} | ||
|
||
//setters | ||
void setHeight( int height ) {mHeight = height;} | ||
void setWidth( int width ) {mWidth = width;} | ||
void setRotation( double rotation ) {mRotation = rotation;} | ||
/**Set geometry. This class takes ownership of the object*/ | ||
void setGeometry( QgsGeometry* g ); | ||
/**Adds a position in map coordinates*/ | ||
void addPosition( const QgsPoint& position ); | ||
|
||
|
||
private: | ||
|
||
/**Width of the bounding box in pixels*/ | ||
int mWidth; | ||
/**Height of the bounding box in pixels*/ | ||
int mHeight; | ||
/**Position of the object in map coordinates. Note that it is possible that an object | ||
has several positions, e.g. a multiobject or an object that is split into multiple parts | ||
by the edge of the view extent*/ | ||
QList<QgsPoint> mPositions; | ||
/**Rotation of the object*/ | ||
double mRotation; | ||
/**Copy of the feature geometry. A copy is necessary because in QGIS geometries are deleted | ||
after drawing*/ | ||
QgsGeometry* mGeometry; | ||
|
||
}; |