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 setVisible(input->isActive());
71 m_isActiveConnection = connect(input, &QQuick3DXrHandInput::isActiveChanged,
this, [
this, input]{
72 setVisible(input->isActive());
75 connect(input, &QQuick3DXrHandInput::pokePositionChanged,
this, &QQuick3DXrController::pokePositionChanged);
76 connect(input, &QQuick3DXrHandInput::jointPositionsChanged,
this, &QQuick3DXrController::jointPositionsChanged);
77 connect(input, &QQuick3DXrHandInput::jointRotationsChanged,
this, &QQuick3DXrController::jointRotationsChanged);
78 connect(input, &QQuick3DXrHandInput::jointDataUpdated,
this, &QQuick3DXrController::jointDataUpdated);
84QQuick3DXrHandInput *QQuick3DXrController::handInput()
const
86 if (m_inputManager && m_inputManager->isValid()) {
87 if (m_controller == Controller::ControllerRight)
88 return m_inputManager->rightHandInput();
89 else if (m_controller == Controller::ControllerLeft)
90 return m_inputManager->leftHandInput();