Move overriden methods from headers to cpp files

Since they can't be inlined anyway
This commit is contained in:
Nyall Dawson 2017-09-19 14:53:02 +10:00
parent f387210e4a
commit 9e61cd63df
32 changed files with 221 additions and 39 deletions

View File

@ -133,6 +133,7 @@ class QgsCircle : QgsEllipse
virtual void setSemiMajorAxis( const double semiMajorAxis ); virtual void setSemiMajorAxis( const double semiMajorAxis );
%Docstring %Docstring
Inherited method. Use setRadius instead. Inherited method. Use setRadius instead.
.. seealso:: radius() .. seealso:: radius()
@ -140,6 +141,7 @@ class QgsCircle : QgsEllipse
%End %End
virtual void setSemiMinorAxis( const double semiMinorAxis ); virtual void setSemiMinorAxis( const double semiMinorAxis );
%Docstring %Docstring
Inherited method. Use setRadius instead. Inherited method. Use setRadius instead.
.. seealso:: radius() .. seealso:: radius()

View File

@ -152,8 +152,10 @@ Adds a geometry and takes ownership. Returns true in case of success.
virtual int ringCount( int part = 0 ) const; virtual int ringCount( int part = 0 ) const;
virtual int partCount() const; virtual int partCount() const;
virtual QgsPoint vertexAt( QgsVertexId id ) const; virtual QgsPoint vertexAt( QgsVertexId id ) const;
virtual bool addZValue( double zValue = 0 ); virtual bool addZValue( double zValue = 0 );
virtual bool addMValue( double mValue = 0 ); virtual bool addMValue( double mValue = 0 );

View File

@ -168,7 +168,9 @@ Closes the line string by appending the first point to the end of the line, if i
virtual QString geometryType() const; virtual QString geometryType() const;
virtual int dimension() const; virtual int dimension() const;
virtual QgsLineString *clone() const /Factory/; virtual QgsLineString *clone() const /Factory/;
virtual void clear(); virtual void clear();
@ -212,6 +214,7 @@ Closes the line string by appending the first point to the end of the line, if i
virtual int numPoints() const; virtual int numPoints() const;
virtual int nCoordinates() const; virtual int nCoordinates() const;
virtual void points( QgsPointSequence &pt /Out/ ) const; virtual void points( QgsPointSequence &pt /Out/ ) const;

View File

@ -21,6 +21,7 @@ class QgsMultiCurve: QgsGeometryCollection
public: public:
QgsMultiCurve(); QgsMultiCurve();
virtual QString geometryType() const; virtual QString geometryType() const;
virtual QgsMultiCurve *clone() const /Factory/; virtual QgsMultiCurve *clone() const /Factory/;
virtual QgsMultiCurve *toCurveType() const /Factory/; virtual QgsMultiCurve *toCurveType() const /Factory/;

View File

