]> Dogcows Code - chaz/yoink/blobdiff - src/Moof/stlplus/matrix.hpp
initial working frustum culling implementation
[chaz/yoink] / src / Moof / stlplus / matrix.hpp
diff --git a/src/Moof/stlplus/matrix.hpp b/src/Moof/stlplus/matrix.hpp
new file mode 100755 (executable)
index 0000000..fd0a512
--- /dev/null
@@ -0,0 +1,62 @@
+#ifndef STLPLUS_MATRIX\r
+#define STLPLUS_MATRIX\r
+////////////////////////////////////////////////////////////////////////////////\r
+\r
+//   Author:    Andy Rushton\r
+//   Copyright: (c) Southampton University 1999-2004\r
+//              (c) Andy Rushton           2004-2009\r
+//   License:   BSD License, see ../docs/license.html\r
+\r
+//   General-purpose 2D matrix data structure \r
+\r
+////////////////////////////////////////////////////////////////////////////////\r
+#include "containers_fixes.hpp"\r
+\r
+namespace stlplus\r
+{\r
+\r
+  ////////////////////////////////////////////////////////////////////////////////\r
+\r
+  template<typename T> class matrix\r
+  {\r
+  public:\r
+    matrix(unsigned rows = 0, unsigned cols = 0, const T& fill = T()) throw();\r
+    ~matrix(void) throw();\r
+\r
+    matrix(const matrix&) throw();\r
+    matrix& operator =(const matrix&) throw();\r
+\r
+    void resize(unsigned rows, unsigned cols, const T& fill = T()) throw();\r
+\r
+    unsigned rows(void) const throw();\r
+    unsigned columns(void) const throw();\r
+\r
+    void erase(const T& fill = T()) throw();\r
+    void erase(unsigned row, unsigned col, const T& fill = T()) throw(std::out_of_range);\r
+    void insert(unsigned row, unsigned col, const T&) throw(std::out_of_range);\r
+    const T& item(unsigned row, unsigned col) const throw(std::out_of_range);\r
+    T& item(unsigned row, unsigned col) throw(std::out_of_range);\r
+    const T& operator()(unsigned row, unsigned col) const throw(std::out_of_range);\r
+    T& operator()(unsigned row, unsigned col) throw(std::out_of_range);\r
+\r
+    void fill(const T& item = T()) throw();\r
+    void fill_column(unsigned col, const T& item = T()) throw(std::out_of_range);\r
+    void fill_row(unsigned row, const T& item = T()) throw(std::out_of_range);\r
+    void fill_leading_diagonal(const T& item = T()) throw();\r
+    void fill_trailing_diagonal(const T& item = T()) throw();\r
+    void make_identity(const T& one, const T& zero = T()) throw();\r
+\r
+    void transpose(void) throw();\r
+\r
+  private:\r
+    unsigned m_rows;\r
+    unsigned m_cols;\r
+    T** m_data;\r
+  };\r
+\r
+  ////////////////////////////////////////////////////////////////////////////////\r
+\r
+} // end namespace stlplus\r
+\r
+#include "matrix.tpp"\r
+#endif\r
This page took 0.018549 seconds and 4 git commands to generate.