@@ -700,7 +700,7 @@ void QgsDxfExport::endSection()
700
700
writeGroup ( 0 , " ENDSEC" );
701
701
}
702
702
703
- void QgsDxfExport::writePoint ( const QgsPoint& pt, const QString& layer, const QgsFeature* f, const QgsSymbolLayerV2* symbolLayer, const QgsSymbolV2* symbol )
703
+ void QgsDxfExport::writePoint ( const QgsPoint& pt, const QString& layer, int color, const QgsFeature* f, const QgsSymbolLayerV2* symbolLayer, const QgsSymbolV2* symbol )
704
704
{
705
705
#if 0
706
706
//debug: draw rectangle for debugging
@@ -737,8 +737,12 @@ void QgsDxfExport::writePoint( const QgsPoint& pt, const QString& layer, const Q
737
737
{
738
738
QgsRenderContext ct;
739
739
QgsSymbolV2RenderContext ctx ( ct, QgsSymbolV2::MapUnit, symbol->alpha (), false , symbol->renderHints (), f );
740
- symbolLayer->writeDxf ( *this , mapUnitScaleFactor ( mSymbologyScaleDenominator , msl->sizeUnit (), mMapUnits ), layer, &ctx, f, QPointF ( pt.x (), pt.y () ) );
740
+ if ( symbolLayer->writeDxf ( *this , mapUnitScaleFactor ( mSymbologyScaleDenominator , msl->sizeUnit (), mMapUnits ), layer, &ctx, f, QPointF ( pt.x (), pt.y () ) ) )
741
+ {
742
+ return ;
743
+ }
741
744
}
745
+ writePoint ( layer, color, pt ); // write default point symbol
742
746
}
743
747
else
744
748
{
@@ -782,6 +786,16 @@ void QgsDxfExport::writeLine( const QgsPoint& pt1, const QgsPoint& pt2, const QS
782
786
writePolyline ( line, layer, lineStyleName, color, width, false );
783
787
}
784
788
789
+ void QgsDxfExport::writePoint ( const QString& layer, int color, const QgsPoint& pt )
790
+ {
791
+ writeGroup ( 0 , " POINT" );
792
+ writeGroup ( 8 , layer );
793
+ writeGroup ( 62 , color );
794
+ writeGroup ( 10 , pt.x () );
795
+ writeGroup ( 20 , pt.y () );
796
+ writeGroup ( 30 , 0.0 );
797
+ }
798
+
785
799
void QgsDxfExport::writeSolid ( const QString& layer, int color, const QgsPoint& pt1, const QgsPoint& pt2, const QgsPoint& pt3, const QgsPoint& pt4 )
786
800
{
787
801
writeGroup ( 0 , " SOLID" );
@@ -837,15 +851,34 @@ void QgsDxfExport::addFeature( const QgsFeature& fet, const QString& layer, cons
837
851
QgsGeometry* geom = fet.geometry ();
838
852
if ( geom )
839
853
{
840
- int c = colorFromSymbolLayer ( symbolLayer );
854
+ int c = 0 ;
855
+ if ( mSymbologyExport != NoSymbology )
856
+ {
857
+ c = colorFromSymbolLayer ( symbolLayer );
858
+ }
841
859
double width = widthFromSymbolLayer ( symbolLayer );
842
- QString lineStyleName = lineStyleFromSymbolLayer ( symbolLayer );
860
+ QString lineStyleName = " CONTINUOUS" ;
861
+ if ( mSymbologyExport != NoSymbology )
862
+ {
863
+ lineStyleFromSymbolLayer ( symbolLayer );
864
+ }
843
865
QGis::WkbType geometryType = geom->wkbType ();
844
866
845
867
// single point
846
868
if ( geometryType == QGis::WKBPoint || geometryType == QGis::WKBPoint25D )
847
869
{
848
- writePoint ( geom->asPoint (), layer, &fet, symbolLayer, symbol );
870
+ writePoint ( geom->asPoint (), layer, c, &fet, symbolLayer, symbol );
871
+ }
872
+
873
+ // multipoint
874
+ if ( geometryType == QGis::WKBMultiPoint || geometryType == QGis::WKBMultiPoint25D )
875
+ {
876
+ QgsMultiPoint multiPoint = geom->asMultiPoint ();
877
+ QgsMultiPoint::const_iterator it = multiPoint.constBegin ();
878
+ for ( ; it != multiPoint.constEnd (); ++it )
879
+ {
880
+ writePoint ( *it, layer, c, &fet, symbolLayer, symbol );
881
+ }
849
882
}
850
883
851
884
// single line
0 commit comments