Browse Source

Promoted extension

Christophe Riccio 15 years ago
parent
commit
d56da3b541
2 changed files with 121 additions and 0 deletions
  1. 62 0
      glm/gtc/matrix_access.hpp
  2. 59 0
      glm/gtc/matrix_access.inl

+ 62 - 0
glm/gtc/matrix_access.hpp

@@ -0,0 +1,62 @@
+///////////////////////////////////////////////////////////////////////////////////////////////////
+// OpenGL Mathematics Copyright (c) 2005 - 2010 G-Truc Creation (www.g-truc.net)
+///////////////////////////////////////////////////////////////////////////////////////////////////
+// Created : 2005-12-27
+// Updated : 2010-11-12
+// Licence : This source is under MIT License
+// File    : glm/gtc/matrix_access.hpp
+///////////////////////////////////////////////////////////////////////////////////////////////////
+// Dependency:
+// - GLM core
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+#ifndef glm_gtc_matrix_access
+#define glm_gtc_matrix_access
+
+// Dependency:
+#include "../glm.hpp"
+
+namespace glm{
+namespace gtc{
+//! GLM_GTC_matrix_access extension: Set a column or a row of a matrix
+namespace matrix_access
+{
+	//! Get a specific row of a matrix.
+	//! From GLM_GTC_matrix_access extension.
+	template <typename genType> 
+	typename genType::row_type row(
+		genType const & m, 
+		int index);
+
+	//! Set a specific row to a matrix.
+	//! From GLM_GTC_matrix_access extension.
+    template <typename genType> 
+	genType row(
+		genType const & m, 
+		int index, 
+		typename genType::row_type const & x);
+
+	//! Get a specific column of a matrix.
+	//! From GLM_GTC_matrix_access extension.
+	template <typename genType> 
+	typename genType::col_type column(
+		genType const & m, 
+		int index);
+
+	 //! Set a specific column to a matrix.
+	 //! From GLM_GTC_matrix_access extension.
+	template <typename genType> 
+	genType column(
+		genType const & m, 
+		int index, 
+		typename genType::col_type const & x);
+
+}//namespace matrix_access
+}//namespace gtc
+}//namespace glm
+
+#include "matrix_access.inl"
+
+namespace glm{using namespace gtc::matrix_access;}
+
+#endif//glm_gtc_matrix_access

+ 59 - 0
glm/gtc/matrix_access.inl

@@ -0,0 +1,59 @@
+///////////////////////////////////////////////////////////////////////////////////////////////////
+// OpenGL Mathematics Copyright (c) 2005 - 2010 G-Truc Creation (www.g-truc.net)
+///////////////////////////////////////////////////////////////////////////////////////////////////
+// Created : 2005-12-27
+// Updated : 2010-11-12
+// Licence : This source is under MIT License
+// File    : glm/gtc/matrix_access.inl
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+namespace glm{
+namespace gtc{
+namespace matrix_access
+{
+    template <typename genType>
+    inline genType row(
+		genType const & m, 
+		int index, 
+		typename genType::row_type const & x)
+    {
+        genType Result = m;
+        for(typename genType::size_type i = 0; i < genType::row_size(); ++i)
+			Result[i][index] = x[i];
+        return Result;
+    }
+
+    template <typename genType>
+    inline typename genType::row_type row(
+		genType & const m, 
+		int index)
+    {
+		typename genType::row_type Result;
+		for(typename genType::size_type i = 0; i < genType::row_size(); ++i)
+			Result[i] = m[i][index];
+		return Result;
+    }
+
+    template <typename genType>
+    inline genType column(
+		genType const & m, 
+		int index, 
+		typename genType::col_type const & x)
+    {
+        genType Result = m;
+        Result[index] = x;
+        return Result;
+    }
+
+    template <typename genType>
+    inline typename genType::col_type column(
+		genType const & m, 
+		int index)
+    {
+        return m[index];
+    }
+
+}//namespace matrix_access
+}//namespace gtc
+}//namespace glm
+