@ -21,6 +21,7 @@ class QgsMultiLineString: QgsMultiCurve
public: public:
QgsMultiLineString(); QgsMultiLineString();
virtual QString geometryType() const; virtual QString geometryType() const;
virtual QgsMultiLineString *clone() const /Factory/; virtual QgsMultiLineString *clone() const /Factory/;
@ -52,6 +53,7 @@ Adds a geometry and takes ownership. Returns true in case of success
protected: protected:
virtual bool wktOmitChildType() const; virtual bool wktOmitChildType() const;
}; };
/************************************************************************ /************************************************************************

View File

@ -21,6 +21,7 @@ class QgsMultiPointV2: QgsGeometryCollection
public: public:
QgsMultiPointV2(); QgsMultiPointV2();
virtual QString geometryType() const; virtual QString geometryType() const;
virtual QgsMultiPointV2 *clone() const /Factory/; virtual QgsMultiPointV2 *clone() const /Factory/;
virtual QgsMultiPointV2 *toCurveType() const /Factory/; virtual QgsMultiPointV2 *toCurveType() const /Factory/;
@ -38,6 +39,7 @@ class QgsMultiPointV2: QgsGeometryCollection
virtual int nCoordinates() const; virtual int nCoordinates() const;
virtual bool addGeometry( QgsAbstractGeometry *g /Transfer/ ); virtual bool addGeometry( QgsAbstractGeometry *g /Transfer/ );
%Docstring %Docstring
@ -52,6 +54,7 @@ Adds a geometry and takes ownership. Returns true in case of success
virtual bool wktOmitChildType() const; virtual bool wktOmitChildType() const;
}; };
/************************************************************************ /************************************************************************

View File

@ -21,6 +21,7 @@ class QgsMultiPolygonV2: QgsMultiSurface
public: public:
QgsMultiPolygonV2(); QgsMultiPolygonV2();
virtual QString geometryType() const; virtual QString geometryType() const;
virtual QgsMultiPolygonV2 *clone() const /Factory/; virtual QgsMultiPolygonV2 *clone() const /Factory/;
@ -55,6 +56,7 @@ Adds a geometry and takes ownership. Returns true in case of success
protected: protected:
virtual bool wktOmitChildType() const; virtual bool wktOmitChildType() const;
}; };
/************************************************************************ /************************************************************************

View File

@ -21,6 +21,7 @@ class QgsMultiSurface: QgsGeometryCollection
public: public:
QgsMultiSurface(); QgsMultiSurface();
virtual QString geometryType() const; virtual QString geometryType() const;
virtual QgsMultiSurface *clone() const /Factory/; virtual QgsMultiSurface *clone() const /Factory/;
virtual QgsMultiSurface *toCurveType() const /Factory/; virtual QgsMultiSurface *toCurveType() const /Factory/;

View File

@ -329,9 +329,13 @@ class QgsPoint: QgsAbstractGeometry
%End %End
virtual bool isEmpty() const; virtual bool isEmpty() const;
virtual QgsRectangle boundingBox() const; virtual QgsRectangle boundingBox() const;
virtual QString geometryType() const; virtual QString geometryType() const;
virtual int dimension() const; virtual int dimension() const;
virtual QgsPoint *clone() const /Factory/; virtual QgsPoint *clone() const /Factory/;
virtual void clear(); virtual void clear();
@ -359,20 +363,24 @@ class QgsPoint: QgsAbstractGeometry
virtual QgsCoordinateSequence coordinateSequence() const; virtual QgsCoordinateSequence coordinateSequence() const;
virtual int nCoordinates() const; virtual int nCoordinates() const;
virtual QgsAbstractGeometry *boundary() const /Factory/; virtual QgsAbstractGeometry *boundary() const /Factory/;
virtual bool insertVertex( QgsVertexId position, const QgsPoint &vertex ); virtual bool insertVertex( QgsVertexId position, const QgsPoint &vertex );
virtual bool moveVertex( QgsVertexId position, const QgsPoint &newPos ); virtual bool moveVertex( QgsVertexId position, const QgsPoint &newPos );
virtual bool deleteVertex( QgsVertexId position ); virtual bool deleteVertex( QgsVertexId position );
virtual double closestSegment( const QgsPoint &pt, QgsPoint &segmentPt /Out/, QgsVertexId &vertexAfter /Out/, bool *leftOf /Out/ = 0, double epsilon = 4 * DBL_EPSILON ) const; virtual double closestSegment( const QgsPoint &pt, QgsPoint &segmentPt /Out/, QgsVertexId &vertexAfter /Out/, bool *leftOf /Out/ = 0, double epsilon = 4 * DBL_EPSILON ) const;
virtual bool nextVertex( QgsVertexId &id, QgsPoint &vertex /Out/ ) const; virtual bool nextVertex( QgsVertexId &id, QgsPoint &vertex /Out/ ) const;
virtual double vertexAngle( QgsVertexId vertex ) const; virtual double vertexAngle( QgsVertexId vertex ) const;
%Docstring %Docstring
Angle undefined. Always returns 0.0 Angle undefined. Always returns 0.0
\param vertex the vertex id \param vertex the vertex id
@ -381,9 +389,13 @@ class QgsPoint: QgsAbstractGeometry
%End %End
virtual int vertexCount( int /*part*/ = 0, int /*ring*/ = 0 ) const; virtual int vertexCount( int /*part*/ = 0, int /*ring*/ = 0 ) const;
virtual int ringCount( int /*part*/ = 0 ) const; virtual int ringCount( int /*part*/ = 0 ) const;
virtual int partCount() const; virtual int partCount() const;
virtual QgsPoint vertexAt( QgsVertexId /*id*/ ) const; virtual QgsPoint vertexAt( QgsVertexId /*id*/ ) const;
virtual QgsPoint *toCurveType() const /Factory/; virtual QgsPoint *toCurveType() const /Factory/;

