[dxf export] initialize PointZ with 0

DXF does not know the concept of NaN
This commit is contained in:
Matthias Kuhn 2019-10-30 11:07:24 +01:00
parent 328f365b16
commit 7da8d91451

View File

@ -580,11 +580,11 @@ void QgsDxfExport::writeHeader( const QString &codepage )
// EXTMIN
writeGroup( 9, QStringLiteral( "$EXTMIN" ) );
writeGroup( 0, QgsPoint( QgsWkbTypes::PointZ, mExtent.xMinimum(), mExtent.yMinimum() ) );
writeGroup( 0, QgsPoint( QgsWkbTypes::PointZ, mExtent.xMinimum(), mExtent.yMinimum(), 0.0 ) );
// EXTMAX
writeGroup( 9, QStringLiteral( "$EXTMAX" ) );
writeGroup( 0, QgsPoint( QgsWkbTypes::PointZ, mExtent.xMaximum(), mExtent.yMaximum() ) );
writeGroup( 0, QgsPoint( QgsWkbTypes::PointZ, mExtent.xMaximum(), mExtent.yMaximum(), 0.0 ) );
// Global linetype scale
writeGroup( 9, QStringLiteral( "$LTSCALE" ) );
@ -760,9 +760,9 @@ void QgsDxfExport::writeTables()
writeGroup( 78, 0 ); // snap isopair
writeGroup( 281, 0 ); // render mode (0 = 2D optimized)
writeGroup( 65, 1 ); // value of UCSVP for this viewport
writeGroup( 100, QgsPoint( QgsWkbTypes::PointZ ) ); // UCS origin
writeGroup( 101, QgsPoint( QgsWkbTypes::PointZ, 1.0 ) ); // UCS x axis
writeGroup( 102, QgsPoint( QgsWkbTypes::PointZ, 0.0, 1.0 ) ); // UCS y axis
writeGroup( 100, QgsPoint( QgsWkbTypes::PointZ, 0.0, 0.0, 0.0 ) );// UCS origin
writeGroup( 101, QgsPoint( QgsWkbTypes::PointZ, 1.0, 0.0, 0.0 ) );// UCS x axis
writeGroup( 102, QgsPoint( QgsWkbTypes::PointZ, 0.0, 1.0, 0.0 ) );// UCS y axis
writeGroup( 79, 0 ); // Orthographic type of UCS (0 = UCS is not orthographic)
writeGroup( 146, 0.0 ); // Elevation
@ -879,7 +879,7 @@ void QgsDxfExport::writeBlocks()
writeGroup( 100, QStringLiteral( "AcDbBlockBegin" ) );
writeGroup( 2, block );
writeGroup( 70, 0 );
writeGroup( 0, QgsPoint( QgsWkbTypes::PointZ ) );
writeGroup( 0, QgsPoint( QgsWkbTypes::PointZ, 0.0, 0.0, 0.0 ) );
writeGroup( 3, block );
writeGroup( 1, QString() );
writeGroup( 0, QStringLiteral( "ENDBLK" ) );
@ -932,7 +932,7 @@ void QgsDxfExport::writeBlocks()
// todo: consider anchor point
// double size = ml->size();
// size *= mapUnitScaleFactor( mSymbologyScale, ml->sizeUnit(), mMapUnits );
writeGroup( 0, QgsPoint( QgsWkbTypes::PointZ ) );
writeGroup( 0, QgsPoint( QgsWkbTypes::PointZ, 0.0, 0.0, 0.0 ) );
writeGroup( 3, block );
writeGroup( 1, QString() );
@ -3524,7 +3524,7 @@ void QgsDxfExport::writePolyline( const QgsPointSequence &line, const QString &l
writeGroup( 6, lineStyleName );
writeGroup( color );
writeGroup( 100, QStringLiteral( "AcDb3dPolyline" ) );
writeGroup( 0, QgsPoint( QgsWkbTypes::PointZ ) );
writeGroup( 0, QgsPoint( QgsWkbTypes::PointZ, 0.0, 0.0, 0.0 ) );
writeGroup( 70, 8 );
for ( int i = 0; i < n; i++ )
@ -3666,7 +3666,7 @@ void QgsDxfExport::writePolyline( const QgsCurve &curve, const QString &layer, c
writeGroup( 6, lineStyleName );
writeGroup( color );
writeGroup( 100, QStringLiteral( "AcDb3dPolyline" ) );
writeGroup( 0, QgsPoint( QgsWkbTypes::PointZ ) );
writeGroup( 0, QgsPoint( QgsWkbTypes::PointZ, 0.0, 0.0, 0.0 ) );
writeGroup( 70, 8 );
for ( int i = 0; i < points.size(); i++ )
@ -3704,7 +3704,7 @@ void QgsDxfExport::writePolygon( const QgsRingSequence &polygon, const QString &
writeGroup( color ); // Color
writeGroup( 100, QStringLiteral( "AcDbHatch" ) );
writeGroup( 0, QgsPoint( QgsWkbTypes::PointZ ) ); // Elevation point (in OCS)
writeGroup( 0, QgsPoint( QgsWkbTypes::PointZ, 0.0, 0.0, 0.0 ) ); // Elevation point (in OCS)
writeGroup( 200, QgsPoint( QgsWkbTypes::PointZ, 0.0, 0.0, 1.0 ) );
writeGroup( 2, hatchPattern ); // Hatch pattern name
@ -3743,7 +3743,7 @@ void QgsDxfExport::writePolygon( const QgsCurvePolygon &polygon, const QString &
writeGroup( color ); // Color
writeGroup( 100, QStringLiteral( "AcDbHatch" ) );
writeGroup( 0, QgsPoint( QgsWkbTypes::PointZ ) ); // Elevation point (in OCS)
writeGroup( 0, QgsPoint( QgsWkbTypes::PointZ, 0.0, 0.0, 0.0 ) ); // Elevation point (in OCS)
writeGroup( 200, QgsPoint( QgsWkbTypes::PointZ, 0.0, 0.0, 1.0 ) );
writeGroup( 2, hatchPattern ); // Hatch pattern name
@ -3820,7 +3820,7 @@ void QgsDxfExport::writeFilledCircle( const QString &layer, const QColor &color,
writeGroup( color ); // Color (0 by block, 256 by layer)
writeGroup( 100, QStringLiteral( "AcDbHatch" ) );
writeGroup( 0, QgsPoint( QgsWkbTypes::PointZ ) ); // Elevation point (in OCS)
writeGroup( 0, QgsPoint( QgsWkbTypes::PointZ, 0.0, 0.0, 0.0 ) ); // Elevation point (in OCS)
writeGroup( 200, QgsPoint( QgsWkbTypes::PointZ, 0.0, 0.0, 1.0 ) );
writeGroup( 2, QStringLiteral( "SOLID" ) ); // Hatch pattern name