]> git.sur5r.net Git - fstl/blobdiff - src/mesh.cpp
New upstream version 0.10.0
[fstl] / src / mesh.cpp
index cfb4ca464f5be66adb121ac7dd26adf795d061c2..2c44a2c5e19fc4c70f40bf3a3ba59637a53fbef4 100644 (file)
@@ -8,14 +8,18 @@
 
 ////////////////////////////////////////////////////////////////////////////////
 
-Mesh::Mesh(std::vector<GLfloat> v, std::vector<GLuint> i)
-    : vertices(v), indices(i)
+Mesh::Mesh(std::vector<GLfloat>&& v, std::vector<GLuint>&& i)
+    : vertices(std::move(v)), indices(std::move(i))
 {
     // Nothing to do here
 }
 
 float Mesh::min(size_t start) const
 {
+    if (start >= vertices.size())
+    {
+        return -1;
+    }
     float v = vertices[start];
     for (size_t i=start; i < vertices.size(); i += 3)
     {
@@ -26,6 +30,10 @@ float Mesh::min(size_t start) const
 
 float Mesh::max(size_t start) const
 {
+    if (start >= vertices.size())
+    {
+        return 1;
+    }
     float v = vertices[start];
     for (size_t i=start; i < vertices.size(); i += 3)
     {
@@ -33,3 +41,12 @@ float Mesh::max(size_t start) const
     }
     return v;
 }
+
+int Mesh::triCount() const
+{
+    return indices.size()/3;
+}
+bool Mesh::empty() const
+{
+    return vertices.size() == 0;
+}