58void QQuick3DXrController::setController(QQuick3DXrController::Controller newController)
60 if (m_controller == newController)
62 m_controller = newController;
63 emit controllerChanged();
65 disconnect(m_isActiveConnection);
67 QQuick3DXrInputManager::instance()->registerController(
this);
68 auto *input = handInput();
70 setIsActive(input->isActive());
71 setVisible(m_isActive);
73 m_isActiveConnection = connect(input, &QQuick3DXrHandInput::isActiveChanged,
this, [
this, input]{
74 setIsActive(input->isActive());
75 setVisible(m_isActive);
78 connect(input, &QQuick3DXrHandInput::pokePositionChanged,
this, &QQuick3DXrController::pokePositionChanged);
79 connect(input, &QQuick3DXrHandInput::jointPositionsChanged,
this, &QQuick3DXrController::jointPositionsChanged);
80 connect(input, &QQuick3DXrHandInput::jointRotationsChanged,
this, &QQuick3DXrController::jointRotationsChanged);
81 connect(input, &QQuick3DXrHandInput::jointDataUpdated,
this, &QQuick3DXrController::jointDataUpdated);
88QQuick3DXrHandInput *QQuick3DXrController::handInput()
const
90 if (m_inputManager && m_inputManager->isValid()) {
91 if (m_controller == Controller::ControllerRight)
92 return m_inputManager->rightHandInput();
93 else if (m_controller == Controller::ControllerLeft)
94 return m_inputManager->leftHandInput();