aboutsummaryrefslogtreecommitdiffstats
path: root/src/include/glm/gtc/matrix_access.inl
diff options
context:
space:
mode:
Diffstat (limited to 'src/include/glm/gtc/matrix_access.inl')
-rw-r--r--src/include/glm/gtc/matrix_access.inl62
1 files changed, 62 insertions, 0 deletions
diff --git a/src/include/glm/gtc/matrix_access.inl b/src/include/glm/gtc/matrix_access.inl
new file mode 100644
index 0000000..5341b9c
--- /dev/null
+++ b/src/include/glm/gtc/matrix_access.inl
@@ -0,0 +1,62 @@
+/// @ref gtc_matrix_access
+
+namespace glm
+{
+ template<typename genType>
+ GLM_FUNC_QUALIFIER genType row
+ (
+ genType const& m,
+ length_t index,
+ typename genType::row_type const& x
+ )
+ {
+ assert(index >= 0 && index < m[0].length());
+
+ genType Result = m;
+ for(length_t i = 0; i < m.length(); ++i)
+ Result[i][index] = x[i];
+ return Result;
+ }
+
+ template<typename genType>
+ GLM_FUNC_QUALIFIER typename genType::row_type row
+ (
+ genType const& m,
+ length_t index
+ )
+ {
+ assert(index >= 0 && index < m[0].length());
+
+ typename genType::row_type Result(0);
+ for(length_t i = 0; i < m.length(); ++i)
+ Result[i] = m[i][index];
+ return Result;
+ }
+
+ template<typename genType>
+ GLM_FUNC_QUALIFIER genType column
+ (
+ genType const& m,
+ length_t index,
+ typename genType::col_type const& x
+ )
+ {
+ assert(index >= 0 && index < m.length());
+
+ genType Result = m;
+ Result[index] = x;
+ return Result;
+ }
+
+ template<typename genType>
+ GLM_FUNC_QUALIFIER typename genType::col_type column
+ (
+ genType const& m,
+ length_t index
+ )
+ {
+ assert(index >= 0 && index < m.length());
+
+ return m[index];
+ }
+}//namespace glm