1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
|
//##########################################################################
//# #
//# CLOUDCOMPARE #
//# #
//# This program is free software; you can redistribute it and/or modify #
//# it under the terms of the GNU General Public License as published by #
//# the Free Software Foundation; version 2 or later of the License. #
//# #
//# This program is distributed in the hope that it will be useful, #
//# but WITHOUT ANY WARRANTY; without even the implied warranty of #
//# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
//# GNU General Public License for more details. #
//# #
//# COPYRIGHT: EDF R&D / TELECOM ParisTech (ENST-TSI) #
//# #
//##########################################################################
#ifndef CC_POINT_PROPERTIES_DIALOG_HEADER
#define CC_POINT_PROPERTIES_DIALOG_HEADER
#include "ccPointPickingGenericInterface.h"
//Local
#include <ui_pointPropertiesDlg.h>
class cc2DLabel;
class cc2DViewportLabel;
class ccHObject;
//! Dialog for simple point picking (information, distance, etc.)
class ccPointPropertiesDlg : public ccPointPickingGenericInterface, public Ui::PointPropertiesDlg
{
Q_OBJECT
public:
//! Default constructor
explicit ccPointPropertiesDlg(ccPickingHub* pickingHub, QWidget* parent);
//! Default destructor
virtual ~ccPointPropertiesDlg();
//inherited from ccPointPickingGenericInterface
virtual bool start() override;
virtual void stop(bool state) override;
virtual bool linkWith(ccGLWindow* win) override;
protected slots:
void onClose();
void activatePointPropertiesDisplay();
void activateDistanceDisplay();
void activateAngleDisplay();
void activate2DZonePicking();
void initializeState();
void exportCurrentLabel();
void update2DZone(int x, int y, Qt::MouseButtons buttons);
void processClickedPoint(int x, int y);
void close2DZone();
signals:
//! Signal emitted when a new label is created
void newLabel(ccHObject*);
protected:
//! Picking mode
enum Mode
{
POINT_INFO,
POINT_POINT_DISTANCE,
POINTS_ANGLE,
RECT_ZONE
};
//inherited from ccPointPickingGenericInterface
void processPickedPoint(ccPointCloud* cloud, unsigned pointIndex, int x, int y) override;
//! Current picking mode
Mode m_pickingMode;
//! Associated 3D label
cc2DLabel* m_label;
//! Associated 2D label
cc2DViewportLabel* m_rect2DLabel;
};
#endif
|