QAxisAccumulator Class

class Qt3DInput::QAxisAccumulator

QAxisAccumulator processes velocity or acceleration data from a QAxis. More...

Header: #include <QAxisAccumulator>
CMake: find_package(Qt6 REQUIRED COMPONENTS 3dinput)
target_link_libraries(mytarget PRIVATE Qt6::3dinput)
qmake: QT += 3dinput
Instantiated By: AxisAccumulator
Inherits: Qt3DCore::QComponent

Public Types

enum SourceAxisType { Velocity, Acceleration }


Public Functions

QAxisAccumulator(Qt3DCore::QNode *parent = nullptr)
float scale() const
Qt3DInput::QAxis *sourceAxis() const
Qt3DInput::QAxisAccumulator::SourceAxisType sourceAxisType() const
float value() const
float velocity() const

Public Slots

void setScale(float scale)
void setSourceAxis(Qt3DInput::QAxis *sourceAxis)
void setSourceAxisType(Qt3DInput::QAxisAccumulator::SourceAxisType sourceAxisType)


void scaleChanged(float scale)
void sourceAxisChanged(Qt3DInput::QAxis *sourceAxis)
void sourceAxisTypeChanged(Qt3DInput::QAxisAccumulator::SourceAxisType sourceAxisType)
void valueChanged(float value)
void velocityChanged(float value)

Detailed Description

Constructs a new QAxisAccumulator instance with parent.

A Qt3DInput::QAxis reports the current position of an axis on an input device. When the axis is returned to its neutral position the value of that axis returns to 0. Often, it is required to have the input from an axis control a variable in other ways, for example treating the value from the Qt3DInput::QAxis as a velocity (first derivative with respect to time) or as an acceleration (second derivative with respect to time). This can be done with user code or with a Qt3DLogic::QFrameAction but those approached are not ideal as they add more work to the main thread and are inherently imperative. The Qt3DInput::QAxisAccumulator class allows for this common task to be performed on the Qt 3D backend and be specified in a declarative manner.

Member Type Documentation

enum QAxisAccumulator::SourceAxisType


Property Documentation

[read-only] value : const float

Returns the accumulated (integrated) value.

Access functions:

float value() const

Notifier signal:

void valueChanged(float value)

Member Function Documentation

QAxisAccumulator::QAxisAccumulator(Qt3DCore::QNode *parent = nullptr)

Constructs a new QAxisAccumulator instance with parent parent.

float QAxisAccumulator::scale() const

The amount to scale the axis value by when accumulating. This can be thought of as the maximum velocity or acceleration the axis can control.

Returns the amount the input axis values are scaled by.

Note: Getter function for property scale.

See also setScale().

[slot] void QAxisAccumulator::setSourceAxis(Qt3DInput::QAxis *sourceAxis)

Sets the source axis from which the accumulator should receive values from to sourceAxis. How these values are treated is controlled by the sourceAxisType and scale properties.

Note: Setter function for property sourceAxis.

See also sourceAxis().

[slot] void QAxisAccumulator::setSourceAxisType(Qt3DInput::QAxisAccumulator::SourceAxisType sourceAxisType)

Sets how the accumulator treats the values originating from the sourceAxisType.

Note: Setter function for property sourceAxisType.

See also sourceAxisType().

Qt3DInput::QAxis *QAxisAccumulator::sourceAxis() const

Returns QAxis for which the accumulator should integrate axis values.

Note: Getter function for property sourceAxis.

See also setSourceAxis().

Qt3DInput::QAxisAccumulator::SourceAxisType QAxisAccumulator::sourceAxisType() const

Returns how the accumulator treats the value of the sourceAxis.

Note: Getter function for property sourceAxisType.

See also setSourceAxisType().

float QAxisAccumulator::velocity() const

Returns the velocity. If the sourceAxisType is set to Velocity this is simply the value of the source axis multiplied by the scale. If the sourceAxisType is set to Acceleration, the velocity is integrated using the source axis' value as an acceleration.

Note: Getter function for property velocity.

© 2024 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.