ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
ecvFilterTool.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 // LOCAL
11 #include <ecvOverlayDialog.h>
12 #include <ui_filterToolDlg.h>
13 
14 // CV_DB_LIB
15 #include <ecvDisplayTools.h>
16 #include <ecvGenericFiltersTool.h>
17 
18 // SYSTEM
19 #include <vector>
20 
21 class ccGenericMesh;
22 class ecvProgressDialog;
23 class ccHObject;
24 class ccClipBox;
25 class ccPolyline;
26 class ccBBox;
27 
29 class ecvFilterTool : public ccOverlayDialog, public Ui::FilterToolDlg {
30  Q_OBJECT
31 
32 public:
34  explicit ecvFilterTool(QWidget* parent);
36  virtual ~ecvFilterTool();
37 
38  // inherited from ccOverlayDialog
39  virtual bool linkWith(QWidget* win) override;
40  virtual bool start() override;
41  virtual void stop(bool state) override;
42 
43  void setFilter(ecvGenericFiltersTool* filter);
45 
47 
49  bool addAssociatedEntity(ccHObject* anObject);
50 
52  unsigned getNumberOfAssociatedEntity() const;
53 
54  inline ccHObject::Container getOutputs() const { return m_out_entities; }
55 
56 protected slots:
57 
58  void toggleInteractors(bool);
59  void toggleBox(bool);
60 
61  void reset();
62  void restoreOrigin();
63  void closeDialog();
64  void exportSlice();
65 
66  inline void shiftXMinus() { shiftBox(0, true); }
67  inline void shiftXPlus() { shiftBox(0, false); }
68  inline void shiftYMinus() { shiftBox(1, true); }
69  inline void shiftYPlus() { shiftBox(1, false); }
70  inline void shiftZMinus() { shiftBox(2, true); }
71  inline void shiftZPlus() { shiftBox(2, false); }
72 
73  inline void setTopView() { setView(CC_TOP_VIEW); }
74  inline void setBottomView() { setView(CC_BOTTOM_VIEW); }
75  inline void setFrontView() { setView(CC_FRONT_VIEW); }
76  inline void setBackView() { setView(CC_BACK_VIEW); }
77  inline void setLeftView() { setView(CC_LEFT_VIEW); }
78  inline void setRightView() { setView(CC_RIGHT_VIEW); }
79 
81 
82 protected:
84 
87 
88  ccHObject* getSlice(bool silent);
89 
91  void shiftBox(unsigned char dim, bool minus);
92 
94  void setView(CC_VIEW_ORIENTATION orientation);
95 
98 
100 
103 
105 };
CC_VIEW_ORIENTATION
View orientation.
Definition: CVConst.h:102
@ CC_FRONT_VIEW
Definition: CVConst.h:105
@ CC_TOP_VIEW
Definition: CVConst.h:103
@ CC_RIGHT_VIEW
Definition: CVConst.h:108
@ CC_BOTTOM_VIEW
Definition: CVConst.h:104
@ CC_BACK_VIEW
Definition: CVConst.h:106
@ CC_LEFT_VIEW
Definition: CVConst.h:107
#define slots
Bounding box structure.
Definition: ecvBBox.h:25
Clipping box.
Definition: ecvClipBox.h:22
Generic mesh interface.
Hierarchical CLOUDVIEWER Object.
Definition: ecvHObject.h:25
std::vector< ccHObject * > Container
Standard instances container (for children, etc.)
Definition: ecvHObject.h:337
Generic overlay dialog interface.
Colored polyline.
Definition: ecvPolyline.h:24
Dialog for managing a clipping box.
Definition: ecvFilterTool.h:29
void shiftBox(unsigned char dim, bool minus)
Shift box.
ecvFilterTool(QWidget *parent)
Default constructor.
void setRightView()
Definition: ecvFilterTool.h:78
void shiftXPlus()
Definition: ecvFilterTool.h:67
void setBottomView()
Definition: ecvFilterTool.h:74
void setFilter(ecvGenericFiltersTool *filter)
void shiftYMinus()
Definition: ecvFilterTool.h:68
void shiftZMinus()
Definition: ecvFilterTool.h:70
ecvGenericFiltersTool * getFilter() const
Definition: ecvFilterTool.h:44
ccHObject::Container m_out_entities
bool addAssociatedEntity(ccHObject *anObject)
Adds an entity.
unsigned getNumberOfAssociatedEntity() const
Returns the current number of associated entities.
ccHObject::Container getOutputs() const
Definition: ecvFilterTool.h:54
void setTopView()
Definition: ecvFilterTool.h:73
void setBackView()
Definition: ecvFilterTool.h:76
void setLeftView()
Definition: ecvFilterTool.h:77
void releaseAssociatedEntities()
Releases all associated entities.
void shiftZPlus()
Definition: ecvFilterTool.h:71
ccHObject m_entityContainer
Associated entities container.
void shiftYPlus()
Definition: ecvFilterTool.h:69
ecvGenericFiltersTool::FilterType m_filterType
Definition: ecvFilterTool.h:99
void shiftXMinus()
Definition: ecvFilterTool.h:66
void toggleBox(bool)
void toggleInteractors(bool)
virtual bool start() override
Starts process.
ccBBox getSelectedEntityBbox()
ecvGenericFiltersTool * m_filter
filter tool
Definition: ecvFilterTool.h:97
virtual bool linkWith(QWidget *win) override
Links the overlay dialog with a MDI window.
virtual ~ecvFilterTool()
Default destructor.
virtual void stop(bool state) override
Stops process/dialog.
void setView(CC_VIEW_ORIENTATION orientation)
Sets predefined view.
ccHObject * getSlice(bool silent)
void setFrontView()
Definition: ecvFilterTool.h:75
Generic Filters Tool interface.
Graphical progress indicator (thread-safe)