예제 #1
0
void MouseInput::wheelEvent(const QWheelEventPtr &event)
{
    QBackendScenePropertyChangePtr e(new QBackendScenePropertyChange(NodeUpdated, peerUuid()));
    e->setTargetNode(peerUuid());
    e->setPropertyName("wheel");
    e->setValue(QVariant::fromValue(event));
    notifyObservers(e);
}
예제 #2
0
void MouseInput::setController(const Qt3DCore::QNodeId &controller)
{
    if (!m_mouseController.isNull()) {
        MouseController *controller = m_inputHandler->mouseControllerManager()->lookupResource(m_mouseController);
        if (controller)
            controller->removeMouseInput(peerUuid());
    }
    m_mouseController = controller;
    if (!m_mouseController.isNull()) {
        MouseController *controller = m_inputHandler->mouseControllerManager()->lookupResource(m_mouseController);
        if (controller)
            controller->addMouseInput(peerUuid());
    }
}
예제 #3
0
void RenderScene::setSceneSubtree(QEntity *subTree)
{
    QBackendScenePropertyChangePtr e(new QBackendScenePropertyChange(NodeUpdated, peerUuid()));
    e->setPropertyName("scene");
    // The Frontend element has to perform the clone
    // So that the objects are created in the main thread
    e->setValue(QVariant::fromValue(subTree));
    e->setTargetNode(peerUuid());
    notifyObservers(e);
    QBackendScenePropertyChangePtr e2(new QBackendScenePropertyChange(NodeUpdated, peerUuid()));
    e2->setPropertyName("status");
    e2->setValue(subTree != Q_NULLPTR ? QAbstractSceneLoader::Loaded : QAbstractSceneLoader::Error);
    e2->setTargetNode(peerUuid());
    notifyObservers(e2);
}
예제 #4
0
void RenderScene::updateFromPeer(QNode *peer)
{
    QAbstractSceneLoader *loader = static_cast<QAbstractSceneLoader *>(peer);

    m_source = loader->source();
    m_sceneManager->addSceneData(m_source, peerUuid());
}
예제 #5
0
void RenderScene::sceneChangeEvent(const QSceneChangePtr &e)
{
    QScenePropertyChangePtr propertyChange = qSharedPointerCast<QScenePropertyChange>(e);
    if (propertyChange->propertyName() == QByteArrayLiteral("source")) {
        m_source = propertyChange->value().toUrl();
        m_sceneManager->addSceneData(m_source, peerUuid());
    }
}
예제 #6
0
void TextureImage::updateFromPeer(Qt3DCore::QNode *peer)
{
    QAbstractTextureImage *textureImage = static_cast<QAbstractTextureImage *>(peer);
    m_layer = textureImage->layer();
    m_mipmapLevel = textureImage->mipmapLevel();
    m_face = textureImage->cubeMapFace();
    m_functor = textureImage->dataFunctor();
    // Notify the Texture that we are one of its TextureImage
    if (!peer->parentNode()) {
        qWarning() << "Not QAbstractTextureProvider parent found";
    } else {
        m_textureProviderId = peer->parentNode()->id();
        m_textureProvider = m_textureManager->lookupHandle(m_textureProviderId);
        Texture *txt = m_textureManager->data(m_textureProvider);
        // Notify the Texture that it has a new TextureImage and needs an update
        txt->addTextureImageData(m_textureImageManager->lookupHandle(peerUuid()));
        if (txt != Q_NULLPTR)
            txt->addToPendingTextureJobs();
    }
}
PhysicsGeometry::~PhysicsGeometry(){
    m_manager->m_resources.remove(peerUuid());
}
PhysicsGeometryRenderer::~PhysicsGeometryRenderer(){
    m_manager->m_resources.remove(peerUuid());
}
PhysicsTransform::~PhysicsTransform(){
    m_manager->m_resources.remove(peerUuid());
}