53 #include <Eigen/Dense> 54 #include <Eigen/Eigenvalues> 56 #include "ICPToolbarWidget.hh" 57 #include "VertexList.hh" 58 #include <ACG/Geometry/Algorithms.hh> 66 double errorThreshold_;
67 double distanceThreshold_;
68 double normalDotThreshold_;
71 bool interpolateNormals_;
74 typedef struct ICPParameter ICPParameter;
98 Q_PLUGIN_METADATA(IID
"org.OpenFlipper.Plugins.Plugin-ICP")
103 void updatedObject(
int _id,
const UpdateType& _type);
106 void log(
Logtype _type, QString _message);
107 void log(QString _message);
110 void addToolbox( QString _name , QWidget* _widget, QIcon* _icon);
113 void scriptInfo(QString _functionName);
119 void addEmptyObject(
DataType _type,
int& _id);
120 void deleteObject(
int _id);
121 void deleteAllObjects();
134 QString
name() {
return (QString(
"ICP")); }
135 QString
description( ) {
return (QString(
"Implementation of the ICP algorithm")); }
140 void initializePlugin();
142 void pluginsInitialized();
157 void icp(
int _maxIterations,
double _errorThreshold,
double _distanceThreshold,
double _normalDotThreshold,
bool _debugOutput,
bool _doResize,
bool _interpolateNormals,
int _sourceObjectID,
int _targetObjectID);
161 void doICP(ICPContext* _context);
163 QString version() {
return QString(
"1.0"); }
const UpdateType UPDATE_ALL(UpdateTypeSet(1))
Identifier for all updates.
Logtype
Log types for Message Window.
Interface for all Plugins which do logging to the logging window of the framework.
QString description()
Return a description of what the plugin is doing.
QString name()
Return a name for the plugin.
Type for a MeshObject containing a triangle mesh.
Interface for all Plugins which provide scriptable Functions.
void icp(const std::vector< VectorT > &_points1, const std::vector< VectorT > &_points2, VectorT &_cog1, VectorT &_cog2, double &_scale1, double &_scale2, QuaternionT &_rotation)
Compute rigid transformation from first point set to second point set.
Interface class from which all plugins have to be created.
Interface class for backup handling.
Interface for all plugins which want to Load or Save files and create Objects.