79 DxfLayer(
QgsVectorLayer *vl,
int layerOutputAttributeIndex = -1,
bool buildDDBlocks = DEFAULT_DXF_DATA_DEFINED_BLOCKS,
int ddBlocksMaxNumberOfClasses = -1, QString overriddenName = QString() )
81 , mLayerOutputAttributeIndex( layerOutputAttributeIndex )
82 , mBuildDDBlocks( buildDDBlocks )
83 , mDDBlocksMaxNumberOfClasses( ddBlocksMaxNumberOfClasses )
84 , mOverriddenName( overriddenName )
103 QString splitLayerAttribute()
const;
127 int mLayerOutputAttributeIndex = -1;
132 bool mBuildDDBlocks = DEFAULT_DXF_DATA_DEFINED_BLOCKS;
137 int mDDBlocksMaxNumberOfClasses = -1;
142 QString mOverriddenName;
148 FlagNoMText = 1 << 1,
149 FlagOnlySelectedFeatures = 1 << 2,
150 FlagHairlineWidthExport = 1 << 3
163 DeviceNotWritableError,
202 Is3DPolygonMesh = 16,
205 ContinuousPattern = 128,
248 ExportResult writeToFile( QIODevice *d, const QString &codec );
254 const QString feedbackMessage()
const {
return mFeedbackMessage; }
347 static int closestColorMatch( QRgb color );
355 QString layerName(
const QString &
id,
const QgsFeature &f )
const;
371 void writeGroup(
int code,
int i )
SIP_PYNAME( writeGroupInt );
379 void writeGroup(
int code,
long long i )
SIP_PYNAME( writeGroupLong );
387 void writeGroup(
int code,
double d )
SIP_PYNAME( writeGroupDouble );
394 void writeGroup(
int code,
const QString &s );
412 void writeGroup(
const QColor &color,
int exactMatch = 62,
int rgbCode = 420,
int transparencyCode = 440 );
418 void writeGroupCode(
int code );
424 void writeInt(
int i );
430 void writeDouble(
double d );
436 void writeString(
const QString &s );
444 int writeHandle(
int code = 5,
int handle = 0 );
455 void writePolyline(
const QgsPointSequence &line,
const QString &layer,
const QString &lineStyleName,
const QColor &color,
double width = -1 )
SIP_SKIP;
467 void writePolyline( const
QgsCurve &curve, const QString &layer, const QString &lineStyleName, const QColor &color,
double width = -1 )
SIP_SKIP;
477 void writePolygon( const
QgsRingSequence &polygon, const QString &layer, const QString &hatchPattern, const QColor &color )
SIP_SKIP;
488 void writePolygon( const
QgsCurvePolygon &polygon, const QString &layer, const QString &hatchPattern, const QColor &color )
SIP_SKIP;
493 void writeLine( const
QgsPoint &pt1, const
QgsPoint &pt2, const QString &layer, const QString &lineStyleName, const QColor &color,
double width = -1 );
499 void writePoint( const QString &layer, const QColor &color, const
QgsPoint &pt )
SIP_PYNAME( writePointV2 );
505 void writeFilledCircle( const QString &layer, const QColor &color, const
QgsPoint &pt,
double radius )
SIP_PYNAME( writeFillCircleV2 );
511 void writeCircle( const QString &layer, const QColor &color, const
QgsPoint &pt,
double radius, const QString &lineStyleName,
double width )
SIP_PYNAME( writeCircleV2 );
523 void writeMText( const QString &layer, const QString &text, const
QgsPoint &pt,
double width,
double angle, const QColor &color );
532 static
double mapUnitScaleFactor(
double scale,
Qgis::RenderUnit symbolUnits,
Qgis::DistanceUnit mapUnits,
double mapUnitsPerPixel = 1.0 );
540 void clipValueToMapUnitScale(
double &value, const
QgsMapUnitScale &scale,
double pixelToMMFactor ) const;
543 static QString dxfLayerName( const QString &name );
546 static QString dxfEncoding( const QString &name );
549 static QStringList encodings();
566 Q_DECL_DEPRECATED
void registerDxfLayer( const QString &layerId,
QgsFeatureId fid, const QString &layer );
575 struct DataDefinedBlockInfo
586 double mSymbologyScale = 1.0;
589 bool mLayerTitleAsName =
false;
591 QTextStream mTextStream;
593 int mSymbolLayerCounter = 0;
595 int mBlockCounter = 0;
597 QHash< const QgsSymbolLayer *, QString > mLineStyles;
598 QHash< const QgsSymbolLayer *, QString > mPointSymbolBlocks;
599 QHash< const QgsSymbolLayer *, double > mPointSymbolBlockSizes;
600 QHash< const QgsSymbolLayer *, double > mPointSymbolBlockAngles;
602 QHash< const QgsSymbolLayer *, QHash <uint, DataDefinedBlockInfo> > mDataDefinedBlockInfo;
605 void createDDBlockInfo();
606 void writeHeader(
const QString &codepage );
607 void prepareRenderers();
610 void writeEntities();
611 void writeEntitiesSymbolLevels(
DxfLayerJob *job );
612 void stopRenderers();
619 void writeDefaultLinetypes();
620 void writeSymbolLayerLinetype(
const QgsSymbolLayer *symbolLayer );
621 void writeLinetype(
const QString &styleName,
const QVector<qreal> &pattern,
Qgis::RenderUnit u );
652 QString lineStyleFromSymbolLayer(
const QgsSymbolLayer *symbolLayer );
655 static int color_distance( QRgb p1,
int index );
656 static QRgb createRgbEntry( qreal r, qreal g, qreal b );
661 QList< QPair< QgsSymbolLayer *, QgsSymbol * > > symbolLayers(
QgsRenderContext &context );
662 static int nLineTypes(
const QList< QPair< QgsSymbolLayer *, QgsSymbol *> > &symbolLayers );
664 void writeSymbolTableBlockRef(
const QString &blockName );
669 double dashSize()
const;
670 double dotSize()
const;
671 double dashSeparatorSize()
const;
672 double sizeToMapUnits(
double s )
const;
673 static QString lineNameFromPenStyle( Qt::PenStyle style );
674 bool layerIsScaleBasedVisible(
const QgsMapLayer *layer )
const;
676 QHash<QString, int> mBlockHandles;
677 QString mBlockHandle;
680 QMap< QString, QMap<QgsFeatureId, QString> > mDxfLayerNames;
683 QList<QgsMapLayer *> mLayerList;
684 QHash<QString, int> mLayerNameAttribute;
685 QHash<QString, int> mLayerDDBlockMaxNumberOfClasses;
686 QHash<QString, QString> mLayerOverriddenName;
687 double mFactor = 1.0;
688 bool mForce2d =
false;
692 void appendCurve(
const QgsCurve &
c, QVector<QgsPoint> &points, QVector<double> &bulges );
693 void appendLineString(
const QgsLineString &ls, QVector<QgsPoint> &points, QVector<double> &bulges );
694 void appendCircularString(
const QgsCircularString &cs, QVector<QgsPoint> &points, QVector<double> &bulges );
695 void appendCompoundCurve(
const QgsCompoundCurve &cc, QVector<QgsPoint> &points, QVector<double> &bulges );
699 QList<DxfLayerJob *> mJobs;
700 std::unique_ptr<QgsLabelingEngine> mLabelingEngine;
702 QString mFeedbackMessage;
Expression contexts are used to encapsulate the parameters around which a QgsExpression should be eva...
Contains information about the context of a rendering operation.
Q_DECLARE_OPERATORS_FOR_FLAGS(QgsTextRendererUtils::CurvedTextFlags)