Go to the documentation of this file.
34 #ifndef MAINWINDOW_HPP_
35 #define MAINWINDOW_HPP_
37 #include <vtkSmartPointer.h>
38 #include <vtkCamera.h>
39 #include <vtkCameraRepresentation.h>
40 #include <vtkCameraInterpolator.h>
41 #include <vtkCommand.h>
42 #include <vtkRenderer.h>
43 #include <vtkRendererCollection.h>
44 #include <vtkRenderWindow.h>
45 #include <vtkRenderWindowInteractor.h>
46 #include <vtkViewport.h>
47 #include <vtkObjectFactory.h>
48 #include <vtkGraphicsFactory.h>
49 #include <vtkOrientationMarkerWidget.h>
50 #include <vtkAxesActor.h>
51 #include <vtkOpenGLRenderer.h>
54 #include <vtkCullerCollection.h>
57 #ifdef LVR2_USE_VTK_GE_7_1
58 #include <vtkEDLShading.h>
59 #include <vtkRenderStepsPass.h>
64 #include "ui_LVRMainWindowQVTKOGLUI.h"
66 #include "ui_LVRMainWindowUI.h"
68 #include "ui_LVRAboutDialogUI.h"
69 #include "ui_LVRTooltipDialogUI.h"
73 #include "../widgets/LVRPlotter.hpp"
74 #include "../vtkBridge/LVRModelBridge.hpp"
75 #include "../widgets/LVRModelItem.hpp"
76 #include "../widgets/LVRPointCloudItem.hpp"
77 #include "../widgets/LVRMeshItem.hpp"
78 #include "../widgets/LVRItemTypes.hpp"
79 #include "../widgets/LVRRenameDialog.hpp"
80 #include "../widgets/LVRAnimationDialog.hpp"
81 #include "../widgets/LVRTransformationDialog.hpp"
82 #include "../widgets/LVRCorrespondanceDialog.hpp"
83 #include "../widgets/LVRLabelDialog.hpp"
84 #include "../widgets/LVRReconstructionEstimateNormalsDialog.hpp"
85 #include "../widgets/LVRReconstructionMarchingCubesDialog.hpp"
86 #include "../widgets/LVRReconstructionExtendedMarchingCubesDialog.hpp"
87 #include "../widgets/LVROptimizationPlanarOptimizationDialog.hpp"
88 #include "../widgets/LVROptimizationRemoveArtifactsDialog.hpp"
89 #include "../widgets/LVRFilteringMLSProjectionDialog.hpp"
90 #include "../widgets/LVRFilteringRemoveOutliersDialog.hpp"
91 #include "../widgets/LVRBackgroundDialog.hpp"
92 #include "../widgets/LVRHistogram.hpp"
93 #include "../widgets/LVRScanDataItem.hpp"
94 #include "../widgets/LVRCamDataItem.hpp"
95 #include "../widgets/LVRBoundingBoxItem.hpp"
96 #include "../widgets/LVRPointInfo.hpp"
97 #include "../vtkBridge/LVRPickingInteractor.hpp"
98 #include "../vtkBridge/LVRLabelInteractor.hpp"
99 #include "../vtkBridge/LVRVtkArrow.hpp"
105 #include <boost/format.hpp>
107 #include "../vtkBridge/LVRChunkedMeshBridge.hpp"
108 #include "../vtkBridge/LVRChunkedMeshCuller.hpp"
110 #define LABEL_NAME_COLUMN 0
111 #define LABELED_POINT_COLUMN 1
112 #define LABEL_VISIBLE_COLUMN 2
113 #define LABEL_ID_COLUMN 3
146 void loadModels(
const QStringList& filenames);
148 void loadChunkedMesh(
const QStringList& filenames, std::vector<std::string> layers,
int cacheSize,
float highResDistance);
235 QTreeWidgetItem*
addScans(std::shared_ptr<ScanDataManager> sdm, QTreeWidgetItem *parent);
384 #ifdef LVR2_USE_VTK_GE_7_1
385 vtkSmartPointer<vtkRenderStepsPass> m_basicPasses;
386 vtkSmartPointer<vtkEDLShading> m_edl;
QAction * m_actionEstimate_Normals
QMenu * m_treeParentItemContextMenu
QAction * m_actionShowBackgroundSettings
void togglePoints(bool checkboxState)
QAction * m_actionSimple_Plane_Classification
QAction * m_actionGlobal_Relaxation
void showLabelTreeContextMenu(const QPoint &)
QAction * m_actionDeleteModelItem
QAction * m_actionSetViewToCamera
QAction * m_actionShow_Wireframe
QSlider * m_horizontalSliderTransparency
void unloadPointCloudData()
void changeGradientColor()
Updates all selected LVRPointCloudItems to the desired Gradient. can take seconds
void updatePointCount(const uint16_t, const int)
QAction * m_actionMatch_Textures_from_Package
QAction * m_actionExtended_Marching_Cubes
void changePointSize(int pointSize)
QMenu * m_treeChildItemContextMenu
void labelChanged(uint16_t)
LVRLabelDialog * m_labelDialog
void showBackgroundDialog()
QAction * m_actionExtract_labeling
QAction * m_actionShowImage
void highlightBoundingBoxes()
QPushButton * m_buttonCreateMesh
QAction * m_actionRemoveInstance
vtkSmartPointer< vtkAxesActor > m_axes
QAction * m_actionShowSpectralHistogram
void onSpectralSliderChanged(int action=-1)
Determines if changeSpectralColor() should be called. Updates the m_spectralLineEdit to the value fro...
QAction * m_actionRemove_Outliers
QAction * m_actionRemove_Artifacts
std::set< LVRModelItem * > getSelectedModelItems()
boost::shared_ptr< LVRChunkedMeshBridge > ChunkedMeshBridgePtr
QMessageBox * m_incompatibilityBox
void reconstructUsingExtendedMarchingCubes()
QAction * m_actionRenameModelItem
QAction * m_actionShowSpectralColorGradient
std::shared_ptr< PointBuffer > PointBufferPtr
LVRPlotter * m_PointPreviewPlotter
void reconstructUsingMarchingCubes()
void loadModels(const QStringList &filenames)
QAction * m_actionOpenChunkedMesh
ChunkedMeshBridgePtr m_chunkBridge
void applyMLSProjection()
QAction * m_actionShow_Normals
void labelAdded(QTreeWidgetItem *)
std::map< LVRPointCloudItem *, LVRHistogram * > m_histograms
A wrapper class to generate arrow actors for vtk based on VTK's oriented arrow example.
void addArrow(LVRVtkArrow *)
void reconstructUsingPlanarMarchingCubes()
vtkSmartPointer< vtkCameraRepresentation > m_pathCamera
QAction * m_actionMLS_Projection
vtkSmartPointer< vtkOrientationMarkerWidget > m_axesWidget
QAction * m_actionShowColorDialog
void correspondenceDialogOpened()
LVRCorrespondanceDialog * m_correspondanceDialog
void removeArrow(LVRVtkArrow *)
void restoreSliders()
Adjusts all the Sliders, LineEdits and CheckBoxes to the currently selected Items.
void parseCommandLine(int argc, char **argv)
void loadPointCloudData()
void changeSpectralColor()
Updates all selected LVRPointCloudItems to the desired Spectral. can take seconds
QSlider * m_spectralSliders[3]
void connectSignalsAndSlots()
QLabel * m_spectralLabels[3]
LVRTreeWidgetHelper * m_treeWidgetHelper
void showHistogramDialog()
Shows a Popup Dialog with the average Intensity per Spectral Channel.
void setModelVisibility(QTreeWidgetItem *treeWidgetItem, int column)
@ POINTCLOUDS_AND_PARENT_ONLY
void addNewInstance(QTreeWidgetItem *)
QAction * m_actionLoadPointCloudData
QCheckBox * m_spectralCheckboxes[3]
std::unordered_map< size_t, vtkSmartPointer< vtkActor > > actorMap
void showTransformationDialog()
QList< LVRPointCloudItem * > getPointCloudItems(QList< QTreeWidgetItem * > items)
QAction * m_actionShowSpectralSlider
QMenu * m_labelTreeChildItemContextMenu
void updatePointPreview(int pointId, PointBufferPtr points)
Changes the Point displayed by the PointPreview.
LVRModelItem * getModelItem(QTreeWidgetItem *item)
void changeShading(int shader)
@ POINTCLOUDS_AND_MESHES_ONLY
QAction * m_actionReset_Camera
std::set< LVRPointCloudItem * > getSelectedPointCloudItems()
QTreeWidgetItem * m_selectedLabelItem
void openCameraPathTool()
QAction * m_actionPasteModelItem
void changeTransparency(int transparencyValue)
QAction * m_actionExportModelTransformed
QAction * m_actionStop_labeling
void showErrorDialog()
Shows a Popup Dialog saying that no PointClouds with spectral data are selected.
QAction * m_actionCompute_Textures
void toggleWireframe(bool checkboxState)
void toggleMeshes(bool checkboxState)
QAction * m_actionAddNewInstance
@ POINTCLOUDS_AND_MESHES_AND_PARENT_ONLY
LVRMeshItem * getMeshItem(QTreeWidgetItem *item)
void exportSelectedModel()
void showPointInfoDialog()
Shows a Popup Dialog with Information about a Point.
LVRPickingInteractor * m_pickingInteractor
void comboBoxIndexChanged(int index)
void labelLoaded(int, std::vector< int >)
QAction * m_actionStore_Current_View
QPushButton * m_buttonCameraPathTool
QComboBox * m_comboBoxGradient
QAction * m_actionCameraPathTool
QAction * m_actionExtract_and_Rematch_Patterns
void visibilityChanged(QTreeWidgetItem *, int)
QSlider * m_horizontalSliderPointSize
QAction * m_actionUnloadPointCloudData
PointBufferPtr m_previewPointBuffer
QAction * m_actionMarching_Cubes
void updateSpectralGradientEnabled(bool checked)
Switches between Sliders and Gradients. checked == true => Gradient DockWidget enabled.
void onSpectralLineEditChanged()
Updates the m_spectralSlider to the value from m_spectralLineEdit.
vtkSmartPointer< vtkCamera > m_camera
QComboBox * m_comboBoxShading
QAction * m_actionCopyModelItem
LVRModelItem * loadModelItem(QString name)
QLineEdit * m_gradientLineEdit
void onSpectralLineEditSubmit()
Same as onSpectralLineEditChanged(), but triggers changeSpectralView()
void showPointPreview(vtkActor *actor, int point)
Shows the DockerWidget with the preview of the PointInfoDialog.
QAction * m_actionPlanar_Optimization
QAction * m_actionShow_Mesh
void changePicker(bool labeling)
ChunkedMeshCuller * m_chunkCuller
QAction * m_actionPlanar_Marching_Cubes
QSlider * m_gradientSlider
void onGradientLineEditSubmit()
Same as onGradientLineEditChanged(), but triggers changeGradientView()
QAction * m_actionFurniture_Recognition
QList< QTreeWidgetItem * > m_items_copied
QPushButton * m_buttonTransformModel
QAction * m_actionShowSpectralPointPreview
void buildIncompatibilityBox(string actionName, unsigned char allowedTypes)
void toggleNormals(bool checkboxState)
QTreeWidgetItem * addScans(std::shared_ptr< ScanDataManager > sdm, QTreeWidgetItem *parent)
std::set< LVRMeshItem * > getSelectedMeshItems()
LVRMainWindow()
MainWindow.
void hidePoints(int, bool)
QAction * m_actionICP_Using_Manual_Correspondance
void showTreeContextMenu(const QPoint &)
QString increaseFilename(QString filename)
LVRPointCloudItem * getPointCloudItem(QTreeWidgetItem *item)
void updateDisplayLists(actorMap lowRes, actorMap highRes)
QAction * m_actionAddLabelClass
QPushButton * m_buttonExportData
void onGradientSliderChanged(int action=-1)
Determines if changeGradientColor() should be called. Updates the m_gradientLineEdit to the value fro...
void cellSelected(QTreeWidgetItem *item, int column)
QAction * m_actionShow_Points
void onGradientLineEditChanged()
Updates the m_gradientSlider to the value from m_gradientLineEdit.
void updateSpectralSlidersEnabled(bool checked)
Switches between Sliders and Gradients. checked == true => Slider DockWidget enabled.
QMenu * m_labelTreeParentItemContextMenu
vtkSmartPointer< vtkRenderWindowInteractor > m_renderWindowInteractor
vtkSmartPointer< vtkRenderer > m_renderer
LVRLabelInteractorStyle * m_labelInteractor
QLineEdit * m_spectralLineEdits[3]
static const string UNKNOWNNAME
void toogleEDL(bool checkboxstate)
QAction * m_actionRecall_Stored_View
bool childNameExists(QTreeWidgetItem *item, const QString &name)
QAction * m_actionICP_Using_Pose_Estimations
QAction * m_actionStart_labeling
lvr2
Author(s): Thomas Wiemann
, Sebastian Pütz , Alexander Mock , Lars Kiesow , Lukas Kalbertodt , Tristan Igelbrink , Johan M. von Behren , Dominik Feldschnieders , Alexander Löhr
autogenerated on Wed Mar 2 2022 00:37:24