Meshroom/meshroom/ui/qml/Viewer3D/Viewer3DSettings.qml
Candice Bentéjac 610523e3ea [Viewer3D] Add slider to display cameras based on their resection IDs
If any model with cameras is displayed in the 3D Viewer, a slider can
be used to filter the cameras that are being currently displayed based
on their resection IDs. This allows to visualize the order in which the
cameras have been added, and the groups in which they have been added.
2023-11-07 11:16:16 +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'];
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
}