@@ -373,7 +373,6 @@ QgsDxfExport::QgsDxfExport()
373
373
, mSymbolLayerCounter( 0 )
374
374
, mNextHandleId( DXF_HANDSEED )
375
375
, mBlockCounter( 0 )
376
- , mCrs( -1 )
377
376
{
378
377
}
379
378
@@ -392,7 +391,7 @@ QgsDxfExport& QgsDxfExport::operator=( const QgsDxfExport & dxfExport )
392
391
mSymbolLayerCounter = 0 ; // internal counter
393
392
mNextHandleId = 0 ;
394
393
mBlockCounter = 0 ;
395
- mCrs = - 1 ;
394
+ mCrs = QgsCoordinateReferenceSystem () ;
396
395
return *this ;
397
396
}
398
397
@@ -524,12 +523,12 @@ int QgsDxfExport::writeToFile( QIODevice* d, const QString& encoding )
524
523
mMapSettings .setExtent ( mExtent );
525
524
526
525
int dpi = 96 ;
527
- mFactor = 1000 * dpi / mSymbologyScaleDenominator / 25.4 * QgsUnitTypes::fromUnitToUnitFactor ( mMapUnits , QGis::Meters );
526
+ mFactor = 1000 * dpi / mSymbologyScaleDenominator / 25.4 * QgsUnitTypes::fromUnitToUnitFactor ( mMapUnits , QgsUnitTypes::DistanceMeters );
528
527
mMapSettings .setOutputSize ( QSize ( mExtent .width () * mFactor , mExtent .height () * mFactor ) );
529
528
mMapSettings .setOutputDpi ( dpi );
530
- if ( mCrs >= 0 )
531
- mMapSettings .setDestinationCrs ( QgsCRSCache::instance ()-> crsBySrsId ( mCrs ) );
532
- mMapSettings .setCrsTransformEnabled ( mCrs >= 0 );
529
+ if ( mCrs . isValid () )
530
+ mMapSettings .setDestinationCrs ( mCrs );
531
+ mMapSettings .setCrsTransformEnabled ( mCrs . isValid () );
533
532
534
533
writeHeader ( dxfEncoding ( encoding ) );
535
534
writeTables ();
@@ -553,11 +552,11 @@ void QgsDxfExport::writeHeader( const QString& codepage )
553
552
554
553
// EXTMIN
555
554
writeGroup ( 9 , " $EXTMIN" );
556
- writeGroup ( 0 , QgsPointV2 ( QgsWKBTypes ::PointZ, mExtent .xMinimum (), mExtent .yMinimum () ) );
555
+ writeGroup ( 0 , QgsPointV2 ( QgsWkbTypes ::PointZ, mExtent .xMinimum (), mExtent .yMinimum () ) );
557
556
558
557
// EXTMAX
559
558
writeGroup ( 9 , " $EXTMAX" );
560
- writeGroup ( 0 , QgsPointV2 ( QgsWKBTypes ::PointZ, mExtent .xMaximum (), mExtent .yMaximum () ) );
559
+ writeGroup ( 0 , QgsPointV2 ( QgsWkbTypes ::PointZ, mExtent .xMaximum (), mExtent .yMaximum () ) );
561
560
562
561
// Global linetype scale
563
562
writeGroup ( 9 , " $LTSCALE" );
@@ -1015,7 +1014,7 @@ void QgsDxfExport::writeEntities()
1015
1014
1016
1015
QgsFeatureIterator featureIt = vl->getFeatures ( freq );
1017
1016
1018
- const QgsCoordinateTransform * ct = mMapSettings .hasCrsTransformEnabled () ? mMapSettings .layerTransform ( vl ) : nullptr ;
1017
+ QgsCoordinateTransform ct = mMapSettings .hasCrsTransformEnabled () ? mMapSettings .layerTransform ( vl ) : QgsCoordinateTransform () ;
1019
1018
1020
1019
QgsFeature fet;
1021
1020
while ( featureIt.nextFeature ( fet ) )
@@ -1150,7 +1149,7 @@ void QgsDxfExport::writeEntitiesSymbolLevels( QgsVectorLayer* layer )
1150
1149
}
1151
1150
}
1152
1151
1153
- const QgsCoordinateTransform * ct = mMapSettings .hasCrsTransformEnabled () ? mMapSettings .layerTransform ( layer ) : nullptr ;
1152
+ QgsCoordinateTransform ct = mMapSettings .hasCrsTransformEnabled () ? mMapSettings .layerTransform ( layer ) : QgsCoordinateTransform () ;
1154
1153
1155
1154
// export symbol layers and symbology
1156
1155
for ( int l = 0 ; l < levels.count (); l++ )
@@ -3642,7 +3641,7 @@ void QgsDxfExport::writeMText( const QString& layer, const QString& text, const
3642
3641
writeGroup ( 7 , " STANDARD" ); // so far only support for standard font
3643
3642
}
3644
3643
3645
- void QgsDxfExport::addFeature ( QgsSymbolRenderContext& ctx, const QgsCoordinateTransform * ct, const QString& layer, const QgsSymbolLayer* symbolLayer, const QgsSymbol* symbol )
3644
+ void QgsDxfExport::addFeature ( QgsSymbolRenderContext& ctx, const QgsCoordinateTransform& ct, const QString& layer, const QgsSymbolLayer* symbolLayer, const QgsSymbol* symbol )
3646
3645
{
3647
3646
const QgsFeature *fet = ctx.feature ();
3648
3647
if ( !fet )
@@ -3651,10 +3650,10 @@ void QgsDxfExport::addFeature( QgsSymbolRenderContext& ctx, const QgsCoordinateT
3651
3650
if ( !fet->hasGeometry () )
3652
3651
return ;
3653
3652
3654
- QScopedPointer<QgsAbstractGeometry> geom ( fet->constGeometry ()-> geometry ()->clone () );
3655
- if ( ct )
3653
+ QScopedPointer<QgsAbstractGeometry> geom ( fet->geometry (). geometry ()->clone () );
3654
+ if ( ct. isValid () )
3656
3655
{
3657
- geom->transform ( * ct );
3656
+ geom->transform ( ct );
3658
3657
}
3659
3658
3660
3659
QgsWkbTypes::Type geometryType = geom->wkbType ();
@@ -4389,12 +4388,12 @@ void QgsDxfExport::registerDxfLayer( QString layerId, QgsFeatureId fid, QString
4389
4388
mDxfLayerNames [layerId][fid] = layerName;
4390
4389
}
4391
4390
4392
- void QgsDxfExport::setDestinationCrs ( long crs )
4391
+ void QgsDxfExport::setDestinationCrs ( const QgsCoordinateReferenceSystem& crs )
4393
4392
{
4394
4393
mCrs = crs;
4395
4394
}
4396
4395
4397
- long QgsDxfExport::destinationCrs ()
4396
+ QgsCoordinateReferenceSystem QgsDxfExport::destinationCrs () const
4398
4397
{
4399
4398
return mCrs ;
4400
4399
}
0 commit comments