16#ifndef QGSRUBBERBAND3D_H
17#define QGSRUBBERBAND3D_H
48#if QT_VERSION >= QT_VERSION_CHECK( 6, 0, 0 )
57#if QT_VERSION < QT_VERSION_CHECK( 6, 0, 0 )
62 class QGeometryRenderer;
76class _3D_EXPORT QgsRubberBand3D
101 void setWidth(
float width );
104 QColor color()
const;
107 void setColor( QColor color );
112 void setMarkerType( MarkerType marker );
117 MarkerType markerType()
const;
121 void addPoint(
const QgsPoint &pt );
123 void removeLastPoint();
125 void moveLastPoint(
const QgsPoint &pt );
128 void setHideLastMarker(
bool hide ) { mHideLastMarker = hide; }
131 void updateGeometry();
132 void updateMarkerMaterial();
136 bool mHideLastMarker =
false;
143 MarkerType mMarkerType = Circle;
145 QColor mColor = Qt::red;
147 Qt3DCore::QEntity *mLineEntity =
nullptr;
148 Qt3DCore::QEntity *mMarkerEntity =
nullptr;
151 Qt3DRender::QGeometryRenderer *mLineGeomRenderer =
nullptr;
152#if QT_VERSION < QT_VERSION_CHECK( 6, 0, 0 )
153 Qt3DRender::QGeometry *mGeometry =
nullptr;
154 Qt3DRender::QAttribute *mPositionAttribute =
nullptr;
155 Qt3DRender::QAttribute *mIndexAttribute =
nullptr;
157 Qt3DCore::QGeometry *mGeometry =
nullptr;
158 Qt3DCore::QAttribute *mPositionAttribute =
nullptr;
159 Qt3DCore::QAttribute *mIndexAttribute =
nullptr;
161 QgsLineMaterial *mLineMaterial =
nullptr;
164 Qt3DRender::QGeometryRenderer *mMarkerGeometryRenderer =
nullptr;
168 std::unique_ptr<QgsMarkerSymbol> mMarkerSymbol;
171 QgsRubberBand3D(
const QgsRubberBand3D & ) =
delete;
172 QgsRubberBand3D &operator=(
const QgsRubberBand3D & ) =
delete;
GeometryType
The geometry types are used to group Qgis::WkbType in a coarse way.
Line string geometry type, with support for z-dimension and m-values.
A marker symbol type, for rendering Point and MultiPoint geometries.
Point geometry type, with support for z-dimension and m-values.