29 QDomDocument doc = elem.ownerDocument();
31 QDomElement elemDataProperties = doc.createElement( QStringLiteral(
"data" ) );
34 elemDataProperties.setAttribute( QStringLiteral(
"height" ), mHeight );
35 elemDataProperties.setAttribute( QStringLiteral(
"extrusion-height" ), mExtrusionHeight );
37 elemDataProperties.setAttribute( QStringLiteral(
"invert-normals" ), mInvertNormals ? QStringLiteral(
"1" ) : QStringLiteral(
"0" ) );
38 elemDataProperties.setAttribute( QStringLiteral(
"add-back-faces" ), mAddBackFaces ? QStringLiteral(
"1" ) : QStringLiteral(
"0" ) );
39 elem.appendChild( elemDataProperties );
41 QDomElement elemMaterial = doc.createElement( QStringLiteral(
"material" ) );
43 elem.appendChild( elemMaterial );
45 QDomElement elemDDP = doc.createElement( QStringLiteral(
"data-defined-properties" ) );
47 elem.appendChild( elemDDP );
54 QDomElement elemDataProperties = elem.firstChildElement( QStringLiteral(
"data" ) );
57 mHeight = elemDataProperties.attribute( QStringLiteral(
"height" ) ).toFloat();
58 mExtrusionHeight = elemDataProperties.attribute( QStringLiteral(
"extrusion-height" ) ).toFloat();
60 mInvertNormals = elemDataProperties.attribute( QStringLiteral(
"invert-normals" ) ).toInt();
61 mAddBackFaces = elemDataProperties.attribute( QStringLiteral(
"add-back-faces" ) ).toInt();
63 QDomElement elemMaterial = elem.firstChildElement( QStringLiteral(
"material" ) );
64 mMaterial.
readXml( elemMaterial );
66 QDomElement elemDDP = elem.firstChildElement( QStringLiteral(
"data-defined-properties" ) );
67 if ( !elemDDP.isNull() )
The class is used as a container of context for various read/write operations on other objects...
static QString altClampingToString(Qgs3DTypes::AltitudeClamping altClamp)
Converts a value from AltitudeClamping enum to a string.
static Qgs3DTypes::CullingMode cullingModeFromString(const QString &str)
Converts a string to a value from CullingMode enum.
void writeXml(QDomElement &elem, const QgsReadWriteContext &context) const override
Writes symbol configuration to the given DOM element.
QgsPropertyCollection mDataDefinedProperties
virtual bool readXml(const QDomElement &collectionElem, const QgsPropertiesDefinition &definitions)
Reads property collection state from an XML element.
QgsPolygon3DSymbol()=default
Constructor for QgsPolygon3DSymbol.
static Qgs3DTypes::AltitudeClamping altClampingFromString(const QString &str)
Converts a string to a value from AltitudeClamping enum.
3 Abstract base class for 3D symbols that are used by VectorLayer3DRenderer objects.
static QString cullingModeToString(Qgs3DTypes::CullingMode mode)
Converts a value from CullingMode enum to a string.
void readXml(const QDomElement &elem)
Reads settings from a DOM element.
void readXml(const QDomElement &elem, const QgsReadWriteContext &context) override
Reads symbol configuration from the given DOM element.
static const QgsPropertiesDefinition & propertyDefinitions()
Returns the symbol layer property definitions.
void writeXml(QDomElement &elem) const
Writes settings to a DOM element.
static Qgs3DTypes::AltitudeBinding altBindingFromString(const QString &str)
Converts a string to a value from AltitudeBinding enum.
QgsAbstract3DSymbol * clone() const override
Returns a new instance of the symbol with the same settings.
virtual bool writeXml(QDomElement &collectionElem, const QgsPropertiesDefinition &definitions) const
Writes the current state of the property collection into an XML element.
static QString altBindingToString(Qgs3DTypes::AltitudeBinding altBind)
Converts a value from AltitudeBinding enum to a string.