View File

@ -56,6 +56,7 @@ class QgsTriangle : QgsPolygonV2
%End %End
virtual QString geometryType() const; virtual QString geometryType() const;
virtual QgsTriangle *clone() const /Factory/; virtual QgsTriangle *clone() const /Factory/;
virtual void clear(); virtual void clear();

View File

@ -227,6 +227,18 @@ double QgsCircle::perimeter() const
return 2.0 * M_PI * mSemiMajorAxis; return 2.0 * M_PI * mSemiMajorAxis;
} }
void QgsCircle::setSemiMajorAxis( const double semiMajorAxis )
{
mSemiMajorAxis = std::fabs( semiMajorAxis );
mSemiMinorAxis = mSemiMajorAxis;
}
void QgsCircle::setSemiMinorAxis( const double semiMinorAxis )
{
mSemiMajorAxis = std::fabs( semiMinorAxis );
mSemiMinorAxis = mSemiMajorAxis;
}
QVector<QgsPoint> QgsCircle::northQuadrant() const QVector<QgsPoint> QgsCircle::northQuadrant() const
{ {
QVector<QgsPoint> quad; QVector<QgsPoint> quad;

View File

@ -143,21 +143,13 @@ class CORE_EXPORT QgsCircle : public QgsEllipse
* \see radius() * \see radius()
* \see setRadius() * \see setRadius()
*/ */
void setSemiMajorAxis( const double semiMajorAxis ) override void setSemiMajorAxis( const double semiMajorAxis ) override;
{
mSemiMajorAxis = std::fabs( semiMajorAxis );
mSemiMinorAxis = mSemiMajorAxis;
}
/** Inherited method. Use setRadius instead. /** Inherited method. Use setRadius instead.
* \see radius() * \see radius()
* \see setRadius() * \see setRadius()
*/ */
void setSemiMinorAxis( const double semiMinorAxis ) override void setSemiMinorAxis( const double semiMinorAxis ) override;
{
mSemiMajorAxis = std::fabs( semiMinorAxis );
mSemiMinorAxis = mSemiMajorAxis;
}
//! Returns the radius of the circle //! Returns the radius of the circle
double radius() const {return mSemiMajorAxis;} double radius() const {return mSemiMajorAxis;}

View File

@ -49,6 +49,16 @@ bool QgsCompoundCurve::operator!=( const QgsCurve &other ) const
return !operator==( other ); return !operator==( other );
} }
QString QgsCompoundCurve::geometryType() const
{
return QStringLiteral( "CompoundCurve" );
}
int QgsCompoundCurve::dimension() const
{
return 1;
}
QgsCompoundCurve::QgsCompoundCurve( const QgsCompoundCurve &curve ): QgsCurve( curve ) QgsCompoundCurve::QgsCompoundCurve( const QgsCompoundCurve &curve ): QgsCurve( curve )
{ {
mWkbType = QgsWkbTypes::CompoundCurve; mWkbType = QgsWkbTypes::CompoundCurve;

View File

@ -38,8 +38,8 @@ class CORE_EXPORT QgsCompoundCurve: public QgsCurve
virtual bool operator==( const QgsCurve &other ) const override; virtual bool operator==( const QgsCurve &other ) const override;
virtual bool operator!=( const QgsCurve &other ) const override; virtual bool operator!=( const QgsCurve &other ) const override;
virtual QString geometryType() const override { return QStringLiteral( "CompoundCurve" ); } virtual QString geometryType() const override;
virtual int dimension() const override { return 1; } virtual int dimension() const override;
virtual QgsCompoundCurve *clone() const override SIP_FACTORY; virtual QgsCompoundCurve *clone() const override SIP_FACTORY;
virtual void clear() override; virtual void clear() override;

View File

@ -639,6 +639,16 @@ int QgsGeometryCollection::ringCount( int part ) const
return mGeometries[part]->ringCount(); return mGeometries[part]->ringCount();
} }
int QgsGeometryCollection::partCount() const
{
return mGeometries.size();
}
QgsPoint QgsGeometryCollection::vertexAt( QgsVertexId id ) const
{
return mGeometries[id.part]->vertexAt( id );
}
bool QgsGeometryCollection::addZValue( double zValue ) bool QgsGeometryCollection::addZValue( double zValue )
{ {
if ( QgsWkbTypes::hasZ( mWkbType ) ) if ( QgsWkbTypes::hasZ( mWkbType ) )

View File

@ -123,8 +123,8 @@ class CORE_EXPORT QgsGeometryCollection: public QgsAbstractGeometry
int vertexCount( int part = 0, int ring = 0 ) const override; int vertexCount( int part = 0, int ring = 0 ) const override;
int ringCount( int part = 0 ) const override; int ringCount( int part = 0 ) const override;
int partCount() const override { return mGeometries.size(); } int partCount() const override;
QgsPoint vertexAt( QgsVertexId id ) const override { return mGeometries[id.part]->vertexAt( id ); } QgsPoint vertexAt( QgsVertexId id ) const override;
bool addZValue( double zValue = 0 ) override; bool addZValue( double zValue = 0 ) override;
bool addMValue( double mValue = 0 ) override; bool addMValue( double mValue = 0 ) override;

View File

@ -370,6 +370,11 @@ int QgsLineString::numPoints() const
return mX.size(); return mX.size();
} }
int QgsLineString::nCoordinates() const
{
return mX.size();
}
QgsPoint QgsLineString::pointN( int i ) const QgsPoint QgsLineString::pointN( int i ) const
{ {
if ( i < 0 || i >= mX.size() ) if ( i < 0 || i >= mX.size() )
@ -698,6 +703,16 @@ void QgsLineString::extend( double startDistance, double endDistance )
} }
} }
QString QgsLineString::geometryType() const
{
return QStringLiteral( "LineString" );
}
int QgsLineString::dimension() const
{
return 1;
}
/*************************************************************************** /***************************************************************************
* This class is considered CRITICAL and any change MUST be accompanied with * This class is considered CRITICAL and any change MUST be accompanied with
* full unit tests. * full unit tests.

View File

@ -162,8 +162,8 @@ class CORE_EXPORT QgsLineString: public QgsCurve
//reimplemented methods //reimplemented methods
QString geometryType() const override { return QStringLiteral( "LineString" ); } QString geometryType() const override;
int dimension() const override { return 1; } int dimension() const override;
QgsLineString *clone() const override SIP_FACTORY; QgsLineString *clone() const override SIP_FACTORY;
void clear() override; void clear() override;
bool isEmpty() const override; bool isEmpty() const override;
@ -189,7 +189,7 @@ class CORE_EXPORT QgsLineString: public QgsCurve
QgsLineString *curveToLine( double tolerance = M_PI_2 / 90, SegmentationToleranceType toleranceType = MaximumAngle ) const override SIP_FACTORY; QgsLineString *curveToLine( double tolerance = M_PI_2 / 90, SegmentationToleranceType toleranceType = MaximumAngle ) const override SIP_FACTORY;
int numPoints() const override; int numPoints() const override;
int nCoordinates() const override { return mX.size(); } int nCoordinates() const override;
void points( QgsPointSequence &pt SIP_OUT ) const override; void points( QgsPointSequence &pt SIP_OUT ) const override;
void draw( QPainter &p ) const override; void draw( QPainter &p ) const override;

View File

@ -28,6 +28,11 @@ QgsMultiCurve::QgsMultiCurve()
mWkbType = QgsWkbTypes::MultiCurve; mWkbType = QgsWkbTypes::MultiCurve;
} }
QString QgsMultiCurve::geometryType() const
{
return QStringLiteral( "MultiCurve" );
}
QgsMultiCurve *QgsMultiCurve::clone() const QgsMultiCurve *QgsMultiCurve::clone() const
{ {
return new QgsMultiCurve( *this ); return new QgsMultiCurve( *this );

View File

@ -29,7 +29,7 @@ class CORE_EXPORT QgsMultiCurve: public QgsGeometryCollection
{ {
public: public:
QgsMultiCurve(); QgsMultiCurve();
QString geometryType() const override { return QStringLiteral( "MultiCurve" ); } QString geometryType() const override;
QgsMultiCurve *clone() const override SIP_FACTORY; QgsMultiCurve *clone() const override SIP_FACTORY;
QgsMultiCurve *toCurveType() const override SIP_FACTORY; QgsMultiCurve *toCurveType() const override SIP_FACTORY;

View File

@ -28,6 +28,11 @@ QgsMultiLineString::QgsMultiLineString()
mWkbType = QgsWkbTypes::MultiLineString; mWkbType = QgsWkbTypes::MultiLineString;
} }
QString QgsMultiLineString::geometryType() const
{
return QStringLiteral( "MultiLineString" );
}
QgsMultiLineString *QgsMultiLineString::clone() const QgsMultiLineString *QgsMultiLineString::clone() const
{ {
return new QgsMultiLineString( *this ); return new QgsMultiLineString( *this );
@ -119,3 +124,8 @@ QgsMultiCurve *QgsMultiLineString::toCurveType() const
return multiCurve; return multiCurve;
} }
bool QgsMultiLineString::wktOmitChildType() const
{
return true;
}

View File

@ -29,7 +29,7 @@ class CORE_EXPORT QgsMultiLineString: public QgsMultiCurve
{ {
public: public:
QgsMultiLineString(); QgsMultiLineString();
QString geometryType() const override { return QStringLiteral( "MultiLineString" ); } QString geometryType() const override;
QgsMultiLineString *clone() const override SIP_FACTORY; QgsMultiLineString *clone() const override SIP_FACTORY;
bool fromWkt( const QString &wkt ) override; bool fromWkt( const QString &wkt ) override;
@ -66,7 +66,7 @@ class CORE_EXPORT QgsMultiLineString: public QgsMultiCurve
#endif #endif
protected: protected:
bool wktOmitChildType() const override { return true; } bool wktOmitChildType() const override;
}; };
#endif // QGSMULTILINESTRINGV2_H #endif // QGSMULTILINESTRINGV2_H

View File

@ -25,6 +25,11 @@ QgsMultiPointV2::QgsMultiPointV2()
mWkbType = QgsWkbTypes::MultiPoint; mWkbType = QgsWkbTypes::MultiPoint;
} }
QString QgsMultiPointV2::geometryType() const
{
return QStringLiteral( "MultiPoint" );
}
QgsMultiPointV2 *QgsMultiPointV2::clone() const QgsMultiPointV2 *QgsMultiPointV2::clone() const
{ {
return new QgsMultiPointV2( *this ); return new QgsMultiPointV2( *this );
@ -100,6 +105,11 @@ QString QgsMultiPointV2::asJSON( int precision ) const
return json; return json;
} }
int QgsMultiPointV2::nCoordinates() const
{
return mGeometries.size();
}
bool QgsMultiPointV2::addGeometry( QgsAbstractGeometry *g ) bool QgsMultiPointV2::addGeometry( QgsAbstractGeometry *g )
{ {
if ( !qgsgeometry_cast<QgsPoint *>( g ) ) if ( !qgsgeometry_cast<QgsPoint *>( g ) )
@ -115,3 +125,8 @@ QgsAbstractGeometry *QgsMultiPointV2::boundary() const
{ {
return nullptr; return nullptr;
} }
bool QgsMultiPointV2::wktOmitChildType() const
{
return true;
}

View File

@ -29,7 +29,7 @@ class CORE_EXPORT QgsMultiPointV2: public QgsGeometryCollection
{ {
public: public:
QgsMultiPointV2(); QgsMultiPointV2();
QString geometryType() const override { return QStringLiteral( "MultiPoint" ); } QString geometryType() const override;
QgsMultiPointV2 *clone() const override SIP_FACTORY; QgsMultiPointV2 *clone() const override SIP_FACTORY;
QgsMultiPointV2 *toCurveType() const override SIP_FACTORY; QgsMultiPointV2 *toCurveType() const override SIP_FACTORY;
@ -42,7 +42,7 @@ class CORE_EXPORT QgsMultiPointV2: public QgsGeometryCollection
QDomElement asGML3( QDomDocument &doc, int precision = 17, const QString &ns = "gml" ) const override; QDomElement asGML3( QDomDocument &doc, int precision = 17, const QString &ns = "gml" ) const override;
QString asJSON( int precision = 17 ) const override; QString asJSON( int precision = 17 ) const override;
int nCoordinates() const override { return mGeometries.size(); } int nCoordinates() const override;
//! Adds a geometry and takes ownership. Returns true in case of success //! Adds a geometry and takes ownership. Returns true in case of success
bool addGeometry( QgsAbstractGeometry *g SIP_TRANSFER ) override; bool addGeometry( QgsAbstractGeometry *g SIP_TRANSFER ) override;
@ -67,7 +67,7 @@ class CORE_EXPORT QgsMultiPointV2: public QgsGeometryCollection
#endif #endif
protected: protected:
bool wktOmitChildType() const override { return true; } bool wktOmitChildType() const override;
}; };

View File

@ -28,6 +28,11 @@ QgsMultiPolygonV2::QgsMultiPolygonV2()
mWkbType = QgsWkbTypes::MultiPolygon; mWkbType = QgsWkbTypes::MultiPolygon;
} }
QString QgsMultiPolygonV2::geometryType() const
{
return QStringLiteral( "MultiPolygon" );
}
QgsMultiPolygonV2 *QgsMultiPolygonV2::clone() const QgsMultiPolygonV2 *QgsMultiPolygonV2::clone() const
{ {
return new QgsMultiPolygonV2( *this ); return new QgsMultiPolygonV2( *this );
@ -169,3 +174,8 @@ QgsAbstractGeometry *QgsMultiPolygonV2::boundary() const
} }
return multiLine; return multiLine;
} }
bool QgsMultiPolygonV2::wktOmitChildType() const
{
return true;
}

View File

@ -29,7 +29,7 @@ class CORE_EXPORT QgsMultiPolygonV2: public QgsMultiSurface
{ {
public: public:
QgsMultiPolygonV2(); QgsMultiPolygonV2();
QString geometryType() const override { return QStringLiteral( "MultiPolygon" ); } QString geometryType() const override;
QgsMultiPolygonV2 *clone() const override SIP_FACTORY; QgsMultiPolygonV2 *clone() const override SIP_FACTORY;
bool fromWkt( const QString &wkt ) override; bool fromWkt( const QString &wkt ) override;
@ -68,7 +68,7 @@ class CORE_EXPORT QgsMultiPolygonV2: public QgsMultiSurface
protected: protected:
bool wktOmitChildType() const override { return true; } bool wktOmitChildType() const override;
}; };
#endif // QGSMULTIPOLYGONV2_H #endif // QGSMULTIPOLYGONV2_H

View File

@ -29,6 +29,11 @@ QgsMultiSurface::QgsMultiSurface()
mWkbType = QgsWkbTypes::MultiSurface; mWkbType = QgsWkbTypes::MultiSurface;
} }
QString QgsMultiSurface::geometryType() const
{
return QStringLiteral( "MultiSurface" );
}
QgsMultiSurface *QgsMultiSurface::clone() const QgsMultiSurface *QgsMultiSurface::clone() const
{ {
return new QgsMultiSurface( *this ); return new QgsMultiSurface( *this );

View File

@ -29,7 +29,7 @@ class CORE_EXPORT QgsMultiSurface: public QgsGeometryCollection
{ {
public: public:
QgsMultiSurface(); QgsMultiSurface();
QString geometryType() const override { return QStringLiteral( "MultiSurface" ); } QString geometryType() const override;
QgsMultiSurface *clone() const override SIP_FACTORY; QgsMultiSurface *clone() const override SIP_FACTORY;
QgsMultiSurface *toCurveType() const override SIP_FACTORY; QgsMultiSurface *toCurveType() const override SIP_FACTORY;

View File

@ -319,11 +319,23 @@ QgsCoordinateSequence QgsPoint::coordinateSequence() const
return cs; return cs;
} }
int QgsPoint::nCoordinates() const
{
return 1;
}
QgsAbstractGeometry *QgsPoint::boundary() const QgsAbstractGeometry *QgsPoint::boundary() const
{ {
return nullptr; return nullptr;
} }
bool QgsPoint::insertVertex( QgsVertexId position, const QgsPoint &vertex )
{
Q_UNUSED( position );
Q_UNUSED( vertex );
return false;
}
/*************************************************************************** /***************************************************************************
* This class is considered CRITICAL and any change MUST be accompanied with * This class is considered CRITICAL and any change MUST be accompanied with
* full unit tests. * full unit tests.
@ -347,6 +359,12 @@ bool QgsPoint::moveVertex( QgsVertexId position, const QgsPoint &newPos )
return true; return true;
} }
bool QgsPoint::deleteVertex( QgsVertexId position )
{
Q_UNUSED( position );
return false;
}
double QgsPoint::closestSegment( const QgsPoint &pt, QgsPoint &segmentPt, QgsVertexId &vertexAfter, bool *leftOf, double epsilon ) const double QgsPoint::closestSegment( const QgsPoint &pt, QgsPoint &segmentPt, QgsVertexId &vertexAfter, bool *leftOf, double epsilon ) const
{ {
Q_UNUSED( pt ); Q_UNUSED( pt );
@ -379,6 +397,32 @@ bool QgsPoint::nextVertex( QgsVertexId &id, QgsPoint &vertex ) const
} }
} }
double QgsPoint::vertexAngle( QgsVertexId vertex ) const
{
Q_UNUSED( vertex );
return 0.0;
}
int QgsPoint::vertexCount( int, int ) const
{
return 1;
}
int QgsPoint::ringCount( int ) const
{
return 1;
}
int QgsPoint::partCount() const
{
return 1;
}
QgsPoint QgsPoint::vertexAt( QgsVertexId ) const
{
return *this;
}
QgsPoint *QgsPoint::toCurveType() const QgsPoint *QgsPoint::toCurveType() const
{ {
return clone(); return clone();
@ -584,3 +628,23 @@ QgsPoint QgsPoint::project( double distance, double azimuth, double inclination
return QgsPoint( mX + dx, mY + dy, mZ + dz, mM, pType ); return QgsPoint( mX + dx, mY + dy, mZ + dz, mM, pType );
} }
bool QgsPoint::isEmpty() const
{
return false;
}
QgsRectangle QgsPoint::boundingBox() const
{
return QgsRectangle( mX, mY, mX, mY );
}
QString QgsPoint::geometryType() const
{
return QStringLiteral( "Point" );
}
int QgsPoint::dimension() const
{
return 0;
}

View File

@ -369,10 +369,10 @@ class CORE_EXPORT QgsPoint: public QgsAbstractGeometry
QgsPoint operator-( QgsVector v ) const { QgsPoint r = *this; r.rx() -= v.x(); r.ry() -= v.y(); return r; } QgsPoint operator-( QgsVector v ) const { QgsPoint r = *this; r.rx() -= v.x(); r.ry() -= v.y(); return r; }
//implementation of inherited methods //implementation of inherited methods
bool isEmpty() const override { return false; } bool isEmpty() const override;
QgsRectangle boundingBox() const override { return QgsRectangle( mX, mY, mX, mY ); } QgsRectangle boundingBox() const override;
QString geometryType() const override { return QStringLiteral( "Point" ); } QString geometryType() const override;
int dimension() const override { return 0; } int dimension() const override;
QgsPoint *clone() const override SIP_FACTORY; QgsPoint *clone() const override SIP_FACTORY;
void clear() override; void clear() override;
bool fromWkb( QgsConstWkbPtr &wkb ) override; bool fromWkb( QgsConstWkbPtr &wkb ) override;
@ -387,13 +387,13 @@ class CORE_EXPORT QgsPoint: public QgsAbstractGeometry
bool transformZ = false ) override; bool transformZ = false ) override;
void transform( const QTransform &t ) override; void transform( const QTransform &t ) override;
QgsCoordinateSequence coordinateSequence() const override; QgsCoordinateSequence coordinateSequence() const override;
int nCoordinates() const override { return 1; } int nCoordinates() const override;
QgsAbstractGeometry *boundary() const override SIP_FACTORY; QgsAbstractGeometry *boundary() const override SIP_FACTORY;
//low-level editing //low-level editing
bool insertVertex( QgsVertexId position, const QgsPoint &vertex ) override { Q_UNUSED( position ); Q_UNUSED( vertex ); return false; } bool insertVertex( QgsVertexId position, const QgsPoint &vertex ) override;
bool moveVertex( QgsVertexId position, const QgsPoint &newPos ) override; bool moveVertex( QgsVertexId position, const QgsPoint &newPos ) override;
bool deleteVertex( QgsVertexId position ) override { Q_UNUSED( position ); return false; } bool deleteVertex( QgsVertexId position ) override;
double closestSegment( const QgsPoint &pt, QgsPoint &segmentPt SIP_OUT, QgsVertexId &vertexAfter SIP_OUT, bool *leftOf SIP_OUT = nullptr, double epsilon = 4 * DBL_EPSILON ) const override; double closestSegment( const QgsPoint &pt, QgsPoint &segmentPt SIP_OUT, QgsVertexId &vertexAfter SIP_OUT, bool *leftOf SIP_OUT = nullptr, double epsilon = 4 * DBL_EPSILON ) const override;
bool nextVertex( QgsVertexId &id, QgsPoint &vertex SIP_OUT ) const override; bool nextVertex( QgsVertexId &id, QgsPoint &vertex SIP_OUT ) const override;
@ -401,12 +401,12 @@ class CORE_EXPORT QgsPoint: public QgsAbstractGeometry
/** Angle undefined. Always returns 0.0 /** Angle undefined. Always returns 0.0
\param vertex the vertex id \param vertex the vertex id
\returns 0.0*/ \returns 0.0*/
double vertexAngle( QgsVertexId vertex ) const override { Q_UNUSED( vertex ); return 0.0; } double vertexAngle( QgsVertexId vertex ) const override;
int vertexCount( int /*part*/ = 0, int /*ring*/ = 0 ) const override { return 1; } int vertexCount( int /*part*/ = 0, int /*ring*/ = 0 ) const override;
int ringCount( int /*part*/ = 0 ) const override { return 1; } int ringCount( int /*part*/ = 0 ) const override;
int partCount() const override { return 1; } int partCount() const override;
QgsPoint vertexAt( QgsVertexId /*id*/ ) const override { return *this; } QgsPoint vertexAt( QgsVertexId /*id*/ ) const override;
QgsPoint *toCurveType() const override SIP_FACTORY; QgsPoint *toCurveType() const override SIP_FACTORY;
bool addZValue( double zValue = 0 ) override; bool addZValue( double zValue = 0 ) override;

View File

@ -107,6 +107,11 @@ bool QgsTriangle::operator!=( const QgsTriangle &other ) const
return !operator==( other ); return !operator==( other );
} }
QString QgsTriangle::geometryType() const
{
return QStringLiteral( "Triangle" );
}
void QgsTriangle::clear() void QgsTriangle::clear()
{ {
QgsCurvePolygon::clear(); QgsCurvePolygon::clear();

View File

@ -61,7 +61,7 @@ class CORE_EXPORT QgsTriangle : public QgsPolygonV2
bool operator==( const QgsTriangle &other ) const; bool operator==( const QgsTriangle &other ) const;
bool operator!=( const QgsTriangle &other ) const; bool operator!=( const QgsTriangle &other ) const;
QString geometryType() const override { return QStringLiteral( "Triangle" ); } QString geometryType() const override;
QgsTriangle *clone() const override SIP_FACTORY; QgsTriangle *clone() const override SIP_FACTORY;
void clear() override; void clear() override;