state-of-the-art / Handy3DScanner

Repository for Handy 3D Scanner
Apache License 2.0
73 stars 15 forks source link

[FEATURE] Desktop application support #49

Open state-of-the-art opened 5 years ago

state-of-the-art commented 5 years ago

Is your feature request related to a problem? Please describe.

Right now Handy 3D Scanner supports only Android (and limited Linux) OS. It will be good to run the same on the other operating systems, like Windows & MacOS.

Describe the solution you'd like

Qt 5 framework and libraries we using (librealsense, draco) - are quite portable and since we already have linux user interfaces (mouse support) - that shouldn't be a big deal to support the other platforms.

Additional context

The only limitation we have right now - is file management. Need to prepare an unified interface to access the filesystem (to open/save/export pointclouds / scene).

suvirbhargav commented 4 years ago

Hi, maybe this is not the right place to write about, but i wanted to know if i need to have depth camera to test this application on Linux desktop or is it possible to run this application on Linux and just play around a bit with webcam? I was able to compile the application on ubuntu 20.04 but it seems to crash on launch.

user@fe80985492ce:~/project/build$ ./handy3dscanner
[h3ds] Init v0.5.1
QFactoryLoader::QFactoryLoader() checking directory path "/opt/Qt/5.13.0/gcc_64/plugins/platforms" ...
QFactoryLoader::QFactoryLoader() looking at "/opt/Qt/5.13.0/gcc_64/plugins/platforms/libqeglfs.so"
Found metadata in lib /opt/Qt/5.13.0/gcc_64/plugins/platforms/libqeglfs.so, metadata=
{
    "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
    "MetaData": {
        "Keys": [
            "eglfs"
        ]
    },
    "archreq": 0,
    "className": "QEglFSIntegrationPlugin",
    "debug": false,
    "version": 331008
}

Got keys from plugin meta data ("eglfs")
QFactoryLoader::QFactoryLoader() looking at "/opt/Qt/5.13.0/gcc_64/plugins/platforms/libqlinuxfb.so"
Found metadata in lib /opt/Qt/5.13.0/gcc_64/plugins/platforms/libqlinuxfb.so, metadata=
{
    "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
    "MetaData": {
        "Keys": [
            "linuxfb"
        ]
    },
    "archreq": 0,
    "className": "QLinuxFbIntegrationPlugin",
    "debug": false,
    "version": 331008
}

Got keys from plugin meta data ("linuxfb")
QFactoryLoader::QFactoryLoader() looking at "/opt/Qt/5.13.0/gcc_64/plugins/platforms/libqminimal.so"
Found metadata in lib /opt/Qt/5.13.0/gcc_64/plugins/platforms/libqminimal.so, metadata=
{
    "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
    "MetaData": {
        "Keys": [
            "minimal"
        ]
    },
    "archreq": 0,
    "className": "QMinimalIntegrationPlugin",
    "debug": false,
    "version": 331008
}

Got keys from plugin meta data ("minimal")
QFactoryLoader::QFactoryLoader() looking at "/opt/Qt/5.13.0/gcc_64/plugins/platforms/libqminimalegl.so"
Found metadata in lib /opt/Qt/5.13.0/gcc_64/plugins/platforms/libqminimalegl.so, metadata=
{
    "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
    "MetaData": {
        "Keys": [
            "minimalegl"
        ]
    },
    "archreq": 0,
    "className": "QMinimalEglIntegrationPlugin",
    "debug": false,
    "version": 331008
}

Got keys from plugin meta data ("minimalegl")
QFactoryLoader::QFactoryLoader() looking at "/opt/Qt/5.13.0/gcc_64/plugins/platforms/libqoffscreen.so"
Found metadata in lib /opt/Qt/5.13.0/gcc_64/plugins/platforms/libqoffscreen.so, metadata=
{
    "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
    "MetaData": {
        "Keys": [
            "offscreen"
        ]
    },
    "archreq": 0,
    "className": "QOffscreenIntegrationPlugin",
    "debug": false,
    "version": 331008
}

