Many classes: mark assignment operator as deleted due to existence of copy constructor

This commit is contained in:
Even Rouault 2020-06-01 23:40:34 +02:00
parent 6fd336ce02
commit cc1488fce9
No known key found for this signature in database
GPG Key ID: 33EBBFC47B3DD87D
32 changed files with 301 additions and 189 deletions

View File

@ -38,6 +38,7 @@ Constructor
~QgsAccessControl();
void resolveFilterFeatures( const QList<QgsMapLayer *> &layers );
%Docstring
Resolve features' filter of layers

View File

@ -112,6 +112,8 @@ class _3D_EXPORT QgsPoint3DSymbol : public QgsAbstract3DSymbol
std::unique_ptr<QgsMarkerSymbol> mBillboardSymbol;
#ifdef SIP_RUN
QgsPoint3DSymbol &operator=( const QgsPoint3DSymbol & );
#else
QgsPoint3DSymbol &operator=( const QgsPoint3DSymbol & ) = delete;
#endif
};

View File

@ -180,6 +180,8 @@ class ANALYSIS_EXPORT QgsGeometryCheckerUtils
QgsFeatureIds::const_iterator mFeatureIt;
const LayerFeatures *mParent = nullptr;
std::unique_ptr<QgsGeometryCheckerUtils::LayerFeature> mCurrentFeature;
iterator &operator= ( const iterator & ) = delete;
};
/**

View File

@ -68,6 +68,8 @@ class QgsGeorefDataPoint : public QObject
int mId;
bool mEnabled;
QPointF mResidual;
QgsGeorefDataPoint &operator=( const QgsGeorefDataPoint & ) = delete;
};
#endif //QGSGEOREFDATAPOINT_H

View File

@ -155,6 +155,7 @@ class QgsGeorefTransform : public QgsGeorefTransformInterface
private:
// shallow copy constructor
QgsGeorefTransform( const QgsGeorefTransform &other );
QgsGeorefTransform &operator= ( const QgsGeorefTransform & ) = delete;
//! Factory function which creates an implementation for the given parametrisation.
static QgsGeorefTransformInterface *createImplementation( TransformParametrisation parametrisation );

View File

@ -80,6 +80,8 @@ class QgsExpressionPrivate
//! Whether prepare() has been called before evaluate()
bool mIsPrepared = false;
QgsExpressionPrivate &operator= ( const QgsExpressionPrivate & ) = delete;
};

View File

@ -228,6 +228,8 @@ class CORE_EXPORT QgsLayerTree : public QgsLayerTreeGroup
void addMissingLayers();
QgsWeakMapLayerPointerList mCustomLayerOrder;
bool mHasCustomLayerOrder = false;
QgsLayerTree &operator= ( const QgsLayerTree & ) = delete;
};
#endif // QGSLAYERTREE_H

View File

@ -238,6 +238,8 @@ class CORE_EXPORT QgsLayerTreeGroup : public QgsLayerTreeNode
QgsLayerTreeGroup( const QgsLayerTreeGroup &other );
#endif
QgsLayerTreeGroup &operator= ( const QgsLayerTreeGroup & ) = delete;
};

View File

@ -266,6 +266,8 @@ class CORE_EXPORT QgsLayerTreeLayer : public QgsLayerTreeNode
QgsLegendPatchShape mPatchShape;
QSizeF mPatchSize;
LegendNodesSplitBehavior mSplitBehavior = UseDefaultLegendSetting;
QgsLayerTreeLayer &operator=( const QgsLayerTreeLayer & ) = delete;
};

View File

@ -283,6 +283,9 @@ class CORE_EXPORT QgsLayerTreeNode : public QObject
bool mExpanded;
//! custom properties attached to the node
QgsObjectCustomProperties mProperties;
private:
QgsLayerTreeNode &operator=( const QgsLayerTreeNode & ) = delete;
};

View File

@ -385,6 +385,8 @@ namespace pal
mutable std::size_t mCachedMaxLineCandidates = 0;
mutable std::size_t mCachedMaxPolygonCandidates = 0;
FeaturePart &operator= ( const FeaturePart & ) = delete;
};
} // end namespace pal

View File

@ -351,6 +351,7 @@ namespace pal
bool isInConflictSinglePart( const LabelPosition *lp ) const;
bool isInConflictMultiPart( const LabelPosition *lp ) const;
LabelPosition &operator=( const LabelPosition & ) = delete;
};
} // end namespace

View File

@ -235,6 +235,8 @@ namespace pal
mutable const GEOSPreparedGeometry *mPreparedGeom = nullptr;
PointSet &operator= ( const PointSet & ) = delete;
};
} // namespace pal

View File

@ -243,6 +243,8 @@ class QgsCoordinateReferenceSystemPrivate : public QSharedData
}
#endif
private:
QgsCoordinateReferenceSystemPrivate &operator= ( const QgsCoordinateReferenceSystemPrivate & ) = delete;
};

View File

@ -235,6 +235,8 @@ class QgsCoordinateTransformPrivate : public QSharedData
static std::function< void( const QgsCoordinateReferenceSystem &sourceCrs,
const QgsCoordinateReferenceSystem &destinationCrs,
const QgsDatumTransform::TransformDetails &desiredOperation )> sMissingGridUsedByContextHandler;
QgsCoordinateTransformPrivate &operator= ( const QgsCoordinateTransformPrivate & ) = delete;
};
/// @endcond

View File

@ -78,6 +78,8 @@ class QgsCoordinateTransformContextPrivate : public QSharedData
//! Mutex for making QgsCoordinateTransformContextPrivate thread safe
mutable QReadWriteLock mLock{};
private:
QgsCoordinateTransformContextPrivate &operator= ( const QgsCoordinateTransformContextPrivate & ) = delete;
};

View File

@ -932,6 +932,8 @@ class CORE_EXPORT QgsLinearlyInterpolatedDiagramRenderer : public QgsDiagramRend
//! Stores more settings about how legend for varying size of symbols should be rendered
QgsDataDefinedSizeLegend *mDataDefinedSizeLegend = nullptr;
QgsLinearlyInterpolatedDiagramRenderer &operator=( const QgsLinearlyInterpolatedDiagramRenderer & ) = delete;
};
#endif // QGSDIAGRAMRENDERER_H

View File

@ -97,6 +97,8 @@ class QgsEditFormConfigPrivate : public QSharedData
QgsFields mFields;
private:
QgsEditFormConfigPrivate &operator= ( const QgsEditFormConfigPrivate & ) = delete;
};

View File

@ -76,6 +76,9 @@ class QgsFeaturePrivate : public QSharedData
//! Optional field map for name-based attribute lookups
QgsFields fields;
private:
QgsFeaturePrivate &operator=( const QgsFeaturePrivate & ) = delete;
};
/// @endcond

View File

@ -119,6 +119,9 @@ class QgsFieldPrivate : public QSharedData
QgsFieldConstraints constraints;
QgsEditorWidgetSetup editorWidgetSetup;
private:
QgsFieldPrivate &operator=( const QgsFieldPrivate & ) = delete;
};
/// @endcond

View File

@ -432,6 +432,8 @@ class CORE_EXPORT QgsFields
inline const_iterator operator+( difference_type j ) const { return const_iterator( d + j ); }
inline const_iterator operator-( difference_type j ) const { return const_iterator( d - j ); }
inline int operator-( const_iterator j ) const { return int( d - j.d ); } // clazy:exclude=function-args-by-ref
private:
const_iterator &operator= ( const const_iterator & ) = delete;
};
friend class const_iterator;
///@endcond

View File

@ -61,6 +61,8 @@ class QgsFieldsPrivate : public QSharedData
//! map for quick resolution of name to index
QHash<QString, int> nameToIndex;
private:
QgsFieldsPrivate &operator= ( const QgsFieldsPrivate & ) = delete;
};
/// @endcond

View File

@ -83,6 +83,8 @@ class QgsPropertyPrivate : public QSharedData
//! Cached set of referenced columns
mutable QSet< QString > expressionReferencedCols;
private:
QgsPropertyPrivate &operator=( const QgsPropertyPrivate & ) = delete;
};
///@endcond PRIVATE

View File

@ -93,6 +93,8 @@ class CORE_EXPORT QgsContrastEnhancementFunction
double mMaximumValuePossible = std::numeric_limits< double >::max() SIP_SKIP;
double mMinimumValuePossible = std::numeric_limits< double >::lowest() SIP_SKIP;
private:
QgsContrastEnhancementFunction &operator=( const QgsContrastEnhancementFunction & ) = delete;
};
#endif

View File

@ -77,6 +77,9 @@ class QgsTextBufferSettingsPrivate : public QSharedData
Qt::PenJoinStyle joinStyle = Qt::RoundJoin;
QPainter::CompositionMode blendMode = QPainter::CompositionMode_SourceOver;
std::unique_ptr< QgsPaintEffect > paintEffect;
private:
QgsTextBufferSettingsPrivate &operator=( const QgsTextBufferSettingsPrivate & ) = delete;
};
@ -148,6 +151,9 @@ class QgsTextBackgroundSettingsPrivate : public QSharedData
Qt::PenJoinStyle joinStyle = Qt::BevelJoin;
std::unique_ptr< QgsPaintEffect > paintEffect;
std::unique_ptr< QgsMarkerSymbol > markerSymbol;
private:
QgsTextBackgroundSettingsPrivate &operator=( const QgsTextBackgroundSettingsPrivate & ) = delete;
};
@ -197,6 +203,9 @@ class QgsTextShadowSettingsPrivate : public QSharedData
QColor color;
double opacity = 0.7;
QPainter::CompositionMode blendMode = QPainter::CompositionMode_Multiply;
private:
QgsTextShadowSettingsPrivate &operator=( const QgsTextShadowSettingsPrivate & ) = delete;
};
@ -232,6 +241,9 @@ class QgsTextMaskSettingsPrivate : public QSharedData
double opacity = 1.0;
std::unique_ptr< QgsPaintEffect > paintEffect;
QgsSymbolLayerReferenceList maskedSymbolLayers;
private:
QgsTextMaskSettingsPrivate &operator=( const QgsTextMaskSettingsPrivate & ) = delete;
};
@ -279,7 +291,8 @@ class QgsTextSettingsPrivate : public QSharedData
//! Property collection for data defined settings
QgsPropertyCollection mDataDefinedProperties;
private:
QgsTextSettingsPrivate &operator=( const QgsTextSettingsPrivate & ) = delete;
};

View File

@ -78,16 +78,6 @@ public:
*/
ColorEntry() : transparent(false), fontWeight(UseCurrentFormat) {}
/**
* Sets the color, transparency and boldness of this color to those of @p rhs.
*/
void operator=(const ColorEntry& rhs)
{
color = rhs.color;
transparent = rhs.transparent;
fontWeight = rhs.fontWeight;
}
/** The color value of this entry for display. */
QColor color;

