Meshroom/meshroom/ui/qml/Viewer3D/Viewer3DSettings.qml
2024-02-13 10:27:57 +01:00

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
}