mod_geo-tp/src/mesh_processor.h

43 lines
883 B
C
Raw Normal View History

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 16:54:44 +01:00
double implicit_hole_filling_scale;
double implicit_hole_filling_discr;
std::vector<MyMesh> fillings;
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-27 16:54:44 +01:00
MeshProcessor(const QString &path, MeshViewer &mesh_viewer,
double implicit_hole_filling_scale,
double implicit_hole_filling_discr);
2021-11-13 17:53:21 +01:00
~MeshProcessor();
2021-10-02 20:47:02 +02:00
public slots:
2021-11-25 14:59:13 +01:00
void fillHolesDumb();
void fillHolesImplicit();
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