mirror of
https://github.com/qgis/QGIS.git
synced 2025-10-09 00:08:52 -04:00
qgsline3dsymbol: Rename height property to offset
The `height` property is in fact a vertical offset applied to the line. Also, the `offset` phrase is already used by the terrain for similar purposes. height() are setHeight() are kept for API compatibility reasons.
This commit is contained in:
parent
89f40b05f8
commit
630fec5cc8
@ -80,13 +80,34 @@ Returns width of the line symbol (in map units)
|
|||||||
Sets width of the line symbol (in map units)
|
Sets width of the line symbol (in map units)
|
||||||
%End
|
%End
|
||||||
|
|
||||||
float height() const;
|
float height() const /Deprecated/;
|
||||||
%Docstring
|
%Docstring
|
||||||
Returns height (altitude) of the symbol (in map units)
|
Returns height (altitude) of the symbol (in map units)
|
||||||
|
|
||||||
|
.. deprecated:: QGIS 3.36.
|
||||||
|
Use :py:func:`~QgsLine3DSymbol.offset` instead.
|
||||||
%End
|
%End
|
||||||
void setHeight( float height );
|
|
||||||
|
void setHeight( float height ) /Deprecated/;
|
||||||
%Docstring
|
%Docstring
|
||||||
Sets height (altitude) of the symbol (in map units)
|
Sets height (altitude) of the symbol (in map units)
|
||||||
|
|
||||||
|
.. deprecated:: QGIS 3.36.
|
||||||
|
Use :py:func:`~QgsLine3DSymbol.setOffset` instead.
|
||||||
|
%End
|
||||||
|
|
||||||
|
float offset() const;
|
||||||
|
%Docstring
|
||||||
|
Returns vertical offset of the symbol (in map units)
|
||||||
|
|
||||||
|
.. versionadded:: 3.36
|
||||||
|
%End
|
||||||
|
|
||||||
|
void setOffset( float offset );
|
||||||
|
%Docstring
|
||||||
|
Sets vertical offset of the symbol (in map units)
|
||||||
|
|
||||||
|
.. versionadded:: 3.36
|
||||||
%End
|
%End
|
||||||
|
|
||||||
float extrusionHeight() const;
|
float extrusionHeight() const;
|
||||||
|
@ -36,7 +36,7 @@ QgsAbstract3DSymbol *QgsLine3DSymbol::clone() const
|
|||||||
result->mAltClamping = mAltClamping;
|
result->mAltClamping = mAltClamping;
|
||||||
result->mAltBinding = mAltBinding;
|
result->mAltBinding = mAltBinding;
|
||||||
result->mWidth = mWidth;
|
result->mWidth = mWidth;
|
||||||
result->mHeight = mHeight;
|
result->mOffset = mOffset;
|
||||||
result->mExtrusionHeight = mExtrusionHeight;
|
result->mExtrusionHeight = mExtrusionHeight;
|
||||||
result->mRenderAsSimpleLines = mRenderAsSimpleLines;
|
result->mRenderAsSimpleLines = mRenderAsSimpleLines;
|
||||||
result->mMaterialSettings.reset( mMaterialSettings->clone() );
|
result->mMaterialSettings.reset( mMaterialSettings->clone() );
|
||||||
@ -53,7 +53,7 @@ void QgsLine3DSymbol::writeXml( QDomElement &elem, const QgsReadWriteContext &co
|
|||||||
QDomElement elemDataProperties = doc.createElement( QStringLiteral( "data" ) );
|
QDomElement elemDataProperties = doc.createElement( QStringLiteral( "data" ) );
|
||||||
elemDataProperties.setAttribute( QStringLiteral( "alt-clamping" ), Qgs3DUtils::altClampingToString( mAltClamping ) );
|
elemDataProperties.setAttribute( QStringLiteral( "alt-clamping" ), Qgs3DUtils::altClampingToString( mAltClamping ) );
|
||||||
elemDataProperties.setAttribute( QStringLiteral( "alt-binding" ), Qgs3DUtils::altBindingToString( mAltBinding ) );
|
elemDataProperties.setAttribute( QStringLiteral( "alt-binding" ), Qgs3DUtils::altBindingToString( mAltBinding ) );
|
||||||
elemDataProperties.setAttribute( QStringLiteral( "height" ), mHeight );
|
elemDataProperties.setAttribute( QStringLiteral( "offset" ), mOffset );
|
||||||
elemDataProperties.setAttribute( QStringLiteral( "extrusion-height" ), mExtrusionHeight );
|
elemDataProperties.setAttribute( QStringLiteral( "extrusion-height" ), mExtrusionHeight );
|
||||||
elemDataProperties.setAttribute( QStringLiteral( "simple-lines" ), mRenderAsSimpleLines ? QStringLiteral( "1" ) : QStringLiteral( "0" ) );
|
elemDataProperties.setAttribute( QStringLiteral( "simple-lines" ), mRenderAsSimpleLines ? QStringLiteral( "1" ) : QStringLiteral( "0" ) );
|
||||||
elemDataProperties.setAttribute( QStringLiteral( "width" ), mWidth );
|
elemDataProperties.setAttribute( QStringLiteral( "width" ), mWidth );
|
||||||
@ -72,7 +72,7 @@ void QgsLine3DSymbol::readXml( const QDomElement &elem, const QgsReadWriteContex
|
|||||||
const QDomElement elemDataProperties = elem.firstChildElement( QStringLiteral( "data" ) );
|
const QDomElement elemDataProperties = elem.firstChildElement( QStringLiteral( "data" ) );
|
||||||
mAltClamping = Qgs3DUtils::altClampingFromString( elemDataProperties.attribute( QStringLiteral( "alt-clamping" ) ) );
|
mAltClamping = Qgs3DUtils::altClampingFromString( elemDataProperties.attribute( QStringLiteral( "alt-clamping" ) ) );
|
||||||
mAltBinding = Qgs3DUtils::altBindingFromString( elemDataProperties.attribute( QStringLiteral( "alt-binding" ) ) );
|
mAltBinding = Qgs3DUtils::altBindingFromString( elemDataProperties.attribute( QStringLiteral( "alt-binding" ) ) );
|
||||||
mHeight = elemDataProperties.attribute( QStringLiteral( "height" ) ).toFloat();
|
mOffset = elemDataProperties.attribute( QStringLiteral( "offset" ) ).toFloat();
|
||||||
mExtrusionHeight = elemDataProperties.attribute( QStringLiteral( "extrusion-height" ) ).toFloat();
|
mExtrusionHeight = elemDataProperties.attribute( QStringLiteral( "extrusion-height" ) ).toFloat();
|
||||||
mWidth = elemDataProperties.attribute( QStringLiteral( "width" ) ).toFloat();
|
mWidth = elemDataProperties.attribute( QStringLiteral( "width" ) ).toFloat();
|
||||||
mRenderAsSimpleLines = elemDataProperties.attribute( QStringLiteral( "simple-lines" ), QStringLiteral( "0" ) ).toInt();
|
mRenderAsSimpleLines = elemDataProperties.attribute( QStringLiteral( "simple-lines" ), QStringLiteral( "0" ) ).toInt();
|
||||||
@ -110,7 +110,7 @@ void QgsLine3DSymbol::setDefaultPropertiesFromLayer( const QgsVectorLayer *layer
|
|||||||
mAltClamping = props->clamping();
|
mAltClamping = props->clamping();
|
||||||
mAltBinding = props->binding();
|
mAltBinding = props->binding();
|
||||||
mExtrusionHeight = props->extrusionEnabled() ? static_cast< float>( props->extrusionHeight() ) : 0.0f;
|
mExtrusionHeight = props->extrusionEnabled() ? static_cast< float>( props->extrusionHeight() ) : 0.0f;
|
||||||
mHeight = static_cast< float >( props->zOffset() );
|
mOffset = static_cast< float >( props->zOffset() );
|
||||||
}
|
}
|
||||||
|
|
||||||
QgsAbstract3DSymbol *QgsLine3DSymbol::create()
|
QgsAbstract3DSymbol *QgsLine3DSymbol::create()
|
||||||
|
@ -69,10 +69,33 @@ class _3D_EXPORT QgsLine3DSymbol : public QgsAbstract3DSymbol SIP_NODEFAULTCTORS
|
|||||||
//! Sets width of the line symbol (in map units)
|
//! Sets width of the line symbol (in map units)
|
||||||
void setWidth( float width ) { mWidth = width; }
|
void setWidth( float width ) { mWidth = width; }
|
||||||
|
|
||||||
//! Returns height (altitude) of the symbol (in map units)
|
/**
|
||||||
float height() const { return mHeight; }
|
* Returns height (altitude) of the symbol (in map units)
|
||||||
//! Sets height (altitude) of the symbol (in map units)
|
*
|
||||||
void setHeight( float height ) { mHeight = height; }
|
* \deprecated since QGIS 3.36. Use offset() instead.
|
||||||
|
*/
|
||||||
|
Q_DECL_DEPRECATED float height() const SIP_DEPRECATED { return mOffset; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets height (altitude) of the symbol (in map units)
|
||||||
|
*
|
||||||
|
* \deprecated since QGIS 3.36. Use setOffset() instead.
|
||||||
|
*/
|
||||||
|
Q_DECL_DEPRECATED void setHeight( float height ) SIP_DEPRECATED { mOffset = height; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns vertical offset of the symbol (in map units)
|
||||||
|
*
|
||||||
|
* \since QGIS 3.36
|
||||||
|
*/
|
||||||
|
float offset() const { return mOffset; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets vertical offset of the symbol (in map units)
|
||||||
|
*
|
||||||
|
* \since QGIS 3.36
|
||||||
|
*/
|
||||||
|
void setOffset( float offset ) { mOffset = offset; }
|
||||||
|
|
||||||
//! Returns extrusion height (in map units)
|
//! Returns extrusion height (in map units)
|
||||||
float extrusionHeight() const { return mExtrusionHeight; }
|
float extrusionHeight() const { return mExtrusionHeight; }
|
||||||
@ -107,7 +130,7 @@ class _3D_EXPORT QgsLine3DSymbol : public QgsAbstract3DSymbol SIP_NODEFAULTCTORS
|
|||||||
Qgis::AltitudeBinding mAltBinding = Qgis::AltitudeBinding::Centroid;
|
Qgis::AltitudeBinding mAltBinding = Qgis::AltitudeBinding::Centroid;
|
||||||
|
|
||||||
float mWidth = 2.0f; //!< Line width (horizontally)
|
float mWidth = 2.0f; //!< Line width (horizontally)
|
||||||
float mHeight = 0.0f; //!< Base height of polygons
|
float mOffset = 0.0f; //!< Base height of polygons
|
||||||
float mExtrusionHeight = 0.0f; //!< How much to extrude (0 means no walls)
|
float mExtrusionHeight = 0.0f; //!< How much to extrude (0 means no walls)
|
||||||
bool mRenderAsSimpleLines = false; //!< Whether to render data with simple lines (otherwise it uses buffer)
|
bool mRenderAsSimpleLines = false; //!< Whether to render data with simple lines (otherwise it uses buffer)
|
||||||
std::unique_ptr< QgsAbstractMaterialSettings > mMaterialSettings; //!< Defines appearance of objects
|
std::unique_ptr< QgsAbstractMaterialSettings > mMaterialSettings; //!< Defines appearance of objects
|
||||||
|
@ -150,7 +150,7 @@ void QgsBufferedLine3DSymbolHandler::processFeature( const QgsFeature &f, const
|
|||||||
if ( QgsWkbTypes::flatType( buffered->wkbType() ) == Qgis::WkbType::Polygon )
|
if ( QgsWkbTypes::flatType( buffered->wkbType() ) == Qgis::WkbType::Polygon )
|
||||||
{
|
{
|
||||||
QgsPolygon *polyBuffered = static_cast<QgsPolygon *>( buffered );
|
QgsPolygon *polyBuffered = static_cast<QgsPolygon *>( buffered );
|
||||||
processPolygon( polyBuffered, f.id(), mSymbol->height(), mSymbol->extrusionHeight(), context, out );
|
processPolygon( polyBuffered, f.id(), mSymbol->offset(), mSymbol->extrusionHeight(), context, out );
|
||||||
}
|
}
|
||||||
else if ( QgsWkbTypes::flatType( buffered->wkbType() ) == Qgis::WkbType::MultiPolygon )
|
else if ( QgsWkbTypes::flatType( buffered->wkbType() ) == Qgis::WkbType::MultiPolygon )
|
||||||
{
|
{
|
||||||
@ -158,7 +158,7 @@ void QgsBufferedLine3DSymbolHandler::processFeature( const QgsFeature &f, const
|
|||||||
for ( int i = 0; i < mpolyBuffered->numGeometries(); ++i )
|
for ( int i = 0; i < mpolyBuffered->numGeometries(); ++i )
|
||||||
{
|
{
|
||||||
QgsPolygon *polyBuffered = static_cast<QgsPolygon *>( mpolyBuffered->polygonN( i ) )->clone(); // need to clone individual geometry parts
|
QgsPolygon *polyBuffered = static_cast<QgsPolygon *>( mpolyBuffered->polygonN( i ) )->clone(); // need to clone individual geometry parts
|
||||||
processPolygon( polyBuffered, f.id(), mSymbol->height(), mSymbol->extrusionHeight(), context, out );
|
processPolygon( polyBuffered, f.id(), mSymbol->offset(), mSymbol->extrusionHeight(), context, out );
|
||||||
}
|
}
|
||||||
delete buffered;
|
delete buffered;
|
||||||
}
|
}
|
||||||
@ -262,8 +262,8 @@ bool QgsSimpleLine3DSymbolHandler::prepare( const Qgs3DRenderContext &context, Q
|
|||||||
{
|
{
|
||||||
Q_UNUSED( attributeNames )
|
Q_UNUSED( attributeNames )
|
||||||
|
|
||||||
outNormal.init( mSymbol->altitudeClamping(), mSymbol->altitudeBinding(), mSymbol->height(), &context.map() );
|
outNormal.init( mSymbol->altitudeClamping(), mSymbol->altitudeBinding(), mSymbol->offset(), &context.map() );
|
||||||
outSelected.init( mSymbol->altitudeClamping(), mSymbol->altitudeBinding(), mSymbol->height(), &context.map() );
|
outSelected.init( mSymbol->altitudeClamping(), mSymbol->altitudeBinding(), mSymbol->offset(), &context.map() );
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -377,8 +377,8 @@ bool QgsThickLine3DSymbolHandler::prepare( const Qgs3DRenderContext &context, QS
|
|||||||
|
|
||||||
outNormal.withAdjacency = true;
|
outNormal.withAdjacency = true;
|
||||||
outSelected.withAdjacency = true;
|
outSelected.withAdjacency = true;
|
||||||
outNormal.init( mSymbol->altitudeClamping(), mSymbol->altitudeBinding(), mSymbol->height(), &context.map() );
|
outNormal.init( mSymbol->altitudeClamping(), mSymbol->altitudeBinding(), mSymbol->offset(), &context.map() );
|
||||||
outSelected.init( mSymbol->altitudeClamping(), mSymbol->altitudeBinding(), mSymbol->height(), &context.map() );
|
outSelected.init( mSymbol->altitudeClamping(), mSymbol->altitudeBinding(), mSymbol->offset(), &context.map() );
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -59,7 +59,7 @@ void QgsLine3DSymbolWidget::setSymbol( const QgsAbstract3DSymbol *symbol, QgsVec
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
spinWidth->setValue( lineSymbol->width() );
|
spinWidth->setValue( lineSymbol->width() );
|
||||||
spinHeight->setValue( lineSymbol->height() );
|
spinHeight->setValue( lineSymbol->offset() );
|
||||||
spinExtrusion->setValue( lineSymbol->extrusionHeight() );
|
spinExtrusion->setValue( lineSymbol->extrusionHeight() );
|
||||||
cboAltClamping->setCurrentIndex( cboAltClamping->findData( static_cast< int >( lineSymbol->altitudeClamping() ) ) );
|
cboAltClamping->setCurrentIndex( cboAltClamping->findData( static_cast< int >( lineSymbol->altitudeClamping() ) ) );
|
||||||
cboAltBinding->setCurrentIndex( static_cast<int>( lineSymbol->altitudeBinding() ) );
|
cboAltBinding->setCurrentIndex( static_cast<int>( lineSymbol->altitudeBinding() ) );
|
||||||
@ -74,7 +74,7 @@ QgsAbstract3DSymbol *QgsLine3DSymbolWidget::symbol()
|
|||||||
{
|
{
|
||||||
std::unique_ptr< QgsLine3DSymbol > sym = std::make_unique< QgsLine3DSymbol >();
|
std::unique_ptr< QgsLine3DSymbol > sym = std::make_unique< QgsLine3DSymbol >();
|
||||||
sym->setWidth( spinWidth->value() );
|
sym->setWidth( spinWidth->value() );
|
||||||
sym->setHeight( spinHeight->value() );
|
sym->setOffset( spinHeight->value() );
|
||||||
sym->setExtrusionHeight( spinExtrusion->value() );
|
sym->setExtrusionHeight( spinExtrusion->value() );
|
||||||
sym->setAltitudeClamping( static_cast<Qgis::AltitudeClamping>( cboAltClamping->currentData().toInt() ) );
|
sym->setAltitudeClamping( static_cast<Qgis::AltitudeClamping>( cboAltClamping->currentData().toInt() ) );
|
||||||
sym->setAltitudeBinding( static_cast<Qgis::AltitudeBinding>( cboAltBinding->currentIndex() ) );
|
sym->setAltitudeBinding( static_cast<Qgis::AltitudeBinding>( cboAltBinding->currentIndex() ) );
|
||||||
|
@ -735,7 +735,7 @@ void TestQgs3DRendering::testBufferedLineRenderingWidth()
|
|||||||
QgsLine3DSymbol *lineSymbol = new QgsLine3DSymbol;
|
QgsLine3DSymbol *lineSymbol = new QgsLine3DSymbol;
|
||||||
lineSymbol->setWidth( 20 );
|
lineSymbol->setWidth( 20 );
|
||||||
lineSymbol->setExtrusionHeight( 30 );
|
lineSymbol->setExtrusionHeight( 30 );
|
||||||
lineSymbol->setHeight( 10 );
|
lineSymbol->setOffset( 10 );
|
||||||
QgsPhongMaterialSettings matSettings;
|
QgsPhongMaterialSettings matSettings;
|
||||||
matSettings.setAmbient( Qt::red );
|
matSettings.setAmbient( Qt::red );
|
||||||
lineSymbol->setMaterialSettings( matSettings.clone() );
|
lineSymbol->setMaterialSettings( matSettings.clone() );
|
||||||
|
Loading…
x
Reference in New Issue
Block a user