57void QQuick3DXrController::setController(QQuick3DXrController::Controller newController)
59 if (m_controller == newController)
61 m_controller = newController;
62 emit controllerChanged();
64 disconnect(m_isActiveConnection);
66 QQuick3DXrInputManager::instance()->registerController(
this);
67 auto *input = handInput();
69 setIsActive(input->isActive());
70 setVisible(m_isActive);
72 m_isActiveConnection = connect(input, &QQuick3DXrHandInput::isActiveChanged,
this, [
this, input]{
73 setIsActive(input->isActive());
74 setVisible(m_isActive);
77 connect(input, &QQuick3DXrHandInput::pokePositionChanged,
this, &QQuick3DXrController::pokePositionChanged);
78 connect(input, &QQuick3DXrHandInput::jointPositionsChanged,
this, &QQuick3DXrController::jointPositionsChanged);
79 connect(input, &QQuick3DXrHandInput::jointRotationsChanged,
this, &QQuick3DXrController::jointRotationsChanged);
80 connect(input, &QQuick3DXrHandInput::jointDataUpdated,
this, &QQuick3DXrController::jointDataUpdated);
87QQuick3DXrHandInput *QQuick3DXrController::handInput()
const
89 if (m_inputManager && m_inputManager->isValid()) {
90 if (m_controller == Controller::ControllerRight)
91 return m_inputManager->rightHandInput();
92 else if (m_controller == Controller::ControllerLeft)
93 return m_inputManager->leftHandInput();