Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
QQuick3DRandomInstancing Class Reference

#include <randominstancing_p.h>

+ Inheritance diagram for QQuick3DRandomInstancing:
+ Collaboration diagram for QQuick3DRandomInstancing:

Public Types

enum class  ColorModel { RGB , HSV , HSL }
 

Public Slots

void setInstanceCount (int instanceCount)
 
void setRandomSeed (int randomSeed)
 
void setPosition (QQuick3DInstanceRange *position)
 
void setScale (QQuick3DInstanceRange *scale)
 
void setRotation (QQuick3DInstanceRange *rotation)
 
void setColor (QQuick3DInstanceRange *color)
 
void setCustomData (QQuick3DInstanceRange *customData)
 
void setColorModel (ColorModel colorModel)
 
- Public Slots inherited from QQuick3DInstancing
void setInstanceCountOverride (int instanceCountOverride)
 
void setHasTransparency (bool hasTransparency)
 
void setDepthSortingEnabled (bool enabled)
 
- Public Slots inherited from QQuick3DObject
void update ()
 
void setParentItem (QQuick3DObject *parentItem)
 
- Public Slots inherited from QObject
void deleteLater ()
 \threadsafe
 

Signals

void instanceCountChanged ()
 
void randomSeedChanged ()
 
void positionChanged ()
 
void scaleChanged ()
 
void rotationChanged ()
 
void colorChanged ()
 
void customDataChanged ()
 
void colorModelChanged ()
 
- Signals inherited from QQuick3DInstancing
void instanceTableChanged ()
 
void instanceNodeDirty ()
 
void instanceCountOverrideChanged ()
 
void hasTransparencyChanged ()
 
void depthSortingEnabledChanged ()
 
- Signals inherited from QQuick3DObject
void parentChanged ()
 
void childrenChanged ()
 
void stateChanged ()
 
- Signals inherited from QObject
void destroyed (QObject *=nullptr)
 This signal is emitted immediately before the object obj is destroyed, after any instances of QPointer have been notified, and cannot be blocked.
 
void objectNameChanged (const QString &objectName, QPrivateSignal)
 This signal is emitted after the object's name has been changed.
 

Public Member Functions

 QQuick3DRandomInstancing (QQuick3DObject *parent=nullptr)
 \qmltype InstanceRange \inherits Object3D \inqmlmodule QtQuick3D.Helpers
 
 ~QQuick3DRandomInstancing ()
 
QByteArray getInstanceBuffer (int *instanceCount) override
 Implement this function to return the contents of the instance table.
 
int instanceCount () const
 
int randomSeed () const
 
QQuick3DInstanceRangeposition () const
 
QQuick3DInstanceRangescale () const
 
QQuick3DInstanceRangerotation () const
 
QQuick3DInstanceRangecolor () const
 
QQuick3DInstanceRangecustomData () const
 
ColorModel colorModel () const
 
- Public Member Functions inherited from QQuick3DInstancing
 QQuick3DInstancing (QQuick3DObject *parent=nullptr)
 
 ~QQuick3DInstancing () override
 
QByteArray instanceBuffer (int *instanceCount)
 
int instanceCountOverride () const
 
bool hasTransparency () const
 
bool depthSortingEnabled () const
 
 Q_REVISION (6, 3) Q_INVOKABLE QVector3D instancePosition(int index)
 
 Q_REVISION (6, 3) Q_INVOKABLE QVector3D instanceScale(int index)
 
 Q_REVISION (6, 3) Q_INVOKABLE QQuaternion instanceRotation(int index)
 
 Q_REVISION (6, 3) Q_INVOKABLE QColor instanceColor(int index)
 
 Q_REVISION (6, 3) Q_INVOKABLE QVector4D instanceCustomData(int index)
 
- Public Member Functions inherited from QObject
Q_INVOKABLE QObject (QObject *parent=nullptr)
 Constructs an object with parent object parent.
 
virtual ~QObject ()
 Destroys the object, deleting all its child objects.
 
