mirror of
https://github.com/alicevision/Meshroom.git
synced 2025-05-02 19:56:46 +02:00
65 lines
2.5 KiB
QML
65 lines
2.5 KiB
QML
pragma Singleton
|
|
import QtQuick 2.15
|
|
import MaterialIcons 2.2
|
|
|
|
/**
|
|
* Viewer3DSettings singleton gathers properties related to the 3D Viewer capabilities, state and display options.
|
|
*/
|
|
Item {
|
|
readonly property Component sfmDataLoaderComp: Qt.createComponent("SfmDataLoader.qml")
|
|
readonly property bool supportSfmData: sfmDataLoaderComp.status == Component.Ready
|
|
readonly property Component depthMapLoaderComp: Qt.createComponent("DepthMapLoader.qml")
|
|
readonly property bool supportDepthMap: depthMapLoaderComp.status == Component.Ready
|
|
|
|
// supported 3D files extensions
|
|
readonly property var supportedExtensions: {
|
|
var exts = ['.obj', '.stl', '.fbx', '.gltf', '.ply'];
|
|
if (supportSfmData) {
|
|
exts.push('.abc')
|
|
exts.push('.json')
|
|
exts.push('.sfm')
|
|
}
|
|
if (supportDepthMap)
|
|
exts.push('.exr')
|
|
|
|
return exts;
|
|
}
|
|
|
|
// Available render modes
|
|
readonly property var renderModes: [ // Can't use ListModel because of MaterialIcons expressions
|
|
{"name": "Solid", "icon": MaterialIcons.crop_din },
|
|
{"name": "Wireframe", "icon": MaterialIcons.details },
|
|
{"name": "Textured", "icon": MaterialIcons.texture },
|
|
{"name": "Spherical Harmonics", "icon": MaterialIcons.brightness_7}
|
|
]
|
|
// Current render mode
|
|
property int renderMode: 2
|
|
|
|
// Spherical Harmonics file
|
|
property string shlFile: ""
|
|
// Whether to display normals
|
|
property bool displayNormals: false
|
|
|
|
// Rasterized point size
|
|
property real pointSize: 1.5
|
|
// Whether point size is fixed or view dependent
|
|
property bool fixedPointSize: false
|
|
property real cameraScale: 0.3
|
|
// Helpers display
|
|
property bool displayGrid: true
|
|
property bool displayGizmo: true
|
|
property bool displayOrigin: false
|
|
// Camera
|
|
property bool syncViewpointCamera: false
|
|
property bool viewpointImageOverlay: true
|
|
property real viewpointImageOverlayOpacity: 0.5
|
|
readonly property bool showViewpointImageOverlay: syncViewpointCamera && viewpointImageOverlay
|
|
property bool viewpointImageFrame: false
|
|
readonly property bool showViewpointImageFrame: syncViewpointCamera && viewpointImageFrame
|
|
|
|
// Cameras' resection IDs
|
|
property bool displayResectionIds: false
|
|
property int resectionIdCount: 0
|
|
property int resectionId: resectionIdCount
|
|
property var resectionGroups: [] // Number of cameras for each resection ID
|
|
}
|