23 #include <ui_pointPairRegistrationDlg.h>
32 Ui::pointPairRegistrationDlg {
39 QWidget* parent =
nullptr);
42 bool linkWith(QWidget* win)
override;
43 bool start()
override;
44 void stop(
bool state)
override;
47 bool init(QWidget* win,
55 void pause(
bool state);
float PointCoordinateType
Type of the coordinates of a (N-D) point.
2D label (typically attached to points)
Float version of ccGLMatrixTpl.
A 3D cloud interface with associated features (color, normals, octree, etc.)
Hierarchical CLOUDVIEWER Object.
std::vector< ccHObject * > Container
Standard instances container (for children, etc.)
Generic overlay dialog interface.
Point/triangle picking hub.
Point/triangle picking listener interface.
A 3D cloud and its associated features (color, normals, scalar fields, etc.)
bool start() override
Starts process.
void updateAlignedMarkers(int index)
void label2DMove(int x, int y, int dx, int dy)
EntityContexts m_alignedEntities
Aligned entity.
void updateAllMarkers(float markerSize)
bool m_paused
Whether the dialog is paused or not.
void stop(bool state) override
Stops process/dialog.
EntityContexts m_referenceEntities
Reference entity (if any)
void updateRefMarkers(int index)
void onItemPicked(const PickedItem &pi) override
Inherited from ccPickingListener.
void unstackAligned()
Slot called to remove the last point on the 'align' stack.
ccHObject m_alignedLabels
void removeRefPoint(int index, bool autoRemoveDualPoint=true)
Removes a point from the 'reference' set.
bool convertToSphereCenter(CCVector3d &P, ccHObject *entity, PointCoordinateType &sphereRadius)
Converts a picked point to a sphere center (if necessary)
bool linkWith(QWidget *win) override
Links the overlay dialog with a MDI window.
void addManualRefPoint()
Slot called to add a manual point to the 'reference' set.
void unstackRef()
Slot called to remove the last point on the 'reference' stack.
void updateAlignInfo()
Updates the registration info and buttons states.
ccPickingHub * m_pickingHub
Picking hub.
void onDelButtonPushed()
Slot called when a "delete" button is pushed.
void resetTitle()
Resets the displayed title (3D view)
void addPointToTable(QTableWidget *tableWidget, int rowIndex, const CCVector3d &P, QString pointLabel)
Adds a point to one of the table (ref./aligned)
bool addAlignedPoint(CCVector3d &P, ccHObject *entity=nullptr, bool shifted=true)
Adds a point to the 'align' set.
ccGLMatrix m_transMatHistory
bool callHornRegistration(cloudViewer::PointProjectionTools::Transformation &trans, double &rms, bool autoUpdateTab)
Calls Horn registration (cloudViewer::HornRegistrationTools)
void updateSphereMarks(ccHObject *obj, bool remove)
void onPointCountChanged()
Enables (or not) buttons depending on the number of points in both lists.
ccPointPairRegistrationDlg(ccPickingHub *pickingHub, ecvMainAppInterface *app, QWidget *parent=nullptr)
Default constructor.
void removeAlignedPoint(int index, bool autoRemoveDualPoint=true)
Removes a point from the 'align' set.
void clearRMSColumns()
Clears the RMS rows.
ecvMainAppInterface * m_app
Main application interface.
void addManualAlignedPoint()
Slot called to add a manual point to the 'align' set.
void transformAlignedEntity(const ccGLMatrix &transMat, bool apply=true)
void showAlignedEntities(bool)
Slot called to change aligned cloud visibility.
ccPointCloud m_alignedPoints
Aligned points set.
bool init(QWidget *win, const ccHObject::Container &alignedEntities, const ccHObject::Container *referenceEntities=nullptr)
Inits dialog.
ccPointCloud m_refPoints
Reference points set.
void clear()
Clears dialog.
bool addReferencePoint(CCVector3d &P, ccHObject *entity=nullptr, bool shifted=true)
Adds a point to the 'reference' set.
void zoomGlobalOnRegistrationEntities()
void showReferenceEntities(bool)
Slot called to change reference cloud visibility.
void pause(bool state)
Pauses the dialog.
Main application interface (for plugins)
void restore()
Restores cloud original state.
EntityContext(ccHObject *ent)
Default constructor.
void fill(const ccHObject::Container &entities)