virtual bool event (QEvent *event)
 This virtual function receives events to an object and should return true if the event e was recognized and processed.
 
virtual bool eventFilter (QObject *watched, QEvent *event)
 Filters events if this object has been installed as an event filter for the watched object.
 
QString objectName () const
 
Q_WEAK_OVERLOAD void setObjectName (const QString &name)
 Sets the object's name to name.
 
void setObjectName (QAnyStringView name)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
QBindable< QStringbindableObjectName ()
 
bool isWidgetType () const
 Returns true if the object is a widget; otherwise returns false.
 
bool isWindowType () const
 Returns true if the object is a window; otherwise returns false.
 
bool isQuickItemType () const
 Returns true if the object is a QQuickItem; otherwise returns false.
 
bool signalsBlocked () const noexcept
 Returns true if signals are blocked; otherwise returns false.
 
bool blockSignals (bool b) noexcept
 If block is true, signals emitted by this object are blocked (i.e., emitting a signal will not invoke anything connected to it).
 
QThreadthread () const
 Returns the thread in which the object lives.
 
bool moveToThread (QThread *thread QT6_DECL_NEW_OVERLOAD_TAIL)
 Changes the thread affinity for this object and its children and returns true on success.
 
int startTimer (int interval, Qt::TimerType timerType=Qt::CoarseTimer)
 This is an overloaded function that will start a timer of type timerType and a timeout of interval milliseconds.
 
int startTimer (std::chrono::nanoseconds time, Qt::TimerType timerType=Qt::CoarseTimer)
 
void killTimer (int id)
 Kills the timer with timer identifier, id.
 
void killTimer (Qt::TimerId id)
 
template<typename T >
findChild (QAnyStringView aName, Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 Returns the child of this object that can be cast into type T and that is called name, or \nullptr if there is no such object.
 
template<typename T >
QList< T > findChildren (QAnyStringView aName, Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 Returns all children of this object with the given name that can be cast to type T, or an empty list if there are no such objects.
 
template<typename T >
findChild (Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
template<typename T >
QList< T > findChildren (Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
const QObjectListchildren () const
 Returns a list of child objects.
 
void setParent (QObject *parent)
 Makes the object a child of parent.
 
void installEventFilter (QObject *filterObj)
 Installs an event filter filterObj on this object.
 
void removeEventFilter (QObject *obj)
 Removes an event filter object obj from this object.
 
QMetaObject::Connection connect (const QObject *sender, const char *signal, const char *member, Qt::ConnectionType type=Qt::AutoConnection) const
 
bool disconnect (const char *signal=nullptr, const QObject *receiver=nullptr, const char *member=nullptr) const
 
bool disconnect (const QObject *receiver, const char *member=nullptr) const
 
void dumpObjectTree () const
 Dumps a tree of children to the debug output.
 
void dumpObjectInfo () const
 Dumps information about signal connections, etc.
 
bool setProperty (const char *name, const QVariant &value)
 Sets the value of the object's name property to value.
 
bool setProperty (const char *name, QVariant &&value)
 
QVariant property (const char *name) const
 Returns the value of the object's name property.
 
QList< QByteArraydynamicPropertyNames () const
 
QBindingStoragebindingStorage ()
 
const QBindingStoragebindingStorage () const
 
QObjectparent () const
 Returns a pointer to the parent object.
 
bool inherits (const char *classname) const
 Returns true if this object is an instance of a class that inherits className or a QObject subclass that inherits className; otherwise returns false.
 
- Public Member Functions inherited from QQmlParserStatus
 QQmlParserStatus ()
 
virtual ~QQmlParserStatus ()
 

Properties

int instanceCount
 
QQuick3DInstanceRangeposition
 
QQuick3DInstanceRangescale
 
QQuick3DInstanceRangerotation
 
QQuick3DInstanceRangecolor
 
ColorModel colorModel
 
QQuick3DInstanceRangecustomData
 
int randomSeed
 
- Properties inherited from QQuick3DInstancing
int instanceCountOverride
 
bool hasTransparency
 \qmlproperty bool Instancing::hasTransparency
 
bool depthSortingEnabled
 \qmlproperty bool Instancing::depthSortingEnabled
 
- Properties inherited from QQuick3DObject
QQuick3DObjectparent
 \qmlproperty Object3D QtQuick3D::Object3D::parent This property holds the parent of the Object3D in a 3D scene.
 
- Properties inherited from QObject
QString objectName
 the name of this object
 

Additional Inherited Members

- Static Public Member Functions inherited from QObject
static QMetaObject::Connection connect (const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection)
 \threadsafe
 
static QMetaObject::Connection connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type=Qt::AutoConnection)
 
template<typename Func1 , typename Func2 >
static QMetaObject::Connection connect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const typename QtPrivate::ContextTypeForFunctor< Func2 >::ContextType *context, Func2 &&slot, Qt::ConnectionType type=Qt::AutoConnection)
 
template<typename Func1 , typename Func2 >
static QMetaObject::Connection connect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, Func2 &&slot)
 
static bool disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *member)
 \threadsafe
 