View File

@ -200,6 +200,8 @@ private:
static const char* const translatedColorNames[TABLE_COLORS];
static const ColorEntry defaultTable[]; // table of default color entries
ColorScheme& operator=(const ColorScheme&) = delete;
};
/**

View File

@ -152,7 +152,7 @@ static QString qOraWarn( OCIError *err, int *errorCode = nullptr );
#ifndef Q_CC_SUN
static // for some reason, Sun CC can't use qOraWarning when it's declared static
#endif
void qOraWarningAt( const char *msg, OCIError *err, const char *file, const char *function, int line );
void qOraWarningAt( const char *msg, OCIError *err, const char *function, const char *file, int line );
static QSqlError qMakeError( const QString &errString, QSqlError::ErrorType type, OCIError *err );
#ifndef _MSC_VER
@ -309,6 +309,7 @@ class QOCISpatialRowId: public QSharedData
private:
QOCISpatialRowId( const QOCISpatialRowId &other ): QSharedData( other ) { Q_ASSERT( false ); }
QOCISpatialRowId &operator= ( const QOCISpatialRowId & ) = delete;
};
QOCISpatialRowId::QOCISpatialRowId( OCIEnv *env )

View File

@ -313,6 +313,8 @@ class QgsOracleProvider final: public QgsVectorDataProvider
private:
QString mWhat;
OracleException &operator= ( const OracleException & ) = delete;
};
// A function that determines if the given schema.table.column

View File

@ -385,6 +385,8 @@ class QgsWcsCapabilities : public QObject
//! Cache load control
QNetworkRequest::CacheLoadControl mCacheLoadControl = QNetworkRequest::PreferNetwork;
QgsWcsCapabilities &operator=( const QgsWcsCapabilities & ) = delete;
};

View File

@ -61,6 +61,19 @@ class SERVER_EXPORT QgsAccessControl : public QgsFeatureFilterProvider
delete mPluginsAccessControls;
}
//! Assignment operator
QgsAccessControl &operator= ( const QgsAccessControl &other )
{
if ( this != &other )
{
delete mPluginsAccessControls;
mPluginsAccessControls = new QgsAccessControlFilterMap( *other.mPluginsAccessControls );
mFilterFeaturesExpressions = other.mFilterFeaturesExpressions;
mResolved = other.mResolved;
}
return *this;
}
/**
* Resolve features' filter of layers
* \param layers to filter

View File

@ -1937,190 +1937,231 @@ void TestQgsLabelingEngine::labelingResults()
void TestQgsLabelingEngine::pointsetExtend()
{
// test extending pointsets by distance
QVector< double > x;
x << 1 << 9;
QVector< double > y;
y << 2 << 2;
pal::PointSet set( 2, x.data(), y.data() );
{
QVector< double > x;
x << 1 << 9;
QVector< double > y;
y << 2 << 2;
pal::PointSet set( 2, x.data(), y.data() );
set.extendLineByDistance( 1, 3, 0 );
QCOMPARE( set.getNumPoints(), 4 );
QCOMPARE( set.x.at( 0 ), 0.0 );
QCOMPARE( set.y.at( 0 ), 2.0 );
QCOMPARE( set.x.at( 1 ), 1.0 );
QCOMPARE( set.y.at( 1 ), 2.0 );
QCOMPARE( set.x.at( 2 ), 9.0 );
QCOMPARE( set.y.at( 2 ), 2.0 );
QCOMPARE( set.x.at( 3 ), 12.0 );
QCOMPARE( set.y.at( 3 ), 2.0 );
set.extendLineByDistance( 1, 3, 0 );
QCOMPARE( set.getNumPoints(), 4 );
QCOMPARE( set.x.at( 0 ), 0.0 );
QCOMPARE( set.y.at( 0 ), 2.0 );
QCOMPARE( set.x.at( 1 ), 1.0 );
QCOMPARE( set.y.at( 1 ), 2.0 );
QCOMPARE( set.x.at( 2 ), 9.0 );
QCOMPARE( set.y.at( 2 ), 2.0 );
QCOMPARE( set.x.at( 3 ), 12.0 );
QCOMPARE( set.y.at( 3 ), 2.0 );
}
x.clear();
x << 1 << 9;
y.clear();
y << 2 << 2;
set = pal::PointSet( 2, x.data(), y.data() );
set.extendLineByDistance( 0, 0, 0 );
QCOMPARE( set.getNumPoints(), 2 );
QCOMPARE( set.x.at( 0 ), 1.0 );
QCOMPARE( set.y.at( 0 ), 2.0 );
QCOMPARE( set.x.at( 1 ), 9.0 );
QCOMPARE( set.y.at( 1 ), 2.0 );
{
QVector< double > x;
x << 1 << 9;
QVector< double > y;
y << 2 << 2;
pal::PointSet set( 2, x.data(), y.data() );
set.extendLineByDistance( 0, 0, 0 );
QCOMPARE( set.getNumPoints(), 2 );
QCOMPARE( set.x.at( 0 ), 1.0 );
QCOMPARE( set.y.at( 0 ), 2.0 );
QCOMPARE( set.x.at( 1 ), 9.0 );
QCOMPARE( set.y.at( 1 ), 2.0 );
}
set = pal::PointSet( 0, nullptr, nullptr );
set.extendLineByDistance( 1, 3, 0 );
QCOMPARE( set.getNumPoints(), 0 );
{
pal::PointSet set( 0, nullptr, nullptr );
set.extendLineByDistance( 1, 3, 0 );
QCOMPARE( set.getNumPoints(), 0 );
}
x.clear();
x << 1;
y.clear();
y << 2;
set = pal::PointSet( 1, x.data(), y.data() );
set.extendLineByDistance( 1, 3, 0 );
QCOMPARE( set.getNumPoints(), 1 );
{
QVector< double > x;
x << 1;
QVector< double > y;
y << 2;
pal::PointSet set( 1, x.data(), y.data() );
set.extendLineByDistance( 1, 3, 0 );
QCOMPARE( set.getNumPoints(), 1 );
}
x.clear();
x << 1 << 2 << 8 << 9;
y.clear();
y << 2 << 3 << 3 << 2;
set = pal::PointSet( 4, x.data(), y.data() );
set.extendLineByDistance( 1, 3, 0 );
QCOMPARE( set.getNumPoints(), 6 );
QGSCOMPARENEAR( set.x.at( 0 ), 0.292893, 0.00001 );
QGSCOMPARENEAR( set.y.at( 0 ), 1.29289, 0.00001 );
QCOMPARE( set.x.at( 1 ), 1.0 );
QCOMPARE( set.y.at( 1 ), 2.0 );
QCOMPARE( set.x.at( 2 ), 2.0 );
QCOMPARE( set.y.at( 2 ), 3.0 );
QCOMPARE( set.x.at( 3 ), 8.0 );
QCOMPARE( set.y.at( 3 ), 3.0 );
QCOMPARE( set.x.at( 4 ), 9.0 );
QCOMPARE( set.y.at( 4 ), 2.0 );
QGSCOMPARENEAR( set.x.at( 5 ), 11.121320, 0.00001 );
QGSCOMPARENEAR( set.y.at( 5 ), -0.121320, 0.00001 );
{
QVector< double > x;
x << 1 << 2 << 8 << 9;
QVector< double > y;
y << 2 << 3 << 3 << 2;
pal::PointSet set( 4, x.data(), y.data() );
set.extendLineByDistance( 1, 3, 0 );
QCOMPARE( set.getNumPoints(), 6 );
QGSCOMPARENEAR( set.x.at( 0 ), 0.292893, 0.00001 );
QGSCOMPARENEAR( set.y.at( 0 ), 1.29289, 0.00001 );
QCOMPARE( set.x.at( 1 ), 1.0 );
QCOMPARE( set.y.at( 1 ), 2.0 );
QCOMPARE( set.x.at( 2 ), 2.0 );
QCOMPARE( set.y.at( 2 ), 3.0 );
QCOMPARE( set.x.at( 3 ), 8.0 );
QCOMPARE( set.y.at( 3 ), 3.0 );
QCOMPARE( set.x.at( 4 ), 9.0 );
QCOMPARE( set.y.at( 4 ), 2.0 );
QGSCOMPARENEAR( set.x.at( 5 ), 11.121320, 0.00001 );
QGSCOMPARENEAR( set.y.at( 5 ), -0.121320, 0.00001 );
}
x.clear();
x << 9 << 8 << 2 << 1;
y.clear();
y << 2 << 3 << 3 << 2;
set = pal::PointSet( 4, x.data(), y.data() );
set.extendLineByDistance( 1, 3, 0 );
QCOMPARE( set.getNumPoints(), 6 );
QGSCOMPARENEAR( set.x.at( 0 ), 9.707107, 0.00001 );
QGSCOMPARENEAR( set.y.at( 0 ), 1.29289, 0.00001 );
QCOMPARE( set.x.at( 1 ), 9.0 );
QCOMPARE( set.y.at( 1 ), 2.0 );
QCOMPARE( set.x.at( 2 ), 8.0 );
QCOMPARE( set.y.at( 2 ), 3.0 );
QCOMPARE( set.x.at( 3 ), 2.0 );
QCOMPARE( set.y.at( 3 ), 3.0 );
QCOMPARE( set.x.at( 4 ), 1.0 );
QCOMPARE( set.y.at( 4 ), 2.0 );
QGSCOMPARENEAR( set.x.at( 5 ), -1.121320, 0.00001 );
QGSCOMPARENEAR( set.y.at( 5 ), -0.121320, 0.00001 );
{
QVector< double > x;
x << 9 << 8 << 2 << 1;
QVector< double > y;
y << 2 << 3 << 3 << 2;
pal::PointSet set( 4, x.data(), y.data() );
set.extendLineByDistance( 1, 3, 0 );
QCOMPARE( set.getNumPoints(), 6 );
QGSCOMPARENEAR( set.x.at( 0 ), 9.707107, 0.00001 );
QGSCOMPARENEAR( set.y.at( 0 ), 1.29289, 0.00001 );
QCOMPARE( set.x.at( 1 ), 9.0 );
QCOMPARE( set.y.at( 1 ), 2.0 );
QCOMPARE( set.x.at( 2 ), 8.0 );
QCOMPARE( set.y.at( 2 ), 3.0 );
QCOMPARE( set.x.at( 3 ), 2.0 );
QCOMPARE( set.y.at( 3 ), 3.0 );
QCOMPARE( set.x.at( 4 ), 1.0 );
QCOMPARE( set.y.at( 4 ), 2.0 );
QGSCOMPARENEAR( set.x.at( 5 ), -1.121320, 0.00001 );
QGSCOMPARENEAR( set.y.at( 5 ), -0.121320, 0.00001 );
}
// with averaging
x.clear();
x << 1 << 2 << 8 << 9;
y.clear();
y << 2 << 3 << 3 << 2;
set = pal::PointSet( 4, x.data(), y.data() );
set.extendLineByDistance( 1, 3, 0.5 );
QCOMPARE( set.getNumPoints(), 6 );
QGSCOMPARENEAR( set.x.at( 0 ), 0.292893, 0.00001 );
QGSCOMPARENEAR( set.y.at( 0 ), 1.29289, 0.00001 );
QCOMPARE( set.x.at( 1 ), 1.0 );
QCOMPARE( set.y.at( 1 ), 2.0 );
QCOMPARE( set.x.at( 2 ), 2.0 );
QCOMPARE( set.y.at( 2 ), 3.0 );
QCOMPARE( set.x.at( 3 ), 8.0 );
QCOMPARE( set.y.at( 3 ), 3.0 );
QCOMPARE( set.x.at( 4 ), 9.0 );
QCOMPARE( set.y.at( 4 ), 2.0 );
QGSCOMPARENEAR( set.x.at( 5 ), 11.573264, 0.00001 );
QGSCOMPARENEAR( set.y.at( 5 ), 0.457821, 0.00001 );
x.clear();
x << 1 << 2 << 8 << 9;
y.clear();
y << 2 << 3 << 3 << 2;
set = pal::PointSet( 4, x.data(), y.data() );
set.extendLineByDistance( 1, 3, 1 );
QCOMPARE( set.getNumPoints(), 6 );
QGSCOMPARENEAR( set.x.at( 0 ), 0.292893, 0.00001 );
QGSCOMPARENEAR( set.y.at( 0 ), 1.29289, 0.00001 );
QCOMPARE( set.x.at( 1 ), 1.0 );
QCOMPARE( set.y.at( 1 ), 2.0 );
QCOMPARE( set.x.at( 2 ), 2.0 );
QCOMPARE( set.y.at( 2 ), 3.0 );
QCOMPARE( set.x.at( 3 ), 8.0 );
QCOMPARE( set.y.at( 3 ), 3.0 );
QCOMPARE( set.x.at( 4 ), 9.0 );
QCOMPARE( set.y.at( 4 ), 2.0 );
QGSCOMPARENEAR( set.x.at( 5 ), 11.788722, 0.00001 );
QGSCOMPARENEAR( set.y.at( 5 ), 0.894094, 0.00001 );
x.clear();
x << 1 << 2 << 8 << 9;
y.clear();
y << 2 << 3 << 3 << 2;
set = pal::PointSet( 4, x.data(), y.data() );
set.extendLineByDistance( 1, 3, 2 );
QCOMPARE( set.getNumPoints(), 6 );
QGSCOMPARENEAR( set.x.at( 0 ), 0.011936, 0.00001 );
QGSCOMPARENEAR( set.y.at( 0 ), 1.845957, 0.00001 );
QCOMPARE( set.x.at( 1 ), 1.0 );
QCOMPARE( set.y.at( 1 ), 2.0 );
QCOMPARE( set.x.at( 2 ), 2.0 );
QCOMPARE( set.y.at( 2 ), 3.0 );
QCOMPARE( set.x.at( 3 ), 8.0 );
QCOMPARE( set.y.at( 3 ), 3.0 );
QCOMPARE( set.x.at( 4 ), 9.0 );
QCOMPARE( set.y.at( 4 ), 2.0 );
QGSCOMPARENEAR( set.x.at( 5 ), 11.917393, 0.00001 );
QGSCOMPARENEAR( set.y.at( 5 ), 1.300845, 0.00001 );
set = pal::PointSet( 4, x.data(), y.data() );
set.extendLineByDistance( 1, 3, 4 );
QCOMPARE( set.getNumPoints(), 6 );
QGSCOMPARENEAR( set.x.at( 0 ), 0.024713, 0.00001 );
QGSCOMPARENEAR( set.y.at( 0 ), 1.779058, 0.00001 );
QCOMPARE( set.x.at( 1 ), 1.0 );
QCOMPARE( set.y.at( 1 ), 2.0 );
QCOMPARE( set.x.at( 2 ), 2.0 );
QCOMPARE( set.y.at( 2 ), 3.0 );
QCOMPARE( set.x.at( 3 ), 8.0 );
QCOMPARE( set.y.at( 3 ), 3.0 );
QCOMPARE( set.x.at( 4 ), 9.0 );
QCOMPARE( set.y.at( 4 ), 2.0 );
QGSCOMPARENEAR( set.x.at( 5 ), 11.990524, 0.00001 );
QGSCOMPARENEAR( set.y.at( 5 ), 1.761739, 0.00001 );
set = pal::PointSet( 4, x.data(), y.data() );
set.extendLineByDistance( 1, 3, 5 );
QCOMPARE( set.getNumPoints(), 6 );
QGSCOMPARENEAR( set.x.at( 0 ), 0.040317, 0.00001 );
QGSCOMPARENEAR( set.y.at( 0 ), 1.718915, 0.00001 );
QCOMPARE( set.x.at( 1 ), 1.0 );
QCOMPARE( set.y.at( 1 ), 2.0 );
QCOMPARE( set.x.at( 2 ), 2.0 );
QCOMPARE( set.y.at( 2 ), 3.0 );
QCOMPARE( set.x.at( 3 ), 8.0 );
QCOMPARE( set.y.at( 3 ), 3.0 );
QCOMPARE( set.x.at( 4 ), 9.0 );
QCOMPARE( set.y.at( 4 ), 2.0 );
QGSCOMPARENEAR( set.x.at( 5 ), 11.998204, 0.00001 );
QGSCOMPARENEAR( set.y.at( 5 ), 1.896217, 0.00001 );
set = pal::PointSet( 4, x.data(), y.data() );
set.extendLineByDistance( 1, 3, 15 );
QCOMPARE( set.getNumPoints(), 6 );
QGSCOMPARENEAR( set.x.at( 0 ), 0.292893, 0.00001 );
QGSCOMPARENEAR( set.y.at( 0 ), 1.292893, 0.00001 );
QCOMPARE( set.x.at( 1 ), 1.0 );
QCOMPARE( set.y.at( 1 ), 2.0 );
QCOMPARE( set.x.at( 2 ), 2.0 );
QCOMPARE( set.y.at( 2 ), 3.0 );
QCOMPARE( set.x.at( 3 ), 8.0 );
QCOMPARE( set.y.at( 3 ), 3.0 );
QCOMPARE( set.x.at( 4 ), 9.0 );
QCOMPARE( set.y.at( 4 ), 2.0 );
QGSCOMPARENEAR( set.x.at( 5 ), 11.982541, 0.00001 );
QGSCOMPARENEAR( set.y.at( 5 ), 1.676812, 0.00001 );
{
// with averaging
QVector< double > x;
x << 1 << 2 << 8 << 9;
QVector< double > y;
y << 2 << 3 << 3 << 2;
pal::PointSet set( 4, x.data(), y.data() );
set.extendLineByDistance( 1, 3, 0.5 );
QCOMPARE( set.getNumPoints(), 6 );
QGSCOMPARENEAR( set.x.at( 0 ), 0.292893, 0.00001 );
QGSCOMPARENEAR( set.y.at( 0 ), 1.29289, 0.00001 );
QCOMPARE( set.x.at( 1 ), 1.0 );
QCOMPARE( set.y.at( 1 ), 2.0 );
QCOMPARE( set.x.at( 2 ), 2.0 );
QCOMPARE( set.y.at( 2 ), 3.0 );
QCOMPARE( set.x.at( 3 ), 8.0 );
QCOMPARE( set.y.at( 3 ), 3.0 );
QCOMPARE( set.x.at( 4 ), 9.0 );
QCOMPARE( set.y.at( 4 ), 2.0 );
QGSCOMPARENEAR( set.x.at( 5 ), 11.573264, 0.00001 );
QGSCOMPARENEAR( set.y.at( 5 ), 0.457821, 0.00001 );
}
{
QVector< double > x;
x << 1 << 2 << 8 << 9;
QVector< double > y;
y << 2 << 3 << 3 << 2;
pal::PointSet set( 4, x.data(), y.data() );
set.extendLineByDistance( 1, 3, 1 );
QCOMPARE( set.getNumPoints(), 6 );
QGSCOMPARENEAR( set.x.at( 0 ), 0.292893, 0.00001 );
QGSCOMPARENEAR( set.y.at( 0 ), 1.29289, 0.00001 );
QCOMPARE( set.x.at( 1 ), 1.0 );
QCOMPARE( set.y.at( 1 ), 2.0 );
QCOMPARE( set.x.at( 2 ), 2.0 );
QCOMPARE( set.y.at( 2 ), 3.0 );
QCOMPARE( set.x.at( 3 ), 8.0 );
QCOMPARE( set.y.at( 3 ), 3.0 );
QCOMPARE( set.x.at( 4 ), 9.0 );
QCOMPARE( set.y.at( 4 ), 2.0 );
QGSCOMPARENEAR( set.x.at( 5 ), 11.788722, 0.00001 );
QGSCOMPARENEAR( set.y.at( 5 ), 0.894094, 0.00001 );
}
{
QVector< double > x;
x << 1 << 2 << 8 << 9;
QVector< double > y;
y << 2 << 3 << 3 << 2;
pal::PointSet set( 4, x.data(), y.data() );
set.extendLineByDistance( 1, 3, 2 );
QCOMPARE( set.getNumPoints(), 6 );
QGSCOMPARENEAR( set.x.at( 0 ), 0.011936, 0.00001 );
QGSCOMPARENEAR( set.y.at( 0 ), 1.845957, 0.00001 );
QCOMPARE( set.x.at( 1 ), 1.0 );
QCOMPARE( set.y.at( 1 ), 2.0 );
QCOMPARE( set.x.at( 2 ), 2.0 );
QCOMPARE( set.y.at( 2 ), 3.0 );
QCOMPARE( set.x.at( 3 ), 8.0 );
QCOMPARE( set.y.at( 3 ), 3.0 );
QCOMPARE( set.x.at( 4 ), 9.0 );
QCOMPARE( set.y.at( 4 ), 2.0 );
QGSCOMPARENEAR( set.x.at( 5 ), 11.917393, 0.00001 );
QGSCOMPARENEAR( set.y.at( 5 ), 1.300845, 0.00001 );
}
{
QVector< double > x;
x << 1 << 2 << 8 << 9;
QVector< double > y;
y << 2 << 3 << 3 << 2;
pal::PointSet set( 4, x.data(), y.data() );
set.extendLineByDistance( 1, 3, 4 );
QCOMPARE( set.getNumPoints(), 6 );
QGSCOMPARENEAR( set.x.at( 0 ), 0.024713, 0.00001 );
QGSCOMPARENEAR( set.y.at( 0 ), 1.779058, 0.00001 );
QCOMPARE( set.x.at( 1 ), 1.0 );
QCOMPARE( set.y.at( 1 ), 2.0 );
QCOMPARE( set.x.at( 2 ), 2.0 );
QCOMPARE( set.y.at( 2 ), 3.0 );
QCOMPARE( set.x.at( 3 ), 8.0 );
QCOMPARE( set.y.at( 3 ), 3.0 );
QCOMPARE( set.x.at( 4 ), 9.0 );
QCOMPARE( set.y.at( 4 ), 2.0 );
QGSCOMPARENEAR( set.x.at( 5 ), 11.990524, 0.00001 );
QGSCOMPARENEAR( set.y.at( 5 ), 1.761739, 0.00001 );
}
{
QVector< double > x;
x << 1 << 2 << 8 << 9;
QVector< double > y;
y << 2 << 3 << 3 << 2;
pal::PointSet set( 4, x.data(), y.data() );
set.extendLineByDistance( 1, 3, 5 );
QCOMPARE( set.getNumPoints(), 6 );
QGSCOMPARENEAR( set.x.at( 0 ), 0.040317, 0.00001 );
QGSCOMPARENEAR( set.y.at( 0 ), 1.718915, 0.00001 );
QCOMPARE( set.x.at( 1 ), 1.0 );
QCOMPARE( set.y.at( 1 ), 2.0 );
QCOMPARE( set.x.at( 2 ), 2.0 );
QCOMPARE( set.y.at( 2 ), 3.0 );
QCOMPARE( set.x.at( 3 ), 8.0 );
QCOMPARE( set.y.at( 3 ), 3.0 );
QCOMPARE( set.x.at( 4 ), 9.0 );
QCOMPARE( set.y.at( 4 ), 2.0 );
QGSCOMPARENEAR( set.x.at( 5 ), 11.998204, 0.00001 );
QGSCOMPARENEAR( set.y.at( 5 ), 1.896217, 0.00001 );
}
{
QVector< double > x;
x << 1 << 2 << 8 << 9;
QVector< double > y;
y << 2 << 3 << 3 << 2;
pal::PointSet set( 4, x.data(), y.data() );
set.extendLineByDistance( 1, 3, 15 );
QCOMPARE( set.getNumPoints(), 6 );
QGSCOMPARENEAR( set.x.at( 0 ), 0.292893, 0.00001 );
QGSCOMPARENEAR( set.y.at( 0 ), 1.292893, 0.00001 );
QCOMPARE( set.x.at( 1 ), 1.0 );
QCOMPARE( set.y.at( 1 ), 2.0 );
QCOMPARE( set.x.at( 2 ), 2.0 );
QCOMPARE( set.y.at( 2 ), 3.0 );
QCOMPARE( set.x.at( 3 ), 8.0 );
QCOMPARE( set.y.at( 3 ), 3.0 );
QCOMPARE( set.x.at( 4 ), 9.0 );
QCOMPARE( set.y.at( 4 ), 2.0 );
QGSCOMPARENEAR( set.x.at( 5 ), 11.982541, 0.00001 );
QGSCOMPARENEAR( set.y.at( 5 ), 1.676812, 0.00001 );
}
}
void TestQgsLabelingEngine::curvedOverrun()