Skip to content

Commit

Permalink
Add overlay object, modify core.sip to include it
Browse files Browse the repository at this point in the history
git-svn-id: http://svn.osgeo.org/qgis/trunk/qgis@10506 c8812cc2-4d05-0410-92ff-de0c093fc19c
  • Loading branch information
mhugent committed Apr 8, 2009
1 parent af9111a commit e0cdae2
Show file tree
Hide file tree
Showing 2 changed files with 58 additions and 0 deletions.
2 changes: 2 additions & 0 deletions python/core/core.sip
Expand Up @@ -42,6 +42,7 @@
%Include qgsmaptopixel.sip
%Include qgsmarkercatalogue.sip
%Include qgsmessageoutput.sip
%Include qgsoverlayobject.sip
%Include qgspoint.sip
%Include qgsproject.sip
%Include qgsprovidermetadata.sip
Expand Down Expand Up @@ -69,4 +70,5 @@
%Include qgsvectordataprovider.sip
%Include qgsvectorfilewriter.sip
%Include qgsvectorlayer.sip
%Include qgsvectoroverlay.sip

56 changes: 56 additions & 0 deletions 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;

};

0 comments on commit e0cdae2

Please sign in to comment.