static bool disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &member)
 
static bool disconnect (const QMetaObject::Connection &)
 Disconnect a connection.
 
template<typename Func1 , typename Func2 >
static bool disconnect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const typename QtPrivate::FunctionPointer< Func2 >::Object *receiver, Func2 slot)
 
template<typename Func1 >
static bool disconnect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const QObject *receiver, void **zero)
 
- Protected Member Functions inherited from QQuick3DInstancing
void markDirty ()
 Mark that the instance data has changed and must be uploaded again.
 
QSSGRenderGraphObjectupdateSpatialNode (QSSGRenderGraphObject *node) override
 
- Protected Member Functions inherited from QQuick3DObject
virtual void markAllDirty ()
 
virtual void itemChange (ItemChange, const ItemChangeData &)
 
 QQuick3DObject (QQuick3DObjectPrivate &dd, QQuick3DObject *parent=nullptr)
 
void classBegin () override
 Invoked after class creation, but before any properties have been set.
 
void componentComplete () override
 Invoked after the root component that caused this instantiation has completed construction.
 
bool isComponentComplete () const
 
virtual void preSync ()
 
- Protected Member Functions inherited from QObject
QObjectsender () const
 Returns a pointer to the object that sent the signal, if called in a slot activated by a signal; otherwise it returns \nullptr.
 
int senderSignalIndex () const
 
int receivers (const char *signal) const
 Returns the number of receivers connected to the signal.
 
bool isSignalConnected (const QMetaMethod &signal) const
 
virtual void timerEvent (QTimerEvent *event)
 This event handler can be reimplemented in a subclass to receive timer events for the object.
 
virtual void childEvent (QChildEvent *event)
 This event handler can be reimplemented in a subclass to receive child events.
 
virtual void customEvent (QEvent *event)
 This event handler can be reimplemented in a subclass to receive custom events.
 
virtual void connectNotify (const QMetaMethod &signal)
 
virtual void disconnectNotify (const QMetaMethod &signal)
 
 QObject (QObjectPrivate &dd, QObject *parent=nullptr)
 
- Static Protected Member Functions inherited from QQuick3DInstancing
static InstanceTableEntry calculateTableEntry (const QVector3D &position, const QVector3D &scale, const QVector3D &eulerRotation, const QColor &color, const QVector4D &customData={})
 Converts the position scale eulerRotation color and customData to the instance table format expected by the standard vertex shaders.
 
static InstanceTableEntry calculateTableEntryFromQuaternion (const QVector3D &position, const QVector3D &scale, const QQuaternion &rotation, const QColor &color, const QVector4D &customData={})
 Converts the position scale rotation color and customData to the instance table format expected by the standard vertex shaders.
 
- Protected Attributes inherited from QObject
QScopedPointer< QObjectDatad_ptr
 

Detailed Description

Definition at line 73 of file randominstancing_p.h.

Member Enumeration Documentation

◆ ColorModel

Enumerator
RGB 
HSV 
HSL 

Definition at line 91 of file randominstancing_p.h.

Constructor & Destructor Documentation

