diff options
Diffstat (limited to 'src/include/glm/gtc/matrix_access.inl')
| -rw-r--r-- | src/include/glm/gtc/matrix_access.inl | 62 | 
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
 | 
