QGIS API Documentation
4.3.0-Master (8c22baaae17)
Toggle main menu visibility
Loading...
Searching...
No Matches
src
3d
symbols
qgsbillboardgeometry.h
Go to the documentation of this file.
1
/***************************************************************************
2
qgsbillboardgeometry.h
3
--------------------------------------
4
Date : Jul 2019
5
Copyright : (C) 2019 by Ismail Sunni
6
Email : imajimatika at gmail dot com
7
***************************************************************************
8
* *
9
* This program is free software; you can redistribute it and/or modify *
10
* it under the terms of the GNU General Public License as published by *
11
* the Free Software Foundation; either version 2 of the License, or *
12
* (at your option) any later version. *
13
* *
14
***************************************************************************/
15
16
#ifndef QGSBILLBOARDGEOMETRY_H
17
#define QGSBILLBOARDGEOMETRY_H
18
19
#include "qgis_3d.h"
20
21
#include <QObject>
22
#include <QVector2D>
23
#include <QVector3D>
24
#include <Qt3DCore/QAttribute>
25
#include <Qt3DCore/QBuffer>
26
#include <Qt3DCore/QGeometry>
27
28
#define SIP_NO_FILE
29
40
class
_3D_EXPORT
QgsBillboardGeometry
:
public
Qt3DCore::QGeometry
41
{
42
Q_OBJECT
43
44
Q_PROPERTY(
int
count
READ
count
NOTIFY
countChanged
)
45
public
:
47
QgsBillboardGeometry
( Qt3DCore::QNode *parent =
nullptr
);
48
57
void
setPositions
(
const
QVector<QVector3D> &vertices );
58
67
void
setPositionsAndSizes
(
const
QVector<QVector3D> &positions,
const
QVector<QSizeF> &sizes );
68
76
struct
BillboardAtlasData
77
{
79
QVector3D
position
;
81
QVector2D
textureAtlasOffset
;
83
QVector2D
textureAtlasSize
;
85
QPoint
pixelOffset
;
86
};
87
98
void
setBillboardData
(
const
QVector<QgsBillboardGeometry::BillboardAtlasData> &billboards,
bool
includePixelOffsets =
false
);
99
101
int
count
()
const
;
102
103
signals:
105
void
countChanged
(
int
count
);
106
107
private
:
108
enum class
Attribute
109
{
110
Position = 1 << 0,
111
Size = 1 << 1,
112
TextureData = 1 << 2,
113
PixelOffsets = 1 << 3,
114
};
115
Q_DECLARE_FLAGS( Attributes, Attribute )
116
117
void
setAttributes( Attributes attributes );
118
Attributes mAttributes;
119
120
Qt3DCore::QAttribute *mPositionAttribute =
nullptr
;
121
Qt3DCore::QAttribute *mSizeAttribute =
nullptr
;
122
Qt3DCore::QAttribute *mAtlasOffsetAttribute =
nullptr
;
123
Qt3DCore::QAttribute *mAtlasSizeAttribute =
nullptr
;
124
Qt3DCore::QAttribute *mAtlasPixelOffsetAttribute =
nullptr
;
125
Qt3DCore::QBuffer *mVertexBuffer =
nullptr
;
126
qsizetype mVertexCount = 0;
127
};
128
129
#endif
// QGSBILLBOARDGEOMETRY_H
QgsBillboardGeometry::countChanged
void countChanged(int count)
Signal when the number of points changed.
QgsBillboardGeometry::setBillboardData
void setBillboardData(const QVector< QgsBillboardGeometry::BillboardAtlasData > &billboards, bool includePixelOffsets=false)
Set the position and texture data for the billboard.
Definition
qgsbillboardgeometry.cpp:277
QgsBillboardGeometry::setPositions
void setPositions(const QVector< QVector3D > &vertices)
Sets the vertex positions for the billboards.
Definition
qgsbillboardgeometry.cpp:180
QgsBillboardGeometry::count
int count
Definition
qgsbillboardgeometry.h:44
QgsBillboardGeometry::QgsBillboardGeometry
QgsBillboardGeometry(Qt3DCore::QNode *parent=nullptr)
Constructor of QgsBillboardGeometry.
Definition
qgsbillboardgeometry.cpp:27
QgsBillboardGeometry::setPositionsAndSizes
void setPositionsAndSizes(const QVector< QVector3D > &positions, const QVector< QSizeF > &sizes)
Sets per-instance positions and sizes for billboards sharing a single texture.
Definition
qgsbillboardgeometry.cpp:202
QgsBillboardGeometry::BillboardAtlasData
Contains the billboard positions and texture information.
Definition
qgsbillboardgeometry.h:77
QgsBillboardGeometry::BillboardAtlasData::pixelOffset
QPoint pixelOffset
Optional pixel offset for billboard.
Definition
qgsbillboardgeometry.h:85
QgsBillboardGeometry::BillboardAtlasData::position
QVector3D position
Vertex position for billboard placement.
Definition
qgsbillboardgeometry.h:79
QgsBillboardGeometry::BillboardAtlasData::textureAtlasOffset
QVector2D textureAtlasOffset
Texture atlas offset for associated billboard texture.
Definition
qgsbillboardgeometry.h:81
QgsBillboardGeometry::BillboardAtlasData::textureAtlasSize
QVector2D textureAtlasSize
Texture atlas size for associated billboard texture.
Definition
qgsbillboardgeometry.h:83
Generated on
for QGIS API Documentation by
1.17.0