2021-10-02 20:47:02 +02:00
|
|
|
#ifndef MESH_PROCESSING_H
|
|
|
|
#define MESH_PROCESSING_H
|
|
|
|
|
|
|
|
#include "my_mesh.h"
|
2021-11-13 17:53:21 +01:00
|
|
|
#include "curvature.h"
|
|
|
|
#include "mesh_viewer.h"
|
2021-10-02 20:47:02 +02:00
|
|
|
#include <vector>
|
|
|
|
#include <QObject>
|
|
|
|
|
|
|
|
|
|
|
|
class MeshProcessor : public QObject {
|
|
|
|
Q_OBJECT
|
|
|
|
|
2021-11-13 17:53:21 +01:00
|
|
|
Courbures *courbure = nullptr;
|
|
|
|
MeshViewer &mesh_viewer;
|
2021-11-25 14:59:13 +01:00
|
|
|
bool view_patches = false;
|
2021-11-27 15:28:47 +01:00
|
|
|
float implicit_hole_filling_scale = 4;
|
|
|
|
float implicit_hole_filling_discr = 1./40;
|
2021-11-25 14:59:13 +01:00
|
|
|
|
|
|
|
void updateView() const;
|
2021-11-13 17:53:21 +01:00
|
|
|
|
2021-10-02 20:47:02 +02:00
|
|
|
public:
|
|
|
|
MyMesh mesh;
|
2021-11-12 17:08:19 +01:00
|
|
|
MyMesh patch;
|
2021-10-02 20:47:02 +02:00
|
|
|
|
2021-11-13 17:53:21 +01:00
|
|
|
MeshProcessor(const QString &path, MeshViewer &mesh_viewer);
|
|
|
|
~MeshProcessor();
|
2021-10-02 20:47:02 +02:00
|
|
|
|
|
|
|
public slots:
|
2021-11-25 14:59:13 +01:00
|
|
|
void fillHolesDumb();
|
|
|
|
void fillHolesImplicit();
|
2021-11-27 15:28:47 +01:00
|
|
|
void setImplicitHoleFillingScale(float scale);
|
|
|
|
void setImplicitHoleFillingDiscr(float discr);
|
2021-11-25 14:59:13 +01:00
|
|
|
void smooth();
|
|
|
|
void setPatchView(bool on);
|
2021-11-13 17:53:21 +01:00
|
|
|
void click(QVector3D position);
|
2021-10-02 20:47:02 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
#endif
|