ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
ecvPointListPickingDlg.h
Go to the documentation of this file.
1 // ----------------------------------------------------------------------------
2 // - CloudViewer: www.cloudViewer.org -
3 // ----------------------------------------------------------------------------
4 // Copyright (c) 2018-2024 www.cloudViewer.org
5 // SPDX-License-Identifier: MIT
6 // ----------------------------------------------------------------------------
7 
8 #pragma once
9 
10 // GUI
11 #include <ui_pointListPickingDlg.h>
12 
13 // Local
15 
16 // CV_DB_LIB
17 #include <ecvHObject.h>
18 
19 class cc2DLabel;
20 
22 
26  public Ui::PointListPickingDlg {
27  Q_OBJECT
28 
29 public:
31  explicit ccPointListPickingDlg(ccPickingHub* pickingHub, QWidget* parent);
32 
34  void linkWithCloud(ccPointCloud* cloud);
35 
36 protected slots:
37 
39  void applyAndExit();
41  void cancelAndExit();
43  void exportToNewCloud();
45  void exportToNewPolyline();
47  void removeLastEntry();
48 
50  inline void exportToASCII_xyz() {
52  }
54  inline void exportToASCII_ixyz() {
56  }
58  inline void exportToASCII_gxyz() {
60  }
62  inline void exportToASCII_lxyz() {
64  }
65 
67  void markerSizeChanged(int);
69  void startIndexChanged(int);
71  void updateList();
72 
73 protected:
74  // inherited from ccPointPickingGenericInterface
75  virtual void processPickedPoint(ccPointCloud* cloud,
76  unsigned pointIndex,
77  int x,
78  int y) override;
79 
81  unsigned getPickedPoints(std::vector<cc2DLabel*>& pickedPoints);
82 
83  void clearLastLabel(ccHObject* lastVisibleLabel);
84  void removeEntity(ccHObject* lastVisibleLabel);
85 
87 
89  enum ExportFormat {
94  };
95 
98 
101 
112 };
filament::Texture::InternalFormat format
#define slots
2D label (typically attached to points)
Definition: ecv2DLabel.h:22
Hierarchical CLOUDVIEWER Object.
Definition: ecvHObject.h:25
std::vector< ccHObject * > Container
Standard instances container (for children, etc.)
Definition: ecvHObject.h:337
Point/triangle picking hub.
Definition: ecvPickingHub.h:29
A 3D cloud and its associated features (color, normals, scalar fields, etc.)
Dialog/interactor to graphically pick a list of points.
void exportToASCII_ixyz()
Exports list to an 'ixyz' ASCII file.
void exportToNewPolyline()
Exports list to a polyline.
void exportToASCII_gxyz()
Exports list to an 'gxyz' ASCII file.
void linkWithCloud(ccPointCloud *cloud)
Associates dialog with cloud.
void removeLastEntry()
Removes last inserted point from list.
void exportToASCII(ExportFormat format)
Exports list to an ASCII file.
void removeEntity(ccHObject *lastVisibleLabel)
unsigned m_lastPreviousID
Last existing label unique ID on load.
ccHObject::Container m_toBeDeleted
ccHObject * m_orderedLabelsContainer
Ordered labels container.
void startIndexChanged(int)
Redraw window when starting index changes.
void exportToASCII_lxyz()
Exports list to an 'lxyz' ASCII file.
ccPointCloud * m_associatedCloud
Associated cloud.
void updateList()
Updates point list widget.
ccPointListPickingDlg(ccPickingHub *pickingHub, QWidget *parent)
Default constructor.
void clearLastLabel(ccHObject *lastVisibleLabel)
void exportToASCII_xyz()
Exports list to an 'xyz' ASCII file.
virtual void processPickedPoint(ccPointCloud *cloud, unsigned pointIndex, int x, int y) override
Generic method to process picked points.
unsigned getPickedPoints(std::vector< cc2DLabel * > &pickedPoints)
Gets current (visible) picked points from the associated cloud.
void markerSizeChanged(int)
Redraw window when marker size changes.
void exportToNewCloud()
Exports list to a new cloud.
void applyAndExit()
Applies changes and exit.
ccHObject::Container m_toBeAdded
void cancelAndExit()
Cancels process and exit.