◆ QQuick3DRandomInstancing()

QT_BEGIN_NAMESPACE QQuick3DRandomInstancing::QQuick3DRandomInstancing ( QQuick3DObject * parent = nullptr)
explicit

\qmltype InstanceRange \inherits Object3D \inqmlmodule QtQuick3D.Helpers

Since
6.2

Specifies a range for RandomInstancing.

The InstanceRange QML type is used to specify the range of variation for RandomInstancing attributes.

\qmlproperty Variant InstanceRange::from

This property specifies the lower bound of the range. The type needs to match the type of the attribute that this range is applied to.

\qmlproperty Variant InstanceRange::to

This property specifies the upper bound of the range. The type needs to match the type of the attribute that this range is applied to.

\qmlproperty bool InstanceRange::proportional

This property determines whether the components of the attribute vary proportionally or independently. The default value is true, meaning that all components are independent.

For example, the following defines a scaling range that preserves the aspect ratio of the model: \qml InstanceRange { from: Qt.vector3d(1, 1, 1) to: Qt.vector3d(5, 5, 5) proportional: true } \endqml

This defines a greyscale color range: \qml InstanceRange { from: "black" to: "white" proportional: true } \endqml

While the following defines a range that covers all colors \qml InstanceRange { from: "black" to: "white" } \endqml

\qmltype RandomInstancing \inherits Instancing \inqmlmodule QtQuick3D.Helpers

Since
6.2

Generates a random instancing table.

The RandomInstancing type provides an easy way to generate a large number of random instances within defined bounds. The number of instances is defined by the \l instanceCount property. The bounds are defined by the properties \l position, \l scale, \l rotation, \l color, and \l customData.

See also
InstanceList

\qmlproperty int RandomInstancing::instanceCount

The instanceCount property specifies the number of instances to generate. Changing this value will regenerate the whole table.

See also
randomSeed

\qmlproperty int RandomInstancing::randomSeed

This property defines the seed for the random number generator. Setting this to a value different from -1 guarantees that the instance table will have the same content each time it is generated. Note that adding or changing attributes may cause a completely different table to be generated.

The default value is -1, causing the table to get a new random value each time it is generated.

\qmlproperty InstanceRange RandomInstancing::position

The position property defines the geometrical bounds of the generated instances. The default value is empty, causing a generated position of {[0, 0, 0]}.

See also
color, rotation, scale, customData

\qmlproperty InstanceRange RandomInstancing::scale

The scale property defines the scaling limits for the generated instances. The type is \l vector3d. Set \l {InstanceRange::proportional}{InstanceRange.proportional} to true for uniform scaling. The default value is empty, causing no scaling to be applied.

See also
position, color, rotation, scale, customData

\qmlproperty InstanceRange RandomInstancing::rotation

The rotation property defines the rotation range for the generated instances. The type is \l vector3d, corresponding to a Euler rotation vector {[xRotation, yRotation, zRotation]}. The default value is empty, causing no rotation to be applied.

See also
position, color, scale, customData

\qmlproperty InstanceRange RandomInstancing::color

The color property defines the color variation range for the generated instances. The type is \l color. The default value is empty, causing the color to be white.

Setting the colorModel property makes it possible to select only saturated colors, for example.

See also
position, rotation, scale, customData

\qmlproperty InstanceRange RandomInstancing::customData

The customData property defines the custom data variation range for the generated instances. The type is \l vector4d. The default value is empty, causing causing the generated data to be {[0, 0, 0, 0]}.

See also
position, color, rotation, scale, customData

\qmlproperty enumeration RandomInstancing::colorModel

This property controls how the color range is interpreted.

The instance colors are generated component by component within the range determined by the from and to colors. The color model determines how those components are defined.

\value RandomInstancing.RGB The components are red, green, blue, and alpha, according to the RGB color model. \value RandomInstancing.HSV The components are hue, saturation, value, and alpha, according to the \l{QColor::The HSV Color Model}{HSV Color Model}. \value RandomInstancing.HSL The components are hue, saturation, lightness, and alpha,, according to the \l{QColor::The HSL Color Model}{HSL Color Model}.

