]> git.sur5r.net Git - fstl/blobdiff - src/mesh.h
Move load_stl from Mesh to Loader
[fstl] / src / mesh.h
index 064d276e893eaef9dffc132066f29967e13d359e..e8a02f09a2c369b0788b90f7ca0ad97fd7166b18 100644 (file)
@@ -2,25 +2,28 @@
 #define MESH_H
 
 #include <QString>
+#include <QtOpenGL/QtOpenGL>
 
-#include <Eigen/Dense>
+#include <vector>
 
 class Mesh
 {
 public:
-    Mesh(const Eigen::Matrix3Xf &vertices, const Eigen::Matrix3Xi &indices);
-    static Mesh* load_stl(const QString& filename);
+    Mesh(std::vector<GLfloat> vertices, std::vector<GLuint> indices);
 
-    float xmin() const { return vertices.row(0).minCoeff(); }
-    float xmax() const { return vertices.row(0).maxCoeff(); }
-    float ymin() const { return vertices.row(1).minCoeff(); }
-    float ymax() const { return vertices.row(1).maxCoeff(); }
-    float zmin() const { return vertices.row(2).minCoeff(); }
-    float zmax() const { return vertices.row(2).maxCoeff(); }
+    float min(size_t start) const;
+    float max(size_t start) const;
+
+    float xmin() const { return min(0); }
+    float ymin() const { return min(1); }
+    float zmin() const { return min(2); }
+    float xmax() const { return max(0); }
+    float ymax() const { return max(1); }
+    float zmax() const { return max(2); }
 
 private:
-    const Eigen::Matrix3Xf vertices;
-    const Eigen::Matrix3Xi indices;
+    std::vector<GLfloat> vertices;
+    std::vector<GLuint> indices;
 
     friend class GLMesh;
 };