@@ -757,13 +757,25 @@ bool QgsSimpleMarkerSymbolLayerV2::writeDxf( QgsDxfExport& e, double mmMapUnitSc
757
757
break ;
758
758
}
759
759
}
760
-
761
760
if ( mSizeUnit == QgsSymbolV2::MM )
762
761
{
763
762
size *= mmMapUnitScaleFactor;
764
763
}
765
764
double halfSize = size / 2.0 ;
766
765
766
+ // outlineWidth
767
+ double outlineWidth = mOutlineWidth ;
768
+ QgsExpression* outlineWidthExpression = expression ( " outline_width" );
769
+ if ( outlineWidthExpression )
770
+ {
771
+ outlineWidth = outlineWidthExpression->evaluate ( const_cast <QgsFeature*>( context->feature () ) ).toDouble ();
772
+ }
773
+ if ( mSizeUnit == QgsSymbolV2::MM )
774
+ {
775
+ outlineWidth *= mmMapUnitScaleFactor;
776
+ }
777
+
778
+ // color
767
779
QColor c = mPen .color ();
768
780
if ( mPen .style () == Qt::NoPen )
769
781
{
@@ -833,6 +845,56 @@ bool QgsSimpleMarkerSymbolLayerV2::writeDxf( QgsDxfExport& e, double mmMapUnitSc
833
845
QPointF pt4 = t.map ( QPointF ( halfSize, 0 ) );
834
846
e.writeSolid ( layerName, colorIndex, QgsPoint ( pt1.x (), pt1.y () ), QgsPoint ( pt2.x (), pt2.y () ), QgsPoint ( pt3.x (), pt3.y () ), QgsPoint ( pt4.x (), pt4.y () ) );
835
847
}
848
+ else if ( mName == " triangle" )
849
+ {
850
+ QPointF pt1 = t.map ( QPointF ( -halfSize, -halfSize ) );
851
+ QPointF pt2 = t.map ( QPointF ( halfSize, -halfSize ) );
852
+ QPointF pt3 = t.map ( QPointF ( 0 , halfSize ) );
853
+ e.writeSolid ( layerName, colorIndex, QgsPoint ( pt1.x (), pt1.y () ), QgsPoint ( pt2.x (), pt2.y () ), QgsPoint ( pt3.x (), pt3.y () ), QgsPoint ( pt3.x (), pt3.y () ) );
854
+ }
855
+ /* else if( mName == "equilateral_triangle" )
856
+ {
857
+
858
+ }*/
859
+ else if ( mName == " line" )
860
+ {
861
+ QPointF pt1 = t.map ( QPointF ( 0 , halfSize ) );
862
+ QPointF pt2 = t.map ( QPointF ( 0 , -halfSize ) );
863
+ e.writeLine ( QgsPoint ( pt1.x (), pt1.y () ), QgsPoint ( pt2.x (), pt2.y () ), layerName, " CONTINUOUS" , colorIndex, outlineWidth );
864
+ }
865
+ else if ( mName == " coss" )
866
+ {
867
+ QPointF pt1 = t.map ( QPointF ( -halfSize, 0 ) );
868
+ QPointF pt2 = t.map ( QPointF ( halfSize, 0 ) );
869
+ QPointF pt3 = t.map ( QPointF ( 0 , -halfSize ) );
870
+ QPointF pt4 = t.map ( QPointF ( 0 , halfSize ) );
871
+ e.writeLine ( QgsPoint ( pt1.x (), pt1.y () ), QgsPoint ( pt2.x (), pt2.y () ), layerName, " CONTINUOUS" , colorIndex, outlineWidth );
872
+ e.writeLine ( QgsPoint ( pt3.x (), pt3.y () ), QgsPoint ( pt4.x (), pt4.y () ), layerName, " CONTINUOUS" , colorIndex, outlineWidth );
873
+ }
874
+ else if ( mName == " x" || mName == " cross2" )
875
+ {
876
+ QPointF pt1 = t.map ( QPointF ( -halfSize, -halfSize ) );
877
+ QPointF pt2 = t.map ( QPointF ( halfSize, halfSize ) );
878
+ QPointF pt3 = t.map ( QPointF ( -halfSize, halfSize ) );
879
+ QPointF pt4 = t.map ( QPointF ( halfSize, -halfSize ) );
880
+ e.writeLine ( QgsPoint ( pt1.x (), pt1.y () ), QgsPoint ( pt2.x (), pt2.y () ), layerName, " CONTINUOUS" , colorIndex, outlineWidth );
881
+ e.writeLine ( QgsPoint ( pt3.x (), pt3.y () ), QgsPoint ( pt4.x (), pt4.y () ), layerName, " CONTINUOUS" , colorIndex, outlineWidth );
882
+ }
883
+ else if ( mName == " arrowhead" )
884
+ {
885
+ QPointF pt1 = t.map ( QPointF ( -halfSize, halfSize ) );
886
+ QPointF pt2 = t.map ( QPointF ( 0 , 0 ) );
887
+ QPointF pt3 = t.map ( QPointF ( -halfSize, -halfSize ) );
888
+ e.writeLine ( QgsPoint ( pt1.x (), pt1.y () ), QgsPoint ( pt2.x (), pt2.y () ), layerName, " CONTINUOUS" , colorIndex, outlineWidth );
889
+ e.writeLine ( QgsPoint ( pt3.x (), pt3.y () ), QgsPoint ( pt2.x (), pt2.y () ), layerName, " CONTINUOUS" , colorIndex, outlineWidth );
890
+ }
891
+ else if ( mName == " filled_arrowhead" )
892
+ {
893
+ QPointF pt1 = t.map ( QPointF ( -halfSize, halfSize ) );
894
+ QPointF pt2 = t.map ( QPointF ( 0 , 0 ) );
895
+ QPointF pt3 = t.map ( QPointF ( -halfSize, -halfSize ) );
896
+ e.writeSolid ( layerName, colorIndex, QgsPoint ( pt1.x (), pt1.y () ), QgsPoint ( pt2.x (), pt2.y () ), QgsPoint ( pt3.x (), pt3.y () ), QgsPoint ( pt3.x (), pt3.y () ) );
897
+ }
836
898
else
837
899
{
838
900
return false ;
0 commit comments