As an example, the following color range \qml color: InstanceRange { from: Qt.hsva(0, 0.1, 0.8, 1) to: Qt.hsva(1, 0.3, 1, 1) } \endqml will generate a full range of pastel colors when using the HSV color model, but only shades of pink when using the RGB color model.

The default value is RandomInstancing.RGB

See also
RandomInstancing::color

Definition at line 180 of file randominstancing.cpp.

◆ ~QQuick3DRandomInstancing()

QQuick3DRandomInstancing::~QQuick3DRandomInstancing ( )

Definition at line 186 of file randominstancing.cpp.

Member Function Documentation

◆ color()

QQuick3DInstanceRange * QQuick3DRandomInstancing::color ( ) const
inline

Definition at line 124 of file randominstancing_p.h.

◆ colorChanged

void QQuick3DRandomInstancing::colorChanged ( )
signal

Referenced by setColor().

+ Here is the caller graph for this function:

◆ colorModel()

ColorModel QQuick3DRandomInstancing::colorModel ( ) const
inline

Definition at line 134 of file randominstancing_p.h.

◆ colorModelChanged

void QQuick3DRandomInstancing::colorModelChanged ( )
signal

Referenced by setColorModel().

+ Here is the caller graph for this function:

◆ customData()

QQuick3DInstanceRange * QQuick3DRandomInstancing::customData ( ) const
inline

Definition at line 129 of file randominstancing_p.h.

◆ customDataChanged

void QQuick3DRandomInstancing::customDataChanged ( )
signal

Referenced by setCustomData().

+ Here is the caller graph for this function:

◆ getInstanceBuffer()

QByteArray QQuick3DRandomInstancing::getInstanceBuffer ( int * instanceCount)
overridevirtual

Implement this function to return the contents of the instance table.

The number of instances should be returned in instanceCount. The subclass is responsible for caching the result if necessary. If the instance table changes, the subclass should call markDirty().

Implements QQuick3DInstancing.

Definition at line 369 of file randominstancing.cpp.

References instanceCount.

◆ instanceCount()

int QQuick3DRandomInstancing::instanceCount ( ) const
inline

Definition at line 99 of file randominstancing_p.h.

◆ instanceCountChanged

void QQuick3DRandomInstancing::instanceCountChanged ( )
signal

◆ position()

QQuick3DInstanceRange * QQuick3DRandomInstancing::position ( ) const
inline

Definition at line 109 of file randominstancing_p.h.

◆ positionChanged

void QQuick3DRandomInstancing::positionChanged ( )
signal

Referenced by setPosition().

+ Here is the caller graph for this function:

◆ randomSeed()

int QQuick3DRandomInstancing::randomSeed ( ) const
inline

Definition at line 104 of file randominstancing_p.h.

◆ randomSeedChanged

void QQuick3DRandomInstancing::randomSeedChanged ( )
signal

Referenced by setRandomSeed().

+ Here is the caller graph for this function:

◆ rotation()

QQuick3DInstanceRange * QQuick3DRandomInstancing::rotation ( ) const
inline

Definition at line 119 of file randominstancing_p.h.

◆ rotationChanged

void QQuick3DRandomInstancing::rotationChanged ( )
signal

Referenced by setRotation().

+ Here is the caller graph for this function:

◆ scale()

QQuick3DInstanceRange * QQuick3DRandomInstancing::scale ( ) const
inline

Definition at line 114 of file randominstancing_p.h.

◆ scaleChanged

void QQuick3DRandomInstancing::scaleChanged ( )
signal

Referenced by setScale().

+ Here is the caller graph for this function:

◆ setColor

void QQuick3DRandomInstancing::setColor ( QQuick3DInstanceRange * color)
slot

Definition at line 261 of file randominstancing.cpp.

References QQuick3DInstanceRange::changed(), color, colorChanged(), QObject::connect(), QObject::destroyed(), disconnect(), emit, and QQuick3DInstancing::markDirty().

