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