Got keys from plugin meta data ("offscreen")
QFactoryLoader::QFactoryLoader() looking at "/opt/Qt/5.13.0/gcc_64/plugins/platforms/libqvnc.so"
Found metadata in lib /opt/Qt/5.13.0/gcc_64/plugins/platforms/libqvnc.so, metadata=
{
    "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
    "MetaData": {
        "Keys": [
            "vnc"
        ]
    },
    "archreq": 0,
    "className": "QVncIntegrationPlugin",
    "debug": false,
    "version": 331008
}

Got keys from plugin meta data ("vnc")
QFactoryLoader::QFactoryLoader() looking at "/opt/Qt/5.13.0/gcc_64/plugins/platforms/libqwayland-egl.so"
Found metadata in lib /opt/Qt/5.13.0/gcc_64/plugins/platforms/libqwayland-egl.so, metadata=
{
    "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
    "MetaData": {
        "Keys": [
            "wayland-egl"
        ]
    },
    "archreq": 0,
    "className": "QWaylandEglPlatformIntegrationPlugin",
    "debug": false,
    "version": 331008
}

Got keys from plugin meta data ("wayland-egl")
QFactoryLoader::QFactoryLoader() looking at "/opt/Qt/5.13.0/gcc_64/plugins/platforms/libqwayland-generic.so"
Found metadata in lib /opt/Qt/5.13.0/gcc_64/plugins/platforms/libqwayland-generic.so, metadata=
{
    "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
    "MetaData": {
        "Keys": [
            "wayland"
        ]
    },
    "archreq": 0,
    "className": "QWaylandIntegrationPlugin",
    "debug": false,
    "version": 331008
}

Got keys from plugin meta data ("wayland")
QFactoryLoader::QFactoryLoader() looking at "/opt/Qt/5.13.0/gcc_64/plugins/platforms/libqwayland-xcomposite-egl.so"
Found metadata in lib /opt/Qt/5.13.0/gcc_64/plugins/platforms/libqwayland-xcomposite-egl.so, metadata=
{
    "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
    "MetaData": {
        "Keys": [
            "wayland-xcomposite-egl"
        ]
    },
    "archreq": 0,
    "className": "QWaylandXCompositeEglPlatformIntegrationPlugin",
    "debug": false,
    "version": 331008
}

Got keys from plugin meta data ("wayland-xcomposite-egl")
QFactoryLoader::QFactoryLoader() looking at "/opt/Qt/5.13.0/gcc_64/plugins/platforms/libqwayland-xcomposite-glx.so"
Found metadata in lib /opt/Qt/5.13.0/gcc_64/plugins/platforms/libqwayland-xcomposite-glx.so, metadata=
{
    "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
    "MetaData": {
        "Keys": [
            "wayland-xcomposite-glx"
        ]
    },
    "archreq": 0,
    "className": "QWaylandXCompositeGlxPlatformIntegrationPlugin",
    "debug": false,
    "version": 331008
}

Got keys from plugin meta data ("wayland-xcomposite-glx")
QFactoryLoader::QFactoryLoader() looking at "/opt/Qt/5.13.0/gcc_64/plugins/platforms/libqxcb.so"
Found metadata in lib /opt/Qt/5.13.0/gcc_64/plugins/platforms/libqxcb.so, metadata=
{
    "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
    "MetaData": {
        "Keys": [
            "xcb"
        ]
    },
    "archreq": 0,
    "className": "QXcbIntegrationPlugin",
    "debug": false,
    "version": 331008
}

Got keys from plugin meta data ("xcb")
QFactoryLoader::QFactoryLoader() checking directory path "/home/user/project/build/platforms" ...
loaded library "/opt/Qt/5.13.0/gcc_64/plugins/platforms/libqxcb.so"
qt.qpa.xcb: could not connect to display :1
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, wayland-egl, wayland, wayland-xcomposite-egl, wayland-xcomposite-glx, xcb.

Aborted (core dumped)
rabits commented 4 years ago

Hi @suvirbhargav , sorry - for now the desktop is not supported oficially.

The main purpose of this app - to capture the pointclouds from stereo cameras (right now it's intel D400 series) - means your webcam will not work. But you still can run the app to open pcd files in the edit tab.

Seems you are trying to run the app from docker - most probably it have no connection to your X server on the host system - that's why you see this issue.