+ Here is the call graph for this function:

◆ setColorModel

void QQuick3DRandomInstancing::setColorModel ( QQuick3DRandomInstancing::ColorModel colorModel)
slot

Definition at line 296 of file randominstancing.cpp.

References colorModel, colorModelChanged(), emit, and QQuick3DInstancing::markDirty().

+ Here is the call graph for this function:

◆ setCustomData

void QQuick3DRandomInstancing::setCustomData ( QQuick3DInstanceRange * customData)
slot

Definition at line 279 of file randominstancing.cpp.

References QQuick3DInstanceRange::changed(), QObject::connect(), customData, customDataChanged(), QObject::destroyed(), disconnect(), emit, and QQuick3DInstancing::markDirty().

+ Here is the call graph for this function:

◆ setInstanceCount

void QQuick3DRandomInstancing::setInstanceCount ( int instanceCount)
slot

Definition at line 190 of file randominstancing.cpp.

References instanceCount, and QQuick3DInstancing::markDirty().

+ Here is the call graph for this function:

◆ setPosition

void QQuick3DRandomInstancing::setPosition ( QQuick3DInstanceRange * position)
slot

Definition at line 210 of file randominstancing.cpp.

References QQuick3DInstanceRange::changed(), QObject::connect(), QObject::destroyed(), disconnect(), emit, QQuick3DInstancing::markDirty(), position, and positionChanged().

+ Here is the call graph for this function:

◆ setRandomSeed

void QQuick3DRandomInstancing::setRandomSeed ( int randomSeed)
slot

Definition at line 199 of file randominstancing.cpp.

References emit, QQuick3DInstancing::markDirty(), randomSeed, and randomSeedChanged().

+ Here is the call graph for this function:

◆ setRotation

void QQuick3DRandomInstancing::setRotation ( QQuick3DInstanceRange * rotation)
slot

Definition at line 244 of file randominstancing.cpp.

References QQuick3DInstanceRange::changed(), QObject::connect(), QObject::destroyed(), disconnect(), emit, QQuick3DInstancing::markDirty(), rotation, and rotationChanged().

+ Here is the call graph for this function:

◆ setScale

void QQuick3DRandomInstancing::setScale ( QQuick3DInstanceRange * scale)
slot

Definition at line 227 of file randominstancing.cpp.

References QQuick3DInstanceRange::changed(), QObject::connect(), QObject::destroyed(), disconnect(), emit, QQuick3DInstancing::markDirty(), scale, and scaleChanged().

+ Here is the call graph for this function:

Property Documentation

◆ color

QQuick3DInstanceRange * QQuick3DRandomInstancing::color
readwrite

Definition at line 81 of file randominstancing_p.h.

Referenced by setColor().

◆ colorModel

ColorModel QQuick3DRandomInstancing::colorModel
readwrite

Definition at line 82 of file randominstancing_p.h.

Referenced by setColorModel().

◆ customData

QQuick3DInstanceRange * QQuick3DRandomInstancing::customData
readwrite

Definition at line 83 of file randominstancing_p.h.

Referenced by setCustomData().

◆ instanceCount

int QQuick3DRandomInstancing::instanceCount
readwrite

Definition at line 77 of file randominstancing_p.h.

Referenced by getInstanceBuffer(), and setInstanceCount().

◆ position

QQuick3DInstanceRange * QQuick3DRandomInstancing::position
readwrite

Definition at line 78 of file randominstancing_p.h.

Referenced by setPosition().

◆ randomSeed

int QQuick3DRandomInstancing::randomSeed
readwrite

Definition at line 85 of file randominstancing_p.h.

Referenced by setRandomSeed().

◆ rotation

QQuick3DInstanceRange * QQuick3DRandomInstancing::rotation
readwrite

Definition at line 80 of file randominstancing_p.h.

Referenced by setRotation().

◆ scale

QQuick3DInstanceRange * QQuick3DRandomInstancing::scale
readwrite

Definition at line 79 of file randominstancing_p.h.

Referenced by setScale().


The documentation for this class was generated from the following files: